tango-app-ui-shared 3.7.3-dev6-demo7 → 3.7.3-dev6-demo9
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/esm2022/lib/guards/auth.guard.mjs +26 -0
- package/esm2022/lib/guards/lead.guard.mjs +16 -0
- package/esm2022/lib/guards/stores.guard.mjs +16 -0
- package/esm2022/lib/guards/tickets.guard.mjs +16 -0
- package/esm2022/lib/i18n/index.mjs +3 -0
- package/esm2022/lib/i18n/translation.module.mjs +17 -0
- package/esm2022/lib/i18n/translation.service.mjs +53 -0
- package/esm2022/lib/i18n/vocabs/ch.mjs +106 -0
- package/esm2022/lib/i18n/vocabs/de.mjs +106 -0
- package/esm2022/lib/i18n/vocabs/en.mjs +106 -0
- package/esm2022/lib/i18n/vocabs/es.mjs +106 -0
- package/esm2022/lib/i18n/vocabs/fr.mjs +106 -0
- package/esm2022/lib/i18n/vocabs/jp.mjs +106 -0
- package/esm2022/lib/interceptors/http-auth-interceptor.mjs +124 -0
- package/esm2022/lib/interfaces/global-state.mjs +2 -0
- package/esm2022/lib/modules/common/common-shared.module.mjs +31 -0
- package/esm2022/lib/modules/common/custom-select/custom-select.component.mjs +155 -0
- package/esm2022/lib/modules/common/filters/filters.component.mjs +179 -0
- package/esm2022/lib/modules/common/pagination/pagination.component.mjs +49 -0
- package/esm2022/lib/modules/errors/error403/error403.component.mjs +33 -0
- package/esm2022/lib/modules/errors/error404/error404.component.mjs +44 -0
- package/esm2022/lib/modules/errors/error500/error500.component.mjs +45 -0
- package/esm2022/lib/modules/errors/errors-routing.module.mjs +48 -0
- package/esm2022/lib/modules/errors/errors.component.mjs +39 -0
- package/esm2022/lib/modules/errors/errors.module.mjs +37 -0
- package/esm2022/lib/modules/errors/invalid-ip/invalid-ip.component.mjs +44 -0
- package/esm2022/lib/modules/intro/contact-support/contact-support.component.mjs +19 -0
- package/esm2022/lib/modules/intro/intro-routing.module.mjs +24 -0
- package/esm2022/lib/modules/intro/intro.module.mjs +32 -0
- package/esm2022/lib/modules/intro/lead-intro/lead-intro.component.mjs +110 -0
- package/esm2022/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.mjs +31 -0
- package/esm2022/lib/modules/layout/content/content.component.mjs +107 -0
- package/esm2022/lib/modules/layout/footer/footer.component.mjs +17 -0
- package/esm2022/lib/modules/layout/header/header-menu/header-menu.component.mjs +41 -0
- package/esm2022/lib/modules/layout/header/header.component.mjs +100 -0
- package/esm2022/lib/modules/layout/header/navbar/navbar.component.mjs +256 -0
- package/esm2022/lib/modules/layout/header/notifications-inner/notifications-inner.component.mjs +79 -0
- package/esm2022/lib/modules/layout/header/page-title/page-title.component.mjs +56 -0
- package/esm2022/lib/modules/layout/keenicon/icons.json +1 -0
- package/esm2022/lib/modules/layout/keenicon/keenicon.component.mjs +37 -0
- package/esm2022/lib/modules/layout/layout/layout.component.mjs +314 -0
- package/esm2022/lib/modules/layout/layout.module.mjs +198 -0
- package/esm2022/lib/modules/layout/scripts-init/scripts-init.component.mjs +74 -0
- package/esm2022/lib/modules/layout/scroll-top/scroll-top.component.mjs +74 -0
- package/esm2022/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.mjs +159 -0
- package/esm2022/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.mjs +45 -0
- package/esm2022/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.mjs +122 -0
- package/esm2022/lib/modules/layout/sidebar/sidebar.component.mjs +134 -0
- package/esm2022/lib/modules/layout/toolbar/accounting/accounting.component.mjs +16 -0
- package/esm2022/lib/modules/layout/toolbar/classic/classic.component.mjs +331 -0
- package/esm2022/lib/modules/layout/toolbar/client-settings/client-settings.component.mjs +88 -0
- package/esm2022/lib/modules/layout/toolbar/date-single-select/date-single-select.component.mjs +207 -0
- package/esm2022/lib/modules/layout/toolbar/datepicker/datepicker.component.mjs +158 -0
- package/esm2022/lib/modules/layout/toolbar/extended/extended.component.mjs +15 -0
- package/esm2022/lib/modules/layout/toolbar/metrics-header/metrics-header.component.mjs +1321 -0
- package/esm2022/lib/modules/layout/toolbar/reports/reports.component.mjs +18 -0
- package/esm2022/lib/modules/layout/toolbar/saas/saas.component.mjs +18 -0
- package/esm2022/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.mjs +216 -0
- package/esm2022/lib/modules/layout/toolbar/single-store/single-store.component.mjs +178 -0
- package/esm2022/lib/modules/layout/toolbar/single-storedate/single-storedate.component.mjs +166 -0
- package/esm2022/lib/modules/layout/toolbar/storesingle/storesingle.component.mjs +105 -0
- package/esm2022/lib/modules/layout/toolbar/toolbar.component.mjs +372 -0
- package/esm2022/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.mjs +1062 -0
- package/esm2022/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.mjs +795 -0
- package/esm2022/lib/modules/layout/toolbar/trax-header/trax-header.component.mjs +880 -0
- package/esm2022/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.mjs +729 -0
- package/esm2022/lib/modules/layout/toolbar/zone-header/zone-header.component.mjs +1090 -0
- package/esm2022/lib/modules/notification/conformation/conformation.component.mjs +22 -0
- package/esm2022/lib/modules/notification/notification/notification.component.mjs +317 -0
- package/esm2022/lib/modules/notification/notification-routing.module.mjs +28 -0
- package/esm2022/lib/modules/notification/notification.module.mjs +32 -0
- package/esm2022/lib/pipes/customDate.pipe.mjs +22 -0
- package/esm2022/lib/routes/route-wraper-modules/edge-wrapper.module.mjs +18 -0
- package/esm2022/lib/routes/route-wraper-modules/manage-wrapper.module.mjs +18 -0
- package/esm2022/lib/routes/route-wraper-modules/profile-wrapper.module.mjs +18 -0
- package/esm2022/lib/routes/route-wraper-modules/store-wrapper.module.mjs +18 -0
- package/esm2022/lib/routes/route-wraper-modules/ticket-wrapper.module.mjs +18 -0
- package/esm2022/lib/routes/routing.mjs +53 -0
- package/esm2022/lib/services/auth.service.mjs +141 -0
- package/esm2022/lib/services/notification.service.mjs +74 -0
- package/esm2022/lib/services/toast.service.mjs +83 -0
- package/esm2022/public-api.mjs +56 -0
- package/esm2022/tango-app-ui-shared.mjs +5 -0
- package/fesm2022/tango-app-ui-shared-edge-wrapper.module-CFDk0tvS.mjs +21 -0
- package/fesm2022/tango-app-ui-shared-edge-wrapper.module-CFDk0tvS.mjs.map +1 -0
- package/fesm2022/tango-app-ui-shared-intro.module-DYh4ZRha.mjs +188 -0
- package/fesm2022/tango-app-ui-shared-intro.module-DYh4ZRha.mjs.map +1 -0
- package/fesm2022/tango-app-ui-shared-manage-wrapper.module-BHyh4Njw.mjs +21 -0
- package/fesm2022/tango-app-ui-shared-manage-wrapper.module-BHyh4Njw.mjs.map +1 -0
- package/fesm2022/tango-app-ui-shared-notification.module-C5ZmCf8U.mjs +400 -0
- package/fesm2022/tango-app-ui-shared-notification.module-C5ZmCf8U.mjs.map +1 -0
- package/fesm2022/tango-app-ui-shared-profile-wrapper.module-BNC1AGOk.mjs +21 -0
- package/fesm2022/tango-app-ui-shared-profile-wrapper.module-BNC1AGOk.mjs.map +1 -0
- package/fesm2022/tango-app-ui-shared-store-wrapper.module-DdaCYHdv.mjs +21 -0
- package/fesm2022/tango-app-ui-shared-store-wrapper.module-DdaCYHdv.mjs.map +1 -0
- package/fesm2022/tango-app-ui-shared-ticket-wrapper.module-r32uKkDO.mjs +21 -0
- package/fesm2022/tango-app-ui-shared-ticket-wrapper.module-r32uKkDO.mjs.map +1 -0
- package/fesm2022/tango-app-ui-shared.mjs +12440 -0
- package/fesm2022/tango-app-ui-shared.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/guards/auth.guard.d.ts +10 -0
- package/lib/guards/lead.guard.d.ts +2 -0
- package/lib/guards/stores.guard.d.ts +2 -0
- package/lib/guards/tickets.guard.d.ts +2 -0
- package/{src/lib/i18n/index.ts → lib/i18n/index.d.ts} +2 -2
- package/lib/i18n/translation.module.d.ts +8 -0
- package/lib/i18n/translation.service.d.ts +19 -0
- package/lib/i18n/vocabs/ch.d.ts +104 -0
- package/lib/i18n/vocabs/de.d.ts +104 -0
- package/lib/i18n/vocabs/en.d.ts +104 -0
- package/lib/i18n/vocabs/es.d.ts +104 -0
- package/lib/i18n/vocabs/fr.d.ts +104 -0
- package/lib/i18n/vocabs/jp.d.ts +104 -0
- package/lib/interceptors/http-auth-interceptor.d.ts +19 -0
- package/lib/interfaces/global-state.d.ts +5 -0
- package/lib/modules/common/common-shared.module.d.ts +13 -0
- package/lib/modules/common/custom-select/custom-select.component.d.ts +33 -0
- package/lib/modules/common/filters/filters.component.d.ts +38 -0
- package/lib/modules/common/pagination/pagination.component.d.ts +18 -0
- package/lib/modules/errors/error403/error403.component.d.ts +14 -0
- package/lib/modules/errors/error404/error404.component.d.ts +15 -0
- package/lib/modules/errors/error500/error500.component.d.ts +15 -0
- package/lib/modules/errors/errors-routing.module.d.ts +7 -0
- package/lib/modules/errors/errors.component.d.ts +13 -0
- package/lib/modules/errors/errors.module.d.ts +13 -0
- package/lib/modules/errors/invalid-ip/invalid-ip.component.d.ts +17 -0
- package/lib/modules/intro/contact-support/contact-support.component.d.ts +9 -0
- package/lib/modules/intro/intro-routing.module.d.ts +7 -0
- package/lib/modules/intro/intro.module.d.ts +11 -0
- package/lib/modules/intro/lead-intro/lead-intro.component.d.ts +31 -0
- package/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.d.ts +13 -0
- package/lib/modules/layout/content/content.component.d.ts +25 -0
- package/lib/modules/layout/footer/footer.component.d.ts +8 -0
- package/lib/modules/layout/header/header-menu/header-menu.component.d.ts +18 -0
- package/lib/modules/layout/header/header.component.d.ts +30 -0
- package/lib/modules/layout/header/navbar/navbar.component.d.ts +45 -0
- package/lib/modules/layout/header/notifications-inner/notifications-inner.component.d.ts +25 -0
- package/lib/modules/layout/header/page-title/page-title.component.d.ts +23 -0
- package/lib/modules/layout/keenicon/keenicon.component.d.ts +13 -0
- package/lib/modules/layout/layout/layout.component.d.ts +82 -0
- package/lib/modules/layout/layout.module.d.ts +50 -0
- package/lib/modules/layout/scripts-init/scripts-init.component.d.ts +19 -0
- package/lib/modules/layout/scroll-top/scroll-top.component.d.ts +19 -0
- package/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.d.ts +45 -0
- package/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.d.ts +19 -0
- package/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.d.ts +26 -0
- package/lib/modules/layout/sidebar/sidebar.component.d.ts +36 -0
- package/lib/modules/layout/toolbar/accounting/accounting.component.d.ts +8 -0
- package/lib/modules/layout/toolbar/classic/classic.component.d.ts +48 -0
- package/lib/modules/layout/toolbar/client-settings/client-settings.component.d.ts +16 -0
- package/lib/modules/layout/toolbar/date-single-select/date-single-select.component.d.ts +28 -0
- package/lib/modules/layout/toolbar/datepicker/datepicker.component.d.ts +28 -0
- package/lib/modules/layout/toolbar/extended/extended.component.d.ts +8 -0
- package/lib/modules/layout/toolbar/metrics-header/metrics-header.component.d.ts +103 -0
- package/lib/modules/layout/toolbar/reports/reports.component.d.ts +9 -0
- package/lib/modules/layout/toolbar/saas/saas.component.d.ts +9 -0
- package/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.d.ts +32 -0
- package/lib/modules/layout/toolbar/single-store/single-store.component.d.ts +33 -0
- package/lib/modules/layout/toolbar/single-storedate/single-storedate.component.d.ts +34 -0
- package/lib/modules/layout/toolbar/storesingle/storesingle.component.d.ts +24 -0
- package/lib/modules/layout/toolbar/toolbar.component.d.ts +57 -0
- package/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.d.ts +93 -0
- package/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.d.ts +80 -0
- package/lib/modules/layout/toolbar/trax-header/trax-header.component.d.ts +83 -0
- package/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.d.ts +74 -0
- package/lib/modules/layout/toolbar/zone-header/zone-header.component.d.ts +97 -0
- package/lib/modules/notification/conformation/conformation.component.d.ts +10 -0
- package/lib/modules/notification/notification/notification.component.d.ts +63 -0
- package/lib/modules/notification/notification-routing.module.d.ts +7 -0
- package/lib/modules/notification/notification.module.d.ts +11 -0
- package/lib/pipes/customDate.pipe.d.ts +7 -0
- package/lib/routes/route-wraper-modules/edge-wrapper.module.d.ts +7 -0
- package/lib/routes/route-wraper-modules/manage-wrapper.module.d.ts +7 -0
- package/lib/routes/route-wraper-modules/profile-wrapper.module.d.ts +7 -0
- package/lib/routes/route-wraper-modules/store-wrapper.module.d.ts +7 -0
- package/lib/routes/route-wraper-modules/ticket-wrapper.module.d.ts +7 -0
- package/lib/routes/routing.d.ts +3 -0
- package/lib/services/auth.service.d.ts +49 -0
- package/lib/services/notification.service.d.ts +30 -0
- package/lib/services/toast.service.d.ts +10 -0
- package/package.json +25 -12
- package/{src/public-api.ts → public-api.d.ts} +44 -71
- package/.eslintrc.json +0 -37
- package/ng-package.json +0 -7
- package/src/lib/guards/auth.guard.ts +0 -20
- package/src/lib/guards/lead.guard.ts +0 -16
- package/src/lib/guards/stores.guard.ts +0 -16
- package/src/lib/guards/tickets.guard.ts +0 -16
- package/src/lib/i18n/translation.module.ts +0 -9
- package/src/lib/i18n/translation.service.ts +0 -61
- package/src/lib/i18n/vocabs/ch.ts +0 -105
- package/src/lib/i18n/vocabs/de.ts +0 -105
- package/src/lib/i18n/vocabs/en.ts +0 -105
- package/src/lib/i18n/vocabs/es.ts +0 -105
- package/src/lib/i18n/vocabs/fr.ts +0 -105
- package/src/lib/i18n/vocabs/jp.ts +0 -105
- package/src/lib/interceptors/http-auth-interceptor.ts +0 -225
- package/src/lib/interfaces/global-state.ts +0 -6
- package/src/lib/modules/common/common-shared.module.ts +0 -20
- package/src/lib/modules/common/custom-select/custom-select.component.html +0 -42
- package/src/lib/modules/common/custom-select/custom-select.component.scss +0 -131
- package/src/lib/modules/common/custom-select/custom-select.component.spec.ts +0 -23
- package/src/lib/modules/common/custom-select/custom-select.component.ts +0 -149
- package/src/lib/modules/common/filters/filters.component.html +0 -76
- package/src/lib/modules/common/filters/filters.component.scss +0 -131
- package/src/lib/modules/common/filters/filters.component.spec.ts +0 -23
- package/src/lib/modules/common/filters/filters.component.ts +0 -181
- package/src/lib/modules/common/pagination/pagination.component.html +0 -26
- package/src/lib/modules/common/pagination/pagination.component.scss +0 -63
- package/src/lib/modules/common/pagination/pagination.component.spec.ts +0 -23
- package/src/lib/modules/common/pagination/pagination.component.ts +0 -46
- package/src/lib/modules/errors/error403/error403.component.html +0 -25
- package/src/lib/modules/errors/error403/error403.component.scss +0 -0
- package/src/lib/modules/errors/error403/error403.component.spec.ts +0 -23
- package/src/lib/modules/errors/error403/error403.component.ts +0 -28
- package/src/lib/modules/errors/error404/error404.component.html +0 -24
- package/src/lib/modules/errors/error404/error404.component.scss +0 -0
- package/src/lib/modules/errors/error404/error404.component.spec.ts +0 -25
- package/src/lib/modules/errors/error404/error404.component.ts +0 -50
- package/src/lib/modules/errors/error500/error500.component.html +0 -24
- package/src/lib/modules/errors/error500/error500.component.scss +0 -0
- package/src/lib/modules/errors/error500/error500.component.spec.ts +0 -25
- package/src/lib/modules/errors/error500/error500.component.ts +0 -50
- package/src/lib/modules/errors/errors-routing.module.ts +0 -40
- package/src/lib/modules/errors/errors.component.html +0 -15
- package/src/lib/modules/errors/errors.component.scss +0 -4
- package/src/lib/modules/errors/errors.component.spec.ts +0 -25
- package/src/lib/modules/errors/errors.component.ts +0 -42
- package/src/lib/modules/errors/errors.module.ts +0 -25
- package/src/lib/modules/errors/invalid-ip/invalid-ip.component.html +0 -16
- 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 +0 -23
- package/src/lib/modules/errors/invalid-ip/invalid-ip.component.ts +0 -43
- package/src/lib/modules/intro/contact-support/contact-support.component.html +0 -30
- package/src/lib/modules/intro/contact-support/contact-support.component.scss +0 -60
- package/src/lib/modules/intro/contact-support/contact-support.component.spec.ts +0 -23
- package/src/lib/modules/intro/contact-support/contact-support.component.ts +0 -17
- package/src/lib/modules/intro/intro-routing.module.ts +0 -16
- package/src/lib/modules/intro/intro.module.ts +0 -21
- package/src/lib/modules/intro/lead-intro/lead-intro.component.html +0 -325
- package/src/lib/modules/intro/lead-intro/lead-intro.component.scss +0 -185
- package/src/lib/modules/intro/lead-intro/lead-intro.component.spec.ts +0 -23
- package/src/lib/modules/intro/lead-intro/lead-intro.component.ts +0 -120
- package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.html +0 -44
- package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.scss +0 -28
- package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.spec.ts +0 -23
- package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.ts +0 -24
- package/src/lib/modules/layout/content/content.component.html +0 -12
- package/src/lib/modules/layout/content/content.component.scss +0 -0
- package/src/lib/modules/layout/content/content.component.ts +0 -102
- package/src/lib/modules/layout/footer/footer.component.html +0 -29
- package/src/lib/modules/layout/footer/footer.component.scss +0 -7
- package/src/lib/modules/layout/footer/footer.component.spec.ts +0 -25
- package/src/lib/modules/layout/footer/footer.component.ts +0 -13
- package/src/lib/modules/layout/header/header-menu/header-menu.component.html +0 -27
- package/src/lib/modules/layout/header/header-menu/header-menu.component.scss +0 -4
- package/src/lib/modules/layout/header/header-menu/header-menu.component.spec.ts +0 -25
- package/src/lib/modules/layout/header/header-menu/header-menu.component.ts +0 -38
- package/src/lib/modules/layout/header/header.component.html +0 -90
- package/src/lib/modules/layout/header/header.component.scss +0 -7
- package/src/lib/modules/layout/header/header.component.spec.ts +0 -25
- package/src/lib/modules/layout/header/header.component.ts +0 -139
- package/src/lib/modules/layout/header/navbar/navbar.component.html +0 -156
- package/src/lib/modules/layout/header/navbar/navbar.component.scss +0 -223
- package/src/lib/modules/layout/header/navbar/navbar.component.spec.ts +0 -23
- package/src/lib/modules/layout/header/navbar/navbar.component.ts +0 -255
- package/src/lib/modules/layout/header/notifications-inner/notifications-inner.component.html +0 -200
- package/src/lib/modules/layout/header/notifications-inner/notifications-inner.component.scss +0 -139
- package/src/lib/modules/layout/header/notifications-inner/notifications-inner.component.ts +0 -76
- package/src/lib/modules/layout/header/page-title/page-title.component.html +0 -32
- package/src/lib/modules/layout/header/page-title/page-title.component.scss +0 -11
- package/src/lib/modules/layout/header/page-title/page-title.component.ts +0 -47
- package/src/lib/modules/layout/keenicon/icons.json +0 -1
- package/src/lib/modules/layout/keenicon/keenicon.component.html +0 -4
- package/src/lib/modules/layout/keenicon/keenicon.component.scss +0 -0
- package/src/lib/modules/layout/keenicon/keenicon.component.spec.ts +0 -23
- package/src/lib/modules/layout/keenicon/keenicon.component.ts +0 -30
- package/src/lib/modules/layout/layout/layout.component.html +0 -71
- package/src/lib/modules/layout/layout/layout.component.scss +0 -23
- package/src/lib/modules/layout/layout/layout.component.ts +0 -425
- package/src/lib/modules/layout/layout.module.ts +0 -129
- package/src/lib/modules/layout/scripts-init/scripts-init.component.html +0 -0
- package/src/lib/modules/layout/scripts-init/scripts-init.component.ts +0 -81
- package/src/lib/modules/layout/scroll-top/scroll-top.component.html +0 -1
- package/src/lib/modules/layout/scroll-top/scroll-top.component.ts +0 -75
- package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.html +0 -70
- package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.scss +0 -57
- package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.spec.ts +0 -23
- package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.ts +0 -136
- package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.html +0 -26
- 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 +0 -23
- package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.ts +0 -36
- package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.html +0 -761
- package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.scss +0 -38
- package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.spec.ts +0 -23
- package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.ts +0 -130
- package/src/lib/modules/layout/sidebar/sidebar.component.html +0 -16
- package/src/lib/modules/layout/sidebar/sidebar.component.scss +0 -3
- package/src/lib/modules/layout/sidebar/sidebar.component.spec.ts +0 -23
- package/src/lib/modules/layout/sidebar/sidebar.component.ts +0 -203
- package/src/lib/modules/layout/toolbar/accounting/accounting.component.html +0 -84
- package/src/lib/modules/layout/toolbar/accounting/accounting.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/accounting/accounting.component.spec.ts +0 -23
- package/src/lib/modules/layout/toolbar/accounting/accounting.component.ts +0 -14
- package/src/lib/modules/layout/toolbar/classic/classic.component.html +0 -69
- package/src/lib/modules/layout/toolbar/classic/classic.component.scss +0 -238
- package/src/lib/modules/layout/toolbar/classic/classic.component.spec.ts +0 -23
- package/src/lib/modules/layout/toolbar/classic/classic.component.ts +0 -389
- package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.html +0 -4
- package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.scss +0 -3
- package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.spec.ts +0 -23
- package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.ts +0 -91
- package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.html +0 -22
- package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.scss +0 -156
- package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.spec.ts +0 -23
- package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.ts +0 -238
- package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.html +0 -14
- package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.scss +0 -149
- package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.spec.ts +0 -23
- package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.ts +0 -183
- package/src/lib/modules/layout/toolbar/extended/extended.component.html +0 -100
- package/src/lib/modules/layout/toolbar/extended/extended.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/extended/extended.component.spec.ts +0 -23
- package/src/lib/modules/layout/toolbar/extended/extended.component.ts +0 -12
- package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.html +0 -311
- package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.scss +0 -311
- package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.spec.ts +0 -23
- package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.ts +0 -1555
- package/src/lib/modules/layout/toolbar/reports/reports.component.html +0 -62
- package/src/lib/modules/layout/toolbar/reports/reports.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/reports/reports.component.spec.ts +0 -23
- package/src/lib/modules/layout/toolbar/reports/reports.component.ts +0 -14
- package/src/lib/modules/layout/toolbar/saas/saas.component.html +0 -77
- package/src/lib/modules/layout/toolbar/saas/saas.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/saas/saas.component.spec.ts +0 -23
- package/src/lib/modules/layout/toolbar/saas/saas.component.ts +0 -14
- package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.html +0 -26
- package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.scss +0 -176
- package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.spec.ts +0 -23
- package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.ts +0 -235
- package/src/lib/modules/layout/toolbar/single-store/single-store.component.html +0 -39
- package/src/lib/modules/layout/toolbar/single-store/single-store.component.scss +0 -176
- package/src/lib/modules/layout/toolbar/single-store/single-store.component.spec.ts +0 -23
- package/src/lib/modules/layout/toolbar/single-store/single-store.component.ts +0 -188
- package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.html +0 -17
- package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.scss +0 -172
- package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.spec.ts +0 -23
- package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.ts +0 -179
- package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.html +0 -4
- package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.scss +0 -19
- package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.spec.ts +0 -23
- package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.ts +0 -105
- package/src/lib/modules/layout/toolbar/toolbar.component.html +0 -64
- package/src/lib/modules/layout/toolbar/toolbar.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/toolbar.component.spec.ts +0 -25
- package/src/lib/modules/layout/toolbar/toolbar.component.ts +0 -400
- package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.html +0 -259
- package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.scss +0 -305
- package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.spec.ts +0 -23
- package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.ts +0 -1202
- package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.html +0 -199
- package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.scss +0 -311
- package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.spec.ts +0 -23
- package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.ts +0 -899
- package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.html +0 -204
- package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.scss +0 -311
- package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.spec.ts +0 -23
- package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.ts +0 -1045
- package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.html +0 -190
- package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.scss +0 -311
- package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.spec.ts +0 -23
- package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.ts +0 -825
- package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.html +0 -259
- package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.scss +0 -305
- package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.spec.ts +0 -23
- package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.ts +0 -1242
- package/src/lib/modules/notification/conformation/conformation.component.html +0 -25
- package/src/lib/modules/notification/conformation/conformation.component.scss +0 -0
- package/src/lib/modules/notification/conformation/conformation.component.spec.ts +0 -23
- package/src/lib/modules/notification/conformation/conformation.component.ts +0 -23
- package/src/lib/modules/notification/notification/notification.component.html +0 -209
- package/src/lib/modules/notification/notification/notification.component.scss +0 -211
- package/src/lib/modules/notification/notification/notification.component.spec.ts +0 -23
- package/src/lib/modules/notification/notification/notification.component.ts +0 -310
- package/src/lib/modules/notification/notification-routing.module.ts +0 -20
- package/src/lib/modules/notification/notification.module.ts +0 -21
- package/src/lib/pipes/customDate.pipe.ts +0 -18
- package/src/lib/routes/route-wraper-modules/analyse-wrapper.module.ts +0 -12
- package/src/lib/routes/route-wraper-modules/edge-wrapper.module.ts +0 -11
- package/src/lib/routes/route-wraper-modules/manage-wrapper.module.ts +0 -11
- package/src/lib/routes/route-wraper-modules/profile-wrapper.module.ts +0 -12
- package/src/lib/routes/route-wraper-modules/store-wrapper.module.ts +0 -11
- package/src/lib/routes/route-wraper-modules/ticket-wrapper.module.ts +0 -10
- package/src/lib/routes/routing.ts +0 -56
- package/src/lib/services/auth.service.ts +0 -178
- package/src/lib/services/notification.service.spec.ts +0 -16
- package/src/lib/services/notification.service.ts +0 -73
- package/src/lib/services/toast.service.ts +0 -82
- package/tsconfig.lib.json +0 -14
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -14
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../../services/auth.service";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/forms";
|
|
6
|
+
export class CustomSelectComponent {
|
|
7
|
+
cd;
|
|
8
|
+
authService;
|
|
9
|
+
onClick(event) {
|
|
10
|
+
const target = event.target;
|
|
11
|
+
if (!target.closest('.dropdown')) {
|
|
12
|
+
this.showDropdown = false;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
items;
|
|
16
|
+
searchField;
|
|
17
|
+
multi;
|
|
18
|
+
idField;
|
|
19
|
+
selectedValues = [];
|
|
20
|
+
disabled;
|
|
21
|
+
label;
|
|
22
|
+
selected = new EventEmitter();
|
|
23
|
+
filteredValues = [];
|
|
24
|
+
showDropdown;
|
|
25
|
+
searchValue;
|
|
26
|
+
instanceId;
|
|
27
|
+
constructor(cd, authService) {
|
|
28
|
+
this.cd = cd;
|
|
29
|
+
this.authService = authService;
|
|
30
|
+
}
|
|
31
|
+
ngOnInit() {
|
|
32
|
+
this.instanceId = crypto.randomUUID();
|
|
33
|
+
this.authService.dropDownTrigger.subscribe((e) => {
|
|
34
|
+
if (e !== this.instanceId) {
|
|
35
|
+
this.showDropdown = false;
|
|
36
|
+
this.cd.detectChanges();
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
ngOnChanges(changes) {
|
|
41
|
+
if (changes['items'] && this.items?.length) {
|
|
42
|
+
this.initializeItems();
|
|
43
|
+
}
|
|
44
|
+
if (changes['selectedValues'] && Array.isArray(changes['selectedValues']?.currentValue) && changes['selectedValues']?.currentValue?.length > 0 && changes['selectedValues']?.currentValue[0]) {
|
|
45
|
+
this.updateSelectedValues();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
initializeItems() {
|
|
49
|
+
this.filteredValues = this.items.map((item) => ({ ...item }));
|
|
50
|
+
this.updateSelectedValues();
|
|
51
|
+
}
|
|
52
|
+
updateSelectedValues() {
|
|
53
|
+
this.selectedValues?.forEach((selectedItem) => {
|
|
54
|
+
const item = this.filteredValues?.find((filteredItem) => filteredItem?.[this.idField] === selectedItem?.[this.idField]);
|
|
55
|
+
if (item) {
|
|
56
|
+
item.isSelected = true;
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
openDropdown(event) {
|
|
61
|
+
this.authService.dropDownTrigger.next(this.instanceId);
|
|
62
|
+
event.stopPropagation();
|
|
63
|
+
this.showDropdown = !this.showDropdown;
|
|
64
|
+
}
|
|
65
|
+
onInput(event) {
|
|
66
|
+
if (!event.target.value) {
|
|
67
|
+
this.filteredValues = [...this.items];
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
const searchTerm = event.target.value.toLowerCase();
|
|
71
|
+
this.filteredValues = this.items.filter((item) => item[this.searchField].toLowerCase().includes(searchTerm));
|
|
72
|
+
}
|
|
73
|
+
this.updateSelectedValues();
|
|
74
|
+
this.cd.detectChanges();
|
|
75
|
+
}
|
|
76
|
+
onSelect(event, item) {
|
|
77
|
+
if (this.multi) {
|
|
78
|
+
if (event.currentTarget.checked) {
|
|
79
|
+
this.selectedValues.push(item);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
this.selectedValues = this.selectedValues.filter((elem) => elem[this.idField] !== item[this.idField]);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
this.selectedValues = [{ ...item }];
|
|
87
|
+
this.filteredValues.forEach((element) => {
|
|
88
|
+
if (element[this.idField] !== item[this.idField]) {
|
|
89
|
+
element.isSelected = false;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
this.showDropdown = false;
|
|
93
|
+
}
|
|
94
|
+
const valuesToEmit = this.selectedValues.map((value) => {
|
|
95
|
+
const selectedItem = { ...value };
|
|
96
|
+
delete selectedItem.isSelected;
|
|
97
|
+
return selectedItem;
|
|
98
|
+
});
|
|
99
|
+
this.cd.detectChanges();
|
|
100
|
+
this.emitSelectedValues(valuesToEmit);
|
|
101
|
+
}
|
|
102
|
+
onSelectAll(event) {
|
|
103
|
+
const selectAll = event.currentTarget.checked;
|
|
104
|
+
this.filteredValues.forEach((item) => item.isSelected = selectAll);
|
|
105
|
+
if (selectAll) {
|
|
106
|
+
this.selectedValues = [...this.filteredValues];
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this.selectedValues = [];
|
|
110
|
+
}
|
|
111
|
+
const valuesToEmit = this.selectedValues.map((value) => {
|
|
112
|
+
const { isSelected, ...selectedItem } = value;
|
|
113
|
+
return selectedItem;
|
|
114
|
+
});
|
|
115
|
+
this.cd.detectChanges();
|
|
116
|
+
this.emitSelectedValues(valuesToEmit);
|
|
117
|
+
}
|
|
118
|
+
emitSelectedValues(values) {
|
|
119
|
+
if (this.multi) {
|
|
120
|
+
this.selected.emit(values);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
this.selected.emit(values[0]);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
checkIfAllSelected() {
|
|
127
|
+
return this.filteredValues.every((item) => item.isSelected);
|
|
128
|
+
}
|
|
129
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component });
|
|
130
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CustomSelectComponent, selector: "lib-select", inputs: { items: "items", searchField: "searchField", multi: "multi", idField: "idField", selectedValues: "selectedValues", disabled: "disabled", label: "label" }, outputs: { selected: "selected" }, host: { listeners: { "document:click": "onClick($event)" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"outer-container\">\r\n <div [ngClass]=\"disabled ? 'disable-input':''\" (click)=\"openDropdown($event)\" class=\"form-select\">\r\n <ng-container *ngIf=\"multi\" >\r\n {{selectedValues?.length}} {{label}} Selected \r\n </ng-container>\r\n <ng-container *ngIf=\"!multi\" >\r\n {{selectedValues?.[0]?.[searchField]}}\r\n </ng-container>\r\n </div>\r\n <div [ngClass]=\"showDropdown ? '' : 'd-none'\" class=\"input-container dropdown\" >\r\n <div class=\"w-100 input-wrapper\">\r\n <input [(ngModel)]=\"searchValue\" placeholder=\"Search\" (input)=\"onInput($event)\" type=\"text\"> \r\n <svg class=\"search-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <path d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\" stroke=\"#667085\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n <ul>\r\n <li *ngIf=\"multi && filteredValues?.length\">\r\n <label class=\"form-check\" for=\"selectAll\">\r\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\r\n id=\"selectAll\">\r\n <span class=\"form-check-label\" >\r\n Select All\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngFor=\"let item of filteredValues\" [ngClass]=\"item.isSelected && !multi ? 'selected' : ''\" >\r\n <label [for]=\"item[idField] + instanceId\" [ngClass]=\"multi ? '': 'ps-0'\" class=\"form-check\">\r\n <input [ngClass]=\"multi ? '': 'd-none'\" (change)=\"onSelect($event, item)\" [(ngModel)]=\"item.isSelected\" class=\"form-check-input me-3\" type=\"checkbox\" value=\"\"\r\n [id]=\"item[idField] + instanceId\">\r\n <span class=\"form-check-label\" >\r\n {{item[searchField]}}\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngIf=\"!filteredValues?.length\" >\r\n <span class=\"d-flex align-items-center justify-content-center\" >No data found</span>\r\n </li>\r\n </ul> \r\n </div> \r\n \r\n</div>", styles: [":host{width:100%;height:100%}.outer-container{position:relative;background-color:#fff}.outer-container .form-select{font-size:1.1rem;font-weight:600;border-radius:8px!important;color:var(--Gray-500, #344054);border:1px solid var(--Gray-300, #D0D5DD)!important;height:42.5px}.outer-container .disable-input{pointer-events:none;background-color:#f9fafb!important}.outer-container .input-container{position:absolute;width:100%;z-index:1}.outer-container .input-container .input-wrapper{padding:8px 10px;background-color:#fff;border-top-right-radius:8px;border-top-left-radius:8px;border-top:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container .input-wrapper input{width:100%;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;padding:10px 14px 10px 30px;outline:none}.outer-container .input-container .input-wrapper input ::placeholder{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .input-wrapper .search-icon{position:absolute;left:20px;top:20px}.outer-container .input-container ul{position:relative;background-color:#fff;margin:0;padding:0;max-height:200px;min-height:auto;overflow-y:auto;border-bottom-right-radius:8px;border-bottom-left-radius:8px;border-bottom:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container ul .selected{background:#f9fafb}.outer-container .input-container ul li{list-style:none;padding:10px 16px;cursor:pointer}.outer-container .input-container ul li label{cursor:pointer}.outer-container .input-container ul li:hover{background:#f9fafb}.form-check{display:flex;align-items:center}.form-check-input{height:16px;width:16px;border-radius:4px;border:1px solid var(--Primary-600, #00A3FF)}.form-check-input:checked{--bs-form-check-bg-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB4SURBVHgBhY7NDUBQEIRnqcJNKXTg6qYTStCB+Isy6IQSNMDa9SLh5eWZZPcw+81kCX/quABhD73QyKXsGoyIvNCJSto2hEhNtY4N9cwYeMXEsVqB1GaSauRQOpty2tSmO3FgloAmF5nEhgyoesMO6CuFW66fn2xdFyA3ZzcRLrMAAAAASUVORK5CYII=);background-color:#eaf8ff;border-color:#00a3ff}.form-check-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.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: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
131
|
+
}
|
|
132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomSelectComponent, decorators: [{
|
|
133
|
+
type: Component,
|
|
134
|
+
args: [{ selector: 'lib-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"outer-container\">\r\n <div [ngClass]=\"disabled ? 'disable-input':''\" (click)=\"openDropdown($event)\" class=\"form-select\">\r\n <ng-container *ngIf=\"multi\" >\r\n {{selectedValues?.length}} {{label}} Selected \r\n </ng-container>\r\n <ng-container *ngIf=\"!multi\" >\r\n {{selectedValues?.[0]?.[searchField]}}\r\n </ng-container>\r\n </div>\r\n <div [ngClass]=\"showDropdown ? '' : 'd-none'\" class=\"input-container dropdown\" >\r\n <div class=\"w-100 input-wrapper\">\r\n <input [(ngModel)]=\"searchValue\" placeholder=\"Search\" (input)=\"onInput($event)\" type=\"text\"> \r\n <svg class=\"search-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <path d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\" stroke=\"#667085\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n <ul>\r\n <li *ngIf=\"multi && filteredValues?.length\">\r\n <label class=\"form-check\" for=\"selectAll\">\r\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\r\n id=\"selectAll\">\r\n <span class=\"form-check-label\" >\r\n Select All\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngFor=\"let item of filteredValues\" [ngClass]=\"item.isSelected && !multi ? 'selected' : ''\" >\r\n <label [for]=\"item[idField] + instanceId\" [ngClass]=\"multi ? '': 'ps-0'\" class=\"form-check\">\r\n <input [ngClass]=\"multi ? '': 'd-none'\" (change)=\"onSelect($event, item)\" [(ngModel)]=\"item.isSelected\" class=\"form-check-input me-3\" type=\"checkbox\" value=\"\"\r\n [id]=\"item[idField] + instanceId\">\r\n <span class=\"form-check-label\" >\r\n {{item[searchField]}}\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngIf=\"!filteredValues?.length\" >\r\n <span class=\"d-flex align-items-center justify-content-center\" >No data found</span>\r\n </li>\r\n </ul> \r\n </div> \r\n \r\n</div>", styles: [":host{width:100%;height:100%}.outer-container{position:relative;background-color:#fff}.outer-container .form-select{font-size:1.1rem;font-weight:600;border-radius:8px!important;color:var(--Gray-500, #344054);border:1px solid var(--Gray-300, #D0D5DD)!important;height:42.5px}.outer-container .disable-input{pointer-events:none;background-color:#f9fafb!important}.outer-container .input-container{position:absolute;width:100%;z-index:1}.outer-container .input-container .input-wrapper{padding:8px 10px;background-color:#fff;border-top-right-radius:8px;border-top-left-radius:8px;border-top:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container .input-wrapper input{width:100%;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;padding:10px 14px 10px 30px;outline:none}.outer-container .input-container .input-wrapper input ::placeholder{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .input-wrapper .search-icon{position:absolute;left:20px;top:20px}.outer-container .input-container ul{position:relative;background-color:#fff;margin:0;padding:0;max-height:200px;min-height:auto;overflow-y:auto;border-bottom-right-radius:8px;border-bottom-left-radius:8px;border-bottom:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container ul .selected{background:#f9fafb}.outer-container .input-container ul li{list-style:none;padding:10px 16px;cursor:pointer}.outer-container .input-container ul li label{cursor:pointer}.outer-container .input-container ul li:hover{background:#f9fafb}.form-check{display:flex;align-items:center}.form-check-input{height:16px;width:16px;border-radius:4px;border:1px solid var(--Primary-600, #00A3FF)}.form-check-input:checked{--bs-form-check-bg-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB4SURBVHgBhY7NDUBQEIRnqcJNKXTg6qYTStCB+Isy6IQSNMDa9SLh5eWZZPcw+81kCX/quABhD73QyKXsGoyIvNCJSto2hEhNtY4N9cwYeMXEsVqB1GaSauRQOpty2tSmO3FgloAmF5nEhgyoesMO6CuFW66fn2xdFyA3ZzcRLrMAAAAASUVORK5CYII=);background-color:#eaf8ff;border-color:#00a3ff}.form-check-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}\n"] }]
|
|
135
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.AuthService }], propDecorators: { onClick: [{
|
|
136
|
+
type: HostListener,
|
|
137
|
+
args: ['document:click', ['$event']]
|
|
138
|
+
}], items: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}], searchField: [{
|
|
141
|
+
type: Input
|
|
142
|
+
}], multi: [{
|
|
143
|
+
type: Input
|
|
144
|
+
}], idField: [{
|
|
145
|
+
type: Input
|
|
146
|
+
}], selectedValues: [{
|
|
147
|
+
type: Input
|
|
148
|
+
}], disabled: [{
|
|
149
|
+
type: Input
|
|
150
|
+
}], label: [{
|
|
151
|
+
type: Input
|
|
152
|
+
}], selected: [{
|
|
153
|
+
type: Output
|
|
154
|
+
}] } });
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9jb21tb24vY3VzdG9tLXNlbGVjdC9jdXN0b20tc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9jdXN0b20tc2VsZWN0L2N1c3RvbS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7O0FBU25LLE1BQU0sT0FBTyxxQkFBcUI7SUF5Qlo7SUFBK0I7SUF0Qm5ELE9BQU8sQ0FBQyxLQUFpQjtRQUN2QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFUSxLQUFLLENBQUs7SUFDVixXQUFXLENBQVE7SUFDbkIsS0FBSyxDQUFTO0lBQ2QsT0FBTyxDQUFRO0lBQ2YsY0FBYyxHQUFRLEVBQUUsQ0FBQTtJQUN4QixRQUFRLENBQXFCO0lBQzdCLEtBQUssQ0FBUTtJQUVaLFFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFBO0lBQzVDLGNBQWMsR0FBUSxFQUFFLENBQUE7SUFDeEIsWUFBWSxDQUFTO0lBQ3JCLFdBQVcsQ0FBUTtJQUNuQixVQUFVLENBQU07SUFHaEIsWUFBb0IsRUFBcUIsRUFBVSxXQUF1QjtRQUF0RCxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFZO0lBQUksQ0FBQztJQUMvRSxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUU7WUFDOUMsSUFBRyxDQUFDLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBQztnQkFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUE7Z0JBQ3pCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUE7YUFDeEI7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFFaEMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDMUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFlBQVksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFlBQVksRUFBRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1TCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFBO0lBQzdCLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQyxZQUFpQixFQUFFLEVBQUU7WUFDakQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQyxZQUFpQixFQUFFLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDN0gsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7YUFDeEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBVTtRQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3RELEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN6QyxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVU7UUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2QzthQUFNO1lBQ0wsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUMxRCxDQUFDO1NBQ0g7UUFDRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVSxFQUFFLElBQVM7UUFDNUIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFFLENBQUM7YUFDakM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDNUc7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBVyxFQUFFLEVBQUU7Z0JBQzFDLElBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFDO29CQUM5QyxPQUFPLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQTtpQkFDM0I7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1NBQzNCO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUMxRCxNQUFNLFlBQVksR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7WUFDbEMsT0FBTyxZQUFZLENBQUMsVUFBVSxDQUFDO1lBQy9CLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFeEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO1FBQzlDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxDQUFDO1FBRXhFLElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2hEO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztTQUMxQjtRQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDMUQsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLEtBQUssQ0FBQztZQUM5QyxPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFHRCxrQkFBa0IsQ0FBQyxNQUFhO1FBQzlCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzVCO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7d0dBMUlVLHFCQUFxQjs0RkFBckIscUJBQXFCLDRVQ1RsQyw2Z0ZBeUNNOzs0RkRoQ08scUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTTtnSEFLL0MsT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVFqQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG4gXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jdXN0b20tc2VsZWN0LmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1c3RvbVNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcclxuIFxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KCcuZHJvcGRvd24nKSkge1xyXG4gICAgICB0aGlzLnNob3dEcm9wZG93biA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuIFxyXG4gIEBJbnB1dCgpIGl0ZW1zOiBhbnlcclxuICBASW5wdXQoKSBzZWFyY2hGaWVsZDogc3RyaW5nXHJcbiAgQElucHV0KCkgbXVsdGk6IGJvb2xlYW5cclxuICBASW5wdXQoKSBpZEZpZWxkOiBzdHJpbmdcclxuICBASW5wdXQoKSBzZWxlY3RlZFZhbHVlczogYW55ID0gW11cclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZFxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmdcclxuIFxyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXHJcbiAgZmlsdGVyZWRWYWx1ZXM6IGFueSA9IFtdXHJcbiAgc2hvd0Ryb3Bkb3duOiBib29sZWFuXHJcbiAgc2VhcmNoVmFsdWU6IHN0cmluZ1xyXG4gIGluc3RhbmNlSWQ6IGFueTtcclxuIFxyXG4gXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgYXV0aFNlcnZpY2U6QXV0aFNlcnZpY2UpIHsgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnN0YW5jZUlkID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UuZHJvcERvd25UcmlnZ2VyLnN1YnNjcmliZSgoZSk9PnsgICAgICAgICAgIFxyXG4gICAgICBpZihlICE9PSB0aGlzLmluc3RhbmNlSWQpeyAgICAgICAgXHJcbiAgICAgICAgdGhpcy5zaG93RHJvcGRvd24gPSBmYWxzZVxyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gXHJcbiAgICBpZiAoY2hhbmdlc1snaXRlbXMnXSAmJiB0aGlzLml0ZW1zPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplSXRlbXMoKTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydzZWxlY3RlZFZhbHVlcyddICYmIEFycmF5LmlzQXJyYXkoY2hhbmdlc1snc2VsZWN0ZWRWYWx1ZXMnXT8uY3VycmVudFZhbHVlKSAmJiBjaGFuZ2VzWydzZWxlY3RlZFZhbHVlcyddPy5jdXJyZW50VmFsdWU/Lmxlbmd0aCA+IDAgJiYgY2hhbmdlc1snc2VsZWN0ZWRWYWx1ZXMnXT8uY3VycmVudFZhbHVlWzBdKSB7ICAgICAgICAgICAgXHJcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZXMoKTtcclxuICAgIH1cclxuICB9XHJcbiBcclxuICBpbml0aWFsaXplSXRlbXMoKSB7XHJcbiAgICB0aGlzLmZpbHRlcmVkVmFsdWVzID0gdGhpcy5pdGVtcy5tYXAoKGl0ZW06IGFueSkgPT4gKHsgLi4uaXRlbSB9KSk7XHJcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWVzKClcclxuICB9XHJcbiBcclxuICB1cGRhdGVTZWxlY3RlZFZhbHVlcygpIHsgICAgXHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVzPy5mb3JFYWNoKChzZWxlY3RlZEl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5maWx0ZXJlZFZhbHVlcz8uZmluZCgoZmlsdGVyZWRJdGVtOiBhbnkpID0+IGZpbHRlcmVkSXRlbT8uW3RoaXMuaWRGaWVsZF0gPT09IHNlbGVjdGVkSXRlbT8uW3RoaXMuaWRGaWVsZF0pO1xyXG4gICAgICBpZiAoaXRlbSkge1xyXG4gICAgICAgIGl0ZW0uaXNTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICBcclxuICB9XHJcbiBcclxuICBvcGVuRHJvcGRvd24oZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5kcm9wRG93blRyaWdnZXIubmV4dCh0aGlzLmluc3RhbmNlSWQpXHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gIXRoaXMuc2hvd0Ryb3Bkb3duO1xyXG4gIH1cclxuIFxyXG4gIG9uSW5wdXQoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKCFldmVudC50YXJnZXQudmFsdWUpIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZFZhbHVlcyA9IFsuLi50aGlzLml0ZW1zXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHNlYXJjaFRlcm0gPSBldmVudC50YXJnZXQudmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgdGhpcy5maWx0ZXJlZFZhbHVlcyA9IHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtOiBhbnkpID0+XHJcbiAgICAgICAgaXRlbVt0aGlzLnNlYXJjaEZpZWxkXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWVzKCk7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiBcclxuICBvblNlbGVjdChldmVudDogYW55LCBpdGVtOiBhbnkpIHsgICAgXHJcbiAgICBpZiAodGhpcy5tdWx0aSkge1xyXG4gICAgICBpZiAoZXZlbnQuY3VycmVudFRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5wdXNoKGl0ZW0gKTsgICAgICAgIFxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSB0aGlzLnNlbGVjdGVkVmFsdWVzLmZpbHRlcigoZWxlbTogYW55KSA9PiBlbGVtW3RoaXMuaWRGaWVsZF0gIT09IGl0ZW1bdGhpcy5pZEZpZWxkXSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbeyAuLi5pdGVtIH1dO1xyXG4gICAgICB0aGlzLmZpbHRlcmVkVmFsdWVzLmZvckVhY2goKGVsZW1lbnQ6YW55KSA9PiB7XHJcbiAgICAgICAgaWYoZWxlbWVudFt0aGlzLmlkRmllbGRdICE9PSBpdGVtW3RoaXMuaWRGaWVsZF0pe1xyXG4gICAgICAgICAgZWxlbWVudC5pc1NlbGVjdGVkID0gZmFsc2VcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNob3dEcm9wZG93biA9IGZhbHNlO1xyXG4gICAgfVxyXG4gXHJcbiAgICBjb25zdCB2YWx1ZXNUb0VtaXQgPSB0aGlzLnNlbGVjdGVkVmFsdWVzLm1hcCgodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB7IC4uLnZhbHVlIH07XHJcbiAgICAgIGRlbGV0ZSBzZWxlY3RlZEl0ZW0uaXNTZWxlY3RlZDtcclxuICAgICAgcmV0dXJuIHNlbGVjdGVkSXRlbTtcclxuICAgIH0pO1xyXG4gXHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuZW1pdFNlbGVjdGVkVmFsdWVzKHZhbHVlc1RvRW1pdCk7XHJcbiBcclxuICB9XHJcbiBcclxuICBvblNlbGVjdEFsbChldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBzZWxlY3RBbGwgPSBldmVudC5jdXJyZW50VGFyZ2V0LmNoZWNrZWQ7XHJcbiAgICB0aGlzLmZpbHRlcmVkVmFsdWVzLmZvckVhY2goKGl0ZW06IGFueSkgPT4gaXRlbS5pc1NlbGVjdGVkID0gc2VsZWN0QWxsKTtcclxuIFxyXG4gICAgaWYgKHNlbGVjdEFsbCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gWy4uLnRoaXMuZmlsdGVyZWRWYWx1ZXNdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IFtdO1xyXG4gICAgfVxyXG4gXHJcbiAgICBjb25zdCB2YWx1ZXNUb0VtaXQgPSB0aGlzLnNlbGVjdGVkVmFsdWVzLm1hcCgodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGlzU2VsZWN0ZWQsIC4uLnNlbGVjdGVkSXRlbSB9ID0gdmFsdWU7XHJcbiAgICAgIHJldHVybiBzZWxlY3RlZEl0ZW07XHJcbiAgICB9KTtcclxuIFxyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLmVtaXRTZWxlY3RlZFZhbHVlcyh2YWx1ZXNUb0VtaXQpO1xyXG4gIH1cclxuIFxyXG4gXHJcbiAgZW1pdFNlbGVjdGVkVmFsdWVzKHZhbHVlczogYW55W10pIHtcclxuICAgIGlmICh0aGlzLm11bHRpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCh2YWx1ZXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KHZhbHVlc1swXSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gXHJcbiAgY2hlY2tJZkFsbFNlbGVjdGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRWYWx1ZXMuZXZlcnkoKGl0ZW06IGFueSkgPT4gaXRlbS5pc1NlbGVjdGVkKTtcclxuICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwib3V0ZXItY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cImRpc2FibGVkID8gJ2Rpc2FibGUtaW5wdXQnOicnXCIgIChjbGljayk9XCJvcGVuRHJvcGRvd24oJGV2ZW50KVwiICBjbGFzcz1cImZvcm0tc2VsZWN0XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibXVsdGlcIiA+XHJcbiAgICB7e3NlbGVjdGVkVmFsdWVzPy5sZW5ndGh9fSB7e2xhYmVsfX0gU2VsZWN0ZWQgICAgXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbXVsdGlcIiA+XHJcbiAgICAgICAge3tzZWxlY3RlZFZhbHVlcz8uWzBdPy5bc2VhcmNoRmllbGRdfX1cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInNob3dEcm9wZG93biA/ICcnIDogJ2Qtbm9uZSdcIiBjbGFzcz1cImlucHV0LWNvbnRhaW5lciBkcm9wZG93blwiID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgaW5wdXQtd3JhcHBlclwiPlxyXG4gICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInNlYXJjaFZhbHVlXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiIHR5cGU9XCJ0ZXh0XCI+ICBcclxuICAgICAgICA8c3ZnIGNsYXNzPVwic2VhcmNoLWljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE3XCIgdmlld0JveD1cIjAgMCAxNiAxN1wiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTQgMTQuNUwxMS4xIDExLjZNMTIuNjY2NyA3LjgzMzMzQzEyLjY2NjcgMTAuNzc4OSAxMC4yNzg5IDEzLjE2NjcgNy4zMzMzMyAxMy4xNjY3QzQuMzg3ODEgMTMuMTY2NyAyIDEwLjc3ODkgMiA3LjgzMzMzQzIgNC44ODc4MSA0LjM4NzgxIDIuNSA3LjMzMzMzIDIuNUMxMC4yNzg5IDIuNSAxMi42NjY3IDQuODg3ODEgMTIuNjY2NyA3LjgzMzMzWlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICA8L3N2Zz4gIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDx1bD5cclxuICAgICAgICAgICAgPGxpICpuZ0lmPVwibXVsdGkgJiYgZmlsdGVyZWRWYWx1ZXM/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVja1wiIGZvcj1cInNlbGVjdEFsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCAoY2hhbmdlKT1cIm9uU2VsZWN0QWxsKCRldmVudClcIiBbY2hlY2tlZF09XCJjaGVja0lmQWxsU2VsZWN0ZWQoKVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtZS0zXCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzZWxlY3RBbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBBbGxcclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRWYWx1ZXNcIiBbbmdDbGFzc109XCJpdGVtLmlzU2VsZWN0ZWQgJiYgIW11bHRpID8gJ3NlbGVjdGVkJyA6ICcnXCIgPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiaXRlbVtpZEZpZWxkXSArIGluc3RhbmNlSWRcIiBbbmdDbGFzc109XCJtdWx0aSAgPyAnJzogJ3BzLTAnXCIgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtuZ0NsYXNzXT1cIm11bHRpICA/ICcnOiAnZC1ub25lJ1wiIChjaGFuZ2UpPVwib25TZWxlY3QoJGV2ZW50LCBpdGVtKVwiIFsobmdNb2RlbCldPVwiaXRlbS5pc1NlbGVjdGVkXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG1lLTNcIiB0eXBlPVwiY2hlY2tib3hcIiB2YWx1ZT1cIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJpdGVtW2lkRmllbGRdICsgaW5zdGFuY2VJZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtW3NlYXJjaEZpZWxkXX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpICpuZ0lmPVwiIWZpbHRlcmVkVmFsdWVzPy5sZW5ndGhcIiA+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiID5ObyBkYXRhIGZvdW5kPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+ICBcclxuICAgIDwvZGl2PiAgXHJcbiAgIFxyXG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/router";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/forms";
|
|
6
|
+
export class FiltersComponent {
|
|
7
|
+
elementRef;
|
|
8
|
+
renderer;
|
|
9
|
+
router;
|
|
10
|
+
cd;
|
|
11
|
+
dataObject = [];
|
|
12
|
+
appliedFilters = new EventEmitter();
|
|
13
|
+
Opendropdown = false;
|
|
14
|
+
showdropdown;
|
|
15
|
+
selectedValues = [];
|
|
16
|
+
searchTerms = [];
|
|
17
|
+
selectedValuesArray = [];
|
|
18
|
+
searchValue;
|
|
19
|
+
selectedItem;
|
|
20
|
+
dropDown = false;
|
|
21
|
+
dummyArray = [];
|
|
22
|
+
noFilter = false;
|
|
23
|
+
responseArray = [];
|
|
24
|
+
productModule;
|
|
25
|
+
product;
|
|
26
|
+
selectedProductCount;
|
|
27
|
+
constructor(elementRef, renderer, router, cd) {
|
|
28
|
+
this.elementRef = elementRef;
|
|
29
|
+
this.renderer = renderer;
|
|
30
|
+
this.router = router;
|
|
31
|
+
this.cd = cd;
|
|
32
|
+
}
|
|
33
|
+
onClick(event) {
|
|
34
|
+
const target = event.target;
|
|
35
|
+
if (!target.closest('.dropdown1')) {
|
|
36
|
+
this.Opendropdown = false;
|
|
37
|
+
}
|
|
38
|
+
if (!target.closest('.dropdown-content')) {
|
|
39
|
+
this.dataObject.forEach((item, i) => {
|
|
40
|
+
item.isOpen = false;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
ngOnInit() {
|
|
45
|
+
this.dataObject.forEach((item) => {
|
|
46
|
+
let selectedList = item?.Issues.filter((data) => data?.checked);
|
|
47
|
+
this.selectedValuesArray.push(selectedList);
|
|
48
|
+
});
|
|
49
|
+
this.dummyArray = JSON.parse(JSON.stringify(this.dataObject));
|
|
50
|
+
this.responseArray = JSON.parse(JSON.stringify(this.dataObject));
|
|
51
|
+
}
|
|
52
|
+
selectItem(event, index, subIndex) {
|
|
53
|
+
this.selectedValuesArray[index] = this.dataObject[index].Issues[subIndex];
|
|
54
|
+
}
|
|
55
|
+
openDropdown(event, index) {
|
|
56
|
+
event.stopPropagation();
|
|
57
|
+
this.dataObject.forEach((item, i) => {
|
|
58
|
+
if (i !== index) {
|
|
59
|
+
item.isOpen = false; // Close other dropdowns
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
this.dataObject[index].isOpen = !this.dataObject[index].isOpen;
|
|
63
|
+
}
|
|
64
|
+
opendropdown(e) {
|
|
65
|
+
e.stopPropagation();
|
|
66
|
+
this.Opendropdown = !this.Opendropdown;
|
|
67
|
+
}
|
|
68
|
+
Dropdown(value, index, event) {
|
|
69
|
+
event.stopPropagation();
|
|
70
|
+
this.dataObject.forEach((item, i) => {
|
|
71
|
+
if (i !== index) {
|
|
72
|
+
item.isOpen = false; // Close other dropdowns
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
this.dataObject[index].isOpen = !this.dataObject[index].isOpen;
|
|
76
|
+
}
|
|
77
|
+
toggleCheckbox(event, issue, index, subIndex) {
|
|
78
|
+
if (!this.selectedValuesArray.length) {
|
|
79
|
+
this.dataObject.forEach((item) => {
|
|
80
|
+
let selectedList = item?.Issues.filter((data) => data?.checked);
|
|
81
|
+
this.selectedValuesArray.push(selectedList);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
const currentIssues = this.dataObject[index].Issues;
|
|
85
|
+
this.selectedValuesArray[index] = this.selectedValuesArray[index];
|
|
86
|
+
const selectedValues = this.selectedValuesArray[index]; // Retrieve selected values array for the current dropdown index
|
|
87
|
+
if (issue === 'Select All') {
|
|
88
|
+
const checkedState = event.target.checked;
|
|
89
|
+
this.dataObject[index].Issues.forEach((item) => {
|
|
90
|
+
item.checked = checkedState;
|
|
91
|
+
});
|
|
92
|
+
if (checkedState) {
|
|
93
|
+
this.selectedValuesArray[index] = currentIssues.slice(); // Copy all items
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
this.selectedValuesArray[index] = []; // Deselect all items
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
this.dataObject[index].Issues[subIndex].checked = event.target.checked;
|
|
101
|
+
let checkedData = this.dataObject[index].Issues[subIndex];
|
|
102
|
+
if (this.dataObject[index].Issues[subIndex].checked) {
|
|
103
|
+
this.selectedValuesArray[index].push(checkedData);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
this.selectedValuesArray[index] = this.selectedValuesArray[index].filter((el) => el?.checked === true && el?.text != issue);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
const selectAllId = `selectall${index}`;
|
|
110
|
+
const selectAllElement = document.getElementById(selectAllId);
|
|
111
|
+
if (selectAllElement) {
|
|
112
|
+
selectAllElement.checked = selectedValues.length === currentIssues.length;
|
|
113
|
+
}
|
|
114
|
+
// Update checkboxes based on selected values
|
|
115
|
+
currentIssues.forEach((item) => {
|
|
116
|
+
const isChecked = this.selectedValuesArray[index].includes(item);
|
|
117
|
+
const checkboxId = `option${item}`;
|
|
118
|
+
const checkboxElement = document.getElementById(checkboxId);
|
|
119
|
+
if (checkboxElement) {
|
|
120
|
+
checkboxElement.checked = isChecked;
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
Reset() {
|
|
125
|
+
this.selectedValuesArray.forEach((item) => {
|
|
126
|
+
if (item?.length) {
|
|
127
|
+
item.forEach((data) => { data.checked = false; });
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
this.selectedValuesArray = [];
|
|
131
|
+
this.Opendropdown = false;
|
|
132
|
+
this.responseArray.forEach((item, index) => {
|
|
133
|
+
item.Issues = this.selectedValuesArray[index] ? this.selectedValuesArray[index] : [];
|
|
134
|
+
});
|
|
135
|
+
this.appliedFilters.emit(this.responseArray);
|
|
136
|
+
}
|
|
137
|
+
searchData(event, i) {
|
|
138
|
+
const searchTerm = event.target.value.trim(); // Trim whitespace
|
|
139
|
+
const filteredIssues = this.dummyArray[i]?.Issues.filter((item) => {
|
|
140
|
+
let findChecked = this.selectedValuesArray[i]?.find((issue) => issue.text == item.text);
|
|
141
|
+
if (findChecked) {
|
|
142
|
+
item.checked = findChecked?.checked ? findChecked?.checked : false;
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
item.checked = false;
|
|
146
|
+
}
|
|
147
|
+
return new RegExp(searchTerm, 'i').test(item.text);
|
|
148
|
+
});
|
|
149
|
+
this.dataObject[i].Issues = filteredIssues;
|
|
150
|
+
if (filteredIssues.length) {
|
|
151
|
+
this.noFilter = false;
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
this.noFilter = true;
|
|
155
|
+
}
|
|
156
|
+
this.cd.detectChanges();
|
|
157
|
+
}
|
|
158
|
+
Apply() {
|
|
159
|
+
this.Opendropdown = false;
|
|
160
|
+
this.responseArray.forEach((item, index) => {
|
|
161
|
+
item.Issues = this.selectedValuesArray[index] ? this.selectedValuesArray[index] : [];
|
|
162
|
+
});
|
|
163
|
+
this.appliedFilters.emit(this.responseArray);
|
|
164
|
+
}
|
|
165
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FiltersComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
166
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FiltersComponent, selector: "lib-filters", inputs: { dataObject: "dataObject" }, outputs: { appliedFilters: "appliedFilters" }, host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0, template: "<div class=\"position-relative\">\r\n \r\n <button type=\"button\" (click)=\"opendropdown($event)\"\r\n class=\"btn btn-default bg-white mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n class=\"pl-3\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M5 10H15M2.5 5H17.5M7.5 15H12.5\" stroke=\"#344054\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"ms-2\">Filter</span> </button>\r\n <div class=\"card p-5 dropdown1 position-absolute z-1 end-0\" style=\"z-index: 1 !important;\" *ngIf=\"Opendropdown\">\r\n <div class=\"dropdown-title d-flex justify-content-between\">Filter Options\r\n <!-- <div class=\"text-end\"> -->\r\n <button class=\"btn btn-outline w-25 ms-3 btn-resize\" (click)=\"Reset()\"> Reset </button>\r\n <button class=\"btn btn-primary w-25 btn-resize\" (click)=\"Apply()\">Apply</button>\r\n <!-- </div> -->\r\n </div>\r\n <div class=\"w-100 border border-gray mt-3\"></div>\r\n <div class=\"py-3\" *ngFor=\"let item of dataObject; let i = index\">\r\n <div *ngIf=\"item.type !== 'single'\">\r\n <div class=\"dropdown form-select position-relative d-flex justify-content-between cursor-pointer\" (click)=\"Dropdown(item.Description,i,$event)\">\r\n <!-- <span class=\"\">{{ selectedValuesArray[i]?.length !== null && selectedValuesArray[i]?.length !== undefined ? selectedValuesArray[i]?.length + ' ' + item.Description.split(' ').pop() + ' Selected' : item.Description }}</span> -->\r\n <span>{{item.Description}}</span> <span *ngIf=\"selectedValuesArray[i]?.length !== null && selectedValuesArray[i]?.length !== undefined && selectedValuesArray[i]?.length !== 0\" class=\"badge badge-light-default\">{{selectedValuesArray[i]?.length}}</span>\r\n </div>\r\n <div *ngIf=\"item.isOpen\" class=\"dropdown-content position-absolute w-100\">\r\n <div class=\"form-check d-flex align-items-center py-3 pt-3 ps-0\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"checkbox\" value=\"Select All\" id=\"selectall{{i}}\" [checked]=\"selectedValuesArray[i]?.length === item.Issues.length\"\r\n (change)=\"toggleCheckbox($event,'Select All', i,0)\">\r\n <label class=\"form-check-label cursor-pointer px-2\" for=\"selectall{{i}}\">\r\n Select All\r\n </label>\r\n </div>\r\n \r\n <div class=\"border border-gray mt-3 \"></div>\r\n \r\n <div class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3 mt-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <path d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\" stroke=\"#667085\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <input type=\"text\" [(ngModel)]=\"dataObject[i].selectedValue\" (input)=\"searchData($event,i)\" [id]=\"i\" class=\"form-control searchinput ps-14 py-2 me-2 mt-2\"\r\n placeholder=\"Search\" autocomplete=\"off\" />\r\n </div>\r\n \r\n <div *ngFor=\"let issue of item.Issues;let j=index\" class=\"form-check d-flex align-items-center py-3 pt-3 ps-0 mt-2 \">\r\n <input class=\"form-check-input cursor-pointer\" type=\"checkbox\" [value]=\"issue.text\" id=\"option{{issue.text}}\" [checked]=\"issue.checked\"\r\n (change)=\"toggleCheckbox($event,issue.text,i,j)\">\r\n <label class=\"form-check-label cursor-pointer px-2\" for=\"option{{issue.text}}\">\r\n {{ issue.text }}\r\n </label>\r\n </div>\r\n <div class=\"mt-5 d-flex justify-content-center\">\r\n <span class=\"form-check-label\" *ngIf=\"noFilter\"> No filters available</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"item.type === 'single'\" class=\"position-relative w-100\">\r\n <button type=\"button\" (click)=\"openDropdown($event,i)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between\"> {{selectedValuesArray[i]?.text ? selectedValuesArray[i]?.text : item.Description}}\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"item.isOpen\" class=\"card py-1 w-100 dropdown-single position-absolute z-1 top-50px end-0\">\r\n <ul *ngFor=\"let item of item.Issues; let j = index\" class=\"list-unstyled\">\r\n <li [ngClass]=\"selectedValuesArray[i]?.text === item.text ? 'active' : ''\" class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"selectItem($event,i,j)\">{{item.text}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <div role=\"group\" class=\"d-flex justify-content-between\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"Reset()\"> Reset </button>\r\n <button class=\"btn btn-primary w-100 ms-2\" (click)=\"Apply()\">Apply</button>\r\n </div> -->\r\n </div>\r\n</div>", styles: [".dropdown1{position:absolute;top:53px!important;min-width:270px!important}.dropdown1 .dropdown-title{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:24px}.dropdown1 .dropdown{position:relative;display:inline-block}.dropdown1 .dropdown span{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:20px}.dropdown1 .dropdown-content{width:90%!important;z-index:1;padding:10px;background-color:#fff;border-radius:8px;box-shadow:0 8px 16px #0003;height:200px;overflow:auto}.dropdown1 .dropdown-content label{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px;text-transform:capitalize}.dropdown1 .items:hover,.dropdown1 .tems.focus,.dropdown1 .items.active,.dropdown1 .camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.dropdown1 .dropdown-content a{color:#000;padding:12px 16px;text-decoration:none;display:block}.dropdown1 .dropdown button{padding:10px;font-size:16px;cursor:pointer}.dropdown1 input[type=checkbox]{width:16px!important;height:16px!important;margin:-3px 5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}.dropdown1 input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF)}.dropdown1 input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.2em;padding-left:0;padding-top:9px;padding-right:4px}::ng-deep .dropdown1{z-index:1!important}.btn-resize{font-size:13px!important;height:29px!important;line-height:11px!important;padding:1px!important}.dropdown-single{z-index:1;padding:10px;background-color:#fff;border-radius:8px;box-shadow:0 8px 16px #0003;min-height:auto;max-height:200px;overflow:auto}.dropdown-single label{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px;text-transform:capitalize}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
167
|
+
}
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FiltersComponent, decorators: [{
|
|
169
|
+
type: Component,
|
|
170
|
+
args: [{ selector: 'lib-filters', template: "<div class=\"position-relative\">\r\n \r\n <button type=\"button\" (click)=\"opendropdown($event)\"\r\n class=\"btn btn-default bg-white mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n class=\"pl-3\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M5 10H15M2.5 5H17.5M7.5 15H12.5\" stroke=\"#344054\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"ms-2\">Filter</span> </button>\r\n <div class=\"card p-5 dropdown1 position-absolute z-1 end-0\" style=\"z-index: 1 !important;\" *ngIf=\"Opendropdown\">\r\n <div class=\"dropdown-title d-flex justify-content-between\">Filter Options\r\n <!-- <div class=\"text-end\"> -->\r\n <button class=\"btn btn-outline w-25 ms-3 btn-resize\" (click)=\"Reset()\"> Reset </button>\r\n <button class=\"btn btn-primary w-25 btn-resize\" (click)=\"Apply()\">Apply</button>\r\n <!-- </div> -->\r\n </div>\r\n <div class=\"w-100 border border-gray mt-3\"></div>\r\n <div class=\"py-3\" *ngFor=\"let item of dataObject; let i = index\">\r\n <div *ngIf=\"item.type !== 'single'\">\r\n <div class=\"dropdown form-select position-relative d-flex justify-content-between cursor-pointer\" (click)=\"Dropdown(item.Description,i,$event)\">\r\n <!-- <span class=\"\">{{ selectedValuesArray[i]?.length !== null && selectedValuesArray[i]?.length !== undefined ? selectedValuesArray[i]?.length + ' ' + item.Description.split(' ').pop() + ' Selected' : item.Description }}</span> -->\r\n <span>{{item.Description}}</span> <span *ngIf=\"selectedValuesArray[i]?.length !== null && selectedValuesArray[i]?.length !== undefined && selectedValuesArray[i]?.length !== 0\" class=\"badge badge-light-default\">{{selectedValuesArray[i]?.length}}</span>\r\n </div>\r\n <div *ngIf=\"item.isOpen\" class=\"dropdown-content position-absolute w-100\">\r\n <div class=\"form-check d-flex align-items-center py-3 pt-3 ps-0\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"checkbox\" value=\"Select All\" id=\"selectall{{i}}\" [checked]=\"selectedValuesArray[i]?.length === item.Issues.length\"\r\n (change)=\"toggleCheckbox($event,'Select All', i,0)\">\r\n <label class=\"form-check-label cursor-pointer px-2\" for=\"selectall{{i}}\">\r\n Select All\r\n </label>\r\n </div>\r\n \r\n <div class=\"border border-gray mt-3 \"></div>\r\n \r\n <div class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3 mt-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <path d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\" stroke=\"#667085\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <input type=\"text\" [(ngModel)]=\"dataObject[i].selectedValue\" (input)=\"searchData($event,i)\" [id]=\"i\" class=\"form-control searchinput ps-14 py-2 me-2 mt-2\"\r\n placeholder=\"Search\" autocomplete=\"off\" />\r\n </div>\r\n \r\n <div *ngFor=\"let issue of item.Issues;let j=index\" class=\"form-check d-flex align-items-center py-3 pt-3 ps-0 mt-2 \">\r\n <input class=\"form-check-input cursor-pointer\" type=\"checkbox\" [value]=\"issue.text\" id=\"option{{issue.text}}\" [checked]=\"issue.checked\"\r\n (change)=\"toggleCheckbox($event,issue.text,i,j)\">\r\n <label class=\"form-check-label cursor-pointer px-2\" for=\"option{{issue.text}}\">\r\n {{ issue.text }}\r\n </label>\r\n </div>\r\n <div class=\"mt-5 d-flex justify-content-center\">\r\n <span class=\"form-check-label\" *ngIf=\"noFilter\"> No filters available</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"item.type === 'single'\" class=\"position-relative w-100\">\r\n <button type=\"button\" (click)=\"openDropdown($event,i)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between\"> {{selectedValuesArray[i]?.text ? selectedValuesArray[i]?.text : item.Description}}\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"item.isOpen\" class=\"card py-1 w-100 dropdown-single position-absolute z-1 top-50px end-0\">\r\n <ul *ngFor=\"let item of item.Issues; let j = index\" class=\"list-unstyled\">\r\n <li [ngClass]=\"selectedValuesArray[i]?.text === item.text ? 'active' : ''\" class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"selectItem($event,i,j)\">{{item.text}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <div role=\"group\" class=\"d-flex justify-content-between\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"Reset()\"> Reset </button>\r\n <button class=\"btn btn-primary w-100 ms-2\" (click)=\"Apply()\">Apply</button>\r\n </div> -->\r\n </div>\r\n</div>", styles: [".dropdown1{position:absolute;top:53px!important;min-width:270px!important}.dropdown1 .dropdown-title{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:24px}.dropdown1 .dropdown{position:relative;display:inline-block}.dropdown1 .dropdown span{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:20px}.dropdown1 .dropdown-content{width:90%!important;z-index:1;padding:10px;background-color:#fff;border-radius:8px;box-shadow:0 8px 16px #0003;height:200px;overflow:auto}.dropdown1 .dropdown-content label{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px;text-transform:capitalize}.dropdown1 .items:hover,.dropdown1 .tems.focus,.dropdown1 .items.active,.dropdown1 .camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.dropdown1 .dropdown-content a{color:#000;padding:12px 16px;text-decoration:none;display:block}.dropdown1 .dropdown button{padding:10px;font-size:16px;cursor:pointer}.dropdown1 input[type=checkbox]{width:16px!important;height:16px!important;margin:-3px 5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}.dropdown1 input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF)}.dropdown1 input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.2em;padding-left:0;padding-top:9px;padding-right:4px}::ng-deep .dropdown1{z-index:1!important}.btn-resize{font-size:13px!important;height:29px!important;line-height:11px!important;padding:1px!important}.dropdown-single{z-index:1;padding:10px;background-color:#fff;border-radius:8px;box-shadow:0 8px 16px #0003;min-height:auto;max-height:200px;overflow:auto}.dropdown-single label{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px;text-transform:capitalize}\n"] }]
|
|
171
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.Router }, { type: i0.ChangeDetectorRef }], propDecorators: { dataObject: [{
|
|
172
|
+
type: Input
|
|
173
|
+
}], appliedFilters: [{
|
|
174
|
+
type: Output
|
|
175
|
+
}], onClick: [{
|
|
176
|
+
type: HostListener,
|
|
177
|
+
args: ['document:click', ['$event']]
|
|
178
|
+
}] } });
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9jb21tb24vZmlsdGVycy9maWx0ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQStCLE1BQU0sZUFBZSxDQUFDOzs7OztBQVF0SSxNQUFNLE9BQU8sZ0JBQWdCO0lBa0JQO0lBQ1Y7SUFDQTtJQUNGO0lBcEJDLFVBQVUsR0FBVSxFQUFFLENBQUM7SUFDdEIsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7SUFDN0MsWUFBWSxHQUFZLEtBQUssQ0FBQztJQUU5QixZQUFZLENBQU07SUFDbEIsY0FBYyxHQUFhLEVBQUUsQ0FBQztJQUM5QixXQUFXLEdBQWEsRUFBRSxDQUFDO0lBQzNCLG1CQUFtQixHQUFVLEVBQUUsQ0FBQztJQUNoQyxXQUFXLENBQUs7SUFDaEIsWUFBWSxDQUFLO0lBQ2pCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsVUFBVSxHQUFTLEVBQUUsQ0FBQztJQUN0QixRQUFRLEdBQVcsS0FBSyxDQUFDO0lBQ3pCLGFBQWEsR0FBUyxFQUFFLENBQUE7SUFDeEIsYUFBYSxDQUFNO0lBQ25CLE9BQU8sQ0FBTTtJQUNiLG9CQUFvQixDQUFTO0lBQzdCLFlBQW9CLFVBQXNCLEVBQ2hDLFFBQW1CLEVBQ25CLE1BQWMsRUFDaEIsRUFBb0I7UUFIUixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2hDLGFBQVEsR0FBUixRQUFRLENBQVc7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WUFDL0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsRUFBRSxDQUFBO1FBQ3RGLENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQzdDLENBQUM7d0dBMUtVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLHNNQ1I3Qix3dk1BMkVNOzs0RkRuRU8sZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGFBQWE7NEpBS2QsVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQXVCUCxPQUFPO3NCQUROLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMixDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG4gXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWZpbHRlcnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXJzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZmlsdGVycy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbHRlcnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGRhdGFPYmplY3Q6IGFueVtdID0gW107XHJcbiAgQE91dHB1dCgpIGFwcGxpZWRGaWx0ZXJzID0gbmV3IEV2ZW50RW1pdHRlcigpXHJcbiAgT3BlbmRyb3Bkb3duOiBib29sZWFuID0gZmFsc2U7XHJcbiBcclxuICBzaG93ZHJvcGRvd246IGFueTtcclxuICBzZWxlY3RlZFZhbHVlczogc3RyaW5nW10gPSBbXTtcclxuICBzZWFyY2hUZXJtczogc3RyaW5nW10gPSBbXTtcclxuICBzZWxlY3RlZFZhbHVlc0FycmF5OiBhbnlbXSA9IFtdO1xyXG4gIHNlYXJjaFZhbHVlOmFueTtcclxuICBzZWxlY3RlZEl0ZW06YW55O1xyXG4gIGRyb3BEb3duOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZHVtbXlBcnJheTphbnlbXSA9IFtdO1xyXG4gIG5vRmlsdGVyOmJvb2xlYW4gPSBmYWxzZTtcclxuICByZXNwb25zZUFycmF5OmFueVtdID0gW11cclxuICBwcm9kdWN0TW9kdWxlOiBhbnk7XHJcbiAgcHJvZHVjdDogYW55O1xyXG4gIHNlbGVjdGVkUHJvZHVjdENvdW50OiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICBwcml2YXRlIGNkOkNoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICAgfVxyXG4gXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2sgKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdFxyXG4gICAgICB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZighdGFyZ2V0LmNsb3Nlc3QoJy5kcm9wZG93bjEnKSkge1xyXG4gICAgICB0aGlzLk9wZW5kcm9wZG93biA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYoIXRhcmdldC5jbG9zZXN0KCcuZHJvcGRvd24tY29udGVudCcpKXtcclxuICAgICAgdGhpcy5kYXRhT2JqZWN0LmZvckVhY2goKGl0ZW06IGFueSwgaTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpdGVtLmlzT3BlbiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiBcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZGF0YU9iamVjdC5mb3JFYWNoKChpdGVtOmFueSk9PntcclxuICAgICAgbGV0IHNlbGVjdGVkTGlzdCA9IGl0ZW0/Lklzc3Vlcy5maWx0ZXIoKGRhdGE6YW55KT0+IGRhdGE/LmNoZWNrZWQpXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheS5wdXNoKHNlbGVjdGVkTGlzdClcclxuICAgIH0pXHJcbiAgICB0aGlzLmR1bW15QXJyYXkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YU9iamVjdCkpXHJcbiAgICB0aGlzLnJlc3BvbnNlQXJyYXkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YU9iamVjdCkpXHJcbiAgfVxyXG4gXHJcbiAgc2VsZWN0SXRlbShldmVudDphbnksaW5kZXg6YW55LHN1YkluZGV4OmFueSl7XHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdID0gdGhpcy5kYXRhT2JqZWN0W2luZGV4XS5Jc3N1ZXNbc3ViSW5kZXhdO1xyXG4gIH1cclxuXHJcbiAgb3BlbkRyb3Bkb3duKGV2ZW50Ok1vdXNlRXZlbnQsaW5kZXg6YW55KXtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5kYXRhT2JqZWN0LmZvckVhY2goKGl0ZW06IGFueSwgaTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChpICE9PSBpbmRleCkge1xyXG4gICAgICAgIGl0ZW0uaXNPcGVuID0gZmFsc2U7IC8vIENsb3NlIG90aGVyIGRyb3Bkb3duc1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGF0YU9iamVjdFtpbmRleF0uaXNPcGVuID0gIXRoaXMuZGF0YU9iamVjdFtpbmRleF0uaXNPcGVuO1xyXG4gIH1cclxuIFxyXG4gXHJcbiAgb3BlbmRyb3Bkb3duKGU6TW91c2VFdmVudCkge1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuT3BlbmRyb3Bkb3duID0gIXRoaXMuT3BlbmRyb3Bkb3duO1xyXG4gIH1cclxuIFxyXG4gIERyb3Bkb3duKHZhbHVlOiBhbnksIGluZGV4OiBudW1iZXIsZXZlbnQ6TW91c2VFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmRhdGFPYmplY3QuZm9yRWFjaCgoaXRlbTogYW55LCBpOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGkgIT09IGluZGV4KSB7XHJcbiAgICAgICAgaXRlbS5pc09wZW4gPSBmYWxzZTsgLy8gQ2xvc2Ugb3RoZXIgZHJvcGRvd25zXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5kYXRhT2JqZWN0W2luZGV4XS5pc09wZW4gPSAhdGhpcy5kYXRhT2JqZWN0W2luZGV4XS5pc09wZW47XHJcbiAgfVxyXG4gXHJcbiAgdG9nZ2xlQ2hlY2tib3goZXZlbnQ6IGFueSwgaXNzdWU6IGFueSwgaW5kZXg6IG51bWJlciwgc3ViSW5kZXg6IG51bWJlcikge1xyXG4gICAgaWYoIXRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5kYXRhT2JqZWN0LmZvckVhY2goKGl0ZW06YW55KT0+e1xyXG4gICAgICAgIGxldCBzZWxlY3RlZExpc3QgPSBpdGVtPy5Jc3N1ZXMuZmlsdGVyKChkYXRhOmFueSk9PiBkYXRhPy5jaGVja2VkKVxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheS5wdXNoKHNlbGVjdGVkTGlzdClcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIGNvbnN0IGN1cnJlbnRJc3N1ZXMgPSB0aGlzLmRhdGFPYmplY3RbaW5kZXhdLklzc3VlcztcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0gPSB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZXMgPSB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdOyAvLyBSZXRyaWV2ZSBzZWxlY3RlZCB2YWx1ZXMgYXJyYXkgZm9yIHRoZSBjdXJyZW50IGRyb3Bkb3duIGluZGV4XHJcbiAgICBpZiAoaXNzdWUgPT09ICdTZWxlY3QgQWxsJykge1xyXG4gICAgICBjb25zdCBjaGVja2VkU3RhdGUgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgICAgdGhpcy5kYXRhT2JqZWN0W2luZGV4XS5Jc3N1ZXMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaXRlbS5jaGVja2VkID0gY2hlY2tlZFN0YXRlO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmIChjaGVja2VkU3RhdGUpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdID0gY3VycmVudElzc3Vlcy5zbGljZSgpOyAvLyBDb3B5IGFsbCBpdGVtc1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0gPSBbXTsgLy8gRGVzZWxlY3QgYWxsIGl0ZW1zXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGF0YU9iamVjdFtpbmRleF0uSXNzdWVzW3N1YkluZGV4XS5jaGVja2VkID0gZXZlbnQudGFyZ2V0LmNoZWNrZWQ7XHJcbiAgICAgIGxldCBjaGVja2VkRGF0YSA9IHRoaXMuZGF0YU9iamVjdFtpbmRleF0uSXNzdWVzW3N1YkluZGV4XTtcclxuICAgICAgXHJcbiAgICAgIGlmKHRoaXMuZGF0YU9iamVjdFtpbmRleF0uSXNzdWVzW3N1YkluZGV4XS5jaGVja2VkKXtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdLnB1c2goY2hlY2tlZERhdGEpXHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdID0gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XS5maWx0ZXIoKGVsOmFueSk9PlxyXG4gICAgICAgICAgZWw/LmNoZWNrZWQgPT09IHRydWUgJiYgZWw/LnRleHQgIT0gaXNzdWVcclxuICAgICAgKVxyXG4gICAgICB9ICBcclxuXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2VsZWN0QWxsSWQgPSBgc2VsZWN0YWxsJHtpbmRleH1gO1xyXG4gICAgY29uc3Qgc2VsZWN0QWxsRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNlbGVjdEFsbElkKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgaWYgKHNlbGVjdEFsbEVsZW1lbnQpIHtcclxuICAgICAgc2VsZWN0QWxsRWxlbWVudC5jaGVja2VkID0gc2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID09PSBjdXJyZW50SXNzdWVzLmxlbmd0aDtcclxuICAgIH1cclxuIFxyXG4gICAgLy8gVXBkYXRlIGNoZWNrYm94ZXMgYmFzZWQgb24gc2VsZWN0ZWQgdmFsdWVzXHJcbiAgICBjdXJyZW50SXNzdWVzLmZvckVhY2goKGl0ZW06IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBpc0NoZWNrZWQgPSB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdLmluY2x1ZGVzKGl0ZW0pO1xyXG4gICAgICBjb25zdCBjaGVja2JveElkID0gYG9wdGlvbiR7aXRlbX1gO1xyXG4gICAgICBjb25zdCBjaGVja2JveEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjaGVja2JveElkKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgICBpZiAoY2hlY2tib3hFbGVtZW50KSB7XHJcbiAgICAgICAgY2hlY2tib3hFbGVtZW50LmNoZWNrZWQgPSBpc0NoZWNrZWQ7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICBcclxuICB9XHJcbiAgUmVzZXQoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXkuZm9yRWFjaCgoaXRlbTphbnkpID0+IHtcclxuICAgICAgaWYoaXRlbT8ubGVuZ3RoKXtpdGVtLmZvckVhY2goKGRhdGE6YW55KT0+e2RhdGEuY2hlY2tlZCA9IGZhbHNlO30pXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXkgPSBbXTtcclxuICAgIHRoaXMuT3BlbmRyb3Bkb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLnJlc3BvbnNlQXJyYXkuZm9yRWFjaCgoaXRlbTphbnksaW5kZXg6YW55KT0+e1xyXG4gICAgICBpdGVtLklzc3VlcyA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0gPyB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdIDpbXVxyXG4gICB9KVxyXG4gICB0aGlzLmFwcGxpZWRGaWx0ZXJzLmVtaXQodGhpcy5yZXNwb25zZUFycmF5KVxyXG4gIH1cclxuICBzZWFyY2hEYXRhKGV2ZW50OmFueSxpOmFueSl7XHJcbiAgICBjb25zdCBzZWFyY2hUZXJtID0gZXZlbnQudGFyZ2V0LnZhbHVlLnRyaW0oKTsgLy8gVHJpbSB3aGl0ZXNwYWNlXHJcbiAgICBjb25zdCBmaWx0ZXJlZElzc3VlcyA9IHRoaXMuZHVtbXlBcnJheVtpXT8uSXNzdWVzLmZpbHRlcigoaXRlbTphbnkpID0+ICB7XHJcbiAgICAgIGxldCBmaW5kQ2hlY2tlZCA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8uZmluZCgoaXNzdWU6YW55KSA9PiBpc3N1ZS50ZXh0ID09IGl0ZW0udGV4dCApO1xyXG4gICAgICBpZihmaW5kQ2hlY2tlZCkge1xyXG4gICAgICAgIGl0ZW0uY2hlY2tlZCA9IGZpbmRDaGVja2VkPy5jaGVja2VkID8gZmluZENoZWNrZWQ/LmNoZWNrZWQgOiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBpdGVtLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbmV3IFJlZ0V4cChzZWFyY2hUZXJtLCdpJykudGVzdChpdGVtLnRleHQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRhdGFPYmplY3RbaV0uSXNzdWVzID0gZmlsdGVyZWRJc3N1ZXM7XHJcbiAgICBpZihmaWx0ZXJlZElzc3Vlcy5sZW5ndGgpe1xyXG4gICAgICB0aGlzLm5vRmlsdGVyID0gZmFsc2U7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5ub0ZpbHRlciA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIEFwcGx5KCkge1xyXG4gICAgdGhpcy5PcGVuZHJvcGRvd24gPSBmYWxzZTtcclxuICAgIHRoaXMucmVzcG9uc2VBcnJheS5mb3JFYWNoKChpdGVtOmFueSxpbmRleDphbnkpPT57XHJcbiAgICAgIGl0ZW0uSXNzdWVzID0gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA/IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0gOltdXHJcbiAgIH0pXHJcbiAgIHRoaXMuYXBwbGllZEZpbHRlcnMuZW1pdCh0aGlzLnJlc3BvbnNlQXJyYXkpXHJcbiAgfVxyXG59XHJcbiAiLCI8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgIFxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5kcm9wZG93bigkZXZlbnQpXCJcclxuICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJnLXdoaXRlIG14LTIgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbFwiPjxzdmdcclxuICAgICAgY2xhc3M9XCJwbC0zXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNNSAxMEgxNU0yLjUgNUgxNy41TTcuNSAxNUgxMi41XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgPC9zdmc+XHJcbiAgICA8c3BhbiBjbGFzcz1cIm1zLTJcIj5GaWx0ZXI8L3NwYW4+IDwvYnV0dG9uPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgcC01IGRyb3Bkb3duMSBwb3NpdGlvbi1hYnNvbHV0ZSB6LTEgZW5kLTBcIiBzdHlsZT1cInotaW5kZXg6IDEgIWltcG9ydGFudDtcIiAqbmdJZj1cIk9wZW5kcm9wZG93blwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi10aXRsZSBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5GaWx0ZXIgT3B0aW9uc1xyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZFwiPiAtLT5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0yNSBtcy0zIGJ0bi1yZXNpemVcIiAoY2xpY2spPVwiUmVzZXQoKVwiPiBSZXNldCA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy0yNSAgYnRuLXJlc2l6ZVwiIChjbGljayk9XCJBcHBseSgpXCI+QXBwbHk8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPC9kaXY+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBib3JkZXIgYm9yZGVyLWdyYXkgbXQtM1wiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJweS0zXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YU9iamVjdDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50eXBlICE9PSAnc2luZ2xlJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duIGZvcm0tc2VsZWN0IHBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJEcm9wZG93bihpdGVtLkRlc2NyaXB0aW9uLGksJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJcIj57eyBzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGggIT09IG51bGwgJiYgc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8ubGVuZ3RoICE9PSB1bmRlZmluZWQgPyBzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGggKyAnICcgKyBpdGVtLkRlc2NyaXB0aW9uLnNwbGl0KCcgJykucG9wKCkgKyAnIFNlbGVjdGVkJyA6IGl0ZW0uRGVzY3JpcHRpb24gfX08L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2l0ZW0uRGVzY3JpcHRpb259fTwvc3Bhbj4gPHNwYW4gKm5nSWY9XCJzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGggIT09IG51bGwgJiYgc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8ubGVuZ3RoICE9PSB1bmRlZmluZWQgJiYgc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8ubGVuZ3RoICE9PSAwXCIgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0XCI+e3tzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uaXNPcGVuXCIgY2xhc3M9XCJkcm9wZG93bi1jb250ZW50IHBvc2l0aW9uLWFic29sdXRlIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBweS0zIHB0LTMgcHMtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cImNoZWNrYm94XCIgdmFsdWU9XCJTZWxlY3QgQWxsXCIgaWQ9XCJzZWxlY3RhbGx7e2l9fVwiICBbY2hlY2tlZF09XCJzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGggPT09IGl0ZW0uSXNzdWVzLmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVDaGVja2JveCgkZXZlbnQsJ1NlbGVjdCBBbGwnLCBpLDApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgY3Vyc29yLXBvaW50ZXIgcHgtMlwiIGZvcj1cInNlbGVjdGFsbHt7aX19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3QgQWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXkgbXQtMyBcIj48L2Rpdj5cclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtMyBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTdcIiB2aWV3Qm94PVwiMCAwIDE2IDE3XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE0IDE0LjVMMTEuMSAxMS42TTEyLjY2NjcgNy44MzMzM0MxMi42NjY3IDEwLjc3ODkgMTAuMjc4OSAxMy4xNjY3IDcuMzMzMzMgMTMuMTY2N0M0LjM4NzgxIDEzLjE2NjcgMiAxMC43Nzg5IDIgNy44MzMzM0MyIDQuODg3ODEgNC4zODc4MSAyLjUgNy4zMzMzMyAyLjVDMTAuMjc4OSAyLjUgMTIuNjY2NyA0Ljg4NzgxIDEyLjY2NjcgNy44MzMzM1pcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImRhdGFPYmplY3RbaV0uc2VsZWN0ZWRWYWx1ZVwiIChpbnB1dCk9XCJzZWFyY2hEYXRhKCRldmVudCxpKVwiIFtpZF09XCJpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgc2VhcmNoaW5wdXQgcHMtMTQgcHktMiBtZS0yIG10LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiBhdXRvY29tcGxldGU9XCJvZmZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpc3N1ZSBvZiBpdGVtLklzc3VlcztsZXQgaj1pbmRleFwiICBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBweS0zIHB0LTMgcHMtMCBtdC0yIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cImNoZWNrYm94XCIgW3ZhbHVlXT1cImlzc3VlLnRleHRcIiBpZD1cIm9wdGlvbnt7aXNzdWUudGV4dH19XCIgW2NoZWNrZWRdPVwiaXNzdWUuY2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZUNoZWNrYm94KCRldmVudCxpc3N1ZS50ZXh0LGksailcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBjdXJzb3ItcG9pbnRlciBweC0yXCIgZm9yPVwib3B0aW9ue3tpc3N1ZS50ZXh0fX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGlzc3VlLnRleHQgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiAqbmdJZj1cIm5vRmlsdGVyXCI+IE5vIGZpbHRlcnMgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50eXBlID09PSAnc2luZ2xlJ1wiIGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvcGVuRHJvcGRvd24oJGV2ZW50LGkpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IHctMTAwIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWwgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+IHt7c2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8udGV4dCA/IHNlbGVjdGVkVmFsdWVzQXJyYXlbaV0/LnRleHQgOiBpdGVtLkRlc2NyaXB0aW9ufX1cclxuICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA3LjVMMTAgMTIuNUwxNSA3LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLmlzT3BlblwiIGNsYXNzPVwiY2FyZCBweS0xIHctMTAwIGRyb3Bkb3duLXNpbmdsZSBwb3NpdGlvbi1hYnNvbHV0ZSB6LTEgdG9wLTUwcHggZW5kLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW0uSXNzdWVzOyBsZXQgaiA9IGluZGV4XCIgY2xhc3M9XCJsaXN0LXVuc3R5bGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCJzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy50ZXh0ID09PSBpdGVtLnRleHQgPyAnYWN0aXZlJyA6ICcnXCIgY2xhc3M9XCJjYW1lcmEgcHgtNSBpdGVtcyBmdy1zZW1pYm9sZCBjdXJzb3ItcG9pbnRlciBweS0yXCIgKGNsaWNrKT1cInNlbGVjdEl0ZW0oJGV2ZW50LGksailcIj57e2l0ZW0udGV4dH19PC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0gPGRpdiByb2xlPVwiZ3JvdXBcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctMTAwIG1lLTJcIiAoY2xpY2spPVwiUmVzZXQoKVwiPiBSZXNldCA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMCBtcy0yXCIgKGNsaWNrKT1cIkFwcGx5KClcIj5BcHBseTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PiAtLT5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@angular/forms";
|
|
5
|
+
import * as i3 from "ngx-pagination";
|
|
6
|
+
export class PaginationComponent {
|
|
7
|
+
collection = [];
|
|
8
|
+
itemsPerPage;
|
|
9
|
+
currentPage;
|
|
10
|
+
totalItems;
|
|
11
|
+
directionLinks = false;
|
|
12
|
+
pageSize;
|
|
13
|
+
paginationSizes;
|
|
14
|
+
pageChange = new EventEmitter();
|
|
15
|
+
pageSizeChange = new EventEmitter();
|
|
16
|
+
instanceId = crypto.randomUUID();
|
|
17
|
+
onPageChange(page) {
|
|
18
|
+
this.pageChange.emit(page);
|
|
19
|
+
}
|
|
20
|
+
onPageSizeChange(pageSize) {
|
|
21
|
+
this.itemsPerPage = pageSize;
|
|
22
|
+
this.pageSizeChange.emit(this.pageSize);
|
|
23
|
+
}
|
|
24
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PaginationComponent, selector: "lib-pagination", inputs: { collection: "collection", itemsPerPage: "itemsPerPage", currentPage: "currentPage", totalItems: "totalItems", directionLinks: "directionLinks", pageSize: "pageSize", paginationSizes: "paginationSizes" }, outputs: { pageChange: "pageChange", pageSizeChange: "pageSizeChange" }, ngImport: i0, template: "<div class=\"container d-flex justify-content-center\">\r\n <div class=\"mt-4 text-center\">\r\n <span class=\"sub-title me-3\">Displaying</span>\r\n <select class=\"border-val\" [(ngModel)]=\"pageSize\" (ngModelChange)=\"onPageSizeChange($event)\" >\r\n <option value=\"{{ size }}\" *ngFor=\"let size of paginationSizes\" >{{ size }}</option>\r\n <!-- [disabled]=\"disableOption(size)\" -->\r\n </select>\r\n <span class=\"ms-3 sub-title\">out of {{ totalItems }} items</span>\r\n </div>\r\n \r\n <div class=\"text-center\">\r\n <ul>\r\n <li *ngFor=\"let item of collection | paginate: { id:instanceId, itemsPerPage: itemsPerPage, currentPage: currentPage, totalItems: totalItems }\">\r\n <!-- Your item template here -->\r\n </li>\r\n </ul>\r\n <pagination-controls \r\n (pageChange)=\"onPageChange($event); currentPage=$event;\" \r\n [id]=\"instanceId\"\r\n [directionLinks]=\"directionLinks\"\r\n [maxSize]=\"7\"\r\n [responsive]=\"true\">\r\n </pagination-controls>\r\n </div>\r\n </div>\r\n ", styles: ["::ng-deep .ngx-pagination .current{padding:12px!important;background:#eaf8ff!important;cursor:default;color:#00a3ff!important;min-width:50px!important;max-width:auto!important;height:45px;border-radius:8px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-600, #00A3FF)!important;text-align:center;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px}::ng-deep .ngx-pagination a:hover,.ngx-pagination button:hover{background:#e6e6e6;padding:12px!important;min-width:50px!important;max-width:auto!important;height:45px;border-radius:8px;line-height:20px}::ng-deep .ngx-pagination{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px}::ng-deep .ngx-pagination a{padding:.1875rem 1rem!important}*{font-family:Inter!important}.border-val{padding:10px 14px!important;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url('data:image/svg+xml;utf8,<svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\"><path d=\"M10 12l-6-6h12l-6 6z\" fill=\"%23777\"/></svg>');background-repeat:no-repeat;background-position-x:calc(100% - 12px);background-position-y:50%;padding-right:20px}.sub-title{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500!important;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PaginationControlsComponent, selector: "pagination-controls", inputs: ["id", "maxSize", "directionLinks", "autoHide", "responsive", "previousLabel", "nextLabel", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel"], outputs: ["pageChange", "pageBoundsCorrection"] }, { kind: "pipe", type: i3.PaginatePipe, name: "paginate" }] });
|
|
26
|
+
}
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
28
|
+
type: Component,
|
|
29
|
+
args: [{ selector: 'lib-pagination', template: "<div class=\"container d-flex justify-content-center\">\r\n <div class=\"mt-4 text-center\">\r\n <span class=\"sub-title me-3\">Displaying</span>\r\n <select class=\"border-val\" [(ngModel)]=\"pageSize\" (ngModelChange)=\"onPageSizeChange($event)\" >\r\n <option value=\"{{ size }}\" *ngFor=\"let size of paginationSizes\" >{{ size }}</option>\r\n <!-- [disabled]=\"disableOption(size)\" -->\r\n </select>\r\n <span class=\"ms-3 sub-title\">out of {{ totalItems }} items</span>\r\n </div>\r\n \r\n <div class=\"text-center\">\r\n <ul>\r\n <li *ngFor=\"let item of collection | paginate: { id:instanceId, itemsPerPage: itemsPerPage, currentPage: currentPage, totalItems: totalItems }\">\r\n <!-- Your item template here -->\r\n </li>\r\n </ul>\r\n <pagination-controls \r\n (pageChange)=\"onPageChange($event); currentPage=$event;\" \r\n [id]=\"instanceId\"\r\n [directionLinks]=\"directionLinks\"\r\n [maxSize]=\"7\"\r\n [responsive]=\"true\">\r\n </pagination-controls>\r\n </div>\r\n </div>\r\n ", styles: ["::ng-deep .ngx-pagination .current{padding:12px!important;background:#eaf8ff!important;cursor:default;color:#00a3ff!important;min-width:50px!important;max-width:auto!important;height:45px;border-radius:8px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-600, #00A3FF)!important;text-align:center;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px}::ng-deep .ngx-pagination a:hover,.ngx-pagination button:hover{background:#e6e6e6;padding:12px!important;min-width:50px!important;max-width:auto!important;height:45px;border-radius:8px;line-height:20px}::ng-deep .ngx-pagination{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px}::ng-deep .ngx-pagination a{padding:.1875rem 1rem!important}*{font-family:Inter!important}.border-val{padding:10px 14px!important;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url('data:image/svg+xml;utf8,<svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\"><path d=\"M10 12l-6-6h12l-6 6z\" fill=\"%23777\"/></svg>');background-repeat:no-repeat;background-position-x:calc(100% - 12px);background-position-y:50%;padding-right:20px}.sub-title{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500!important;line-height:20px}\n"] }]
|
|
30
|
+
}], propDecorators: { collection: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], itemsPerPage: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], currentPage: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], totalItems: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], directionLinks: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], pageSize: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], paginationSizes: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], pageChange: [{
|
|
45
|
+
type: Output
|
|
46
|
+
}], pageSizeChange: [{
|
|
47
|
+
type: Output
|
|
48
|
+
}] } });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9jb21tb24vcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPdkUsTUFBTSxPQUFPLG1CQUFtQjtJQUNyQixVQUFVLEdBQVUsRUFBRSxDQUFDO0lBQ3ZCLFlBQVksQ0FBUztJQUNyQixXQUFXLENBQVM7SUFDcEIsVUFBVSxDQUFTO0lBQ25CLGNBQWMsR0FBWSxLQUFLLENBQUM7SUFFaEMsUUFBUSxDQUFTO0lBQ2pCLGVBQWUsQ0FBVztJQUN6QixVQUFVLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFDOUQsY0FBYyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBQzVFLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUE7SUFFaEMsWUFBWSxDQUFDLElBQVk7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLFFBQVk7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7UUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7d0dBcEJVLG1CQUFtQjs0RkFBbkIsbUJBQW1CLHFWQ1BoQyxzbUNBeUJFOzs0RkRsQlcsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGdCQUFnQjs4QkFLakIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcGFnaW5hdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgY29sbGVjdGlvbjogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBpdGVtc1BlclBhZ2U6IG51bWJlcjtcclxuICBASW5wdXQoKSBjdXJyZW50UGFnZTogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHRvdGFsSXRlbXM6IG51bWJlcjtcclxuICBASW5wdXQoKSBkaXJlY3Rpb25MaW5rczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwYWdlU2l6ZTogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHBhZ2luYXRpb25TaXplczogbnVtYmVyW107XHJcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgQE91dHB1dCgpIHBhZ2VTaXplQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIGluc3RhbmNlSWQgPSBjcnlwdG8ucmFuZG9tVVVJRCgpXHJcbiAgXHJcbiAgb25QYWdlQ2hhbmdlKHBhZ2U6IG51bWJlcikge1xyXG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQocGFnZSk7XHJcbiAgfVxyXG5cclxuICBvblBhZ2VTaXplQ2hhbmdlKHBhZ2VTaXplOmFueSkge1xyXG4gICAgdGhpcy5pdGVtc1BlclBhZ2UgPSBwYWdlU2l6ZTtcclxuICAgIHRoaXMucGFnZVNpemVDaGFuZ2UuZW1pdCh0aGlzLnBhZ2VTaXplKTtcclxuICB9XHJcblxyXG4gIC8vIGRpc2FibGVPcHRpb24oc2l6ZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgLy8gICBpZiAoIXRoaXMucGFnaW5hdGlvblNpemVzLmluY2x1ZGVzKHNpemUpKSB7XHJcbiAgLy8gICAgIGNvbnNvbGUuZXJyb3IoJ1NpemUgaXMgbm90IGluIHBhZ2luYXRpb25TaXplcy4nKTtcclxuICAvLyAgICAgcmV0dXJuIHRydWU7IC8vIERpc2FibGUgdGhlIG9wdGlvbiB0byBwcmV2ZW50IGludmFsaWQgc2VsZWN0aW9uXHJcbiAgLy8gICB9XHJcbiAgXHJcbiAgLy8gICAvLyBDYWxjdWxhdGUgdGhlIG1heGltdW0gcG9zc2libGUgdG90YWwgaXRlbXMgb24gdGhlIGN1cnJlbnQgcGFnZVxyXG4gIC8vICAgY29uc3QgbWF4VG90YWxPblBhZ2UgPSAodGhpcy5jdXJyZW50UGFnZSkgKiBzaXplO1xyXG4gIC8vICAgY29uc29sZS5sb2coJ0N1cnJlbnQgUGFnZTonLCBtYXhUb3RhbE9uUGFnZSk7XHJcbiAgLy8gICAvLyBEaXNhYmxlIHRoZSBvcHRpb24gaWYgdG90YWxJdGVtcyBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG9wdGlvbiBzaXplXHJcbiAgLy8gICBjb25zdCBkaXNhYmxlID0gdGhpcy50b3RhbEl0ZW1zIDw9IG1heFRvdGFsT25QYWdlO1xyXG4gIC8vICAgY29uc29sZS5sb2coJ0Rpc2FibGU6JywgZGlzYWJsZSk7XHJcbiAgLy8gICByZXR1cm4gZGlzYWJsZTtcclxuICAvLyB9XHJcbiAgXHJcbiAgXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm10LTQgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGUgbWUtM1wiPkRpc3BsYXlpbmc8L3NwYW4+XHJcbiAgICAgIDxzZWxlY3QgY2xhc3M9XCJib3JkZXItdmFsXCIgWyhuZ01vZGVsKV09XCJwYWdlU2l6ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiID5cclxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwie3sgc2l6ZSB9fVwiICpuZ0Zvcj1cImxldCBzaXplIG9mIHBhZ2luYXRpb25TaXplc1wiID57eyBzaXplIH19PC9vcHRpb24+XHJcbiAgICAgICAgPCEtLSBbZGlzYWJsZWRdPVwiZGlzYWJsZU9wdGlvbihzaXplKVwiIC0tPlxyXG4gICAgICA8L3NlbGVjdD5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zIHN1Yi10aXRsZVwiPm91dCBvZiB7eyB0b3RhbEl0ZW1zIH19IGl0ZW1zPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgXHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cclxuICAgICAgPHVsPlxyXG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb2xsZWN0aW9uIHwgcGFnaW5hdGU6IHsgaWQ6aW5zdGFuY2VJZCwgaXRlbXNQZXJQYWdlOiBpdGVtc1BlclBhZ2UsIGN1cnJlbnRQYWdlOiBjdXJyZW50UGFnZSwgdG90YWxJdGVtczogdG90YWxJdGVtcyB9XCI+XHJcbiAgICAgICAgICA8IS0tIFlvdXIgaXRlbSB0ZW1wbGF0ZSBoZXJlIC0tPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgIDwvdWw+XHJcbiAgICAgIDxwYWdpbmF0aW9uLWNvbnRyb2xzIFxyXG4gICAgICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpOyBjdXJyZW50UGFnZT0kZXZlbnQ7XCIgXHJcbiAgICAgICAgW2lkXT1cImluc3RhbmNlSWRcIlxyXG4gICAgICAgIFtkaXJlY3Rpb25MaW5rc109XCJkaXJlY3Rpb25MaW5rc1wiXHJcbiAgICAgICAgW21heFNpemVdPVwiN1wiXHJcbiAgICAgICAgW3Jlc3BvbnNpdmVdPVwidHJ1ZVwiPlxyXG4gICAgICA8L3BhZ2luYXRpb24tY29udHJvbHM+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICAiXX0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/router";
|
|
4
|
+
import * as i2 from "tango-app-ui-global";
|
|
5
|
+
export class Error403Component {
|
|
6
|
+
router;
|
|
7
|
+
modeService;
|
|
8
|
+
unsubscribe = [];
|
|
9
|
+
constructor(router, modeService) {
|
|
10
|
+
this.router = router;
|
|
11
|
+
this.modeService = modeService;
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
const subscr = this.modeService.mode.asObservable().subscribe((mode) => {
|
|
15
|
+
document.body.style.backgroundImage =
|
|
16
|
+
mode === 'dark'
|
|
17
|
+
? 'url(./assets/media/auth/bg1-dark.jpg)'
|
|
18
|
+
: 'url(./assets/media/auth/bg1.jpg)';
|
|
19
|
+
});
|
|
20
|
+
this.unsubscribe.push(subscr);
|
|
21
|
+
}
|
|
22
|
+
ngOnDestroy() {
|
|
23
|
+
this.unsubscribe.forEach((sb) => sb.unsubscribe());
|
|
24
|
+
document.body.style.backgroundImage = 'none';
|
|
25
|
+
}
|
|
26
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: Error403Component, deps: [{ token: i1.Router }, { token: i2.ThemeModeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: Error403Component, selector: "lib-error403", ngImport: i0, template: "<!--begin::Title-->\r\n<h1 class=\"fw-bolder fs-2hx text-gray-900 mb-4\">\r\n !Forbidden\r\n </h1>\r\n <!--end::Title-->\r\n \r\n <!--begin::Text-->\r\n <div class=\"fw-semibold fs-6 text-gray-500 mb-7\">\r\n We can't find that page.\r\n </div>\r\n <!--end::Text-->\r\n \r\n <!--begin::Illustration-->\r\n <div class=\"mb-3\">\r\n <img src=\"./assets/media/auth/404-error.png\" class=\"mw-100 mh-300px theme-light-show\" alt=\"\" />\r\n <img src=\"./assets/media/auth/404-error-dark.png\" class=\"mw-100 mh-300px theme-dark-show\" alt=\"\" />\r\n </div>\r\n <!--end::Illustration-->\r\n \r\n <!--begin::Link-->\r\n <div class=\"mb-0\">\r\n <a routerLink=\"/manage/brands\" class=\"btn btn-sm btn-primary\">Return Home</a>\r\n </div>\r\n <!--end::Link-->\r\n ", styles: [""], dependencies: [{ kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
|
|
28
|
+
}
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: Error403Component, decorators: [{
|
|
30
|
+
type: Component,
|
|
31
|
+
args: [{ selector: 'lib-error403', template: "<!--begin::Title-->\r\n<h1 class=\"fw-bolder fs-2hx text-gray-900 mb-4\">\r\n !Forbidden\r\n </h1>\r\n <!--end::Title-->\r\n \r\n <!--begin::Text-->\r\n <div class=\"fw-semibold fs-6 text-gray-500 mb-7\">\r\n We can't find that page.\r\n </div>\r\n <!--end::Text-->\r\n \r\n <!--begin::Illustration-->\r\n <div class=\"mb-3\">\r\n <img src=\"./assets/media/auth/404-error.png\" class=\"mw-100 mh-300px theme-light-show\" alt=\"\" />\r\n <img src=\"./assets/media/auth/404-error-dark.png\" class=\"mw-100 mh-300px theme-dark-show\" alt=\"\" />\r\n </div>\r\n <!--end::Illustration-->\r\n \r\n <!--begin::Link-->\r\n <div class=\"mb-0\">\r\n <a routerLink=\"/manage/brands\" class=\"btn btn-sm btn-primary\">Return Home</a>\r\n </div>\r\n <!--end::Link-->\r\n " }]
|
|
32
|
+
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.ThemeModeService }] });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3I0MDMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvZXJyb3JzL2Vycm9yNDAzL2Vycm9yNDAzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2Vycm9ycy9lcnJvcjQwMy9lcnJvcjQwMy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQzs7OztBQVU3RCxNQUFNLE9BQU8saUJBQWlCO0lBR1I7SUFBd0I7SUFGcEMsV0FBVyxHQUFtQixFQUFFLENBQUM7SUFFekMsWUFBb0IsTUFBYyxFQUFVLFdBQTZCO1FBQXJELFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7SUFBRyxDQUFDO0lBQzdFLFFBQVE7UUFDTixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNyRSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlO2dCQUNqQyxJQUFJLEtBQUssTUFBTTtvQkFDYixDQUFDLENBQUMsdUNBQXVDO29CQUN6QyxDQUFDLENBQUMsa0NBQWtDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNuRCxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDO0lBQy9DLENBQUM7d0dBaEJVLGlCQUFpQjs0RkFBakIsaUJBQWlCLG9EQ1Y5Qix5eEJBd0JFOzs0RkRkVyxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRoZW1lTW9kZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWVycm9yNDAzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZXJyb3I0MDMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9lcnJvcjQwMy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEVycm9yNDAzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSB1bnN1YnNjcmliZTogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBtb2RlU2VydmljZTogVGhlbWVNb2RlU2VydmljZSkge31cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN1YnNjciA9IHRoaXMubW9kZVNlcnZpY2UubW9kZS5hc09ic2VydmFibGUoKS5zdWJzY3JpYmUoKG1vZGUpID0+IHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPVxyXG4gICAgICAgIG1vZGUgPT09ICdkYXJrJ1xyXG4gICAgICAgICAgPyAndXJsKC4vYXNzZXRzL21lZGlhL2F1dGgvYmcxLWRhcmsuanBnKSdcclxuICAgICAgICAgIDogJ3VybCguL2Fzc2V0cy9tZWRpYS9hdXRoL2JnMS5qcGcpJztcclxuICAgIH0pO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5wdXNoKHN1YnNjcik7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5mb3JFYWNoKChzYikgPT4gc2IudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmJhY2tncm91bmRJbWFnZSA9ICdub25lJztcclxuICB9XHJcbn1cclxuIiwiPCEtLWJlZ2luOjpUaXRsZS0tPlxyXG48aDEgY2xhc3M9XCJmdy1ib2xkZXIgZnMtMmh4IHRleHQtZ3JheS05MDAgbWItNFwiPlxyXG4gICAgIUZvcmJpZGRlblxyXG4gIDwvaDE+XHJcbiAgPCEtLWVuZDo6VGl0bGUtLT5cclxuICBcclxuICA8IS0tYmVnaW46OlRleHQtLT5cclxuICA8ZGl2IGNsYXNzPVwiZnctc2VtaWJvbGQgZnMtNiB0ZXh0LWdyYXktNTAwIG1iLTdcIj5cclxuICAgIFdlIGNhbid0IGZpbmQgdGhhdCBwYWdlLlxyXG4gIDwvZGl2PlxyXG4gIDwhLS1lbmQ6OlRleHQtLT5cclxuICBcclxuICA8IS0tYmVnaW46OklsbHVzdHJhdGlvbi0tPlxyXG4gIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL21lZGlhL2F1dGgvNDA0LWVycm9yLnBuZ1wiIGNsYXNzPVwibXctMTAwIG1oLTMwMHB4IHRoZW1lLWxpZ2h0LXNob3dcIiBhbHQ9XCJcIiAvPlxyXG4gICAgPGltZyBzcmM9XCIuL2Fzc2V0cy9tZWRpYS9hdXRoLzQwNC1lcnJvci1kYXJrLnBuZ1wiIGNsYXNzPVwibXctMTAwIG1oLTMwMHB4IHRoZW1lLWRhcmstc2hvd1wiIGFsdD1cIlwiIC8+XHJcbiAgPC9kaXY+XHJcbiAgPCEtLWVuZDo6SWxsdXN0cmF0aW9uLS0+XHJcbiAgXHJcbiAgPCEtLWJlZ2luOjpMaW5rLS0+XHJcbiAgPGRpdiBjbGFzcz1cIm1iLTBcIj5cclxuICAgIDxhIHJvdXRlckxpbms9XCIvbWFuYWdlL2JyYW5kc1wiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiPlJldHVybiBIb21lPC9hPlxyXG4gIDwvZGl2PlxyXG4gIDwhLS1lbmQ6OkxpbmstLT5cclxuICAiXX0=
|