tango-app-ui-shared 3.7.3-dev6-demo6 → 3.7.3-dev6-demo7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +37 -0
- package/ng-package.json +7 -0
- package/package.json +12 -25
- package/src/lib/guards/auth.guard.ts +20 -0
- package/src/lib/guards/lead.guard.ts +16 -0
- package/src/lib/guards/stores.guard.ts +16 -0
- package/src/lib/guards/tickets.guard.ts +16 -0
- package/{lib/i18n/index.d.ts → src/lib/i18n/index.ts} +2 -2
- package/src/lib/i18n/translation.module.ts +9 -0
- package/src/lib/i18n/translation.service.ts +61 -0
- package/src/lib/i18n/vocabs/ch.ts +105 -0
- package/src/lib/i18n/vocabs/de.ts +105 -0
- package/src/lib/i18n/vocabs/en.ts +105 -0
- package/src/lib/i18n/vocabs/es.ts +105 -0
- package/src/lib/i18n/vocabs/fr.ts +105 -0
- package/src/lib/i18n/vocabs/jp.ts +105 -0
- package/src/lib/interceptors/http-auth-interceptor.ts +225 -0
- package/src/lib/interfaces/global-state.ts +6 -0
- package/src/lib/modules/common/common-shared.module.ts +20 -0
- package/src/lib/modules/common/custom-select/custom-select.component.html +42 -0
- package/src/lib/modules/common/custom-select/custom-select.component.scss +131 -0
- package/src/lib/modules/common/custom-select/custom-select.component.spec.ts +23 -0
- package/src/lib/modules/common/custom-select/custom-select.component.ts +149 -0
- package/src/lib/modules/common/filters/filters.component.html +76 -0
- package/src/lib/modules/common/filters/filters.component.scss +131 -0
- package/src/lib/modules/common/filters/filters.component.spec.ts +23 -0
- package/src/lib/modules/common/filters/filters.component.ts +181 -0
- package/src/lib/modules/common/pagination/pagination.component.html +26 -0
- package/src/lib/modules/common/pagination/pagination.component.scss +63 -0
- package/src/lib/modules/common/pagination/pagination.component.spec.ts +23 -0
- package/src/lib/modules/common/pagination/pagination.component.ts +46 -0
- package/src/lib/modules/errors/error403/error403.component.html +25 -0
- package/src/lib/modules/errors/error403/error403.component.scss +0 -0
- package/src/lib/modules/errors/error403/error403.component.spec.ts +23 -0
- package/src/lib/modules/errors/error403/error403.component.ts +28 -0
- package/src/lib/modules/errors/error404/error404.component.html +24 -0
- package/src/lib/modules/errors/error404/error404.component.scss +0 -0
- package/src/lib/modules/errors/error404/error404.component.spec.ts +25 -0
- package/src/lib/modules/errors/error404/error404.component.ts +50 -0
- package/src/lib/modules/errors/error500/error500.component.html +24 -0
- package/src/lib/modules/errors/error500/error500.component.scss +0 -0
- package/src/lib/modules/errors/error500/error500.component.spec.ts +25 -0
- package/src/lib/modules/errors/error500/error500.component.ts +50 -0
- package/src/lib/modules/errors/errors-routing.module.ts +40 -0
- package/src/lib/modules/errors/errors.component.html +15 -0
- package/src/lib/modules/errors/errors.component.scss +4 -0
- package/src/lib/modules/errors/errors.component.spec.ts +25 -0
- package/src/lib/modules/errors/errors.component.ts +42 -0
- package/src/lib/modules/errors/errors.module.ts +25 -0
- package/src/lib/modules/errors/invalid-ip/invalid-ip.component.html +16 -0
- package/src/lib/modules/errors/invalid-ip/invalid-ip.component.scss +0 -0
- package/src/lib/modules/errors/invalid-ip/invalid-ip.component.spec.ts +23 -0
- package/src/lib/modules/errors/invalid-ip/invalid-ip.component.ts +43 -0
- package/src/lib/modules/intro/contact-support/contact-support.component.html +30 -0
- package/src/lib/modules/intro/contact-support/contact-support.component.scss +60 -0
- package/src/lib/modules/intro/contact-support/contact-support.component.spec.ts +23 -0
- package/src/lib/modules/intro/contact-support/contact-support.component.ts +17 -0
- package/src/lib/modules/intro/intro-routing.module.ts +16 -0
- package/src/lib/modules/intro/intro.module.ts +21 -0
- package/src/lib/modules/intro/lead-intro/lead-intro.component.html +325 -0
- package/src/lib/modules/intro/lead-intro/lead-intro.component.scss +185 -0
- package/src/lib/modules/intro/lead-intro/lead-intro.component.spec.ts +23 -0
- package/src/lib/modules/intro/lead-intro/lead-intro.component.ts +120 -0
- package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.html +44 -0
- package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.scss +28 -0
- package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.spec.ts +23 -0
- package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.ts +24 -0
- package/src/lib/modules/layout/content/content.component.html +12 -0
- package/src/lib/modules/layout/content/content.component.scss +0 -0
- package/src/lib/modules/layout/content/content.component.ts +102 -0
- package/src/lib/modules/layout/footer/footer.component.html +29 -0
- package/src/lib/modules/layout/footer/footer.component.scss +7 -0
- package/src/lib/modules/layout/footer/footer.component.spec.ts +25 -0
- package/src/lib/modules/layout/footer/footer.component.ts +13 -0
- package/src/lib/modules/layout/header/header-menu/header-menu.component.html +27 -0
- package/src/lib/modules/layout/header/header-menu/header-menu.component.scss +4 -0
- package/src/lib/modules/layout/header/header-menu/header-menu.component.spec.ts +25 -0
- package/src/lib/modules/layout/header/header-menu/header-menu.component.ts +38 -0
- package/src/lib/modules/layout/header/header.component.html +90 -0
- package/src/lib/modules/layout/header/header.component.scss +7 -0
- package/src/lib/modules/layout/header/header.component.spec.ts +25 -0
- package/src/lib/modules/layout/header/header.component.ts +139 -0
- package/src/lib/modules/layout/header/navbar/navbar.component.html +156 -0
- package/src/lib/modules/layout/header/navbar/navbar.component.scss +223 -0
- package/src/lib/modules/layout/header/navbar/navbar.component.spec.ts +23 -0
- package/src/lib/modules/layout/header/navbar/navbar.component.ts +255 -0
- package/src/lib/modules/layout/header/notifications-inner/notifications-inner.component.html +200 -0
- package/src/lib/modules/layout/header/notifications-inner/notifications-inner.component.scss +139 -0
- package/src/lib/modules/layout/header/notifications-inner/notifications-inner.component.ts +76 -0
- package/src/lib/modules/layout/header/page-title/page-title.component.html +32 -0
- package/src/lib/modules/layout/header/page-title/page-title.component.scss +11 -0
- package/src/lib/modules/layout/header/page-title/page-title.component.ts +47 -0
- package/src/lib/modules/layout/keenicon/icons.json +1 -0
- package/src/lib/modules/layout/keenicon/keenicon.component.html +4 -0
- package/src/lib/modules/layout/keenicon/keenicon.component.scss +0 -0
- package/src/lib/modules/layout/keenicon/keenicon.component.spec.ts +23 -0
- package/src/lib/modules/layout/keenicon/keenicon.component.ts +30 -0
- package/src/lib/modules/layout/layout/layout.component.html +71 -0
- package/src/lib/modules/layout/layout/layout.component.scss +23 -0
- package/src/lib/modules/layout/layout/layout.component.ts +425 -0
- package/src/lib/modules/layout/layout.module.ts +129 -0
- package/src/lib/modules/layout/scripts-init/scripts-init.component.html +0 -0
- package/src/lib/modules/layout/scripts-init/scripts-init.component.ts +81 -0
- package/src/lib/modules/layout/scroll-top/scroll-top.component.html +1 -0
- package/src/lib/modules/layout/scroll-top/scroll-top.component.ts +75 -0
- package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.html +70 -0
- package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.scss +57 -0
- package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.spec.ts +23 -0
- package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.ts +136 -0
- package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.html +26 -0
- package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.scss +0 -0
- package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.spec.ts +23 -0
- package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.ts +36 -0
- package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.html +761 -0
- package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.scss +38 -0
- package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.spec.ts +23 -0
- package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.ts +130 -0
- package/src/lib/modules/layout/sidebar/sidebar.component.html +16 -0
- package/src/lib/modules/layout/sidebar/sidebar.component.scss +3 -0
- package/src/lib/modules/layout/sidebar/sidebar.component.spec.ts +23 -0
- package/src/lib/modules/layout/sidebar/sidebar.component.ts +203 -0
- package/src/lib/modules/layout/toolbar/accounting/accounting.component.html +84 -0
- package/src/lib/modules/layout/toolbar/accounting/accounting.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/accounting/accounting.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/accounting/accounting.component.ts +14 -0
- package/src/lib/modules/layout/toolbar/classic/classic.component.html +69 -0
- package/src/lib/modules/layout/toolbar/classic/classic.component.scss +238 -0
- package/src/lib/modules/layout/toolbar/classic/classic.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/classic/classic.component.ts +389 -0
- package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.html +4 -0
- package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.scss +3 -0
- package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.ts +91 -0
- package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.html +22 -0
- package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.scss +156 -0
- package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.ts +238 -0
- package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.html +14 -0
- package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.scss +149 -0
- package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.ts +183 -0
- package/src/lib/modules/layout/toolbar/extended/extended.component.html +100 -0
- package/src/lib/modules/layout/toolbar/extended/extended.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/extended/extended.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/extended/extended.component.ts +12 -0
- package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.html +311 -0
- package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.scss +311 -0
- package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.ts +1555 -0
- package/src/lib/modules/layout/toolbar/reports/reports.component.html +62 -0
- package/src/lib/modules/layout/toolbar/reports/reports.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/reports/reports.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/reports/reports.component.ts +14 -0
- package/src/lib/modules/layout/toolbar/saas/saas.component.html +77 -0
- package/src/lib/modules/layout/toolbar/saas/saas.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/saas/saas.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/saas/saas.component.ts +14 -0
- package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.html +26 -0
- package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.scss +176 -0
- package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.ts +235 -0
- package/src/lib/modules/layout/toolbar/single-store/single-store.component.html +39 -0
- package/src/lib/modules/layout/toolbar/single-store/single-store.component.scss +176 -0
- package/src/lib/modules/layout/toolbar/single-store/single-store.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/single-store/single-store.component.ts +188 -0
- package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.html +17 -0
- package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.scss +172 -0
- package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.ts +179 -0
- package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.html +4 -0
- package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.scss +19 -0
- package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.ts +105 -0
- package/src/lib/modules/layout/toolbar/toolbar.component.html +64 -0
- package/src/lib/modules/layout/toolbar/toolbar.component.scss +0 -0
- package/src/lib/modules/layout/toolbar/toolbar.component.spec.ts +25 -0
- package/src/lib/modules/layout/toolbar/toolbar.component.ts +400 -0
- package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.html +259 -0
- package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.scss +305 -0
- package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.ts +1202 -0
- package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.html +199 -0
- package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.scss +311 -0
- package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.ts +899 -0
- package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.html +204 -0
- package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.scss +311 -0
- package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.ts +1045 -0
- package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.html +190 -0
- package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.scss +311 -0
- package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.ts +825 -0
- package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.html +259 -0
- package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.scss +305 -0
- package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.spec.ts +23 -0
- package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.ts +1242 -0
- package/src/lib/modules/notification/conformation/conformation.component.html +25 -0
- package/src/lib/modules/notification/conformation/conformation.component.scss +0 -0
- package/src/lib/modules/notification/conformation/conformation.component.spec.ts +23 -0
- package/src/lib/modules/notification/conformation/conformation.component.ts +23 -0
- package/src/lib/modules/notification/notification/notification.component.html +209 -0
- package/src/lib/modules/notification/notification/notification.component.scss +211 -0
- package/src/lib/modules/notification/notification/notification.component.spec.ts +23 -0
- package/src/lib/modules/notification/notification/notification.component.ts +310 -0
- package/src/lib/modules/notification/notification-routing.module.ts +20 -0
- package/src/lib/modules/notification/notification.module.ts +21 -0
- package/src/lib/pipes/customDate.pipe.ts +18 -0
- package/src/lib/routes/route-wraper-modules/analyse-wrapper.module.ts +12 -0
- package/src/lib/routes/route-wraper-modules/edge-wrapper.module.ts +11 -0
- package/src/lib/routes/route-wraper-modules/manage-wrapper.module.ts +11 -0
- package/src/lib/routes/route-wraper-modules/profile-wrapper.module.ts +12 -0
- package/src/lib/routes/route-wraper-modules/store-wrapper.module.ts +11 -0
- package/src/lib/routes/route-wraper-modules/ticket-wrapper.module.ts +10 -0
- package/src/lib/routes/routing.ts +56 -0
- package/src/lib/services/auth.service.ts +178 -0
- package/src/lib/services/notification.service.spec.ts +16 -0
- package/src/lib/services/notification.service.ts +73 -0
- package/src/lib/services/toast.service.ts +82 -0
- package/{public-api.d.ts → src/public-api.ts} +71 -44
- package/tsconfig.lib.json +14 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +14 -0
- package/esm2022/lib/guards/auth.guard.mjs +0 -26
- package/esm2022/lib/guards/lead.guard.mjs +0 -16
- package/esm2022/lib/guards/stores.guard.mjs +0 -16
- package/esm2022/lib/guards/tickets.guard.mjs +0 -16
- package/esm2022/lib/i18n/index.mjs +0 -3
- package/esm2022/lib/i18n/translation.module.mjs +0 -17
- package/esm2022/lib/i18n/translation.service.mjs +0 -53
- package/esm2022/lib/i18n/vocabs/ch.mjs +0 -106
- package/esm2022/lib/i18n/vocabs/de.mjs +0 -106
- package/esm2022/lib/i18n/vocabs/en.mjs +0 -106
- package/esm2022/lib/i18n/vocabs/es.mjs +0 -106
- package/esm2022/lib/i18n/vocabs/fr.mjs +0 -106
- package/esm2022/lib/i18n/vocabs/jp.mjs +0 -106
- package/esm2022/lib/interceptors/http-auth-interceptor.mjs +0 -124
- package/esm2022/lib/interfaces/global-state.mjs +0 -2
- package/esm2022/lib/modules/common/common-shared.module.mjs +0 -31
- package/esm2022/lib/modules/common/custom-select/custom-select.component.mjs +0 -155
- package/esm2022/lib/modules/common/filters/filters.component.mjs +0 -179
- package/esm2022/lib/modules/common/pagination/pagination.component.mjs +0 -49
- package/esm2022/lib/modules/errors/error403/error403.component.mjs +0 -33
- package/esm2022/lib/modules/errors/error404/error404.component.mjs +0 -44
- package/esm2022/lib/modules/errors/error500/error500.component.mjs +0 -45
- package/esm2022/lib/modules/errors/errors-routing.module.mjs +0 -48
- package/esm2022/lib/modules/errors/errors.component.mjs +0 -39
- package/esm2022/lib/modules/errors/errors.module.mjs +0 -37
- package/esm2022/lib/modules/errors/invalid-ip/invalid-ip.component.mjs +0 -44
- package/esm2022/lib/modules/intro/contact-support/contact-support.component.mjs +0 -19
- package/esm2022/lib/modules/intro/intro-routing.module.mjs +0 -24
- package/esm2022/lib/modules/intro/intro.module.mjs +0 -32
- package/esm2022/lib/modules/intro/lead-intro/lead-intro.component.mjs +0 -110
- package/esm2022/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.mjs +0 -31
- package/esm2022/lib/modules/layout/content/content.component.mjs +0 -107
- package/esm2022/lib/modules/layout/footer/footer.component.mjs +0 -17
- package/esm2022/lib/modules/layout/header/header-menu/header-menu.component.mjs +0 -41
- package/esm2022/lib/modules/layout/header/header.component.mjs +0 -100
- package/esm2022/lib/modules/layout/header/navbar/navbar.component.mjs +0 -256
- package/esm2022/lib/modules/layout/header/notifications-inner/notifications-inner.component.mjs +0 -79
- package/esm2022/lib/modules/layout/header/page-title/page-title.component.mjs +0 -56
- package/esm2022/lib/modules/layout/keenicon/icons.json +0 -1
- package/esm2022/lib/modules/layout/keenicon/keenicon.component.mjs +0 -37
- package/esm2022/lib/modules/layout/layout/layout.component.mjs +0 -314
- package/esm2022/lib/modules/layout/layout.module.mjs +0 -198
- package/esm2022/lib/modules/layout/scripts-init/scripts-init.component.mjs +0 -74
- package/esm2022/lib/modules/layout/scroll-top/scroll-top.component.mjs +0 -74
- package/esm2022/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.mjs +0 -159
- package/esm2022/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.mjs +0 -45
- package/esm2022/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.mjs +0 -122
- package/esm2022/lib/modules/layout/sidebar/sidebar.component.mjs +0 -134
- package/esm2022/lib/modules/layout/toolbar/accounting/accounting.component.mjs +0 -16
- package/esm2022/lib/modules/layout/toolbar/classic/classic.component.mjs +0 -331
- package/esm2022/lib/modules/layout/toolbar/client-settings/client-settings.component.mjs +0 -88
- package/esm2022/lib/modules/layout/toolbar/date-single-select/date-single-select.component.mjs +0 -207
- package/esm2022/lib/modules/layout/toolbar/datepicker/datepicker.component.mjs +0 -158
- package/esm2022/lib/modules/layout/toolbar/extended/extended.component.mjs +0 -15
- package/esm2022/lib/modules/layout/toolbar/metrics-header/metrics-header.component.mjs +0 -1321
- package/esm2022/lib/modules/layout/toolbar/reports/reports.component.mjs +0 -18
- package/esm2022/lib/modules/layout/toolbar/saas/saas.component.mjs +0 -18
- package/esm2022/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.mjs +0 -216
- package/esm2022/lib/modules/layout/toolbar/single-store/single-store.component.mjs +0 -178
- package/esm2022/lib/modules/layout/toolbar/single-storedate/single-storedate.component.mjs +0 -166
- package/esm2022/lib/modules/layout/toolbar/storesingle/storesingle.component.mjs +0 -105
- package/esm2022/lib/modules/layout/toolbar/toolbar.component.mjs +0 -372
- package/esm2022/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.mjs +0 -1062
- package/esm2022/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.mjs +0 -795
- package/esm2022/lib/modules/layout/toolbar/trax-header/trax-header.component.mjs +0 -880
- package/esm2022/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.mjs +0 -729
- package/esm2022/lib/modules/layout/toolbar/zone-header/zone-header.component.mjs +0 -1088
- package/esm2022/lib/modules/notification/conformation/conformation.component.mjs +0 -22
- package/esm2022/lib/modules/notification/notification/notification.component.mjs +0 -317
- package/esm2022/lib/modules/notification/notification-routing.module.mjs +0 -28
- package/esm2022/lib/modules/notification/notification.module.mjs +0 -32
- package/esm2022/lib/pipes/customDate.pipe.mjs +0 -22
- package/esm2022/lib/routes/route-wraper-modules/edge-wrapper.module.mjs +0 -18
- package/esm2022/lib/routes/route-wraper-modules/manage-wrapper.module.mjs +0 -18
- package/esm2022/lib/routes/route-wraper-modules/profile-wrapper.module.mjs +0 -18
- package/esm2022/lib/routes/route-wraper-modules/store-wrapper.module.mjs +0 -18
- package/esm2022/lib/routes/route-wraper-modules/ticket-wrapper.module.mjs +0 -18
- package/esm2022/lib/routes/routing.mjs +0 -53
- package/esm2022/lib/services/auth.service.mjs +0 -141
- package/esm2022/lib/services/notification.service.mjs +0 -74
- package/esm2022/lib/services/toast.service.mjs +0 -83
- package/esm2022/public-api.mjs +0 -56
- package/esm2022/tango-app-ui-shared.mjs +0 -5
- package/fesm2022/tango-app-ui-shared-edge-wrapper.module-CFDk0tvS.mjs +0 -21
- package/fesm2022/tango-app-ui-shared-edge-wrapper.module-CFDk0tvS.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-intro.module-DYh4ZRha.mjs +0 -188
- package/fesm2022/tango-app-ui-shared-intro.module-DYh4ZRha.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-manage-wrapper.module-BHyh4Njw.mjs +0 -21
- package/fesm2022/tango-app-ui-shared-manage-wrapper.module-BHyh4Njw.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-notification.module-C5ZmCf8U.mjs +0 -400
- package/fesm2022/tango-app-ui-shared-notification.module-C5ZmCf8U.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-profile-wrapper.module-BNC1AGOk.mjs +0 -21
- package/fesm2022/tango-app-ui-shared-profile-wrapper.module-BNC1AGOk.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-store-wrapper.module-DdaCYHdv.mjs +0 -21
- package/fesm2022/tango-app-ui-shared-store-wrapper.module-DdaCYHdv.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared-ticket-wrapper.module-r32uKkDO.mjs +0 -21
- package/fesm2022/tango-app-ui-shared-ticket-wrapper.module-r32uKkDO.mjs.map +0 -1
- package/fesm2022/tango-app-ui-shared.mjs +0 -12438
- package/fesm2022/tango-app-ui-shared.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/guards/auth.guard.d.ts +0 -10
- package/lib/guards/lead.guard.d.ts +0 -2
- package/lib/guards/stores.guard.d.ts +0 -2
- package/lib/guards/tickets.guard.d.ts +0 -2
- package/lib/i18n/translation.module.d.ts +0 -8
- package/lib/i18n/translation.service.d.ts +0 -19
- package/lib/i18n/vocabs/ch.d.ts +0 -104
- package/lib/i18n/vocabs/de.d.ts +0 -104
- package/lib/i18n/vocabs/en.d.ts +0 -104
- package/lib/i18n/vocabs/es.d.ts +0 -104
- package/lib/i18n/vocabs/fr.d.ts +0 -104
- package/lib/i18n/vocabs/jp.d.ts +0 -104
- package/lib/interceptors/http-auth-interceptor.d.ts +0 -19
- package/lib/interfaces/global-state.d.ts +0 -5
- package/lib/modules/common/common-shared.module.d.ts +0 -13
- package/lib/modules/common/custom-select/custom-select.component.d.ts +0 -33
- package/lib/modules/common/filters/filters.component.d.ts +0 -38
- package/lib/modules/common/pagination/pagination.component.d.ts +0 -18
- package/lib/modules/errors/error403/error403.component.d.ts +0 -14
- package/lib/modules/errors/error404/error404.component.d.ts +0 -15
- package/lib/modules/errors/error500/error500.component.d.ts +0 -15
- package/lib/modules/errors/errors-routing.module.d.ts +0 -7
- package/lib/modules/errors/errors.component.d.ts +0 -13
- package/lib/modules/errors/errors.module.d.ts +0 -13
- package/lib/modules/errors/invalid-ip/invalid-ip.component.d.ts +0 -17
- package/lib/modules/intro/contact-support/contact-support.component.d.ts +0 -9
- package/lib/modules/intro/intro-routing.module.d.ts +0 -7
- package/lib/modules/intro/intro.module.d.ts +0 -11
- package/lib/modules/intro/lead-intro/lead-intro.component.d.ts +0 -31
- package/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.d.ts +0 -13
- package/lib/modules/layout/content/content.component.d.ts +0 -25
- package/lib/modules/layout/footer/footer.component.d.ts +0 -8
- package/lib/modules/layout/header/header-menu/header-menu.component.d.ts +0 -18
- package/lib/modules/layout/header/header.component.d.ts +0 -30
- package/lib/modules/layout/header/navbar/navbar.component.d.ts +0 -45
- package/lib/modules/layout/header/notifications-inner/notifications-inner.component.d.ts +0 -25
- package/lib/modules/layout/header/page-title/page-title.component.d.ts +0 -23
- package/lib/modules/layout/keenicon/keenicon.component.d.ts +0 -13
- package/lib/modules/layout/layout/layout.component.d.ts +0 -82
- package/lib/modules/layout/layout.module.d.ts +0 -50
- package/lib/modules/layout/scripts-init/scripts-init.component.d.ts +0 -19
- package/lib/modules/layout/scroll-top/scroll-top.component.d.ts +0 -19
- package/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.d.ts +0 -45
- package/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.d.ts +0 -19
- package/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.d.ts +0 -26
- package/lib/modules/layout/sidebar/sidebar.component.d.ts +0 -36
- package/lib/modules/layout/toolbar/accounting/accounting.component.d.ts +0 -8
- package/lib/modules/layout/toolbar/classic/classic.component.d.ts +0 -48
- package/lib/modules/layout/toolbar/client-settings/client-settings.component.d.ts +0 -16
- package/lib/modules/layout/toolbar/date-single-select/date-single-select.component.d.ts +0 -28
- package/lib/modules/layout/toolbar/datepicker/datepicker.component.d.ts +0 -28
- package/lib/modules/layout/toolbar/extended/extended.component.d.ts +0 -8
- package/lib/modules/layout/toolbar/metrics-header/metrics-header.component.d.ts +0 -103
- package/lib/modules/layout/toolbar/reports/reports.component.d.ts +0 -9
- package/lib/modules/layout/toolbar/saas/saas.component.d.ts +0 -9
- package/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.d.ts +0 -32
- package/lib/modules/layout/toolbar/single-store/single-store.component.d.ts +0 -33
- package/lib/modules/layout/toolbar/single-storedate/single-storedate.component.d.ts +0 -34
- package/lib/modules/layout/toolbar/storesingle/storesingle.component.d.ts +0 -24
- package/lib/modules/layout/toolbar/toolbar.component.d.ts +0 -57
- package/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.d.ts +0 -93
- package/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.d.ts +0 -80
- package/lib/modules/layout/toolbar/trax-header/trax-header.component.d.ts +0 -83
- package/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.d.ts +0 -74
- package/lib/modules/layout/toolbar/zone-header/zone-header.component.d.ts +0 -97
- package/lib/modules/notification/conformation/conformation.component.d.ts +0 -10
- package/lib/modules/notification/notification/notification.component.d.ts +0 -63
- package/lib/modules/notification/notification-routing.module.d.ts +0 -7
- package/lib/modules/notification/notification.module.d.ts +0 -11
- package/lib/pipes/customDate.pipe.d.ts +0 -7
- package/lib/routes/route-wraper-modules/edge-wrapper.module.d.ts +0 -7
- package/lib/routes/route-wraper-modules/manage-wrapper.module.d.ts +0 -7
- package/lib/routes/route-wraper-modules/profile-wrapper.module.d.ts +0 -7
- package/lib/routes/route-wraper-modules/store-wrapper.module.d.ts +0 -7
- package/lib/routes/route-wraper-modules/ticket-wrapper.module.d.ts +0 -7
- package/lib/routes/routing.d.ts +0 -3
- package/lib/services/auth.service.d.ts +0 -49
- package/lib/services/notification.service.d.ts +0 -30
- package/lib/services/toast.service.d.ts +0 -10
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "tango-app-ui-global";
|
|
4
|
-
import * as i2 from "@angular/router";
|
|
5
|
-
import * as i3 from "@angular/common";
|
|
6
|
-
export class PageTitleComponent {
|
|
7
|
-
pageInfo;
|
|
8
|
-
cd;
|
|
9
|
-
router;
|
|
10
|
-
unsubscribe = [];
|
|
11
|
-
appPageTitleDirection = '';
|
|
12
|
-
appPageTitleBreadcrumb;
|
|
13
|
-
appPageTitleDescription;
|
|
14
|
-
title$;
|
|
15
|
-
description$;
|
|
16
|
-
bc$;
|
|
17
|
-
constructor(pageInfo, cd, router) {
|
|
18
|
-
this.pageInfo = pageInfo;
|
|
19
|
-
this.cd = cd;
|
|
20
|
-
this.router = router;
|
|
21
|
-
}
|
|
22
|
-
ngOnInit() {
|
|
23
|
-
this.title$ = this.pageInfo.title.asObservable();
|
|
24
|
-
this.description$ = this.pageInfo.description.asObservable();
|
|
25
|
-
this.bc$ = this.pageInfo.breadcrumbs.asObservable();
|
|
26
|
-
this.title$.subscribe((e) => {
|
|
27
|
-
this.cd.detectChanges();
|
|
28
|
-
});
|
|
29
|
-
this.description$.subscribe((e) => {
|
|
30
|
-
this.cd.detectChanges();
|
|
31
|
-
});
|
|
32
|
-
this.bc$.subscribe((e) => {
|
|
33
|
-
this.cd.detectChanges();
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
ngOnDestroy() {
|
|
37
|
-
this.unsubscribe.forEach((sb) => sb.unsubscribe());
|
|
38
|
-
}
|
|
39
|
-
redirectFunction(path) {
|
|
40
|
-
const user = JSON.parse(localStorage.getItem('user-info'));
|
|
41
|
-
this.router.navigateByUrl(path);
|
|
42
|
-
}
|
|
43
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PageTitleComponent, deps: [{ token: i1.PageInfoService }, { token: i0.ChangeDetectorRef }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
44
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PageTitleComponent, selector: "lib-page-title", inputs: { appPageTitleDirection: "appPageTitleDirection", appPageTitleBreadcrumb: "appPageTitleBreadcrumb", appPageTitleDescription: "appPageTitleDescription" }, ngImport: i0, template: "<ng-container *ngIf=\"title$ | async as title\">\r\n\r\n <ng-container *ngIf=\"appPageTitleBreadcrumb\">\r\n <ng-container *ngIf=\"bc$ | async as _bc\">\r\n <ng-container *ngIf=\"_bc.length > 0\">\r\n <!-- <ng-container *ngIf=\"appPageTitleDirection === 'row'\">\r\n <span class=\"h-20px border-gray-300 border-start mx-4\"></span>\r\n </ng-container> -->\r\n <!--begin::Breadcrumb-->\r\n\r\n <ul class=\"breadcrumb breadcrumb-separatorless fw-semibold fs-7 my-0\"\r\n [ngClass]=\"{'pt-1': appPageTitleDirection === 'column'}\">\r\n <li *ngFor=\"let bc of _bc\" class=\"breadcrumb-item\"\r\n [ngClass]=\"!bc.isSeparator && bc.isActive ? 'text-gray-900' : ''\"\r\n [ngClass]=\"!bc.isSeparator && !bc.isActive ? 'text-muted' : ''\">\r\n <ng-container *ngIf=\"!bc.isSeparator\">\r\n <a class=\"inactive-bc text-hover-primary cursor-pointer\" (click)=\"redirectFunction(bc?.path)\" >\r\n {{ bc.title }}\r\n </a>\r\n </ng-container>\r\n <ng-container *ngIf=\"bc.isSeparator\">\r\n <img src=\"/assets/tango/layout/bc-seperator.svg\" alt=\"\">\r\n </ng-container>\r\n </li>\r\n <li class=\"breadcrumb-item active-bc\">{{ title }}</li>\r\n </ul>\r\n <!--end::Breadcrumb-->\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>\r\n", styles: [".active-bc{color:var(--Primary-600, #00A3FF);font-family:Inter;font-size:16px;font-weight:500;line-height:24px}.inactive-bc{color:#98a2b3}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
|
|
45
|
-
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PageTitleComponent, decorators: [{
|
|
47
|
-
type: Component,
|
|
48
|
-
args: [{ selector: 'lib-page-title', template: "<ng-container *ngIf=\"title$ | async as title\">\r\n\r\n <ng-container *ngIf=\"appPageTitleBreadcrumb\">\r\n <ng-container *ngIf=\"bc$ | async as _bc\">\r\n <ng-container *ngIf=\"_bc.length > 0\">\r\n <!-- <ng-container *ngIf=\"appPageTitleDirection === 'row'\">\r\n <span class=\"h-20px border-gray-300 border-start mx-4\"></span>\r\n </ng-container> -->\r\n <!--begin::Breadcrumb-->\r\n\r\n <ul class=\"breadcrumb breadcrumb-separatorless fw-semibold fs-7 my-0\"\r\n [ngClass]=\"{'pt-1': appPageTitleDirection === 'column'}\">\r\n <li *ngFor=\"let bc of _bc\" class=\"breadcrumb-item\"\r\n [ngClass]=\"!bc.isSeparator && bc.isActive ? 'text-gray-900' : ''\"\r\n [ngClass]=\"!bc.isSeparator && !bc.isActive ? 'text-muted' : ''\">\r\n <ng-container *ngIf=\"!bc.isSeparator\">\r\n <a class=\"inactive-bc text-hover-primary cursor-pointer\" (click)=\"redirectFunction(bc?.path)\" >\r\n {{ bc.title }}\r\n </a>\r\n </ng-container>\r\n <ng-container *ngIf=\"bc.isSeparator\">\r\n <img src=\"/assets/tango/layout/bc-seperator.svg\" alt=\"\">\r\n </ng-container>\r\n </li>\r\n <li class=\"breadcrumb-item active-bc\">{{ title }}</li>\r\n </ul>\r\n <!--end::Breadcrumb-->\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>\r\n", styles: [".active-bc{color:var(--Primary-600, #00A3FF);font-family:Inter;font-size:16px;font-weight:500;line-height:24px}.inactive-bc{color:#98a2b3}\n"] }]
|
|
49
|
-
}], ctorParameters: () => [{ type: i1.PageInfoService }, { type: i0.ChangeDetectorRef }, { type: i2.Router }], propDecorators: { appPageTitleDirection: [{
|
|
50
|
-
type: Input
|
|
51
|
-
}], appPageTitleBreadcrumb: [{
|
|
52
|
-
type: Input
|
|
53
|
-
}], appPageTitleDescription: [{
|
|
54
|
-
type: Input
|
|
55
|
-
}] } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS10aXRsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvaGVhZGVyL3BhZ2UtdGl0bGUvcGFnZS10aXRsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvaGVhZGVyL3BhZ2UtdGl0bGUvcGFnZS10aXRsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDOzs7OztBQVV2RixNQUFNLE9BQU8sa0JBQWtCO0lBV1Q7SUFBbUM7SUFBOEI7SUFWN0UsV0FBVyxHQUFtQixFQUFFLENBQUM7SUFFaEMscUJBQXFCLEdBQVcsRUFBRSxDQUFDO0lBQ25DLHNCQUFzQixDQUFVO0lBQ2hDLHVCQUF1QixDQUFVO0lBRTFDLE1BQU0sQ0FBcUI7SUFDM0IsWUFBWSxDQUFxQjtJQUNqQyxHQUFHLENBQThCO0lBRWpDLFlBQW9CLFFBQXlCLEVBQVUsRUFBb0IsRUFBVSxNQUFhO1FBQTlFLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBa0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFPO0lBQUcsQ0FBQztJQUV0RyxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNqRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdELElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ3pCLENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ3pCLENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRTtZQUN0QixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ3pCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVE7UUFDdkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBUSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQzt3R0FuQ1Usa0JBQWtCOzRGQUFsQixrQkFBa0Isd05DVi9CLHM4Q0FnQ0E7OzRGRHRCYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZ0JBQWdCO3lJQU9qQixxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUGFnZUluZm9TZXJ2aWNlLCBQYWdlTGluayB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcGFnZS10aXRsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UtdGl0bGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BhZ2UtdGl0bGUuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2VUaXRsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHVuc3Vic2NyaWJlOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBhcHBQYWdlVGl0bGVEaXJlY3Rpb246IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGFwcFBhZ2VUaXRsZUJyZWFkY3J1bWI6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgYXBwUGFnZVRpdGxlRGVzY3JpcHRpb246IGJvb2xlYW47XHJcblxyXG4gIHRpdGxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG4gIGRlc2NyaXB0aW9uJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG4gIGJjJDogT2JzZXJ2YWJsZTxBcnJheTxQYWdlTGluaz4+O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZ2VJbmZvOiBQYWdlSW5mb1NlcnZpY2UsIHByaXZhdGUgY2Q6Q2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcm91dGVyOlJvdXRlcikge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRpdGxlJCA9IHRoaXMucGFnZUluZm8udGl0bGUuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB0aGlzLmRlc2NyaXB0aW9uJCA9IHRoaXMucGFnZUluZm8uZGVzY3JpcHRpb24uYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB0aGlzLmJjJCA9IHRoaXMucGFnZUluZm8uYnJlYWRjcnVtYnMuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB0aGlzLnRpdGxlJC5zdWJzY3JpYmUoKGUpPT57XHJcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICB9KVxyXG4gICAgdGhpcy5kZXNjcmlwdGlvbiQuc3Vic2NyaWJlKChlKT0+e1xyXG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgfSlcclxuICAgIHRoaXMuYmMkLnN1YnNjcmliZSgoZSk9PntcclxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUuZm9yRWFjaCgoc2IpID0+IHNiLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgcmVkaXJlY3RGdW5jdGlvbihwYXRoOmFueSl7XHJcbiAgICBjb25zdCB1c2VyID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlci1pbmZvJykgYXMgYW55KTtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwocGF0aCk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ0aXRsZSQgfCBhc3luYyBhcyB0aXRsZVwiPlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwUGFnZVRpdGxlQnJlYWRjcnVtYlwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJjJCB8IGFzeW5jIGFzIF9iY1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX2JjLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcHBQYWdlVGl0bGVEaXJlY3Rpb24gPT09ICdyb3cnXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImgtMjBweCBib3JkZXItZ3JheS0zMDAgYm9yZGVyLXN0YXJ0IG14LTRcIj48L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+IC0tPlxyXG4gICAgICAgIDwhLS1iZWdpbjo6QnJlYWRjcnVtYi0tPlxyXG5cclxuICAgICAgICA8dWwgY2xhc3M9XCJicmVhZGNydW1iIGJyZWFkY3J1bWItc2VwYXJhdG9ybGVzcyBmdy1zZW1pYm9sZCBmcy03IG15LTBcIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwieydwdC0xJzogYXBwUGFnZVRpdGxlRGlyZWN0aW9uID09PSAnY29sdW1uJ31cIj5cclxuICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgYmMgb2YgX2JjXCIgY2xhc3M9XCJicmVhZGNydW1iLWl0ZW1cIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCIhYmMuaXNTZXBhcmF0b3IgJiYgYmMuaXNBY3RpdmUgPyAndGV4dC1ncmF5LTkwMCcgOiAnJ1wiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIiFiYy5pc1NlcGFyYXRvciAmJiAhYmMuaXNBY3RpdmUgPyAndGV4dC1tdXRlZCcgOiAnJ1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWJjLmlzU2VwYXJhdG9yXCI+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJpbmFjdGl2ZS1iYyB0ZXh0LWhvdmVyLXByaW1hcnkgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicmVkaXJlY3RGdW5jdGlvbihiYz8ucGF0aClcIiA+XHJcbiAgICAgICAgICAgICAgICB7eyBiYy50aXRsZSB9fVxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJiYy5pc1NlcGFyYXRvclwiPlxyXG4gICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2Fzc2V0cy90YW5nby9sYXlvdXQvYmMtc2VwZXJhdG9yLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8bGkgY2xhc3M9XCJicmVhZGNydW1iLWl0ZW0gYWN0aXZlLWJjXCI+e3sgdGl0bGUgfX08L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICAgICAgPCEtLWVuZDo6QnJlYWRjcnVtYi0tPlxyXG5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{ "free-version-categories": ["general", "abstract", "devices", "location", "users", "it-newtwork", "design", "archive", "typography", "technologies", "social-media", "weather"], "categories": { "abstract": ["abstract-33", "abstract-27", "abstract-26", "abstract-32", "abstract-18", "abstract-24", "abstract-30", "abstract-8", "abstract-9", "abstract-31", "abstract-25", "abstract-19", "abstract-21", "abstract-35", "abstract-34", "abstract-20", "abstract-36", "abstract-22", "abstract-23", "abstract-37", "abstract-44", "abstract", "abstract-45", "abstract-47", "abstract-46", "abstract-42", "abstract-43", "abstract-41", "abstract-40", "abstract-48", "abstract-49", "abstract-12", "abstract-2", "abstract-3", "abstract-13", "abstract-39", "abstract-11", "abstract-1", "abstract-10", "abstract-38", "abstract-14", "abstract-28", "abstract-4", "abstract-5", "abstract-29", "abstract-15", "abstract-17", "abstract-7", "abstract-6", "abstract-16"], "settings": ["toggle-on", "toggle-on-circle", "toggle-off", "category", "setting", "toggle-off-circle", "more-2", "setting-4", "setting-2", "setting-3"], "design": ["eraser", "paintbucket", "add-item", "design-2", "brush", "size", "design", "copy", "text", "design-frame", "bucket", "glass", "feather", "pencil", "colors-square", "design-mask", "bucket-square", "copy-success", "color-swatch"], "social-media": ["instagram", "snapchat", "classmates", "facebook", "whatsapp", "social-media", "youtube", "dribbble", "twitter", "tiktok", "behance"], "it-network": ["underlining", "disconnect", "code", "gear", "loading", "scroll", "wrench", "square-brackets", "frame", "message-programming", "data", "fasten", "click"], "technologies": ["tech-wifi", "joystick", "faceid", "technology-3", "technology-2", "electricity", "fingerprint-scanning", "technology-4", "artificial-intelligence", "technology"], "ecommerce": ["basket-ok", "cheque", "handcart", "shop", "tag", "purchase", "discount", "package", "percentage", "barcode", "lots-shopping", "basket"], "archive": ["book-square", "receipt-square", "save-2", "archive-tick"], "security": ["shield-search", "password-check", "shield-tick", "lock", "key", "shield", "shield-cross", "key-square", "eye-slash", "security-check", "lock-3", "scan-barcode", "lock-2", "eye", "shield-slash", "security-user"], "general": ["triangle", "subtitle", "ghost", "information", "milk", "home", "happy-emoji", "mouse-square", "filter-tick", "filter-search", "wifi-home", "trash-square", "paper-clip", "archive", "pin", "wifi-square", "auto-brightness", "coffee", "icon", "emoji-happy", "general-mouse", "ranking", "slider", "crown-2", "rescue", "flash-circle", "safe-home", "cloud-change", "crown", "filter-edit", "picture", "verify", "send", "tag-cross", "cloud-add", "home-3", "disk", "trash", "star", "cd", "home-2", "mouse-circle", "home-1", "call", "gift", "share", "sort", "magnifier", "filter-square", "tree", "filter", "switch", "cloud", "cup", "diamonds", "status", "rocket", "cloud-download", "menu", "chrome"], "location": ["geolocation-home", "map", "telephone-geolocation", "satellite", "flag", "focus", "pointers", "compass", "route", "geolocation"], "education": ["brifecase-timer", "briefcase", "clipboard", "bookmark-2", "note", "note-2", "book-open", "book", "teacher", "award", "brifecase-tick", "brifecase-cros", "bookmark"], "business": ["chart-line", "chart", "graph-3", "chart-pie-3", "graph-2", "chart-line-down", "chart-pie-too", "chart-pie-4", "chart-line-down-2", "graph-4", "chart-line-up-2", "badge", "chart-line-up", "chart-simple-3", "chart-pie-simple", "chart-simple-2", "graph-up", "chart-line-star", "graph", "chart-simple"], "files-folders": ["tablet-delete", "file-added", "file-up", "minus-folder", "file", "delete-files", "add-folder", "file-left", "file-deleted", "some-files", "file-right", "notepad", "notepad-bookmark", "document", "like-folder", "folder-up", "folder-added", "file-down", "filter-tablet", "tablet-book", "update-file", "add-notepad", "questionnaire-tablet", "tablet-up", "tablet-ok", "update-folder", "files-tablet", "folder-down", "notepad-edit", "tablet-text-up", "search-list", "tablet-text-down", "add-files", "tablet-down", "delete-folder", "folder", "file-sheet"], "software": ["bootstrap", "figma", "dropbox", "xaomi", "microsoft", "android", "vue", "js", "spring-framework", "github", "dj", "google-play", "angular", "soft-3", "python", "soft-2", "ts", "xd", "spotify", "js-2", "laravel", "css", "google", "photoshop", "twitch", "illustrator", "pails", "react", "html", "slack", "soft", "yii", "apple", "vuesax"], "time": ["calendar-add", "calendar-search", "calendar-2", "calendar-tick", "time", "watch", "calendar-edit", "calendar", "calendar-8", "timer", "calendar-remove"], "support": ["heart-circle", "like", "information-4", "information-5", "information-2", "information-3", "question", "dislike", "message-question", "medal-star", "like-tag", "like-2", "support-24", "question-2", "lovely", "like-shapes", "heart"], "users": ["user", "user-square", "user-tick", "people", "user-edit", "profile-user", "profile-circle"], "medicine": ["capsule", "virus", "bandage", "thermometer", "flask", "test-tubes", "syringe", "mask", "pill", "pulse"], "burger-menu": ["burger-menu", "burger-menu-6", "burger-menu-5", "burger-menu-4", "burger-menu-1", "burger-menu-3", "burger-menu-2"], "typography": ["text-align-center", "text-italic", "text-bold", "text-strikethrough", "text-underline", "text-number", "text-align-left", "text-align-right", "text-circle", "text-align-justify-center"], "finance": ["theta", "dollar", "binance", "nexo", "euro", "avalanche", "bitcoin", "wallet", "price-tag", "finance-calculator", "dash", "lts", "vibe", "credit-cart", "paypal", "bill", "ocean", "celsius", "educare", "enjin-coin", "two-credit-cart", "bank", "binance-usd", "wanchain", "trello", "save-deposit", "xmr", "financial-schedule", "office-bag"], "weather": ["night-day", "sun", "drop", "moon"], "arrows": ["exit-right-corner", "dots-circle-vertical", "check-square", "right-left", "arrow-down", "dots-horizontal", "arrow-right-left", "up-down", "double-check", "arrow-up-left", "down", "exit-up", "up-square", "down-square", "plus-square", "dots-circle", "arrow-down-left", "double-check-circle", "up", "entrance-right", "arrow-right", "arrow-two-diagonals", "minus-square", "arrow-diagonal", "black-left", "arrow-down-refraction", "black-right", "double-left", "arrow-circle-left", "arrow-zigzag", "plus", "check", "exit-left", "arrow-circle-right", "cross-square", "entrance-left", "left-square", "arrows-loop", "black-left-line", "double-left-arrow", "check-circle", "right", "dots-square-vertical", "arrow-up-right", "exit-down", "dots-square", "to-left", "double-down", "plus-circle", "black-down", "double-up", "black-up", "double-right-arrow", "arrow-up", "black-right-line", "arrow-up-refraction", "arrow-left", "cross", "minus-circle", "arrow-down-right", "exit-right", "to-right", "double-right", "arrow-mix", "right-square", "arrows-circle", "cross-circle", "left", "minus", "dots-vertical", "arrow-up-down"], "communication": ["message-text-2", "message-notif", "message-add", "sms", "directbox-default", "message-text", "messages", "address-book", "message-edit", "message-minus"], "notifications": ["notification-circle", "notification-favorite", "notification-2", "notification", "notification-bing", "notification-status", "notification-on"], "delivery-and-logistics": ["scooter-2", "parcel", "delivery-time", "delivery", "delivery-24", "ship", "courier", "logistic", "trailer", "car-2", "car-3", "airplane-square", "scooter", "truck", "cube-3", "bus", "cube-2", "delivery-door", "delivery-3", "delivery-2", "car", "courier-express", "airplane", "delivery-geolocation", "parcel-tracking"], "devices": ["monitor-mobile", "devices", "keyboard", "devices-2", "bluetooth", "wifi", "airpod", "simcard-2", "speaker", "printer", "simcard", "router", "phone", "electronic-clock", "external-drive", "laptop", "tablet", "screen", "calculator", "mouse"], "grid": ["grid", "slider-vertical-2", "maximize", "slider-vertical", "row-horizontal", "kanban", "row-vertical", "fat-rows", "grid-2", "element-8", "element-9", "element-12", "element-4", "element-5", "grid-frame", "element-11", "element-7", "element-6", "element-10", "element-2", "element-3", "element-equal", "element-1", "slider-horizontal-2", "slider-horizontal", "element-plus"] }, "duotone-paths": { "abstract-33": 2, "abstract-27": 2, "abstract-26": 2, "abstract-32": 2, "abstract-18": 2, "abstract-24": 2, "abstract-30": 2, "abstract-8": 2, "abstract-9": 2, "abstract-31": 2, "abstract-25": 2, "abstract-19": 2, "abstract-21": 2, "abstract-35": 2, "abstract-34": 2, "abstract-20": 2, "abstract-36": 2, "abstract-22": 2, "abstract-23": 2, "abstract-37": 2, "abstract-44": 2, "abstract": 2, "abstract-45": 2, "abstract-47": 2, "abstract-46": 2, "abstract-42": 2, "abstract-43": 2, "abstract-41": 2, "abstract-40": 2, "abstract-48": 3, "abstract-49": 3, "abstract-12": 2, "abstract-2": 2, "abstract-3": 2, "abstract-13": 2, "abstract-39": 2, "abstract-11": 2, "abstract-1": 2, "abstract-10": 2, "abstract-38": 2, "abstract-14": 2, "abstract-28": 2, "abstract-4": 2, "abstract-5": 2, "abstract-29": 2, "abstract-15": 2, "abstract-17": 2, "abstract-7": 2, "abstract-6": 0, "abstract-16": 2, "toggle-on": 2, "toggle-on-circle": 2, "toggle-off": 2, "category": 4, "setting": 2, "toggle-off-circle": 2, "more-2": 4, "setting-4": 0, "setting-2": 2, "setting-3": 5, "eraser": 3, "paintbucket": 3, "add-item": 3, "design-2": 2, "brush": 2, "size": 2, "design": 2, "copy": 0, "text": 0, "design-frame": 2, "bucket": 4, "glass": 3, "feather": 2, "pencil": 2, "colors-square": 4, "design-mask": 2, "bucket-square": 3, "copy-success": 2, "color-swatch": 21, "instagram": 2, "snapchat": 2, "classmates": 2, "facebook": 2, "whatsapp": 2, "social-media": 2, "youtube": 2, "dribbble": 6, "twitter": 2, "tiktok": 2, "behance": 2, "underlining": 3, "disconnect": 5, "code": 4, "gear": 2, "loading": 2, "scroll": 3, "wrench": 2, "square-brackets": 4, "frame": 4, "message-programming": 4, "data": 5, "fasten": 2, "click": 5, "tech-wifi": 2, "joystick": 4, "faceid": 6, "technology-3": 4, "technology-2": 2, "electricity": 10, "fingerprint-scanning": 5, "technology-4": 7, "artificial-intelligence": 8, "technology": 9, "basket-ok": 4, "cheque": 7, "handcart": 0, "shop": 5, "tag": 3, "purchase": 2, "discount": 2, "package": 3, "percentage": 2, "barcode": 8, "lots-shopping": 8, "basket": 4, "book-square": 3, "receipt-square": 2, "save-2": 2, "archive-tick": 2, "shield-search": 3, "password-check": 5, "shield-tick": 2, "lock": 3, "key": 2, "shield": 2, "shield-cross": 3, "key-square": 2, "eye-slash": 4, "security-check": 4, "lock-3": 3, "scan-barcode": 8, "lock-2": 5, "eye": 3, "shield-slash": 3, "security-user": 2, "triangle": 3, "subtitle": 5, "ghost": 3, "information": 3, "milk": 3, "home": 0, "happy-emoji": 2, "mouse-square": 2, "filter-tick": 2, "filter-search": 3, "wifi-home": 4, "trash-square": 4, "paper-clip": 0, "archive": 3, "pin": 2, "wifi-square": 4, "auto-brightness": 3, "coffee": 6, "icon": 3, "emoji-happy": 4, "general-mouse": 2, "ranking": 4, "slider": 4, "crown-2": 3, "rescue": 2, "flash-circle": 2, "safe-home": 2, "cloud-change": 3, "crown": 2, "filter-edit": 2, "picture": 2, "verify": 2, "send": 2, "tag-cross": 3, "cloud-add": 2, "home-3": 2, "disk": 2, "trash": 5, "star": 0, "cd": 2, "home-2": 2, "mouse-circle": 2, "home-1": 2, "call": 8, "gift": 4, "share": 6, "sort": 4, "magnifier": 2, "filter-square": 2, "tree": 3, "filter": 2, "switch": 2, "cloud": 0, "cup": 2, "diamonds": 2, "status": 3, "rocket": 2, "cloud-download": 2, "menu": 4, "chrome": 2, "geolocation-home": 2, "map": 3, "telephone-geolocation": 3, "satellite": 6, "flag": 2, "focus": 2, "pointers": 3, "compass": 2, "route": 4, "geolocation": 2, "brifecase-timer": 3, "briefcase": 2, "clipboard": 3, "bookmark-2": 2, "note": 2, "note-2": 4, "book-open": 4, "book": 4, "teacher": 2, "award": 3, "brifecase-tick": 3, "brifecase-cros": 3, "bookmark": 2, "chart-line": 2, "chart": 2, "graph-3": 2, "chart-pie-3": 3, "graph-2": 3, "chart-line-down": 2, "chart-pie-too": 2, "chart-pie-4": 3, "chart-line-down-2": 3, "graph-4": 2, "chart-line-up-2": 2, "badge": 5, "chart-line-up": 2, "chart-simple-3": 4, "chart-pie-simple": 2, "chart-simple-2": 4, "graph-up": 6, "chart-line-star": 3, "graph": 4, "chart-simple": 4, "tablet-delete": 3, "file-added": 2, "file-up": 2, "minus-folder": 2, "file": 2, "delete-files": 2, "add-folder": 2, "file-left": 2, "file-deleted": 2, "some-files": 2, "file-right": 2, "notepad": 5, "notepad-bookmark": 6, "document": 2, "like-folder": 2, "folder-up": 2, "folder-added": 2, "file-down": 2, "filter-tablet": 2, "tablet-book": 2, "update-file": 4, "add-notepad": 4, "questionnaire-tablet": 2, "tablet-up": 3, "tablet-ok": 3, "update-folder": 2, "files-tablet": 2, "folder-down": 2, "notepad-edit": 2, "tablet-text-up": 2, "search-list": 3, "tablet-text-down": 4, "add-files": 3, "tablet-down": 3, "delete-folder": 2, "folder": 2, "file-sheet": 2, "bootstrap": 3, "figma": 5, "dropbox": 5, "xaomi": 2, "microsoft": 4, "android": 6, "vue": 2, "js": 2, "spring-framework": 0, "github": 2, "dj": 0, "google-play": 2, "angular": 3, "soft-3": 2, "python": 2, "soft-2": 2, "ts": 3, "xd": 3, "spotify": 2, "js-2": 2, "laravel": 7, "css": 2, "google": 2, "photoshop": 2, "twitch": 3, "illustrator": 4, "pails": 9, "react": 2, "html": 2, "slack": 8, "soft": 6, "yii": 3, "apple": 2, "vuesax": 3, "calendar-add": 6, "calendar-search": 4, "calendar-2": 5, "calendar-tick": 6, "time": 2, "watch": 2, "calendar-edit": 3, "calendar": 2, "calendar-8": 6, "timer": 3, "calendar-remove": 6, "heart-circle": 2, "like": 2, "information-4": 3, "information-5": 3, "information-2": 3, "information-3": 3, "question": 3, "dislike": 2, "message-question": 3, "medal-star": 4, "like-tag": 2, "like-2": 2, "support-24": 3, "question-2": 3, "lovely": 2, "like-shapes": 2, "heart": 2, "user": 2, "user-square": 3, "user-tick": 3, "people": 5, "user-edit": 3, "profile-user": 4, "profile-circle": 3, "capsule": 2, "virus": 3, "bandage": 2, "thermometer": 2, "flask": 2, "test-tubes": 2, "syringe": 3, "mask": 3, "pill": 0, "pulse": 2, "burger-menu": 4, "burger-menu-6": 0, "burger-menu-5": 0, "burger-menu-4": 0, "burger-menu-1": 4, "burger-menu-3": 9, "burger-menu-2": 10, "text-align-center": 4, "text-italic": 4, "text-bold": 3, "text-strikethrough": 3, "text-underline": 3, "text-number": 6, "text-align-left": 4, "text-align-right": 4, "text-circle": 6, "text-align-justify-center": 4, "theta": 2, "dollar": 3, "binance": 5, "nexo": 2, "euro": 3, "avalanche": 2, "bitcoin": 2, "wallet": 4, "price-tag": 3, "finance-calculator": 7, "dash": 2, "lts": 2, "vibe": 2, "credit-cart": 2, "paypal": 2, "bill": 6, "ocean": 19, "celsius": 2, "educare": 4, "enjin-coin": 2, "two-credit-cart": 5, "bank": 2, "binance-usd": 4, "wanchain": 2, "trello": 3, "save-deposit": 4, "xmr": 2, "financial-schedule": 4, "office-bag": 4, "night-day": 10, "sun": 9, "drop": 2, "moon": 2, "exit-right-corner": 2, "dots-circle-vertical": 4, "check-square": 2, "right-left": 3, "arrow-down": 2, "dots-horizontal": 3, "arrow-right-left": 2, "up-down": 3, "double-check": 2, "arrow-up-left": 2, "down": 0, "exit-up": 2, "up-square": 2, "down-square": 2, "plus-square": 3, "dots-circle": 4, "arrow-down-left": 2, "double-check-circle": 3, "up": 0, "entrance-right": 2, "arrow-right": 2, "arrow-two-diagonals": 5, "minus-square": 2, "arrow-diagonal": 3, "black-left": 0, "arrow-down-refraction": 2, "black-right": 0, "double-left": 2, "arrow-circle-left": 2, "arrow-zigzag": 2, "plus": 0, "check": 0, "exit-left": 2, "arrow-circle-right": 2, "cross-square": 2, "entrance-left": 2, "left-square": 2, "arrows-loop": 2, "black-left-line": 2, "double-left-arrow": 2, "check-circle": 2, "right": 0, "dots-square-vertical": 4, "arrow-up-right": 2, "exit-down": 2, "dots-square": 4, "to-left": 0, "double-down": 3, "plus-circle": 2, "black-down": 0, "double-up": 3, "black-up": 0, "double-right-arrow": 2, "arrow-up": 2, "black-right-line": 2, "arrow-up-refraction": 2, "arrow-left": 2, "cross": 2, "minus-circle": 2, "arrow-down-right": 2, "exit-right": 2, "to-right": 0, "double-right": 2, "arrow-mix": 2, "right-square": 2, "arrows-circle": 2, "cross-circle": 2, "left": 0, "minus": 0, "dots-vertical": 3, "arrow-up-down": 2, "message-text-2": 3, "message-notif": 5, "message-add": 3, "sms": 2, "directbox-default": 4, "message-text": 3, "messages": 5, "address-book": 3, "message-edit": 2, "message-minus": 2, "notification-circle": 2, "notification-favorite": 3, "notification-2": 2, "notification": 3, "notification-bing": 3, "notification-status": 4, "notification-on": 5, "scooter-2": 0, "parcel": 5, "delivery-time": 5, "delivery": 5, "delivery-24": 4, "ship": 3, "courier": 3, "logistic": 7, "trailer": 5, "car-2": 6, "car-3": 3, "airplane-square": 2, "scooter": 7, "truck": 5, "cube-3": 2, "bus": 5, "cube-2": 3, "delivery-door": 4, "delivery-3": 3, "delivery-2": 9, "car": 5, "courier-express": 7, "airplane": 2, "delivery-geolocation": 5, "parcel-tracking": 3, "monitor-mobile": 2, "devices": 5, "keyboard": 2, "devices-2": 3, "bluetooth": 2, "wifi": 4, "airpod": 3, "simcard-2": 2, "speaker": 3, "printer": 5, "simcard": 5, "router": 2, "phone": 2, "electronic-clock": 4, "external-drive": 5, "laptop": 2, "tablet": 3, "screen": 4, "calculator": 6, "mouse": 2, "grid": 2, "slider-vertical-2": 3, "maximize": 5, "slider-vertical": 3, "row-horizontal": 2, "kanban": 2, "row-vertical": 2, "fat-rows": 2, "grid-2": 2, "element-8": 2, "element-9": 2, "element-12": 3, "element-4": 2, "element-5": 2, "grid-frame": 3, "element-11": 4, "element-7": 2, "element-6": 2, "element-10": 3, "element-2": 2, "element-3": 2, "element-equal": 5, "element-1": 4, "slider-horizontal-2": 3, "slider-horizontal": 3, "element-plus": 5 }, "number": 573 }
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Component, HostBinding, Input } from '@angular/core';
|
|
2
|
-
import icons from './icons.json';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
export class KeeniconComponent {
|
|
6
|
-
name;
|
|
7
|
-
class;
|
|
8
|
-
type = 'duotone';
|
|
9
|
-
pathsNumber = 0;
|
|
10
|
-
constructor() {
|
|
11
|
-
}
|
|
12
|
-
ngOnInit() {
|
|
13
|
-
if (this.type === 'duotone') {
|
|
14
|
-
// @ts-ignore
|
|
15
|
-
this.pathsNumber = icons[this.type + '-paths'][this.name] ?? 0;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
get styleDisplay() {
|
|
19
|
-
return 'contents';
|
|
20
|
-
}
|
|
21
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeeniconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KeeniconComponent, selector: "lib-keenicon", inputs: { name: "name", class: "class", type: "type" }, host: { properties: { "style.display": "this.styleDisplay" } }, ngImport: i0, template: "<span *ngIf=\"type === 'duotone'\" class=\"ki-{{ type }} ki-{{ name }}{{ class ? ' ' + class : '' }}\">\r\n <span *ngFor=\"let i of [].constructor(pathsNumber); let idx = index\" class=\"path{{ idx + 1 }}\"></span>\r\n</span>\r\n<span *ngIf=\"type !== 'duotone'\" class=\"ki-{{ type }} ki-{{ name }}{{ class ? ' ' + class : '' }}\"></span>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
23
|
-
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeeniconComponent, decorators: [{
|
|
25
|
-
type: Component,
|
|
26
|
-
args: [{ selector: 'lib-keenicon', template: "<span *ngIf=\"type === 'duotone'\" class=\"ki-{{ type }} ki-{{ name }}{{ class ? ' ' + class : '' }}\">\r\n <span *ngFor=\"let i of [].constructor(pathsNumber); let idx = index\" class=\"path{{ idx + 1 }}\"></span>\r\n</span>\r\n<span *ngIf=\"type !== 'duotone'\" class=\"ki-{{ type }} ki-{{ name }}{{ class ? ' ' + class : '' }}\"></span>\r\n" }]
|
|
27
|
-
}], ctorParameters: () => [], propDecorators: { name: [{
|
|
28
|
-
type: Input
|
|
29
|
-
}], class: [{
|
|
30
|
-
type: Input
|
|
31
|
-
}], type: [{
|
|
32
|
-
type: Input
|
|
33
|
-
}], styleDisplay: [{
|
|
34
|
-
type: HostBinding,
|
|
35
|
-
args: ['style.display']
|
|
36
|
-
}] } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2Vlbmljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L2tlZW5pY29uL2tlZW5pY29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC9rZWVuaWNvbi9rZWVuaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDOzs7QUFPakMsTUFBTSxPQUFPLGlCQUFpQjtJQUNuQixJQUFJLENBQVM7SUFDYixLQUFLLENBQVM7SUFDZCxJQUFJLEdBQVcsU0FBUyxDQUFDO0lBRWxDLFdBQVcsR0FBVyxDQUFDLENBQUM7SUFFeEI7SUFDQSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDM0IsYUFBYTtZQUNiLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoRTtJQUNILENBQUM7SUFFRCxJQUNJLFlBQVk7UUFDZCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO3dHQXBCVSxpQkFBaUI7NEZBQWpCLGlCQUFpQiw0S0NSOUIsMFZBSUE7OzRGRElhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxjQUFjO3dEQUtmLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQWVGLFlBQVk7c0JBRGYsV0FBVzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IGljb25zIGZyb20gJy4vaWNvbnMuanNvbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1rZWVuaWNvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2tlZW5pY29uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9rZWVuaWNvbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLZWVuaWNvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nID0gJ2R1b3RvbmUnO1xyXG5cclxuICBwYXRoc051bWJlcjogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdkdW90b25lJykge1xyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIHRoaXMucGF0aHNOdW1iZXIgPSBpY29uc1t0aGlzLnR5cGUgKyAnLXBhdGhzJ11bdGhpcy5uYW1lXSA/PyAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5JylcclxuICBnZXQgc3R5bGVEaXNwbGF5KCkge1xyXG4gICAgcmV0dXJuICdjb250ZW50cyc7XHJcbiAgfVxyXG59XHJcbiIsIjxzcGFuICpuZ0lmPVwidHlwZSA9PT0gJ2R1b3RvbmUnXCIgY2xhc3M9XCJraS17eyB0eXBlIH19IGtpLXt7IG5hbWUgfX17eyBjbGFzcyA/ICcgJyArIGNsYXNzIDogJycgfX1cIj5cclxuICA8c3BhbiAqbmdGb3I9XCJsZXQgaSBvZiBbXS5jb25zdHJ1Y3RvcihwYXRoc051bWJlcik7IGxldCBpZHggPSBpbmRleFwiIGNsYXNzPVwicGF0aHt7IGlkeCArIDEgfX1cIj48L3NwYW4+XHJcbjwvc3Bhbj5cclxuPHNwYW4gKm5nSWY9XCJ0eXBlICE9PSAnZHVvdG9uZSdcIiBjbGFzcz1cImtpLXt7IHR5cGUgfX0ga2kte3sgbmFtZSB9fXt7IGNsYXNzID8gJyAnICsgY2xhc3MgOiAnJyB9fVwiPjwvc3Bhbj5cclxuIl19
|
|
@@ -1,314 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild, HostListener, } from '@angular/core';
|
|
2
|
-
import { NavigationEnd } from '@angular/router';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "tango-app-ui-global";
|
|
5
|
-
import * as i2 from "@angular/router";
|
|
6
|
-
import * as i3 from "../../../services/auth.service";
|
|
7
|
-
import * as i4 from "../../../services/toast.service";
|
|
8
|
-
import * as i5 from "@angular/common";
|
|
9
|
-
import * as i6 from "../header/header.component";
|
|
10
|
-
import * as i7 from "../content/content.component";
|
|
11
|
-
import * as i8 from "../footer/footer.component";
|
|
12
|
-
import * as i9 from "../scripts-init/scripts-init.component";
|
|
13
|
-
import * as i10 from "../toolbar/toolbar.component";
|
|
14
|
-
import * as i11 from "../sidebar/sidebar.component";
|
|
15
|
-
import * as i12 from "../scroll-top/scroll-top.component";
|
|
16
|
-
export class LayoutComponent {
|
|
17
|
-
initService;
|
|
18
|
-
layout;
|
|
19
|
-
router;
|
|
20
|
-
activatedRoute;
|
|
21
|
-
authService;
|
|
22
|
-
toastService;
|
|
23
|
-
gs;
|
|
24
|
-
unsubscribe = [];
|
|
25
|
-
// Public variables
|
|
26
|
-
// page
|
|
27
|
-
pageContainerCSSClasses;
|
|
28
|
-
// header
|
|
29
|
-
appHeaderDefaultClass = '';
|
|
30
|
-
appHeaderDisplay;
|
|
31
|
-
appHeaderDefaultStickyEnabled;
|
|
32
|
-
appHeaderDefaultStickyAttributes = {};
|
|
33
|
-
appHeaderDefaultMinimizeEnabled;
|
|
34
|
-
appHeaderDefaultMinimizeAttributes = {};
|
|
35
|
-
// toolbar
|
|
36
|
-
appToolbarDisplay;
|
|
37
|
-
appToolbarLayout;
|
|
38
|
-
appToolbarCSSClass = '';
|
|
39
|
-
appToolbarSwapEnabled;
|
|
40
|
-
appToolbarSwapAttributes = {};
|
|
41
|
-
appToolbarStickyEnabled;
|
|
42
|
-
appToolbarStickyAttributes = {};
|
|
43
|
-
appToolbarMinimizeEnabled;
|
|
44
|
-
appToolbarMinimizeAttributes = {};
|
|
45
|
-
// content
|
|
46
|
-
appContentContiner;
|
|
47
|
-
appContentContainerClass;
|
|
48
|
-
contentCSSClasses;
|
|
49
|
-
contentContainerCSSClass;
|
|
50
|
-
// sidebar
|
|
51
|
-
appSidebarDefaultClass;
|
|
52
|
-
appSidebarDefaultDrawerEnabled;
|
|
53
|
-
appSidebarDefaultDrawerAttributes = {};
|
|
54
|
-
appSidebarDisplay;
|
|
55
|
-
appSidebarDefaultStickyEnabled;
|
|
56
|
-
appSidebarDefaultStickyAttributes = {};
|
|
57
|
-
ktSidebar;
|
|
58
|
-
/// sidebar panel
|
|
59
|
-
appSidebarPanelDisplay;
|
|
60
|
-
// footer
|
|
61
|
-
appFooterDisplay;
|
|
62
|
-
appFooterCSSClass = '';
|
|
63
|
-
appFooterContainer = '';
|
|
64
|
-
appFooterContainerCSSClass = '';
|
|
65
|
-
appFooterFixedDesktop;
|
|
66
|
-
appFooterFixedMobile;
|
|
67
|
-
// scrolltop
|
|
68
|
-
scrolltopDisplay;
|
|
69
|
-
ktAside;
|
|
70
|
-
ktHeaderMobile;
|
|
71
|
-
ktHeader;
|
|
72
|
-
constructor(initService, layout, router, activatedRoute, authService, toastService, gs) {
|
|
73
|
-
this.initService = initService;
|
|
74
|
-
this.layout = layout;
|
|
75
|
-
this.router = router;
|
|
76
|
-
this.activatedRoute = activatedRoute;
|
|
77
|
-
this.authService = authService;
|
|
78
|
-
this.toastService = toastService;
|
|
79
|
-
this.gs = gs;
|
|
80
|
-
// define layout type and load layout
|
|
81
|
-
this.router.events.subscribe((event) => {
|
|
82
|
-
if (event instanceof NavigationEnd) {
|
|
83
|
-
const currentLayoutType = this.layout.currentLayoutTypeSubject.value;
|
|
84
|
-
const nextLayoutType = this.activatedRoute?.firstChild?.snapshot.data.layout ||
|
|
85
|
-
this.layout.getBaseLayoutTypeFromLocalStorage();
|
|
86
|
-
if (currentLayoutType !== nextLayoutType || !currentLayoutType) {
|
|
87
|
-
this.layout.currentLayoutTypeSubject.next(nextLayoutType);
|
|
88
|
-
this.initService.reInitProps(nextLayoutType);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
ngOnInit() {
|
|
94
|
-
const subscr = this.layout.layoutConfigSubject
|
|
95
|
-
.asObservable()
|
|
96
|
-
.subscribe((config) => {
|
|
97
|
-
this.updateProps(config);
|
|
98
|
-
});
|
|
99
|
-
this.unsubscribe.push(subscr);
|
|
100
|
-
}
|
|
101
|
-
updateProps(config) {
|
|
102
|
-
this.scrolltopDisplay = this.layout.getProp('scrolltop.display', config);
|
|
103
|
-
this.pageContainerCSSClasses =
|
|
104
|
-
this.layout.getStringCSSClasses('pageContainer');
|
|
105
|
-
this.appHeaderDefaultClass = this.layout.getProp('app.header.default.class', config);
|
|
106
|
-
this.appHeaderDisplay = this.layout.getProp('app.header.display', config);
|
|
107
|
-
this.appFooterDisplay = this.layout.getProp('app.footer.display', config);
|
|
108
|
-
this.appSidebarDisplay = this.layout.getProp('app.sidebar.display', config);
|
|
109
|
-
this.appSidebarPanelDisplay = this.layout.getProp('app.sidebar-panel.display', config);
|
|
110
|
-
this.appToolbarDisplay = this.layout.getProp('app.toolbar.display', config);
|
|
111
|
-
this.contentCSSClasses = this.layout.getStringCSSClasses('content');
|
|
112
|
-
this.contentContainerCSSClass =
|
|
113
|
-
this.layout.getStringCSSClasses('contentContainer');
|
|
114
|
-
this.appContentContiner = this.layout.getProp('app.content.container', config);
|
|
115
|
-
this.appContentContainerClass = this.layout.getProp('app.content.containerClass', config);
|
|
116
|
-
// footer
|
|
117
|
-
if (this.appFooterDisplay) {
|
|
118
|
-
this.updateFooter(config);
|
|
119
|
-
}
|
|
120
|
-
// sidebar
|
|
121
|
-
if (this.appSidebarDisplay) {
|
|
122
|
-
this.updateSidebar(config);
|
|
123
|
-
}
|
|
124
|
-
// header
|
|
125
|
-
if (this.appHeaderDisplay) {
|
|
126
|
-
this.updateHeader(config);
|
|
127
|
-
}
|
|
128
|
-
// toolbar
|
|
129
|
-
if (this.appToolbarDisplay) {
|
|
130
|
-
this.updateToolbar(config);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
updateSidebar(config) {
|
|
134
|
-
this.appSidebarDefaultClass = this.layout.getProp('app.sidebar.default.class', config);
|
|
135
|
-
this.appSidebarDefaultDrawerEnabled = this.layout.getProp('app.sidebar.default.drawer.enabled', config);
|
|
136
|
-
if (this.appSidebarDefaultDrawerEnabled) {
|
|
137
|
-
this.appSidebarDefaultDrawerAttributes = this.layout.getProp('app.sidebar.default.drawer.attributes', config);
|
|
138
|
-
}
|
|
139
|
-
this.appSidebarDefaultStickyEnabled = this.layout.getProp('app.sidebar.default.sticky.enabled', config);
|
|
140
|
-
if (this.appSidebarDefaultStickyEnabled) {
|
|
141
|
-
this.appSidebarDefaultStickyAttributes = this.layout.getProp('app.sidebar.default.sticky.attributes', config);
|
|
142
|
-
}
|
|
143
|
-
setTimeout(() => {
|
|
144
|
-
const sidebarElement = document.getElementById('kt_app_sidebar');
|
|
145
|
-
// sidebar
|
|
146
|
-
if (this.appSidebarDisplay && sidebarElement) {
|
|
147
|
-
const sidebarAttributes = sidebarElement
|
|
148
|
-
.getAttributeNames()
|
|
149
|
-
.filter((t) => t.indexOf('data-') > -1);
|
|
150
|
-
sidebarAttributes.forEach((attr) => sidebarElement.removeAttribute(attr));
|
|
151
|
-
if (this.appSidebarDefaultDrawerEnabled) {
|
|
152
|
-
for (const key in this.appSidebarDefaultDrawerAttributes) {
|
|
153
|
-
if (this.appSidebarDefaultDrawerAttributes.hasOwnProperty(key)) {
|
|
154
|
-
sidebarElement.setAttribute(key, this.appSidebarDefaultDrawerAttributes[key]);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
if (this.appSidebarDefaultStickyEnabled) {
|
|
159
|
-
for (const key in this.appSidebarDefaultStickyAttributes) {
|
|
160
|
-
if (this.appSidebarDefaultStickyAttributes.hasOwnProperty(key)) {
|
|
161
|
-
sidebarElement.setAttribute(key, this.appSidebarDefaultStickyAttributes[key]);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}, 0);
|
|
167
|
-
}
|
|
168
|
-
updateHeader(config) {
|
|
169
|
-
this.appHeaderDefaultStickyEnabled = this.layout.getProp('app.header.default.sticky.enabled', config);
|
|
170
|
-
if (this.appHeaderDefaultStickyEnabled) {
|
|
171
|
-
this.appHeaderDefaultStickyAttributes = this.layout.getProp('app.header.default.sticky.attributes', config);
|
|
172
|
-
}
|
|
173
|
-
this.appHeaderDefaultMinimizeEnabled = this.layout.getProp('app.header.default.minimize.enabled', config);
|
|
174
|
-
if (this.appHeaderDefaultMinimizeEnabled) {
|
|
175
|
-
this.appHeaderDefaultMinimizeAttributes = this.layout.getProp('app.header.default.minimize.attributes', config);
|
|
176
|
-
}
|
|
177
|
-
setTimeout(() => {
|
|
178
|
-
const headerElement = document.getElementById('kt_app_header');
|
|
179
|
-
// header
|
|
180
|
-
if (this.appHeaderDisplay && headerElement) {
|
|
181
|
-
const headerAttributes = headerElement
|
|
182
|
-
.getAttributeNames()
|
|
183
|
-
.filter((t) => t.indexOf('data-') > -1);
|
|
184
|
-
headerAttributes.forEach((attr) => headerElement.removeAttribute(attr));
|
|
185
|
-
if (this.appHeaderDefaultStickyEnabled) {
|
|
186
|
-
for (const key in this.appHeaderDefaultStickyAttributes) {
|
|
187
|
-
if (this.appHeaderDefaultStickyAttributes.hasOwnProperty(key)) {
|
|
188
|
-
headerElement.setAttribute(key, this.appHeaderDefaultStickyAttributes[key]);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
if (this.appHeaderDefaultMinimizeEnabled) {
|
|
193
|
-
for (const key in this.appHeaderDefaultMinimizeAttributes) {
|
|
194
|
-
if (this.appHeaderDefaultMinimizeAttributes.hasOwnProperty(key)) {
|
|
195
|
-
headerElement.setAttribute(key, this.appHeaderDefaultMinimizeAttributes[key]);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}, 0);
|
|
201
|
-
}
|
|
202
|
-
updateFooter(config) {
|
|
203
|
-
this.appFooterCSSClass = this.layout.getProp('app.footer.class', config);
|
|
204
|
-
this.appFooterContainer = this.layout.getProp('app.footer.container', config);
|
|
205
|
-
this.appFooterContainerCSSClass = this.layout.getProp('app.footer.containerClass', config);
|
|
206
|
-
if (this.appFooterContainer === 'fixed') {
|
|
207
|
-
this.appFooterContainerCSSClass += ' container-xxl';
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
if (this.appFooterContainer === 'fluid') {
|
|
211
|
-
this.appFooterContainerCSSClass += ' container-fluid';
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
this.appFooterFixedDesktop = this.layout.getProp('app.footer.fixed.desktop', config);
|
|
215
|
-
if (this.appFooterFixedDesktop) {
|
|
216
|
-
document.body.setAttribute('data-kt-app-footer-fixed', 'true');
|
|
217
|
-
}
|
|
218
|
-
this.appFooterFixedMobile = this.layout.getProp('app.footer.fixed.mobile');
|
|
219
|
-
if (this.appFooterFixedMobile) {
|
|
220
|
-
document.body.setAttribute('data-kt-app-footer-fixed-mobile', 'true');
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
updateToolbar(config) {
|
|
224
|
-
this.appToolbarLayout = this.layout.getProp('app.toolbar.layout', config);
|
|
225
|
-
this.appToolbarSwapEnabled = this.layout.getProp('app.toolbar.swap.enabled', config);
|
|
226
|
-
if (this.appToolbarSwapEnabled) {
|
|
227
|
-
this.appToolbarSwapAttributes = this.layout.getProp('app.toolbar.swap.attributes', config);
|
|
228
|
-
}
|
|
229
|
-
this.appToolbarStickyEnabled = this.layout.getProp('app.toolbar.sticky.enabled', config);
|
|
230
|
-
if (this.appToolbarStickyEnabled) {
|
|
231
|
-
this.appToolbarStickyAttributes = this.layout.getProp('app.toolbar.sticky.attributes', config);
|
|
232
|
-
}
|
|
233
|
-
this.appToolbarCSSClass =
|
|
234
|
-
this.layout.getProp('app.toolbar.class', config) || '';
|
|
235
|
-
this.appToolbarMinimizeEnabled = this.layout.getProp('app.toolbar.minimize.enabled', config);
|
|
236
|
-
if (this.appToolbarMinimizeEnabled) {
|
|
237
|
-
this.appToolbarMinimizeAttributes = this.layout.getProp('app.toolbar.minimize.attributes', config);
|
|
238
|
-
this.appToolbarCSSClass += ' app-toolbar-minimize';
|
|
239
|
-
}
|
|
240
|
-
setTimeout(() => {
|
|
241
|
-
const toolbarElement = document.getElementById('kt_app_toolbar');
|
|
242
|
-
// toolbar
|
|
243
|
-
if (this.appToolbarDisplay && toolbarElement) {
|
|
244
|
-
const toolbarAttributes = toolbarElement
|
|
245
|
-
.getAttributeNames()
|
|
246
|
-
.filter((t) => t.indexOf('data-') > -1);
|
|
247
|
-
toolbarAttributes.forEach((attr) => toolbarElement.removeAttribute(attr));
|
|
248
|
-
if (this.appToolbarSwapEnabled) {
|
|
249
|
-
for (const key in this.appToolbarSwapAttributes) {
|
|
250
|
-
if (this.appToolbarSwapAttributes.hasOwnProperty(key)) {
|
|
251
|
-
toolbarElement.setAttribute(key, this.appToolbarSwapAttributes[key]);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
if (this.appToolbarStickyEnabled) {
|
|
256
|
-
for (const key in this.appToolbarStickyAttributes) {
|
|
257
|
-
if (this.appToolbarStickyAttributes.hasOwnProperty(key)) {
|
|
258
|
-
toolbarElement.setAttribute(key, this.appToolbarStickyAttributes[key]);
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
if (this.appToolbarMinimizeEnabled) {
|
|
263
|
-
for (const key in this.appToolbarMinimizeAttributes) {
|
|
264
|
-
if (this.appToolbarMinimizeAttributes.hasOwnProperty(key)) {
|
|
265
|
-
toolbarElement.setAttribute(key, this.appToolbarMinimizeAttributes[key]);
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
}, 0);
|
|
271
|
-
}
|
|
272
|
-
ngOnDestroy() {
|
|
273
|
-
this.unsubscribe.forEach((sb) => sb.unsubscribe());
|
|
274
|
-
}
|
|
275
|
-
previousScroll = 0;
|
|
276
|
-
// appHeaderDisplay = true; // Initially visible
|
|
277
|
-
isToolbarFixed = false;
|
|
278
|
-
onScroll() {
|
|
279
|
-
const currentScroll = window.scrollY;
|
|
280
|
-
if (currentScroll > this.previousScroll && currentScroll > 100) {
|
|
281
|
-
// Hide header on scroll down
|
|
282
|
-
this.appHeaderDisplay = false;
|
|
283
|
-
this.isToolbarFixed = true; // Fix toolbar
|
|
284
|
-
}
|
|
285
|
-
else {
|
|
286
|
-
// Show header on scroll up
|
|
287
|
-
this.appHeaderDisplay = true;
|
|
288
|
-
this.isToolbarFixed = currentScroll > 100; // Keep toolbar fixed if scrolled beyond 100px
|
|
289
|
-
}
|
|
290
|
-
this.previousScroll = currentScroll;
|
|
291
|
-
}
|
|
292
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LayoutComponent, deps: [{ token: i1.LayoutInitService }, { token: i1.LayoutService }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.AuthService }, { token: i4.ToastService }, { token: i1.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
293
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LayoutComponent, selector: "lib-layout", host: { listeners: { "window:scroll": "onScroll()" } }, viewQueries: [{ propertyName: "ktSidebar", first: true, predicate: ["ktSidebar"], descendants: true, static: true }, { propertyName: "ktAside", first: true, predicate: ["ktAside"], descendants: true, static: true }, { propertyName: "ktHeaderMobile", first: true, predicate: ["ktHeaderMobile"], descendants: true, static: true }, { propertyName: "ktHeader", first: true, predicate: ["ktHeader"], descendants: true, static: true }], ngImport: i0, template: "<!--begin::App-->\r\n<div class=\"d-flex flex-column flex-root app-root\" id=\"kt_app_root\">\r\n <!--begin::Page-->\r\n <div class=\"app-page flex-column flex-column-fluid\" id=\"kt_app_page\">\r\n <ng-container *ngIf=\"appHeaderDisplay\">\r\n <!--begin::Header-->\r\n <lib-header [ngClass]=\"appHeaderDefaultClass\" id=\"kt_app_header\" class=\"app-header\" data-kt-sticky=\"true\" data-kt-sticky-activate=\"{default: true, lg: true}\" data-kt-sticky-name=\"app-header-minimize\" data-kt-sticky-offset=\"{default: '200px', lg: '0'}\" data-kt-sticky-animation=\"false\">\r\n </lib-header>\r\n <!--end::Header-->\r\n </ng-container>\r\n\r\n <!--begin::Wrapper-->\r\n <div class=\"app-wrapper flex-column flex-row-fluid\" id=\"kt_app_wrapper\">\r\n\r\n <ng-container *ngIf=\"appSidebarDisplay\">\r\n <!--begin::sidebar-->\r\n <lib-sidebar #ktSidebar id=\"kt_app_sidebar\" class=\"app-sidebar flex-column\" [ngClass]=\"appSidebarDefaultClass\">\r\n </lib-sidebar>\r\n <!--end::sidebar-->\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"appSidebarPanelDisplay\">\r\n <!-- TODO: app sidebar panel -->\r\n </ng-container>\r\n <!--begin::Main-->\r\n <div class=\"app-main content flex-column flex-row-fluid\" id=\"kt_app_main\">\r\n <!--begin::Content wrapper-->\r\n <ng-container *ngIf=\"appToolbarDisplay\">\r\n <lib-toolbar [ngClass]=\"{'fixed-toolbar': isToolbarFixed}\" class=\"app-toolbar\" [ngClass]=\"appToolbarCSSClass\" id=\"kt_app_toolbar\"\r\n [appToolbarLayout]=\"appToolbarLayout\"></lib-toolbar>\r\n </ng-container>\r\n <div class=\"d-flex flex-column flex-column-fluid mt-10\">\r\n \r\n <lib-content id=\" kt_app_content\" class=\"app-content mt-15\" [ngClass]=\"contentCSSClasses\"\r\n [contentContainerCSSClass]=\"contentContainerCSSClass\" [appContentContiner]=\"appContentContiner\"\r\n [appContentContainerClass]=\"appContentContainerClass\">\r\n </lib-content>\r\n </div>\r\n <!--end::Content wrapper-->\r\n <ng-container *ngIf=\"appFooterDisplay\">\r\n <lib-footer class=\"app-footer\" [ngClass]=\"appFooterCSSClass\" id=\"kt_app_footer\"\r\n [appFooterContainerCSSClass]=\"appFooterContainerCSSClass\"></lib-footer>\r\n </ng-container>\r\n </div>\r\n <!--end:::Main-->\r\n </div>\r\n <!--end::Wrapper-->\r\n\r\n </div>\r\n <!--end::Page-->\r\n</div>\r\n<!--end::App-->\r\n\r\n<lib-scripts-init></lib-scripts-init>\r\n<ng-container>\r\n <lib-scroll-top id=\"kt_scrolltop\" class=\"scrolltop\" data-kt-scrolltop=\"true\"></lib-scroll-top>\r\n</ng-container>\r\n<!-- begin:: Drawers -->\r\n<!-- <lib-activity-drawer></lib-activity-drawer> -->\r\n<!-- <lib-messenger-drawer></lib-messenger-drawer> -->\r\n<!-- end:: Drawers -->\r\n\r\n<!-- end:: Engage -->\r\n<!-- <lib-engages></lib-engages> -->\r\n<!-- end:: Engage -->\r\n\r\n<!-- begin:: Modals -->\r\n<!-- <lib-main-modal></lib-main-modal> -->\r\n<!-- <lib-invite-users-modal></lib-invite-users-modal> -->\r\n<!-- <lib-upgrade-plan-modal></lib-upgrade-plan-modal> -->\r\n<!-- end:: Modals -->\r\n", styles: [":host{height:100%;margin:0}:host .flex-root{height:100%}.page-loaded app-layout{opacity:1;transition:opacity 1s ease-in-out}.fixed-toolbar{position:fixed;top:0;width:100%;background:#fff;z-index:1000;box-shadow:0 4px 6px #0000001a}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.HeaderComponent, selector: "lib-header" }, { kind: "component", type: i7.ContentComponent, selector: "lib-content", inputs: ["contentContainerCSSClass", "appContentContiner", "appContentContainerClass"] }, { kind: "component", type: i8.FooterComponent, selector: "lib-footer", inputs: ["appFooterContainerCSSClass"] }, { kind: "component", type: i9.ScriptsInitComponent, selector: "lib-scripts-init" }, { kind: "component", type: i10.ToolbarComponent, selector: "lib-toolbar", inputs: ["currentLayoutType", "appToolbarLayout"] }, { kind: "component", type: i11.SidebarComponent, selector: "lib-sidebar" }, { kind: "component", type: i12.LayoutScrollTopComponent, selector: "lib-scroll-top" }] });
|
|
294
|
-
}
|
|
295
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LayoutComponent, decorators: [{
|
|
296
|
-
type: Component,
|
|
297
|
-
args: [{ selector: 'lib-layout', template: "<!--begin::App-->\r\n<div class=\"d-flex flex-column flex-root app-root\" id=\"kt_app_root\">\r\n <!--begin::Page-->\r\n <div class=\"app-page flex-column flex-column-fluid\" id=\"kt_app_page\">\r\n <ng-container *ngIf=\"appHeaderDisplay\">\r\n <!--begin::Header-->\r\n <lib-header [ngClass]=\"appHeaderDefaultClass\" id=\"kt_app_header\" class=\"app-header\" data-kt-sticky=\"true\" data-kt-sticky-activate=\"{default: true, lg: true}\" data-kt-sticky-name=\"app-header-minimize\" data-kt-sticky-offset=\"{default: '200px', lg: '0'}\" data-kt-sticky-animation=\"false\">\r\n </lib-header>\r\n <!--end::Header-->\r\n </ng-container>\r\n\r\n <!--begin::Wrapper-->\r\n <div class=\"app-wrapper flex-column flex-row-fluid\" id=\"kt_app_wrapper\">\r\n\r\n <ng-container *ngIf=\"appSidebarDisplay\">\r\n <!--begin::sidebar-->\r\n <lib-sidebar #ktSidebar id=\"kt_app_sidebar\" class=\"app-sidebar flex-column\" [ngClass]=\"appSidebarDefaultClass\">\r\n </lib-sidebar>\r\n <!--end::sidebar-->\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"appSidebarPanelDisplay\">\r\n <!-- TODO: app sidebar panel -->\r\n </ng-container>\r\n <!--begin::Main-->\r\n <div class=\"app-main content flex-column flex-row-fluid\" id=\"kt_app_main\">\r\n <!--begin::Content wrapper-->\r\n <ng-container *ngIf=\"appToolbarDisplay\">\r\n <lib-toolbar [ngClass]=\"{'fixed-toolbar': isToolbarFixed}\" class=\"app-toolbar\" [ngClass]=\"appToolbarCSSClass\" id=\"kt_app_toolbar\"\r\n [appToolbarLayout]=\"appToolbarLayout\"></lib-toolbar>\r\n </ng-container>\r\n <div class=\"d-flex flex-column flex-column-fluid mt-10\">\r\n \r\n <lib-content id=\" kt_app_content\" class=\"app-content mt-15\" [ngClass]=\"contentCSSClasses\"\r\n [contentContainerCSSClass]=\"contentContainerCSSClass\" [appContentContiner]=\"appContentContiner\"\r\n [appContentContainerClass]=\"appContentContainerClass\">\r\n </lib-content>\r\n </div>\r\n <!--end::Content wrapper-->\r\n <ng-container *ngIf=\"appFooterDisplay\">\r\n <lib-footer class=\"app-footer\" [ngClass]=\"appFooterCSSClass\" id=\"kt_app_footer\"\r\n [appFooterContainerCSSClass]=\"appFooterContainerCSSClass\"></lib-footer>\r\n </ng-container>\r\n </div>\r\n <!--end:::Main-->\r\n </div>\r\n <!--end::Wrapper-->\r\n\r\n </div>\r\n <!--end::Page-->\r\n</div>\r\n<!--end::App-->\r\n\r\n<lib-scripts-init></lib-scripts-init>\r\n<ng-container>\r\n <lib-scroll-top id=\"kt_scrolltop\" class=\"scrolltop\" data-kt-scrolltop=\"true\"></lib-scroll-top>\r\n</ng-container>\r\n<!-- begin:: Drawers -->\r\n<!-- <lib-activity-drawer></lib-activity-drawer> -->\r\n<!-- <lib-messenger-drawer></lib-messenger-drawer> -->\r\n<!-- end:: Drawers -->\r\n\r\n<!-- end:: Engage -->\r\n<!-- <lib-engages></lib-engages> -->\r\n<!-- end:: Engage -->\r\n\r\n<!-- begin:: Modals -->\r\n<!-- <lib-main-modal></lib-main-modal> -->\r\n<!-- <lib-invite-users-modal></lib-invite-users-modal> -->\r\n<!-- <lib-upgrade-plan-modal></lib-upgrade-plan-modal> -->\r\n<!-- end:: Modals -->\r\n", styles: [":host{height:100%;margin:0}:host .flex-root{height:100%}.page-loaded app-layout{opacity:1;transition:opacity 1s ease-in-out}.fixed-toolbar{position:fixed;top:0;width:100%;background:#fff;z-index:1000;box-shadow:0 4px 6px #0000001a}\n"] }]
|
|
298
|
-
}], ctorParameters: () => [{ type: i1.LayoutInitService }, { type: i1.LayoutService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.AuthService }, { type: i4.ToastService }, { type: i1.GlobalStateService }], propDecorators: { ktSidebar: [{
|
|
299
|
-
type: ViewChild,
|
|
300
|
-
args: ['ktSidebar', { static: true }]
|
|
301
|
-
}], ktAside: [{
|
|
302
|
-
type: ViewChild,
|
|
303
|
-
args: ['ktAside', { static: true }]
|
|
304
|
-
}], ktHeaderMobile: [{
|
|
305
|
-
type: ViewChild,
|
|
306
|
-
args: ['ktHeaderMobile', { static: true }]
|
|
307
|
-
}], ktHeader: [{
|
|
308
|
-
type: ViewChild,
|
|
309
|
-
args: ['ktHeader', { static: true }]
|
|
310
|
-
}], onScroll: [{
|
|
311
|
-
type: HostListener,
|
|
312
|
-
args: ['window:scroll', []]
|
|
313
|
-
}] } });
|
|
314
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsU0FBUyxFQUdULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWtCLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVl4RSxNQUFNLE9BQU8sZUFBZTtJQXVEaEI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUE1REYsV0FBVyxHQUFtQixFQUFFLENBQUM7SUFFekMsbUJBQW1CO0lBQ25CLE9BQU87SUFDUCx1QkFBdUIsQ0FBUztJQUNoQyxTQUFTO0lBQ1QscUJBQXFCLEdBQVcsRUFBRSxDQUFDO0lBQ25DLGdCQUFnQixDQUFVO0lBQzFCLDZCQUE2QixDQUFVO0lBQ3ZDLGdDQUFnQyxHQUFtQyxFQUFFLENBQUM7SUFDdEUsK0JBQStCLENBQVU7SUFDekMsa0NBQWtDLEdBQW1DLEVBQUUsQ0FBQztJQUN4RSxVQUFVO0lBQ1YsaUJBQWlCLENBQVU7SUFDM0IsZ0JBQWdCLENBQTZEO0lBQzdFLGtCQUFrQixHQUFXLEVBQUUsQ0FBQztJQUNoQyxxQkFBcUIsQ0FBVTtJQUMvQix3QkFBd0IsR0FBbUMsRUFBRSxDQUFDO0lBQzlELHVCQUF1QixDQUFVO0lBQ2pDLDBCQUEwQixHQUFtQyxFQUFFLENBQUM7SUFDaEUseUJBQXlCLENBQVU7SUFDbkMsNEJBQTRCLEdBQW1DLEVBQUUsQ0FB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LGFBQWEsR0FBRyxHQUFHLENBQUMsQ0FBQyw4Q0FBOEM7U0FDMUY7UUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQztJQUN0QyxDQUFDO3dHQW5aVSxlQUFlOzRGQUFmLGVBQWUseWhCQ3BCNUIsK3BHQXVFQTs7NEZEbkRhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsWUFBWTswUEF3Q29CLFNBQVM7c0JBQWxELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFjQSxPQUFPO3NCQUE5QyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1MsY0FBYztzQkFBNUQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0osUUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQWlWdkMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBFbGVtZW50UmVmLFxyXG4gIE9uRGVzdHJveSxcclxuICBIb3N0TGlzdGVuZXIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBJTGF5b3V0LCBMYXlvdXRUeXBlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IExheW91dEluaXRTZXJ2aWNlLCBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xheW91dC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmU6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIC8vIFB1YmxpYyB2YXJpYWJsZXNcclxuICAvLyBwYWdlXHJcbiAgcGFnZUNvbnRhaW5lckNTU0NsYXNzZXM6IHN0cmluZztcclxuICAvLyBoZWFkZXJcclxuICBhcHBIZWFkZXJEZWZhdWx0Q2xhc3M6IHN0cmluZyA9ICcnO1xyXG4gIGFwcEhlYWRlckRpc3BsYXk6IGJvb2xlYW47XHJcbiAgYXBwSGVhZGVyRGVmYXVsdFN0aWNreUVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgYXBwSGVhZGVyRGVmYXVsdFN0aWNreUF0dHJpYnV0ZXM6IHsgW2F0dHJOYW1lOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG4gIGFwcEhlYWRlckRlZmF1bHRNaW5pbWl6ZUVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgYXBwSGVhZGVyRGVmYXVsdE1pbmltaXplQXR0cmlidXRlczogeyBbYXR0ck5hbWU6IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcbiAgLy8gdG9vbGJhclxyXG4gIGFwcFRvb2xiYXJEaXNwbGF5OiBib29sZWFuO1xyXG4gIGFwcFRvb2xiYXJMYXlvdXQ6ICdjbGFzc2ljJyB8ICdhY2NvdW50aW5nJyB8ICdleHRlbmRlZCcgfCAncmVwb3J0cycgfCAnc2Fhcyc7XHJcbiAgYXBwVG9vbGJhckNTU0NsYXNzOiBzdHJpbmcgPSAnJztcclxuICBhcHBUb29sYmFyU3dhcEVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgYXBwVG9vbGJhclN3YXBBdHRyaWJ1dGVzOiB7IFthdHRyTmFtZTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuICBhcHBUb29sYmFyU3RpY2t5RW5hYmxlZDogYm9vbGVhbjtcclxuICBhcHBUb29sYmFyU3RpY2t5QXR0cmlidXRlczogeyBbYXR0ck5hbWU6IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcbiAgYXBwVG9vbGJhck1pbmltaXplRW5hYmxlZDogYm9vbGVhbjtcclxuICBhcHBUb29sYmFyTWluaW1pemVBdHRyaWJ1dGVzOiB7IFthdHRyTmFtZTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuXHJcbiAgLy8gY29udGVudFxyXG4gIGFwcENvbnRlbnRDb250aW5lcj86ICdmaXhlZCcgfCAnZmx1aWQnO1xyXG4gIGFwcENvbnRlbnRDb250YWluZXJDbGFzczogc3RyaW5nO1xyXG4gIGNvbnRlbnRDU1NDbGFzc2VzOiBzdHJpbmc7XHJcbiAgY29udGVudENvbnRhaW5lckNTU0NsYXNzOiBzdHJpbmc7XHJcbiAgLy8gc2lkZWJhclxyXG4gIGFwcFNpZGViYXJEZWZhdWx0Q2xhc3M6IHN0cmluZztcclxuICBhcHBTaWRlYmFyRGVmYXVsdERyYXdlckVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgYXBwU2lkZWJhckRlZmF1bHREcmF3ZXJBdHRyaWJ1dGVzOiB7IFthdHRyTmFtZTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuICBhcHBTaWRlYmFyRGlzcGxheTogYm9vbGVhbjtcclxuICBhcHBTaWRlYmFyRGVmYXVsdFN0aWNreUVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgYXBwU2lkZWJhckRlZmF1bHRTdGlja3lBdHRyaWJ1dGVzOiB7IFthdHRyTmFtZTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuICBAVmlld0NoaWxkKCdrdFNpZGViYXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBrdFNpZGViYXI6IEVsZW1lbnRSZWY7XHJcbiAgLy8vIHNpZGViYXIgcGFuZWxcclxuICBhcHBTaWRlYmFyUGFuZWxEaXNwbGF5OiBib29sZWFuO1xyXG4gIC8vIGZvb3RlclxyXG4gIGFwcEZvb3RlckRpc3BsYXk6IGJvb2xlYW47XHJcbiAgYXBwRm9vdGVyQ1NTQ2xhc3M6IHN0cmluZyA9ICcnO1xyXG4gIGFwcEZvb3RlckNvbnRhaW5lcjogc3RyaW5nID0gJyc7XHJcbiAgYXBwRm9vdGVyQ29udGFpbmVyQ1NTQ2xhc3M6IHN0cmluZyA9ICcnO1xyXG4gIGFwcEZvb3RlckZpeGVkRGVza3RvcDogYm9vbGVhbjtcclxuICBhcHBGb290ZXJGaXhlZE1vYmlsZTogYm9vbGVhbjtcclxuXHJcbiAgLy8gc2Nyb2xsdG9wXHJcbiAgc2Nyb2xsdG9wRGlzcGxheTogYm9vbGVhbjtcclxuXHJcbiAgQFZpZXdDaGlsZCgna3RBc2lkZScsIHsgc3RhdGljOiB0cnVlIH0pIGt0QXNpZGU6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgna3RIZWFkZXJNb2JpbGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBrdEhlYWRlck1vYmlsZTogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdrdEhlYWRlcicsIHsgc3RhdGljOiB0cnVlIH0pIGt0SGVhZGVyOiBFbGVtZW50UmVmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaW5pdFNlcnZpY2U6IExheW91dEluaXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsYXlvdXQ6IExheW91dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOkF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6VG9hc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBnczpHbG9iYWxTdGF0ZVNlcnZpY2VcclxuICApIHtcclxuICAgIFxyXG4gICAgLy8gZGVmaW5lIGxheW91dCB0eXBlIGFuZCBsb2FkIGxheW91dFxyXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRMYXlvdXRUeXBlID0gdGhpcy5sYXlvdXQuY3VycmVudExheW91dFR5cGVTdWJqZWN0LnZhbHVlO1xyXG5cclxuICAgICAgICBjb25zdCBuZXh0TGF5b3V0VHlwZTogTGF5b3V0VHlwZSA9XHJcbiAgICAgICAgICB0aGlzLmFjdGl2YXRlZFJvdXRlPy5maXJzdENoaWxkPy5zbmFwc2hvdC5kYXRhLmxheW91dCB8fFxyXG4gICAgICAgICAgdGhpcy5sYXlvdXQuZ2V0QmFzZUxheW91dFR5cGVGcm9tTG9jYWxTdG9yYWdlKCk7XHJcblxyXG4gICAgICAgIGlmIChjdXJyZW50TGF5b3V0VHlwZSAhPT0gbmV4dExheW91dFR5cGUgfHwgIWN1cnJlbnRMYXlvdXRUeXBlKSB7XHJcbiAgICAgICAgICB0aGlzLmxheW91dC5jdXJyZW50TGF5b3V0VHlwZVN1YmplY3QubmV4dChuZXh0TGF5b3V0VHlwZSk7XHJcbiAgICAgICAgICB0aGlzLmluaXRTZXJ2aWNlLnJlSW5pdFByb3BzKG5leHRMYXlvdXRUeXBlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCBzdWJzY3IgPSB0aGlzLmxheW91dC5sYXlvdXRDb25maWdTdWJqZWN0XHJcbiAgICAgIC5hc09ic2VydmFibGUoKVxyXG4gICAgICAuc3Vic2NyaWJlKChjb25maWcpID0+IHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVByb3BzKGNvbmZpZyk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5wdXNoKHN1YnNjcik7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVQcm9wcyhjb25maWc6IElMYXlvdXQpIHtcclxuICAgIHRoaXMuc2Nyb2xsdG9wRGlzcGxheSA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICdzY3JvbGx0b3AuZGlzcGxheScsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBib29sZWFuO1xyXG4gICAgdGhpcy5wYWdlQ29udGFpbmVyQ1NTQ2xhc3NlcyA9XHJcbiAgICAgIHRoaXMubGF5b3V0LmdldFN0cmluZ0NTU0NsYXNzZXMoJ3BhZ2VDb250YWluZXInKTtcclxuICAgIHRoaXMuYXBwSGVhZGVyRGVmYXVsdENsYXNzID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgJ2FwcC5oZWFkZXIuZGVmYXVsdC5jbGFzcycsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBzdHJpbmc7XHJcbiAgICB0aGlzLmFwcEhlYWRlckRpc3BsYXkgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAnYXBwLmhlYWRlci5kaXNwbGF5JyxcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcbiAgICB0aGlzLmFwcEZvb3RlckRpc3BsYXkgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAnYXBwLmZvb3Rlci5kaXNwbGF5JyxcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcbiAgICB0aGlzLmFwcFNpZGViYXJEaXNwbGF5ID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgJ2FwcC5zaWRlYmFyLmRpc3BsYXknLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuICAgIHRoaXMuYXBwU2lkZWJhclBhbmVsRGlzcGxheSA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICdhcHAuc2lkZWJhci1wYW5lbC5kaXNwbGF5JyxcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcbiAgICB0aGlzLmFwcFRvb2xiYXJEaXNwbGF5ID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgJ2FwcC50b29sYmFyLmRpc3BsYXknLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuICAgIHRoaXMuY29udGVudENTU0NsYXNzZXMgPSB0aGlzLmxheW91dC5nZXRTdHJpbmdDU1NDbGFzc2VzKCdjb250ZW50Jyk7XHJcbiAgICB0aGlzLmNvbnRlbnRDb250YWluZXJDU1NDbGFzcyA9XHJcbiAgICAgIHRoaXMubGF5b3V0LmdldFN0cmluZ0NTU0NsYXNzZXMoJ2NvbnRlbnRDb250YWluZXInKTtcclxuICAgIHRoaXMuYXBwQ29udGVudENvbnRpbmVyID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgJ2FwcC5jb250ZW50LmNvbnRhaW5lcicsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyAnZml4ZWQnIHwgJ2ZsdWlkJztcclxuICAgIHRoaXMuYXBwQ29udGVudENvbnRhaW5lckNsYXNzID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgJ2FwcC5jb250ZW50LmNvbnRhaW5lckNsYXNzJyxcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIHN0cmluZztcclxuICAgIC8vIGZvb3RlclxyXG4gICAgaWYgKHRoaXMuYXBwRm9vdGVyRGlzcGxheSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZUZvb3Rlcihjb25maWcpO1xyXG4gICAgfVxyXG4gICAgLy8gc2lkZWJhclxyXG4gICAgaWYgKHRoaXMuYXBwU2lkZWJhckRpc3BsYXkpIHtcclxuICAgICAgdGhpcy51cGRhdGVTaWRlYmFyKGNvbmZpZyk7XHJcbiAgICB9XHJcbiAgICAvLyBoZWFkZXJcclxuICAgIGlmICh0aGlzLmFwcEhlYWRlckRpc3BsYXkpIHtcclxuICAgICAgdGhpcy51cGRhdGVIZWFkZXIoY29uZmlnKTtcclxuICAgIH1cclxuICAgIC8vIHRvb2xiYXJcclxuICAgIGlmICh0aGlzLmFwcFRvb2xiYXJEaXNwbGF5KSB7XHJcbiAgICAgIHRoaXMudXBkYXRlVG9vbGJhcihjb25maWcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlU2lkZWJhcihjb25maWc6IElMYXlvdXQpIHtcclxuICAgIHRoaXMuYXBwU2lkZWJhckRlZmF1bHRDbGFzcyA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0LmNsYXNzJyxcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIHN0cmluZztcclxuXHJcbiAgICB0aGlzLmFwcFNpZGViYXJEZWZhdWx0RHJhd2VyRW5hYmxlZCA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0LmRyYXdlci5lbmFibGVkJyxcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcbiAgICBpZiAodGhpcy5hcHBTaWRlYmFyRGVmYXVsdERyYXdlckVuYWJsZWQpIHtcclxuICAgICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdERyYXdlckF0dHJpYnV0ZXMgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0LmRyYXdlci5hdHRyaWJ1dGVzJyxcclxuICAgICAgICBjb25maWdcclxuICAgICAgKSBhcyB7IFthdHRyTmFtZTogc3RyaW5nXTogc3RyaW5nIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdFN0aWNreUVuYWJsZWQgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAnYXBwLnNpZGViYXIuZGVmYXVsdC5zdGlja3kuZW5hYmxlZCcsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBib29sZWFuO1xyXG4gICAgaWYgKHRoaXMuYXBwU2lkZWJhckRlZmF1bHRTdGlja3lFbmFibGVkKSB7XHJcbiAgICAgIHRoaXMuYXBwU2lkZWJhckRlZmF1bHRTdGlja3lBdHRyaWJ1dGVzID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgICAnYXBwLnNpZGViYXIuZGVmYXVsdC5zdGlja3kuYXR0cmlidXRlcycsXHJcbiAgICAgICAgY29uZmlnXHJcbiAgICAgICkgYXMgeyBbYXR0ck5hbWU6IHN0cmluZ106IHN0cmluZyB9O1xyXG4gICAgfVxyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBzaWRlYmFyRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrdF9hcHBfc2lkZWJhcicpO1xyXG4gICAgICAvLyBzaWRlYmFyXHJcbiAgICAgIGlmICh0aGlzLmFwcFNpZGViYXJEaXNwbGF5ICYmIHNpZGViYXJFbGVtZW50KSB7XHJcbiAgICAgICAgY29uc3Qgc2lkZWJhckF0dHJpYnV0ZXMgPSBzaWRlYmFyRWxlbWVudFxyXG4gICAgICAgICAgLmdldEF0dHJpYnV0ZU5hbWVzKClcclxuICAgICAgICAgIC5maWx0ZXIoKHQpID0+IHQuaW5kZXhPZignZGF0YS0nKSA+IC0xKTtcclxuICAgICAgICBzaWRlYmFyQXR0cmlidXRlcy5mb3JFYWNoKChhdHRyKSA9PlxyXG4gICAgICAgICAgc2lkZWJhckVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGF0dHIpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYXBwU2lkZWJhckRlZmF1bHREcmF3ZXJFbmFibGVkKSB7XHJcbiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmFwcFNpZGViYXJEZWZhdWx0RHJhd2VyQXR0cmlidXRlcykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hcHBTaWRlYmFyRGVmYXVsdERyYXdlckF0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgICAgICAgIHNpZGViYXJFbGVtZW50LnNldEF0dHJpYnV0ZShcclxuICAgICAgICAgICAgICAgIGtleSxcclxuICAgICAgICAgICAgICAgIHRoaXMuYXBwU2lkZWJhckRlZmF1bHREcmF3ZXJBdHRyaWJ1dGVzW2tleV1cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5hcHBTaWRlYmFyRGVmYXVsdFN0aWNreUVuYWJsZWQpIHtcclxuICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuYXBwU2lkZWJhckRlZmF1bHRTdGlja3lBdHRyaWJ1dGVzKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFwcFNpZGViYXJEZWZhdWx0U3RpY2t5QXR0cmlidXRlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgICAgc2lkZWJhckVsZW1lbnQuc2V0QXR0cmlidXRlKFxyXG4gICAgICAgICAgICAgICAga2V5LFxyXG4gICAgICAgICAgICAgICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdFN0aWNreUF0dHJpYnV0ZXNba2V5XVxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlSGVhZGVyKGNvbmZpZzogSUxheW91dCkge1xyXG4gICAgdGhpcy5hcHBIZWFkZXJEZWZhdWx0U3RpY2t5RW5hYmxlZCA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICdhcHAuaGVhZGVyLmRlZmF1bHQuc3RpY2t5LmVuYWJsZWQnLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuICAgIGlmICh0aGlzLmFwcEhlYWRlckRlZmF1bHRTdGlja3lFbmFibGVkKSB7XHJcbiAgICAgIHRoaXMuYXBwSGVhZGVyRGVmYXVsdFN0aWNreUF0dHJpYnV0ZXMgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAgICdhcHAuaGVhZGVyLmRlZmF1bHQuc3RpY2t5LmF0dHJpYnV0ZXMnLFxyXG4gICAgICAgIGNvbmZpZ1xyXG4gICAgICApIGFzIHsgW2F0dHJOYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFwcEhlYWRlckRlZmF1bHRNaW5pbWl6ZUVuYWJsZWQgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAnYXBwLmhlYWRlci5kZWZhdWx0Lm1pbmltaXplLmVuYWJsZWQnLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuICAgIGlmICh0aGlzLmFwcEhlYWRlckRlZmF1bHRNaW5pbWl6ZUVuYWJsZWQpIHtcclxuICAgICAgdGhpcy5hcHBIZWFkZXJEZWZhdWx0TWluaW1pemVBdHRyaWJ1dGVzID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgICAnYXBwLmhlYWRlci5kZWZhdWx0Lm1pbmltaXplLmF0dHJpYnV0ZXMnLFxyXG4gICAgICAgIGNvbmZpZ1xyXG4gICAgICApIGFzIHsgW2F0dHJOYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgaGVhZGVyRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrdF9hcHBfaGVhZGVyJyk7XHJcbiAgICAgIC8vIGhlYWRlclxyXG4gICAgICBpZiAodGhpcy5hcHBIZWFkZXJEaXNwbGF5ICYmIGhlYWRlckVsZW1lbnQpIHtcclxuICAgICAgICBjb25zdCBoZWFkZXJBdHRyaWJ1dGVzID0gaGVhZGVyRWxlbWVudFxyXG4gICAgICAgICAgLmdldEF0dHJpYnV0ZU5hbWVzKClcclxuICAgICAgICAgIC5maWx0ZXIoKHQpID0+IHQuaW5kZXhPZignZGF0YS0nKSA+IC0xKTtcclxuICAgICAgICBoZWFkZXJBdHRyaWJ1dGVzLmZvckVhY2goKGF0dHIpID0+IGhlYWRlckVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGF0dHIpKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYXBwSGVhZGVyRGVmYXVsdFN0aWNreUVuYWJsZWQpIHtcclxuICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuYXBwSGVhZGVyRGVmYXVsdFN0aWNreUF0dHJpYnV0ZXMpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYXBwSGVhZGVyRGVmYXVsdFN0aWNreUF0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgICAgICAgIGhlYWRlckVsZW1lbnQuc2V0QXR0cmlidXRlKFxyXG4gICAgICAgICAgICAgICAga2V5LFxyXG4gICAgICAgICAgICAgICAgdGhpcy5hcHBIZWFkZXJEZWZhdWx0U3RpY2t5QXR0cmlidXRlc1trZXldXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYXBwSGVhZGVyRGVmYXVsdE1pbmltaXplRW5hYmxlZCkge1xyXG4gICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5hcHBIZWFkZXJEZWZhdWx0TWluaW1pemVBdHRyaWJ1dGVzKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFwcEhlYWRlckRlZmF1bHRNaW5pbWl6ZUF0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgICAgICAgIGhlYWRlckVsZW1lbnQuc2V0QXR0cmlidXRlKFxyXG4gICAgICAgICAgICAgICAga2V5LFxyXG4gICAgICAgICAgICAgICAgdGhpcy5hcHBIZWFkZXJEZWZhdWx0TWluaW1pemVBdHRyaWJ1dGVzW2tleV1cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZvb3Rlcihjb25maWc6IElMYXlvdXQpIHtcclxuICAgIHRoaXMuYXBwRm9vdGVyQ1NTQ2xhc3MgPSB0aGlzLmxheW91dC5nZXRQcm9wKCdhcHAuZm9vdGVyLmNsYXNzJywgY29uZmlnKSBhcyBzdHJpbmc7XHJcbiAgICB0aGlzLmFwcEZvb3RlckNvbnRhaW5lciA9IHRoaXMubGF5b3V0LmdldFByb3AoJ2FwcC5mb290ZXIuY29udGFpbmVyJywgY29uZmlnKSBhcyBzdHJpbmc7XHJcbiAgICB0aGlzLmFwcEZvb3RlckNvbnRhaW5lckNTU0NsYXNzID0gdGhpcy5sYXlvdXQuZ2V0UHJvcCgnYXBwLmZvb3Rlci5jb250YWluZXJDbGFzcycsIGNvbmZpZykgYXMgc3RyaW5nO1xyXG4gICAgaWYgKHRoaXMuYXBwRm9vdGVyQ29udGFpbmVyID09PSAnZml4ZWQnKSB7XHJcbiAgICAgIHRoaXMuYXBwRm9vdGVyQ29udGFpbmVyQ1NTQ2xhc3MgKz0gJyBjb250YWluZXIteHhsJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmFwcEZvb3RlckNvbnRhaW5lciA9PT0gJ2ZsdWlkJykge1xyXG4gICAgICAgIHRoaXMuYXBwRm9vdGVyQ29udGFpbmVyQ1NTQ2xhc3MgKz0gJyBjb250YWluZXItZmx1aWQnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcHBGb290ZXJGaXhlZERlc2t0b3AgPSB0aGlzLmxheW91dC5nZXRQcm9wKCdhcHAuZm9vdGVyLmZpeGVkLmRlc2t0b3AnLCBjb25maWcpIGFzIGJvb2xlYW47XHJcbiAgICBpZiAodGhpcy5hcHBGb290ZXJGaXhlZERlc2t0b3ApIHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoJ2RhdGEta3QtYXBwLWZvb3Rlci1maXhlZCcsICd0cnVlJylcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFwcEZvb3RlckZpeGVkTW9iaWxlID0gdGhpcy5sYXlvdXQuZ2V0UHJvcCgnYXBwLmZvb3Rlci5maXhlZC5tb2JpbGUnKSBhcyBib29sZWFuO1xyXG4gICAgaWYgKHRoaXMuYXBwRm9vdGVyRml4ZWRNb2JpbGUpIHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoJ2RhdGEta3QtYXBwLWZvb3Rlci1maXhlZC1tb2JpbGUnLCAndHJ1ZScpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVUb29sYmFyKGNvbmZpZzogSUxheW91dCkge1xyXG4gICAgdGhpcy5hcHBUb29sYmFyTGF5b3V0ID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgJ2FwcC50b29sYmFyLmxheW91dCcsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyAnY2xhc3NpYycgfCAnYWNjb3VudGluZycgfCAnZXh0ZW5kZWQnIHwgJ3JlcG9ydHMnIHwgJ3NhYXMnO1xyXG4gICAgdGhpcy5hcHBUb29sYmFyU3dhcEVuYWJsZWQgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAnYXBwLnRvb2xiYXIuc3dhcC5lbmFibGVkJyxcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcbiAgICBpZiAodGhpcy5hcHBUb29sYmFyU3dhcEVuYWJsZWQpIHtcclxuICAgICAgdGhpcy5hcHBUb29sYmFyU3dhcEF0dHJpYnV0ZXMgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAgICdhcHAudG9vbGJhci5zd2FwLmF0dHJpYnV0ZXMnLFxyXG4gICAgICAgIGNvbmZpZ1xyXG4gICAgICApIGFzIHsgW2F0dHJOYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFwcFRvb2xiYXJTdGlja3lFbmFibGVkID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgJ2FwcC50b29sYmFyLnN0aWNreS5lbmFibGVkJyxcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcbiAgICBpZiAodGhpcy5hcHBUb29sYmFyU3RpY2t5RW5hYmxlZCkge1xyXG4gICAgICB0aGlzLmFwcFRvb2xiYXJTdGlja3lBdHRyaWJ1dGVzID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgICAnYXBwLnRvb2xiYXIuc3RpY2t5LmF0dHJpYnV0ZXMnLFxyXG4gICAgICAgIGNvbmZpZ1xyXG4gICAgICApIGFzIHsgW2F0dHJOYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFwcFRvb2xiYXJDU1NDbGFzcyA9XHJcbiAgICAgICh0aGlzLmxheW91dC5nZXRQcm9wKCdhcHAudG9vbGJhci5jbGFzcycsIGNvbmZpZykgYXMgc3RyaW5nKSB8fCAnJztcclxuICAgIHRoaXMuYXBwVG9vbGJhck1pbmltaXplRW5hYmxlZCA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICdhcHAudG9vbGJhci5taW5pbWl6ZS5lbmFibGVkJyxcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcbiAgICBpZiAodGhpcy5hcHBUb29sYmFyTWluaW1pemVFbmFibGVkKSB7XHJcbiAgICAgIHRoaXMuYXBwVG9vbGJhck1pbmltaXplQXR0cmlidXRlcyA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICAgJ2FwcC50b29sYmFyLm1pbmltaXplLmF0dHJpYnV0ZXMnLFxyXG4gICAgICAgIGNvbmZpZ1xyXG4gICAgICApIGFzIHsgW2F0dHJOYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcclxuICAgICAgdGhpcy5hcHBUb29sYmFyQ1NTQ2xhc3MgKz0gJyBhcHAtdG9vbGJhci1taW5pbWl6ZSc7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHRvb2xiYXJFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2t0X2FwcF90b29sYmFyJyk7XHJcbiAgICAgIC8vIHRvb2xiYXJcclxuICAgICAgaWYgKHRoaXMuYXBwVG9vbGJhckRpc3BsYXkgJiYgdG9vbGJhckVsZW1lbnQpIHtcclxuICAgICAgICBjb25zdCB0b29sYmFyQXR0cmlidXRlcyA9IHRvb2xiYXJFbGVtZW50XHJcbiAgICAgICAgICAuZ2V0QXR0cmlidXRlTmFtZXMoKVxyXG4gICAgICAgICAgLmZpbHRlcigodCkgPT4gdC5pbmRleE9mKCdkYXRhLScpID4gLTEpO1xyXG4gICAgICAgIHRvb2xiYXJBdHRyaWJ1dGVzLmZvckVhY2goKGF0dHIpID0+XHJcbiAgICAgICAgICB0b29sYmFyRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoYXR0cilcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5hcHBUb29sYmFyU3dhcEVuYWJsZWQpIHtcclxuICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuYXBwVG9vbGJhclN3YXBBdHRyaWJ1dGVzKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFwcFRvb2xiYXJTd2FwQXR0cmlidXRlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgICAgdG9vbGJhckVsZW1lbnQuc2V0QXR0cmlidXRlKFxyXG4gICAgICAgICAgICAgICAga2V5LFxyXG4gICAgICAgICAgICAgICAgdGhpcy5hcHBUb29sYmFyU3dhcEF0dHJpYnV0ZXNba2V5XVxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmFwcFRvb2xiYXJTdGlja3lFbmFibGVkKSB7XHJcbiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmFwcFRvb2xiYXJTdGlja3lBdHRyaWJ1dGVzKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFwcFRvb2xiYXJTdGlja3lBdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgICB0b29sYmFyRWxlbWVudC5zZXRBdHRyaWJ1dGUoXHJcbiAgICAgICAgICAgICAgICBrZXksXHJcbiAgICAgICAgICAgICAgICB0aGlzLmFwcFRvb2xiYXJTdGlja3lBdHRyaWJ1dGVzW2tleV1cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5hcHBUb29sYmFyTWluaW1pemVFbmFibGVkKSB7XHJcbiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmFwcFRvb2xiYXJNaW5pbWl6ZUF0dHJpYnV0ZXMpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYXBwVG9vbGJhck1pbmltaXplQXR0cmlidXRlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgICAgdG9vbGJhckVsZW1lbnQuc2V0QXR0cmlidXRlKFxyXG4gICAgICAgICAgICAgICAga2V5LFxyXG4gICAgICAgICAgICAgICAgdGhpcy5hcHBUb29sYmFyTWluaW1pemVBdHRyaWJ1dGVzW2tleV1cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5mb3JFYWNoKChzYikgPT4gc2IudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG4gIHByZXZpb3VzU2Nyb2xsID0gMDtcclxuICAvLyBhcHBIZWFkZXJEaXNwbGF5ID0gdHJ1ZTsgLy8gSW5pdGlhbGx5IHZpc2libGVcclxuICBpc1Rvb2xiYXJGaXhlZCA9IGZhbHNlO1xyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbXSlcclxuICBvblNjcm9sbCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGN1cnJlbnRTY3JvbGwgPSB3aW5kb3cuc2Nyb2xsWTtcclxuXHJcbiAgICBpZiAoY3VycmVudFNjcm9sbCA+IHRoaXMucHJldmlvdXNTY3JvbGwgJiYgY3VycmVudFNjcm9sbCA+IDEwMCkge1xyXG4gICAgICAvLyBIaWRlIGhlYWRlciBvbiBzY3JvbGwgZG93blxyXG4gICAgICB0aGlzLmFwcEhlYWRlckRpc3BsYXkgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc1Rvb2xiYXJGaXhlZCA9IHRydWU7IC8vIEZpeCB0b29sYmFyXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBTaG93IGhlYWRlciBvbiBzY3JvbGwgdXBcclxuICAgICAgdGhpcy5hcHBIZWFkZXJEaXNwbGF5ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5pc1Rvb2xiYXJGaXhlZCA9IGN1cnJlbnRTY3JvbGwgPiAxMDA7IC8vIEtlZXAgdG9vbGJhciBmaXhlZCBpZiBzY3JvbGxlZCBiZXlvbmQgMTAwcHhcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnByZXZpb3VzU2Nyb2xsID0gY3VycmVudFNjcm9sbDtcclxuICB9XHJcbn1cclxuIiwiPCEtLWJlZ2luOjpBcHAtLT5cclxuPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LXJvb3QgYXBwLXJvb3RcIiBpZD1cImt0X2FwcF9yb290XCI+XHJcbiAgPCEtLWJlZ2luOjpQYWdlLS0+XHJcbiAgPGRpdiBjbGFzcz1cImFwcC1wYWdlIGZsZXgtY29sdW1uIGZsZXgtY29sdW1uLWZsdWlkXCIgaWQ9XCJrdF9hcHBfcGFnZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFwcEhlYWRlckRpc3BsYXlcIj5cclxuICAgICAgPCEtLWJlZ2luOjpIZWFkZXItLT5cclxuICAgICAgPGxpYi1oZWFkZXIgW25nQ2xhc3NdPVwiYXBwSGVhZGVyRGVmYXVsdENsYXNzXCIgaWQ9XCJrdF9hcHBfaGVhZGVyXCIgY2xhc3M9XCJhcHAtaGVhZGVyXCIgZGF0YS1rdC1zdGlja3k9XCJ0cnVlXCIgZGF0YS1rdC1zdGlja3ktYWN0aXZhdGU9XCJ7ZGVmYXVsdDogdHJ1ZSwgbGc6IHRydWV9XCIgZGF0YS1rdC1zdGlja3ktbmFtZT1cImFwcC1oZWFkZXItbWluaW1pemVcIiBkYXRhLWt0LXN0aWNreS1vZmZzZXQ9XCJ7ZGVmYXVsdDogJzIwMHB4JywgbGc6ICcwJ31cIiBkYXRhLWt0LXN0aWNreS1hbmltYXRpb249XCJmYWxzZVwiPlxyXG4gICAgICA8L2xpYi1oZWFkZXI+XHJcbiAgICAgIDwhLS1lbmQ6OkhlYWRlci0tPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLWJlZ2luOjpXcmFwcGVyLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXBwLXdyYXBwZXIgZmxleC1jb2x1bW4gZmxleC1yb3ctZmx1aWRcIiBpZD1cImt0X2FwcF93cmFwcGVyXCI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwU2lkZWJhckRpc3BsYXlcIj5cclxuICAgICAgICA8IS0tYmVnaW46OnNpZGViYXItLT5cclxuICAgICAgICA8bGliLXNpZGViYXIgI2t0U2lkZWJhciBpZD1cImt0X2FwcF9zaWRlYmFyXCIgY2xhc3M9XCJhcHAtc2lkZWJhciBmbGV4LWNvbHVtblwiIFtuZ0NsYXNzXT1cImFwcFNpZGViYXJEZWZhdWx0Q2xhc3NcIj5cclxuICAgICAgICA8L2xpYi1zaWRlYmFyPlxyXG4gICAgICAgIDwhLS1lbmQ6OnNpZGViYXItLT5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwU2lkZWJhclBhbmVsRGlzcGxheVwiPlxyXG4gICAgICAgIDwhLS0gVE9ETzogYXBwIHNpZGViYXIgcGFuZWwgLS0+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8IS0tYmVnaW46Ok1haW4tLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImFwcC1tYWluIGNvbnRlbnQgZmxleC1jb2x1bW4gZmxleC1yb3ctZmx1aWRcIiBpZD1cImt0X2FwcF9tYWluXCI+XHJcbiAgICAgICAgPCEtLWJlZ2luOjpDb250ZW50IHdyYXBwZXItLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwVG9vbGJhckRpc3BsYXlcIj5cclxuICAgICAgICAgIDxsaWItdG9vbGJhciBbbmdDbGFzc109XCJ7J2ZpeGVkLXRvb2xiYXInOiBpc1Rvb2xiYXJGaXhlZH1cIiAgY2xhc3M9XCJhcHAtdG9vbGJhclwiIFtuZ0NsYXNzXT1cImFwcFRvb2xiYXJDU1NDbGFzc1wiIGlkPVwia3RfYXBwX3Rvb2xiYXJcIlxyXG4gICAgICAgICAgICBbYXBwVG9vbGJhckxheW91dF09XCJhcHBUb29sYmFyTGF5b3V0XCI+PC9saWItdG9vbGJhcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtY29sdW1uLWZsdWlkIG10LTEwXCI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICA8bGliLWNvbnRlbnQgaWQ9XCIga3RfYXBwX2NvbnRlbnRcIiBjbGFzcz1cImFwcC1jb250ZW50IG10LTE1XCIgW25nQ2xhc3NdPVwiY29udGVudENTU0NsYXNzZXNcIlxyXG4gICAgICAgICAgICBbY29udGVudENvbnRhaW5lckNTU0NsYXNzXT1cImNvbnRlbnRDb250YWluZXJDU1NDbGFzc1wiIFthcHBDb250ZW50Q29udGluZXJdPVwiYXBwQ29udGVudENvbnRpbmVyXCJcclxuICAgICAgICAgICAgW2FwcENvbnRlbnRDb250YWluZXJDbGFzc109XCJhcHBDb250ZW50Q29udGFpbmVyQ2xhc3NcIj5cclxuICAgICAgICAgIDwvbGliLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLWVuZDo6Q29udGVudCB3cmFwcGVyLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFwcEZvb3RlckRpc3BsYXlcIj5cclxuICAgICAgICAgIDxsaWItZm9vdGVyIGNsYXNzPVwiYXBwLWZvb3RlclwiIFtuZ0NsYXNzXT1cImFwcEZvb3RlckNTU0NsYXNzXCIgaWQ9XCJrdF9hcHBfZm9vdGVyXCJcclxuICAgICAgICAgICAgW2FwcEZvb3RlckNvbnRhaW5lckNTU0NsYXNzXT1cImFwcEZvb3RlckNvbnRhaW5lckNTU0NsYXNzXCI+PC9saWItZm9vdGVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPCEtLWVuZDo6Ok1haW4tLT5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLWVuZDo6V3JhcHBlci0tPlxyXG5cclxuICA8L2Rpdj5cclxuICA8IS0tZW5kOjpQYWdlLS0+XHJcbjwvZGl2PlxyXG48IS0tZW5kOjpBcHAtLT5cclxuXHJcbjxsaWItc2NyaXB0cy1pbml0PjwvbGliLXNjcmlwdHMtaW5pdD5cclxuPG5nLWNvbnRhaW5lcj5cclxuICA8bGliLXNjcm9sbC10b3AgaWQ9XCJrdF9zY3JvbGx0b3BcIiBjbGFzcz1cInNjcm9sbHRvcFwiIGRhdGEta3Qtc2Nyb2xsdG9wPVwidHJ1ZVwiPjwvbGliLXNjcm9sbC10b3A+XHJcbjwvbmctY29udGFpbmVyPlxyXG48IS0tIGJlZ2luOjogRHJhd2VycyAtLT5cclxuPCEtLSA8bGliLWFjdGl2aXR5LWRyYXdlcj48L2xpYi1hY3Rpdml0eS1kcmF3ZXI+IC0tPlxyXG48IS0tIDxsaWItbWVzc2VuZ2VyLWRyYXdlcj48L2xpYi1tZXNzZW5nZXItZHJhd2VyPiAtLT5cclxuPCEtLSBlbmQ6OiBEcmF3ZXJzIC0tPlxyXG5cclxuPCEtLSBlbmQ6OiBFbmdhZ2UgLS0+XHJcbjwhLS0gPGxpYi1lbmdhZ2VzPjwvbGliLWVuZ2FnZXM+IC0tPlxyXG48IS0tIGVuZDo6IEVuZ2FnZSAtLT5cclxuXHJcbjwhLS0gYmVnaW46OiBNb2RhbHMgLS0+XHJcbjwhLS0gPGxpYi1tYWluLW1vZGFsPjwvbGliLW1haW4tbW9kYWw+IC0tPlxyXG48IS0tIDxsaWItaW52aXRlLXVzZXJzLW1vZGFsPjwvbGliLWludml0ZS11c2Vycy1tb2RhbD4gLS0+XHJcbjwhLS0gPGxpYi11cGdyYWRlLXBsYW4tbW9kYWw+PC9saWItdXBncmFkZS1wbGFuLW1vZGFsPiAtLT5cclxuPCEtLSBlbmQ6OiBNb2RhbHMgLS0+XHJcbiJdfQ==
|