@naniteninja/dashboard-components-lib 1.0.0
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 +98 -0
- package/esm2022/lib/components/calendar/agenda/agenda.module.mjs +24 -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/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 +307 -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 +170 -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/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.lookup.mjs +18 -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 +122 -0
- package/fesm2022/naniteninja-dashboard-components-lib.mjs +4334 -0
- package/fesm2022/naniteninja-dashboard-components-lib.mjs.map +1 -0
- package/index.d.ts +5 -0
- 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 +22 -0
- package/lib/components/calendar/agenda/agenda.module.d.ts +12 -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/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 +73 -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/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/default-spider-config.lookup.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.0.tgz +0 -0
- package/package.json +69 -0
- package/public-api.d.ts +121 -0
- package/src/assets/auto-delegation-modal/cross.svg +17 -0
- package/src/assets/auto-delegation-modal/menu.svg +3 -0
- package/src/assets/auto-delegation-modal/timer-center-dot.svg +25 -0
- package/src/assets/auto-delegation-modal/user-profile.svg +9 -0
- package/src/assets/circle-progress/circle-progress-1.svg +159 -0
- package/src/assets/circle-progress/circle-progress-2.svg +155 -0
- package/src/assets/circle-progress/circle-progress-3.svg +25 -0
- package/src/assets/circle-progress/circle-progress.svg +159 -0
- package/src/assets/client-match-overview/background-eclipse.svg +13 -0
- package/src/assets/fonts/calistoga/Calistoga-Regular.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-Black.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-BlackItalic.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-Bold.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-BoldItalic.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-ExtraBold.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-ExtraBoldItalic.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-Heavy.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-HeavyItalic.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-Light.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-LightItalic.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-Medium.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-MediumItalic.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-Regular.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-RegularItalic.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-SemiBold.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-SemiBoldItalic.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-Thin.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-ThinItalic.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-UltraLight.ttf +0 -0
- package/src/assets/fonts/gilroy/Gilroy-UltraLightItalic.ttf +0 -0
- package/src/assets/grid/icons/filter-button.svg +47 -0
- package/src/assets/grid/images/chips-background-shadow.svg +34 -0
- package/src/assets/icons/back-v2.svg +14 -0
- package/src/assets/icons/checkbox/checkbox-off.svg +72 -0
- package/src/assets/icons/checkbox/checkbox-on.svg +113 -0
- package/src/assets/icons/checkmark-button.svg +72 -0
- package/src/assets/icons/checkmark.svg +7 -0
- package/src/assets/icons/close-icon.svg +3 -0
- package/src/assets/icons/compose-matcher/notes.svg +4 -0
- package/src/assets/icons/compose-matcher/profile.svg +4 -0
- package/src/assets/icons/compose-matcher/suggest.svg +3 -0
- package/src/assets/icons/compose-matcher/visual.svg +3 -0
- package/src/assets/icons/default-profile.svg +23 -0
- package/src/assets/icons/defualt.svg +5 -0
- package/src/assets/icons/first-page.svg +7 -0
- package/src/assets/icons/incrementer/minus.svg +3 -0
- package/src/assets/icons/incrementer/plus.svg +3 -0
- package/src/assets/icons/info.svg +5 -0
- package/src/assets/icons/last-page.svg +7 -0
- package/src/assets/icons/minus.svg +3 -0
- package/src/assets/icons/next-page.svg +6 -0
- package/src/assets/icons/plus.svg +3 -0
- package/src/assets/icons/popup-defualt.svg +34 -0
- package/src/assets/icons/prev-page.svg +6 -0
- package/src/assets/icons/send-icon.svg +4 -0
- package/src/assets/icons/shake.svg +74 -0
- package/src/assets/icons/thumbs-up.svg +28 -0
- package/src/assets/nsfw/blazeface.bundle.js +2 -0
- package/src/assets/nsfw/model/group1-shard1of1 +0 -0
- package/src/assets/nsfw/model/model.json +4085 -0
- package/src/assets/nsfw/nsfwjs.bundle.js +2 -0
- package/src/assets/nsfw/tf.bundle.js +2 -0
- package/src/assets/scheduler/accept.svg +3 -0
- package/src/assets/scheduler/accept_active.svg +3 -0
- package/src/assets/scheduler/arrow.svg +13 -0
- package/src/assets/scheduler/cancel.svg +3 -0
- package/src/assets/scheduler/cancel_active.svg +3 -0
- package/src/assets/scheduler/heart.svg +18 -0
- package/src/assets/trait-visual/force-directed-graph.png +0 -0
- package/src/lib/shared-styles/common/_colors.scss +30 -0
- package/src/lib/shared-styles/common/animations.scss +48 -0
- package/src/lib/shared-styles/common/base-input-field.scss +132 -0
- package/src/lib/shared-styles/common/buttons.scss +152 -0
- package/src/lib/shared-styles/common/cards.scss +163 -0
- package/src/lib/shared-styles/common/client-dash.scss +5 -0
- package/src/lib/shared-styles/common/date-picker.scss +179 -0
- package/src/lib/shared-styles/common/draggable-scroll-and-marquee.scss +34 -0
- package/src/lib/shared-styles/common/feedback.scss +157 -0
- package/src/lib/shared-styles/common/fonts.scss +3 -0
- package/src/lib/shared-styles/common/information-card.scss +56 -0
- package/src/lib/shared-styles/common/input.scss +110 -0
- package/src/lib/shared-styles/common/lib-styles-utils.scss +157 -0
- package/src/lib/shared-styles/common/lists.scss +91 -0
- package/src/lib/shared-styles/common/login.scss +32 -0
- package/src/lib/shared-styles/common/maps.scss +10 -0
- package/src/lib/shared-styles/common/matcher-dash.scss +49 -0
- package/src/lib/shared-styles/common/modal_styles.scss +32 -0
- package/src/lib/shared-styles/common/notifications-list.scss +9 -0
- package/src/lib/shared-styles/common/overrides.scss +6 -0
- package/src/lib/shared-styles/common/pulse.scss +26 -0
- package/src/lib/shared-styles/common/swiper.scss +5 -0
- package/src/lib/shared-styles/common/tab-menu.scss +74 -0
- package/src/lib/shared-styles/common/theme.scss +55 -0
- package/src/lib/shared-styles/common/typography.scss +121 -0
- package/src/lib/shared-styles/common/user-menu.scss +129 -0
- package/src/lib/shared-styles/fonts/calistoga.font.scss +6 -0
- package/src/lib/shared-styles/fonts/gilroy.font.scss +160 -0
- package/src/lib/shared-styles/images/compress.png +0 -0
- package/src/lib/shared-styles/images/expand.png +0 -0
- package/src/lib/shared-styles/styles.scss +25 -0
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, inject, Input, Output, Renderer2, ViewChild, } from '@angular/core';
|
|
2
|
+
import { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import 'emoji-picker-element';
|
|
4
|
+
import { first } from 'rxjs';
|
|
5
|
+
import { LibMessageModalComponent } from '../../shared/shared/message-modal/message-modal.component';
|
|
6
|
+
import { PopupModalService } from '@naniteninja/ionic-lib';
|
|
7
|
+
import { ChatService } from './chat.service';
|
|
8
|
+
import { SenderTypes } from './enums/sender-types.enum';
|
|
9
|
+
import { SendMessageType } from './interfaces/type-send-message.enum';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/common";
|
|
12
|
+
import * as i2 from "@naniteninja/ionic-lib";
|
|
13
|
+
import * as i3 from "@angular/forms";
|
|
14
|
+
import * as i4 from "./gif-selector/gif-selector.component";
|
|
15
|
+
import * as i5 from "ngx-infinite-scroll";
|
|
16
|
+
import * as i6 from "@ngx-translate/core";
|
|
17
|
+
export class ChatComponent {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.default = false;
|
|
20
|
+
this.responseTime = '05h 04m 35s';
|
|
21
|
+
// whether gifs as a message should be allowed or not
|
|
22
|
+
this.includeGifMessage = true;
|
|
23
|
+
// whether timestamp styles should be allowed or not
|
|
24
|
+
this.includeTime = true;
|
|
25
|
+
// max length for textarea input
|
|
26
|
+
this.maxLength = 100;
|
|
27
|
+
this.enableGifPicker = false;
|
|
28
|
+
// send message emitter
|
|
29
|
+
this.sendMessage = new EventEmitter();
|
|
30
|
+
// scroller-up event to get older messages
|
|
31
|
+
this.getMessages = new EventEmitter();
|
|
32
|
+
this.disabled = false;
|
|
33
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
34
|
+
this.elementRef = inject(ElementRef);
|
|
35
|
+
this.popupModalService = inject(PopupModalService);
|
|
36
|
+
this.chatService = inject(ChatService);
|
|
37
|
+
this.renderer = inject(Renderer2);
|
|
38
|
+
this.scrollThreshold = 200;
|
|
39
|
+
this.messages = [];
|
|
40
|
+
this.textControl = new FormControl('');
|
|
41
|
+
this.base64Image = null;
|
|
42
|
+
this.emojiVisibility = false;
|
|
43
|
+
this.gifVisibility = false;
|
|
44
|
+
this.isAtStartChat = false;
|
|
45
|
+
this.emojiPickerOpened = false;
|
|
46
|
+
this.pos = '';
|
|
47
|
+
this.throttle = 0;
|
|
48
|
+
this.distance = 0;
|
|
49
|
+
this.ModalComponent = LibMessageModalComponent;
|
|
50
|
+
this.documentClickListener = null;
|
|
51
|
+
}
|
|
52
|
+
// Pre-filled input value
|
|
53
|
+
set inputValue(value) {
|
|
54
|
+
if (value) {
|
|
55
|
+
this.textControl.setValue(value);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// interface for messages to groupm them in dates
|
|
59
|
+
set dateMessages(value) {
|
|
60
|
+
this.messages = this.chatService.transformMessages(value);
|
|
61
|
+
}
|
|
62
|
+
ngOnInit() {
|
|
63
|
+
if (!this.prospectJoinDate) {
|
|
64
|
+
this.prospectJoinDate = null;
|
|
65
|
+
}
|
|
66
|
+
this.chatService.isLongPressForSendImmediately().subscribe({
|
|
67
|
+
next: (res) => {
|
|
68
|
+
this.longPressEnabled = res;
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
if (this.disabled) {
|
|
72
|
+
this.textControl.disable();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
ngOnDestroy() {
|
|
76
|
+
this.removeEmojiPickerClickListener();
|
|
77
|
+
}
|
|
78
|
+
ngAfterViewInit() {
|
|
79
|
+
if (this.emojiPickerConfig?.style) {
|
|
80
|
+
if (this.emojiPickerRef?.nativeElement) {
|
|
81
|
+
const style = document.createElement('style');
|
|
82
|
+
style.textContent = this.emojiPickerConfig.style;
|
|
83
|
+
this.emojiPickerRef.nativeElement.shadowRoot.appendChild(style);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
this.scrollToBottom();
|
|
87
|
+
}
|
|
88
|
+
ngOnChanges(changes) {
|
|
89
|
+
if (!this.scrollableContainer)
|
|
90
|
+
return;
|
|
91
|
+
const container = this.scrollableContainer.nativeElement;
|
|
92
|
+
const scrollTop = container.scrollTop;
|
|
93
|
+
const scrollHeight = container.scrollHeight;
|
|
94
|
+
const clientHeight = container.clientHeight;
|
|
95
|
+
if (!(scrollTop < scrollHeight - clientHeight - this.scrollThreshold)) {
|
|
96
|
+
setTimeout(() => {
|
|
97
|
+
this.scrollToBottom();
|
|
98
|
+
}, 200);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
onScrollChats() {
|
|
102
|
+
this.getMessages.emit(true);
|
|
103
|
+
}
|
|
104
|
+
handleScrollNewMessage() {
|
|
105
|
+
setTimeout(() => {
|
|
106
|
+
if (!this.isAtStartChat)
|
|
107
|
+
this.scrollToBottom();
|
|
108
|
+
}, 200);
|
|
109
|
+
}
|
|
110
|
+
onScrollMessages(event) {
|
|
111
|
+
const container = this.scrollableContainer.nativeElement;
|
|
112
|
+
const scrollTop = container.scrollTop;
|
|
113
|
+
const scrollHeight = container.scrollHeight;
|
|
114
|
+
const clientHeight = container.clientHeight;
|
|
115
|
+
this.isAtStartChat = scrollTop < scrollHeight - clientHeight - this.scrollThreshold;
|
|
116
|
+
}
|
|
117
|
+
scrollToBottom() {
|
|
118
|
+
const container = this.scrollableContainer.nativeElement;
|
|
119
|
+
container.scrollTop = container.scrollHeight;
|
|
120
|
+
}
|
|
121
|
+
onEmojiclick(event) {
|
|
122
|
+
const emoji = event.detail.unicode;
|
|
123
|
+
if (this.chatInput.inputFieldRef) {
|
|
124
|
+
const textAreaElement = this.chatInput.inputFieldRef.nativeElement;
|
|
125
|
+
const start = textAreaElement.selectionStart ?? 0;
|
|
126
|
+
const end = textAreaElement.selectionEnd ?? 0;
|
|
127
|
+
const currentText = this.textControl.value || '';
|
|
128
|
+
const newText = currentText.slice(0, start) + emoji + currentText.slice(end);
|
|
129
|
+
this.textControl.setValue(newText);
|
|
130
|
+
// Reposiciona el cursor después del emoji
|
|
131
|
+
setTimeout(() => {
|
|
132
|
+
textAreaElement.focus(); // Asegura que el textarea recupere el foco
|
|
133
|
+
textAreaElement.setSelectionRange(start + emoji.length, start + emoji.length);
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
handleEmojiPickerClick() {
|
|
138
|
+
if (this.default) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
this.emojiPickerOpened = true;
|
|
142
|
+
if (this.gifVisibility) {
|
|
143
|
+
this.gifVisibility = !this.gifVisibility;
|
|
144
|
+
}
|
|
145
|
+
this.emojiVisibility = !this.emojiVisibility;
|
|
146
|
+
if (this.gifVisibility || this.emojiVisibility) {
|
|
147
|
+
this.setupEmojiPickerClickListener();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
handleGifPickerClick() {
|
|
151
|
+
if (this.emojiVisibility) {
|
|
152
|
+
this.emojiVisibility = !this.emojiVisibility;
|
|
153
|
+
}
|
|
154
|
+
this.gifVisibility = !this.gifVisibility;
|
|
155
|
+
if (this.gifVisibility || this.emojiVisibility) {
|
|
156
|
+
this.setupEmojiPickerClickListener();
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
onGifClick(url) {
|
|
160
|
+
if (this.default) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
const newMessage = {
|
|
164
|
+
sender: SenderTypes.USER,
|
|
165
|
+
timestamp: new Date(),
|
|
166
|
+
message: '',
|
|
167
|
+
attachments: [
|
|
168
|
+
{
|
|
169
|
+
type: 'gif',
|
|
170
|
+
url,
|
|
171
|
+
},
|
|
172
|
+
],
|
|
173
|
+
};
|
|
174
|
+
this.pendingMessage = newMessage;
|
|
175
|
+
this.onSendMessageModal();
|
|
176
|
+
}
|
|
177
|
+
onSendMessageModal() {
|
|
178
|
+
const modalData = {
|
|
179
|
+
data: {
|
|
180
|
+
responseTime: this.responseTime,
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
this.popupModalService
|
|
184
|
+
.show(this.ModalComponent, modalData)
|
|
185
|
+
.afterClose.pipe(first())
|
|
186
|
+
.subscribe((data) => {
|
|
187
|
+
this.pendingMessage.sendOptions = {
|
|
188
|
+
type: data.type,
|
|
189
|
+
arrivalDate: data.arrivalDate,
|
|
190
|
+
};
|
|
191
|
+
this.longPressEnabled = data.longPressEnabled;
|
|
192
|
+
this.onSend();
|
|
193
|
+
});
|
|
194
|
+
this.popupModalService.setValues({ customClass: 'message-modal-container' });
|
|
195
|
+
}
|
|
196
|
+
onSendText() {
|
|
197
|
+
this.savePendingMessage();
|
|
198
|
+
this.onSendMessageModal();
|
|
199
|
+
}
|
|
200
|
+
savePendingMessage() {
|
|
201
|
+
const message = this.textControl.value.trim();
|
|
202
|
+
if (message.trim()) {
|
|
203
|
+
const newMessage = {
|
|
204
|
+
sender: SenderTypes.USER,
|
|
205
|
+
timestamp: new Date(),
|
|
206
|
+
message: message,
|
|
207
|
+
attachments: [],
|
|
208
|
+
};
|
|
209
|
+
this.pendingMessage = newMessage;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
onSend() {
|
|
213
|
+
this.gifVisibility = false;
|
|
214
|
+
this.emojiVisibility = false;
|
|
215
|
+
this.textControl.setValue('');
|
|
216
|
+
this.handleScrollNewMessage();
|
|
217
|
+
this.sendMessage.emit(this.pendingMessage);
|
|
218
|
+
}
|
|
219
|
+
onKeyDown(event) {
|
|
220
|
+
if (event.key === 'Enter') {
|
|
221
|
+
this.onSendText();
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
onLongPress() {
|
|
225
|
+
this.savePendingMessage();
|
|
226
|
+
this.pendingMessage.sendOptions = {
|
|
227
|
+
type: SendMessageType.INMEDIATELY,
|
|
228
|
+
arrivalDate: new Date(),
|
|
229
|
+
};
|
|
230
|
+
this.onSend();
|
|
231
|
+
}
|
|
232
|
+
onBlurPickerSpace() {
|
|
233
|
+
this.gifVisibility = false;
|
|
234
|
+
this.emojiVisibility = false;
|
|
235
|
+
this.cdr.markForCheck();
|
|
236
|
+
this.removeEmojiPickerClickListener();
|
|
237
|
+
}
|
|
238
|
+
setupEmojiPickerClickListener() {
|
|
239
|
+
if (this.documentClickListener)
|
|
240
|
+
return;
|
|
241
|
+
this.documentClickListener = this.renderer.listen('document', 'click', (event) => {
|
|
242
|
+
if (!this.elementRef.nativeElement.contains(event.target)) {
|
|
243
|
+
this.onBlurPickerSpace();
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
removeEmojiPickerClickListener() {
|
|
248
|
+
if (this.documentClickListener) {
|
|
249
|
+
this.documentClickListener();
|
|
250
|
+
this.documentClickListener = null;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
254
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ChatComponent, selector: "lib-chat", inputs: { default: "default", responseTime: "responseTime", inputValue: "inputValue", emojiPickerConfig: "emojiPickerConfig", includeGifMessage: "includeGifMessage", includeTime: "includeTime", dateMessages: "dateMessages", maxLength: "maxLength", enableGifPicker: "enableGifPicker", prospectJoinDate: "prospectJoinDate", disabled: "disabled" }, outputs: { sendMessage: "sendMessage", getMessages: "getMessages" }, providers: [
|
|
255
|
+
{
|
|
256
|
+
provide: NG_VALUE_ACCESSOR,
|
|
257
|
+
useExisting: ChatComponent,
|
|
258
|
+
multi: true,
|
|
259
|
+
},
|
|
260
|
+
], viewQueries: [{ propertyName: "emojiPickerRef", first: true, predicate: ["emojiPicker"], descendants: true }, { propertyName: "scrollableContainer", first: true, predicate: ["scrollableContainer"], descendants: true }, { propertyName: "chatInput", first: true, predicate: ["chatInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"chat-component\">\r\n <div class=\"chat-container\">\r\n <div class=\"go-button\" *ngIf=\"isAtStartChat\" (click)=\"scrollToBottom()\">\u2193</div>\r\n <div\r\n class=\"dateMessages\"\r\n #scrollableContainer\r\n infiniteScroll\r\n [infiniteScrollDistance]=\"distance\"\r\n [infiniteScrollThrottle]=\"throttle\"\r\n [scrollWindow]=\"false\"\r\n (scrolledUp)=\"onScrollChats()\"\r\n (scroll)=\"onScrollMessages($event)\"\r\n >\r\n <div class=\"chat-item-container chat-item-container_init\">\r\n <div class=\"date-message\">\r\n <span>{{ prospectJoinDate ? (prospectJoinDate | date: 'MMM d, HH:mm') : '-' }}</span>\r\n </div>\r\n <div class=\"chat-item init-chat\">\r\n <div class=\"chat-item_text\">{{ 'CHAT.INITIAL_TEXT' | translate }}</div>\r\n </div>\r\n </div>\r\n <div\r\n *ngFor=\"let dateMessage of messages\"\r\n class=\"chat-item-container\"\r\n [class.chat-item-container_user]=\"dateMessage.message.sender === 'user'\"\r\n [class.chat-item-container_other]=\"dateMessage.message.sender === 'other'\"\r\n >\r\n <div class=\"date-message\" *ngIf=\"dateMessage.isFirstMessage && includeTime\">\r\n <span>{{ dateMessage.date | date: 'MMM d' }}</span>\r\n </div>\r\n <div class=\"chat-item\" [class.user-chat]=\"dateMessage.message.sender === 'user'\" [class.other-chat]=\"dateMessage.message.sender === 'other'\">\r\n @if (dateMessage.message.message !== '') {\r\n <div class=\"chat-item_text\">{{ dateMessage.message.message }}</div>\r\n } @else if (dateMessage.message.attachments[0].url !== '') {\r\n <img class=\"chat-item_image\" [src]=\"dateMessage.message.attachments[0].url\" alt=\"\" />\r\n }\r\n <div class=\"chat-item_timestamp\" *ngIf=\"includeTime\">\r\n {{ dateMessage.message.timestamp | date: 'shortTime' }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"bottom-gradient-fade\"></div>\r\n </div>\r\n <form autocomplete=\"off\" libFocusInvalidInput *ngIf=\"textControl\" class=\"message-sender\">\r\n <lib-input-field\r\n #chatInput\r\n [formControl]=\"textControl\"\r\n [value]=\"newTextMessage\"\r\n [label]=\"\"\r\n [textarea]=\"true\"\r\n placeholder=\"Send Message to Client Prospect\"\r\n (keyDown)=\"onKeyDown($event)\"\r\n [maxLength]=\"maxLength\"\r\n >\r\n </lib-input-field>\r\n <div class=\"chat-buttons\">\r\n <div class=\"send\" libLongPress [longPressEnabled]=\"longPressEnabled\" (shortPress)=\"onSendText()\" (longPress)=\"onLongPress()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 23 22\" fill=\"none\">\r\n <g filter=\"url(#filter0_d_748_3387)\">\r\n <path\r\n d=\"M14.6311 17.0545L18.3229 5.85996C18.692 4.77867 17.646 3.69738 16.6001 4.07901L5.77092 7.89533C4.54033 8.34056 4.54033 10.1215 5.83244 10.5032L9.46266 11.5208C10.2625 11.7753 10.9394 12.4113 11.1239 13.2381L12.1084 16.9908C12.4776 18.3266 14.2004 18.3266 14.6311 17.0545Z\"\r\n fill=\"url(#paint0_linear_748_3387)\"\r\n />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_748_3387\" x=\"0.85553\" y=\"0.000732422\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset />\r\n <feGaussianBlur stdDeviation=\"2\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 1 0 0 0 0 0.0961538 0 0 0 0 0.593269 0 0 0 1 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_748_3387\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_748_3387\" result=\"shape\" />\r\n </filter>\r\n <linearGradient id=\"paint0_linear_748_3387\" x1=\"18.5134\" y1=\"2.81097\" x2=\"0.162773\" y2=\"35.3556\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FE3C72\" />\r\n <stop offset=\"0.384615\" stop-color=\"#FFB5E9\" />\r\n </linearGradient>\r\n </defs>\r\n </svg>\r\n </div>\r\n <lib-popup customClass=\"message-modal-container\" [isOpen]=\"toggleMessageModal\" [modalComponent]=\"ModalComponent\" [modalComponentData]=\"{ modal: {} }\"> </lib-popup>\r\n <div\r\n [ngClass]=\"{ 'emoji-picker-trigger': true, active: emojiVisibility }\"\r\n [name]=\"emojiPickerConfig?.pickerIcon ? '' : 'body-outline'\"\r\n (click)=\"handleEmojiPickerClick()\"\r\n [src]=\"emojiPickerConfig?.pickerIcon\"\r\n class=\"emoji\"\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"none\" overflow=\"auto\">\r\n <g>\r\n <mask id=\"path-1-outside-1_422_3414\" maskUnits=\"userSpaceOnUse\" x=\"-0.72551\" y=\"-0.713776\" fill=\"url(#paint0_linear_748_3387)\">\r\n <path\r\n d=\"M5.13057 0.286224C7.81253 0.286224 9.98665 2.53373 9.98665 5.30623C9.98665 8.07823 7.81205 10.3252 5.13057 10.3252C2.44861 10.3257 0.27449 8.07823 0.27449 5.30623C0.27449 2.53373 2.44861 0.286224 5.13057 0.286224ZM5.13057 1.03908C4.58476 1.03296 4.0432 1.1388 3.53723 1.35049C3.03126 1.56218 2.57092 1.8755 2.18287 2.27233C1.79482 2.66915 1.48675 3.1416 1.2765 3.66233C1.06625 4.18305 0.95799 4.74172 0.95799 5.30598C0.95799 5.87025 1.06625 6.42891 1.2765 6.94964C1.48675 7.47036 1.79482 7.94281 2.18287 8.33964C2.57092 8.73646 3.03126 9.04979 3.53723 9.26147C4.0432 9.47316 4.58476 9.57901 5.13057 9.57289C6.21752 9.5607 7.25594 9.10579 8.02039 8.30691C8.78485 7.50804 9.21362 6.42969 9.21362 5.30598C9.21362 4.18228 8.78485 3.10393 8.02039 2.30505C7.25594 1.50618 6.21752 1.05126 5.13057 1.03908ZM3.41283 6.70302C3.61718 6.97193 3.87803 7.18925 4.17563 7.33855C4.47323 7.48785 4.79978 7.56522 5.13057 7.56479C5.461 7.5652 5.78721 7.48798 6.08453 7.33895C6.38186 7.18992 6.64253 6.97298 6.84685 6.70453C6.8765 6.66574 6.91325 6.63337 6.955 6.60926C6.99675 6.58515 7.04268 6.56978 7.09018 6.56403C7.13767 6.55827 7.1858 6.56224 7.23181 6.57571C7.27782 6.58919 7.32082 6.6119 7.35834 6.64254C7.39586 6.67319 7.42717 6.71118 7.45049 6.75434C7.47381 6.7975 7.48868 6.84498 7.49425 6.89408C7.49982 6.94318 7.49598 6.99293 7.48294 7.0405C7.46991 7.08806 7.44795 7.13251 7.4183 7.1713C7.14582 7.52897 6.79833 7.818 6.40202 8.01658C6.00572 8.21516 5.57097 8.3181 5.13057 8.31764C4.68953 8.31808 4.25416 8.21484 3.8574 8.01572C3.46064 7.8166 3.11287 7.52681 2.84042 7.16828C2.81083 7.12943 2.78894 7.08493 2.77599 7.03733C2.76304 6.98973 2.75929 6.93996 2.76495 6.89086C2.77061 6.84176 2.78556 6.7943 2.80897 6.75117C2.83237 6.70805 2.86376 6.67011 2.90135 6.63953C2.93893 6.60895 2.98198 6.58632 3.02802 6.57293C3.07407 6.55955 3.12221 6.55567 3.16971 6.56152C3.21721 6.56737 3.26312 6.58283 3.30484 6.60702C3.34655 6.63122 3.38325 6.66367 3.41283 6.70252V6.70302ZM3.67404 3.67506C3.75515 3.67268 3.83589 3.68715 3.9115 3.7176C3.98711 3.74805 4.05604 3.79386 4.11422 3.85233C4.17241 3.9108 4.21866 3.98073 4.25024 4.058C4.28182 4.13527 4.29809 4.2183 4.29809 4.30218C4.29809 4.38606 4.28182 4.46909 4.25024 4.54636C4.21866 4.62363 4.17241 4.69356 4.11422 4.75203C4.05604 4.8105 3.98711 4.85631 3.9115 4.88676C3.83589 4.91721 3.75515 4.93168 3.67404 4.92931C3.51612 4.92469 3.36616 4.85659 3.25604 4.73948C3.14592 4.62238 3.08431 4.4655 3.08431 4.30218C3.08431 4.13886 3.14592 3.98198 3.25604 3.86488C3.36616 3.74777 3.51612 3.67968 3.67404 3.67506ZM6.5871 3.67506C6.66821 3.67268 6.74896 3.68715 6.82457 3.7176C6.90018 3.74805 6.96911 3.79386 7.02729 3.85233C7.08547 3.9108 7.13172 3.98073 7.1633 4.058C7.19488 4.13527 7.21116 4.2183 7.21116 4.30218C7.21116 4.38606 7.19488 4.46909 7.1633 4.54636C7.13172 4.62363 7.08547 4.69356 7.02729 4.75203C6.96911 4.8105 6.90018 4.85631 6.82457 4.88676C6.74896 4.91721 6.66821 4.93168 6.5871 4.92931C6.42918 4.92469 6.27923 4.85659 6.16911 4.73948C6.05898 4.62238 5.99738 4.4655 5.99738 4.30218C5.99738 4.13886 6.05898 3.98198 6.16911 3.86488C6.27923 3.74777 6.42918 3.67968 6.5871 3.67506Z\"\r\n />\r\n </mask>\r\n <path\r\n _ngcontent-ng-c433636891=\"\"\r\n d=\"M5.13057 0.286224C7.81253 0.286224 9.98665 2.53373 9.98665 5.30623C9.98665 8.07823 7.81205 10.3252 5.13057 10.3252C2.44861 10.3257 0.27449 8.07823 0.27449 5.30623C0.27449 2.53373 2.44861 0.286224 5.13057 0.286224ZM5.13057 1.03908C4.58476 1.03296 4.0432 1.1388 3.53723 1.35049C3.03126 1.56218 2.57092 1.8755 2.18287 2.27233C1.79482 2.66915 1.48675 3.1416 1.2765 3.66233C1.06625 4.18305 0.95799 4.74172 0.95799 5.30598C0.95799 5.87025 1.06625 6.42891 1.2765 6.94964C1.48675 7.47036 1.79482 7.94281 2.18287 8.33964C2.57092 8.73646 3.03126 9.04979 3.53723 9.26147C4.0432 9.47316 4.58476 9.57901 5.13057 9.57289C6.21752 9.5607 7.25594 9.10579 8.02039 8.30691C8.78485 7.50804 9.21362 6.42969 9.21362 5.30598C9.21362 4.18228 8.78485 3.10393 8.02039 2.30505C7.25594 1.50618 6.21752 1.05126 5.13057 1.03908ZM3.41283 6.70302C3.61718 6.97193 3.87803 7.18925 4.17563 7.33855C4.47323 7.48785 4.79978 7.56522 5.13057 7.56479C5.461 7.5652 5.78721 7.48798 6.08453 7.33895C6.38186 7.18992 6.64253 6.97298 6.84685 6.70453C6.8765 6.66574 6.91325 6.63337 6.955 6.60926C6.99675 6.58515 7.04268 6.56978 7.09018 6.56403C7.13767 6.55827 7.1858 6.56224 7.23181 6.57571C7.27782 6.58919 7.32082 6.6119 7.35834 6.64254C7.39586 6.67319 7.42717 6.71118 7.45049 6.75434C7.47381 6.7975 7.48868 6.84498 7.49425 6.89408C7.49982 6.94318 7.49598 6.99293 7.48294 7.0405C7.46991 7.08806 7.44795 7.13251 7.4183 7.1713C7.14582 7.52897 6.79833 7.818 6.40202 8.01658C6.00572 8.21516 5.57097 8.3181 5.13057 8.31764C4.68953 8.31808 4.25416 8.21484 3.8574 8.01572C3.46064 7.8166 3.11287 7.52681 2.84042 7.16828C2.81083 7.12943 2.78894 7.08493 2.77599 7.03733C2.76304 6.98973 2.75929 6.93996 2.76495 6.89086C2.77061 6.84176 2.78556 6.7943 2.80897 6.75117C2.83237 6.70805 2.86376 6.67011 2.90135 6.63953C2.93893 6.60895 2.98198 6.58632 3.02802 6.57293C3.07407 6.55955 3.12221 6.55567 3.16971 6.56152C3.21721 6.56737 3.26312 6.58283 3.30484 6.60702C3.34655 6.63122 3.38325 6.66367 3.41283 6.70252V6.70302ZM3.67404 3.67506C3.75515 3.67268 3.83589 3.68715 3.9115 3.7176C3.98711 3.74805 4.05604 3.79386 4.11422 3.85233C4.17241 3.9108 4.21866 3.98073 4.25024 4.058C4.28182 4.13527 4.29809 4.2183 4.29809 4.30218C4.29809 4.38606 4.28182 4.46909 4.25024 4.54636C4.21866 4.62363 4.17241 4.69356 4.11422 4.75203C4.05604 4.8105 3.98711 4.85631 3.9115 4.88676C3.83589 4.91721 3.75515 4.93168 3.67404 4.92931C3.51612 4.92469 3.36616 4.85659 3.25604 4.73948C3.14592 4.62238 3.08431 4.4655 3.08431 4.30218C3.08431 4.13886 3.14592 3.98198 3.25604 3.86488C3.36616 3.74777 3.51612 3.67968 3.67404 3.67506ZM6.5871 3.67506C6.66821 3.67268 6.74896 3.68715 6.82457 3.7176C6.90018 3.74805 6.96911 3.79386 7.02729 3.85233C7.08547 3.9108 7.13172 3.98073 7.1633 4.058C7.19488 4.13527 7.21116 4.2183 7.21116 4.30218C7.21116 4.38606 7.19488 4.46909 7.1633 4.54636C7.13172 4.62363 7.08547 4.69356 7.02729 4.75203C6.96911 4.8105 6.90018 4.85631 6.82457 4.88676C6.74896 4.91721 6.66821 4.93168 6.5871 4.92931C6.42918 4.92469 6.27923 4.85659 6.16911 4.73948C6.05898 4.62238 5.99738 4.4655 5.99738 4.30218C5.99738 4.13886 6.05898 3.98198 6.16911 3.86488C6.27923 3.74777 6.42918 3.67968 6.5871 3.67506Z\"\r\n fill=\"url(#paint0_linear_748_3387)\"\r\n ></path>\r\n <path\r\n _ngcontent-ng-c433636891=\"\"\r\n d=\"M5.13057 0.286224C7.81253 0.286224 9.98665 2.53373 9.98665 5.30623C9.98665 8.07823 7.81205 10.3252 5.13057 10.3252C2.44861 10.3257 0.27449 8.07823 0.27449 5.30623C0.27449 2.53373 2.44861 0.286224 5.13057 0.286224ZM5.13057 1.03908C4.58476 1.03296 4.0432 1.1388 3.53723 1.35049C3.03126 1.56218 2.57092 1.8755 2.18287 2.27233C1.79482 2.66915 1.48675 3.1416 1.2765 3.66233C1.06625 4.18305 0.95799 4.74172 0.95799 5.30598C0.95799 5.87025 1.06625 6.42891 1.2765 6.94964C1.48675 7.47036 1.79482 7.94281 2.18287 8.33964C2.57092 8.73646 3.03126 9.04979 3.53723 9.26147C4.0432 9.47316 4.58476 9.57901 5.13057 9.57289C6.21752 9.5607 7.25594 9.10579 8.02039 8.30691C8.78485 7.50804 9.21362 6.42969 9.21362 5.30598C9.21362 4.18228 8.78485 3.10393 8.02039 2.30505C7.25594 1.50618 6.21752 1.05126 5.13057 1.03908ZM3.41283 6.70302C3.61718 6.97193 3.87803 7.18925 4.17563 7.33855C4.47323 7.48785 4.79978 7.56522 5.13057 7.56479C5.461 7.5652 5.78721 7.48798 6.08453 7.33895C6.38186 7.18992 6.64253 6.97298 6.84685 6.70453C6.8765 6.66574 6.91325 6.63337 6.955 6.60926C6.99675 6.58515 7.04268 6.56978 7.09018 6.56403C7.13767 6.55827 7.1858 6.56224 7.23181 6.57571C7.27782 6.58919 7.32082 6.6119 7.35834 6.64254C7.39586 6.67319 7.42717 6.71118 7.45049 6.75434C7.47381 6.7975 7.48868 6.84498 7.49425 6.89408C7.49982 6.94318 7.49598 6.99293 7.48294 7.0405C7.46991 7.08806 7.44795 7.13251 7.4183 7.1713C7.14582 7.52897 6.79833 7.818 6.40202 8.01658C6.00572 8.21516 5.57097 8.3181 5.13057 8.31764C4.68953 8.31808 4.25416 8.21484 3.8574 8.01572C3.46064 7.8166 3.11287 7.52681 2.84042 7.16828C2.81083 7.12943 2.78894 7.08493 2.77599 7.03733C2.76304 6.98973 2.75929 6.93996 2.76495 6.89086C2.77061 6.84176 2.78556 6.7943 2.80897 6.75117C2.83237 6.70805 2.86376 6.67011 2.90135 6.63953C2.93893 6.60895 2.98198 6.58632 3.02802 6.57293C3.07407 6.55955 3.12221 6.55567 3.16971 6.56152C3.21721 6.56737 3.26312 6.58283 3.30484 6.60702C3.34655 6.63122 3.38325 6.66367 3.41283 6.70252V6.70302ZM3.67404 3.67506C3.75515 3.67268 3.83589 3.68715 3.9115 3.7176C3.98711 3.74805 4.05604 3.79386 4.11422 3.85233C4.17241 3.9108 4.21866 3.98073 4.25024 4.058C4.28182 4.13527 4.29809 4.2183 4.29809 4.30218C4.29809 4.38606 4.28182 4.46909 4.25024 4.54636C4.21866 4.62363 4.17241 4.69356 4.11422 4.75203C4.05604 4.8105 3.98711 4.85631 3.9115 4.88676C3.83589 4.91721 3.75515 4.93168 3.67404 4.92931C3.51612 4.92469 3.36616 4.85659 3.25604 4.73948C3.14592 4.62238 3.08431 4.4655 3.08431 4.30218C3.08431 4.13886 3.14592 3.98198 3.25604 3.86488C3.36616 3.74777 3.51612 3.67968 3.67404 3.67506ZM6.5871 3.67506C6.66821 3.67268 6.74896 3.68715 6.82457 3.7176C6.90018 3.74805 6.96911 3.79386 7.02729 3.85233C7.08547 3.9108 7.13172 3.98073 7.1633 4.058C7.19488 4.13527 7.21116 4.2183 7.21116 4.30218C7.21116 4.38606 7.19488 4.46909 7.1633 4.54636C7.13172 4.62363 7.08547 4.69356 7.02729 4.75203C6.96911 4.8105 6.90018 4.85631 6.82457 4.88676C6.74896 4.91721 6.66821 4.93168 6.5871 4.92931C6.42918 4.92469 6.27923 4.85659 6.16911 4.73948C6.05898 4.62238 5.99738 4.4655 5.99738 4.30218C5.99738 4.13886 6.05898 3.98198 6.16911 3.86488C6.27923 3.74777 6.42918 3.67968 6.5871 3.67506Z\"\r\n stroke=\"url(#paint0_linear_748_3387)\"\r\n fill=\"url(#paint0_linear_748_3387)\"\r\n stroke-width=\"0.492535\"\r\n mask=\"url(#path-1-outside-1_422_3414)\"\r\n ></path>\r\n </g>\r\n <defs xmlns=\"http://www.w3.org/2000/svg\">\r\n <filter id=\"filter0_d_748_7685\" x=\"0\" y=\"0\" width=\"30\" height=\"30\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset />\r\n <feGaussianBlur stdDeviation=\"2\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 1 0 0 0 0 0.0961538 0 0 0 0 0.593269 0 0 0 1 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_748_7685\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_748_7685\" result=\"shape\" />\r\n </filter>\r\n <linearGradient id=\"paint0_linear_748_7685\" x1=\"14.1509\" y1=\"3.43372\" x2=\"0.992799\" y2=\"26.7715\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FE3C72\" />\r\n <stop offset=\"0.384615\" stop-color=\"#FFB5E9\" />\r\n </linearGradient>\r\n <linearGradient id=\"paint0_linear_748_3387\" x1=\"18.5134\" y1=\"2.81097\" x2=\"0.162773\" y2=\"35.3556\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FE3C72\" />\r\n <stop offset=\"0.384615\" stop-color=\"#FFB5E9\" />\r\n </linearGradient>\r\n </defs>\r\n </svg>\r\n </div>\r\n @if (enableGifPicker) {\r\n <div class=\"gifs\" (click)=\"handleGifPickerClick()\"></div>\r\n <div class=\"gifs\" *ngIf=\"includeGifMessage\" (click)=\"handleGifPickerClick()\">\r\n <svg viewBox=\"0 0 11 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g>\r\n <path\r\n d=\"M7.055 10.9995H4.899C3.2535 10.9995 2.4305 10.9995 1.859 10.6005C1.69694 10.4873 1.55167 10.3518 1.4275 10.198C1 9.66501 1 8.89801 1 7.36301V6.09051C1 4.60901 1 3.86801 1.2365 3.27651C1.617 2.32501 2.4215 1.57501 3.4415 1.22001C4.075 0.999512 4.87 0.999512 6.4585 0.999512C7.3665 0.999512 7.82 0.999512 8.1825 1.12551C8.7655 1.32851 9.225 1.75701 9.4425 2.30051C9.5775 2.63851 9.5775 3.06201 9.5775 3.90851V4.99951\"\r\n stroke=\"url(#paint0_linear_748_3387)\"\r\n stroke-width=\"0.75\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M1 5.99951C1 5.07951 1.753 4.33301 2.682 4.33301C3.018 4.33301 3.414 4.39101 3.7405 4.30451C3.88281 4.26736 4.01278 4.19328 4.11726 4.08976C4.22174 3.98624 4.29703 3.85697 4.3355 3.71501C4.4225 3.39151 4.364 2.99901 4.364 2.66601C4.364 1.74601 5.117 0.999512 6.045 0.999512M6.046 8.99951H7.3075M4.833 6.92451C4.77 6.52451 4.6925 6.52401 4.028 6.49951H3.523C3.2445 6.49951 3.0185 6.72351 3.0185 6.99951V8.49951C3.0185 8.77551 3.2445 8.99951 3.5235 8.99951H4.4315C4.6265 8.99951 4.833 8.84301 4.833 8.64951V8.09951C4.833 8.04451 4.7765 7.94751 4.721 7.94751H4.159M6.046 6.49951H6.6765M6.6765 6.49951H7.3075M6.6765 6.49951V8.93701M10.2505 6.49951H8.989C8.7105 6.49951 8.4845 6.72351 8.4845 6.99951V7.74951M8.4845 7.74951V8.99951M8.4845 7.74951H9.746\"\r\n stroke=\"url(#paint0_linear_748_3387)\"\r\n stroke-width=\"0.75\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n <defs xmlns=\"http://www.w3.org/2000/svg\">\r\n <filter id=\"filter0_d_748_7685\" x=\"0\" y=\"0\" width=\"30\" height=\"30\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset />\r\n <feGaussianBlur stdDeviation=\"2\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 1 0 0 0 0 0.0961538 0 0 0 0 0.593269 0 0 0 1 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_748_7685\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_748_7685\" result=\"shape\" />\r\n </filter>\r\n <linearGradient id=\"paint0_linear_748_7685\" x1=\"14.1509\" y1=\"3.43372\" x2=\"0.992799\" y2=\"26.7715\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FE3C72\" />\r\n <stop offset=\"0.384615\" stop-color=\"#FFB5E9\" />\r\n </linearGradient>\r\n <linearGradient id=\"paint0_linear_748_3387\" x1=\"18.5134\" y1=\"2.81097\" x2=\"0.162773\" y2=\"35.3556\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FE3C72\" />\r\n <stop offset=\"0.384615\" stop-color=\"#FFB5E9\" />\r\n </linearGradient>\r\n </defs>\r\n </svg>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"emoji-picker-space\" [ngStyle]=\"{ 'z-index': !(gifVisibility || emojiVisibility) ? -1 : 11 }\" (blur)=\"onBlurPickerSpace()\">\r\n @if (gifVisibility && enableGifPicker) {\r\n <lib-gif-selector (selectGif)=\"onGifClick($event)\"></lib-gif-selector>\r\n }\r\n @if (emojiPickerOpened) {\r\n <emoji-picker #emojiPicker [ngStyle]=\"{ display: emojiVisibility ? '' : 'none' }\" emoji-version=\"15.0\" (emoji-click)=\"onEmojiclick($event)\"></emoji-picker>\r\n }\r\n </div>\r\n </form>\r\n</div>\r\n", styles: [":host{--height-chat-conversation: 11em;--max-width-container: 27em;--color-background-dark: #1d1b21;--color-chat-other: #453945;--color-chat-user: #403b45;--color-chat-init: #fe3c72;--color-text-white: white;--color-text-gray: rgb(123, 123, 123);--color-background-emoji: #29252d;--color-gradient-start: #746b8381;--color-gradient-end: rgba(0, 0, 0, 0);font-size:clamp(0px,3.2dvw,15px);display:flex;flex-direction:column;width:100%;max-width:var(--max-width-container)}:host .chat-component{display:flex;flex-direction:column;position:relative}:host .chat-component .bottom-gradient-fade{position:absolute;bottom:0;left:0;width:100%;height:40px;background:linear-gradient(180deg,transparent,#27242c);z-index:1;pointer-events:none}:host .chat-component .chat-container{position:relative}:host .chat-component .chat-container .go-button{color:#fff;font-size:1em;position:absolute;bottom:.2em;right:.7em;background-color:var(--color-background-dark);border-radius:50%;width:2em;height:2em;display:flex;justify-content:center;align-items:center;z-index:10}:host .chat-component .chat-container .go-button:hover{cursor:pointer}:host .chat-component .chat-container .dateMessages{display:flex;flex-direction:column;gap:1em;padding-bottom:8px;padding-top:1.6em;height:var(--height-chat-conversation);width:var(--max-width-container);overflow-y:scroll}:host .chat-component .chat-container .dateMessages .chat-item-container{display:flex;flex-direction:column;gap:1em}:host .chat-component .chat-container .dateMessages .chat-item-container .date-message{width:100%;display:flex;justify-content:center;align-items:center;font-size:.861em}:host .chat-component .chat-container .dateMessages .chat-item-container .date-message span{background-color:#000;color:var(--color-text-white);border-radius:1em;padding:.5em}:host .chat-component .chat-container .dateMessages .chat-item-container_user{align-items:flex-end}:host .chat-component .chat-container .dateMessages .chat-item-container_other{align-items:flex-start}:host .chat-component .chat-container .dateMessages .chat-item-container_init{align-items:center}:host .chat-component .chat-container .dateMessages .chat-item{max-width:80%;min-height:3.5em;padding:1em;border-radius:1.076em;position:relative;box-shadow:0 4px 4px #00000040}:host .chat-component .chat-container .dateMessages .chat-item .chat-item_text{font-size:.861em;color:var(--color-text-white);word-break:break-word;overflow-wrap:break-word;hyphens:auto}:host .chat-component .chat-container .dateMessages .chat-item .chat-item_image{width:7em;height:auto}:host .chat-component .chat-container .dateMessages .chat-item .chat-item_timestamp{margin-top:.2em;font-size:.8em;color:var(--color-text-gray);text-align:end}:host .chat-component .chat-container .dateMessages .chat-item:before{content:\"\";position:absolute;inset:0;border-radius:1.076em;padding:.05em;background:linear-gradient(180deg,var(--color-gradient-start),var(--color-gradient-end) 50%);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}:host .chat-component .chat-container .dateMessages .other-chat{background-color:var(--color-chat-other);border-bottom-left-radius:0}:host .chat-component .chat-container .dateMessages .user-chat{background-color:var(--color-chat-user);border-bottom-right-radius:0}:host .chat-component .chat-container .dateMessages .init-chat{min-height:2em;padding:.7em;background-color:var(--color-chat-init)}:host .chat-component .chat-container .dateMessages .init-chat .chat-item_text{font-size:.761em;color:#000}:host .chat-component .chat-container .dateMessages .other-chat:before{border-bottom-left-radius:0!important}:host .chat-component .chat-container .dateMessages .user-chat:before{border-bottom-right-radius:0!important}:host .message-sender{position:relative}:host .message-sender lib-input-field{--input-font-size: calc(clamp(0px, 3.2dvw, 15px)*.8) ;--input-padding: calc(clamp(0px, 3.2dvw, 15px)*1.2) calc(clamp(0px, 3.2dvw, 15px)*3.5) calc(clamp(0px, 3.2dvw, 15px)*1.2) calc(clamp(0px, 3.2dvw, 15px)*1.6) ;--placeholder-font-size: calc(clamp(0px, 3.2dvw, 15px)*.8) ;--textarea-height: calc(clamp(0px, 3.2dvw, 15px)*7) }:host .message-sender .chat-buttons .send,:host .message-sender .chat-buttons .emoji,:host .message-sender .chat-buttons .attach,:host .message-sender .chat-buttons .gifs{position:absolute;right:.6em;width:1.7em;height:1.7em;border-radius:50%;z-index:10}:host .message-sender .chat-buttons .send:hover,:host .message-sender .chat-buttons .emoji:hover,:host .message-sender .chat-buttons .attach:hover,:host .message-sender .chat-buttons .gifs:hover{cursor:pointer}:host .message-sender .chat-buttons .send{top:.9em}:host .message-sender .chat-buttons .send svg{width:1.7em;height:1.9em}:host .message-sender .chat-buttons .emoji{top:3.1em}:host .message-sender .chat-buttons .emoji svg{overflow:visible;width:2.33em;height:1.848em}:host .message-sender .chat-buttons .emoji svg mask{width:.733em;height:1.466em}:host .message-sender .chat-buttons .attach{top:5em;background-color:#87ceeb}:host .message-sender .chat-buttons .gifs{top:5em}:host .message-sender .chat-buttons .gifs svg{width:1.166em;height:1.2984em;margin-left:.25em}:host .message-sender .emoji-picker-space{position:absolute;top:-12em;height:12em;width:100%}:host .message-sender .emoji-picker-space emoji-picker{--background: var(--color-background-emoji);height:100%;width:100%;--input-font-size: .8em;--input-font-color: var(--color-text-white)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.InputFieldComponent, selector: "lib-input-field,[lib-input-field]", inputs: ["name", "autocomplete", "label", "placeholder", "type", "readonly", "focus", "enableGoogleAddress", "locationAutocompleteConfig", "defaultLocation", "mask", "prefix", "suffix", "maxLength", "value", "address", "textarea", "resize", "counter", "patterns", "trimWhiteSpace", "disabled"], outputs: ["mapError", "locationChange", "keyDown", "onBlur"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.GifSelectorComponent, selector: "lib-gif-selector", outputs: ["selectGif"] }, { kind: "component", type: i2.LibModalComponent, selector: "lib-popup", inputs: ["isOpen", "icon", "title", "message", "extendedMessage", "cancelButton", "confirmButton", "checkboxText", "progBarCurrentStep", "progBarTotalSteps", "customClass", "backdropDismiss", "modalComponent", "modalComponentData"], outputs: ["modalConfirm", "modalDismiss", "afterCloseEvent"] }, { kind: "directive", type: i5.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
261
|
+
}
|
|
262
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatComponent, decorators: [{
|
|
263
|
+
type: Component,
|
|
264
|
+
args: [{ selector: 'lib-chat', providers: [
|
|
265
|
+
{
|
|
266
|
+
provide: NG_VALUE_ACCESSOR,
|
|
267
|
+
useExisting: ChatComponent,
|
|
268
|
+
multi: true,
|
|
269
|
+
},
|
|
270
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"chat-component\">\r\n <div class=\"chat-container\">\r\n <div class=\"go-button\" *ngIf=\"isAtStartChat\" (click)=\"scrollToBottom()\">\u2193</div>\r\n <div\r\n class=\"dateMessages\"\r\n #scrollableContainer\r\n infiniteScroll\r\n [infiniteScrollDistance]=\"distance\"\r\n [infiniteScrollThrottle]=\"throttle\"\r\n [scrollWindow]=\"false\"\r\n (scrolledUp)=\"onScrollChats()\"\r\n (scroll)=\"onScrollMessages($event)\"\r\n >\r\n <div class=\"chat-item-container chat-item-container_init\">\r\n <div class=\"date-message\">\r\n <span>{{ prospectJoinDate ? (prospectJoinDate | date: 'MMM d, HH:mm') : '-' }}</span>\r\n </div>\r\n <div class=\"chat-item init-chat\">\r\n <div class=\"chat-item_text\">{{ 'CHAT.INITIAL_TEXT' | translate }}</div>\r\n </div>\r\n </div>\r\n <div\r\n *ngFor=\"let dateMessage of messages\"\r\n class=\"chat-item-container\"\r\n [class.chat-item-container_user]=\"dateMessage.message.sender === 'user'\"\r\n [class.chat-item-container_other]=\"dateMessage.message.sender === 'other'\"\r\n >\r\n <div class=\"date-message\" *ngIf=\"dateMessage.isFirstMessage && includeTime\">\r\n <span>{{ dateMessage.date | date: 'MMM d' }}</span>\r\n </div>\r\n <div class=\"chat-item\" [class.user-chat]=\"dateMessage.message.sender === 'user'\" [class.other-chat]=\"dateMessage.message.sender === 'other'\">\r\n @if (dateMessage.message.message !== '') {\r\n <div class=\"chat-item_text\">{{ dateMessage.message.message }}</div>\r\n } @else if (dateMessage.message.attachments[0].url !== '') {\r\n <img class=\"chat-item_image\" [src]=\"dateMessage.message.attachments[0].url\" alt=\"\" />\r\n }\r\n <div class=\"chat-item_timestamp\" *ngIf=\"includeTime\">\r\n {{ dateMessage.message.timestamp | date: 'shortTime' }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"bottom-gradient-fade\"></div>\r\n </div>\r\n <form autocomplete=\"off\" libFocusInvalidInput *ngIf=\"textControl\" class=\"message-sender\">\r\n <lib-input-field\r\n #chatInput\r\n [formControl]=\"textControl\"\r\n [value]=\"newTextMessage\"\r\n [label]=\"\"\r\n [textarea]=\"true\"\r\n placeholder=\"Send Message to Client Prospect\"\r\n (keyDown)=\"onKeyDown($event)\"\r\n [maxLength]=\"maxLength\"\r\n >\r\n </lib-input-field>\r\n <div class=\"chat-buttons\">\r\n <div class=\"send\" libLongPress [longPressEnabled]=\"longPressEnabled\" (shortPress)=\"onSendText()\" (longPress)=\"onLongPress()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 23 22\" fill=\"none\">\r\n <g filter=\"url(#filter0_d_748_3387)\">\r\n <path\r\n d=\"M14.6311 17.0545L18.3229 5.85996C18.692 4.77867 17.646 3.69738 16.6001 4.07901L5.77092 7.89533C4.54033 8.34056 4.54033 10.1215 5.83244 10.5032L9.46266 11.5208C10.2625 11.7753 10.9394 12.4113 11.1239 13.2381L12.1084 16.9908C12.4776 18.3266 14.2004 18.3266 14.6311 17.0545Z\"\r\n fill=\"url(#paint0_linear_748_3387)\"\r\n />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_748_3387\" x=\"0.85553\" y=\"0.000732422\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset />\r\n <feGaussianBlur stdDeviation=\"2\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 1 0 0 0 0 0.0961538 0 0 0 0 0.593269 0 0 0 1 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_748_3387\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_748_3387\" result=\"shape\" />\r\n </filter>\r\n <linearGradient id=\"paint0_linear_748_3387\" x1=\"18.5134\" y1=\"2.81097\" x2=\"0.162773\" y2=\"35.3556\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FE3C72\" />\r\n <stop offset=\"0.384615\" stop-color=\"#FFB5E9\" />\r\n </linearGradient>\r\n </defs>\r\n </svg>\r\n </div>\r\n <lib-popup customClass=\"message-modal-container\" [isOpen]=\"toggleMessageModal\" [modalComponent]=\"ModalComponent\" [modalComponentData]=\"{ modal: {} }\"> </lib-popup>\r\n <div\r\n [ngClass]=\"{ 'emoji-picker-trigger': true, active: emojiVisibility }\"\r\n [name]=\"emojiPickerConfig?.pickerIcon ? '' : 'body-outline'\"\r\n (click)=\"handleEmojiPickerClick()\"\r\n [src]=\"emojiPickerConfig?.pickerIcon\"\r\n class=\"emoji\"\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"none\" overflow=\"auto\">\r\n <g>\r\n <mask id=\"path-1-outside-1_422_3414\" maskUnits=\"userSpaceOnUse\" x=\"-0.72551\" y=\"-0.713776\" fill=\"url(#paint0_linear_748_3387)\">\r\n <path\r\n d=\"M5.13057 0.286224C7.81253 0.286224 9.98665 2.53373 9.98665 5.30623C9.98665 8.07823 7.81205 10.3252 5.13057 10.3252C2.44861 10.3257 0.27449 8.07823 0.27449 5.30623C0.27449 2.53373 2.44861 0.286224 5.13057 0.286224ZM5.13057 1.03908C4.58476 1.03296 4.0432 1.1388 3.53723 1.35049C3.03126 1.56218 2.57092 1.8755 2.18287 2.27233C1.79482 2.66915 1.48675 3.1416 1.2765 3.66233C1.06625 4.18305 0.95799 4.74172 0.95799 5.30598C0.95799 5.87025 1.06625 6.42891 1.2765 6.94964C1.48675 7.47036 1.79482 7.94281 2.18287 8.33964C2.57092 8.73646 3.03126 9.04979 3.53723 9.26147C4.0432 9.47316 4.58476 9.57901 5.13057 9.57289C6.21752 9.5607 7.25594 9.10579 8.02039 8.30691C8.78485 7.50804 9.21362 6.42969 9.21362 5.30598C9.21362 4.18228 8.78485 3.10393 8.02039 2.30505C7.25594 1.50618 6.21752 1.05126 5.13057 1.03908ZM3.41283 6.70302C3.61718 6.97193 3.87803 7.18925 4.17563 7.33855C4.47323 7.48785 4.79978 7.56522 5.13057 7.56479C5.461 7.5652 5.78721 7.48798 6.08453 7.33895C6.38186 7.18992 6.64253 6.97298 6.84685 6.70453C6.8765 6.66574 6.91325 6.63337 6.955 6.60926C6.99675 6.58515 7.04268 6.56978 7.09018 6.56403C7.13767 6.55827 7.1858 6.56224 7.23181 6.57571C7.27782 6.58919 7.32082 6.6119 7.35834 6.64254C7.39586 6.67319 7.42717 6.71118 7.45049 6.75434C7.47381 6.7975 7.48868 6.84498 7.49425 6.89408C7.49982 6.94318 7.49598 6.99293 7.48294 7.0405C7.46991 7.08806 7.44795 7.13251 7.4183 7.1713C7.14582 7.52897 6.79833 7.818 6.40202 8.01658C6.00572 8.21516 5.57097 8.3181 5.13057 8.31764C4.68953 8.31808 4.25416 8.21484 3.8574 8.01572C3.46064 7.8166 3.11287 7.52681 2.84042 7.16828C2.81083 7.12943 2.78894 7.08493 2.77599 7.03733C2.76304 6.98973 2.75929 6.93996 2.76495 6.89086C2.77061 6.84176 2.78556 6.7943 2.80897 6.75117C2.83237 6.70805 2.86376 6.67011 2.90135 6.63953C2.93893 6.60895 2.98198 6.58632 3.02802 6.57293C3.07407 6.55955 3.12221 6.55567 3.16971 6.56152C3.21721 6.56737 3.26312 6.58283 3.30484 6.60702C3.34655 6.63122 3.38325 6.66367 3.41283 6.70252V6.70302ZM3.67404 3.67506C3.75515 3.67268 3.83589 3.68715 3.9115 3.7176C3.98711 3.74805 4.05604 3.79386 4.11422 3.85233C4.17241 3.9108 4.21866 3.98073 4.25024 4.058C4.28182 4.13527 4.29809 4.2183 4.29809 4.30218C4.29809 4.38606 4.28182 4.46909 4.25024 4.54636C4.21866 4.62363 4.17241 4.69356 4.11422 4.75203C4.05604 4.8105 3.98711 4.85631 3.9115 4.88676C3.83589 4.91721 3.75515 4.93168 3.67404 4.92931C3.51612 4.92469 3.36616 4.85659 3.25604 4.73948C3.14592 4.62238 3.08431 4.4655 3.08431 4.30218C3.08431 4.13886 3.14592 3.98198 3.25604 3.86488C3.36616 3.74777 3.51612 3.67968 3.67404 3.67506ZM6.5871 3.67506C6.66821 3.67268 6.74896 3.68715 6.82457 3.7176C6.90018 3.74805 6.96911 3.79386 7.02729 3.85233C7.08547 3.9108 7.13172 3.98073 7.1633 4.058C7.19488 4.13527 7.21116 4.2183 7.21116 4.30218C7.21116 4.38606 7.19488 4.46909 7.1633 4.54636C7.13172 4.62363 7.08547 4.69356 7.02729 4.75203C6.96911 4.8105 6.90018 4.85631 6.82457 4.88676C6.74896 4.91721 6.66821 4.93168 6.5871 4.92931C6.42918 4.92469 6.27923 4.85659 6.16911 4.73948C6.05898 4.62238 5.99738 4.4655 5.99738 4.30218C5.99738 4.13886 6.05898 3.98198 6.16911 3.86488C6.27923 3.74777 6.42918 3.67968 6.5871 3.67506Z\"\r\n />\r\n </mask>\r\n <path\r\n _ngcontent-ng-c433636891=\"\"\r\n d=\"M5.13057 0.286224C7.81253 0.286224 9.98665 2.53373 9.98665 5.30623C9.98665 8.07823 7.81205 10.3252 5.13057 10.3252C2.44861 10.3257 0.27449 8.07823 0.27449 5.30623C0.27449 2.53373 2.44861 0.286224 5.13057 0.286224ZM5.13057 1.03908C4.58476 1.03296 4.0432 1.1388 3.53723 1.35049C3.03126 1.56218 2.57092 1.8755 2.18287 2.27233C1.79482 2.66915 1.48675 3.1416 1.2765 3.66233C1.06625 4.18305 0.95799 4.74172 0.95799 5.30598C0.95799 5.87025 1.06625 6.42891 1.2765 6.94964C1.48675 7.47036 1.79482 7.94281 2.18287 8.33964C2.57092 8.73646 3.03126 9.04979 3.53723 9.26147C4.0432 9.47316 4.58476 9.57901 5.13057 9.57289C6.21752 9.5607 7.25594 9.10579 8.02039 8.30691C8.78485 7.50804 9.21362 6.42969 9.21362 5.30598C9.21362 4.18228 8.78485 3.10393 8.02039 2.30505C7.25594 1.50618 6.21752 1.05126 5.13057 1.03908ZM3.41283 6.70302C3.61718 6.97193 3.87803 7.18925 4.17563 7.33855C4.47323 7.48785 4.79978 7.56522 5.13057 7.56479C5.461 7.5652 5.78721 7.48798 6.08453 7.33895C6.38186 7.18992 6.64253 6.97298 6.84685 6.70453C6.8765 6.66574 6.91325 6.63337 6.955 6.60926C6.99675 6.58515 7.04268 6.56978 7.09018 6.56403C7.13767 6.55827 7.1858 6.56224 7.23181 6.57571C7.27782 6.58919 7.32082 6.6119 7.35834 6.64254C7.39586 6.67319 7.42717 6.71118 7.45049 6.75434C7.47381 6.7975 7.48868 6.84498 7.49425 6.89408C7.49982 6.94318 7.49598 6.99293 7.48294 7.0405C7.46991 7.08806 7.44795 7.13251 7.4183 7.1713C7.14582 7.52897 6.79833 7.818 6.40202 8.01658C6.00572 8.21516 5.57097 8.3181 5.13057 8.31764C4.68953 8.31808 4.25416 8.21484 3.8574 8.01572C3.46064 7.8166 3.11287 7.52681 2.84042 7.16828C2.81083 7.12943 2.78894 7.08493 2.77599 7.03733C2.76304 6.98973 2.75929 6.93996 2.76495 6.89086C2.77061 6.84176 2.78556 6.7943 2.80897 6.75117C2.83237 6.70805 2.86376 6.67011 2.90135 6.63953C2.93893 6.60895 2.98198 6.58632 3.02802 6.57293C3.07407 6.55955 3.12221 6.55567 3.16971 6.56152C3.21721 6.56737 3.26312 6.58283 3.30484 6.60702C3.34655 6.63122 3.38325 6.66367 3.41283 6.70252V6.70302ZM3.67404 3.67506C3.75515 3.67268 3.83589 3.68715 3.9115 3.7176C3.98711 3.74805 4.05604 3.79386 4.11422 3.85233C4.17241 3.9108 4.21866 3.98073 4.25024 4.058C4.28182 4.13527 4.29809 4.2183 4.29809 4.30218C4.29809 4.38606 4.28182 4.46909 4.25024 4.54636C4.21866 4.62363 4.17241 4.69356 4.11422 4.75203C4.05604 4.8105 3.98711 4.85631 3.9115 4.88676C3.83589 4.91721 3.75515 4.93168 3.67404 4.92931C3.51612 4.92469 3.36616 4.85659 3.25604 4.73948C3.14592 4.62238 3.08431 4.4655 3.08431 4.30218C3.08431 4.13886 3.14592 3.98198 3.25604 3.86488C3.36616 3.74777 3.51612 3.67968 3.67404 3.67506ZM6.5871 3.67506C6.66821 3.67268 6.74896 3.68715 6.82457 3.7176C6.90018 3.74805 6.96911 3.79386 7.02729 3.85233C7.08547 3.9108 7.13172 3.98073 7.1633 4.058C7.19488 4.13527 7.21116 4.2183 7.21116 4.30218C7.21116 4.38606 7.19488 4.46909 7.1633 4.54636C7.13172 4.62363 7.08547 4.69356 7.02729 4.75203C6.96911 4.8105 6.90018 4.85631 6.82457 4.88676C6.74896 4.91721 6.66821 4.93168 6.5871 4.92931C6.42918 4.92469 6.27923 4.85659 6.16911 4.73948C6.05898 4.62238 5.99738 4.4655 5.99738 4.30218C5.99738 4.13886 6.05898 3.98198 6.16911 3.86488C6.27923 3.74777 6.42918 3.67968 6.5871 3.67506Z\"\r\n fill=\"url(#paint0_linear_748_3387)\"\r\n ></path>\r\n <path\r\n _ngcontent-ng-c433636891=\"\"\r\n d=\"M5.13057 0.286224C7.81253 0.286224 9.98665 2.53373 9.98665 5.30623C9.98665 8.07823 7.81205 10.3252 5.13057 10.3252C2.44861 10.3257 0.27449 8.07823 0.27449 5.30623C0.27449 2.53373 2.44861 0.286224 5.13057 0.286224ZM5.13057 1.03908C4.58476 1.03296 4.0432 1.1388 3.53723 1.35049C3.03126 1.56218 2.57092 1.8755 2.18287 2.27233C1.79482 2.66915 1.48675 3.1416 1.2765 3.66233C1.06625 4.18305 0.95799 4.74172 0.95799 5.30598C0.95799 5.87025 1.06625 6.42891 1.2765 6.94964C1.48675 7.47036 1.79482 7.94281 2.18287 8.33964C2.57092 8.73646 3.03126 9.04979 3.53723 9.26147C4.0432 9.47316 4.58476 9.57901 5.13057 9.57289C6.21752 9.5607 7.25594 9.10579 8.02039 8.30691C8.78485 7.50804 9.21362 6.42969 9.21362 5.30598C9.21362 4.18228 8.78485 3.10393 8.02039 2.30505C7.25594 1.50618 6.21752 1.05126 5.13057 1.03908ZM3.41283 6.70302C3.61718 6.97193 3.87803 7.18925 4.17563 7.33855C4.47323 7.48785 4.79978 7.56522 5.13057 7.56479C5.461 7.5652 5.78721 7.48798 6.08453 7.33895C6.38186 7.18992 6.64253 6.97298 6.84685 6.70453C6.8765 6.66574 6.91325 6.63337 6.955 6.60926C6.99675 6.58515 7.04268 6.56978 7.09018 6.56403C7.13767 6.55827 7.1858 6.56224 7.23181 6.57571C7.27782 6.58919 7.32082 6.6119 7.35834 6.64254C7.39586 6.67319 7.42717 6.71118 7.45049 6.75434C7.47381 6.7975 7.48868 6.84498 7.49425 6.89408C7.49982 6.94318 7.49598 6.99293 7.48294 7.0405C7.46991 7.08806 7.44795 7.13251 7.4183 7.1713C7.14582 7.52897 6.79833 7.818 6.40202 8.01658C6.00572 8.21516 5.57097 8.3181 5.13057 8.31764C4.68953 8.31808 4.25416 8.21484 3.8574 8.01572C3.46064 7.8166 3.11287 7.52681 2.84042 7.16828C2.81083 7.12943 2.78894 7.08493 2.77599 7.03733C2.76304 6.98973 2.75929 6.93996 2.76495 6.89086C2.77061 6.84176 2.78556 6.7943 2.80897 6.75117C2.83237 6.70805 2.86376 6.67011 2.90135 6.63953C2.93893 6.60895 2.98198 6.58632 3.02802 6.57293C3.07407 6.55955 3.12221 6.55567 3.16971 6.56152C3.21721 6.56737 3.26312 6.58283 3.30484 6.60702C3.34655 6.63122 3.38325 6.66367 3.41283 6.70252V6.70302ZM3.67404 3.67506C3.75515 3.67268 3.83589 3.68715 3.9115 3.7176C3.98711 3.74805 4.05604 3.79386 4.11422 3.85233C4.17241 3.9108 4.21866 3.98073 4.25024 4.058C4.28182 4.13527 4.29809 4.2183 4.29809 4.30218C4.29809 4.38606 4.28182 4.46909 4.25024 4.54636C4.21866 4.62363 4.17241 4.69356 4.11422 4.75203C4.05604 4.8105 3.98711 4.85631 3.9115 4.88676C3.83589 4.91721 3.75515 4.93168 3.67404 4.92931C3.51612 4.92469 3.36616 4.85659 3.25604 4.73948C3.14592 4.62238 3.08431 4.4655 3.08431 4.30218C3.08431 4.13886 3.14592 3.98198 3.25604 3.86488C3.36616 3.74777 3.51612 3.67968 3.67404 3.67506ZM6.5871 3.67506C6.66821 3.67268 6.74896 3.68715 6.82457 3.7176C6.90018 3.74805 6.96911 3.79386 7.02729 3.85233C7.08547 3.9108 7.13172 3.98073 7.1633 4.058C7.19488 4.13527 7.21116 4.2183 7.21116 4.30218C7.21116 4.38606 7.19488 4.46909 7.1633 4.54636C7.13172 4.62363 7.08547 4.69356 7.02729 4.75203C6.96911 4.8105 6.90018 4.85631 6.82457 4.88676C6.74896 4.91721 6.66821 4.93168 6.5871 4.92931C6.42918 4.92469 6.27923 4.85659 6.16911 4.73948C6.05898 4.62238 5.99738 4.4655 5.99738 4.30218C5.99738 4.13886 6.05898 3.98198 6.16911 3.86488C6.27923 3.74777 6.42918 3.67968 6.5871 3.67506Z\"\r\n stroke=\"url(#paint0_linear_748_3387)\"\r\n fill=\"url(#paint0_linear_748_3387)\"\r\n stroke-width=\"0.492535\"\r\n mask=\"url(#path-1-outside-1_422_3414)\"\r\n ></path>\r\n </g>\r\n <defs xmlns=\"http://www.w3.org/2000/svg\">\r\n <filter id=\"filter0_d_748_7685\" x=\"0\" y=\"0\" width=\"30\" height=\"30\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset />\r\n <feGaussianBlur stdDeviation=\"2\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 1 0 0 0 0 0.0961538 0 0 0 0 0.593269 0 0 0 1 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_748_7685\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_748_7685\" result=\"shape\" />\r\n </filter>\r\n <linearGradient id=\"paint0_linear_748_7685\" x1=\"14.1509\" y1=\"3.43372\" x2=\"0.992799\" y2=\"26.7715\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FE3C72\" />\r\n <stop offset=\"0.384615\" stop-color=\"#FFB5E9\" />\r\n </linearGradient>\r\n <linearGradient id=\"paint0_linear_748_3387\" x1=\"18.5134\" y1=\"2.81097\" x2=\"0.162773\" y2=\"35.3556\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FE3C72\" />\r\n <stop offset=\"0.384615\" stop-color=\"#FFB5E9\" />\r\n </linearGradient>\r\n </defs>\r\n </svg>\r\n </div>\r\n @if (enableGifPicker) {\r\n <div class=\"gifs\" (click)=\"handleGifPickerClick()\"></div>\r\n <div class=\"gifs\" *ngIf=\"includeGifMessage\" (click)=\"handleGifPickerClick()\">\r\n <svg viewBox=\"0 0 11 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g>\r\n <path\r\n d=\"M7.055 10.9995H4.899C3.2535 10.9995 2.4305 10.9995 1.859 10.6005C1.69694 10.4873 1.55167 10.3518 1.4275 10.198C1 9.66501 1 8.89801 1 7.36301V6.09051C1 4.60901 1 3.86801 1.2365 3.27651C1.617 2.32501 2.4215 1.57501 3.4415 1.22001C4.075 0.999512 4.87 0.999512 6.4585 0.999512C7.3665 0.999512 7.82 0.999512 8.1825 1.12551C8.7655 1.32851 9.225 1.75701 9.4425 2.30051C9.5775 2.63851 9.5775 3.06201 9.5775 3.90851V4.99951\"\r\n stroke=\"url(#paint0_linear_748_3387)\"\r\n stroke-width=\"0.75\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M1 5.99951C1 5.07951 1.753 4.33301 2.682 4.33301C3.018 4.33301 3.414 4.39101 3.7405 4.30451C3.88281 4.26736 4.01278 4.19328 4.11726 4.08976C4.22174 3.98624 4.29703 3.85697 4.3355 3.71501C4.4225 3.39151 4.364 2.99901 4.364 2.66601C4.364 1.74601 5.117 0.999512 6.045 0.999512M6.046 8.99951H7.3075M4.833 6.92451C4.77 6.52451 4.6925 6.52401 4.028 6.49951H3.523C3.2445 6.49951 3.0185 6.72351 3.0185 6.99951V8.49951C3.0185 8.77551 3.2445 8.99951 3.5235 8.99951H4.4315C4.6265 8.99951 4.833 8.84301 4.833 8.64951V8.09951C4.833 8.04451 4.7765 7.94751 4.721 7.94751H4.159M6.046 6.49951H6.6765M6.6765 6.49951H7.3075M6.6765 6.49951V8.93701M10.2505 6.49951H8.989C8.7105 6.49951 8.4845 6.72351 8.4845 6.99951V7.74951M8.4845 7.74951V8.99951M8.4845 7.74951H9.746\"\r\n stroke=\"url(#paint0_linear_748_3387)\"\r\n stroke-width=\"0.75\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n <defs xmlns=\"http://www.w3.org/2000/svg\">\r\n <filter id=\"filter0_d_748_7685\" x=\"0\" y=\"0\" width=\"30\" height=\"30\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset />\r\n <feGaussianBlur stdDeviation=\"2\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 1 0 0 0 0 0.0961538 0 0 0 0 0.593269 0 0 0 1 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_748_7685\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_748_7685\" result=\"shape\" />\r\n </filter>\r\n <linearGradient id=\"paint0_linear_748_7685\" x1=\"14.1509\" y1=\"3.43372\" x2=\"0.992799\" y2=\"26.7715\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FE3C72\" />\r\n <stop offset=\"0.384615\" stop-color=\"#FFB5E9\" />\r\n </linearGradient>\r\n <linearGradient id=\"paint0_linear_748_3387\" x1=\"18.5134\" y1=\"2.81097\" x2=\"0.162773\" y2=\"35.3556\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FE3C72\" />\r\n <stop offset=\"0.384615\" stop-color=\"#FFB5E9\" />\r\n </linearGradient>\r\n </defs>\r\n </svg>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"emoji-picker-space\" [ngStyle]=\"{ 'z-index': !(gifVisibility || emojiVisibility) ? -1 : 11 }\" (blur)=\"onBlurPickerSpace()\">\r\n @if (gifVisibility && enableGifPicker) {\r\n <lib-gif-selector (selectGif)=\"onGifClick($event)\"></lib-gif-selector>\r\n }\r\n @if (emojiPickerOpened) {\r\n <emoji-picker #emojiPicker [ngStyle]=\"{ display: emojiVisibility ? '' : 'none' }\" emoji-version=\"15.0\" (emoji-click)=\"onEmojiclick($event)\"></emoji-picker>\r\n }\r\n </div>\r\n </form>\r\n</div>\r\n", styles: [":host{--height-chat-conversation: 11em;--max-width-container: 27em;--color-background-dark: #1d1b21;--color-chat-other: #453945;--color-chat-user: #403b45;--color-chat-init: #fe3c72;--color-text-white: white;--color-text-gray: rgb(123, 123, 123);--color-background-emoji: #29252d;--color-gradient-start: #746b8381;--color-gradient-end: rgba(0, 0, 0, 0);font-size:clamp(0px,3.2dvw,15px);display:flex;flex-direction:column;width:100%;max-width:var(--max-width-container)}:host .chat-component{display:flex;flex-direction:column;position:relative}:host .chat-component .bottom-gradient-fade{position:absolute;bottom:0;left:0;width:100%;height:40px;background:linear-gradient(180deg,transparent,#27242c);z-index:1;pointer-events:none}:host .chat-component .chat-container{position:relative}:host .chat-component .chat-container .go-button{color:#fff;font-size:1em;position:absolute;bottom:.2em;right:.7em;background-color:var(--color-background-dark);border-radius:50%;width:2em;height:2em;display:flex;justify-content:center;align-items:center;z-index:10}:host .chat-component .chat-container .go-button:hover{cursor:pointer}:host .chat-component .chat-container .dateMessages{display:flex;flex-direction:column;gap:1em;padding-bottom:8px;padding-top:1.6em;height:var(--height-chat-conversation);width:var(--max-width-container);overflow-y:scroll}:host .chat-component .chat-container .dateMessages .chat-item-container{display:flex;flex-direction:column;gap:1em}:host .chat-component .chat-container .dateMessages .chat-item-container .date-message{width:100%;display:flex;justify-content:center;align-items:center;font-size:.861em}:host .chat-component .chat-container .dateMessages .chat-item-container .date-message span{background-color:#000;color:var(--color-text-white);border-radius:1em;padding:.5em}:host .chat-component .chat-container .dateMessages .chat-item-container_user{align-items:flex-end}:host .chat-component .chat-container .dateMessages .chat-item-container_other{align-items:flex-start}:host .chat-component .chat-container .dateMessages .chat-item-container_init{align-items:center}:host .chat-component .chat-container .dateMessages .chat-item{max-width:80%;min-height:3.5em;padding:1em;border-radius:1.076em;position:relative;box-shadow:0 4px 4px #00000040}:host .chat-component .chat-container .dateMessages .chat-item .chat-item_text{font-size:.861em;color:var(--color-text-white);word-break:break-word;overflow-wrap:break-word;hyphens:auto}:host .chat-component .chat-container .dateMessages .chat-item .chat-item_image{width:7em;height:auto}:host .chat-component .chat-container .dateMessages .chat-item .chat-item_timestamp{margin-top:.2em;font-size:.8em;color:var(--color-text-gray);text-align:end}:host .chat-component .chat-container .dateMessages .chat-item:before{content:\"\";position:absolute;inset:0;border-radius:1.076em;padding:.05em;background:linear-gradient(180deg,var(--color-gradient-start),var(--color-gradient-end) 50%);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}:host .chat-component .chat-container .dateMessages .other-chat{background-color:var(--color-chat-other);border-bottom-left-radius:0}:host .chat-component .chat-container .dateMessages .user-chat{background-color:var(--color-chat-user);border-bottom-right-radius:0}:host .chat-component .chat-container .dateMessages .init-chat{min-height:2em;padding:.7em;background-color:var(--color-chat-init)}:host .chat-component .chat-container .dateMessages .init-chat .chat-item_text{font-size:.761em;color:#000}:host .chat-component .chat-container .dateMessages .other-chat:before{border-bottom-left-radius:0!important}:host .chat-component .chat-container .dateMessages .user-chat:before{border-bottom-right-radius:0!important}:host .message-sender{position:relative}:host .message-sender lib-input-field{--input-font-size: calc(clamp(0px, 3.2dvw, 15px)*.8) ;--input-padding: calc(clamp(0px, 3.2dvw, 15px)*1.2) calc(clamp(0px, 3.2dvw, 15px)*3.5) calc(clamp(0px, 3.2dvw, 15px)*1.2) calc(clamp(0px, 3.2dvw, 15px)*1.6) ;--placeholder-font-size: calc(clamp(0px, 3.2dvw, 15px)*.8) ;--textarea-height: calc(clamp(0px, 3.2dvw, 15px)*7) }:host .message-sender .chat-buttons .send,:host .message-sender .chat-buttons .emoji,:host .message-sender .chat-buttons .attach,:host .message-sender .chat-buttons .gifs{position:absolute;right:.6em;width:1.7em;height:1.7em;border-radius:50%;z-index:10}:host .message-sender .chat-buttons .send:hover,:host .message-sender .chat-buttons .emoji:hover,:host .message-sender .chat-buttons .attach:hover,:host .message-sender .chat-buttons .gifs:hover{cursor:pointer}:host .message-sender .chat-buttons .send{top:.9em}:host .message-sender .chat-buttons .send svg{width:1.7em;height:1.9em}:host .message-sender .chat-buttons .emoji{top:3.1em}:host .message-sender .chat-buttons .emoji svg{overflow:visible;width:2.33em;height:1.848em}:host .message-sender .chat-buttons .emoji svg mask{width:.733em;height:1.466em}:host .message-sender .chat-buttons .attach{top:5em;background-color:#87ceeb}:host .message-sender .chat-buttons .gifs{top:5em}:host .message-sender .chat-buttons .gifs svg{width:1.166em;height:1.2984em;margin-left:.25em}:host .message-sender .emoji-picker-space{position:absolute;top:-12em;height:12em;width:100%}:host .message-sender .emoji-picker-space emoji-picker{--background: var(--color-background-emoji);height:100%;width:100%;--input-font-size: .8em;--input-font-color: var(--color-text-white)}\n"] }]
|
|
271
|
+
}], propDecorators: { default: [{
|
|
272
|
+
type: Input
|
|
273
|
+
}], responseTime: [{
|
|
274
|
+
type: Input
|
|
275
|
+
}], inputValue: [{
|
|
276
|
+
type: Input
|
|
277
|
+
}], emojiPickerConfig: [{
|
|
278
|
+
type: Input
|
|
279
|
+
}], includeGifMessage: [{
|
|
280
|
+
type: Input
|
|
281
|
+
}], includeTime: [{
|
|
282
|
+
type: Input
|
|
283
|
+
}], dateMessages: [{
|
|
284
|
+
type: Input
|
|
285
|
+
}], maxLength: [{
|
|
286
|
+
type: Input
|
|
287
|
+
}], enableGifPicker: [{
|
|
288
|
+
type: Input
|
|
289
|
+
}], prospectJoinDate: [{
|
|
290
|
+
type: Input
|
|
291
|
+
}], sendMessage: [{
|
|
292
|
+
type: Output
|
|
293
|
+
}], getMessages: [{
|
|
294
|
+
type: Output
|
|
295
|
+
}], disabled: [{
|
|
296
|
+
type: Input
|
|
297
|
+
}], emojiPickerRef: [{
|
|
298
|
+
type: ViewChild,
|
|
299
|
+
args: ['emojiPicker']
|
|
300
|
+
}], scrollableContainer: [{
|
|
301
|
+
type: ViewChild,
|
|
302
|
+
args: ['scrollableContainer']
|
|
303
|
+
}], chatInput: [{
|
|
304
|
+
type: ViewChild,
|
|
305
|
+
args: ['chatInput']
|
|
306
|
+
}] } });
|
|
307
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtY29tcG9uZW50cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NoYXQvY2hhdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtY29tcG9uZW50cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NoYXQvY2hhdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUlMLE1BQU0sRUFDTixTQUFTLEVBRVQsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDckcsT0FBTyxFQUF1QixpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7OztBQWV0RSxNQUFNLE9BQU8sYUFBYTtJQWIxQjtRQWNXLFlBQU8sR0FBYSxLQUFLLENBQUM7UUFDMUIsaUJBQVksR0FBWSxhQUFhLENBQUM7UUFTL0MscURBQXFEO1FBQzVDLHNCQUFpQixHQUFZLElBQUksQ0FBQztRQUMzQyxvREFBb0Q7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RUcsV0FBVztzQkFBcEIsTUFBTTtnQkFFRSxRQUFRO3NCQUFoQixLQUFLO2dCQUVvQixjQUFjO3NCQUF2QyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ1UsbUJBQW1CO3NCQUFwRCxTQUFTO3VCQUFDLHFCQUFxQjtnQkFDUixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCAnZW1vamktcGlja2VyLWVsZW1lbnQnO1xyXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFbW9qaVBpY2tlckNvbmZpZyB9IGZyb20gJ0BuYW5pdGVuaW5qYS9pb25pYy1saWInO1xyXG5pbXBvcnQgeyBMaWJNZXNzYWdlTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2hhcmVkL21lc3NhZ2UtbW9kYWwvbWVzc2FnZS1tb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dEZpZWxkQ29tcG9uZW50LCBQb3B1cE1vZGFsU2VydmljZSB9IGZyb20gJ0BuYW5pdGVuaW5qYS9pb25pYy1saWInO1xyXG5pbXBvcnQgeyBDaGF0U2VydmljZSB9IGZyb20gJy4vY2hhdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VuZGVyVHlwZXMgfSBmcm9tICcuL2VudW1zL3NlbmRlci10eXBlcy5lbnVtJztcclxuaW1wb3J0IHsgSURhdGVNZXNzYWdlcyB9IGZyb20gJy4vaW50ZXJmYWNlcy9kYXRlLW1lc3NhZ2VzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IElNZXNzYWdlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL21lc3NhZ2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgU2VuZE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3R5cGUtc2VuZC1tZXNzYWdlLmVudW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY2hhdCcsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogQ2hhdENvbXBvbmVudCxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NoYXQuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIENoYXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBkZWZhdWx0PzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNlVGltZT86IHN0cmluZyA9ICcwNWggMDRtIDM1cyc7XHJcbiAgLy8gUHJlLWZpbGxlZCBpbnB1dCB2YWx1ZVxyXG4gIEBJbnB1dCgpIHNldCBpbnB1dFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLnRleHRDb250cm9sLnNldFZhbHVlKHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gQ29uZmlndXJhdGlvbiBvZiBlbW9qaVBpY2tlci4gTXVzdCBiZSBhZGRlZFxyXG4gIEBJbnB1dCgpIGVtb2ppUGlja2VyQ29uZmlnOiBFbW9qaVBpY2tlckNvbmZpZztcclxuICAvLyB3aGV0aGVyIGdpZnMgYXMgYSBtZXNzYWdlIHNob3VsZCBiZSBhbGxvd2VkIG9yIG5vdFxyXG4gIEBJbnB1dCgpIGluY2x1ZGVHaWZNZXNzYWdlOiBib29sZWFuID0gdHJ1ZTtcclxuICAvLyB3aGV0aGVyIHRpbWVzdGFtcCBzdHlsZXMgc2hvdWxkIGJlIGFsbG93ZWQgb3Igbm90XHJcbiAgQElucHV0KCkgaW5jbHVkZVRpbWU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIC8vIGludGVyZmFjZSBmb3IgbWVzc2FnZXMgdG8gZ3JvdXBtIHRoZW0gaW4gZGF0ZXNcclxuICBASW5wdXQoKSBzZXQgZGF0ZU1lc3NhZ2VzKHZhbHVlOiBJTWVzc2FnZVtdKSB7XHJcbiAgICB0aGlzLm1lc3NhZ2VzID0gdGhpcy5jaGF0U2VydmljZS50cmFuc2Zvcm1NZXNzYWdlcyh2YWx1ZSk7XHJcbiAgfVxyXG4gIC8vIG1heCBsZW5ndGggZm9yIHRleHRhcmVhIGlucHV0XHJcbiAgQElucHV0KCkgbWF4TGVuZ3RoOiBudW1iZXIgPSAxMDA7XHJcblxyXG4gIEBJbnB1dCgpIGVuYWJsZUdpZlBpY2tlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwcm9zcGVjdEpvaW5EYXRlOiBEYXRlO1xyXG5cclxuICAvLyBzZW5kIG1lc3NhZ2UgZW1pdHRlclxyXG4gIEBPdXRwdXQoKSBzZW5kTWVzc2FnZSA9IG5ldyBFdmVudEVtaXR0ZXI8SU1lc3NhZ2U+KCk7XHJcbiAgLy8gc2Nyb2xsZXItdXAgZXZlbnQgdG8gZ2V0IG9sZGVyIG1lc3NhZ2VzXHJcbiAgQE91dHB1dCgpIGdldE1lc3NhZ2VzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAVmlld0NoaWxkKCdlbW9qaVBpY2tlcicpIGVtb2ppUGlja2VyUmVmOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbGFibGVDb250YWluZXInKSBzY3JvbGxhYmxlQ29udGFpbmVyOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2NoYXRJbnB1dCcpIGNoYXRJbnB1dDogSW5wdXRGaWVsZENvbXBvbmVudDtcclxuXHJcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcclxuICBwcml2YXRlIHBvcHVwTW9kYWxTZXJ2aWNlID0gaW5qZWN0KFBvcHVwTW9kYWxTZXJ2aWNlKTtcclxuICBwcml2YXRlIGNoYXRTZXJ2aWNlID0gaW5qZWN0KENoYXRTZXJ2aWNlKTtcclxuICBwcml2YXRlIHBlbmRpbmdNZXNzYWdlOiBJTWVzc2FnZSB8IG51bGw7XHJcbiAgcHJpdmF0ZSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xyXG5cclxuICBwdWJsaWMgc2Nyb2xsVGhyZXNob2xkID0gMjAwO1xyXG4gIHB1YmxpYyBtZXNzYWdlczogSURhdGVNZXNzYWdlc1tdID0gW107XHJcblxyXG4gIHB1YmxpYyB0ZXh0Q29udHJvbDogRm9ybUNvbnRyb2w8c3RyaW5nPiA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XHJcblxyXG4gIHB1YmxpYyBiYXNlNjRJbWFnZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHB1YmxpYyBlbW9qaVZpc2liaWxpdHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZ2lmVmlzaWJpbGl0eTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBpc0F0U3RhcnRDaGF0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGVtb2ppUGlja2VyT3BlbmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBwb3M6IHN0cmluZyA9ICcnO1xyXG5cclxuICBwdWJsaWMgbG9uZ1ByZXNzRW5hYmxlZDogYm9vbGVhbjtcclxuICBwdWJsaWMgdGhyb3R0bGUgPSAwO1xyXG4gIHB1YmxpYyBkaXN0YW5jZSA9IDA7XHJcbiAgcHVibGljIHJlYWRvbmx5IE1vZGFsQ29tcG9uZW50ID0gTGliTWVzc2FnZU1vZGFsQ29tcG9uZW50O1xyXG5cclxuICBwcml2YXRlIGRvY3VtZW50Q2xpY2tMaXN0ZW5lcjogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnByb3NwZWN0Sm9pbkRhdGUpIHtcclxuICAgICAgdGhpcy5wcm9zcGVjdEpvaW5EYXRlID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYXRTZXJ2aWNlLmlzTG9uZ1ByZXNzRm9yU2VuZEltbWVkaWF0ZWx5KCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMubG9uZ1ByZXNzRW5hYmxlZCA9IHJlcztcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMudGV4dENvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbW92ZUVtb2ppUGlja2VyQ2xpY2tMaXN0ZW5lcigpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZW1vamlQaWNrZXJDb25maWc/LnN0eWxlKSB7XHJcbiAgICAgIGlmICh0aGlzLmVtb2ppUGlja2VyUmVmPy5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xyXG4gICAgICAgIHN0eWxlLnRleHRDb250ZW50ID0gdGhpcy5lbW9qaVBpY2tlckNvbmZpZy5zdHlsZTtcclxuICAgICAgICB0aGlzLmVtb2ppUGlja2VyUmVmLm5hdGl2ZUVsZW1lbnQuc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzdHlsZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNjcm9sbFRvQm90dG9tKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuc2Nyb2xsYWJsZUNvbnRhaW5lcikgcmV0dXJuO1xyXG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5zY3JvbGxhYmxlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCBzY3JvbGxUb3AgPSBjb250YWluZXIuc2Nyb2xsVG9wO1xyXG4gICAgY29uc3Qgc2Nyb2xsSGVpZ2h0ID0gY29udGFpbmVyLnNjcm9sbEhlaWdodDtcclxuICAgIGNvbnN0IGNsaWVudEhlaWdodCA9IGNvbnRhaW5lci5jbGllbnRIZWlnaHQ7XHJcblxyXG4gICAgaWYgKCEoc2Nyb2xsVG9wIDwgc2Nyb2xsSGVpZ2h0IC0gY2xpZW50SGVpZ2h0IC0gdGhpcy5zY3JvbGxUaHJlc2hvbGQpKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsVG9Cb3R0b20oKTtcclxuICAgICAgfSwgMjAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNjcm9sbENoYXRzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRNZXNzYWdlcy5lbWl0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2Nyb2xsTmV3TWVzc2FnZSgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuaXNBdFN0YXJ0Q2hhdCkgdGhpcy5zY3JvbGxUb0JvdHRvbSgpO1xyXG4gICAgfSwgMjAwKTtcclxuICB9XHJcblxyXG4gIG9uU2Nyb2xsTWVzc2FnZXMoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLnNjcm9sbGFibGVDb250YWluZXIubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IHNjcm9sbFRvcCA9IGNvbnRhaW5lci5zY3JvbGxUb3A7XHJcbiAgICBjb25zdCBzY3JvbGxIZWlnaHQgPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0O1xyXG4gICAgY29uc3QgY2xpZW50SGVpZ2h0ID0gY29udGFpbmVyLmNsaWVudEhlaWdodDtcclxuXHJcbiAgICB0aGlzLmlzQXRTdGFydENoYXQgPSBzY3JvbGxUb3AgPCBzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQgLSB0aGlzLnNjcm9sbFRocmVzaG9sZDtcclxuICB9XHJcblxyXG4gIHNjcm9sbFRvQm90dG9tKCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5zY3JvbGxhYmxlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb250YWluZXIuc2Nyb2xsVG9wID0gY29udGFpbmVyLnNjcm9sbEhlaWdodDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkVtb2ppY2xpY2soZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBlbW9qaSA9IGV2ZW50LmRldGFpbC51bmljb2RlO1xyXG4gICAgaWYgKHRoaXMuY2hhdElucHV0LmlucHV0RmllbGRSZWYpIHtcclxuICAgICAgY29uc3QgdGV4dEFyZWFFbGVtZW50ID0gdGhpcy5jaGF0SW5wdXQuaW5wdXRGaWVsZFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICBjb25zdCBzdGFydCA9IHRleHRBcmVhRWxlbWVudC5zZWxlY3Rpb25TdGFydCA/PyAwO1xyXG4gICAgICBjb25zdCBlbmQgPSB0ZXh0QXJlYUVsZW1lbnQuc2VsZWN0aW9uRW5kID8/IDA7XHJcblxyXG4gICAgICBjb25zdCBjdXJyZW50VGV4dCA9IHRoaXMudGV4dENvbnRyb2wudmFsdWUgfHwgJyc7XHJcbiAgICAgIGNvbnN0IG5ld1RleHQgPSBjdXJyZW50VGV4dC5zbGljZSgwLCBzdGFydCkgKyBlbW9qaSArIGN1cnJlbnRUZXh0LnNsaWNlKGVuZCk7XHJcblxyXG4gICAgICB0aGlzLnRleHRDb250cm9sLnNldFZhbHVlKG5ld1RleHQpO1xyXG5cclxuICAgICAgLy8gUmVwb3NpY2lvbmEgZWwgY3Vyc29yIGRlc3B1w6lzIGRlbCBlbW9qaVxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0ZXh0QXJlYUVsZW1lbnQuZm9jdXMoKTsgLy8gQXNlZ3VyYSBxdWUgZWwgdGV4dGFyZWEgcmVjdXBlcmUgZWwgZm9jb1xyXG4gICAgICAgIHRleHRBcmVhRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCArIGVtb2ppLmxlbmd0aCwgc3RhcnQgKyBlbW9qaS5sZW5ndGgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVFbW9qaVBpY2tlckNsaWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGVmYXVsdCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5lbW9qaVBpY2tlck9wZW5lZCA9IHRydWU7XHJcblxyXG4gICAgaWYgKHRoaXMuZ2lmVmlzaWJpbGl0eSkge1xyXG4gICAgICB0aGlzLmdpZlZpc2liaWxpdHkgPSAhdGhpcy5naWZWaXNpYmlsaXR5O1xyXG4gICAgfVxyXG4gICAgdGhpcy5lbW9qaVZpc2liaWxpdHkgPSAhdGhpcy5lbW9qaVZpc2liaWxpdHk7XHJcblxyXG4gICAgaWYgKHRoaXMuZ2lmVmlzaWJpbGl0eSB8fCB0aGlzLmVtb2ppVmlzaWJpbGl0eSkge1xyXG4gICAgICB0aGlzLnNldHVwRW1vamlQaWNrZXJDbGlja0xpc3RlbmVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlR2lmUGlja2VyQ2xpY2soKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5lbW9qaVZpc2liaWxpdHkpIHtcclxuICAgICAgdGhpcy5lbW9qaVZpc2liaWxpdHkgPSAhdGhpcy5lbW9qaVZpc2liaWxpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5naWZWaXNpYmlsaXR5ID0gIXRoaXMuZ2lmVmlzaWJpbGl0eTtcclxuXHJcbiAgICBpZiAodGhpcy5naWZWaXNpYmlsaXR5IHx8IHRoaXMuZW1vamlWaXNpYmlsaXR5KSB7XHJcbiAgICAgIHRoaXMuc2V0dXBFbW9qaVBpY2tlckNsaWNrTGlzdGVuZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkdpZkNsaWNrKHVybDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kZWZhdWx0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IG5ld01lc3NhZ2U6IElNZXNzYWdlID0ge1xyXG4gICAgICBzZW5kZXI6IFNlbmRlclR5cGVzLlVTRVIsXHJcbiAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKSxcclxuICAgICAgbWVzc2FnZTogJycsXHJcbiAgICAgIGF0dGFjaG1lbnRzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdHlwZTogJ2dpZicsXHJcbiAgICAgICAgICB1cmwsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5wZW5kaW5nTWVzc2FnZSA9IG5ld01lc3NhZ2U7XHJcbiAgICB0aGlzLm9uU2VuZE1lc3NhZ2VNb2RhbCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2VuZE1lc3NhZ2VNb2RhbCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG1vZGFsRGF0YSA9IHtcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHJlc3BvbnNlVGltZTogdGhpcy5yZXNwb25zZVRpbWUsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgdGhpcy5wb3B1cE1vZGFsU2VydmljZVxyXG4gICAgICAuc2hvdyh0aGlzLk1vZGFsQ29tcG9uZW50LCBtb2RhbERhdGEpXHJcbiAgICAgIC5hZnRlckNsb3NlLnBpcGUoZmlyc3QoKSlcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICAgIHRoaXMucGVuZGluZ01lc3NhZ2Uuc2VuZE9wdGlvbnMgPSB7XHJcbiAgICAgICAgICB0eXBlOiBkYXRhLnR5cGUsXHJcbiAgICAgICAgICBhcnJpdmFsRGF0ZTogZGF0YS5hcnJpdmFsRGF0ZSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmxvbmdQcmVzc0VuYWJsZWQgPSBkYXRhLmxvbmdQcmVzc0VuYWJsZWQ7XHJcblxyXG4gICAgICAgIHRoaXMub25TZW5kKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5wb3B1cE1vZGFsU2VydmljZS5zZXRWYWx1ZXMoeyBjdXN0b21DbGFzczogJ21lc3NhZ2UtbW9kYWwtY29udGFpbmVyJyB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNlbmRUZXh0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zYXZlUGVuZGluZ01lc3NhZ2UoKTtcclxuICAgIHRoaXMub25TZW5kTWVzc2FnZU1vZGFsKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZVBlbmRpbmdNZXNzYWdlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudGV4dENvbnRyb2wudmFsdWUudHJpbSgpO1xyXG4gICAgaWYgKG1lc3NhZ2UudHJpbSgpKSB7XHJcbiAgICAgIGNvbnN0IG5ld01lc3NhZ2U6IElNZXNzYWdlID0ge1xyXG4gICAgICAgIHNlbmRlcjogU2VuZGVyVHlwZXMuVVNFUixcclxuICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCksXHJcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcclxuICAgICAgICBhdHRhY2htZW50czogW10sXHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLnBlbmRpbmdNZXNzYWdlID0gbmV3TWVzc2FnZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNlbmQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdpZlZpc2liaWxpdHkgPSBmYWxzZTtcclxuICAgIHRoaXMuZW1vamlWaXNpYmlsaXR5ID0gZmFsc2U7XHJcbiAgICB0aGlzLnRleHRDb250cm9sLnNldFZhbHVlKCcnKTtcclxuICAgIHRoaXMuaGFuZGxlU2Nyb2xsTmV3TWVzc2FnZSgpO1xyXG4gICAgdGhpcy5zZW5kTWVzc2FnZS5lbWl0KHRoaXMucGVuZGluZ01lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICB0aGlzLm9uU2VuZFRleHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25Mb25nUHJlc3MoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNhdmVQZW5kaW5nTWVzc2FnZSgpO1xyXG4gICAgdGhpcy5wZW5kaW5nTWVzc2FnZS5zZW5kT3B0aW9ucyA9IHtcclxuICAgICAgdHlwZTogU2VuZE1lc3NhZ2VUeXBlLklOTUVESUFURUxZLFxyXG4gICAgICBhcnJpdmFsRGF0ZTogbmV3IERhdGUoKSxcclxuICAgIH07XHJcbiAgICB0aGlzLm9uU2VuZCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkJsdXJQaWNrZXJTcGFjZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2lmVmlzaWJpbGl0eSA9IGZhbHNlO1xyXG4gICAgdGhpcy5lbW9qaVZpc2liaWxpdHkgPSBmYWxzZTtcclxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgdGhpcy5yZW1vdmVFbW9qaVBpY2tlckNsaWNrTGlzdGVuZXIoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBFbW9qaVBpY2tlckNsaWNrTGlzdGVuZXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXIpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdjbGljaycsIChldmVudDogRXZlbnQpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XHJcbiAgICAgICAgdGhpcy5vbkJsdXJQaWNrZXJTcGFjZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlRW1vamlQaWNrZXJDbGlja0xpc3RlbmVyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyKSB7XHJcbiAgICAgIHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyKCk7XHJcbiAgICAgIHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNoYXQtY29tcG9uZW50XCI+XHJcbiAgPGRpdiBjbGFzcz1cImNoYXQtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZ28tYnV0dG9uXCIgKm5nSWY9XCJpc0F0U3RhcnRDaGF0XCIgKGNsaWNrKT1cInNjcm9sbFRvQm90dG9tKClcIj7ihpM8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJkYXRlTWVzc2FnZXNcIlxyXG4gICAgICAjc2Nyb2xsYWJsZUNvbnRhaW5lclxyXG4gICAgICBpbmZpbml0ZVNjcm9sbFxyXG4gICAgICBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCJkaXN0YW5jZVwiXHJcbiAgICAgIFtpbmZpbml0ZVNjcm9sbFRocm90dGxlXT1cInRocm90dGxlXCJcclxuICAgICAgW3Njcm9sbFdpbmRvd109XCJmYWxzZVwiXHJcbiAgICAgIChzY3JvbGxlZFVwKT1cIm9uU2Nyb2xsQ2hhdHMoKVwiXHJcbiAgICAgIChzY3JvbGwpPVwib25TY3JvbGxNZXNzYWdlcygkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cImNoYXQtaXRlbS1jb250YWluZXIgY2hhdC1pdGVtLWNvbnRhaW5lcl9pbml0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtbWVzc2FnZVwiPlxyXG4gICAgICAgICAgPHNwYW4+e3sgcHJvc3BlY3RKb2luRGF0ZSA/IChwcm9zcGVjdEpvaW5EYXRlIHwgZGF0ZTogJ01NTSBkLCBISDptbScpIDogJy0nIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGF0LWl0ZW0gaW5pdC1jaGF0XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhdC1pdGVtX3RleHRcIj57eyAnQ0hBVC5JTklUSUFMX1RFWFQnIHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGRhdGVNZXNzYWdlIG9mIG1lc3NhZ2VzXCJcclxuICAgICAgICBjbGFzcz1cImNoYXQtaXRlbS1jb250YWluZXJcIlxyXG4gICAgICAgIFtjbGFzcy5jaGF0LWl0ZW0tY29udGFpbmVyX3VzZXJdPVwiZGF0ZU1lc3NhZ2UubWVzc2FnZS5zZW5kZXIgPT09ICd1c2VyJ1wiXHJcbiAgICAgICAgW2NsYXNzLmNoYXQtaXRlbS1jb250YWluZXJfb3RoZXJdPVwiZGF0ZU1lc3NhZ2UubWVzc2FnZS5zZW5kZXIgPT09ICdvdGhlcidcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtbWVzc2FnZVwiICpuZ0lmPVwiZGF0ZU1lc3NhZ2UuaXNGaXJzdE1lc3NhZ2UgJiYgaW5jbHVkZVRpbWVcIj5cclxuICAgICAgICAgIDxzcGFuPnt7IGRhdGVNZXNzYWdlLmRhdGUgfCBkYXRlOiAnTU1NIGQnIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGF0LWl0ZW1cIiBbY2xhc3MudXNlci1jaGF0XT1cImRhdGVNZXNzYWdlLm1lc3NhZ2Uuc2VuZGVyID09PSAndXNlcidcIiBbY2xhc3Mub3RoZXItY2hhdF09XCJkYXRlTWVzc2FnZS5tZXNzYWdlLnNlbmRlciA9PT0gJ290aGVyJ1wiPlxyXG4gICAgICAgICAgQGlmIChkYXRlTWVzc2FnZS5tZXNzYWdlLm1lc3NhZ2UgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGF0LWl0ZW1fdGV4dFwiPnt7IGRhdGVNZXNzYWdlLm1lc3NhZ2UubWVzc2FnZSB9fTwvZGl2PlxyXG4gICAgICAgICAgfSBAZWxzZSBpZiAoZGF0ZU1lc3NhZ2UubWVzc2FnZS5hdHRhY2htZW50c1swXS51cmwgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjaGF0LWl0ZW1faW1hZ2VcIiBbc3JjXT1cImRhdGVNZXNzYWdlLm1lc3NhZ2UuYXR0YWNobWVudHNbMF0udXJsXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGF0LWl0ZW1fdGltZXN0YW1wXCIgKm5nSWY9XCJpbmNsdWRlVGltZVwiPlxyXG4gICAgICAgICAgICB7eyBkYXRlTWVzc2FnZS5tZXNzYWdlLnRpbWVzdGFtcCB8IGRhdGU6ICdzaG9ydFRpbWUnIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJib3R0b20tZ3JhZGllbnQtZmFkZVwiPjwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGxpYkZvY3VzSW52YWxpZElucHV0ICpuZ0lmPVwidGV4dENvbnRyb2xcIiBjbGFzcz1cIm1lc3NhZ2Utc2VuZGVyXCI+XHJcbiAgICA8bGliLWlucHV0LWZpZWxkXHJcbiAgICAgICNjaGF0SW5wdXRcclxuICAgICAgW2Zvcm1Db250cm9sXT1cInRleHRDb250cm9sXCJcclxuICAgICAgW3ZhbHVlXT1cIm5ld1RleHRNZXNzYWdlXCJcclxuICAgICAgW2xhYmVsXT1cIlwiXHJcbiAgICAgIFt0ZXh0YXJlYV09XCJ0cnVlXCJcclxuICAgICAgcGxhY2Vob2xkZXI9XCJTZW5kIE1lc3NhZ2UgdG8gQ2xpZW50IFByb3NwZWN0XCJcclxuICAgICAgKGtleURvd24pPVwib25LZXlEb3duKCRldmVudClcIlxyXG4gICAgICBbbWF4TGVuZ3RoXT1cIm1heExlbmd0aFwiXHJcbiAgICA+XHJcbiAgICA8L2xpYi1pbnB1dC1maWVsZD5cclxuICAgIDxkaXYgY2xhc3M9XCJjaGF0LWJ1dHRvbnNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNlbmRcIiBsaWJMb25nUHJlc3MgW2xvbmdQcmVzc0VuYWJsZWRdPVwibG9uZ1ByZXNzRW5hYmxlZFwiIChzaG9ydFByZXNzKT1cIm9uU2VuZFRleHQoKVwiIChsb25nUHJlc3MpPVwib25Mb25nUHJlc3MoKVwiPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjMgMjJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfNzQ4XzMzODcpXCI+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0xNC42MzExIDE3LjA1NDVMMTguMzIyOSA1Ljg1OTk2QzE4LjY5MiA0Ljc3ODY3IDE3LjY0NiAzLjY5NzM4IDE2LjYwMDEgNC4wNzkwMUw1Ljc3MDkyIDcuODk1MzNDNC41NDAzMyA4LjM0MDU2IDQuNTQwMzMgMTAuMTIxNSA1LjgzMjQ0IDEwLjUwMzJMOS40NjI2NiAxMS41MjA4QzEwLjI2MjUgMTEuNzc1MyAxMC45Mzk0IDEyLjQxMTMgMTEuMTIzOSAxMy4yMzgxTDEyLjEwODQgMTYuOTkwOEMxMi40Nzc2IDE4LjMyNjYgMTQuMjAwNCAxOC4zMjY2IDE0LjYzMTEgMTcuMDU0NVpcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCJ1cmwoI3BhaW50MF9saW5lYXJfNzQ4XzMzODcpXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZz5cclxuICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzc0OF8zMzg3XCIgeD1cIjAuODU1NTNcIiB5PVwiMC4wMDA3MzI0MjJcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIgLz5cclxuICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIgLz5cclxuICAgICAgICAgICAgICA8ZmVPZmZzZXQgLz5cclxuICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMlwiIC8+XHJcbiAgICAgICAgICAgICAgPGZlQ29tcG9zaXRlIGluMj1cImhhcmRBbHBoYVwiIG9wZXJhdG9yPVwib3V0XCIgLz5cclxuICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAxIDAgMCAwIDAgMC4wOTYxNTM4IDAgMCAwIDAgMC41OTMyNjkgMCAwIDAgMSAwXCIgLz5cclxuICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93Xzc0OF8zMzg3XCIgLz5cclxuICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93Xzc0OF8zMzg3XCIgcmVzdWx0PVwic2hhcGVcIiAvPlxyXG4gICAgICAgICAgICA8L2ZpbHRlcj5cclxuICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPVwicGFpbnQwX2xpbmVhcl83NDhfMzM4N1wiIHgxPVwiMTguNTEzNFwiIHkxPVwiMi44MTA5N1wiIHgyPVwiMC4xNjI3NzNcIiB5Mj1cIjM1LjM1NTZcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cclxuICAgICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPVwiI0ZFM0M3MlwiIC8+XHJcbiAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMC4zODQ2MTVcIiBzdG9wLWNvbG9yPVwiI0ZGQjVFOVwiIC8+XHJcbiAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bGliLXBvcHVwIGN1c3RvbUNsYXNzPVwibWVzc2FnZS1tb2RhbC1jb250YWluZXJcIiBbaXNPcGVuXT1cInRvZ2dsZU1lc3NhZ2VNb2RhbFwiIFttb2RhbENvbXBvbmVudF09XCJNb2RhbENvbXBvbmVudFwiIFttb2RhbENvbXBvbmVudERhdGFdPVwieyBtb2RhbDoge30gfVwiPiA8L2xpYi1wb3B1cD5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2Vtb2ppLXBpY2tlci10cmlnZ2VyJzogdHJ1ZSwgYWN0aXZlOiBlbW9qaVZpc2liaWxpdHkgfVwiXHJcbiAgICAgICAgW25hbWVdPVwiZW1vamlQaWNrZXJDb25maWc/LnBpY2tlckljb24gPyAnJyA6ICdib2R5LW91dGxpbmUnXCJcclxuICAgICAgICAoY2xpY2spPVwiaGFuZGxlRW1vamlQaWNrZXJDbGljaygpXCJcclxuICAgICAgICBbc3JjXT1cImVtb2ppUGlja2VyQ29uZmlnPy5waWNrZXJJY29uXCJcclxuICAgICAgICBjbGFzcz1cImVtb2ppXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIG92ZXJmbG93PVwiYXV0b1wiPlxyXG4gICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgIDxtYXNrIGlkPVwicGF0aC0xLW91dHNpZGUtMV80MjJfMzQxNFwiIG1hc2tVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgeD1cIi0wLjcyNTUxXCIgeT1cIi0wLjcxMzc3NlwiIGZpbGw9XCJ1cmwoI3BhaW50MF9saW5lYXJfNzQ4XzMzODcpXCI+XHJcbiAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9XCJNNS4xMzA1NyAwLjI4NjIyNEM3LjgxMjUzIDAuMjg2MjI0IDkuOTg2NjUgMi41MzM3MyA5Ljk4NjY1IDUuMzA2MjNDOS45ODY2NSA4LjA3ODIzIDcuODEyMDUgMTAuMzI1MiA1LjEzMDU3IDEwLjMyNTJDMi40NDg2MSAxMC4zMjU3IDAuMjc0NDkgOC4wNzgyMyAwLjI3NDQ5IDUuMzA2MjNDMC4yNzQ0OSAyLjUzMzczIDIuNDQ4NjEgMC4yODYyMjQgNS4xMzA1NyAwLjI4NjIyNFpNNS4xMzA1NyAxLjAzOTA4QzQuNTg0NzYgMS4wMzI5NiA0LjA0MzIgMS4xMzg4IDMuNTM3MjMgMS4zNTA0OUMzLjAzMTI2IDEuNTYyMTggMi41NzA5MiAxLjg3NTUgMi4xODI4NyAyLjI3MjMzQzEuNzk0ODIgMi42NjkxNSAxLjQ4Njc1IDMuMTQxNiAxLjI3NjUgMy42NjIzM0MxLjA2NjI1IDQuMTgzMDUgMC45NTc5OSA0Ljc0MTcyIDAuOTU3OTkgNS4zMDU5OEMwLjk1Nzk5IDUuODcwMjUgMS4wNjYyNSA2LjQyODkxIDEuMjc2NSA2Ljk0OTY0QzEuNDg2NzUgNy40NzAzNiAxLjc5NDgyIDcuOTQyODEgMi4xODI4NyA4LjMzOTY0QzIuNTcwOTIgOC43MzY0NiAzLjAzMTI2IDkuMDQ5NzkgMy41MzcyMyA5LjI2MTQ3QzQuMDQzMiA5LjQ3MzE2IDQuNTg0NzYgOS41NzkwMSA1LjEzMDU3IDkuNTcyODlDNi4yMTc1MiA5LjU2MDcgNy4yNTU5NCA5LjEwNTc5IDguMDIwMzkgOC4zMDY5MUM4Ljc4NDg1IDcuNTA4MDQgOS4yMTM2MiA2LjQyOTY5IDkuMjEzNjIgNS4zMDU5OEM5LjIxMzYyIDQuMTgyMjggOC43ODQ4NSAzLjEwMzkzIDguMDIwMzkgMi4zMDUwNUM3LjI1NTk0IDEuNTA2MTggNi4yMTc1MiAxLjA1MTI2IDUuMTMwNTcgMS4wMzkwOFpNMy40MTI4MyA2LjcwMzAyQzMuNjE3MTggNi45NzE5MyAzLjg3ODAzIDcuMTg5MjUgNC4xNzU2MyA3LjMzODU1QzQuNDczMjMgNy40ODc4NSA0Ljc5OTc4IDcuNTY1MjIgNS4xMzA1NyA3LjU2NDc5QzUuNDYxIDcuNTY1MiA1Ljc4NzIxIDcuNDg3OTggNi4wODQ1MyA3LjMzODk1QzYuMzgxODYgNy4xODk5MiA2LjY0MjUzIDYuOTcyOTggNi44NDY4NSA2LjcwNDUzQzYuODc2NSA2LjY2NTc0IDYuOTEzMjUgNi42MzMzNyA2Ljk1NSA2LjYwOTI2QzYuOTk2NzUgNi41ODUxNSA3LjA0MjY4IDYuNTY5NzggNy4wOTAxOCA2LjU2NDAzQzcuMTM3NjcgNi41NTgyNyA3LjE4NTggNi41NjIyNCA3LjIzMTgxIDYuNTc1NzFDNy4yNzc4MiA2LjU4OTE5IDcuMzIwODIgNi42MTE5IDcuMzU4MzQgNi42NDI1NEM3LjM5NTg2IDYuNjczMTkgNy40MjcxNyA2LjcxMTE4IDcuNDUwNDkgNi43NTQzNEM3LjQ3MzgxIDYuNzk3NSA3LjQ4ODY4IDYuODQ0OTggNy40OTQyNSA2Ljg5NDA4QzcuNDk5ODIgNi45NDMxOCA3LjQ5NTk4IDYuOTkyOTMgNy40ODI5NCA3LjA0MDVDNy40Njk5MSA3LjA4ODA2IDcuNDQ3OTUgNy4xMzI1MSA3LjQxODMgNy4xNzEzQzcuMTQ1ODIgNy41Mjg5NyA2Ljc5ODMzIDcuODE4IDYuNDAyMDIgOC4wMTY1OEM2LjAwNTcyIDguMjE1MTYgNS41NzA5NyA4LjMxODEgNS4xMzA1NyA4LjMxNzY0QzQuNjg5NTMgOC4zMTgwOCA0LjI1NDE2IDguMjE0ODQgMy44NTc0IDguMDE1NzJDMy40NjA2NCA3LjgxNjYgMy4xMTI4NyA3LjUyNjgxIDIuODQwNDIgNy4xNjgyOEMyLjgxMDgzIDcuMTI5NDMgMi43ODg5NCA3LjA4NDkzIDIuNzc1OTkgNy4wMzczM0MyLjc2MzA0IDYuOTg5NzMgMi43NTkyOSA2LjkzOTk2IDIuNzY0OTUgNi44OTA4NkMyLjc3MDYxIDYuODQxNzYgMi43ODU1NiA2Ljc5NDMgMi44MDg5NyA2Ljc1MTE3QzIuODMyMzcgNi43MDgwNSAyLjg2Mzc2IDYuNjcwMTEgMi45MDEzNSA2LjYzOTUzQzIuOTM4OTMgNi42MDg5NSAyLjk4MTk4IDYuNTg2MzIgMy4wMjgwMiA2LjU3MjkzQzMuMDc0MDcgNi41NTk1NSAzLjEyMjIxIDYuNTU1NjcgMy4xNjk3MSA2LjU2MTUyQzMuMjE3MjEgNi41NjczNyAzLjI2MzEyIDYuNTgyODMgMy4zMDQ4NCA2LjYwNzAyQzMuMzQ2NTUgNi42MzEyMiAzLjM4MzI1IDYuNjYzNjcgMy40MTI4MyA2LjcwMjUyVjYuNzAzMDJaTTMuNjc0MDQgMy42NzUwNkMzLjc1NTE1IDMuNjcyNjggMy44MzU4OSAzLjY4NzE1IDMuOTExNSAzLjcxNzZDMy45ODcxMSAzLjc0ODA1IDQuMDU2MDQgMy43OTM4NiA0LjExNDIyIDMuODUyMzNDNC4xNzI0MSAzLjkxMDggNC4yMTg2NiAzLjk4MDczIDQuMjUwMjQgNC4wNThDNC4yODE4MiA0LjEzNTI3IDQuMjk4MDkgNC4yMTgzIDQuMjk4MDkgNC4zMDIxOEM0LjI5ODA5IDQuMzg2MDYgNC4yODE4MiA0LjQ2OTA5IDQuMjUwMjQgNC41NDYzNkM0LjIxODY2IDQuNjIzNjMgNC4xNzI0MSA0LjY5MzU2IDQuMTE0MjIgNC43NTIwM0M0LjA1NjA0IDQuODEwNSAzLjk4NzExIDQuODU2MzEgMy45MTE1IDQuODg2NzZDMy44MzU4OSA0LjkxNzIxIDMuNzU1MTUgNC45MzE2OCAzLjY3NDA0IDQuOTI5MzFDMy41MTYxMiA0LjkyNDY5IDMuMzY2MTYgNC44NTY1OSAzLjI1NjA0IDQuNzM5NDhDMy4xNDU5MiA0LjYyMjM4IDMuMDg0MzEgNC40NjU1IDMuMDg0MzEgNC4zMDIxOEMzLjA4NDMxIDQuMTM4ODYgMy4xNDU5MiAzLjk4MTk4IDMuMjU2MDQgMy44NjQ4OEMzLjM2NjE2IDMuNzQ3NzcgMy41MTYxMiAzLjY3OTY4IDMuNjc0MDQgMy42NzUwNlpNNi41ODcxIDMuNjc1MDZDNi42NjgyMSAzLjY3MjY4IDYuNzQ4OTYgMy42ODcxNSA2LjgyNDU3IDMuNzE3NkM2LjkwMDE4IDMuNzQ4MDUgNi45NjkxMSAzLjc5Mzg2IDcuMDI3MjkgMy44NTIzM0M3LjA4NTQ3IDMuOTEwOCA3LjEzMTcyIDMuOTgwNzMgNy4xNjMzIDQuMDU4QzcuMTk0ODggNC4xMzUyNyA3LjIxMTE2IDQuMjE4MyA3LjIxMTE2IDQuMzAyMThDNy4yMTExNiA0LjM4NjA2IDcuMTk0ODggNC40NjkwOSA3LjE2MzMgNC41NDYzNkM3LjEzMTcyIDQuNjIzNjMgNy4wODU0NyA0LjY5MzU2IDcuMDI3MjkgNC43NTIwM0M2Ljk2OTExIDQuODEwNSA2LjkwMDE4IDQuODU2MzEgNi44MjQ1NyA0Ljg4Njc2QzYuNzQ4OTYgNC45MTcyMSA2LjY2ODIxIDQuOTMxNjggNi41ODcxIDQuOTI5MzFDNi40MjkxOCA0LjkyNDY5IDYuMjc5MjMgNC44NTY1OSA2LjE2OTExIDQuNzM5NDhDNi4wNTg5OCA0LjYyMjM4IDUuOTk3MzggNC40NjU1IDUuOTk3MzggNC4zMDIxOEM1Ljk5NzM4IDQuMTM4ODYgNi4wNTg5OCAzLjk4MTk4IDYuMTY5MTEgMy44NjQ4OEM2LjI3OTIzIDMuNzQ3NzcgNi40MjkxOCAzLjY3OTY4IDYuNTg3MSAzLjY3NTA2WlwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIF9uZ2NvbnRlbnQtbmctYzQzMzYzNjg5MT1cIlwiXHJcbiAgICAgICAgICAgICAgZD1cIk01LjEzMDU3IDAuMjg2MjI0QzcuODEyNTMgMC4yODYyMjQgOS45ODY2NSAyLjUzMzczIDkuOTg2NjUgNS4zMDYyM0M5Ljk4NjY1IDguMDc4MjMgNy44MTIwNSAxMC4zMjUyIDUuMTMwNTcgMTAuMzI1MkMyLjQ0ODYxIDEwLjMyNTcgMC4yNzQ0OSA4LjA3ODIzIDAuMjc0NDkgNS4zMDYyM0MwLjI3NDQ5IDIuNTMzNzMgMi40NDg2MSAwLjI4NjIyNCA1LjEzMDU3IDAuMjg2MjI0Wk01LjEzMDU3IDEuMDM5MDhDNC41ODQ3NiAxLjAzMjk2IDQuMDQzMiAxLjEzODggMy41MzcyMyAxLjM1MDQ5QzMuMDMxMjYgMS41NjIxOCAyLjU3MDkyIDEuODc1NSAyLjE4Mjg3IDIuMjcyMzNDMS43OTQ4MiAyLjY2OTE1IDEuNDg2NzUgMy4xNDE2IDEuMjc2NSAzLjY2MjMzQzEuMDY2MjUgNC4xODMwNSAwLjk1Nzk5IDQuNzQxNzIgMC45NTc5OSA1LjMwNTk4QzAuOTU3OTkgNS44NzAyNSAxLjA2NjI1IDYuNDI4OTEgMS4yNzY1IDYuOTQ5NjRDMS40ODY3NSA3LjQ3MDM2IDEuNzk0ODIgNy45NDI4MSAyLjE4Mjg3IDguMzM5NjRDMi41NzA5MiA4LjczNjQ2IDMuMDMxMjYgOS4wNDk3OSAzLjUzNzIzIDkuMjYxNDdDNC4wNDMyIDkuNDczMTYgNC41ODQ3NiA5LjU3OTAxIDUuMTMwNTcgOS41NzI4OUM2LjIxNzUyIDkuNTYwNyA3LjI1NTk0IDkuMTA1NzkgOC4wMjAzOSA4LjMwNjkxQzguNzg0ODUgNy41MDgwNCA5LjIxMzYyIDYuNDI5NjkgOS4yMTM2MiA1LjMwNTk4QzkuMjEzNjIgNC4xODIyOCA4Ljc4NDg1IDMuMTAzOTMgOC4wMjAzOSAyLjMwNTA1QzcuMjU1OTQgMS41MDYxOCA2LjIxNzUyIDEuMDUxMjYgNS4xMzA1NyAxLjAzOTA4Wk0zLjQxMjgzIDYuNzAzMDJDMy42MTcxOCA2Ljk3MTkzIDMuODc4MDMgNy4xODkyNSA0LjE3NTYzIDcuMzM4NTVDNC40NzMyMyA3LjQ4Nzg1IDQuNzk5NzggNy41NjUyMiA1LjEzMDU3IDcuNTY0NzlDNS40NjEgNy41NjUyIDUuNzg3MjEgNy40ODc5OCA2LjA4NDUzIDcuMzM4OTVDNi4zODE4NiA3LjE4OTkyIDYuNjQyNTMgNi45NzI5OCA2Ljg0Njg1IDYuNzA0NTNDNi44NzY1IDYuNjY1NzQgNi45MTMyNSA2LjYzMzM3IDYuOTU1IDYuNjA5MjZDNi45OTY3NSA2LjU4NTE1IDcuMDQyNjggNi41Njk3OCA3LjA5MDE4IDYuNTY0MDNDNy4xMzc2NyA2LjU1ODI3IDcuMTg1OCA2LjU2MjI0IDcuMjMxODEgNi41NzU3MUM3LjI3NzgyIDYuNTg5MTkgNy4zMjA4MiA2LjYxMTkgNy4zNTgzNCA2LjY0MjU0QzcuMzk1ODYgNi42NzMxOSA3LjQyNzE3IDYuNzExMTggNy40NTA0OSA2Ljc1NDM0QzcuNDczODEgNi43OTc1IDcuNDg4NjggNi44NDQ5OCA3LjQ5NDI1IDYuODk0MDhDNy40OTk4MiA2Ljk0MzE4IDcuNDk1OTggNi45OTI5MyA3LjQ4Mjk0IDcuMDQwNUM3LjQ2OTkxIDcuMDg4MDYgNy40NDc5NSA3LjEzMjUxIDcuNDE4MyA3LjE3MTNDNy4xNDU4MiA3LjUyODk3IDYuNzk4MzMgNy44MTggNi40MDIwMiA4LjAxNjU4QzYuMDA1NzIgOC4yMTUxNiA1LjU3MDk3IDguMzE4MSA1LjEzMDU3IDguMzE3NjRDNC42ODk1MyA4LjMxODA4IDQuMjU0MTYgOC4yMTQ4NCAzLjg1NzQgOC4wMTU3MkMzLjQ2MDY0IDcuODE2NiAzLjExMjg3IDcuNTI2ODEgMi44NDA0MiA3LjE2ODI4QzIuODEwODMgNy4xMjk0MyAyLjc4ODk0IDcuMDg0OTMgMi43NzU5OSA3LjAzNzMzQzIuNzYzMDQgNi45ODk3MyAyLjc1OTI5IDYuOTM5OTYgMi43NjQ5NSA2Ljg5MDg2QzIuNzcwNjEgNi44NDE3NiAyLjc4NTU2IDYuNzk0MyAyLjgwODk3IDYuNzUxMTdDMi44MzIzNyA2LjcwODA1IDIuODYzNzYgNi42NzAxMSAyLjkwMTM1IDYuNjM5NTNDMi45Mzg5MyA2LjYwODk1IDIuOTgxOTggNi41ODYzMiAzLjAyODAyIDYuNTcyOTNDMy4wNzQwNyA2LjU1OTU1IDMuMTIyMjEgNi41NTU2NyAzLjE2OTcxIDYuNTYxNTJDMy4yMTcyMSA2LjU2NzM3IDMuMjYzMTIgNi41ODI4MyAzLjMwNDg0IDYuNjA3MDJDMy4zNDY1NSA2LjYzMTIyIDMuMzgzMjUgNi42NjM2NyAzLjQxMjgzIDYuNzAyNTJWNi43MDMwMlpNMy42NzQwNCAzLjY3NTA2QzMuNzU1MTUgMy42NzI2OCAzLjgzNTg5IDMuNjg3MTUgMy45MTE1IDMuNzE3NkMzLjk4NzExIDMuNzQ4MDUgNC4wNTYwNCAzLjc5Mzg2IDQuMTE0MjIgMy44NTIzM0M0LjE3MjQxIDMuOTEwOCA0LjIxODY2IDMuOTgwNzMgNC4yNTAyNCA0LjA1OEM0LjI4MTgyIDQuMTM1MjcgNC4yOTgwOSA0LjIxODMgNC4yOTgwOSA0LjMwMjE4QzQuMjk4MDkgNC4zODYwNiA0LjI4MTgyIDQuNDY5MDkgNC4yNTAyNCA0LjU0NjM2QzQuMjE4NjYgNC42MjM2MyA0LjE3MjQxIDQuNjkzNTYgNC4xMTQyMiA0Ljc1MjAzQzQuMDU2MDQgNC44MTA1IDMuOTg3MTEgNC44NTYzMSAzLjkxMTUgNC44ODY3NkMzLjgzNTg5IDQuOTE3MjEgMy43NTUxNSA0LjkzMTY4IDMuNjc0MDQgNC45MjkzMUMzLjUxNjEyIDQuOTI0NjkgMy4zNjYxNiA0Ljg1NjU5IDMuMjU2MDQgNC43Mzk0OEMzLjE0NTkyIDQuNjIyMzggMy4wODQzMSA0LjQ2NTUgMy4wODQzMSA0LjMwMjE4QzMuMDg0MzEgNC4xMzg4NiAzLjE0NTkyIDMuOTgxOTggMy4yNTYwNCAzLjg2NDg4QzMuMzY2MTYgMy43NDc3NyAzLjUxNjEyIDMuNjc5NjggMy42NzQwNCAzLjY3NTA2Wk02LjU4NzEgMy42NzUwNkM2LjY2ODIxIDMuNjcyNjggNi43NDg5NiAzLjY4NzE1IDYuODI0NTcgMy43MTc2QzYuOTAwMTggMy43NDgwNSA2Ljk2OTExIDMuNzkzODYgNy4wMjcyOSAzLjg1MjMzQzcuMDg1NDcgMy45MTA4IDcuMTMxNzIgMy45ODA3MyA3LjE2MzMgNC4wNThDNy4xOTQ4OCA0LjEzNTI3IDcuMjExMTYgNC4yMTgzIDcuMjExMTYgNC4zMDIxOEM3LjIxMTE2IDQuMzg2MDYgNy4xOTQ4OCA0LjQ2OTA5IDcuMTYzMyA0LjU0NjM2QzcuMTMxNzIgNC42MjM2MyA3LjA4NTQ3IDQuNjkzNTYgNy4wMjcyOSA0Ljc1MjAzQzYuOTY5MTEgNC44MTA1IDYuOTAwMTggNC44NTYzMSA2LjgyNDU3IDQuODg2NzZDNi43NDg5NiA0LjkxNzIxIDYuNjY4MjEgNC45MzE2OCA2LjU4NzEgNC45MjkzMUM2LjQyOTE4IDQuOTI0NjkgNi4yNzkyMyA0Ljg1NjU5IDYuMTY5MTEgNC43Mzk0OEM2LjA1ODk4IDQuNjIyMzggNS45OTczOCA0LjQ2NTUgNS45OTczOCA0LjMwMjE4QzUuOTk3MzggNC4xMzg4NiA2LjA1ODk4IDMuOTgxOTggNi4xNjkxMSAzLjg2NDg4QzYuMjc5MjMgMy43NDc3NyA2LjQyOTE4IDMuNjc5NjggNi41ODcxIDMuNjc1MDZaXCJcclxuICAgICAgICAgICAgICBmaWxsPVwidXJsKCNwYWludDBfbGluZWFyXzc0OF8zMzg3KVwiXHJcbiAgICAgICAgICAgID48L3BhdGg+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgX25nY29udGVudC1uZy1jNDMzNjM2ODkxPVwiXCJcclxuICAgICAgICAgICAgICBkPVwiTTUuMTMwNTcgMC4yODYyMjRDNy44MTI1MyAwLjI4NjIyNCA5Ljk4NjY1IDIuNTMzNzMgOS45ODY2NSA1LjMwNjIzQzkuOTg2NjUgOC4wNzgyMyA3LjgxMjA1IDEwLjMyNTIgNS4xMzA1NyAxMC4zMjUyQzIuNDQ4NjEgMTAuMzI1NyAwLjI3NDQ5IDguMDc4MjMgMC4yNzQ0OSA1LjMwNjIzQzAuMjc0NDkgMi41MzM3MyAyLjQ0ODYxIDAuMjg2MjI0IDUuMTMwNTcgMC4yODYyMjRaTTUuMTMwNTcgMS4wMzkwOEM0LjU4NDc2IDEuMDMyOTYgNC4wNDMyIDEuMTM4OCAzLjUzNzIzIDEuMzUwNDlDMy4wMzEyNiAxLjU2MjE4IDIuNTcwOTIgMS44NzU1IDIuMTgyODcgMi4yNzIzM0MxLjc5NDgyIDIuNjY5MTUgMS40ODY3NSAzLjE0MTYgMS4yNzY1IDMuNjYyMzNDMS4wNjYyNSA0LjE4MzA1IDAuOTU3OTkgNC43NDE3MiAwLjk1Nzk5IDUuMzA1OThDMC45NTc5OSA1Ljg3MDI1IDEuMDY2MjUgNi40Mjg5MSAxLjI3NjUgNi45NDk2NEMxLjQ4Njc1IDcuNDcwMzYgMS43OTQ4MiA3Ljk0MjgxIDIuMTgyODcgOC4zMzk2NEMyLjU3MDkyIDguNzM2NDYgMy4wMzEyNiA5LjA0OTc5IDMuNTM3MjMgOS4yNjE0N0M0LjA0MzIgOS40NzMxNiA0LjU4NDc2IDkuNTc5MDEgNS4xMzA1NyA5LjU3Mjg5QzYuMjE3NTIgOS41NjA3IDcuMjU1OTQgOS4xMDU3OSA4LjAyMDM5IDguMzA2OTFDOC43ODQ4NSA3LjUwODA0IDkuMjEzNjIgNi40Mjk2OSA5LjIxMzYyIDUuMzA1OThDOS4yMTM2MiA0LjE4MjI4IDguNzg0ODUgMy4xMDM5MyA4LjAyMDM5IDIuMzA1MDVDNy4yNTU5NCAxLjUwNjE4IDYuMjE3NTIgMS4wNTEyNiA1LjEzMDU3IDEuMDM5MDhaTTMuNDEyODMgNi43MDMwMkMzLjYxNzE4IDYuOTcxOTMgMy44NzgwMyA3LjE4OTI1IDQuMTc1NjMgNy4zMzg1NUM0LjQ3MzIzIDcuNDg3ODUgNC43OTk3OCA3LjU2NTIyIDUuMTMwNTcgNy41NjQ3OUM1LjQ2MSA3LjU2NTIgNS43ODcyMSA3LjQ4Nzk4IDYuMDg0NTMgNy4zMzg5NUM2LjM4MTg2IDcuMTg5OTIgNi42NDI1MyA2Ljk3Mjk4IDYuODQ2ODUgNi43MDQ1M0M2Ljg3NjUgNi42NjU3NCA2LjkxMzI1IDYuNjMzMzcgNi45NTUgNi42MDkyNkM2Ljk5Njc1IDYuNTg1MTUgNy4wNDI2OCA2LjU2OTc4IDcuMDkwMTggNi41NjQwM0M3LjEzNzY3IDYuNTU4MjcgNy4xODU4IDYuNTYyMjQgNy4yMzE4MSA2LjU3NTcxQzcuMjc3ODIgNi41ODkxOSA3LjMyMDgyIDYuNjExOSA3LjM1ODM0IDYuNjQyNTRDNy4zOTU4NiA2LjY3MzE5IDcuNDI3MTcgNi43MTExOCA3LjQ1MDQ5IDYuNzU0MzRDNy40NzM4MSA2Ljc5NzUgNy40ODg2OCA2Ljg0NDk4IDcuNDk0MjUgNi44OTQwOEM3LjQ5OTgyIDYuOTQzMTggNy40OTU5OCA2Ljk5MjkzIDcuNDgyOTQgNy4wNDA1QzcuNDY5OTEgNy4wODgwNiA3LjQ0Nzk1IDcuMTMyNTEgNy40MTgzIDcuMTcxM0M3LjE0NTgyIDcuNTI4OTcgNi43OTgzMyA3LjgxOCA2LjQwMjAyIDguMDE2NThDNi4wMDU3MiA4LjIxNTE2IDUuNTcwOTcgOC4zMTgxIDUuMTMwNTcgOC4zMTc2NEM0LjY4OTUzIDguMzE4MDggNC4yNTQxNiA4LjIxNDg0IDMuODU3NCA4LjAxNTcyQzMuNDYwNjQgNy44MTY2IDMuMTEyODcgNy41MjY4MSAyLjg0MDQyIDcuMTY4MjhDMi44MTA4MyA3LjEyOTQzIDIuNzg4OTQgNy4wODQ5MyAyLjc3NTk5IDcuMDM3MzNDMi43NjMwNCA2Ljk4OTczIDIuNzU5MjkgNi45Mzk5NiAyLjc2NDk1IDYuODkwODZDMi43NzA2MSA2Ljg0MTc2IDIuNzg1NTYgNi43OTQzIDIuODA4OTcgNi43NTExN0MyLjgzMjM3IDYuNzA4MDUgMi44NjM3NiA2LjY3MDExIDIuOTAxMzUgNi42Mzk1M0MyLjkzODkzIDYuNjA4OTUgMi45ODE5OCA2LjU4NjMyIDMuMDI4MDIgNi41NzI5M0MzLjA3NDA3IDYuNTU5NTUgMy4xMjIyMSA2LjU1NTY3IDMuMTY5NzEgNi41NjE1MkMzLjIxNzIxIDYuNTY3MzcgMy4yNjMxMiA2LjU4MjgzIDMuMzA0ODQgNi42MDcwMkMzLjM0NjU1IDYuNjMxMjIgMy4zODMyNSA2LjY2MzY3IDMuNDEyODMgNi43MDI1MlY2LjcwMzAyWk0zLjY3NDA0IDMuNjc1MDZDMy43NTUxNSAzLjY3MjY4IDMuODM1ODkgMy42ODcxNSAzLjkxMTUgMy43MTc2QzMuOTg3MTEgMy43NDgwNSA0LjA1NjA0IDMuNzkzODYgNC4xMTQyMiAzLjg1MjMzQzQuMTcyNDEgMy45MTA4IDQuMjE4NjYgMy45ODA3MyA0LjI1MDI0IDQuMDU4QzQuMjgxODIgNC4xMzUyNyA0LjI5ODA5IDQuMjE4MyA0LjI5ODA5IDQuMzAyMThDNC4yOTgwOSA0LjM4NjA2IDQuMjgxODIgNC40NjkwOSA0LjI1MDI0IDQuNTQ2MzZDNC4yMTg2NiA0LjYyMzYzIDQuMTcyNDEgNC42OTM1NiA0LjExNDIyIDQuNzUyMDNDNC4wNTYwNCA0LjgxMDUgMy45ODcxMSA0Ljg1NjMxIDMuOTExNSA0Ljg4Njc2QzMuODM1ODkgNC45MTcyMSAzLjc1NTE1IDQuOTMxNjggMy42NzQwNCA0LjkyOTMxQzMuNTE2MTIgNC45MjQ2OSAzLjM2NjE2IDQuODU2NTkgMy4yNTYwNCA0LjczOTQ4QzMuMTQ1OTIgNC42MjIzOCAzLjA4NDMxIDQuNDY1NSAzLjA4NDMxIDQuMzAyMThDMy4wODQzMSA0LjEzODg2IDMuMTQ1OTIgMy45ODE5OCAzLjI1NjA0IDMuODY0ODhDMy4zNjYxNiAzLjc0Nzc3IDMuNTE2MTIgMy42Nzk2OCAzLjY3NDA0IDMuNjc1MDZaTTYuNTg3MSAzLjY3NTA2QzYuNjY4MjEgMy42NzI2OCA2Ljc0ODk2IDMuNjg3MTUgNi44MjQ1NyAzLjcxNzZDNi45MDAxOCAzLjc0ODA1IDYuOTY5MTEgMy43OTM4NiA3LjAyNzI5IDMuODUyMzNDNy4wODU0NyAzLjkxMDggNy4xMzE3MiAzLjk4MDczIDcuMTYzMyA0LjA1OEM3LjE5NDg4IDQuMTM1MjcgNy4yMTExNiA0LjIxODMgNy4yMTExNiA0LjMwMjE4QzcuMjExMTYgNC4zODYwNiA3LjE5NDg4IDQuNDY5MDkgNy4xNjMzIDQuNTQ2MzZDNy4xMzE3MiA0LjYyMzYzIDcuMDg1NDcgNC42OTM1NiA3LjAyNzI5IDQuNzUyMDNDNi45NjkxMSA0LjgxMDUgNi45MDAxOCA0Ljg1NjMxIDYuODI0NTcgNC44ODY3NkM2Ljc0ODk2IDQuOTE3MjEgNi42NjgyMSA0LjkzMTY4IDYuNTg3MSA0LjkyOTMxQzYuNDI5MTggNC45MjQ2OSA2LjI3OTIzIDQuODU2NTkgNi4xNjkxMSA0LjczOTQ4QzYuMDU4OTggNC42MjIzOCA1Ljk5NzM4IDQuNDY1NSA1Ljk5NzM4IDQuMzAyMThDNS45OTczOCA0LjEzODg2IDYuMDU4OTggMy45ODE5OCA2LjE2OTExIDMuODY0ODhDNi4yNzkyMyAzLjc0Nzc3IDYuNDI5MTggMy42Nzk2OCA2LjU4NzEgMy42NzUwNlpcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZT1cInVybCgjcGFpbnQwX2xpbmVhcl83NDhfMzM4NylcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCJ1cmwoI3BhaW50MF9saW5lYXJfNzQ4XzMzODcpXCJcclxuICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIwLjQ5MjUzNVwiXHJcbiAgICAgICAgICAgICAgbWFzaz1cInVybCgjcGF0aC0xLW91dHNpZGUtMV80MjJfMzQxNClcIlxyXG4gICAgICAgICAgICA+PC9wYXRoPlxyXG4gICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgPGRlZnMgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzc0OF83Njg1XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzMFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiAvPlxyXG4gICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIiAvPlxyXG4gICAgICAgICAgICAgIDxmZU9mZnNldCAvPlxyXG4gICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIyXCIgLz5cclxuICAgICAgICAgICAgICA8ZmVDb21wb3NpdGUgaW4yPVwiaGFyZEFscGhhXCIgb3BlcmF0b3I9XCJvdXRcIiAvPlxyXG4gICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDEgMCAwIDAgMCAwLjA5NjE1MzggMCAwIDAgMCAwLjU5MzI2OSAwIDAgMCAxIDBcIiAvPlxyXG4gICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfNzQ4Xzc2ODVcIiAvPlxyXG4gICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfNzQ4Xzc2ODVcIiByZXN1bHQ9XCJzaGFwZVwiIC8+XHJcbiAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJwYWludDBfbGluZWFyXzc0OF83Njg1XCIgeDE9XCIxNC4xNTA5XCIgeTE9XCIzLjQzMzcyXCIgeDI9XCIwLjk5Mjc5OVwiIHkyPVwiMjYuNzcxNVwiIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiPlxyXG4gICAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9XCIjRkUzQzcyXCIgLz5cclxuICAgICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwLjM4NDYxNVwiIHN0b3AtY29sb3I9XCIjRkZCNUU5XCIgLz5cclxuICAgICAgICAgICAgPC9saW5lYXJHcmFkaWVudD5cclxuICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPVwicGFpbnQwX2xpbmVhcl83NDhfMzM4N1wiIHgxPVwiMTguNTEzNFwiIHkxPVwiMi44MTA5N1wiIHgyPVwiMC4xNjI3NzNcIiB5Mj1cIjM1LjM1NTZcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cclxuICAgICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPVwiI0ZFM0M3MlwiIC8+XHJcbiAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMC4zODQ2MTVcIiBzdG9wLWNvbG9yPVwiI0ZGQjVFOVwiIC8+XHJcbiAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICBAaWYgKGVuYWJsZUdpZlBpY2tlcikge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJnaWZzXCIgKGNsaWNrKT1cImhhbmRsZUdpZlBpY2tlckNsaWNrKClcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ2lmc1wiICpuZ0lmPVwiaW5jbHVkZUdpZk1lc3NhZ2VcIiAoY2xpY2spPVwiaGFuZGxlR2lmUGlja2VyQ2xpY2soKVwiPlxyXG4gICAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDExIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPVwiTTcuMDU1IDEwLjk5OTVINC44OTlDMy4yNTM1IDEwLjk5OTUgMi40MzA1IDEwLjk5OTUgMS44NTkgMTAuNjAwNUMxLjY5Njk0IDEwLjQ4NzMgMS41NTE2NyAxMC4zNTE4IDEuNDI3NSAxMC4xOThDMSA5LjY2NTAxIDEgOC44OTgwMSAxIDcuMzYzMDFWNi4wOTA1MUMxIDQuNjA5MDEgMSAzLjg2ODAxIDEuMjM2NSAzLjI3NjUxQzEuNjE3IDIuMzI1MDEgMi40MjE1IDEuNTc1MDEgMy40NDE1IDEuMjIwMDFDNC4wNzUgMC45OTk1MTIgNC44NyAwLjk5OTUxMiA2LjQ1ODUgMC45OTk1MTJDNy4zNjY1IDAuOTk5NTEyIDcuODIgMC45OTk1MTIgOC4xODI1IDEuMTI1NTFDOC43NjU1IDEuMzI4NTEgOS4yMjUgMS43NTcwMSA5LjQ0MjUgMi4zMDA1MUM5LjU3NzUgMi42Mzg1MSA5LjU3NzUgMy4wNjIwMSA5LjU3NzUgMy45MDg1MVY0Ljk5OTUxXCJcclxuICAgICAgICAgICAgICAgIHN0cm9rZT1cInVybCgjcGFpbnQwX2xpbmVhcl83NDhfMzM4NylcIlxyXG4gICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMC43NVwiXHJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPVwiTTEgNS45OTk1MUMxIDUuMDc5NTEgMS43NTMgNC4zMzMwMSAyLjY4MiA0LjMzMzAxQzMuMDE4IDQuMzMzMDEgMy40MTQgNC4zOTEwMSAzLjc0MDUgNC4zMDQ1MUMzLjg4MjgxIDQuMjY3MzYgNC4wMTI3OCA0LjE5MzI4IDQuMTE3MjYgNC4wODk3NkM0LjIyMTc0IDMuOTg2MjQgNC4yOTcwMyAzLjg1Njk3IDQuMzM1NSAzLjcxNTAxQzQuNDIyNSAzLjM5MTUxIDQuMzY0IDIuOTk5MDEgNC4zNjQgMi42NjYwMUM0LjM2NCAxLjc0NjAxIDUuMTE3IDAuOTk5NTEyIDYuMDQ1IDAuOTk5NTEyTTYuMDQ2IDguOTk5NTFINy4zMDc1TTQuODMzIDYuOTI0NTFDNC43NyA2LjUyNDUxIDQuNjkyNSA2LjUyNDAxIDQuMDI4IDYuNDk5NTFIMy41MjNDMy4yNDQ1IDYuNDk5NTEgMy4wMTg1IDYuNzIzNTEgMy4wMTg1IDYuOTk5NTFWOC40OTk1MUMzLjAxODUgOC43NzU1MSAzLjI0NDUgOC45OTk1MSAzLjUyMzUgOC45OTk1MUg0LjQzMTVDNC42MjY1IDguOTk5NTEgNC44MzMgOC44NDMwMSA0LjgzMyA4LjY0OTUxVjguMDk5NTFDNC44MzMgOC4wNDQ1MSA0Ljc3NjUgNy45NDc1MSA0LjcyMSA3Ljk0NzUxSDQuMTU5TTYuMDQ2IDYuNDk5NTFINi42NzY1TTYuNjc2NSA2LjQ5OTUxSDcuMzA3NU02LjY3NjUgNi40OTk1MVY4LjkzNzAxTTEwLjI1MDUgNi40OTk1MUg4Ljk4OUM4LjcxMDUgNi40OTk1MSA4LjQ4NDUgNi43MjM1MSA4LjQ4NDUgNi45OTk1MVY3Ljc0OTUxTTguNDg0NSA3Ljc0OTUxVjguOTk5NTFNOC40ODQ1IDcuNzQ5NTFIOS43NDZcIlxyXG4gICAgICAgICAgICAgICAgc3Ryb2tlPVwidXJsKCNwYWludDBfbGluZWFyXzc0OF8zMzg3KVwiXHJcbiAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIwLjc1XCJcclxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgPGRlZnMgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfNzQ4Xzc2ODVcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMwXCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIgLz5cclxuICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGZlT2Zmc2V0IC8+XHJcbiAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZmVDb21wb3NpdGUgaW4yPVwiaGFyZEFscGhhXCIgb3BlcmF0b3I9XCJvdXRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMSAwIDAgMCAwIDAuMDk2MTUzOCAwIDAgMCAwIDAuNTkzMjY5IDAgMCAwIDEgMFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93Xzc0OF83Njg1XCIgLz5cclxuICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfNzQ4Xzc2ODVcIiByZXN1bHQ9XCJzaGFwZVwiIC8+XHJcbiAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPVwicGFpbnQwX2xpbmVhcl83NDhfNzY4NVwiIHgxPVwiMTQuMTUwOVwiIHkxPVwiMy40MzM3MlwiIHgyPVwiMC45OTI3OTlcIiB5Mj1cIjI2Ljc3MTVcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cclxuICAgICAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9XCIjRkUzQzcyXCIgLz5cclxuICAgICAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjAuMzg0NjE1XCIgc3RvcC1jb2xvcj1cIiNGRkI1RTlcIiAvPlxyXG4gICAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPVwicGFpbnQwX2xpbmVhcl83NDhfMzM4N1wiIHgxPVwiMTguNTEzNFwiIHkxPVwiMi44MTA5N1wiIHgyPVwiMC4xNjI3NzNcIiB5Mj1cIjM1LjM1NTZcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cclxuICAgICAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9XCIjRkUzQzcyXCIgLz5cclxuICAgICAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjAuMzg0NjE1XCIgc3RvcC1jb2xvcj1cIiNGRkI1RTlcIiAvPlxyXG4gICAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1waWNrZXItc3BhY2VcIiBbbmdTdHlsZV09XCJ7ICd6LWluZGV4JzogIShnaWZWaXNpYmlsaXR5IHx8IGVtb2ppVmlzaWJpbGl0eSkgPyAtMSA6IDExIH1cIiAoYmx1cik9XCJvbkJsdXJQaWNrZXJTcGFjZSgpXCI+XHJcbiAgICAgIEBpZiAoZ2lmVmlzaWJpbGl0eSAmJiBlbmFibGVHaWZQaWNrZXIpIHtcclxuICAgICAgICA8bGliLWdpZi1zZWxlY3RvciAoc2VsZWN0R2lmKT1cIm9uR2lmQ2xpY2soJGV2ZW50KVwiPjwvbGliLWdpZi1zZWxlY3Rvcj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKGVtb2ppUGlja2VyT3BlbmVkKSB7XHJcbiAgICAgICAgPGVtb2ppLXBpY2tlciAjZW1vamlQaWNrZXIgW25nU3R5bGVdPVwieyBkaXNwbGF5OiBlbW9qaVZpc2liaWxpdHkgPyAnJyA6ICdub25lJyB9XCIgZW1vamktdmVyc2lvbj1cIjE1LjBcIiAoZW1vamktY2xpY2spPVwib25FbW9qaWNsaWNrKCRldmVudClcIj48L2Vtb2ppLXBpY2tlcj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JtPlxyXG48L2Rpdj5cclxuIl19
|