@naniteninja/dashboard-components-lib 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/auto-delegation/animations.mjs +20 -0
- package/esm2022/lib/components/auto-delegation/auto-delegation-modal.component.mjs +106 -0
- package/esm2022/lib/components/auto-delegation/enums/auto-delegation.event-type.enum.mjs +6 -0
- package/esm2022/lib/components/auto-delegation/enums/auto-delegation.event-value.enum.mjs +7 -0
- package/esm2022/lib/components/auto-delegation/interface/auto-delegation-data.interface.mjs +2 -0
- package/esm2022/lib/components/auto-delegation/interface/auto-delegation.event.interface.mjs +2 -0
- package/esm2022/lib/components/auto-delegation/interface/auto-delegation.modal-data.interface.mjs +2 -0
- package/esm2022/lib/components/auto-delegation/interface/preferences.interface.mjs +2 -0
- package/esm2022/lib/components/calendar/agenda/agenda-day-card/agenda-day-card.component.mjs +37 -0
- package/esm2022/lib/components/calendar/agenda/agenda.component.mjs +120 -0
- package/esm2022/lib/components/calendar/agenda/agenda.module.mjs +23 -0
- package/esm2022/lib/components/calendar/agenda/enums/agenda-item-type.enum.mjs +6 -0
- package/esm2022/lib/components/calendar/agenda/interfaces/agenda.day.interface.mjs +2 -0
- package/esm2022/lib/components/calendar/agenda/interfaces/agenda.event.inetrface.mjs +2 -0
- package/esm2022/lib/components/calendar/agenda/types/agenda-item.type.mjs +2 -0
- package/esm2022/lib/components/calendar/components/edit-recurring-event/edit-recurring-event.component.mjs +40 -0
- package/esm2022/lib/components/calendar/components/event-form/event-form.component.mjs +275 -0
- package/esm2022/lib/components/calendar/components/event-form/event-form.module.mjs +89 -0
- package/esm2022/lib/components/calendar/components/event-info/event-info.component.mjs +40 -0
- package/esm2022/lib/components/calendar/enums/calendar.account.enum.mjs +6 -0
- package/esm2022/lib/components/calendar/enums/calendar.account.icons.enum.mjs +6 -0
- package/esm2022/lib/components/calendar/enums/event-type.enum.mjs +10 -0
- package/esm2022/lib/components/calendar/enums/recurring.edit.options.enum.mjs +7 -0
- package/esm2022/lib/components/calendar/enums/recurring.type.enum.mjs +8 -0
- package/esm2022/lib/components/calendar/interfaces/calendar.account.interface.mjs +2 -0
- package/esm2022/lib/components/calendar/interfaces/calendar.account.theme.interface.mjs +2 -0
- package/esm2022/lib/components/calendar/interfaces/event.form.interface.mjs +2 -0
- package/esm2022/lib/components/calendar/interfaces/event.form.output.interface.mjs +2 -0
- package/esm2022/lib/components/calendar/interfaces/event.interface.mjs +2 -0
- package/esm2022/lib/components/calendar/interfaces/event.time.interface.mjs +2 -0
- package/esm2022/lib/components/calendar/interfaces/recurring.event.interface.mjs +2 -0
- package/esm2022/lib/components/calendar/interfaces/recurring.exception.interface.mjs +2 -0
- package/esm2022/lib/components/calendar/interfaces/recurring.pattern.interface.mjs +2 -0
- package/esm2022/lib/components/calendar/lookups/recurring.options.lookup.mjs +30 -0
- package/esm2022/lib/components/calendar/scheduler/enums/schedule-date-status.enum.mjs +7 -0
- package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.action.interface.mjs +2 -0
- package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.event.day.interface.mjs +2 -0
- package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.event.interface.mjs +2 -0
- package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.event.suggestion.interface.mjs +2 -0
- package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.slots.interface.mjs +2 -0
- package/esm2022/lib/components/calendar/scheduler/mock-schedule.mjs +80 -0
- package/esm2022/lib/components/calendar/scheduler/scheduler.component.mjs +144 -0
- package/esm2022/lib/components/calendar/services/calendar-utils.service.mjs +211 -0
- package/esm2022/lib/components/chat/chat.component.mjs +308 -0
- package/esm2022/lib/components/chat/chat.component.module.mjs +85 -0
- package/esm2022/lib/components/chat/chat.service.mjs +63 -0
- package/esm2022/lib/components/chat/enums/sender-types.enum.mjs +6 -0
- package/esm2022/lib/components/chat/gif-selector/gif-selector.component.mjs +77 -0
- package/esm2022/lib/components/chat/gif-selector/gif-selector.service.mjs +41 -0
- package/esm2022/lib/components/chat/gif-selector/tenor-media-format.interface.mjs +2 -0
- package/esm2022/lib/components/chat/gif-selector/tenor-object.interface.mjs +2 -0
- package/esm2022/lib/components/chat/gif-selector/tenor-result.interface.mjs +2 -0
- package/esm2022/lib/components/chat/interfaces/date-messages.interface.mjs +2 -0
- package/esm2022/lib/components/chat/interfaces/message-attachment.interface.mjs +2 -0
- package/esm2022/lib/components/chat/interfaces/message.interface.mjs +2 -0
- package/esm2022/lib/components/chat/interfaces/send-options-message.interface.mjs +2 -0
- package/esm2022/lib/components/chat/interfaces/type-send-message.enum.mjs +7 -0
- package/esm2022/lib/components/chat-suggestion/chat-suggestion.component.mjs +21 -0
- package/esm2022/lib/components/chat-suggestion/interfaces/chat-suggestion.interface.mjs +2 -0
- package/esm2022/lib/components/circle-progress/circle-progress.component.mjs +143 -0
- package/esm2022/lib/components/circle-progress/circle-progress.module.mjs +18 -0
- package/esm2022/lib/components/circle-progress/enums/circle-variable.enum.mjs +6 -0
- package/esm2022/lib/components/circle-progress/interfaces/circle-progress-config.interface.mjs +2 -0
- package/esm2022/lib/components/client-home/client-home.component.mjs +123 -0
- package/esm2022/lib/components/client-home/enums/client-home-component.enum.mjs +9 -0
- package/esm2022/lib/components/client-home/interfaces/chat-meta.interface.mjs +2 -0
- package/esm2022/lib/components/client-home/interfaces/home-dashboard-inputs.interface.mjs +2 -0
- package/esm2022/lib/components/client-home/interfaces/inner-partial-circle-progress-colors.interface.mjs +2 -0
- package/esm2022/lib/components/client-home/interfaces/partial-circle-progress-colors.interface.mjs +2 -0
- package/esm2022/lib/components/client-home/lookup/client-home.config.mjs +30 -0
- package/esm2022/lib/components/client-home/lookup/inner-progress-default-colors.config.mjs +6 -0
- package/esm2022/lib/components/client-home/lookup/inner-progress-pink-colors.config.mjs +6 -0
- package/esm2022/lib/components/client-home/lookup/inner-progress-purple-colors.config.mjs +6 -0
- package/esm2022/lib/components/client-home/lookup/inner-progress-teal-colors.config.mjs +6 -0
- package/esm2022/lib/components/client-home/lookup/inner-progress-white-colors.config.mjs +10 -0
- package/esm2022/lib/components/client-home/lookup/progress-default-colors.config.mjs +10 -0
- package/esm2022/lib/components/client-home/lookup/progress-white-colors.config.mjs +10 -0
- package/esm2022/lib/components/client-home/pipes/chat-meta.pipe.mjs +60 -0
- package/esm2022/lib/components/client-home/pipes/get-color-by-matcher.pipe.mjs +33 -0
- package/esm2022/lib/components/client-match-overview/client-match-overview.component.mjs +300 -0
- package/esm2022/lib/components/client-match-overview/enums/conversation-flag.enum.mjs +6 -0
- package/esm2022/lib/components/client-match-overview/enums/counter-flag-base.enum.mjs +6 -0
- package/esm2022/lib/components/client-match-overview/enums/inner-circle-state.enum.mjs +8 -0
- package/esm2022/lib/components/client-match-overview/interfaces/client-match-overview.interface.mjs +2 -0
- package/esm2022/lib/components/client-match-overview/interfaces/conversation-flag.interface.mjs +2 -0
- package/esm2022/lib/components/client-match-overview/interfaces/dashboard-match-request.interface.mjs +2 -0
- package/esm2022/lib/components/client-match-overview/interfaces/progress-decision.interface.mjs +2 -0
- package/esm2022/lib/components/client-match-overview/interfaces/progress-facts.interface.mjs +2 -0
- package/esm2022/lib/components/client-match-overview/lookups/computer-inner-state.lookup.mjs +81 -0
- package/esm2022/lib/components/client-match-overview/lookups/limit-dates-indicator.lookup.mjs +8 -0
- package/esm2022/lib/components/client-match-overview/progress-ticker/progress-gap.config.mjs +4 -0
- package/esm2022/lib/components/client-match-overview/progress-ticker/progress-ticker.config.mjs +3 -0
- package/esm2022/lib/components/client-match-overview/progress-ticker/progress-ticker.service.mjs +43 -0
- package/esm2022/lib/components/dashboard-swipeable-tabs/dashboard-swipeable-tabs.component.mjs +113 -0
- package/esm2022/lib/components/dashboard-swipeable-tabs/lookups/dashboard-main-swiper-options.mjs +11 -0
- package/esm2022/lib/components/dashboard-swipeable-tabs/lookups/dashboard-thumbs-swiper-options.mjs +27 -0
- package/esm2022/lib/components/dashboard-swipeable-tabs/lookups/main-swiper-default-options.mjs +19 -0
- package/esm2022/lib/components/dashboard-swipeable-tabs/lookups/thumbs-swiper-default-options.mjs +21 -0
- package/esm2022/lib/components/lib-client-dashboard/client-dashboard.component.mjs +173 -0
- package/esm2022/lib/components/lib-client-dashboard/enums/alert-status-fields.enum.mjs +11 -0
- package/esm2022/lib/components/lib-client-dashboard/enums/client-dashboard-component.enum.mjs +7 -0
- package/esm2022/lib/components/lib-client-dashboard/interfaces/ads.interface.mjs +2 -0
- package/esm2022/lib/components/lib-client-dashboard/interfaces/client-dashboard-inputs.interface.mjs +2 -0
- package/esm2022/lib/components/lib-client-dashboard/lookups/client-dashboard.config.mjs +15 -0
- package/esm2022/lib/components/lib-compose-matcher-dash/compose-matcher-dash.component.mjs +146 -0
- package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/chart-data.interface.mjs +2 -0
- package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/chat-identifier.interface.mjs +2 -0
- package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/matcher-dashboard-inputs.interface.mjs +2 -0
- package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/matcher-profile.interface.mjs +2 -0
- package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/prospect-data.interface.mjs +2 -0
- package/esm2022/lib/components/lib-compose-matcher-dash/pipes/get-profile-with-progress.pipe.mjs +21 -0
- package/esm2022/lib/components/matcher-statuses/enums/matcher-statuses.enum.mjs +15 -0
- package/esm2022/lib/components/matcher-statuses/interfaces/status.interface.mjs +2 -0
- package/esm2022/lib/components/matcher-statuses/lookups/matcher-statuses.lookup.mjs +54 -0
- package/esm2022/lib/components/matcher-statuses/matcher-statuses.component.mjs +58 -0
- package/esm2022/lib/components/matcher-statuses/pipes/is-status-included.pipe.mjs +19 -0
- package/esm2022/lib/components/profile-card/profile-card.component.mjs +35 -0
- package/esm2022/lib/components/profile-card/profile-card.module.mjs +19 -0
- package/esm2022/lib/components/spider-chart/interfaces/chart-data-circle.interface.mjs +2 -0
- package/esm2022/lib/components/spider-chart/interfaces/chart-data-defs-f.interface.mjs +2 -0
- package/esm2022/lib/components/spider-chart/interfaces/chart-data-defs-lg.interface.mjs +2 -0
- package/esm2022/lib/components/spider-chart/interfaces/chart-data-defs-rg.interface.mjs +2 -0
- package/esm2022/lib/components/spider-chart/interfaces/config.interface.mjs +2 -0
- package/esm2022/lib/components/spider-chart/interfaces/dataset.interface.mjs +2 -0
- package/esm2022/lib/components/spider-chart/interfaces/polygon-color.interface.mjs +2 -0
- package/esm2022/lib/components/spider-chart/interfaces/spider-chart-attribute.interface.mjs +2 -0
- package/esm2022/lib/components/spider-chart/lookup/default-spider-config.mjs +67 -0
- package/esm2022/lib/components/spider-chart/lookup/demo-polygon-colors.lookup.mjs +11 -0
- package/esm2022/lib/components/spider-chart/lookup/svg-config.lookup.mjs +277 -0
- package/esm2022/lib/components/spider-chart/spider-chart.component.mjs +235 -0
- package/esm2022/lib/enums/direction.enum.mjs +6 -0
- package/esm2022/lib/enums/form-field-type.mjs +30 -0
- package/esm2022/lib/enums/local-storage-keys.enum.mjs +5 -0
- package/esm2022/lib/enums/status-types.mjs +8 -0
- package/esm2022/lib/model/select-option-template.mjs +2 -0
- package/esm2022/lib/operations/operations.mjs +19 -0
- package/esm2022/lib/pipes/array-sort/array.sort.pipe.mjs +49 -0
- package/esm2022/lib/pipes/count-non-empty-fields/count-non-empty-fields.pipe.mjs +17 -0
- package/esm2022/lib/pipes/date-localization/date-localization.pipe.mjs +31 -0
- package/esm2022/lib/pipes/fallback-translate/fallback-translate.pipe.mjs +28 -0
- package/esm2022/lib/pipes/get-display-value/get-display-value.pipe.mjs +59 -0
- package/esm2022/lib/pipes/get-multi-select-display-text/get-multi-select-display-text.pipe.mjs +22 -0
- package/esm2022/lib/pipes/initials/initials.pipe.mjs +25 -0
- package/esm2022/lib/pipes/round/round.pipe.mjs +17 -0
- package/esm2022/lib/pipes/update-llm-preference/update-llm-preference.pipe.mjs +25 -0
- package/esm2022/lib/services/abstract-cache.service.mjs +10 -0
- package/esm2022/lib/shared/shared/alert-popup/alert-popup.component.mjs +38 -0
- package/esm2022/lib/shared/shared/message-modal/message-modal.component.mjs +95 -0
- package/esm2022/lib/shared/shared/status-icon/status-icon.component.mjs +14 -0
- package/esm2022/lib/shared/shared.module.mjs +23 -0
- package/esm2022/naniteninja-dashboard-components-lib.mjs +5 -0
- package/esm2022/public-api.mjs +123 -0
- package/fesm2022/naniteninja-dashboard-components-lib.mjs +202 -178
- package/fesm2022/naniteninja-dashboard-components-lib.mjs.map +1 -1
- package/index.d.ts +3 -1669
- package/lib/components/auto-delegation/animations.d.ts +1 -0
- package/lib/components/auto-delegation/auto-delegation-modal.component.d.ts +29 -0
- package/lib/components/auto-delegation/enums/auto-delegation.event-type.enum.d.ts +4 -0
- package/lib/components/auto-delegation/enums/auto-delegation.event-value.enum.d.ts +5 -0
- package/lib/components/auto-delegation/interface/auto-delegation-data.interface.d.ts +31 -0
- package/lib/components/auto-delegation/interface/auto-delegation.event.interface.d.ts +6 -0
- package/lib/components/auto-delegation/interface/auto-delegation.modal-data.interface.d.ts +8 -0
- package/lib/components/auto-delegation/interface/preferences.interface.d.ts +17 -0
- package/lib/components/calendar/agenda/agenda-day-card/agenda-day-card.component.d.ts +12 -0
- package/lib/components/calendar/agenda/agenda.component.d.ts +27 -0
- package/lib/components/calendar/agenda/agenda.module.d.ts +12 -0
- package/lib/components/calendar/agenda/enums/agenda-item-type.enum.d.ts +4 -0
- package/lib/components/calendar/agenda/interfaces/agenda.day.interface.d.ts +7 -0
- package/lib/components/calendar/agenda/interfaces/agenda.event.inetrface.d.ts +9 -0
- package/lib/components/calendar/agenda/types/agenda-item.type.d.ts +7 -0
- package/lib/components/calendar/components/edit-recurring-event/edit-recurring-event.component.d.ts +19 -0
- package/lib/components/calendar/components/event-form/event-form.component.d.ts +67 -0
- package/lib/components/calendar/components/event-form/event-form.module.d.ts +20 -0
- package/lib/components/calendar/components/event-info/event-info.component.d.ts +24 -0
- package/lib/components/calendar/enums/calendar.account.enum.d.ts +4 -0
- package/lib/components/calendar/enums/calendar.account.icons.enum.d.ts +4 -0
- package/lib/components/calendar/enums/event-type.enum.d.ts +8 -0
- package/lib/components/calendar/enums/recurring.edit.options.enum.d.ts +5 -0
- package/lib/components/calendar/enums/recurring.type.enum.d.ts +6 -0
- package/lib/components/calendar/interfaces/calendar.account.interface.d.ts +14 -0
- package/lib/components/calendar/interfaces/calendar.account.theme.interface.d.ts +5 -0
- package/lib/components/calendar/interfaces/event.form.interface.d.ts +22 -0
- package/lib/components/calendar/interfaces/event.form.output.interface.d.ts +10 -0
- package/lib/components/calendar/interfaces/event.interface.d.ts +33 -0
- package/lib/components/calendar/interfaces/event.time.interface.d.ts +4 -0
- package/lib/components/calendar/interfaces/recurring.event.interface.d.ts +16 -0
- package/lib/components/calendar/interfaces/recurring.exception.interface.d.ts +14 -0
- package/lib/components/calendar/interfaces/recurring.pattern.interface.d.ts +16 -0
- package/lib/components/calendar/lookups/recurring.options.lookup.d.ts +2 -0
- package/lib/components/calendar/scheduler/enums/schedule-date-status.enum.d.ts +5 -0
- package/lib/components/calendar/scheduler/interfaces/scheduler.action.interface.d.ts +10 -0
- package/lib/components/calendar/scheduler/interfaces/scheduler.event.day.interface.d.ts +5 -0
- package/lib/components/calendar/scheduler/interfaces/scheduler.event.interface.d.ts +26 -0
- package/lib/components/calendar/scheduler/interfaces/scheduler.event.suggestion.interface.d.ts +13 -0
- package/lib/components/calendar/scheduler/interfaces/scheduler.slots.interface.d.ts +6 -0
- package/lib/components/calendar/scheduler/mock-schedule.d.ts +9 -0
- package/lib/components/calendar/scheduler/scheduler.component.d.ts +36 -0
- package/lib/components/calendar/services/calendar-utils.service.d.ts +39 -0
- package/lib/components/chat/chat.component.d.ts +70 -0
- package/lib/components/chat/chat.component.module.d.ts +22 -0
- package/lib/components/chat/chat.service.d.ts +15 -0
- package/lib/components/chat/enums/sender-types.enum.d.ts +4 -0
- package/lib/components/chat/gif-selector/gif-selector.component.d.ts +25 -0
- package/lib/components/chat/gif-selector/gif-selector.service.d.ts +15 -0
- package/lib/components/chat/gif-selector/tenor-media-format.interface.d.ts +7 -0
- package/lib/components/chat/gif-selector/tenor-object.interface.d.ts +5 -0
- package/lib/components/chat/gif-selector/tenor-result.interface.d.ts +16 -0
- package/lib/components/chat/interfaces/date-messages.interface.d.ts +6 -0
- package/lib/components/chat/interfaces/message-attachment.interface.d.ts +6 -0
- package/lib/components/chat/interfaces/message.interface.d.ts +11 -0
- package/lib/components/chat/interfaces/send-options-message.interface.d.ts +5 -0
- package/lib/components/chat/interfaces/type-send-message.enum.d.ts +5 -0
- package/lib/components/chat-suggestion/chat-suggestion.component.d.ts +9 -0
- package/lib/components/chat-suggestion/interfaces/chat-suggestion.interface.d.ts +4 -0
- package/lib/components/circle-progress/circle-progress.component.d.ts +31 -0
- package/lib/components/circle-progress/circle-progress.module.d.ts +8 -0
- package/lib/components/circle-progress/enums/circle-variable.enum.d.ts +4 -0
- package/lib/components/circle-progress/interfaces/circle-progress-config.interface.d.ts +29 -0
- package/lib/components/client-home/client-home.component.d.ts +44 -0
- package/lib/components/client-home/enums/client-home-component.enum.d.ts +7 -0
- package/lib/components/client-home/interfaces/chat-meta.interface.d.ts +7 -0
- package/lib/components/client-home/interfaces/home-dashboard-inputs.interface.d.ts +45 -0
- package/lib/components/client-home/interfaces/inner-partial-circle-progress-colors.interface.d.ts +5 -0
- package/lib/components/client-home/interfaces/partial-circle-progress-colors.interface.d.ts +9 -0
- package/lib/components/client-home/lookup/client-home.config.d.ts +2 -0
- package/lib/components/client-home/lookup/inner-progress-default-colors.config.d.ts +2 -0
- package/lib/components/client-home/lookup/inner-progress-pink-colors.config.d.ts +2 -0
- package/lib/components/client-home/lookup/inner-progress-purple-colors.config.d.ts +2 -0
- package/lib/components/client-home/lookup/inner-progress-teal-colors.config.d.ts +2 -0
- package/lib/components/client-home/lookup/inner-progress-white-colors.config.d.ts +2 -0
- package/lib/components/client-home/lookup/progress-default-colors.config.d.ts +2 -0
- package/lib/components/client-home/lookup/progress-white-colors.config.d.ts +2 -0
- package/lib/components/client-home/pipes/chat-meta.pipe.d.ts +10 -0
- package/lib/components/client-home/pipes/get-color-by-matcher.pipe.d.ts +10 -0
- package/lib/components/client-match-overview/client-match-overview.component.d.ts +55 -0
- package/lib/components/client-match-overview/enums/conversation-flag.enum.d.ts +4 -0
- package/lib/components/client-match-overview/enums/counter-flag-base.enum.d.ts +4 -0
- package/lib/components/client-match-overview/enums/inner-circle-state.enum.d.ts +6 -0
- package/lib/components/client-match-overview/interfaces/client-match-overview.interface.d.ts +19 -0
- package/lib/components/client-match-overview/interfaces/conversation-flag.interface.d.ts +8 -0
- package/lib/components/client-match-overview/interfaces/dashboard-match-request.interface.d.ts +7 -0
- package/lib/components/client-match-overview/interfaces/progress-decision.interface.d.ts +10 -0
- package/lib/components/client-match-overview/interfaces/progress-facts.interface.d.ts +11 -0
- package/lib/components/client-match-overview/lookups/computer-inner-state.lookup.d.ts +7 -0
- package/lib/components/client-match-overview/lookups/limit-dates-indicator.lookup.d.ts +5 -0
- package/lib/components/client-match-overview/progress-ticker/progress-gap.config.d.ts +2 -0
- package/lib/components/client-match-overview/progress-ticker/progress-ticker.config.d.ts +2 -0
- package/lib/components/client-match-overview/progress-ticker/progress-ticker.service.d.ts +11 -0
- package/lib/components/dashboard-swipeable-tabs/dashboard-swipeable-tabs.component.d.ts +29 -0
- package/lib/components/dashboard-swipeable-tabs/lookups/dashboard-main-swiper-options.d.ts +2 -0
- package/lib/components/dashboard-swipeable-tabs/lookups/dashboard-thumbs-swiper-options.d.ts +2 -0
- package/lib/components/dashboard-swipeable-tabs/lookups/main-swiper-default-options.d.ts +2 -0
- package/lib/components/dashboard-swipeable-tabs/lookups/thumbs-swiper-default-options.d.ts +2 -0
- package/lib/components/lib-client-dashboard/client-dashboard.component.d.ts +75 -0
- package/lib/components/lib-client-dashboard/enums/alert-status-fields.enum.d.ts +9 -0
- package/lib/components/lib-client-dashboard/enums/client-dashboard-component.enum.d.ts +5 -0
- package/lib/components/lib-client-dashboard/interfaces/ads.interface.d.ts +14 -0
- package/lib/components/lib-client-dashboard/interfaces/client-dashboard-inputs.interface.d.ts +29 -0
- package/lib/components/lib-client-dashboard/lookups/client-dashboard.config.d.ts +2 -0
- package/lib/components/lib-compose-matcher-dash/compose-matcher-dash.component.d.ts +48 -0
- package/lib/components/lib-compose-matcher-dash/interfaces/chart-data.interface.d.ts +5 -0
- package/lib/components/lib-compose-matcher-dash/interfaces/chat-identifier.interface.d.ts +5 -0
- package/lib/components/lib-compose-matcher-dash/interfaces/matcher-dashboard-inputs.interface.d.ts +26 -0
- package/lib/components/lib-compose-matcher-dash/interfaces/matcher-profile.interface.d.ts +8 -0
- package/lib/components/lib-compose-matcher-dash/interfaces/prospect-data.interface.d.ts +24 -0
- package/lib/components/lib-compose-matcher-dash/pipes/get-profile-with-progress.pipe.d.ts +9 -0
- package/lib/components/matcher-statuses/enums/matcher-statuses.enum.d.ts +13 -0
- package/lib/components/matcher-statuses/interfaces/status.interface.d.ts +6 -0
- package/lib/components/matcher-statuses/lookups/matcher-statuses.lookup.d.ts +2 -0
- package/lib/components/matcher-statuses/matcher-statuses.component.d.ts +23 -0
- package/lib/components/matcher-statuses/pipes/is-status-included.pipe.d.ts +8 -0
- package/lib/components/profile-card/profile-card.component.d.ts +11 -0
- package/lib/components/profile-card/profile-card.module.d.ts +9 -0
- package/lib/components/spider-chart/interfaces/chart-data-circle.interface.d.ts +10 -0
- package/lib/components/spider-chart/interfaces/chart-data-defs-f.interface.d.ts +11 -0
- package/lib/components/spider-chart/interfaces/chart-data-defs-lg.interface.d.ts +11 -0
- package/lib/components/spider-chart/interfaces/chart-data-defs-rg.interface.d.ts +10 -0
- package/lib/components/spider-chart/interfaces/config.interface.d.ts +19 -0
- package/lib/components/spider-chart/interfaces/dataset.interface.d.ts +7 -0
- package/lib/components/spider-chart/interfaces/polygon-color.interface.d.ts +4 -0
- package/lib/components/spider-chart/interfaces/spider-chart-attribute.interface.d.ts +6 -0
- package/lib/components/spider-chart/lookup/default-spider-config.d.ts +2 -0
- package/lib/components/spider-chart/lookup/demo-polygon-colors.lookup.d.ts +2 -0
- package/lib/components/spider-chart/lookup/svg-config.lookup.d.ts +8 -0
- package/lib/components/spider-chart/spider-chart.component.d.ts +52 -0
- package/lib/enums/direction.enum.d.ts +4 -0
- package/lib/enums/form-field-type.d.ts +28 -0
- package/lib/enums/local-storage-keys.enum.d.ts +3 -0
- package/lib/enums/status-types.d.ts +6 -0
- package/lib/model/select-option-template.d.ts +5 -0
- package/lib/operations/operations.d.ts +19 -0
- package/lib/pipes/array-sort/array.sort.pipe.d.ts +7 -0
- package/lib/pipes/count-non-empty-fields/count-non-empty-fields.pipe.d.ts +7 -0
- package/lib/pipes/date-localization/date-localization.pipe.d.ts +8 -0
- package/lib/pipes/fallback-translate/fallback-translate.pipe.d.ts +11 -0
- package/lib/pipes/get-display-value/get-display-value.pipe.d.ts +13 -0
- package/lib/pipes/get-multi-select-display-text/get-multi-select-display-text.pipe.d.ts +8 -0
- package/lib/pipes/initials/initials.pipe.d.ts +7 -0
- package/lib/pipes/round/round.pipe.d.ts +7 -0
- package/lib/pipes/update-llm-preference/update-llm-preference.pipe.d.ts +8 -0
- package/lib/services/abstract-cache.service.d.ts +9 -0
- package/lib/shared/shared/alert-popup/alert-popup.component.d.ts +14 -0
- package/lib/shared/shared/message-modal/message-modal.component.d.ts +29 -0
- package/lib/shared/shared/status-icon/status-icon.component.d.ts +7 -0
- package/lib/shared/shared.module.d.ts +13 -0
- package/naniteninja-dashboard-components-lib-1.0.4.tgz +0 -0
- package/package.json +3 -1
- package/public-api.d.ts +122 -0
- package/src/lib/shared-styles/common/theme.scss +3 -3
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import * as d3 from 'd3';
|
|
3
|
+
import { SharedModule } from '../../shared/shared.module';
|
|
4
|
+
import { InitialsPipe } from '../../pipes/initials/initials.pipe';
|
|
5
|
+
import { AlertStatusFields } from '../lib-client-dashboard/enums/alert-status-fields.enum';
|
|
6
|
+
import { circleData, defsF, defsLG, defsRG } from './lookup/svg-config.lookup';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../../shared/shared/alert-popup/alert-popup.component";
|
|
9
|
+
export class SpiderChartComponent {
|
|
10
|
+
constructor(cdr) {
|
|
11
|
+
this.cdr = cdr;
|
|
12
|
+
this.datasets = [];
|
|
13
|
+
this.polygon_colors = [];
|
|
14
|
+
this.showChartInfo = true;
|
|
15
|
+
this.alertStatusFields = AlertStatusFields;
|
|
16
|
+
this.titleAlertPopup = '';
|
|
17
|
+
this.descriptionAlertPopup = '';
|
|
18
|
+
this.isAlertPopupClosing = false;
|
|
19
|
+
this.timeStateAlertPopup = 0;
|
|
20
|
+
this.defsRG = [];
|
|
21
|
+
this.defsF = [];
|
|
22
|
+
this.defsLG = [];
|
|
23
|
+
this.circleData = [];
|
|
24
|
+
this.initialsPipe = inject(InitialsPipe);
|
|
25
|
+
}
|
|
26
|
+
ngOnChanges(changes) {
|
|
27
|
+
if ((changes['datasets'] || changes['config']) && this.svg) {
|
|
28
|
+
if (this.datasets.length && this.config) {
|
|
29
|
+
this.createRadarChart();
|
|
30
|
+
}
|
|
31
|
+
else if (changes['config']?.currentValue?.['fullScreen'] !== changes['config']?.previousValue?.['fullScreen']) {
|
|
32
|
+
this.createRadarChart();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
ngAfterViewInit() {
|
|
37
|
+
this.defsRG = defsRG;
|
|
38
|
+
this.defsF = defsF;
|
|
39
|
+
this.defsLG = defsLG;
|
|
40
|
+
this.circleData = circleData;
|
|
41
|
+
this.initializeChart();
|
|
42
|
+
}
|
|
43
|
+
ngOnDestroy() {
|
|
44
|
+
if (this.svg) {
|
|
45
|
+
this.svg.remove();
|
|
46
|
+
this.svg = null;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
onClosedAlert(data) {
|
|
50
|
+
console.log(data);
|
|
51
|
+
}
|
|
52
|
+
initializeChart() {
|
|
53
|
+
this.svg = this.createSvgObject();
|
|
54
|
+
const defsGroup = this.svg.append('g');
|
|
55
|
+
this.defsLG.forEach((defData) => {
|
|
56
|
+
this.createDefsAndLinearGradient(defsGroup, defData);
|
|
57
|
+
});
|
|
58
|
+
this.defsF.forEach((defData) => {
|
|
59
|
+
this.createDefsAndFilter(defsGroup, defData);
|
|
60
|
+
});
|
|
61
|
+
this.defsRG.forEach((defData) => {
|
|
62
|
+
this.createDefsAndRadialGradient(defsGroup, defData);
|
|
63
|
+
});
|
|
64
|
+
const circleGroup = this.svg.append('g');
|
|
65
|
+
this.createCircle(circleGroup, this.circleData);
|
|
66
|
+
if (!this.config)
|
|
67
|
+
return;
|
|
68
|
+
this.createRadarChart();
|
|
69
|
+
}
|
|
70
|
+
createSvgObject() {
|
|
71
|
+
return d3.select(this.d3Chart?.nativeElement).append('svg').attr('class', 'svg').attr('height', 300).attr('width', 300);
|
|
72
|
+
}
|
|
73
|
+
createLine(group, data, MaxValue, angleSlice, rScale) {
|
|
74
|
+
group.selectAll('line').remove();
|
|
75
|
+
return group
|
|
76
|
+
.selectAll('line')
|
|
77
|
+
.data(data)
|
|
78
|
+
.enter()
|
|
79
|
+
.append('g')
|
|
80
|
+
.append('line')
|
|
81
|
+
.attr('class', 'line')
|
|
82
|
+
.attr('class', 'line-group')
|
|
83
|
+
.attr('x1', 0)
|
|
84
|
+
.attr('y1', 0)
|
|
85
|
+
.attr('x2', (_d, i) => rScale(MaxValue * 1.4) * Math.cos(angleSlice * i + 0.01 - Math.PI / 2))
|
|
86
|
+
.attr('y2', (_d, i) => rScale(MaxValue * 1.4) * Math.sin(angleSlice * i + 0.01 - Math.PI / 2))
|
|
87
|
+
.attr('stroke', 'url(#needleRadiant)')
|
|
88
|
+
.attr('transform', 'translate(150,150)');
|
|
89
|
+
}
|
|
90
|
+
createCircle(group, data) {
|
|
91
|
+
data?.forEach((datum) => {
|
|
92
|
+
const g = group.append('circle');
|
|
93
|
+
Object.keys(datum).forEach((key) => {
|
|
94
|
+
g.attr(key, datum[key]);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
return group;
|
|
98
|
+
}
|
|
99
|
+
createText(group, data, rScale, MaxValue, angleSlice) {
|
|
100
|
+
const toolTip = d3.select('#tooltip');
|
|
101
|
+
group.selectAll('text').remove();
|
|
102
|
+
const isFullScreenActive = this.config.fullScreen;
|
|
103
|
+
// TODO left based on position of modal
|
|
104
|
+
const left = isFullScreenActive ? 0 : 0;
|
|
105
|
+
const top = isFullScreenActive ? -80 : -220;
|
|
106
|
+
return group
|
|
107
|
+
.selectAll('text')
|
|
108
|
+
.data(data)
|
|
109
|
+
.enter()
|
|
110
|
+
.append('text')
|
|
111
|
+
.text((d) => this.initialsPipe.transform(d.text))
|
|
112
|
+
.attr('x', (_d, i) => {
|
|
113
|
+
const x2 = rScale(MaxValue * 1.2) * Math.cos(angleSlice * i + 0.1 - Math.PI / 2);
|
|
114
|
+
return x2;
|
|
115
|
+
})
|
|
116
|
+
.attr('y', (_d, i) => {
|
|
117
|
+
const y2 = rScale(MaxValue * 1.2) * Math.sin(angleSlice * i + 0.1 - Math.PI / 2);
|
|
118
|
+
return y2;
|
|
119
|
+
})
|
|
120
|
+
.attr('dy', '0.35em')
|
|
121
|
+
.attr('transform', 'translate(150,150)')
|
|
122
|
+
.style('fill', '#FE3C72')
|
|
123
|
+
.style('text-shadow', '1px 2px 1px #000')
|
|
124
|
+
.attr('class', 'line-label')
|
|
125
|
+
.on('pointerdown', (event, d) => {
|
|
126
|
+
const { titleAlertPopup, descriptionAlertPopup } = d;
|
|
127
|
+
this.titleAlertPopup = titleAlertPopup;
|
|
128
|
+
this.descriptionAlertPopup = descriptionAlertPopup;
|
|
129
|
+
this.isAlertPopupClosing = false;
|
|
130
|
+
this.timeStateAlertPopup = new Date().getTime();
|
|
131
|
+
this.numberAlertPopup = Math.floor(Math.random() * 10);
|
|
132
|
+
this.cdr.detectChanges();
|
|
133
|
+
toolTip
|
|
134
|
+
.style('display', 'block')
|
|
135
|
+
.style('left', event.pageX + left + 'px')
|
|
136
|
+
.style('top', event.pageY + top < 0 ? 0 : event.pageY + top + 'px');
|
|
137
|
+
})
|
|
138
|
+
.on('pointerup', (event, d) => { });
|
|
139
|
+
}
|
|
140
|
+
createPolygons(group, datasets, rScale, angleSlice) {
|
|
141
|
+
group.selectAll('polygon').remove();
|
|
142
|
+
group.selectAll('.radarCircle').remove();
|
|
143
|
+
const polygonPoints = (data) => {
|
|
144
|
+
const points = data?.keys?.map((key, i) => {
|
|
145
|
+
const r = rScale(data?.values[key] ?? 1 * 1);
|
|
146
|
+
const x = r * Math.cos(angleSlice * i + 0.01 - Math.PI / 2);
|
|
147
|
+
const y = r * Math.sin(angleSlice * i + 0.01 - Math.PI / 2);
|
|
148
|
+
return `${x},${y}`;
|
|
149
|
+
});
|
|
150
|
+
return points.join(' ');
|
|
151
|
+
};
|
|
152
|
+
group
|
|
153
|
+
.selectAll('polygon')
|
|
154
|
+
.data(datasets)
|
|
155
|
+
.enter()
|
|
156
|
+
.append('polygon')
|
|
157
|
+
.attr('points', (d) => polygonPoints(d ?? {}))
|
|
158
|
+
.attr('stroke', (_, i) => _.polygon_color?.value)
|
|
159
|
+
.attr('transform', 'translate(150,150)')
|
|
160
|
+
.attr('fill', (_, i) => `url(${this.polygon_colors?.[i]?.label})`);
|
|
161
|
+
datasets.forEach((data, j) => {
|
|
162
|
+
const allValuesAreZero = data.keys.every((key) => data.values[key] === 0);
|
|
163
|
+
if (!allValuesAreZero) {
|
|
164
|
+
group
|
|
165
|
+
.append('g')
|
|
166
|
+
.selectAll('circle')
|
|
167
|
+
.data(data.keys)
|
|
168
|
+
.enter()
|
|
169
|
+
.append('circle')
|
|
170
|
+
.attr('class', 'radarCircle')
|
|
171
|
+
.attr('r', 3)
|
|
172
|
+
.attr('cx', (key, i) => rScale(data.values[key] ?? 0) * Math.cos(angleSlice * i - Math.PI / 2))
|
|
173
|
+
.attr('cy', (key, i) => rScale(data.values[key] ?? 0) * Math.sin(angleSlice * i - Math.PI / 2))
|
|
174
|
+
.style('fill', 'white')
|
|
175
|
+
.style('stroke', () => this.polygon_colors?.[j]?.value) // Using stroke colors from the strokeColors array
|
|
176
|
+
.attr('transform', 'translate(150,150)')
|
|
177
|
+
.attr('filter', 'blur(1px)')
|
|
178
|
+
.style('stroke-width', 2)
|
|
179
|
+
.style('fill-opacity', 0.8);
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
createDefsAndLinearGradient(group, data) {
|
|
184
|
+
const defs = group.append('defs').append('linearGradient').attr('id', data.id).attr('x1', data.x1).attr('y1', data.y1).attr('x2', data.x2).attr('y2', data.y2);
|
|
185
|
+
data.stopTags.forEach((elem) => {
|
|
186
|
+
defs.append('stop').attr('offset', elem.offset).attr('style', elem.style);
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
createDefsAndFilter(group, data) {
|
|
190
|
+
const defs = group.append('defs').append('filter').attr('id', data.id).attr('x', data.x).attr('y', data.y).attr('height', data.height).attr('width', data.width);
|
|
191
|
+
data.feGaussianTags.forEach((elem) => {
|
|
192
|
+
defs.append('feGaussianBlur').attr('in', elem.in).attr('stdDeviation', elem.stdDeviation);
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
createDefsAndRadialGradient(group, data) {
|
|
196
|
+
const defs = group.append('defs').append('radialGradient').attr('id', data.id).attr('cx', data.cy).attr('cy', data.cx).attr('r', data.r);
|
|
197
|
+
data.stopTags.forEach((elem) => {
|
|
198
|
+
defs.append('stop').attr('offset', elem.offset).attr('style', elem.style);
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
createRadarChart() {
|
|
202
|
+
const { maxValue, datasets, attributes } = this.config;
|
|
203
|
+
const allAxis = [...new Set(attributes)].map((i) => i);
|
|
204
|
+
const total = allAxis.length;
|
|
205
|
+
const angleSlice = (Math.PI * 2) / total;
|
|
206
|
+
let MaxValue = datasets.length > 0
|
|
207
|
+
? Math.max(...datasets.reduce((a, i) => {
|
|
208
|
+
return [...a, ...Object.values(i.values)];
|
|
209
|
+
}, []))
|
|
210
|
+
: maxValue;
|
|
211
|
+
MaxValue = MaxValue > 0 ? MaxValue : 25;
|
|
212
|
+
const rScale = d3.scaleLinear().range([0, 100]).domain([0, MaxValue]);
|
|
213
|
+
this.createLine(this.svg, allAxis, MaxValue, angleSlice, rScale);
|
|
214
|
+
this.createText(this.svg, allAxis, rScale, MaxValue, angleSlice);
|
|
215
|
+
this.createPolygons(this.svg, datasets, rScale, angleSlice);
|
|
216
|
+
}
|
|
217
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderChartComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
218
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SpiderChartComponent, isStandalone: true, selector: "lib-spider-chart", inputs: { datasets: "datasets", config: "config", polygon_colors: "polygon_colors", showChartInfo: "showChartInfo" }, viewQueries: [{ propertyName: "d3Chart", first: true, predicate: ["D3Chart"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div id=\"tooltip\">\n <lib-alert-popup [title]=\"titleAlertPopup\" [description]=\"descriptionAlertPopup\" [timeState]=\"timeStateAlertPopup\" [number]=\"numberAlertPopup\"></lib-alert-popup>\n</div>\n\n<div class=\"container\">\n <div class=\"d3-container\">\n <div class=\"d3-chart\" #D3Chart></div>\n @if (showChartInfo) {\n <div class=\"chartInfo\">\n @if (datasets.length > 0) {\n <div class=\"datachart\">\n @for (dataset of datasets; let j = $index; track dataset) {\n <div class=\"legend-item\">\n <div [style.border]=\"'5px solid ' + polygon_colors?.[j]?.value\" [style.boxShadow]=\"'0px 0px 12px ' + polygon_colors?.[j]?.value\" class=\"legend-color\"></div>\n {{ dataset.title }}\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n</div>\n", styles: [".align-chart{display:flex;justify-content:center;align-items:center}.d3-container{width:100%;position:relative;min-height:300px;display:flex;align-items:center;transition:all .5s ease}.d3-chart{width:100%;height:clamp(300px,30vh,400px);display:flex;justify-content:center;align-items:center;transition:all .5s ease}.chartInfo{margin-top:20px}.datachart{display:flex;flex-wrap:wrap;gap:10px}.legend-item{display:flex;align-items:center;gap:8px;font-size:14px;padding:4px}.legend-color{width:15px;height:15px;border-radius:50%;background-color:#fff}#tooltip{position:absolute;display:none;z-index:1000}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i1.AlertPopupComponent, selector: "lib-alert-popup", inputs: ["title", "description", "timeState", "number"], outputs: ["closed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
219
|
+
}
|
|
220
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderChartComponent, decorators: [{
|
|
221
|
+
type: Component,
|
|
222
|
+
args: [{ selector: 'lib-spider-chart', standalone: true, imports: [SharedModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div id=\"tooltip\">\n <lib-alert-popup [title]=\"titleAlertPopup\" [description]=\"descriptionAlertPopup\" [timeState]=\"timeStateAlertPopup\" [number]=\"numberAlertPopup\"></lib-alert-popup>\n</div>\n\n<div class=\"container\">\n <div class=\"d3-container\">\n <div class=\"d3-chart\" #D3Chart></div>\n @if (showChartInfo) {\n <div class=\"chartInfo\">\n @if (datasets.length > 0) {\n <div class=\"datachart\">\n @for (dataset of datasets; let j = $index; track dataset) {\n <div class=\"legend-item\">\n <div [style.border]=\"'5px solid ' + polygon_colors?.[j]?.value\" [style.boxShadow]=\"'0px 0px 12px ' + polygon_colors?.[j]?.value\" class=\"legend-color\"></div>\n {{ dataset.title }}\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n</div>\n", styles: [".align-chart{display:flex;justify-content:center;align-items:center}.d3-container{width:100%;position:relative;min-height:300px;display:flex;align-items:center;transition:all .5s ease}.d3-chart{width:100%;height:clamp(300px,30vh,400px);display:flex;justify-content:center;align-items:center;transition:all .5s ease}.chartInfo{margin-top:20px}.datachart{display:flex;flex-wrap:wrap;gap:10px}.legend-item{display:flex;align-items:center;gap:8px;font-size:14px;padding:4px}.legend-color{width:15px;height:15px;border-radius:50%;background-color:#fff}#tooltip{position:absolute;display:none;z-index:1000}\n"] }]
|
|
223
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { d3Chart: [{
|
|
224
|
+
type: ViewChild,
|
|
225
|
+
args: ['D3Chart']
|
|
226
|
+
}], datasets: [{
|
|
227
|
+
type: Input
|
|
228
|
+
}], config: [{
|
|
229
|
+
type: Input
|
|
230
|
+
}], polygon_colors: [{
|
|
231
|
+
type: Input
|
|
232
|
+
}], showChartInfo: [{
|
|
233
|
+
type: Input
|
|
234
|
+
}] } });
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVyLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC1jb21wb25lbnRzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc3BpZGVyLWNoYXJ0L3NwaWRlci1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtY29tcG9uZW50cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NwaWRlci1jaGFydC9zcGlkZXItY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQix1QkFBdUIsRUFBcUIsU0FBUyxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQXVDLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoTCxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBUzNGLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBVS9FLE1BQU0sT0FBTyxvQkFBb0I7SUFxQi9CLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbkJqQyxhQUFRLEdBQWUsRUFBRSxDQUFDO1FBRTFCLG1CQUFjLEdBQW9CLEVBQUUsQ0FBQztRQUNyQyxrQkFBYSxHQUFZLElBQUksQ0FBQztRQUVoQyxzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUN0QyxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQiwwQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFDM0Isd0JBQW1C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QUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRXRFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDOUQsQ0FBQzsrR0E1UFUsb0JBQW9CO21HQUFwQixvQkFBb0IsMlRDdkJqQyxtM0JBdUJBLG1wQkRIWSxZQUFZOzs0RkFHWCxvQkFBb0I7a0JBUmhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBR2hCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFDTix1QkFBdUIsQ0FBQyxNQUFNO3NGQUd6QixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ1gsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7IEluaXRpYWxzUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL2luaXRpYWxzL2luaXRpYWxzLnBpcGUnO1xuaW1wb3J0IHsgQWxlcnRTdGF0dXNGaWVsZHMgfSBmcm9tICcuLi9saWItY2xpZW50LWRhc2hib2FyZC9lbnVtcy9hbGVydC1zdGF0dXMtZmllbGRzLmVudW0nO1xuaW1wb3J0IHsgSUNpcmNsZURhdGEgfSBmcm9tICcuL2ludGVyZmFjZXMvY2hhcnQtZGF0YS1jaXJjbGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IElEZWZzRiB9IGZyb20gJy4vaW50ZXJmYWNlcy9jaGFydC1kYXRhLWRlZnMtZi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSURlZnNMRyB9IGZyb20gJy4vaW50ZXJmYWNlcy9jaGFydC1kYXRhLWRlZnMtbGcuaW50ZXJmYWNlJztcbmltcG9ydCB7IElEZWZzUkcgfSBmcm9tICcuL2ludGVyZmFjZXMvY2hhcnQtZGF0YS1kZWZzLXJnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJU3BpZGVyQ2hhcnRDb25maWcgfSBmcm9tICcuL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRGF0YXNldCB9IGZyb20gJy4vaW50ZXJmYWNlcy9kYXRhc2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJUG9seWdvbkNvbG9yIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvbHlnb24tY29sb3IuaW50ZXJmYWNlJztcbmltcG9ydCB7IElTcGlkZXJDaGFydEF0dHJpYnV0ZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9zcGlkZXItY2hhcnQtYXR0cmlidXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBjaXJjbGVEYXRhLCBkZWZzRiwgZGVmc0xHLCBkZWZzUkcgfSBmcm9tICcuL2xvb2t1cC9zdmctY29uZmlnLmxvb2t1cCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zcGlkZXItY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3BpZGVyLWNoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3NwaWRlci1jaGFydC5jb21wb25lbnQuc2NzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtTaGFyZWRNb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU3BpZGVyQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ0QzQ2hhcnQnKSBkM0NoYXJ0OiBFbGVtZW50UmVmO1xuICBASW5wdXQoKSBkYXRhc2V0czogSURhdGFzZXRbXSA9IFtdO1xuICBASW5wdXQoKSBjb25maWc6IElTcGlkZXJDaGFydENvbmZpZztcbiAgQElucHV0KCkgcG9seWdvbl9jb2xvcnM6IElQb2x5Z29uQ29sb3JbXSA9IFtdO1xuICBASW5wdXQoKSBzaG93Q2hhcnRJbmZvOiBib29sZWFuID0gdHJ1ZTtcblxuICBwdWJsaWMgYWxlcnRTdGF0dXNGaWVsZHMgPSBBbGVydFN0YXR1c0ZpZWxkcztcbiAgcHVibGljIHRpdGxlQWxlcnRQb3B1cCA9ICcnO1xuICBwdWJsaWMgZGVzY3JpcHRpb25BbGVydFBvcHVwID0gJyc7XG4gIHB1YmxpYyBpc0FsZXJ0UG9wdXBDbG9zaW5nID0gZmFsc2U7XG4gIHB1YmxpYyB0aW1lU3RhdGVBbGVydFBvcHVwID0gMDtcbiAgcHVibGljIG51bWJlckFsZXJ0UG9wdXA6IG51bWJlcjtcblxuICBwdWJsaWMgc3ZnOiBkMy5TZWxlY3Rpb248U1ZHU1ZHRWxlbWVudCwgdW5rbm93biwgSFRNTEVsZW1lbnQsIHVua25vd24+O1xuICBwdWJsaWMgZGVmc1JHOiBJRGVmc1JHW10gPSBbXTtcbiAgcHVibGljIGRlZnNGOiBJRGVmc0ZbXSA9IFtdO1xuICBwdWJsaWMgZGVmc0xHOiBJRGVmc0xHW10gPSBbXTtcbiAgcHVibGljIGNpcmNsZURhdGE6IElDaXJjbGVEYXRhW10gPSBbXTtcbiAgcHVibGljIHJlYWRvbmx5IGluaXRpYWxzUGlwZTogSW5pdGlhbHNQaXBlID0gaW5qZWN0KEluaXRpYWxzUGlwZSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoKGNoYW5nZXNbJ2RhdGFzZXRzJ10gfHwgY2hhbmdlc1snY29uZmlnJ10pICYmIHRoaXMuc3ZnKSB7XG4gICAgICBpZiAodGhpcy5kYXRhc2V0cy5sZW5ndGggJiYgdGhpcy5jb25maWcpIHtcbiAgICAgICAgdGhpcy5jcmVhdGVSYWRhckNoYXJ0KCk7XG4gICAgICB9IGVsc2UgaWYgKGNoYW5nZXNbJ2NvbmZpZyddPy5jdXJyZW50VmFsdWU/LlsnZnVsbFNjcmVlbiddICE9PSBjaGFuZ2VzWydjb25maWcnXT8ucHJldmlvdXNWYWx1ZT8uWydmdWxsU2NyZWVuJ10pIHtcbiAgICAgICAgdGhpcy5jcmVhdGVSYWRhckNoYXJ0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGVmc1JHID0gZGVmc1JHO1xuICAgIHRoaXMuZGVmc0YgPSBkZWZzRjtcbiAgICB0aGlzLmRlZnNMRyA9IGRlZnNMRztcbiAgICB0aGlzLmNpcmNsZURhdGEgPSBjaXJjbGVEYXRhO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUNoYXJ0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdmcpIHtcbiAgICAgIHRoaXMuc3ZnLnJlbW92ZSgpO1xuICAgICAgdGhpcy5zdmcgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkNsb3NlZEFsZXJ0KGRhdGE6IHsgZXZlbnQ6IGJvb2xlYW47IGZpZWxkOiBBbGVydFN0YXR1c0ZpZWxkcyB9KTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coZGF0YSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVDaGFydCgpOiB2b2lkIHtcbiAgICB0aGlzLnN2ZyA9IHRoaXMuY3JlYXRlU3ZnT2JqZWN0KCk7XG4gICAgY29uc3QgZGVmc0dyb3VwID0gdGhpcy5zdmcuYXBwZW5kKCdnJyk7XG5cbiAgICB0aGlzLmRlZnNMRy5mb3JFYWNoKChkZWZEYXRhKSA9PiB7XG4gICAgICB0aGlzLmNyZWF0ZURlZnNBbmRMaW5lYXJHcmFkaWVudChkZWZzR3JvdXAsIGRlZkRhdGEpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5kZWZzRi5mb3JFYWNoKChkZWZEYXRhKSA9PiB7XG4gICAgICB0aGlzLmNyZWF0ZURlZnNBbmRGaWx0ZXIoZGVmc0dyb3VwLCBkZWZEYXRhKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZGVmc1JHLmZvckVhY2goKGRlZkRhdGEpID0+IHtcbiAgICAgIHRoaXMuY3JlYXRlRGVmc0FuZFJhZGlhbEdyYWRpZW50KGRlZnNHcm91cCwgZGVmRGF0YSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBjaXJjbGVHcm91cCA9IHRoaXMuc3ZnLmFwcGVuZCgnZycpO1xuICAgIHRoaXMuY3JlYXRlQ2lyY2xlKGNpcmNsZUdyb3VwLCB0aGlzLmNpcmNsZURhdGEpO1xuICAgIGlmICghdGhpcy5jb25maWcpIHJldHVybjtcbiAgICB0aGlzLmNyZWF0ZVJhZGFyQ2hhcnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU3ZnT2JqZWN0KCk6IGQzLlNlbGVjdGlvbjxTVkdTVkdFbGVtZW50LCB1bmtub3duLCBIVE1MRWxlbWVudCwgdW5rbm93bj4ge1xuICAgIHJldHVybiBkMy5zZWxlY3QodGhpcy5kM0NoYXJ0Py5uYXRpdmVFbGVtZW50KS5hcHBlbmQoJ3N2ZycpLmF0dHIoJ2NsYXNzJywgJ3N2ZycpLmF0dHIoJ2hlaWdodCcsIDMwMCkuYXR0cignd2lkdGgnLCAzMDApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVMaW5lKFxuICAgIGdyb3VwOiBkMy5TZWxlY3Rpb248U1ZHR0VsZW1lbnQsIHVua25vd24sIEhUTUxFbGVtZW50LCB1bmtub3duPixcbiAgICBkYXRhOiBJU3BpZGVyQ2hhcnRBdHRyaWJ1dGVbXSxcbiAgICBNYXhWYWx1ZTogbnVtYmVyLFxuICAgIGFuZ2xlU2xpY2U6IG51bWJlcixcbiAgICByU2NhbGU6IGQzLlNjYWxlTGluZWFyPG51bWJlciwgbnVtYmVyPixcbiAgKTogdm9pZCB7XG4gICAgZ3JvdXAuc2VsZWN0QWxsKCdsaW5lJykucmVtb3ZlKCk7XG4gICAgcmV0dXJuIGdyb3VwXG4gICAgICAuc2VsZWN0QWxsKCdsaW5lJylcbiAgICAgIC5kYXRhKGRhdGEpXG4gICAgICAuZW50ZXIoKVxuICAgICAgLmFwcGVuZCgnZycpXG4gICAgICAuYXBwZW5kKCdsaW5lJylcbiAgICAgIC5hdHRyKCdjbGFzcycsICdsaW5lJylcbiAgICAgIC5hdHRyKCdjbGFzcycsICdsaW5lLWdyb3VwJylcbiAgICAgIC5hdHRyKCd4MScsIDApXG4gICAgICAuYXR0cigneTEnLCAwKVxuICAgICAgLmF0dHIoJ3gyJywgKF9kLCBpKSA9PiByU2NhbGUoTWF4VmFsdWUgKiAxLjQpICogTWF0aC5jb3MoYW5nbGVTbGljZSAqIGkgKyAwLjAxIC0gTWF0aC5QSSAvIDIpKVxuICAgICAgLmF0dHIoJ3kyJywgKF9kLCBpKSA9PiByU2NhbGUoTWF4VmFsdWUgKiAxLjQpICogTWF0aC5zaW4oYW5nbGVTbGljZSAqIGkgKyAwLjAxIC0gTWF0aC5QSSAvIDIpKVxuICAgICAgLmF0dHIoJ3N0cm9rZScsICd1cmwoI25lZWRsZVJhZGlhbnQpJylcbiAgICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlKDE1MCwxNTApJyk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNpcmNsZShncm91cDogZDMuU2VsZWN0aW9uPFNWR0dFbGVtZW50LCB1bmtub3duLCBIVE1MRWxlbWVudCwgdW5rbm93bj4sIGRhdGE6IElDaXJjbGVEYXRhW10pOiB2b2lkIHtcbiAgICBkYXRhPy5mb3JFYWNoKChkYXR1bSkgPT4ge1xuICAgICAgY29uc3QgZyA9IGdyb3VwLmFwcGVuZCgnY2lyY2xlJyk7XG4gICAgICBPYmplY3Qua2V5cyhkYXR1bSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGcuYXR0cihrZXksIGRhdHVtW2tleV0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGdyb3VwO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUZXh0KFxuICAgIGdyb3VwOiBkMy5TZWxlY3Rpb248U1ZHR0VsZW1lbnQsIHVua25vd24sIEhUTUxFbGVtZW50LCB1bmtub3duPixcbiAgICBkYXRhOiBJU3BpZGVyQ2hhcnRBdHRyaWJ1dGVbXSxcbiAgICByU2NhbGU6IGQzLlNjYWxlTGluZWFyPG51bWJlciwgbnVtYmVyPixcbiAgICBNYXhWYWx1ZTogbnVtYmVyLFxuICAgIGFuZ2xlU2xpY2U6IG51bWJlcixcbiAgKSB7XG4gICAgY29uc3QgdG9vbFRpcCA9IGQzLnNlbGVjdCgnI3Rvb2x0aXAnKTtcbiAgICBncm91cC5zZWxlY3RBbGwoJ3RleHQnKS5yZW1vdmUoKTtcblxuICAgIGNvbnN0IGlzRnVsbFNjcmVlbkFjdGl2ZTogYm9vbGVhbiA9IHRoaXMuY29uZmlnLmZ1bGxTY3JlZW47XG5cbiAgICAvLyBUT0RPIGxlZnQgYmFzZWQgb24gcG9zaXRpb24gb2YgbW9kYWxcbiAgICBjb25zdCBsZWZ0ID0gaXNGdWxsU2NyZWVuQWN0aXZlID8gMCA6IDA7XG4gICAgY29uc3QgdG9wID0gaXNGdWxsU2NyZWVuQWN0aXZlID8gLTgwIDogLTIyMDtcbiAgICByZXR1cm4gZ3JvdXBcbiAgICAgIC5zZWxlY3RBbGwoJ3RleHQnKVxuICAgICAgLmRhdGEoZGF0YSlcbiAgICAgIC5lbnRlcigpXG4gICAgICAuYXBwZW5kKCd0ZXh0JylcbiAgICAgIC50ZXh0KChkKSA9PiB0aGlzLmluaXRpYWxzUGlwZS50cmFuc2Zvcm0oZC50ZXh0KSlcbiAgICAgIC5hdHRyKCd4JywgKF9kLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IHgyID0gclNjYWxlKE1heFZhbHVlICogMS4yKSAqIE1hdGguY29zKGFuZ2xlU2xpY2UgKiBpICsgMC4xIC0gTWF0aC5QSSAvIDIpO1xuICAgICAgICByZXR1cm4geDI7XG4gICAgICB9KVxuICAgICAgLmF0dHIoJ3knLCAoX2QsIGkpID0+IHtcbiAgICAgICAgY29uc3QgeTIgPSByU2NhbGUoTWF4VmFsdWUgKiAxLjIpICogTWF0aC5zaW4oYW5nbGVTbGljZSAqIGkgKyAwLjEgLSBNYXRoLlBJIC8gMik7XG4gICAgICAgIHJldHVybiB5MjtcbiAgICAgIH0pXG4gICAgICAuYXR0cignZHknLCAnMC4zNWVtJylcbiAgICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlKDE1MCwxNTApJylcbiAgICAgIC5zdHlsZSgnZmlsbCcsICcjRkUzQzcyJylcbiAgICAgIC5zdHlsZSgndGV4dC1zaGFkb3cnLCAnMXB4IDJweCAxcHggIzAwMCcpXG4gICAgICAuYXR0cignY2xhc3MnLCAnbGluZS1sYWJlbCcpXG4gICAgICAub24oJ3BvaW50ZXJkb3duJywgKGV2ZW50LCBkOiBJU3BpZGVyQ2hhcnRBdHRyaWJ1dGUpID0+IHtcbiAgICAgICAgY29uc3QgeyB0aXRsZUFsZXJ0UG9wdXAsIGRlc2NyaXB0aW9uQWxlcnRQb3B1cCB9ID0gZDtcbiAgICAgICAgdGhpcy50aXRsZUFsZXJ0UG9wdXAgPSB0aXRsZUFsZXJ0UG9wdXA7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb25BbGVydFBvcHVwID0gZGVzY3JpcHRpb25BbGVydFBvcHVwO1xuICAgICAgICB0aGlzLmlzQWxlcnRQb3B1cENsb3NpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy50aW1lU3RhdGVBbGVydFBvcHVwID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICAgIHRoaXMubnVtYmVyQWxlcnRQb3B1cCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0b29sVGlwXG4gICAgICAgICAgLnN0eWxlKCdkaXNwbGF5JywgJ2Jsb2NrJylcbiAgICAgICAgICAuc3R5bGUoJ2xlZnQnLCBldmVudC5wYWdlWCArIGxlZnQgKyAncHgnKVxuICAgICAgICAgIC5zdHlsZSgndG9wJywgZXZlbnQucGFnZVkgKyB0b3AgPCAwID8gMCA6IGV2ZW50LnBhZ2VZICsgdG9wICsgJ3B4Jyk7XG4gICAgICB9KVxuICAgICAgLm9uKCdwb2ludGVydXAnLCAoZXZlbnQsIGQ6IElTcGlkZXJDaGFydEF0dHJpYnV0ZSkgPT4ge30pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQb2x5Z29ucyhncm91cDogZDMuU2VsZWN0aW9uPFNWR0dFbGVtZW50LCB1bmtub3duLCBIVE1MRWxlbWVudCwgdW5rbm93bj4sIGRhdGFzZXRzOiBJRGF0YXNldFtdLCByU2NhbGU6IGQzLlNjYWxlTGluZWFyPG51bWJlciwgbnVtYmVyPiwgYW5nbGVTbGljZTogbnVtYmVyKTogdm9pZCB7XG4gICAgZ3JvdXAuc2VsZWN0QWxsKCdwb2x5Z29uJykucmVtb3ZlKCk7XG4gICAgZ3JvdXAuc2VsZWN0QWxsKCcucmFkYXJDaXJjbGUnKS5yZW1vdmUoKTtcblxuICAgIGNvbnN0IHBvbHlnb25Qb2ludHMgPSAoZGF0YSkgPT4ge1xuICAgICAgY29uc3QgcG9pbnRzID0gZGF0YT8ua2V5cz8ubWFwKChrZXksIGkpID0+IHtcbiAgICAgICAgY29uc3QgciA9IHJTY2FsZShkYXRhPy52YWx1ZXNba2V5XSA/PyAxICogMSk7XG4gICAgICAgIGNvbnN0IHggPSByICogTWF0aC5jb3MoYW5nbGVTbGljZSAqIGkgKyAwLjAxIC0gTWF0aC5QSSAvIDIpO1xuICAgICAgICBjb25zdCB5ID0gciAqIE1hdGguc2luKGFuZ2xlU2xpY2UgKiBpICsgMC4wMSAtIE1hdGguUEkgLyAyKTtcbiAgICAgICAgcmV0dXJuIGAke3h9LCR7eX1gO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcG9pbnRzLmpvaW4oJyAnKTtcbiAgICB9O1xuICAgIGdyb3VwXG4gICAgICAuc2VsZWN0QWxsKCdwb2x5Z29uJylcbiAgICAgIC5kYXRhKGRhdGFzZXRzKVxuICAgICAgLmVudGVyKClcbiAgICAgIC5hcHBlbmQoJ3BvbHlnb24nKVxuICAgICAgLmF0dHIoJ3BvaW50cycsIChkKSA9PiBwb2x5Z29uUG9pbnRzKGQgPz8ge30pKVxuICAgICAgLmF0dHIoJ3N0cm9rZScsIChfLCBpKSA9PiBfLnBvbHlnb25fY29sb3I/LnZhbHVlKVxuICAgICAgLmF0dHIoJ3RyYW5zZm9ybScsICd0cmFuc2xhdGUoMTUwLDE1MCknKVxuXG4gICAgICAuYXR0cignZmlsbCcsIChfLCBpKSA9PiBgdXJsKCR7dGhpcy5wb2x5Z29uX2NvbG9ycz8uW2ldPy5sYWJlbH0pYCk7XG4gICAgZGF0YXNldHMuZm9yRWFjaCgoZGF0YSwgaikgPT4ge1xuICAgICAgY29uc3QgYWxsVmFsdWVzQXJlWmVybyA9IGRhdGEua2V5cy5ldmVyeSgoa2V5KSA9PiBkYXRhLnZhbHVlc1trZXldID09PSAwKTtcbiAgICAgIGlmICghYWxsVmFsdWVzQXJlWmVybykge1xuICAgICAgICBncm91cFxuICAgICAgICAgIC5hcHBlbmQoJ2cnKVxuICAgICAgICAgIC5zZWxlY3RBbGwoJ2NpcmNsZScpXG4gICAgICAgICAgLmRhdGEoZGF0YS5rZXlzKVxuICAgICAgICAgIC5lbnRlcigpXG4gICAgICAgICAgLmFwcGVuZCgnY2lyY2xlJylcbiAgICAgICAgICAuYXR0cignY2xhc3MnLCAncmFkYXJDaXJjbGUnKVxuICAgICAgICAgIC5hdHRyKCdyJywgMylcbiAgICAgICAgICAuYXR0cignY3gnLCAoa2V5LCBpKSA9PiByU2NhbGUoZGF0YS52YWx1ZXNba2V5XSA/PyAwKSAqIE1hdGguY29zKGFuZ2xlU2xpY2UgKiBpIC0gTWF0aC5QSSAvIDIpKVxuICAgICAgICAgIC5hdHRyKCdjeScsIChrZXksIGkpID0+IHJTY2FsZShkYXRhLnZhbHVlc1trZXldID8/IDApICogTWF0aC5zaW4oYW5nbGVTbGljZSAqIGkgLSBNYXRoLlBJIC8gMikpXG4gICAgICAgICAgLnN0eWxlKCdmaWxsJywgJ3doaXRlJylcbiAgICAgICAgICAuc3R5bGUoJ3N0cm9rZScsICgpID0+IHRoaXMucG9seWdvbl9jb2xvcnM/LltqXT8udmFsdWUpIC8vIFVzaW5nIHN0cm9rZSBjb2xvcnMgZnJvbSB0aGUgc3Ryb2tlQ29sb3JzIGFycmF5XG4gICAgICAgICAgLmF0dHIoJ3RyYW5zZm9ybScsICd0cmFuc2xhdGUoMTUwLDE1MCknKVxuICAgICAgICAgIC5hdHRyKCdmaWx0ZXInLCAnYmx1cigxcHgpJylcbiAgICAgICAgICAuc3R5bGUoJ3N0cm9rZS13aWR0aCcsIDIpXG4gICAgICAgICAgLnN0eWxlKCdmaWxsLW9wYWNpdHknLCAwLjgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEZWZzQW5kTGluZWFyR3JhZGllbnQoZ3JvdXA6IGQzLlNlbGVjdGlvbjxTVkdHRWxlbWVudCwgdW5rbm93biwgSFRNTEVsZW1lbnQsIHVua25vd24+LCBkYXRhOiBJRGVmc0xHKTogdm9pZCB7XG4gICAgY29uc3QgZGVmcyA9IGdyb3VwLmFwcGVuZCgnZGVmcycpLmFwcGVuZCgnbGluZWFyR3JhZGllbnQnKS5hdHRyKCdpZCcsIGRhdGEuaWQpLmF0dHIoJ3gxJywgZGF0YS54MSkuYXR0cigneTEnLCBkYXRhLnkxKS5hdHRyKCd4MicsIGRhdGEueDIpLmF0dHIoJ3kyJywgZGF0YS55Mik7XG5cbiAgICBkYXRhLnN0b3BUYWdzLmZvckVhY2goKGVsZW0pID0+IHtcbiAgICAgIGRlZnMuYXBwZW5kKCdzdG9wJykuYXR0cignb2Zmc2V0JywgZWxlbS5vZmZzZXQpLmF0dHIoJ3N0eWxlJywgZWxlbS5zdHlsZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURlZnNBbmRGaWx0ZXIoZ3JvdXA6IGQzLlNlbGVjdGlvbjxTVkdHRWxlbWVudCwgdW5rbm93biwgSFRNTEVsZW1lbnQsIHVua25vd24+LCBkYXRhOiBJRGVmc0YpOiB2b2lkIHtcbiAgICBjb25zdCBkZWZzID0gZ3JvdXAuYXBwZW5kKCdkZWZzJykuYXBwZW5kKCdmaWx0ZXInKS5hdHRyKCdpZCcsIGRhdGEuaWQpLmF0dHIoJ3gnLCBkYXRhLngpLmF0dHIoJ3knLCBkYXRhLnkpLmF0dHIoJ2hlaWdodCcsIGRhdGEuaGVpZ2h0KS5hdHRyKCd3aWR0aCcsIGRhdGEud2lkdGgpO1xuXG4gICAgZGF0YS5mZUdhdXNzaWFuVGFncy5mb3JFYWNoKChlbGVtKSA9PiB7XG4gICAgICBkZWZzLmFwcGVuZCgnZmVHYXVzc2lhbkJsdXInKS5hdHRyKCdpbicsIGVsZW0uaW4pLmF0dHIoJ3N0ZERldmlhdGlvbicsIGVsZW0uc3RkRGV2aWF0aW9uKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRGVmc0FuZFJhZGlhbEdyYWRpZW50KGdyb3VwOiBkMy5TZWxlY3Rpb248U1ZHR0VsZW1lbnQsIHVua25vd24sIEhUTUxFbGVtZW50LCB1bmtub3duPiwgZGF0YTogSURlZnNSRyk6IHZvaWQge1xuICAgIGNvbnN0IGRlZnMgPSBncm91cC5hcHBlbmQoJ2RlZnMnKS5hcHBlbmQoJ3JhZGlhbEdyYWRpZW50JykuYXR0cignaWQnLCBkYXRhLmlkKS5hdHRyKCdjeCcsIGRhdGEuY3kpLmF0dHIoJ2N5JywgZGF0YS5jeCkuYXR0cigncicsIGRhdGEucik7XG5cbiAgICBkYXRhLnN0b3BUYWdzLmZvckVhY2goKGVsZW0pID0+IHtcbiAgICAgIGRlZnMuYXBwZW5kKCdzdG9wJykuYXR0cignb2Zmc2V0JywgZWxlbS5vZmZzZXQpLmF0dHIoJ3N0eWxlJywgZWxlbS5zdHlsZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJhZGFyQ2hhcnQoKTogdm9pZCB7XG4gICAgY29uc3QgeyBtYXhWYWx1ZSwgZGF0YXNldHMsIGF0dHJpYnV0ZXMgfSA9IHRoaXMuY29uZmlnO1xuICAgIGNvbnN0IGFsbEF4aXMgPSBbLi4ubmV3IFNldChhdHRyaWJ1dGVzKV0ubWFwKChpKSA9PiBpKTtcbiAgICBjb25zdCB0b3RhbCA9IGFsbEF4aXMubGVuZ3RoO1xuICAgIGNvbnN0IGFuZ2xlU2xpY2UgPSAoTWF0aC5QSSAqIDIpIC8gdG90YWw7XG4gICAgbGV0IE1heFZhbHVlID1cbiAgICAgIGRhdGFzZXRzLmxlbmd0aCA+IDBcbiAgICAgICAgPyBNYXRoLm1heChcbiAgICAgICAgICAgIC4uLmRhdGFzZXRzLnJlZHVjZSgoYSwgaSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gWy4uLmEsIC4uLk9iamVjdC52YWx1ZXMoaS52YWx1ZXMpXTtcbiAgICAgICAgICAgIH0sIFtdKSxcbiAgICAgICAgICApXG4gICAgICAgIDogbWF4VmFsdWU7XG4gICAgTWF4VmFsdWUgPSBNYXhWYWx1ZSA+IDAgPyBNYXhWYWx1ZSA6IDI1O1xuXG4gICAgY29uc3QgclNjYWxlID0gZDMuc2NhbGVMaW5lYXIoKS5yYW5nZShbMCwgMTAwXSkuZG9tYWluKFswLCBNYXhWYWx1ZV0pO1xuXG4gICAgdGhpcy5jcmVhdGVMaW5lKHRoaXMuc3ZnLCBhbGxBeGlzLCBNYXhWYWx1ZSwgYW5nbGVTbGljZSwgclNjYWxlKTtcbiAgICB0aGlzLmNyZWF0ZVRleHQodGhpcy5zdmcsIGFsbEF4aXMsIHJTY2FsZSwgTWF4VmFsdWUsIGFuZ2xlU2xpY2UpO1xuICAgIHRoaXMuY3JlYXRlUG9seWdvbnModGhpcy5zdmcsIGRhdGFzZXRzLCByU2NhbGUsIGFuZ2xlU2xpY2UpO1xuICB9XG59XG4iLCI8ZGl2IGlkPVwidG9vbHRpcFwiPlxuICA8bGliLWFsZXJ0LXBvcHVwIFt0aXRsZV09XCJ0aXRsZUFsZXJ0UG9wdXBcIiBbZGVzY3JpcHRpb25dPVwiZGVzY3JpcHRpb25BbGVydFBvcHVwXCIgW3RpbWVTdGF0ZV09XCJ0aW1lU3RhdGVBbGVydFBvcHVwXCIgW251bWJlcl09XCJudW1iZXJBbGVydFBvcHVwXCI+PC9saWItYWxlcnQtcG9wdXA+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiZDMtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImQzLWNoYXJ0XCIgI0QzQ2hhcnQ+PC9kaXY+XG4gICAgQGlmIChzaG93Q2hhcnRJbmZvKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiY2hhcnRJbmZvXCI+XG4gICAgICAgIEBpZiAoZGF0YXNldHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRhY2hhcnRcIj5cbiAgICAgICAgICAgIEBmb3IgKGRhdGFzZXQgb2YgZGF0YXNldHM7IGxldCBqID0gJGluZGV4OyB0cmFjayBkYXRhc2V0KSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWdlbmQtaXRlbVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgW3N0eWxlLmJvcmRlcl09XCInNXB4IHNvbGlkICcgKyBwb2x5Z29uX2NvbG9ycz8uW2pdPy52YWx1ZVwiIFtzdHlsZS5ib3hTaGFkb3ddPVwiJzBweCAwcHggMTJweCAnICsgcG9seWdvbl9jb2xvcnM/LltqXT8udmFsdWVcIiBjbGFzcz1cImxlZ2VuZC1jb2xvclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIHt7IGRhdGFzZXQudGl0bGUgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export var Direction;
|
|
2
|
+
(function (Direction) {
|
|
3
|
+
Direction["horizontal"] = "horizontal";
|
|
4
|
+
Direction["vertical"] = "vertical";
|
|
5
|
+
})(Direction || (Direction = {}));
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9uLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtY29tcG9uZW50cy1saWIvc3JjL2xpYi9lbnVtcy9kaXJlY3Rpb24uZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLHNDQUF5QixDQUFBO0lBQ3pCLGtDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIERpcmVjdGlvbiB7XG4gIGhvcml6b250YWwgPSAnaG9yaXpvbnRhbCcsXG4gIHZlcnRpY2FsID0gJ3ZlcnRpY2FsJyxcbn1cbiJdfQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export var FormFieldType;
|
|
2
|
+
(function (FormFieldType) {
|
|
3
|
+
FormFieldType["date"] = "date";
|
|
4
|
+
FormFieldType["text"] = "text";
|
|
5
|
+
FormFieldType["textarea"] = "textarea";
|
|
6
|
+
FormFieldType["typeahead"] = "typeahead";
|
|
7
|
+
FormFieldType["multiselect"] = "multiselect";
|
|
8
|
+
FormFieldType["select"] = "select";
|
|
9
|
+
FormFieldType["checkbox"] = "checkbox";
|
|
10
|
+
FormFieldType["toggle"] = "toggle";
|
|
11
|
+
FormFieldType["radio"] = "radio";
|
|
12
|
+
FormFieldType["textlist"] = "textlist";
|
|
13
|
+
FormFieldType["number"] = "number";
|
|
14
|
+
FormFieldType["message"] = "message";
|
|
15
|
+
FormFieldType["time"] = "time";
|
|
16
|
+
FormFieldType["multifield"] = "multifield";
|
|
17
|
+
FormFieldType["action"] = "action";
|
|
18
|
+
FormFieldType["currency"] = "currency";
|
|
19
|
+
FormFieldType["banner"] = "banner";
|
|
20
|
+
FormFieldType["percentage"] = "percentage";
|
|
21
|
+
FormFieldType["multiselectdropdown"] = "multiselectdropdown";
|
|
22
|
+
FormFieldType["hyperlink"] = "hyperlink";
|
|
23
|
+
FormFieldType["injectable"] = "injectable";
|
|
24
|
+
FormFieldType["datetime"] = "datetime";
|
|
25
|
+
FormFieldType["rating"] = "rating";
|
|
26
|
+
FormFieldType["incrementer"] = "incrementer";
|
|
27
|
+
FormFieldType["range"] = "range";
|
|
28
|
+
FormFieldType["password"] = "password";
|
|
29
|
+
})(FormFieldType || (FormFieldType = {}));
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGFzaGJvYXJkLWNvbXBvbmVudHMtbGliL3NyYy9saWIvZW51bXMvZm9ybS1maWVsZC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGFBMkJYO0FBM0JELFdBQVksYUFBYTtJQUN2Qiw4QkFBYSxDQUFBO0lBQ2IsOEJBQWEsQ0FBQTtJQUNiLHNDQUFxQixDQUFBO0lBQ3JCLHdDQUF1QixDQUFBO0lBQ3ZCLDRDQUEyQixDQUFBO0lBQzNCLGtDQUFpQixDQUFBO0lBQ2pCLHNDQUFxQixDQUFBO0lBQ3JCLGtDQUFpQixDQUFBO0lBQ2pCLGdDQUFlLENBQUE7SUFDZixzQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBaUIsQ0FBQTtJQUNqQixvQ0FBbUIsQ0FBQTtJQUNuQiw4QkFBYSxDQUFBO0lBQ2IsMENBQXlCLENBQUE7SUFDekIsa0NBQWlCLENBQUE7SUFDakIsc0NBQXFCLENBQUE7SUFDckIsa0NBQWlCLENBQUE7SUFDakIsMENBQXlCLENBQUE7SUFDekIsNERBQTJDLENBQUE7SUFDM0Msd0NBQXVCLENBQUE7SUFDdkIsMENBQXlCLENBQUE7SUFDekIsc0NBQXFCLENBQUE7SUFDckIsa0NBQWlCLENBQUE7SUFDakIsNENBQTJCLENBQUE7SUFDM0IsZ0NBQWUsQ0FBQTtJQUNmLHNDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUEzQlcsYUFBYSxLQUFiLGFBQWEsUUEyQnhCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRm9ybUZpZWxkVHlwZSB7XHJcbiAgZGF0ZSA9ICdkYXRlJyxcclxuICB0ZXh0ID0gJ3RleHQnLFxyXG4gIHRleHRhcmVhID0gJ3RleHRhcmVhJyxcclxuICB0eXBlYWhlYWQgPSAndHlwZWFoZWFkJyxcclxuICBtdWx0aXNlbGVjdCA9ICdtdWx0aXNlbGVjdCcsXHJcbiAgc2VsZWN0ID0gJ3NlbGVjdCcsXHJcbiAgY2hlY2tib3ggPSAnY2hlY2tib3gnLFxyXG4gIHRvZ2dsZSA9ICd0b2dnbGUnLFxyXG4gIHJhZGlvID0gJ3JhZGlvJyxcclxuICB0ZXh0bGlzdCA9ICd0ZXh0bGlzdCcsXHJcbiAgbnVtYmVyID0gJ251bWJlcicsXHJcbiAgbWVzc2FnZSA9ICdtZXNzYWdlJyxcclxuICB0aW1lID0gJ3RpbWUnLFxyXG4gIG11bHRpZmllbGQgPSAnbXVsdGlmaWVsZCcsXHJcbiAgYWN0aW9uID0gJ2FjdGlvbicsXHJcbiAgY3VycmVuY3kgPSAnY3VycmVuY3knLFxyXG4gIGJhbm5lciA9ICdiYW5uZXInLFxyXG4gIHBlcmNlbnRhZ2UgPSAncGVyY2VudGFnZScsXHJcbiAgbXVsdGlzZWxlY3Rkcm9wZG93biA9ICdtdWx0aXNlbGVjdGRyb3Bkb3duJyxcclxuICBoeXBlcmxpbmsgPSAnaHlwZXJsaW5rJyxcclxuICBpbmplY3RhYmxlID0gJ2luamVjdGFibGUnLFxyXG4gIGRhdGV0aW1lID0gJ2RhdGV0aW1lJyxcclxuICByYXRpbmcgPSAncmF0aW5nJyxcclxuICBpbmNyZW1lbnRlciA9ICdpbmNyZW1lbnRlcicsXHJcbiAgcmFuZ2UgPSAncmFuZ2UnLFxyXG4gIHBhc3N3b3JkID0gJ3Bhc3N3b3JkJyxcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export var LocalStorageKeys;
|
|
2
|
+
(function (LocalStorageKeys) {
|
|
3
|
+
LocalStorageKeys["LongPressForSendImmediately"] = "longPressForSendImmediately";
|
|
4
|
+
})(LocalStorageKeys || (LocalStorageKeys = {}));
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS1rZXlzLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtY29tcG9uZW50cy1saWIvc3JjL2xpYi9lbnVtcy9sb2NhbC1zdG9yYWdlLWtleXMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxnQkFFWDtBQUZELFdBQVksZ0JBQWdCO0lBQzFCLCtFQUEyRCxDQUFBO0FBQzdELENBQUMsRUFGVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBRTNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTG9jYWxTdG9yYWdlS2V5cyB7XG4gIExvbmdQcmVzc0ZvclNlbmRJbW1lZGlhdGVseSA9ICdsb25nUHJlc3NGb3JTZW5kSW1tZWRpYXRlbHknLFxufVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export var StatusTypes;
|
|
2
|
+
(function (StatusTypes) {
|
|
3
|
+
StatusTypes["Info"] = "info";
|
|
4
|
+
StatusTypes["Warning"] = "warning";
|
|
5
|
+
StatusTypes["Error"] = "error";
|
|
6
|
+
StatusTypes["Success"] = "success";
|
|
7
|
+
})(StatusTypes || (StatusTypes = {}));
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGFzaGJvYXJkLWNvbXBvbmVudHMtbGliL3NyYy9saWIvZW51bXMvc3RhdHVzLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFdBS1g7QUFMRCxXQUFZLFdBQVc7SUFDckIsNEJBQWEsQ0FBQTtJQUNiLGtDQUFtQixDQUFBO0lBQ25CLDhCQUFlLENBQUE7SUFDZixrQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsV0FBVyxLQUFYLFdBQVcsUUFLdEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBTdGF0dXNUeXBlcyB7XHJcbiAgSW5mbyA9ICdpbmZvJyxcclxuICBXYXJuaW5nID0gJ3dhcm5pbmcnLFxyXG4gIEVycm9yID0gJ2Vycm9yJyxcclxuICBTdWNjZXNzID0gJ3N1Y2Nlc3MnLFxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9wdGlvbi10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC1jb21wb25lbnRzLWxpYi9zcmMvbGliL21vZGVsL3NlbGVjdC1vcHRpb24tdGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb24gfSBmcm9tICdAbmFuaXRlbmluamEvaW9uaWMtbGliJztcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RPcHRpb25XaXRoVGVtcGxhdGU8VD4gZXh0ZW5kcyBTZWxlY3RPcHRpb248VD4ge1xuICBhZGRPblRlbXBsYXRlUmVmPzogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xufVxuIl19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* operations.ts - Contains common operations utility functions.
|
|
3
|
+
*
|
|
4
|
+
* @file This file exports utility functions for common operations.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Generates a random string of the specified length.
|
|
8
|
+
*
|
|
9
|
+
* @param {number} [length=10] - The length of the random string to generate. Default is 10.
|
|
10
|
+
* @return {string} A randomly generated string.
|
|
11
|
+
*/
|
|
12
|
+
function randomString(length = 10) {
|
|
13
|
+
return Array.from({ length }, () => Math.random().toString(36).charAt(2)).join('');
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Collection of common operations utility functions.
|
|
17
|
+
*/
|
|
18
|
+
export const CommonOperations = { randomString };
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC1jb21wb25lbnRzLWxpYi9zcmMvbGliL29wZXJhdGlvbnMvb3BlcmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUg7Ozs7O0dBS0c7QUFDSCxTQUFTLFlBQVksQ0FBQyxTQUFpQixFQUFFO0lBQ3ZDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3JGLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEVBQUUsWUFBWSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIG9wZXJhdGlvbnMudHMgLSBDb250YWlucyBjb21tb24gb3BlcmF0aW9ucyB1dGlsaXR5IGZ1bmN0aW9ucy5cbiAqXG4gKiBAZmlsZSBUaGlzIGZpbGUgZXhwb3J0cyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgY29tbW9uIG9wZXJhdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSByYW5kb20gc3RyaW5nIG9mIHRoZSBzcGVjaWZpZWQgbGVuZ3RoLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPTEwXSAtIFRoZSBsZW5ndGggb2YgdGhlIHJhbmRvbSBzdHJpbmcgdG8gZ2VuZXJhdGUuIERlZmF1bHQgaXMgMTAuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IEEgcmFuZG9tbHkgZ2VuZXJhdGVkIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gcmFuZG9tU3RyaW5nKGxlbmd0aDogbnVtYmVyID0gMTApOiBzdHJpbmcge1xuICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9LCAoKSA9PiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5jaGFyQXQoMikpLmpvaW4oJycpO1xufVxuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgY29tbW9uIG9wZXJhdGlvbnMgdXRpbGl0eSBmdW5jdGlvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBDb21tb25PcGVyYXRpb25zID0geyByYW5kb21TdHJpbmcgfTtcbiJdfQ==
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ArraySortPipe {
|
|
4
|
+
transform(array, field, type = 'ASC') {
|
|
5
|
+
if (!Array.isArray(array)) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
switch (type.toUpperCase()) {
|
|
9
|
+
case 'ASC': {
|
|
10
|
+
array.sort((a, b) => {
|
|
11
|
+
if (a[field] < b[field]) {
|
|
12
|
+
return -1;
|
|
13
|
+
}
|
|
14
|
+
else if (a[field] > b[field]) {
|
|
15
|
+
return 1;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return 0;
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
case 'DSC': {
|
|
24
|
+
array.sort((a, b) => {
|
|
25
|
+
if (a[field] > b[field]) {
|
|
26
|
+
return -1;
|
|
27
|
+
}
|
|
28
|
+
else if (a[field] < b[field]) {
|
|
29
|
+
return 1;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
return 0;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return array;
|
|
39
|
+
}
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ArraySortPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
41
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ArraySortPipe, name: "sort" }); }
|
|
42
|
+
}
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ArraySortPipe, decorators: [{
|
|
44
|
+
type: Pipe,
|
|
45
|
+
args: [{
|
|
46
|
+
name: 'sort',
|
|
47
|
+
}]
|
|
48
|
+
}] });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuc29ydC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGFzaGJvYXJkLWNvbXBvbmVudHMtbGliL3NyYy9saWIvcGlwZXMvYXJyYXktc29ydC9hcnJheS5zb3J0LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFNBQVMsQ0FBQyxLQUFVLEVBQUUsS0FBYSxFQUFFLE9BQWUsS0FBSztRQUN2RCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELFFBQVEsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDM0IsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNYLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsQ0FBTSxFQUFFLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUN4QixPQUFPLENBQUMsQ0FBQyxDQUFDO29CQUNaLENBQUM7eUJBQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7d0JBQy9CLE9BQU8sQ0FBQyxDQUFDO29CQUNYLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixPQUFPLENBQUMsQ0FBQztvQkFDWCxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNILE1BQU07WUFDUixDQUFDO1lBQ0QsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNYLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsQ0FBTSxFQUFFLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUN4QixPQUFPLENBQUMsQ0FBQyxDQUFDO29CQUNaLENBQUM7eUJBQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7d0JBQy9CLE9BQU8sQ0FBQyxDQUFDO29CQUNYLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixPQUFPLENBQUMsQ0FBQztvQkFDWCxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNILE1BQU07WUFDUixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzsrR0FoQ1UsYUFBYTs2R0FBYixhQUFhOzs0RkFBYixhQUFhO2tCQUh6QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxNQUFNO2lCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdzb3J0Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlTb3J0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oYXJyYXk6IGFueSwgZmllbGQ6IHN0cmluZywgdHlwZTogc3RyaW5nID0gJ0FTQycpOiBhbnlbXSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGFycmF5KSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHN3aXRjaCAodHlwZS50b1VwcGVyQ2FzZSgpKSB7XG4gICAgICBjYXNlICdBU0MnOiB7XG4gICAgICAgIGFycmF5LnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKGFbZmllbGRdIDwgYltmaWVsZF0pIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGFbZmllbGRdID4gYltmaWVsZF0pIHtcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0RTQyc6IHtcbiAgICAgICAgYXJyYXkuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoYVtmaWVsZF0gPiBiW2ZpZWxkXSkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYVtmaWVsZF0gPCBiW2ZpZWxkXSkge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYXJyYXk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class CountNonEmptyFieldsPipe {
|
|
4
|
+
transform(records) {
|
|
5
|
+
return Object.values(records).filter(Boolean).length;
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CountNonEmptyFieldsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
8
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: CountNonEmptyFieldsPipe, name: "countNonEmptyFields" }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CountNonEmptyFieldsPipe, decorators: [{
|
|
11
|
+
type: Pipe,
|
|
12
|
+
args: [{
|
|
13
|
+
name: 'countNonEmptyFields',
|
|
14
|
+
pure: true,
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnQtbm9uLWVtcHR5LWZpZWxkcy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGFzaGJvYXJkLWNvbXBvbmVudHMtbGliL3NyYy9saWIvcGlwZXMvY291bnQtbm9uLWVtcHR5LWZpZWxkcy9jb3VudC1ub24tZW1wdHktZmllbGRzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsU0FBUyxDQUFDLE9BQXNDO1FBQzlDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3ZELENBQUM7K0dBSFUsdUJBQXVCOzZHQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBSm5DLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLHFCQUFxQjtvQkFDM0IsSUFBSSxFQUFFLElBQUk7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2NvdW50Tm9uRW1wdHlGaWVsZHMnLFxuICBwdXJlOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDb3VudE5vbkVtcHR5RmllbGRzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0ocmVjb3JkczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVsbD4pOiBudW1iZXIge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHJlY29yZHMpLmZpbHRlcihCb29sZWFuKS5sZW5ndGg7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import moment from 'moment';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class DateLocalizationPipe {
|
|
5
|
+
transform(value, dateFormat) {
|
|
6
|
+
if (moment.isMoment(value)) {
|
|
7
|
+
return value.format(dateFormat).toString();
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
let parsedDate = moment(value, moment.ISO_8601, true);
|
|
11
|
+
if (!parsedDate.isValid()) {
|
|
12
|
+
// If the value is entered manually by user then parse the value based on the date format
|
|
13
|
+
parsedDate = moment(value, dateFormat, false);
|
|
14
|
+
}
|
|
15
|
+
if (parsedDate.isValid()) {
|
|
16
|
+
return parsedDate.format(dateFormat).toString();
|
|
17
|
+
}
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateLocalizationPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
22
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: DateLocalizationPipe, name: "dateLocalization" }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateLocalizationPipe, decorators: [{
|
|
25
|
+
type: Pipe,
|
|
26
|
+
args: [{
|
|
27
|
+
name: 'dateLocalization',
|
|
28
|
+
pure: true,
|
|
29
|
+
}]
|
|
30
|
+
}] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1sb2NhbGl6YXRpb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC1jb21wb25lbnRzLWxpYi9zcmMvbGliL3BpcGVzL2RhdGUtbG9jYWxpemF0aW9uL2RhdGUtbG9jYWxpemF0aW9uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOztBQU01QixNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFNBQVMsQ0FBQyxLQUE2QixFQUFFLFVBQWtCO1FBQ3pELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7Z0JBQzFCLHlGQUF5RjtnQkFDekYsVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2hELENBQUM7WUFDRCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO2dCQUN6QixPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEQsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7K0dBZlUsb0JBQW9COzZHQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBSmhDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGtCQUFrQjtvQkFDeEIsSUFBSSxFQUFFLElBQUk7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2RhdGVMb2NhbGl6YXRpb24nLFxuICBwdXJlOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlTG9jYWxpemF0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyB8IG1vbWVudC5Nb21lbnQsIGRhdGVGb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKG1vbWVudC5pc01vbWVudCh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5mb3JtYXQoZGF0ZUZvcm1hdCkudG9TdHJpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHBhcnNlZERhdGUgPSBtb21lbnQodmFsdWUsIG1vbWVudC5JU09fODYwMSwgdHJ1ZSk7XG4gICAgICBpZiAoIXBhcnNlZERhdGUuaXNWYWxpZCgpKSB7XG4gICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBlbnRlcmVkIG1hbnVhbGx5IGJ5IHVzZXIgdGhlbiBwYXJzZSB0aGUgdmFsdWUgYmFzZWQgb24gdGhlIGRhdGUgZm9ybWF0XG4gICAgICAgIHBhcnNlZERhdGUgPSBtb21lbnQodmFsdWUsIGRhdGVGb3JtYXQsIGZhbHNlKTtcbiAgICAgIH1cbiAgICAgIGlmIChwYXJzZWREYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICByZXR1cm4gcGFyc2VkRGF0ZS5mb3JtYXQoZGF0ZUZvcm1hdCkudG9TdHJpbmcoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Injectable, Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ngx-translate/core";
|
|
4
|
+
export class FallbackTranslatePipe {
|
|
5
|
+
constructor(translate) {
|
|
6
|
+
this.translate = translate;
|
|
7
|
+
}
|
|
8
|
+
transform(key, fallback) {
|
|
9
|
+
const translated = this.translate.instant(key);
|
|
10
|
+
return translated === key ? fallback : translated;
|
|
11
|
+
}
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FallbackTranslatePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
13
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FallbackTranslatePipe, isStandalone: true, name: "fallbackTranslate" }); }
|
|
14
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FallbackTranslatePipe, providedIn: 'root' }); }
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FallbackTranslatePipe, decorators: [{
|
|
17
|
+
type: Pipe,
|
|
18
|
+
args: [{
|
|
19
|
+
name: 'fallbackTranslate',
|
|
20
|
+
standalone: true,
|
|
21
|
+
}]
|
|
22
|
+
}, {
|
|
23
|
+
type: Injectable,
|
|
24
|
+
args: [{
|
|
25
|
+
providedIn: 'root',
|
|
26
|
+
}]
|
|
27
|
+
}], ctorParameters: () => [{ type: i1.TranslateService }] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFsbGJhY2stdHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtY29tcG9uZW50cy1saWIvc3JjL2xpYi9waXBlcy9mYWxsYmFjay10cmFuc2xhdGUvZmFsbGJhY2stdHJhbnNsYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFVaEUsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUFHLENBQUM7SUFFbkQsU0FBUyxDQUFDLEdBQVcsRUFBRSxRQUFnQjtRQUNyQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQyxPQUFPLFVBQVUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQ3BELENBQUM7K0dBTlUscUJBQXFCOzZHQUFyQixxQkFBcUI7bUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzs0RkFFUCxxQkFBcUI7a0JBUGpDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLG1CQUFtQjtvQkFDekIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOztrQkFDQSxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQFBpcGUoe1xuICBuYW1lOiAnZmFsbGJhY2tUcmFuc2xhdGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGYWxsYmFja1RyYW5zbGF0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgdHJhbnNmb3JtKGtleTogc3RyaW5nLCBmYWxsYmFjazogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cmFuc2xhdGVkID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChrZXkpO1xuICAgIHJldHVybiB0cmFuc2xhdGVkID09PSBrZXkgPyBmYWxsYmFjayA6IHRyYW5zbGF0ZWQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { formatNumber } from '@angular/common';
|
|
2
|
+
import { Pipe } from '@angular/core';
|
|
3
|
+
import moment from 'moment';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../date-localization/date-localization.pipe";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
export class GetDisplayValuePipe {
|
|
8
|
+
constructor(dateLocalizationPipe, currencyPipe) {
|
|
9
|
+
this.dateLocalizationPipe = dateLocalizationPipe;
|
|
10
|
+
this.currencyPipe = currencyPipe;
|
|
11
|
+
}
|
|
12
|
+
transform(data, column, dateFormat, corporateCurrency = 'USD') {
|
|
13
|
+
if ((typeof data != 'boolean' && !data && data !== 0) || !column) {
|
|
14
|
+
return '';
|
|
15
|
+
}
|
|
16
|
+
if (column.controlType === 'SingleSelect' || column.controlType === 'MultiSelect') {
|
|
17
|
+
if (Array.isArray(data)) {
|
|
18
|
+
return data.map((value) => column.values?.find((col) => col.Key === value)?.Value)?.join(', ') ?? '';
|
|
19
|
+
}
|
|
20
|
+
return column.values?.find((col) => col.Key === data)?.Value;
|
|
21
|
+
}
|
|
22
|
+
if (column.controlType === 'AutoComplete' || column.controlType === 'AutoCompleteMulti' || column.controlType === 'MultiField') {
|
|
23
|
+
if (Array.isArray(data)) {
|
|
24
|
+
return data?.map((kv) => kv?.Value)?.join(', ') ?? '';
|
|
25
|
+
}
|
|
26
|
+
return data?.Value;
|
|
27
|
+
}
|
|
28
|
+
if (column.controlType === 'Date') {
|
|
29
|
+
if (moment.isMoment(data)) {
|
|
30
|
+
return this.dateLocalizationPipe.transform(data, dateFormat);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
return this.dateLocalizationPipe.transform(data?.toString() ?? '', dateFormat);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (column.controlType === 'Percent') {
|
|
37
|
+
return `${formatNumber(data, 'en-US', '1.0-0')}%`;
|
|
38
|
+
}
|
|
39
|
+
if (column.controlType === 'Currency') {
|
|
40
|
+
return this.currencyPipe.transform(Math.round(data), corporateCurrency, 'symbol', '1.0-0');
|
|
41
|
+
}
|
|
42
|
+
if (column.controlType === 'Boolean') {
|
|
43
|
+
return data ? 'Yes' : 'No';
|
|
44
|
+
}
|
|
45
|
+
if (data.en)
|
|
46
|
+
return data.en;
|
|
47
|
+
return data.toString();
|
|
48
|
+
}
|
|
49
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GetDisplayValuePipe, deps: [{ token: i1.DateLocalizationPipe }, { token: i2.CurrencyPipe }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
50
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: GetDisplayValuePipe, name: "getDisplayValue" }); }
|
|
51
|
+
}
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GetDisplayValuePipe, decorators: [{
|
|
53
|
+
type: Pipe,
|
|
54
|
+
args: [{
|
|
55
|
+
name: 'getDisplayValue',
|
|
56
|
+
pure: true,
|
|
57
|
+
}]
|
|
58
|
+
}], ctorParameters: () => [{ type: i1.DateLocalizationPipe }, { type: i2.CurrencyPipe }] });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWRpc3BsYXktdmFsdWUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC1jb21wb25lbnRzLWxpYi9zcmMvbGliL3BpcGVzL2dldC1kaXNwbGF5LXZhbHVlL2dldC1kaXNwbGF5LXZhbHVlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7QUFRNUIsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUNVLG9CQUEwQyxFQUMxQyxZQUEwQjtRQUQxQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQ2pDLENBQUM7SUFFSixTQUFTLENBQUMsSUFBUyxFQUFFLE1BQWtCLEVBQUUsVUFBa0IsRUFBRSxvQkFBNEIsS0FBSztRQUM1RixJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksU0FBUyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pFLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxjQUFjLElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxhQUFhLEVBQUUsQ0FBQztZQUNsRixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZHLENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUMvRCxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLGNBQWMsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLG1CQUFtQixJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDL0gsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLE9BQU8sSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEQsQ0FBQztZQUNELE9BQU8sSUFBSSxFQUFFLEtBQUssQ0FBQztRQUNyQixDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ2xDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUMxQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQy9ELENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNqRixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyQyxPQUFPLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUNwRCxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDN0IsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7UUFFNUIsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQzsrR0FoRFUsbUJBQW1COzZHQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBSi9CLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGlCQUFpQjtvQkFDdkIsSUFBSSxFQUFFLElBQUk7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXJyZW5jeVBpcGUsIGZvcm1hdE51bWJlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBHcmlkQ29sdW1uIH0gZnJvbSAnQG5hbml0ZW5pbmphL2lvbmljLWxpYic7XG5pbXBvcnQgeyBEYXRlTG9jYWxpemF0aW9uUGlwZSB9IGZyb20gJy4uL2RhdGUtbG9jYWxpemF0aW9uL2RhdGUtbG9jYWxpemF0aW9uLnBpcGUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdnZXREaXNwbGF5VmFsdWUnLFxuICBwdXJlOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBHZXREaXNwbGF5VmFsdWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGF0ZUxvY2FsaXphdGlvblBpcGU6IERhdGVMb2NhbGl6YXRpb25QaXBlLFxuICAgIHByaXZhdGUgY3VycmVuY3lQaXBlOiBDdXJyZW5jeVBpcGUsXG4gICkge31cblxuICB0cmFuc2Zvcm0oZGF0YTogYW55LCBjb2x1bW46IEdyaWRDb2x1bW4sIGRhdGVGb3JtYXQ6IHN0cmluZywgY29ycG9yYXRlQ3VycmVuY3k6IHN0cmluZyA9ICdVU0QnKTogc3RyaW5nIHtcbiAgICBpZiAoKHR5cGVvZiBkYXRhICE9ICdib29sZWFuJyAmJiAhZGF0YSAmJiBkYXRhICE9PSAwKSB8fCAhY29sdW1uKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgaWYgKGNvbHVtbi5jb250cm9sVHlwZSA9PT0gJ1NpbmdsZVNlbGVjdCcgfHwgY29sdW1uLmNvbnRyb2xUeXBlID09PSAnTXVsdGlTZWxlY3QnKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICByZXR1cm4gZGF0YS5tYXAoKHZhbHVlKSA9PiBjb2x1bW4udmFsdWVzPy5maW5kKChjb2wpID0+IGNvbC5LZXkgPT09IHZhbHVlKT8uVmFsdWUpPy5qb2luKCcsICcpID8/ICcnO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbHVtbi52YWx1ZXM/LmZpbmQoKGNvbCkgPT4gY29sLktleSA9PT0gZGF0YSk/LlZhbHVlO1xuICAgIH1cblxuICAgIGlmIChjb2x1bW4uY29udHJvbFR5cGUgPT09ICdBdXRvQ29tcGxldGUnIHx8IGNvbHVtbi5jb250cm9sVHlwZSA9PT0gJ0F1dG9Db21wbGV0ZU11bHRpJyB8fCBjb2x1bW4uY29udHJvbFR5cGUgPT09ICdNdWx0aUZpZWxkJykge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIGRhdGE/Lm1hcCgoa3YpID0+IGt2Py5WYWx1ZSk/LmpvaW4oJywgJykgPz8gJyc7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGF0YT8uVmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKGNvbHVtbi5jb250cm9sVHlwZSA9PT0gJ0RhdGUnKSB7XG4gICAgICBpZiAobW9tZW50LmlzTW9tZW50KGRhdGEpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGVMb2NhbGl6YXRpb25QaXBlLnRyYW5zZm9ybShkYXRhLCBkYXRlRm9ybWF0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGVMb2NhbGl6YXRpb25QaXBlLnRyYW5zZm9ybShkYXRhPy50b1N0cmluZygpID8/ICcnLCBkYXRlRm9ybWF0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY29sdW1uLmNvbnRyb2xUeXBlID09PSAnUGVyY2VudCcpIHtcbiAgICAgIHJldHVybiBgJHtmb3JtYXROdW1iZXIoZGF0YSwgJ2VuLVVTJywgJzEuMC0wJyl9JWA7XG4gICAgfVxuXG4gICAgaWYgKGNvbHVtbi5jb250cm9sVHlwZSA9PT0gJ0N1cnJlbmN5Jykge1xuICAgICAgcmV0dXJuIHRoaXMuY3VycmVuY3lQaXBlLnRyYW5zZm9ybShNYXRoLnJvdW5kKGRhdGEpLCBjb3Jwb3JhdGVDdXJyZW5jeSwgJ3N5bWJvbCcsICcxLjAtMCcpO1xuICAgIH1cblxuICAgIGlmIChjb2x1bW4uY29udHJvbFR5cGUgPT09ICdCb29sZWFuJykge1xuICAgICAgcmV0dXJuIGRhdGEgPyAnWWVzJyA6ICdObyc7XG4gICAgfVxuXG4gICAgaWYgKGRhdGEuZW4pIHJldHVybiBkYXRhLmVuO1xuXG4gICAgcmV0dXJuIGRhdGEudG9TdHJpbmcoKTtcbiAgfVxufVxuIl19
|