@naniteninja/dashboard-components-lib 1.0.4 → 2.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/fesm2022/naniteninja-dashboard-components-lib.mjs +539 -181
- package/fesm2022/naniteninja-dashboard-components-lib.mjs.map +1 -1
- package/index.d.ts +1775 -3
- package/{naniteninja-dashboard-components-lib-1.0.4.tgz → naniteninja-dashboard-components-lib-2.0.0.tgz} +0 -0
- package/package.json +25 -29
- package/src/assets/icons/close-icon.svg +1 -1
- package/src/assets/icons/drag-handle.svg +5 -0
- package/src/assets/icons/filter-gear.svg +5 -0
- package/src/assets/icons/filter-icon.svg +5 -0
- package/src/assets/icons/plus.svg +1 -1
- package/src/assets/icons/settings.svg +4 -0
- package/src/lib/shared-styles/common/theme.scss +3 -3
- package/esm2022/lib/components/auto-delegation/animations.mjs +0 -20
- package/esm2022/lib/components/auto-delegation/auto-delegation-modal.component.mjs +0 -106
- package/esm2022/lib/components/auto-delegation/enums/auto-delegation.event-type.enum.mjs +0 -6
- package/esm2022/lib/components/auto-delegation/enums/auto-delegation.event-value.enum.mjs +0 -7
- package/esm2022/lib/components/auto-delegation/interface/auto-delegation-data.interface.mjs +0 -2
- package/esm2022/lib/components/auto-delegation/interface/auto-delegation.event.interface.mjs +0 -2
- package/esm2022/lib/components/auto-delegation/interface/auto-delegation.modal-data.interface.mjs +0 -2
- package/esm2022/lib/components/auto-delegation/interface/preferences.interface.mjs +0 -2
- package/esm2022/lib/components/calendar/agenda/agenda-day-card/agenda-day-card.component.mjs +0 -37
- package/esm2022/lib/components/calendar/agenda/agenda.component.mjs +0 -120
- package/esm2022/lib/components/calendar/agenda/agenda.module.mjs +0 -23
- package/esm2022/lib/components/calendar/agenda/enums/agenda-item-type.enum.mjs +0 -6
- package/esm2022/lib/components/calendar/agenda/interfaces/agenda.day.interface.mjs +0 -2
- package/esm2022/lib/components/calendar/agenda/interfaces/agenda.event.inetrface.mjs +0 -2
- package/esm2022/lib/components/calendar/agenda/types/agenda-item.type.mjs +0 -2
- package/esm2022/lib/components/calendar/components/edit-recurring-event/edit-recurring-event.component.mjs +0 -40
- package/esm2022/lib/components/calendar/components/event-form/event-form.component.mjs +0 -275
- package/esm2022/lib/components/calendar/components/event-form/event-form.module.mjs +0 -89
- package/esm2022/lib/components/calendar/components/event-info/event-info.component.mjs +0 -40
- package/esm2022/lib/components/calendar/enums/calendar.account.enum.mjs +0 -6
- package/esm2022/lib/components/calendar/enums/calendar.account.icons.enum.mjs +0 -6
- package/esm2022/lib/components/calendar/enums/event-type.enum.mjs +0 -10
- package/esm2022/lib/components/calendar/enums/recurring.edit.options.enum.mjs +0 -7
- package/esm2022/lib/components/calendar/enums/recurring.type.enum.mjs +0 -8
- package/esm2022/lib/components/calendar/interfaces/calendar.account.interface.mjs +0 -2
- package/esm2022/lib/components/calendar/interfaces/calendar.account.theme.interface.mjs +0 -2
- package/esm2022/lib/components/calendar/interfaces/event.form.interface.mjs +0 -2
- package/esm2022/lib/components/calendar/interfaces/event.form.output.interface.mjs +0 -2
- package/esm2022/lib/components/calendar/interfaces/event.interface.mjs +0 -2
- package/esm2022/lib/components/calendar/interfaces/event.time.interface.mjs +0 -2
- package/esm2022/lib/components/calendar/interfaces/recurring.event.interface.mjs +0 -2
- package/esm2022/lib/components/calendar/interfaces/recurring.exception.interface.mjs +0 -2
- package/esm2022/lib/components/calendar/interfaces/recurring.pattern.interface.mjs +0 -2
- package/esm2022/lib/components/calendar/lookups/recurring.options.lookup.mjs +0 -30
- package/esm2022/lib/components/calendar/scheduler/enums/schedule-date-status.enum.mjs +0 -7
- package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.action.interface.mjs +0 -2
- package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.event.day.interface.mjs +0 -2
- package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.event.interface.mjs +0 -2
- package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.event.suggestion.interface.mjs +0 -2
- package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.slots.interface.mjs +0 -2
- package/esm2022/lib/components/calendar/scheduler/mock-schedule.mjs +0 -80
- package/esm2022/lib/components/calendar/scheduler/scheduler.component.mjs +0 -144
- package/esm2022/lib/components/calendar/services/calendar-utils.service.mjs +0 -211
- package/esm2022/lib/components/chat/chat.component.mjs +0 -308
- package/esm2022/lib/components/chat/chat.component.module.mjs +0 -85
- package/esm2022/lib/components/chat/chat.service.mjs +0 -63
- package/esm2022/lib/components/chat/enums/sender-types.enum.mjs +0 -6
- package/esm2022/lib/components/chat/gif-selector/gif-selector.component.mjs +0 -77
- package/esm2022/lib/components/chat/gif-selector/gif-selector.service.mjs +0 -41
- package/esm2022/lib/components/chat/gif-selector/tenor-media-format.interface.mjs +0 -2
- package/esm2022/lib/components/chat/gif-selector/tenor-object.interface.mjs +0 -2
- package/esm2022/lib/components/chat/gif-selector/tenor-result.interface.mjs +0 -2
- package/esm2022/lib/components/chat/interfaces/date-messages.interface.mjs +0 -2
- package/esm2022/lib/components/chat/interfaces/message-attachment.interface.mjs +0 -2
- package/esm2022/lib/components/chat/interfaces/message.interface.mjs +0 -2
- package/esm2022/lib/components/chat/interfaces/send-options-message.interface.mjs +0 -2
- package/esm2022/lib/components/chat/interfaces/type-send-message.enum.mjs +0 -7
- package/esm2022/lib/components/chat-suggestion/chat-suggestion.component.mjs +0 -21
- package/esm2022/lib/components/chat-suggestion/interfaces/chat-suggestion.interface.mjs +0 -2
- package/esm2022/lib/components/circle-progress/circle-progress.component.mjs +0 -143
- package/esm2022/lib/components/circle-progress/circle-progress.module.mjs +0 -18
- package/esm2022/lib/components/circle-progress/enums/circle-variable.enum.mjs +0 -6
- package/esm2022/lib/components/circle-progress/interfaces/circle-progress-config.interface.mjs +0 -2
- package/esm2022/lib/components/client-home/client-home.component.mjs +0 -123
- package/esm2022/lib/components/client-home/enums/client-home-component.enum.mjs +0 -9
- package/esm2022/lib/components/client-home/interfaces/chat-meta.interface.mjs +0 -2
- package/esm2022/lib/components/client-home/interfaces/home-dashboard-inputs.interface.mjs +0 -2
- package/esm2022/lib/components/client-home/interfaces/inner-partial-circle-progress-colors.interface.mjs +0 -2
- package/esm2022/lib/components/client-home/interfaces/partial-circle-progress-colors.interface.mjs +0 -2
- package/esm2022/lib/components/client-home/lookup/client-home.config.mjs +0 -30
- package/esm2022/lib/components/client-home/lookup/inner-progress-default-colors.config.mjs +0 -6
- package/esm2022/lib/components/client-home/lookup/inner-progress-pink-colors.config.mjs +0 -6
- package/esm2022/lib/components/client-home/lookup/inner-progress-purple-colors.config.mjs +0 -6
- package/esm2022/lib/components/client-home/lookup/inner-progress-teal-colors.config.mjs +0 -6
- package/esm2022/lib/components/client-home/lookup/inner-progress-white-colors.config.mjs +0 -10
- package/esm2022/lib/components/client-home/lookup/progress-default-colors.config.mjs +0 -10
- package/esm2022/lib/components/client-home/lookup/progress-white-colors.config.mjs +0 -10
- package/esm2022/lib/components/client-home/pipes/chat-meta.pipe.mjs +0 -60
- package/esm2022/lib/components/client-home/pipes/get-color-by-matcher.pipe.mjs +0 -33
- package/esm2022/lib/components/client-match-overview/client-match-overview.component.mjs +0 -300
- package/esm2022/lib/components/client-match-overview/enums/conversation-flag.enum.mjs +0 -6
- package/esm2022/lib/components/client-match-overview/enums/counter-flag-base.enum.mjs +0 -6
- package/esm2022/lib/components/client-match-overview/enums/inner-circle-state.enum.mjs +0 -8
- package/esm2022/lib/components/client-match-overview/interfaces/client-match-overview.interface.mjs +0 -2
- package/esm2022/lib/components/client-match-overview/interfaces/conversation-flag.interface.mjs +0 -2
- package/esm2022/lib/components/client-match-overview/interfaces/dashboard-match-request.interface.mjs +0 -2
- package/esm2022/lib/components/client-match-overview/interfaces/progress-decision.interface.mjs +0 -2
- package/esm2022/lib/components/client-match-overview/interfaces/progress-facts.interface.mjs +0 -2
- package/esm2022/lib/components/client-match-overview/lookups/computer-inner-state.lookup.mjs +0 -81
- package/esm2022/lib/components/client-match-overview/lookups/limit-dates-indicator.lookup.mjs +0 -8
- package/esm2022/lib/components/client-match-overview/progress-ticker/progress-gap.config.mjs +0 -4
- package/esm2022/lib/components/client-match-overview/progress-ticker/progress-ticker.config.mjs +0 -3
- package/esm2022/lib/components/client-match-overview/progress-ticker/progress-ticker.service.mjs +0 -43
- package/esm2022/lib/components/dashboard-swipeable-tabs/dashboard-swipeable-tabs.component.mjs +0 -113
- package/esm2022/lib/components/dashboard-swipeable-tabs/lookups/dashboard-main-swiper-options.mjs +0 -11
- package/esm2022/lib/components/dashboard-swipeable-tabs/lookups/dashboard-thumbs-swiper-options.mjs +0 -27
- package/esm2022/lib/components/dashboard-swipeable-tabs/lookups/main-swiper-default-options.mjs +0 -19
- package/esm2022/lib/components/dashboard-swipeable-tabs/lookups/thumbs-swiper-default-options.mjs +0 -21
- package/esm2022/lib/components/lib-client-dashboard/client-dashboard.component.mjs +0 -173
- package/esm2022/lib/components/lib-client-dashboard/enums/alert-status-fields.enum.mjs +0 -11
- package/esm2022/lib/components/lib-client-dashboard/enums/client-dashboard-component.enum.mjs +0 -7
- package/esm2022/lib/components/lib-client-dashboard/interfaces/ads.interface.mjs +0 -2
- package/esm2022/lib/components/lib-client-dashboard/interfaces/client-dashboard-inputs.interface.mjs +0 -2
- package/esm2022/lib/components/lib-client-dashboard/lookups/client-dashboard.config.mjs +0 -15
- package/esm2022/lib/components/lib-compose-matcher-dash/compose-matcher-dash.component.mjs +0 -146
- package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/chart-data.interface.mjs +0 -2
- package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/chat-identifier.interface.mjs +0 -2
- package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/matcher-dashboard-inputs.interface.mjs +0 -2
- package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/matcher-profile.interface.mjs +0 -2
- package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/prospect-data.interface.mjs +0 -2
- package/esm2022/lib/components/lib-compose-matcher-dash/pipes/get-profile-with-progress.pipe.mjs +0 -21
- package/esm2022/lib/components/matcher-statuses/enums/matcher-statuses.enum.mjs +0 -15
- package/esm2022/lib/components/matcher-statuses/interfaces/status.interface.mjs +0 -2
- package/esm2022/lib/components/matcher-statuses/lookups/matcher-statuses.lookup.mjs +0 -54
- package/esm2022/lib/components/matcher-statuses/matcher-statuses.component.mjs +0 -58
- package/esm2022/lib/components/matcher-statuses/pipes/is-status-included.pipe.mjs +0 -19
- package/esm2022/lib/components/profile-card/profile-card.component.mjs +0 -35
- package/esm2022/lib/components/profile-card/profile-card.module.mjs +0 -19
- package/esm2022/lib/components/spider-chart/interfaces/chart-data-circle.interface.mjs +0 -2
- package/esm2022/lib/components/spider-chart/interfaces/chart-data-defs-f.interface.mjs +0 -2
- package/esm2022/lib/components/spider-chart/interfaces/chart-data-defs-lg.interface.mjs +0 -2
- package/esm2022/lib/components/spider-chart/interfaces/chart-data-defs-rg.interface.mjs +0 -2
- package/esm2022/lib/components/spider-chart/interfaces/config.interface.mjs +0 -2
- package/esm2022/lib/components/spider-chart/interfaces/dataset.interface.mjs +0 -2
- package/esm2022/lib/components/spider-chart/interfaces/polygon-color.interface.mjs +0 -2
- package/esm2022/lib/components/spider-chart/interfaces/spider-chart-attribute.interface.mjs +0 -2
- package/esm2022/lib/components/spider-chart/lookup/default-spider-config.mjs +0 -67
- package/esm2022/lib/components/spider-chart/lookup/demo-polygon-colors.lookup.mjs +0 -11
- package/esm2022/lib/components/spider-chart/lookup/svg-config.lookup.mjs +0 -277
- package/esm2022/lib/components/spider-chart/spider-chart.component.mjs +0 -235
- package/esm2022/lib/enums/direction.enum.mjs +0 -6
- package/esm2022/lib/enums/form-field-type.mjs +0 -30
- package/esm2022/lib/enums/local-storage-keys.enum.mjs +0 -5
- package/esm2022/lib/enums/status-types.mjs +0 -8
- package/esm2022/lib/model/select-option-template.mjs +0 -2
- package/esm2022/lib/operations/operations.mjs +0 -19
- package/esm2022/lib/pipes/array-sort/array.sort.pipe.mjs +0 -49
- package/esm2022/lib/pipes/count-non-empty-fields/count-non-empty-fields.pipe.mjs +0 -17
- package/esm2022/lib/pipes/date-localization/date-localization.pipe.mjs +0 -31
- package/esm2022/lib/pipes/fallback-translate/fallback-translate.pipe.mjs +0 -28
- package/esm2022/lib/pipes/get-display-value/get-display-value.pipe.mjs +0 -59
- package/esm2022/lib/pipes/get-multi-select-display-text/get-multi-select-display-text.pipe.mjs +0 -22
- package/esm2022/lib/pipes/initials/initials.pipe.mjs +0 -25
- package/esm2022/lib/pipes/round/round.pipe.mjs +0 -17
- package/esm2022/lib/pipes/update-llm-preference/update-llm-preference.pipe.mjs +0 -25
- package/esm2022/lib/services/abstract-cache.service.mjs +0 -10
- package/esm2022/lib/shared/shared/alert-popup/alert-popup.component.mjs +0 -38
- package/esm2022/lib/shared/shared/message-modal/message-modal.component.mjs +0 -95
- package/esm2022/lib/shared/shared/status-icon/status-icon.component.mjs +0 -14
- package/esm2022/lib/shared/shared.module.mjs +0 -23
- package/esm2022/naniteninja-dashboard-components-lib.mjs +0 -5
- package/esm2022/public-api.mjs +0 -123
- package/lib/components/auto-delegation/animations.d.ts +0 -1
- package/lib/components/auto-delegation/auto-delegation-modal.component.d.ts +0 -29
- package/lib/components/auto-delegation/enums/auto-delegation.event-type.enum.d.ts +0 -4
- package/lib/components/auto-delegation/enums/auto-delegation.event-value.enum.d.ts +0 -5
- package/lib/components/auto-delegation/interface/auto-delegation-data.interface.d.ts +0 -31
- package/lib/components/auto-delegation/interface/auto-delegation.event.interface.d.ts +0 -6
- package/lib/components/auto-delegation/interface/auto-delegation.modal-data.interface.d.ts +0 -8
- package/lib/components/auto-delegation/interface/preferences.interface.d.ts +0 -17
- package/lib/components/calendar/agenda/agenda-day-card/agenda-day-card.component.d.ts +0 -12
- package/lib/components/calendar/agenda/agenda.component.d.ts +0 -27
- package/lib/components/calendar/agenda/agenda.module.d.ts +0 -12
- package/lib/components/calendar/agenda/enums/agenda-item-type.enum.d.ts +0 -4
- package/lib/components/calendar/agenda/interfaces/agenda.day.interface.d.ts +0 -7
- package/lib/components/calendar/agenda/interfaces/agenda.event.inetrface.d.ts +0 -9
- package/lib/components/calendar/agenda/types/agenda-item.type.d.ts +0 -7
- package/lib/components/calendar/components/edit-recurring-event/edit-recurring-event.component.d.ts +0 -19
- package/lib/components/calendar/components/event-form/event-form.component.d.ts +0 -67
- package/lib/components/calendar/components/event-form/event-form.module.d.ts +0 -20
- package/lib/components/calendar/components/event-info/event-info.component.d.ts +0 -24
- package/lib/components/calendar/enums/calendar.account.enum.d.ts +0 -4
- package/lib/components/calendar/enums/calendar.account.icons.enum.d.ts +0 -4
- package/lib/components/calendar/enums/event-type.enum.d.ts +0 -8
- package/lib/components/calendar/enums/recurring.edit.options.enum.d.ts +0 -5
- package/lib/components/calendar/enums/recurring.type.enum.d.ts +0 -6
- package/lib/components/calendar/interfaces/calendar.account.interface.d.ts +0 -14
- package/lib/components/calendar/interfaces/calendar.account.theme.interface.d.ts +0 -5
- package/lib/components/calendar/interfaces/event.form.interface.d.ts +0 -22
- package/lib/components/calendar/interfaces/event.form.output.interface.d.ts +0 -10
- package/lib/components/calendar/interfaces/event.interface.d.ts +0 -33
- package/lib/components/calendar/interfaces/event.time.interface.d.ts +0 -4
- package/lib/components/calendar/interfaces/recurring.event.interface.d.ts +0 -16
- package/lib/components/calendar/interfaces/recurring.exception.interface.d.ts +0 -14
- package/lib/components/calendar/interfaces/recurring.pattern.interface.d.ts +0 -16
- package/lib/components/calendar/lookups/recurring.options.lookup.d.ts +0 -2
- package/lib/components/calendar/scheduler/enums/schedule-date-status.enum.d.ts +0 -5
- package/lib/components/calendar/scheduler/interfaces/scheduler.action.interface.d.ts +0 -10
- package/lib/components/calendar/scheduler/interfaces/scheduler.event.day.interface.d.ts +0 -5
- package/lib/components/calendar/scheduler/interfaces/scheduler.event.interface.d.ts +0 -26
- package/lib/components/calendar/scheduler/interfaces/scheduler.event.suggestion.interface.d.ts +0 -13
- package/lib/components/calendar/scheduler/interfaces/scheduler.slots.interface.d.ts +0 -6
- package/lib/components/calendar/scheduler/mock-schedule.d.ts +0 -9
- package/lib/components/calendar/scheduler/scheduler.component.d.ts +0 -36
- package/lib/components/calendar/services/calendar-utils.service.d.ts +0 -39
- package/lib/components/chat/chat.component.d.ts +0 -70
- package/lib/components/chat/chat.component.module.d.ts +0 -22
- package/lib/components/chat/chat.service.d.ts +0 -15
- package/lib/components/chat/enums/sender-types.enum.d.ts +0 -4
- package/lib/components/chat/gif-selector/gif-selector.component.d.ts +0 -25
- package/lib/components/chat/gif-selector/gif-selector.service.d.ts +0 -15
- package/lib/components/chat/gif-selector/tenor-media-format.interface.d.ts +0 -7
- package/lib/components/chat/gif-selector/tenor-object.interface.d.ts +0 -5
- package/lib/components/chat/gif-selector/tenor-result.interface.d.ts +0 -16
- package/lib/components/chat/interfaces/date-messages.interface.d.ts +0 -6
- package/lib/components/chat/interfaces/message-attachment.interface.d.ts +0 -6
- package/lib/components/chat/interfaces/message.interface.d.ts +0 -11
- package/lib/components/chat/interfaces/send-options-message.interface.d.ts +0 -5
- package/lib/components/chat/interfaces/type-send-message.enum.d.ts +0 -5
- package/lib/components/chat-suggestion/chat-suggestion.component.d.ts +0 -9
- package/lib/components/chat-suggestion/interfaces/chat-suggestion.interface.d.ts +0 -4
- package/lib/components/circle-progress/circle-progress.component.d.ts +0 -31
- package/lib/components/circle-progress/circle-progress.module.d.ts +0 -8
- package/lib/components/circle-progress/enums/circle-variable.enum.d.ts +0 -4
- package/lib/components/circle-progress/interfaces/circle-progress-config.interface.d.ts +0 -29
- package/lib/components/client-home/client-home.component.d.ts +0 -44
- package/lib/components/client-home/enums/client-home-component.enum.d.ts +0 -7
- package/lib/components/client-home/interfaces/chat-meta.interface.d.ts +0 -7
- package/lib/components/client-home/interfaces/home-dashboard-inputs.interface.d.ts +0 -45
- package/lib/components/client-home/interfaces/inner-partial-circle-progress-colors.interface.d.ts +0 -5
- package/lib/components/client-home/interfaces/partial-circle-progress-colors.interface.d.ts +0 -9
- package/lib/components/client-home/lookup/client-home.config.d.ts +0 -2
- package/lib/components/client-home/lookup/inner-progress-default-colors.config.d.ts +0 -2
- package/lib/components/client-home/lookup/inner-progress-pink-colors.config.d.ts +0 -2
- package/lib/components/client-home/lookup/inner-progress-purple-colors.config.d.ts +0 -2
- package/lib/components/client-home/lookup/inner-progress-teal-colors.config.d.ts +0 -2
- package/lib/components/client-home/lookup/inner-progress-white-colors.config.d.ts +0 -2
- package/lib/components/client-home/lookup/progress-default-colors.config.d.ts +0 -2
- package/lib/components/client-home/lookup/progress-white-colors.config.d.ts +0 -2
- package/lib/components/client-home/pipes/chat-meta.pipe.d.ts +0 -10
- package/lib/components/client-home/pipes/get-color-by-matcher.pipe.d.ts +0 -10
- package/lib/components/client-match-overview/client-match-overview.component.d.ts +0 -55
- package/lib/components/client-match-overview/enums/conversation-flag.enum.d.ts +0 -4
- package/lib/components/client-match-overview/enums/counter-flag-base.enum.d.ts +0 -4
- package/lib/components/client-match-overview/enums/inner-circle-state.enum.d.ts +0 -6
- package/lib/components/client-match-overview/interfaces/client-match-overview.interface.d.ts +0 -19
- package/lib/components/client-match-overview/interfaces/conversation-flag.interface.d.ts +0 -8
- package/lib/components/client-match-overview/interfaces/dashboard-match-request.interface.d.ts +0 -7
- package/lib/components/client-match-overview/interfaces/progress-decision.interface.d.ts +0 -10
- package/lib/components/client-match-overview/interfaces/progress-facts.interface.d.ts +0 -11
- package/lib/components/client-match-overview/lookups/computer-inner-state.lookup.d.ts +0 -7
- package/lib/components/client-match-overview/lookups/limit-dates-indicator.lookup.d.ts +0 -5
- package/lib/components/client-match-overview/progress-ticker/progress-gap.config.d.ts +0 -2
- package/lib/components/client-match-overview/progress-ticker/progress-ticker.config.d.ts +0 -2
- package/lib/components/client-match-overview/progress-ticker/progress-ticker.service.d.ts +0 -11
- package/lib/components/dashboard-swipeable-tabs/dashboard-swipeable-tabs.component.d.ts +0 -29
- package/lib/components/dashboard-swipeable-tabs/lookups/dashboard-main-swiper-options.d.ts +0 -2
- package/lib/components/dashboard-swipeable-tabs/lookups/dashboard-thumbs-swiper-options.d.ts +0 -2
- package/lib/components/dashboard-swipeable-tabs/lookups/main-swiper-default-options.d.ts +0 -2
- package/lib/components/dashboard-swipeable-tabs/lookups/thumbs-swiper-default-options.d.ts +0 -2
- package/lib/components/lib-client-dashboard/client-dashboard.component.d.ts +0 -75
- package/lib/components/lib-client-dashboard/enums/alert-status-fields.enum.d.ts +0 -9
- package/lib/components/lib-client-dashboard/enums/client-dashboard-component.enum.d.ts +0 -5
- package/lib/components/lib-client-dashboard/interfaces/ads.interface.d.ts +0 -14
- package/lib/components/lib-client-dashboard/interfaces/client-dashboard-inputs.interface.d.ts +0 -29
- package/lib/components/lib-client-dashboard/lookups/client-dashboard.config.d.ts +0 -2
- package/lib/components/lib-compose-matcher-dash/compose-matcher-dash.component.d.ts +0 -48
- package/lib/components/lib-compose-matcher-dash/interfaces/chart-data.interface.d.ts +0 -5
- package/lib/components/lib-compose-matcher-dash/interfaces/chat-identifier.interface.d.ts +0 -5
- package/lib/components/lib-compose-matcher-dash/interfaces/matcher-dashboard-inputs.interface.d.ts +0 -26
- package/lib/components/lib-compose-matcher-dash/interfaces/matcher-profile.interface.d.ts +0 -8
- package/lib/components/lib-compose-matcher-dash/interfaces/prospect-data.interface.d.ts +0 -24
- package/lib/components/lib-compose-matcher-dash/pipes/get-profile-with-progress.pipe.d.ts +0 -9
- package/lib/components/matcher-statuses/enums/matcher-statuses.enum.d.ts +0 -13
- package/lib/components/matcher-statuses/interfaces/status.interface.d.ts +0 -6
- package/lib/components/matcher-statuses/lookups/matcher-statuses.lookup.d.ts +0 -2
- package/lib/components/matcher-statuses/matcher-statuses.component.d.ts +0 -23
- package/lib/components/matcher-statuses/pipes/is-status-included.pipe.d.ts +0 -8
- package/lib/components/profile-card/profile-card.component.d.ts +0 -11
- package/lib/components/profile-card/profile-card.module.d.ts +0 -9
- package/lib/components/spider-chart/interfaces/chart-data-circle.interface.d.ts +0 -10
- package/lib/components/spider-chart/interfaces/chart-data-defs-f.interface.d.ts +0 -11
- package/lib/components/spider-chart/interfaces/chart-data-defs-lg.interface.d.ts +0 -11
- package/lib/components/spider-chart/interfaces/chart-data-defs-rg.interface.d.ts +0 -10
- package/lib/components/spider-chart/interfaces/config.interface.d.ts +0 -19
- package/lib/components/spider-chart/interfaces/dataset.interface.d.ts +0 -7
- package/lib/components/spider-chart/interfaces/polygon-color.interface.d.ts +0 -4
- package/lib/components/spider-chart/interfaces/spider-chart-attribute.interface.d.ts +0 -6
- package/lib/components/spider-chart/lookup/default-spider-config.d.ts +0 -2
- package/lib/components/spider-chart/lookup/demo-polygon-colors.lookup.d.ts +0 -2
- package/lib/components/spider-chart/lookup/svg-config.lookup.d.ts +0 -8
- package/lib/components/spider-chart/spider-chart.component.d.ts +0 -52
- package/lib/enums/direction.enum.d.ts +0 -4
- package/lib/enums/form-field-type.d.ts +0 -28
- package/lib/enums/local-storage-keys.enum.d.ts +0 -3
- package/lib/enums/status-types.d.ts +0 -6
- package/lib/model/select-option-template.d.ts +0 -5
- package/lib/operations/operations.d.ts +0 -19
- package/lib/pipes/array-sort/array.sort.pipe.d.ts +0 -7
- package/lib/pipes/count-non-empty-fields/count-non-empty-fields.pipe.d.ts +0 -7
- package/lib/pipes/date-localization/date-localization.pipe.d.ts +0 -8
- package/lib/pipes/fallback-translate/fallback-translate.pipe.d.ts +0 -11
- package/lib/pipes/get-display-value/get-display-value.pipe.d.ts +0 -13
- package/lib/pipes/get-multi-select-display-text/get-multi-select-display-text.pipe.d.ts +0 -8
- package/lib/pipes/initials/initials.pipe.d.ts +0 -7
- package/lib/pipes/round/round.pipe.d.ts +0 -7
- package/lib/pipes/update-llm-preference/update-llm-preference.pipe.d.ts +0 -8
- package/lib/services/abstract-cache.service.d.ts +0 -9
- package/lib/shared/shared/alert-popup/alert-popup.component.d.ts +0 -14
- package/lib/shared/shared/message-modal/message-modal.component.d.ts +0 -29
- package/lib/shared/shared/status-icon/status-icon.component.d.ts +0 -7
- package/lib/shared/shared.module.d.ts +0 -13
- package/public-api.d.ts +0 -122
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { FormControl, Validators } from '@angular/forms';
|
|
3
|
-
import { BaseComponent, DateRangeValidator, TimeRangeValidator } from '@naniteninja/ionic-lib';
|
|
4
|
-
import { addMinutes, differenceInMinutes, startOfDay } from 'date-fns';
|
|
5
|
-
import { takeUntil } from 'rxjs';
|
|
6
|
-
import { EventTypes } from '../../enums/event-type.enum';
|
|
7
|
-
import { recurringOptions } from '../../lookups/recurring.options.lookup';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/forms";
|
|
10
|
-
import * as i2 from "../../services/calendar-utils.service";
|
|
11
|
-
import * as i3 from "../../../../pipes/fallback-translate/fallback-translate.pipe";
|
|
12
|
-
import * as i4 from "@angular/common";
|
|
13
|
-
import * as i5 from "@ionic/angular";
|
|
14
|
-
import * as i6 from "@naniteninja/ionic-lib";
|
|
15
|
-
import * as i7 from "../event-info/event-info.component";
|
|
16
|
-
import * as i8 from "../edit-recurring-event/edit-recurring-event.component";
|
|
17
|
-
export class LibEventFormComponent extends BaseComponent {
|
|
18
|
-
get event() {
|
|
19
|
-
return this._event;
|
|
20
|
-
}
|
|
21
|
-
set event(e) {
|
|
22
|
-
this.onEventChange(e);
|
|
23
|
-
}
|
|
24
|
-
get draggedEvent() {
|
|
25
|
-
return this._draggedEvent;
|
|
26
|
-
}
|
|
27
|
-
set draggedEvent(e) {
|
|
28
|
-
this.onDragEvent(e);
|
|
29
|
-
}
|
|
30
|
-
constructor(cdr, fb, calendarUtilService, fallbackTranslatePipe) {
|
|
31
|
-
super();
|
|
32
|
-
this.cdr = cdr;
|
|
33
|
-
this.fb = fb;
|
|
34
|
-
this.calendarUtilService = calendarUtilService;
|
|
35
|
-
this.fallbackTranslatePipe = fallbackTranslatePipe;
|
|
36
|
-
this.updateRecurringEvent = new EventEmitter();
|
|
37
|
-
this.updateDraggedEvent = new EventEmitter();
|
|
38
|
-
this.delete = new EventEmitter();
|
|
39
|
-
this.closeForm = new EventEmitter();
|
|
40
|
-
this.submitForm = new EventEmitter();
|
|
41
|
-
this.editOptionsCtrl = new FormControl();
|
|
42
|
-
}
|
|
43
|
-
onDeleteConfirm() {
|
|
44
|
-
this.showConfirm = false;
|
|
45
|
-
this.delete.emit({ selectedRecurringOption: this.editOptionsCtrl.value });
|
|
46
|
-
}
|
|
47
|
-
onSubmitModal() {
|
|
48
|
-
if (this.deleteConfirmed) {
|
|
49
|
-
this.onDeleteConfirm();
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
if (this.draggedEvent) {
|
|
53
|
-
this.updateDraggedEvent.emit({
|
|
54
|
-
selectedRecurringOption: this.editOptionsCtrl.value,
|
|
55
|
-
});
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
this.editMode ? this.updateEvent() : this.saveEvent();
|
|
59
|
-
}
|
|
60
|
-
onModalSecondaryButtonClick() {
|
|
61
|
-
this.openRecurringOptions = this.editOptionsCtrl?.value ? false : this.event.recurring || !!this.event.recurringEventId;
|
|
62
|
-
this.showConfirm = !this.openRecurringOptions;
|
|
63
|
-
if (this.openRecurringOptions) {
|
|
64
|
-
this.cancelButtonTitle = this.fallbackTranslatePipe.transform('BUTTONS.CANCEL', 'Cancel');
|
|
65
|
-
this.submitButtonTitle = this.fallbackTranslatePipe.transform('BUTTONS.DELETE', 'Delete');
|
|
66
|
-
this.deleteConfirmed = true;
|
|
67
|
-
this.secondaryButtonTitle = null;
|
|
68
|
-
}
|
|
69
|
-
this.cdr.detectChanges();
|
|
70
|
-
}
|
|
71
|
-
saveEvent() {
|
|
72
|
-
if (this.allowSubmission()) {
|
|
73
|
-
const updatedEvent = this.calendarUtilService.buildUpdatedEvent(this.event, this.form.getRawValue());
|
|
74
|
-
if ((updatedEvent.recurring && this.event.recurring) || this.event?.recurringEventId) {
|
|
75
|
-
updatedEvent.recurringStartDate = this.event.recurringStartDate;
|
|
76
|
-
updatedEvent.recurringEndDate = this.event.recurringEndDate;
|
|
77
|
-
this.updatedEvent = updatedEvent;
|
|
78
|
-
this.recurringTypeChanged =
|
|
79
|
-
this.updatedEvent.recurringPattern?.type !== this.event.recurringPattern?.type || (this.updatedEvent.recurringPattern && !this.event.recurringPattern);
|
|
80
|
-
this.openRecurringOptions = true;
|
|
81
|
-
this.modalTitle = this.fallbackTranslatePipe.transform('CALENDAR.EDIT_RECURRING_EVENT', 'Edit recurring event');
|
|
82
|
-
this.secondaryButtonTitle = null;
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
this.submitFormEvent(updatedEvent, this.form.getRawValue());
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
onLocationChange(event) {
|
|
90
|
-
this.form.controls.location.setValue({ coordinates: event.coordinates, address: event.address });
|
|
91
|
-
this.form.controls.address.setValue(event.address);
|
|
92
|
-
this.form.controls.address.setErrors(event.address && event.coordinates ? null : { invalidField: true });
|
|
93
|
-
}
|
|
94
|
-
resetModal() {
|
|
95
|
-
this.recurringTypeChanged = false;
|
|
96
|
-
this.editOptionsCtrl.setValue(null);
|
|
97
|
-
this.openRecurringOptions = false;
|
|
98
|
-
this.openModal = false;
|
|
99
|
-
this.closeForm.emit();
|
|
100
|
-
}
|
|
101
|
-
initializeEventForm() {
|
|
102
|
-
this.modalTitle = this.editMode ? this.event.title : this.fallbackTranslatePipe.transform('CALENDAR.NEW_EVENT', 'New event');
|
|
103
|
-
this.secondaryButtonTitle = this.editMode ? this.fallbackTranslatePipe.transform('BUTTONS.DELETE', 'Delete') : null;
|
|
104
|
-
this.cancelButtonTitle = this.editMode ? null : this.fallbackTranslatePipe.transform('BUTTONS.CANCEL', 'Cancel');
|
|
105
|
-
this.submitButtonTitle = this.editMode ? this.fallbackTranslatePipe.transform('BUTTONS.EDIT', 'Edit') : this.fallbackTranslatePipe.transform('BUTTONS.SAVE', 'Save');
|
|
106
|
-
if (!this.editMode) {
|
|
107
|
-
this.buildForm();
|
|
108
|
-
}
|
|
109
|
-
this.openModal = true;
|
|
110
|
-
}
|
|
111
|
-
buildForm() {
|
|
112
|
-
this.recurringOptions = recurringOptions.map((option) => {
|
|
113
|
-
return { ...option, title: this.fallbackTranslatePipe.transform(option.title, option.name) };
|
|
114
|
-
});
|
|
115
|
-
this.recurringException =
|
|
116
|
-
this.calendarUtilService.getExceptionEvent(this.event, this.event.recurringPattern?.exceptions) || this.calendarUtilService.getUpdatedRecurringException(this.event);
|
|
117
|
-
const startDate = new Date(this.recurringException?.startDate || this.event.recurringStartDate || this.event.startDate);
|
|
118
|
-
this.eventStart = startOfDay(startDate);
|
|
119
|
-
this.calendarUtilService.setEventTime(this.event);
|
|
120
|
-
const eventTimes = this.calendarUtilService.getEventTimes(this.event, this.recurringException, true);
|
|
121
|
-
const eventNote = this.recurringException?.note || this.event.note ? this.calendarUtilService.removeHtmlTags(this.recurringException?.note || this.event.note) : '';
|
|
122
|
-
this.form = this.fb.nonNullable.group({
|
|
123
|
-
_id: [this.event._id, []],
|
|
124
|
-
accountId: [this.event.accountId, []],
|
|
125
|
-
type: [this.event.type || EventTypes.USER, []],
|
|
126
|
-
email: [this.event.email, []],
|
|
127
|
-
title: [this.recurringException?.title || this.event.title, this.calendarUtilService.isProviderEvent(this.event) ? [] : [Validators.required]],
|
|
128
|
-
allDay: new FormControl(this.recurringException?.allDay || this.event.allDay || false, []),
|
|
129
|
-
startDate: new FormControl(startDate, [Validators.required]),
|
|
130
|
-
startTime: new FormControl(eventTimes.startTime, [Validators.required]),
|
|
131
|
-
endDate: new FormControl(new Date(!this.event._id ? startDate : this.event.recurringEndDate || this.event.endDate), [Validators.required]),
|
|
132
|
-
endTime: new FormControl(eventTimes.endTime, [Validators.required]),
|
|
133
|
-
note: [eventNote, []],
|
|
134
|
-
location: [this.recurringException?.location || this.event.location, []],
|
|
135
|
-
address: [this.recurringException?.location?.address || this.event.location?.address, this.event?.type ? [] : [Validators.required]],
|
|
136
|
-
recurringPattern: this.fb.nonNullable.group({
|
|
137
|
-
type: [!this.event._id ? recurringOptions[0].type : this.event.recurringPattern?.type, []],
|
|
138
|
-
}),
|
|
139
|
-
}, {
|
|
140
|
-
validators: [DateRangeValidator('startDate', 'endDate'), TimeRangeValidator('startTime', 'endTime')],
|
|
141
|
-
});
|
|
142
|
-
this.eventTime = differenceInMinutes(eventTimes.endTime, eventTimes.startTime);
|
|
143
|
-
this.handleAllDayEvents(this.event.allDay);
|
|
144
|
-
this.watchFormFields();
|
|
145
|
-
this.initialFormValue = this.form.getRawValue();
|
|
146
|
-
}
|
|
147
|
-
watchFormFields() {
|
|
148
|
-
this.form.controls.allDay.valueChanges.pipe(takeUntil(this.componentDestroyed$)).subscribe((value) => this.handleAllDayEvents(value, true));
|
|
149
|
-
this.form.controls.address.valueChanges.pipe(takeUntil(this.componentDestroyed$)).subscribe((value) => {
|
|
150
|
-
if (value && !this.form.value.location) {
|
|
151
|
-
this.form.controls.address.setErrors({ invalidField: true });
|
|
152
|
-
}
|
|
153
|
-
if (!value) {
|
|
154
|
-
this.form.controls.location.setValue(null);
|
|
155
|
-
}
|
|
156
|
-
});
|
|
157
|
-
// ------- watch start date recurring -------------
|
|
158
|
-
this.form.controls.startDate.valueChanges.pipe(takeUntil(this.componentDestroyed$)).subscribe((value) => {
|
|
159
|
-
if (value && !this.form.controls.allDay.value) {
|
|
160
|
-
this.form.controls.endDate.setValue(new Date(value));
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
this.form.controls.startTime.valueChanges.pipe(takeUntil(this.componentDestroyed$)).subscribe((value) => {
|
|
164
|
-
if (value) {
|
|
165
|
-
this.form.controls.endTime.setValue(addMinutes(value['slotValue'] || new Date(value), this.eventTime));
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
handleAllDayEvents(allDay, onChange) {
|
|
170
|
-
['endDate', 'endTime', 'startTime'].forEach((controlName) => {
|
|
171
|
-
this.form.controls[controlName].setValidators(allDay ? [] : [Validators.required]);
|
|
172
|
-
this.form.controls[controlName].updateValueAndValidity();
|
|
173
|
-
});
|
|
174
|
-
if (onChange) {
|
|
175
|
-
if (allDay) {
|
|
176
|
-
const startDate = this.form.controls.startDate.value;
|
|
177
|
-
this.form.controls.endDate.setValue(startDate ? startOfDay(new Date(startDate)) : null);
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
const startTime = this.form.controls.startTime.value;
|
|
181
|
-
const time = startTime && startTime['slotValue'] ? startOfDay(new Date(startTime['slotValue'])) : null;
|
|
182
|
-
this.form.controls.startTime.setValue(time);
|
|
183
|
-
this.form.controls.endTime.setValue(time);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
updateEvent() {
|
|
188
|
-
if (this.editOptionsCtrl.value || this.form) {
|
|
189
|
-
this.saveEvent();
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
this.buildForm();
|
|
193
|
-
this.modalTitle = this.fallbackTranslatePipe.transform('CALENDAR.UPDATE_EVENT', 'Update Event');
|
|
194
|
-
this.submitButtonTitle = this.fallbackTranslatePipe.transform('BUTTONS.SAVE', 'Save');
|
|
195
|
-
this.cancelButtonTitle = this.fallbackTranslatePipe.transform('BUTTONS.CANCEL', 'Cancel');
|
|
196
|
-
this.secondaryButtonTitle = null;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
allowSubmission() {
|
|
200
|
-
if (this.form.invalid) {
|
|
201
|
-
this.form.markAllAsTouched();
|
|
202
|
-
return false;
|
|
203
|
-
}
|
|
204
|
-
if (this.form.value.address && !this.form.value.location) {
|
|
205
|
-
this.form.controls['address'].setErrors({ invalidField: true });
|
|
206
|
-
return false;
|
|
207
|
-
}
|
|
208
|
-
if (this.openRecurringOptions) {
|
|
209
|
-
this.updateRecurringEvent.emit({
|
|
210
|
-
event: this.updatedEvent,
|
|
211
|
-
selectedRecurringOption: this.editOptionsCtrl.value,
|
|
212
|
-
recurringTypeChanged: this.recurringTypeChanged,
|
|
213
|
-
});
|
|
214
|
-
return false;
|
|
215
|
-
}
|
|
216
|
-
return true;
|
|
217
|
-
}
|
|
218
|
-
submitFormEvent(event, formValue) {
|
|
219
|
-
this.submitForm.emit({
|
|
220
|
-
event,
|
|
221
|
-
initialFormValue: this.initialFormValue,
|
|
222
|
-
formValue,
|
|
223
|
-
selectedRecurringOption: this.editOptionsCtrl.value,
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
onEventChange(event) {
|
|
227
|
-
this.editMode = !!event?._id;
|
|
228
|
-
this._event = event;
|
|
229
|
-
this.editOptionsCtrl.setValue(null);
|
|
230
|
-
if (!event) {
|
|
231
|
-
this.openModal = false;
|
|
232
|
-
this.form = null;
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
this.initializeEventForm();
|
|
236
|
-
}
|
|
237
|
-
this.cdr.detectChanges;
|
|
238
|
-
}
|
|
239
|
-
onDragEvent(event) {
|
|
240
|
-
this.editMode = !!event?._id;
|
|
241
|
-
this.openModal = !this._draggedEvent && event?.recurring;
|
|
242
|
-
this.openRecurringOptions = this.openModal;
|
|
243
|
-
this.modalTitle = this.openModal ? this.fallbackTranslatePipe.transform('CALENDAR.EDIT_RECURRING_EVENT', 'Edit recurring event') : null;
|
|
244
|
-
this.cancelButtonTitle = this.openModal ? this.fallbackTranslatePipe.transform('BUTTONS.CANCEL', 'Cancel') : null;
|
|
245
|
-
this.submitButtonTitle = this.openModal ? this.fallbackTranslatePipe.transform('BUTTONS.EDIT', 'Edit') : null;
|
|
246
|
-
this.secondaryButtonTitle = null;
|
|
247
|
-
this._draggedEvent = event;
|
|
248
|
-
if (this._draggedEvent && !this.openModal) {
|
|
249
|
-
this.submitFormEvent(this._draggedEvent, this.draggedEvent);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibEventFormComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FormBuilder }, { token: i2.CalendarUtilsService }, { token: i3.FallbackTranslatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
253
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: LibEventFormComponent, selector: "lib-event-form", inputs: { calendars: "calendars", event: "event", draggedEvent: "draggedEvent" }, outputs: { updateRecurringEvent: "updateRecurringEvent", updateDraggedEvent: "updateDraggedEvent", delete: "delete", closeForm: "closeForm", submitForm: "submitForm" }, usesInheritance: true, ngImport: i0, template: "<lib-bottom-modal\n [title]=\"modalTitle\"\n [(isOpen)]=\"openModal\"\n [(showConfirm)]=\"showConfirm\"\n [confirmButton]=\"'CONFIRM.YES' | fallbackTranslate: 'Yes'\"\n [confirmCancelButton]=\"'CONFIRM.No' | fallbackTranslate: 'No'\"\n [confirmationTitle]=\"'CONFIRM.ARE_YOU_SURE' | fallbackTranslate: 'Confirm Deletion'\"\n [confirmationMsg]=\"'CONFIRM.ARE_YOU_SURE_MESSAGE' | fallbackTranslate: 'Sure you want to delete?'\"\n [showCloseBtn]=\"!cancelButtonTitle && editMode\"\n [customClass]=\"'calendar-event-modal'\"\n [loading]=\"loading$ | async\"\n [validModal]=\"(!form || form.valid) && (loading$ | async) !== true\"\n [submitButtonTitle]=\"submitButtonTitle\"\n [secondaryButtonTitle]=\"secondaryButtonTitle\"\n [cancelButtonTitle]=\"cancelButtonTitle\"\n (secondaryButtonClick)=\"onModalSecondaryButtonClick()\"\n (closeModal)=\"resetModal()\"\n (submitModal)=\"onSubmitModal()\"\n (confirmEvent)=\"onDeleteConfirm()\"\n>\n <div class=\"event-modal\">\n <lib-event-info [event]=\"event\" [calendars]=\"calendars\" *ngIf=\"!form && editMode && !openRecurringOptions\"></lib-event-info>\n <lib-edit-recurring-event [editOptionsCtrl]=\"editOptionsCtrl\" [excludeCurrentInstance]=\"recurringTypeChanged\" *ngIf=\"openRecurringOptions\"></lib-edit-recurring-event>\n <ng-content></ng-content>\n <form [formGroup]=\"form\" *ngIf=\"form && !openRecurringOptions\" autocomplete=\"off\" appFocusInvalidInput (ngSubmit)=\"saveEvent()\" (keyup.enter)=\"saveEvent()\" id=\"event-form\">\n <div class=\"form-body\">\n <div class=\"form-row center-content\">\n <div class=\"event-title-field\">\n <lib-input-field\n maxLength=\"2000\"\n formControlName=\"title\"\n type=\"text\"\n [readonly]=\"loading$ | async\"\n [label]=\"'CALENDAR.TITLE_FIELD' | fallbackTranslate: 'Title'\"\n [trimWhiteSpace]=\"false\"\n ></lib-input-field>\n <lib-error-message class=\"input-error event-input-field-error\" [config]=\"{ control: form.controls['title'] }\"></lib-error-message>\n </div>\n </div>\n <div class=\"form-row event-dates\">\n <div class=\"input-field-container input-field-container-group\">\n <div class=\"event-date-container\" [ngClass]=\"{ 'input-field-container-full-row': !form.controls['allDay'].value }\">\n <lib-input-date-field\n class=\"event-date\"\n formControlName=\"startDate\"\n [readonly]=\"loading$ | async\"\n [hieActions]=\"true\"\n [showIcon]=\"true\"\n [label]=\"'CALENDAR.START_DATE' | fallbackTranslate: 'Start Date'\"\n ></lib-input-date-field>\n <lib-error-message class=\"input-error event-input-field-error\" [config]=\"{ control: form.controls['startDate'] }\"></lib-error-message>\n </div>\n @if (form.controls['allDay'].value) {\n <lib-input-date-field\n class=\"event-date event-end-date\"\n formControlName=\"endDate\"\n [disabled]=\"loading$ | async\"\n [hieActions]=\"true\"\n [showIcon]=\"true\"\n [label]=\"'CALENDAR.END_DATE' | fallbackTranslate: 'End Date'\"\n ></lib-input-date-field>\n <lib-error-message class=\"input-error event-input-field-error\" [config]=\"{ control: form.controls['endDate'] }\"></lib-error-message>\n }\n </div>\n </div>\n\n @if (!form.controls['allDay'].value) {\n <div class=\"form-row\">\n <div class=\"input-field-container input-field-container-group time-fields-group\">\n <div class=\"time-field\">\n <lib-input-time-field\n formControlName=\"startTime\"\n [showIcon]=\"true\"\n [startDate]=\"eventStart\"\n [interval]=\"15\"\n [disabled]=\"loading$ | async\"\n [label]=\"'CALENDAR.STARTS' | fallbackTranslate: 'Starts'\"\n ></lib-input-time-field>\n <lib-error-message class=\"input-error event-input-field-error\" [config]=\"{ control: form.controls['startTime'] }\"></lib-error-message>\n </div>\n <div class=\"time-field\">\n <lib-input-time-field\n class=\"end-time\"\n formControlName=\"endTime\"\n [interval]=\"15\"\n [showIcon]=\"true\"\n [displaySlotTime]=\"true\"\n [fromTime]=\"\n form.controls.startTime.value && form.controls.startTime.value['slotValue'] ? form.controls.startTime.value['slotValue'] : form.controls.startTime.value\n \"\n [startDate]=\"eventStart\"\n [disabled]=\"loading$ | async\"\n [label]=\"'CALENDAR.ENDS' | fallbackTranslate: 'Ends'\"\n ></lib-input-time-field>\n <lib-error-message class=\"input-error event-input-field-error\" [config]=\"{ control: form.controls['endTime'] }\"></lib-error-message>\n </div>\n </div>\n </div>\n }\n\n <div class=\"form-row recurring\">\n <div class=\"recurring-select\" formGroupName=\"recurringPattern\">\n <lib-input-field-select\n formControlName=\"type\"\n [optionLabel]=\"(recurringOptions[0].title | fallbackTranslate: 'noTrnslations') === 'noTrnslations' ? 'name' : 'title'\"\n [optionValue]=\"'type'\"\n [options]=\"recurringOptions\"\n [disabled]=\"loading$ | async\"\n >\n </lib-input-field-select>\n </div>\n <div class=\"allDay-container\">\n <ion-item class=\"no-shadow allDay\">\n <label>\n <lib-dashed-checkbox formControlName=\"allDay\" [disabled]=\"loading$ | async\"></lib-dashed-checkbox>\n <span>{{ 'CALENDAR.ALL_DAY' | fallbackTranslate: 'All day' }}</span>\n </label>\n </ion-item>\n </div>\n </div>\n\n <div class=\"form-row address\">\n <div class=\"input-field-container\">\n <lib-input-field\n maxLength=\"2000\"\n [trimWhiteSpace]=\"false\"\n formControlName=\"address\"\n [enableGoogleAddress]=\"true\"\n [address]=\"form.controls['address'].value\"\n (locationChange)=\"onLocationChange($event)\"\n [readonly]=\"loading$ | async\"\n [label]=\"'FIELDS.ADD_LOCATION' | fallbackTranslate: 'Location'\"\n >\n </lib-input-field>\n <lib-error-message class=\"input-error\" [config]=\"{ control: form.controls['address'] }\"></lib-error-message>\n </div>\n </div>\n\n <div class=\"form-row\">\n <div class=\"event-note-field\">\n <lib-input-field\n formControlName=\"note\"\n [textarea]=\"true\"\n [label]=\"'FIELDS.ADD_DESCRIPTION' | fallbackTranslate: 'Description'\"\n maxLength=\"2000\"\n [readonly]=\"loading$ | async\"\n ></lib-input-field>\n </div>\n </div>\n </div>\n </form>\n </div>\n</lib-bottom-modal>\n", styles: [".event-modal{--input-width: 100%;--input-height: 48px;--border-radius: 100px;--input-icon-color: #fe3c72;--input-font-color: #fff;--dropdown-background: linear-gradient(191.18deg, #27242c 61.33%, #0c0b0e 101.43%);--input-font-family: \"Gilroy-Regular\", serif;--label-color: grey;--input-field-box-shadow: inset 17px 22px 20px 2.5px rgba(17, 16, 20, .7), inset -2px -2px 8px rgba(203, 199, 209, .5);--input-number-filed-font: var(--font-family);--textarea-height: 100px !important;position:relative;display:block;width:100%;padding:0 20px 10px;max-height:72vh;overflow:auto}.event-modal .form-row{display:flex;flex-direction:row;margin-bottom:10px}.event-modal .form-row.form-footer{align-items:flex-end;justify-content:flex-end;margin-bottom:-15px}.event-modal .form-row.form-footer lib-primary-btn{width:100px}.event-modal .form-row.form-row-error{margin:-10px 0 0;padding:0;height:20px}.event-modal .form-row.recurring{margin:12px 0;display:flex}.event-modal .form-row.recurring .allDay-container,.event-modal .form-row.recurring .recurring-select{width:50%}.event-modal .form-row.recurring .recurring-select lib-input-field-select{width:100%}.event-modal .form-row.recurring .allDay-container{display:flex;flex-direction:row;justify-content:flex-start;align-items:flex-end;margin-top:-10px}.event-modal form{padding:5px 5px 0}.event-modal form .form-body{max-width:100%;position:relative;display:block}.event-modal ion-item ion-label{font-family:Gilroy-Regular,serif!important}.event-modal ion-item ion-label:not(.allDay){display:flex!important;flex-direction:row;align-items:center;justify-content:center}.event-modal ion-item.allDay{margin-top:-10px;width:fit-content;--min-height: 50px}.event-modal ion-item.allDay label{display:flex;gap:10px;align-items:center;font-family:Gilroy-Regular,serif;cursor:pointer}.event-modal ion-item.allDay lib-dashed-checkbox{--size: 24px;--color: var(--cyrano-pink-shade-1)}.event-modal .event-title-field,.event-modal .event-note-field{position:relative;display:block;width:100%;padding-top:10px}.event-modal .event-title-field lib-input-field,.event-modal .event-note-field lib-input-field{position:relative;width:100%;min-width:100%}.event-modal .input-field-container{padding-top:2px;width:100%}.event-modal .input-field-container.input-field-container-group{display:flex;gap:5px}.event-modal .input-field-container.input-field-container-group div{width:50%}.event-modal .input-field-container.input-field-container-group div.input-field-container-full-row{width:100%}.event-modal .input-field-container .time-fields{display:flex;gap:10px}.event-modal .input-field-container lib-input-field{width:100%}.event-modal .field-error{position:relative;display:block;width:100%}@media screen and (max-width: 500px){.event-modal .event-date-container{margin-bottom:15px}.event-modal .input-field-container-group{display:flex;flex-direction:column}.event-modal .input-field-container-group div{width:100%!important}.event-modal .input-field-container-group.time-fields-group{flex-direction:row}.event-modal .form-row.recurring{display:block}.event-modal .form-row.recurring .allDay-container,.event-modal .form-row.recurring .recurring-select{width:100%}.event-modal .form-row.recurring .allDay-container{display:flex;flex-direction:row;justify-content:flex-start;align-items:flex-end}.event-modal .form-row.recurring .allDay-container ion-item.allDay{padding-left:0;margin-top:10px}.event-modal .form-row.address{margin-top:-20px}.event-modal .form-row.event-dates{margin-bottom:0}}@media screen and (max-width: 350px){.event-modal .input-placeholder.input-placeholder-date .time-placeholder{margin-left:0}}.event-modal .event-input-field-error{margin-top:-20px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i6.DashedCheckboxComponent, selector: "lib-dashed-checkbox", inputs: ["checked", "disabled"], outputs: ["toggle"] }, { kind: "component", type: i6.InputDateFieldComponent, selector: "lib-input-date-field", inputs: ["label", "defaultDate", "maxDate", "minDate", "showTime", "hieActions", "readonly", "defaultDayHighlight", "showIcon", "timeOnly", "view", "disabled", "dateFormat", "placeholder", "appendTo", "stepMinute", "mask", "styleClass", "timeFormat"], outputs: ["focusEvent"] }, { kind: "component", type: i6.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: "component", type: i6.InputFieldSelectComponent, selector: "lib-input-field-select", inputs: ["multiple", "label", "placeholder", "optionLabel", "optionValue", "options", "optionsTemplates", "filterBy", "enableFilter", "readonly", "disabled", "showClear", "editable", "withTemplate", "enableTranslation"], outputs: ["valueChange"] }, { kind: "component", type: i6.InputTimeFieldComponent, selector: "lib-input-time-field", inputs: ["startDate", "interval", "displaySlotTime", "fromTime", "format", "label", "readonly", "showIcon", "disabled"], outputs: ["focusEvent"] }, { kind: "component", type: i6.BottomModalComponent, selector: "lib-bottom-modal", inputs: ["breakpoints", "initialBreakpoint", "isOpen", "canDismiss", "showArrow", "showBackBtn", "showConfirm", "showCloseBtn", "loading", "showHeaderSeparator", "title", "confirmationTitle", "confirmationMsg", "confirmButton", "confirmCancelButton", "description", "secondaryButtonTitle", "submitButtonTitle", "cancelButtonTitle", "validModal", "adaptToContentHeight", "customClass"], outputs: ["isOpenChange", "breakpointChange", "closeModal", "submitModal", "secondaryButtonClick", "backClick", "showConfirmChange", "confirmEvent"] }, { kind: "component", type: i6.LibErrorMessageComponent, selector: "lib-error-message", inputs: ["config"] }, { kind: "component", type: i7.LibEventInfoComponent, selector: "lib-event-info", inputs: ["event", "calendars"] }, { kind: "component", type: i8.LibEditRecurringEventComponent, selector: "lib-edit-recurring-event", inputs: ["excludeCurrentInstance", "editOptionsCtrl"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.FallbackTranslatePipe, name: "fallbackTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
254
|
-
}
|
|
255
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibEventFormComponent, decorators: [{
|
|
256
|
-
type: Component,
|
|
257
|
-
args: [{ selector: 'lib-event-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<lib-bottom-modal\n [title]=\"modalTitle\"\n [(isOpen)]=\"openModal\"\n [(showConfirm)]=\"showConfirm\"\n [confirmButton]=\"'CONFIRM.YES' | fallbackTranslate: 'Yes'\"\n [confirmCancelButton]=\"'CONFIRM.No' | fallbackTranslate: 'No'\"\n [confirmationTitle]=\"'CONFIRM.ARE_YOU_SURE' | fallbackTranslate: 'Confirm Deletion'\"\n [confirmationMsg]=\"'CONFIRM.ARE_YOU_SURE_MESSAGE' | fallbackTranslate: 'Sure you want to delete?'\"\n [showCloseBtn]=\"!cancelButtonTitle && editMode\"\n [customClass]=\"'calendar-event-modal'\"\n [loading]=\"loading$ | async\"\n [validModal]=\"(!form || form.valid) && (loading$ | async) !== true\"\n [submitButtonTitle]=\"submitButtonTitle\"\n [secondaryButtonTitle]=\"secondaryButtonTitle\"\n [cancelButtonTitle]=\"cancelButtonTitle\"\n (secondaryButtonClick)=\"onModalSecondaryButtonClick()\"\n (closeModal)=\"resetModal()\"\n (submitModal)=\"onSubmitModal()\"\n (confirmEvent)=\"onDeleteConfirm()\"\n>\n <div class=\"event-modal\">\n <lib-event-info [event]=\"event\" [calendars]=\"calendars\" *ngIf=\"!form && editMode && !openRecurringOptions\"></lib-event-info>\n <lib-edit-recurring-event [editOptionsCtrl]=\"editOptionsCtrl\" [excludeCurrentInstance]=\"recurringTypeChanged\" *ngIf=\"openRecurringOptions\"></lib-edit-recurring-event>\n <ng-content></ng-content>\n <form [formGroup]=\"form\" *ngIf=\"form && !openRecurringOptions\" autocomplete=\"off\" appFocusInvalidInput (ngSubmit)=\"saveEvent()\" (keyup.enter)=\"saveEvent()\" id=\"event-form\">\n <div class=\"form-body\">\n <div class=\"form-row center-content\">\n <div class=\"event-title-field\">\n <lib-input-field\n maxLength=\"2000\"\n formControlName=\"title\"\n type=\"text\"\n [readonly]=\"loading$ | async\"\n [label]=\"'CALENDAR.TITLE_FIELD' | fallbackTranslate: 'Title'\"\n [trimWhiteSpace]=\"false\"\n ></lib-input-field>\n <lib-error-message class=\"input-error event-input-field-error\" [config]=\"{ control: form.controls['title'] }\"></lib-error-message>\n </div>\n </div>\n <div class=\"form-row event-dates\">\n <div class=\"input-field-container input-field-container-group\">\n <div class=\"event-date-container\" [ngClass]=\"{ 'input-field-container-full-row': !form.controls['allDay'].value }\">\n <lib-input-date-field\n class=\"event-date\"\n formControlName=\"startDate\"\n [readonly]=\"loading$ | async\"\n [hieActions]=\"true\"\n [showIcon]=\"true\"\n [label]=\"'CALENDAR.START_DATE' | fallbackTranslate: 'Start Date'\"\n ></lib-input-date-field>\n <lib-error-message class=\"input-error event-input-field-error\" [config]=\"{ control: form.controls['startDate'] }\"></lib-error-message>\n </div>\n @if (form.controls['allDay'].value) {\n <lib-input-date-field\n class=\"event-date event-end-date\"\n formControlName=\"endDate\"\n [disabled]=\"loading$ | async\"\n [hieActions]=\"true\"\n [showIcon]=\"true\"\n [label]=\"'CALENDAR.END_DATE' | fallbackTranslate: 'End Date'\"\n ></lib-input-date-field>\n <lib-error-message class=\"input-error event-input-field-error\" [config]=\"{ control: form.controls['endDate'] }\"></lib-error-message>\n }\n </div>\n </div>\n\n @if (!form.controls['allDay'].value) {\n <div class=\"form-row\">\n <div class=\"input-field-container input-field-container-group time-fields-group\">\n <div class=\"time-field\">\n <lib-input-time-field\n formControlName=\"startTime\"\n [showIcon]=\"true\"\n [startDate]=\"eventStart\"\n [interval]=\"15\"\n [disabled]=\"loading$ | async\"\n [label]=\"'CALENDAR.STARTS' | fallbackTranslate: 'Starts'\"\n ></lib-input-time-field>\n <lib-error-message class=\"input-error event-input-field-error\" [config]=\"{ control: form.controls['startTime'] }\"></lib-error-message>\n </div>\n <div class=\"time-field\">\n <lib-input-time-field\n class=\"end-time\"\n formControlName=\"endTime\"\n [interval]=\"15\"\n [showIcon]=\"true\"\n [displaySlotTime]=\"true\"\n [fromTime]=\"\n form.controls.startTime.value && form.controls.startTime.value['slotValue'] ? form.controls.startTime.value['slotValue'] : form.controls.startTime.value\n \"\n [startDate]=\"eventStart\"\n [disabled]=\"loading$ | async\"\n [label]=\"'CALENDAR.ENDS' | fallbackTranslate: 'Ends'\"\n ></lib-input-time-field>\n <lib-error-message class=\"input-error event-input-field-error\" [config]=\"{ control: form.controls['endTime'] }\"></lib-error-message>\n </div>\n </div>\n </div>\n }\n\n <div class=\"form-row recurring\">\n <div class=\"recurring-select\" formGroupName=\"recurringPattern\">\n <lib-input-field-select\n formControlName=\"type\"\n [optionLabel]=\"(recurringOptions[0].title | fallbackTranslate: 'noTrnslations') === 'noTrnslations' ? 'name' : 'title'\"\n [optionValue]=\"'type'\"\n [options]=\"recurringOptions\"\n [disabled]=\"loading$ | async\"\n >\n </lib-input-field-select>\n </div>\n <div class=\"allDay-container\">\n <ion-item class=\"no-shadow allDay\">\n <label>\n <lib-dashed-checkbox formControlName=\"allDay\" [disabled]=\"loading$ | async\"></lib-dashed-checkbox>\n <span>{{ 'CALENDAR.ALL_DAY' | fallbackTranslate: 'All day' }}</span>\n </label>\n </ion-item>\n </div>\n </div>\n\n <div class=\"form-row address\">\n <div class=\"input-field-container\">\n <lib-input-field\n maxLength=\"2000\"\n [trimWhiteSpace]=\"false\"\n formControlName=\"address\"\n [enableGoogleAddress]=\"true\"\n [address]=\"form.controls['address'].value\"\n (locationChange)=\"onLocationChange($event)\"\n [readonly]=\"loading$ | async\"\n [label]=\"'FIELDS.ADD_LOCATION' | fallbackTranslate: 'Location'\"\n >\n </lib-input-field>\n <lib-error-message class=\"input-error\" [config]=\"{ control: form.controls['address'] }\"></lib-error-message>\n </div>\n </div>\n\n <div class=\"form-row\">\n <div class=\"event-note-field\">\n <lib-input-field\n formControlName=\"note\"\n [textarea]=\"true\"\n [label]=\"'FIELDS.ADD_DESCRIPTION' | fallbackTranslate: 'Description'\"\n maxLength=\"2000\"\n [readonly]=\"loading$ | async\"\n ></lib-input-field>\n </div>\n </div>\n </div>\n </form>\n </div>\n</lib-bottom-modal>\n", styles: [".event-modal{--input-width: 100%;--input-height: 48px;--border-radius: 100px;--input-icon-color: #fe3c72;--input-font-color: #fff;--dropdown-background: linear-gradient(191.18deg, #27242c 61.33%, #0c0b0e 101.43%);--input-font-family: \"Gilroy-Regular\", serif;--label-color: grey;--input-field-box-shadow: inset 17px 22px 20px 2.5px rgba(17, 16, 20, .7), inset -2px -2px 8px rgba(203, 199, 209, .5);--input-number-filed-font: var(--font-family);--textarea-height: 100px !important;position:relative;display:block;width:100%;padding:0 20px 10px;max-height:72vh;overflow:auto}.event-modal .form-row{display:flex;flex-direction:row;margin-bottom:10px}.event-modal .form-row.form-footer{align-items:flex-end;justify-content:flex-end;margin-bottom:-15px}.event-modal .form-row.form-footer lib-primary-btn{width:100px}.event-modal .form-row.form-row-error{margin:-10px 0 0;padding:0;height:20px}.event-modal .form-row.recurring{margin:12px 0;display:flex}.event-modal .form-row.recurring .allDay-container,.event-modal .form-row.recurring .recurring-select{width:50%}.event-modal .form-row.recurring .recurring-select lib-input-field-select{width:100%}.event-modal .form-row.recurring .allDay-container{display:flex;flex-direction:row;justify-content:flex-start;align-items:flex-end;margin-top:-10px}.event-modal form{padding:5px 5px 0}.event-modal form .form-body{max-width:100%;position:relative;display:block}.event-modal ion-item ion-label{font-family:Gilroy-Regular,serif!important}.event-modal ion-item ion-label:not(.allDay){display:flex!important;flex-direction:row;align-items:center;justify-content:center}.event-modal ion-item.allDay{margin-top:-10px;width:fit-content;--min-height: 50px}.event-modal ion-item.allDay label{display:flex;gap:10px;align-items:center;font-family:Gilroy-Regular,serif;cursor:pointer}.event-modal ion-item.allDay lib-dashed-checkbox{--size: 24px;--color: var(--cyrano-pink-shade-1)}.event-modal .event-title-field,.event-modal .event-note-field{position:relative;display:block;width:100%;padding-top:10px}.event-modal .event-title-field lib-input-field,.event-modal .event-note-field lib-input-field{position:relative;width:100%;min-width:100%}.event-modal .input-field-container{padding-top:2px;width:100%}.event-modal .input-field-container.input-field-container-group{display:flex;gap:5px}.event-modal .input-field-container.input-field-container-group div{width:50%}.event-modal .input-field-container.input-field-container-group div.input-field-container-full-row{width:100%}.event-modal .input-field-container .time-fields{display:flex;gap:10px}.event-modal .input-field-container lib-input-field{width:100%}.event-modal .field-error{position:relative;display:block;width:100%}@media screen and (max-width: 500px){.event-modal .event-date-container{margin-bottom:15px}.event-modal .input-field-container-group{display:flex;flex-direction:column}.event-modal .input-field-container-group div{width:100%!important}.event-modal .input-field-container-group.time-fields-group{flex-direction:row}.event-modal .form-row.recurring{display:block}.event-modal .form-row.recurring .allDay-container,.event-modal .form-row.recurring .recurring-select{width:100%}.event-modal .form-row.recurring .allDay-container{display:flex;flex-direction:row;justify-content:flex-start;align-items:flex-end}.event-modal .form-row.recurring .allDay-container ion-item.allDay{padding-left:0;margin-top:10px}.event-modal .form-row.address{margin-top:-20px}.event-modal .form-row.event-dates{margin-bottom:0}}@media screen and (max-width: 350px){.event-modal .input-placeholder.input-placeholder-date .time-placeholder{margin-left:0}}.event-modal .event-input-field-error{margin-top:-20px}\n"] }]
|
|
258
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.FormBuilder }, { type: i2.CalendarUtilsService }, { type: i3.FallbackTranslatePipe }], propDecorators: { calendars: [{
|
|
259
|
-
type: Input
|
|
260
|
-
}], event: [{
|
|
261
|
-
type: Input
|
|
262
|
-
}], draggedEvent: [{
|
|
263
|
-
type: Input
|
|
264
|
-
}], updateRecurringEvent: [{
|
|
265
|
-
type: Output
|
|
266
|
-
}], updateDraggedEvent: [{
|
|
267
|
-
type: Output
|
|
268
|
-
}], delete: [{
|
|
269
|
-
type: Output
|
|
270
|
-
}], closeForm: [{
|
|
271
|
-
type: Output
|
|
272
|
-
}], submitForm: [{
|
|
273
|
-
type: Output
|
|
274
|
-
}] } });
|
|
275
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtY29tcG9uZW50cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NvbXBvbmVudHMvZXZlbnQtZm9ybS9ldmVudC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC1jb21wb25lbnRzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY2FsZW5kYXIvY29tcG9uZW50cy9ldmVudC1mb3JtL2V2ZW50LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFlLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFpQixrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlHLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBUXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7Ozs7O0FBUzFFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBRXRELElBQWEsS0FBSztRQUNoQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLENBQVM7UUFDakIsSUFBSSxD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QztRQUMzQixJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0gsQ0FBQzsrR0FqUlUscUJBQXFCO21HQUFyQixxQkFBcUIsd1VDdkJsQyx5MU9BeUpBOzs0RkRsSWEscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNO3VMQUd0QyxTQUFTO3NCQUFqQixLQUFLO2dCQUNPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBTU8sWUFBWTtzQkFBeEIsS0FBSztnQkFPSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIERhdGVSYW5nZVZhbGlkYXRvciwgTG9jYXRpb25Nb2RlbCwgVGltZVJhbmdlVmFsaWRhdG9yIH0gZnJvbSAnQG5hbml0ZW5pbmphL2lvbmljLWxpYic7XG5pbXBvcnQgeyBhZGRNaW51dGVzLCBkaWZmZXJlbmNlSW5NaW51dGVzLCBzdGFydE9mRGF5IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGYWxsYmFja1RyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi8uLi9waXBlcy9mYWxsYmFjay10cmFuc2xhdGUvZmFsbGJhY2stdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHsgRXZlbnRUeXBlcyB9IGZyb20gJy4uLy4uL2VudW1zL2V2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBFZGl0UmVjdXJyaW5nRXZlbnRPcHRpb25zIH0gZnJvbSAnLi4vLi4vZW51bXMvcmVjdXJyaW5nLmVkaXQub3B0aW9ucy5lbnVtJztcbmltcG9ydCB7IElDYWxlbmRhckFjY291bnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2NhbGVuZGFyLmFjY291bnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElFdmVudEZvcm0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2V2ZW50LmZvcm0uaW50ZXJmYWNlJztcbmltcG9ydCB7IElFdmVudEZvcm1PdXRwdXQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2V2ZW50LmZvcm0ub3V0cHV0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2V2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJUmVjdXJyaW5nRXZlbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlY3VycmluZy5ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVJlY3VycmluZ0V2ZW50RXhjZXB0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9yZWN1cnJpbmcuZXhjZXB0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyByZWN1cnJpbmdPcHRpb25zIH0gZnJvbSAnLi4vLi4vbG9va3Vwcy9yZWN1cnJpbmcub3B0aW9ucy5sb29rdXAnO1xuaW1wb3J0IHsgQ2FsZW5kYXJVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYWxlbmRhci11dGlscy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWV2ZW50LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZXZlbnQtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9ldmVudC1mb3JtLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExpYkV2ZW50Rm9ybUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBASW5wdXQoKSBjYWxlbmRhcnM6IElDYWxlbmRhckFjY291bnRbXTtcbiAgQElucHV0KCkgZ2V0IGV2ZW50KCk6IElFdmVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2V2ZW50O1xuICB9XG4gIHNldCBldmVudChlOiBJRXZlbnQpIHtcbiAgICB0aGlzLm9uRXZlbnRDaGFuZ2UoZSk7XG4gIH1cbiAgQElucHV0KCkgZ2V0IGRyYWdnZWRFdmVudCgpOiBJRXZlbnQge1xuICAgIHJldHVybiB0aGlzLl9kcmFnZ2VkRXZlbnQ7XG4gIH1cbiAgc2V0IGRyYWdnZWRFdmVudChlOiBJRXZlbnQpIHtcbiAgICB0aGlzLm9uRHJhZ0V2ZW50KGUpO1xuICB9XG5cbiAgQE91dHB1dCgpIHVwZGF0ZVJlY3VycmluZ0V2ZW50OiBFdmVudEVtaXR0ZXI8SUV2ZW50Rm9ybU91dHB1dD4gPSBuZXcgRXZlbnRFbWl0dGVyPElFdmVudEZvcm1PdXRwdXQ+KCk7XG4gIEBPdXRwdXQoKSB1cGRhdGVEcmFnZ2VkRXZlbnQ6IEV2ZW50RW1pdHRlcjxJRXZlbnRGb3JtT3V0cHV0PiA9IG5ldyBFdmVudEVtaXR0ZXI8SUV2ZW50Rm9ybU91dHB1dD4oKTtcbiAgQE91dHB1dCgpIGRlbGV0ZTogRXZlbnRFbWl0dGVyPElFdmVudEZvcm1PdXRwdXQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJRXZlbnRGb3JtT3V0cHV0PigpO1xuICBAT3V0cHV0KCkgY2xvc2VGb3JtOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBzdWJtaXRGb3JtOiBFdmVudEVtaXR0ZXI8SUV2ZW50Rm9ybU91dHB1dD4gPSBuZXcgRXZlbnRFbWl0dGVyPElFdmVudEZvcm1PdXRwdXQ+KCk7XG5cbiAgcHVibGljIGVkaXRNb2RlOiBib29sZWFuO1xuICBwdWJsaWMgZWRpdE9wdGlvbnNDdHJsOiBGb3JtQ29udHJvbDxFZGl0UmVjdXJyaW5nRXZlbnRPcHRpb25zPiA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBwdWJsaWMgbW9kYWxUaXRsZTogc3RyaW5nO1xuICBwdWJsaWMgcmVjdXJyaW5nVHlwZUNoYW5nZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBjYW5jZWxCdXR0b25UaXRsZTogc3RyaW5nO1xuICBwdWJsaWMgc3VibWl0QnV0dG9uVGl0bGU6IHN0cmluZztcbiAgcHVibGljIHNlY29uZGFyeUJ1dHRvblRpdGxlOiBzdHJpbmc7XG4gIHB1YmxpYyBvcGVuTW9kYWw6IGJvb2xlYW47XG4gIHB1YmxpYyBzaG93Q29uZmlybTogYm9vbGVhbjtcbiAgcHVibGljIG9wZW5SZWN1cnJpbmdPcHRpb25zOiBib29sZWFuO1xuICBwdWJsaWMgcmVjdXJyaW5nT3B0aW9uczogSVJlY3VycmluZ0V2ZW50W107XG4gIHB1YmxpYyBldmVudFN0YXJ0OiBEYXRlO1xuICBwdWJsaWMgZm9ybTogRm9ybUdyb3VwPElFdmVudEZvcm0+O1xuICBwdWJsaWMgcmVjdXJyaW5nRXhjZXB0aW9uOiBJUmVjdXJyaW5nRXZlbnRFeGNlcHRpb247XG4gIHByaXZhdGUgaW5pdGlhbEZvcm1WYWx1ZTogSUV2ZW50O1xuICBwcml2YXRlIGV2ZW50VGltZTogbnVtYmVyO1xuICBwcml2YXRlIF9ldmVudDogSUV2ZW50O1xuICBwcml2YXRlIF9kcmFnZ2VkRXZlbnQ6IElFdmVudDtcbiAgcHJpdmF0ZSBkZWxldGVDb25maXJtZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgdXBkYXRlZEV2ZW50OiBJRXZlbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBjYWxlbmRhclV0aWxTZXJ2aWNlOiBDYWxlbmRhclV0aWxzU2VydmljZSxcbiAgICBwcml2YXRlIGZhbGxiYWNrVHJhbnNsYXRlUGlwZTogRmFsbGJhY2tUcmFuc2xhdGVQaXBlLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG9uRGVsZXRlQ29uZmlybSgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dDb25maXJtID0gZmFsc2U7XG4gICAgdGhpcy5kZWxldGUuZW1pdCh7IHNlbGVjdGVkUmVjdXJyaW5nT3B0aW9uOiB0aGlzLmVkaXRPcHRpb25zQ3RybC52YWx1ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvblN1Ym1pdE1vZGFsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRlbGV0ZUNvbmZpcm1lZCkge1xuICAgICAgdGhpcy5vbkRlbGV0ZUNvbmZpcm0oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZHJhZ2dlZEV2ZW50KSB7XG4gICAgICB0aGlzLnVwZGF0ZURyYWdnZWRFdmVudC5lbWl0KHtcbiAgICAgICAgc2VsZWN0ZWRSZWN1cnJpbmdPcHRpb246IHRoaXMuZWRpdE9wdGlvbnNDdHJsLnZhbHVlLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZWRpdE1vZGUgPyB0aGlzLnVwZGF0ZUV2ZW50KCkgOiB0aGlzLnNhdmVFdmVudCgpO1xuICB9XG5cbiAgcHVibGljIG9uTW9kYWxTZWNvbmRhcnlCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5SZWN1cnJpbmdPcHRpb25zID0gdGhpcy5lZGl0T3B0aW9uc0N0cmw/LnZhbHVlID8gZmFsc2UgOiB0aGlzLmV2ZW50LnJlY3VycmluZyB8fCAhIXRoaXMuZXZlbnQucmVjdXJyaW5nRXZlbnRJZDtcbiAgICB0aGlzLnNob3dDb25maXJtID0gIXRoaXMub3BlblJlY3VycmluZ09wdGlvbnM7XG4gICAgaWYgKHRoaXMub3BlblJlY3VycmluZ09wdGlvbnMpIHtcbiAgICAgIHRoaXMuY2FuY2VsQnV0dG9uVGl0bGUgPSB0aGlzLmZhbGxiYWNrVHJhbnNsYXRlUGlwZS50cmFuc2Zvcm0oJ0JVVFRPTlMuQ0FOQ0VMJywgJ0NhbmNlbCcpO1xuICAgICAgdGhpcy5zdWJtaXRCdXR0b25UaXRsZSA9IHRoaXMuZmFsbGJhY2tUcmFuc2xhdGVQaXBlLnRyYW5zZm9ybSgnQlVUVE9OUy5ERUxFVEUnLCAnRGVsZXRlJyk7XG4gICAgICB0aGlzLmRlbGV0ZUNvbmZpcm1lZCA9IHRydWU7XG4gICAgICB0aGlzLnNlY29uZGFyeUJ1dHRvblRpdGxlID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIHNhdmVFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbGxvd1N1Ym1pc3Npb24oKSkge1xuICAgICAgY29uc3QgdXBkYXRlZEV2ZW50OiBJRXZlbnQgPSB0aGlzLmNhbGVuZGFyVXRpbFNlcnZpY2UuYnVpbGRVcGRhdGVkRXZlbnQodGhpcy5ldmVudCwgdGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpO1xuICAgICAgaWYgKCh1cGRhdGVkRXZlbnQucmVjdXJyaW5nICYmIHRoaXMuZXZlbnQucmVjdXJyaW5nKSB8fCB0aGlzLmV2ZW50Py5yZWN1cnJpbmdFdmVudElkKSB7XG4gICAgICAgIHVwZGF0ZWRFdmVudC5yZWN1cnJpbmdTdGFydERhdGUgPSB0aGlzLmV2ZW50LnJlY3VycmluZ1N0YXJ0RGF0ZTtcbiAgICAgICAgdXBkYXRlZEV2ZW50LnJlY3VycmluZ0VuZERhdGUgPSB0aGlzLmV2ZW50LnJlY3VycmluZ0VuZERhdGU7XG4gICAgICAgIHRoaXMudXBkYXRlZEV2ZW50ID0gdXBkYXRlZEV2ZW50O1xuICAgICAgICB0aGlzLnJlY3VycmluZ1R5cGVDaGFuZ2VkID1cbiAgICAgICAgICB0aGlzLnVwZGF0ZWRFdmVudC5yZWN1cnJpbmdQYXR0ZXJuPy50eXBlICE9PSB0aGlzLmV2ZW50LnJlY3VycmluZ1BhdHRlcm4/LnR5cGUgfHwgKHRoaXMudXBkYXRlZEV2ZW50LnJlY3VycmluZ1BhdHRlcm4gJiYgIXRoaXMuZXZlbnQucmVjdXJyaW5nUGF0dGVybik7XG4gICAgICAgIHRoaXMub3BlblJlY3VycmluZ09wdGlvbnMgPSB0cnVlO1xuICAgICAgICB0aGlzLm1vZGFsVGl0bGUgPSB0aGlzLmZhbGxiYWNrVHJhbnNsYXRlUGlwZS50cmFuc2Zvcm0oJ0NBTEVOREFSLkVESVRfUkVDVVJSSU5HX0VWRU5UJywgJ0VkaXQgcmVjdXJyaW5nIGV2ZW50Jyk7XG4gICAgICAgIHRoaXMuc2Vjb25kYXJ5QnV0dG9uVGl0bGUgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdWJtaXRGb3JtRXZlbnQodXBkYXRlZEV2ZW50LCB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uTG9jYXRpb25DaGFuZ2UoZXZlbnQ6IExvY2F0aW9uTW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0uY29udHJvbHMubG9jYXRpb24uc2V0VmFsdWUoeyBjb29yZGluYXRlczogZXZlbnQuY29vcmRpbmF0ZXMsIGFkZHJlc3M6IGV2ZW50LmFkZHJlc3MgfSk7XG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzLmFkZHJlc3Muc2V0VmFsdWUoZXZlbnQuYWRkcmVzcyk7XG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzLmFkZHJlc3Muc2V0RXJyb3JzKGV2ZW50LmFkZHJlc3MgJiYgZXZlbnQuY29vcmRpbmF0ZXMgPyBudWxsIDogeyBpbnZhbGlkRmllbGQ6IHRydWUgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlY3VycmluZ1R5cGVDaGFuZ2VkID0gZmFsc2U7XG4gICAgdGhpcy5lZGl0T3B0aW9uc0N0cmwuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5vcGVuUmVjdXJyaW5nT3B0aW9ucyA9IGZhbHNlO1xuICAgIHRoaXMub3Blbk1vZGFsID0gZmFsc2U7XG4gICAgdGhpcy5jbG9zZUZvcm0uZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRXZlbnRGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWxUaXRsZSA9IHRoaXMuZWRpdE1vZGUgPyB0aGlzLmV2ZW50LnRpdGxlIDogdGhpcy5mYWxsYmFja1RyYW5zbGF0ZVBpcGUudHJhbnNmb3JtKCdDQUxFTkRBUi5ORVdfRVZFTlQnLCAnTmV3IGV2ZW50Jyk7XG4gICAgdGhpcy5zZWNvbmRhcnlCdXR0b25UaXRsZSA9IHRoaXMuZWRpdE1vZGUgPyB0aGlzLmZhbGxiYWNrVHJhbnNsYXRlUGlwZS50cmFuc2Zvcm0oJ0JVVFRPTlMuREVMRVRFJywgJ0RlbGV0ZScpIDogbnVsbDtcbiAgICB0aGlzLmNhbmNlbEJ1dHRvblRpdGxlID0gdGhpcy5lZGl0TW9kZSA/IG51bGwgOiB0aGlzLmZhbGxiYWNrVHJhbnNsYXRlUGlwZS50cmFuc2Zvcm0oJ0JVVFRPTlMuQ0FOQ0VMJywgJ0NhbmNlbCcpO1xuICAgIHRoaXMuc3VibWl0QnV0dG9uVGl0bGUgPSB0aGlzLmVkaXRNb2RlID8gdGhpcy5mYWxsYmFja1RyYW5zbGF0ZVBpcGUudHJhbnNmb3JtKCdCVVRUT05TLkVESVQnLCAnRWRpdCcpIDogdGhpcy5mYWxsYmFja1RyYW5zbGF0ZVBpcGUudHJhbnNmb3JtKCdCVVRUT05TLlNBVkUnLCAnU2F2ZScpO1xuICAgIGlmICghdGhpcy5lZGl0TW9kZSkge1xuICAgICAgdGhpcy5idWlsZEZvcm0oKTtcbiAgICB9XG4gICAgdGhpcy5vcGVuTW9kYWwgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5yZWN1cnJpbmdPcHRpb25zID0gcmVjdXJyaW5nT3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHsgLi4ub3B0aW9uLCB0aXRsZTogdGhpcy5mYWxsYmFja1RyYW5zbGF0ZVBpcGUudHJhbnNmb3JtKG9wdGlvbi50aXRsZSwgb3B0aW9uLm5hbWUpIH07XG4gICAgfSk7XG4gICAgdGhpcy5yZWN1cnJpbmdFeGNlcHRpb24gPVxuICAgICAgdGhpcy5jYWxlbmRhclV0aWxTZXJ2aWNlLmdldEV4Y2VwdGlvbkV2ZW50KHRoaXMuZXZlbnQsIHRoaXMuZXZlbnQucmVjdXJyaW5nUGF0dGVybj8uZXhjZXB0aW9ucykgfHwgdGhpcy5jYWxlbmRhclV0aWxTZXJ2aWNlLmdldFVwZGF0ZWRSZWN1cnJpbmdFeGNlcHRpb24odGhpcy5ldmVudCk7XG4gICAgY29uc3Qgc3RhcnREYXRlID0gbmV3IERhdGUodGhpcy5yZWN1cnJpbmdFeGNlcHRpb24/LnN0YXJ0RGF0ZSB8fCB0aGlzLmV2ZW50LnJlY3VycmluZ1N0YXJ0RGF0ZSB8fCB0aGlzLmV2ZW50LnN0YXJ0RGF0ZSk7XG4gICAgdGhpcy5ldmVudFN0YXJ0ID0gc3RhcnRPZkRheShzdGFydERhdGUpO1xuICAgIHRoaXMuY2FsZW5kYXJVdGlsU2VydmljZS5zZXRFdmVudFRpbWUodGhpcy5ldmVudCk7XG4gICAgY29uc3QgZXZlbnRUaW1lcyA9IHRoaXMuY2FsZW5kYXJVdGlsU2VydmljZS5nZXRFdmVudFRpbWVzKHRoaXMuZXZlbnQsIHRoaXMucmVjdXJyaW5nRXhjZXB0aW9uLCB0cnVlKTtcbiAgICBjb25zdCBldmVudE5vdGUgPSB0aGlzLnJlY3VycmluZ0V4Y2VwdGlvbj8ubm90ZSB8fCB0aGlzLmV2ZW50Lm5vdGUgPyB0aGlzLmNhbGVuZGFyVXRpbFNlcnZpY2UucmVtb3ZlSHRtbFRhZ3ModGhpcy5yZWN1cnJpbmdFeGNlcHRpb24/Lm5vdGUgfHwgdGhpcy5ldmVudC5ub3RlKSA6ICcnO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIubm9uTnVsbGFibGUuZ3JvdXAoXG4gICAgICB7XG4gICAgICAgIF9pZDogW3RoaXMuZXZlbnQuX2lkLCBbXV0sXG4gICAgICAgIGFjY291bnRJZDogW3RoaXMuZXZlbnQuYWNjb3VudElkLCBbXV0sXG4gICAgICAgIHR5cGU6IFt0aGlzLmV2ZW50LnR5cGUgfHwgRXZlbnRUeXBlcy5VU0VSLCBbXV0sXG4gICAgICAgIGVtYWlsOiBbdGhpcy5ldmVudC5lbWFpbCwgW11dLFxuICAgICAgICB0aXRsZTogW3RoaXMucmVjdXJyaW5nRXhjZXB0aW9uPy50aXRsZSB8fCB0aGlzLmV2ZW50LnRpdGxlLCB0aGlzLmNhbGVuZGFyVXRpbFNlcnZpY2UuaXNQcm92aWRlckV2ZW50KHRoaXMuZXZlbnQpID8gW10gOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICBhbGxEYXk6IG5ldyBGb3JtQ29udHJvbDxib29sZWFuPih0aGlzLnJlY3VycmluZ0V4Y2VwdGlvbj8uYWxsRGF5IHx8IHRoaXMuZXZlbnQuYWxsRGF5IHx8IGZhbHNlLCBbXSksXG4gICAgICAgIHN0YXJ0RGF0ZTogbmV3IEZvcm1Db250cm9sPERhdGU+KHN0YXJ0RGF0ZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgICAgc3RhcnRUaW1lOiBuZXcgRm9ybUNvbnRyb2w8RGF0ZT4oZXZlbnRUaW1lcy5zdGFydFRpbWUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICAgIGVuZERhdGU6IG5ldyBGb3JtQ29udHJvbDxEYXRlPihuZXcgRGF0ZSghdGhpcy5ldmVudC5faWQgPyBzdGFydERhdGUgOiB0aGlzLmV2ZW50LnJlY3VycmluZ0VuZERhdGUgfHwgdGhpcy5ldmVudC5lbmREYXRlKSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgICAgZW5kVGltZTogbmV3IEZvcm1Db250cm9sPERhdGU+KGV2ZW50VGltZXMuZW5kVGltZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgICAgbm90ZTogW2V2ZW50Tm90ZSwgW11dLFxuICAgICAgICBsb2NhdGlvbjogW3RoaXMucmVjdXJyaW5nRXhjZXB0aW9uPy5sb2NhdGlvbiB8fCB0aGlzLmV2ZW50LmxvY2F0aW9uLCBbXV0sXG4gICAgICAgIGFkZHJlc3M6IFt0aGlzLnJlY3VycmluZ0V4Y2VwdGlvbj8ubG9jYXRpb24/LmFkZHJlc3MgfHwgdGhpcy5ldmVudC5sb2NhdGlvbj8uYWRkcmVzcywgdGhpcy5ldmVudD8udHlwZSA/IFtdIDogW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgcmVjdXJyaW5nUGF0dGVybjogdGhpcy5mYi5ub25OdWxsYWJsZS5ncm91cCh7XG4gICAgICAgICAgdHlwZTogWyF0aGlzLmV2ZW50Ll9pZCA/IHJlY3VycmluZ09wdGlvbnNbMF0udHlwZSA6IHRoaXMuZXZlbnQucmVjdXJyaW5nUGF0dGVybj8udHlwZSwgW11dLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbGlkYXRvcnM6IFtEYXRlUmFuZ2VWYWxpZGF0b3IoJ3N0YXJ0RGF0ZScsICdlbmREYXRlJyksIFRpbWVSYW5nZVZhbGlkYXRvcignc3RhcnRUaW1lJywgJ2VuZFRpbWUnKV0sXG4gICAgICB9LFxuICAgICk7XG4gICAgdGhpcy5ldmVudFRpbWUgPSBkaWZmZXJlbmNlSW5NaW51dGVzKGV2ZW50VGltZXMuZW5kVGltZSwgZXZlbnRUaW1lcy5zdGFydFRpbWUpO1xuICAgIHRoaXMuaGFuZGxlQWxsRGF5RXZlbnRzKHRoaXMuZXZlbnQuYWxsRGF5KTtcbiAgICB0aGlzLndhdGNoRm9ybUZpZWxkcygpO1xuICAgIHRoaXMuaW5pdGlhbEZvcm1WYWx1ZSA9IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB3YXRjaEZvcm1GaWVsZHMoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzLmFsbERheS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5oYW5kbGVBbGxEYXlFdmVudHModmFsdWUsIHRydWUpKTtcbiAgICB0aGlzLmZvcm0uY29udHJvbHMuYWRkcmVzcy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKHZhbHVlICYmICF0aGlzLmZvcm0udmFsdWUubG9jYXRpb24pIHtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmFkZHJlc3Muc2V0RXJyb3JzKHsgaW52YWxpZEZpZWxkOiB0cnVlIH0pO1xuICAgICAgfVxuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMubG9jYXRpb24uc2V0VmFsdWUobnVsbCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyAtLS0tLS0tIHdhdGNoIHN0YXJ0IGRhdGUgcmVjdXJyaW5nIC0tLS0tLS0tLS0tLS1cbiAgICB0aGlzLmZvcm0uY29udHJvbHMuc3RhcnREYXRlLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgIXRoaXMuZm9ybS5jb250cm9scy5hbGxEYXkudmFsdWUpIHtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmVuZERhdGUuc2V0VmFsdWUobmV3IERhdGUodmFsdWUpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmZvcm0uY29udHJvbHMuc3RhcnRUaW1lLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmVuZFRpbWUuc2V0VmFsdWUoYWRkTWludXRlcyh2YWx1ZVsnc2xvdFZhbHVlJ10gfHwgbmV3IERhdGUodmFsdWUpLCB0aGlzLmV2ZW50VGltZSkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVBbGxEYXlFdmVudHMoYWxsRGF5OiBib29sZWFuLCBvbkNoYW5nZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBbJ2VuZERhdGUnLCAnZW5kVGltZScsICdzdGFydFRpbWUnXS5mb3JFYWNoKChjb250cm9sTmFtZSkgPT4ge1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2NvbnRyb2xOYW1lXS5zZXRWYWxpZGF0b3JzKGFsbERheSA/IFtdIDogW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tjb250cm9sTmFtZV0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH0pO1xuICAgIGlmIChvbkNoYW5nZSkge1xuICAgICAgaWYgKGFsbERheSkge1xuICAgICAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLmZvcm0uY29udHJvbHMuc3RhcnREYXRlLnZhbHVlO1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuZW5kRGF0ZS5zZXRWYWx1ZShzdGFydERhdGUgPyBzdGFydE9mRGF5KG5ldyBEYXRlKHN0YXJ0RGF0ZSkpIDogbnVsbCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzdGFydFRpbWUgPSB0aGlzLmZvcm0uY29udHJvbHMuc3RhcnRUaW1lLnZhbHVlO1xuICAgICAgICBjb25zdCB0aW1lID0gc3RhcnRUaW1lICYmIHN0YXJ0VGltZVsnc2xvdFZhbHVlJ10gPyBzdGFydE9mRGF5KG5ldyBEYXRlKHN0YXJ0VGltZVsnc2xvdFZhbHVlJ10pKSA6IG51bGw7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5zdGFydFRpbWUuc2V0VmFsdWUodGltZSk7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5lbmRUaW1lLnNldFZhbHVlKHRpbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRXZlbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZWRpdE9wdGlvbnNDdHJsLnZhbHVlIHx8IHRoaXMuZm9ybSkge1xuICAgICAgdGhpcy5zYXZlRXZlbnQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5idWlsZEZvcm0oKTtcbiAgICAgIHRoaXMubW9kYWxUaXRsZSA9IHRoaXMuZmFsbGJhY2tUcmFuc2xhdGVQaXBlLnRyYW5zZm9ybSgnQ0FMRU5EQVIuVVBEQVRFX0VWRU5UJywgJ1VwZGF0ZSBFdmVudCcpO1xuICAgICAgdGhpcy5zdWJtaXRCdXR0b25UaXRsZSA9IHRoaXMuZmFsbGJhY2tUcmFuc2xhdGVQaXBlLnRyYW5zZm9ybSgnQlVUVE9OUy5TQVZFJywgJ1NhdmUnKTtcbiAgICAgIHRoaXMuY2FuY2VsQnV0dG9uVGl0bGUgPSB0aGlzLmZhbGxiYWNrVHJhbnNsYXRlUGlwZS50cmFuc2Zvcm0oJ0JVVFRPTlMuQ0FOQ0VMJywgJ0NhbmNlbCcpO1xuICAgICAgdGhpcy5zZWNvbmRhcnlCdXR0b25UaXRsZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhbGxvd1N1Ym1pc3Npb24oKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XG4gICAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhpcy5mb3JtLnZhbHVlLmFkZHJlc3MgJiYgIXRoaXMuZm9ybS52YWx1ZS5sb2NhdGlvbikge1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzWydhZGRyZXNzJ10uc2V0RXJyb3JzKHsgaW52YWxpZEZpZWxkOiB0cnVlIH0pO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhpcy5vcGVuUmVjdXJyaW5nT3B0aW9ucykge1xuICAgICAgdGhpcy51cGRhdGVSZWN1cnJpbmdFdmVudC5lbWl0KHtcbiAgICAgICAgZXZlbnQ6IHRoaXMudXBkYXRlZEV2ZW50LFxuICAgICAgICBzZWxlY3RlZFJlY3VycmluZ09wdGlvbjogdGhpcy5lZGl0T3B0aW9uc0N0cmwudmFsdWUsXG4gICAgICAgIHJlY3VycmluZ1R5cGVDaGFuZ2VkOiB0aGlzLnJlY3VycmluZ1R5cGVDaGFuZ2VkLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJtaXRGb3JtRXZlbnQoZXZlbnQ6IElFdmVudCwgZm9ybVZhbHVlOiBJRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnN1Ym1pdEZvcm0uZW1pdCh7XG4gICAgICBldmVudCxcbiAgICAgIGluaXRpYWxGb3JtVmFsdWU6IHRoaXMuaW5pdGlhbEZvcm1WYWx1ZSxcbiAgICAgIGZvcm1WYWx1ZSxcbiAgICAgIHNlbGVjdGVkUmVjdXJyaW5nT3B0aW9uOiB0aGlzLmVkaXRPcHRpb25zQ3RybC52YWx1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb25FdmVudENoYW5nZShldmVudDogSUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5lZGl0TW9kZSA9ICEhZXZlbnQ/Ll9pZDtcbiAgICB0aGlzLl9ldmVudCA9IGV2ZW50O1xuICAgIHRoaXMuZWRpdE9wdGlvbnNDdHJsLnNldFZhbHVlKG51bGwpO1xuICAgIGlmICghZXZlbnQpIHtcbiAgICAgIHRoaXMub3Blbk1vZGFsID0gZmFsc2U7XG4gICAgICB0aGlzLmZvcm0gPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVFdmVudEZvcm0oKTtcbiAgICB9XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcztcbiAgfVxuXG4gIHByaXZhdGUgb25EcmFnRXZlbnQoZXZlbnQ6IElFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuZWRpdE1vZGUgPSAhIWV2ZW50Py5faWQ7XG4gICAgdGhpcy5vcGVuTW9kYWwgPSAhdGhpcy5fZHJhZ2dlZEV2ZW50ICYmIGV2ZW50Py5yZWN1cnJpbmc7XG4gICAgdGhpcy5vcGVuUmVjdXJyaW5nT3B0aW9ucyA9IHRoaXMub3Blbk1vZGFsO1xuICAgIHRoaXMubW9kYWxUaXRsZSA9IHRoaXMub3Blbk1vZGFsID8gdGhpcy5mYWxsYmFja1RyYW5zbGF0ZVBpcGUudHJhbnNmb3JtKCdDQUxFTkRBUi5FRElUX1JFQ1VSUklOR19FVkVOVCcsICdFZGl0IHJlY3VycmluZyBldmVudCcpIDogbnVsbDtcbiAgICB0aGlzLmNhbmNlbEJ1dHRvblRpdGxlID0gdGhpcy5vcGVuTW9kYWwgPyB0aGlzLmZhbGxiYWNrVHJhbnNsYXRlUGlwZS50cmFuc2Zvcm0oJ0JVVFRPTlMuQ0FOQ0VMJywgJ0NhbmNlbCcpIDogbnVsbDtcbiAgICB0aGlzLnN1Ym1pdEJ1dHRvblRpdGxlID0gdGhpcy5vcGVuTW9kYWwgPyB0aGlzLmZhbGxiYWNrVHJhbnNsYXRlUGlwZS50cmFuc2Zvcm0oJ0JVVFRPTlMuRURJVCcsICdFZGl0JykgOiBudWxsO1xuICAgIHRoaXMuc2Vjb25kYXJ5QnV0dG9uVGl0bGUgPSBudWxsO1xuICAgIHRoaXMuX2RyYWdnZWRFdmVudCA9IGV2ZW50O1xuICAgIGlmICh0aGlzLl9kcmFnZ2VkRXZlbnQgJiYgIXRoaXMub3Blbk1vZGFsKSB7XG4gICAgICB0aGlzLnN1Ym1pdEZvcm1FdmVudCh0aGlzLl9kcmFnZ2VkRXZlbnQsIHRoaXMuZHJhZ2dlZEV2ZW50KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxsaWItYm90dG9tLW1vZGFsXG4gIFt0aXRsZV09XCJtb2RhbFRpdGxlXCJcbiAgWyhpc09wZW4pXT1cIm9wZW5Nb2RhbFwiXG4gIFsoc2hvd0NvbmZpcm0pXT1cInNob3dDb25maXJtXCJcbiAgW2NvbmZpcm1CdXR0b25dPVwiJ0NPTkZJUk0uWUVTJyB8IGZhbGxiYWNrVHJhbnNsYXRlOiAnWWVzJ1wiXG4gIFtjb25maXJtQ2FuY2VsQnV0dG9uXT1cIidDT05GSVJNLk5vJyB8IGZhbGxiYWNrVHJhbnNsYXRlOiAnTm8nXCJcbiAgW2NvbmZpcm1hdGlvblRpdGxlXT1cIidDT05GSVJNLkFSRV9ZT1VfU1VSRScgfCBmYWxsYmFja1RyYW5zbGF0ZTogJ0NvbmZpcm0gRGVsZXRpb24nXCJcbiAgW2NvbmZpcm1hdGlvbk1zZ109XCInQ09ORklSTS5BUkVfWU9VX1NVUkVfTUVTU0FHRScgfCBmYWxsYmFja1RyYW5zbGF0ZTogJ1N1cmUgeW91IHdhbnQgdG8gZGVsZXRlPydcIlxuICBbc2hvd0Nsb3NlQnRuXT1cIiFjYW5jZWxCdXR0b25UaXRsZSAmJiBlZGl0TW9kZVwiXG4gIFtjdXN0b21DbGFzc109XCInY2FsZW5kYXItZXZlbnQtbW9kYWwnXCJcbiAgW2xvYWRpbmddPVwibG9hZGluZyQgfCBhc3luY1wiXG4gIFt2YWxpZE1vZGFsXT1cIighZm9ybSB8fCBmb3JtLnZhbGlkKSAmJiAobG9hZGluZyQgfCBhc3luYykgIT09IHRydWVcIlxuICBbc3VibWl0QnV0dG9uVGl0bGVdPVwic3VibWl0QnV0dG9uVGl0bGVcIlxuICBbc2Vjb25kYXJ5QnV0dG9uVGl0bGVdPVwic2Vjb25kYXJ5QnV0dG9uVGl0bGVcIlxuICBbY2FuY2VsQnV0dG9uVGl0bGVdPVwiY2FuY2VsQnV0dG9uVGl0bGVcIlxuICAoc2Vjb25kYXJ5QnV0dG9uQ2xpY2spPVwib25Nb2RhbFNlY29uZGFyeUJ1dHRvbkNsaWNrKClcIlxuICAoY2xvc2VNb2RhbCk9XCJyZXNldE1vZGFsKClcIlxuICAoc3VibWl0TW9kYWwpPVwib25TdWJtaXRNb2RhbCgpXCJcbiAgKGNvbmZpcm1FdmVudCk9XCJvbkRlbGV0ZUNvbmZpcm0oKVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJldmVudC1tb2RhbFwiPlxuICAgIDxsaWItZXZlbnQtaW5mbyBbZXZlbnRdPVwiZXZlbnRcIiBbY2FsZW5kYXJzXT1cImNhbGVuZGFyc1wiICpuZ0lmPVwiIWZvcm0gJiYgZWRpdE1vZGUgJiYgIW9wZW5SZWN1cnJpbmdPcHRpb25zXCI+PC9saWItZXZlbnQtaW5mbz5cbiAgICA8bGliLWVkaXQtcmVjdXJyaW5nLWV2ZW50IFtlZGl0T3B0aW9uc0N0cmxdPVwiZWRpdE9wdGlvbnNDdHJsXCIgW2V4Y2x1ZGVDdXJyZW50SW5zdGFuY2VdPVwicmVjdXJyaW5nVHlwZUNoYW5nZWRcIiAqbmdJZj1cIm9wZW5SZWN1cnJpbmdPcHRpb25zXCI+PC9saWItZWRpdC1yZWN1cnJpbmctZXZlbnQ+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiICpuZ0lmPVwiZm9ybSAmJiAhb3BlblJlY3VycmluZ09wdGlvbnNcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBhcHBGb2N1c0ludmFsaWRJbnB1dCAobmdTdWJtaXQpPVwic2F2ZUV2ZW50KClcIiAoa2V5dXAuZW50ZXIpPVwic2F2ZUV2ZW50KClcIiBpZD1cImV2ZW50LWZvcm1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWJvZHlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93IGNlbnRlci1jb250ZW50XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LXRpdGxlLWZpZWxkXCI+XG4gICAgICAgICAgICA8bGliLWlucHV0LWZpZWxkXG4gICAgICAgICAgICAgIG1heExlbmd0aD1cIjIwMDBcIlxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImxvYWRpbmckIHwgYXN5bmNcIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NBTEVOREFSLlRJVExFX0ZJRUxEJyB8IGZhbGxiYWNrVHJhbnNsYXRlOiAnVGl0bGUnXCJcbiAgICAgICAgICAgICAgW3RyaW1XaGl0ZVNwYWNlXT1cImZhbHNlXCJcbiAgICAgICAgICAgID48L2xpYi1pbnB1dC1maWVsZD5cbiAgICAgICAgICAgIDxsaWItZXJyb3ItbWVzc2FnZSBjbGFzcz1cImlucHV0LWVycm9yIGV2ZW50LWlucHV0LWZpZWxkLWVycm9yXCIgW2NvbmZpZ109XCJ7IGNvbnRyb2w6IGZvcm0uY29udHJvbHNbJ3RpdGxlJ10gfVwiPjwvbGliLWVycm9yLW1lc3NhZ2U+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3cgZXZlbnQtZGF0ZXNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZmllbGQtY29udGFpbmVyIGlucHV0LWZpZWxkLWNvbnRhaW5lci1ncm91cFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LWRhdGUtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieyAnaW5wdXQtZmllbGQtY29udGFpbmVyLWZ1bGwtcm93JzogIWZvcm0uY29udHJvbHNbJ2FsbERheSddLnZhbHVlIH1cIj5cbiAgICAgICAgICAgICAgPGxpYi1pbnB1dC1kYXRlLWZpZWxkXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJldmVudC1kYXRlXCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdGFydERhdGVcIlxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJsb2FkaW5nJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICBbaGllQWN0aW9uc109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbc2hvd0ljb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidDQUxFTkRBUi5TVEFSVF9EQVRFJyB8IGZhbGxiYWNrVHJhbnNsYXRlOiAnU3RhcnQgRGF0ZSdcIlxuICAgICAgICAgICAgICA+PC9saWItaW5wdXQtZGF0ZS1maWVsZD5cbiAgICAgICAgICAgICAgPGxpYi1lcnJvci1tZXNzYWdlIGNsYXNzPVwiaW5wdXQtZXJyb3IgZXZlbnQtaW5wdXQtZmllbGQtZXJyb3JcIiBbY29uZmlnXT1cInsgY29udHJvbDogZm9ybS5jb250cm9sc1snc3RhcnREYXRlJ10gfVwiPjwvbGliLWVycm9yLW1lc3NhZ2U+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAoZm9ybS5jb250cm9sc1snYWxsRGF5J10udmFsdWUpIHtcbiAgICAgICAgICAgICAgPGxpYi1pbnB1dC1kYXRlLWZpZWxkXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJldmVudC1kYXRlIGV2ZW50LWVuZC1kYXRlXCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbmREYXRlXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW2hpZUFjdGlvbnNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3Nob3dJY29uXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQ0FMRU5EQVIuRU5EX0RBVEUnIHwgZmFsbGJhY2tUcmFuc2xhdGU6ICdFbmQgRGF0ZSdcIlxuICAgICAgICAgICAgICA+PC9saWItaW5wdXQtZGF0ZS1maWVsZD5cbiAgICAgICAgICAgICAgPGxpYi1lcnJvci1tZXNzYWdlIGNsYXNzPVwiaW5wdXQtZXJyb3IgZXZlbnQtaW5wdXQtZmllbGQtZXJyb3JcIiBbY29uZmlnXT1cInsgY29udHJvbDogZm9ybS5jb250cm9sc1snZW5kRGF0ZSddIH1cIj48L2xpYi1lcnJvci1tZXNzYWdlPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKCFmb3JtLmNvbnRyb2xzWydhbGxEYXknXS52YWx1ZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWZpZWxkLWNvbnRhaW5lciBpbnB1dC1maWVsZC1jb250YWluZXItZ3JvdXAgdGltZS1maWVsZHMtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtZmllbGRcIj5cbiAgICAgICAgICAgICAgICA8bGliLWlucHV0LXRpbWUtZmllbGRcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInN0YXJ0VGltZVwiXG4gICAgICAgICAgICAgICAgICBbc2hvd0ljb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBbc3RhcnREYXRlXT1cImV2ZW50U3RhcnRcIlxuICAgICAgICAgICAgICAgICAgW2ludGVydmFsXT1cIjE1XCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQ0FMRU5EQVIuU1RBUlRTJyB8IGZhbGxiYWNrVHJhbnNsYXRlOiAnU3RhcnRzJ1wiXG4gICAgICAgICAgICAgICAgPjwvbGliLWlucHV0LXRpbWUtZmllbGQ+XG4gICAgICAgICAgICAgICAgPGxpYi1lcnJvci1tZXNzYWdlIGNsYXNzPVwiaW5wdXQtZXJyb3IgZXZlbnQtaW5wdXQtZmllbGQtZXJyb3JcIiBbY29uZmlnXT1cInsgY29udHJvbDogZm9ybS5jb250cm9sc1snc3RhcnRUaW1lJ10gfVwiPjwvbGliLWVycm9yLW1lc3NhZ2U+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1maWVsZFwiPlxuICAgICAgICAgICAgICAgIDxsaWItaW5wdXQtdGltZS1maWVsZFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbmQtdGltZVwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbmRUaW1lXCJcbiAgICAgICAgICAgICAgICAgIFtpbnRlcnZhbF09XCIxNVwiXG4gICAgICAgICAgICAgICAgICBbc2hvd0ljb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBbZGlzcGxheVNsb3RUaW1lXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgW2Zyb21UaW1lXT1cIlxuICAgICAgICAgICAgICAgICAgICBmb3JtLmNvbnRyb2xzLnN0YXJ0VGltZS52YWx1ZSAmJiBmb3JtLmNvbnRyb2xzLnN0YXJ0VGltZS52YWx1ZVsnc2xvdFZhbHVlJ10gPyBmb3JtLmNvbnRyb2xzLnN0YXJ0VGltZS52YWx1ZVsnc2xvdFZhbHVlJ10gOiBmb3JtLmNvbnRyb2xzLnN0YXJ0VGltZS52YWx1ZVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIFtzdGFydERhdGVdPVwiZXZlbnRTdGFydFwiXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NBTEVOREFSLkVORFMnIHwgZmFsbGJhY2tUcmFuc2xhdGU6ICdFbmRzJ1wiXG4gICAgICAgICAgICAgICAgPjwvbGliLWlucHV0LXRpbWUtZmllbGQ+XG4gICAgICAgICAgICAgICAgPGxpYi1lcnJvci1tZXNzYWdlIGNsYXNzPVwiaW5wdXQtZXJyb3IgZXZlbnQtaW5wdXQtZmllbGQtZXJyb3JcIiBbY29uZmlnXT1cInsgY29udHJvbDogZm9ybS5jb250cm9sc1snZW5kVGltZSddIH1cIj48L2xpYi1lcnJvci1tZXNzYWdlPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93IHJlY3VycmluZ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWN1cnJpbmctc2VsZWN0XCIgZm9ybUdyb3VwTmFtZT1cInJlY3VycmluZ1BhdHRlcm5cIj5cbiAgICAgICAgICAgIDxsaWItaW5wdXQtZmllbGQtc2VsZWN0XG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInR5cGVcIlxuICAgICAgICAgICAgICBbb3B0aW9uTGFiZWxdPVwiKHJlY3VycmluZ09wdGlvbnNbMF0udGl0bGUgfCBmYWxsYmFja1RyYW5zbGF0ZTogJ25vVHJuc2xhdGlvbnMnKSA9PT0gJ25vVHJuc2xhdGlvbnMnID8gJ25hbWUnIDogJ3RpdGxlJ1wiXG4gICAgICAgICAgICAgIFtvcHRpb25WYWx1ZV09XCIndHlwZSdcIlxuICAgICAgICAgICAgICBbb3B0aW9uc109XCJyZWN1cnJpbmdPcHRpb25zXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmckIHwgYXN5bmNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9saWItaW5wdXQtZmllbGQtc2VsZWN0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbGxEYXktY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8aW9uLWl0ZW0gY2xhc3M9XCJuby1zaGFkb3cgYWxsRGF5XCI+XG4gICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICA8bGliLWRhc2hlZC1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJhbGxEYXlcIiBbZGlzYWJsZWRdPVwibG9hZGluZyQgfCBhc3luY1wiPjwvbGliLWRhc2hlZC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyAnQ0FMRU5EQVIuQUxMX0RBWScgfCBmYWxsYmFja1RyYW5zbGF0ZTogJ0FsbCBkYXknIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93IGFkZHJlc3NcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZmllbGQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8bGliLWlucHV0LWZpZWxkXG4gICAgICAgICAgICAgIG1heExlbmd0aD1cIjIwMDBcIlxuICAgICAgICAgICAgICBbdHJpbVdoaXRlU3BhY2VdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZGRyZXNzXCJcbiAgICAgICAgICAgICAgW2VuYWJsZUdvb2dsZUFkZHJlc3NdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFthZGRyZXNzXT1cImZvcm0uY29udHJvbHNbJ2FkZHJlc3MnXS52YWx1ZVwiXG4gICAgICAgICAgICAgIChsb2NhdGlvbkNoYW5nZSk9XCJvbkxvY2F0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICBbcmVhZG9ubHldPVwibG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgIFtsYWJlbF09XCInRklFTERTLkFERF9MT0NBVElPTicgfCBmYWxsYmFja1RyYW5zbGF0ZTogJ0xvY2F0aW9uJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2xpYi1pbnB1dC1maWVsZD5cbiAgICAgICAgICAgIDxsaWItZXJyb3ItbWVzc2FnZSBjbGFzcz1cImlucHV0LWVycm9yXCIgW2NvbmZpZ109XCJ7IGNvbnRyb2w6IGZvcm0uY29udHJvbHNbJ2FkZHJlc3MnXSB9XCI+PC9saWItZXJyb3ItbWVzc2FnZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LW5vdGUtZmllbGRcIj5cbiAgICAgICAgICAgIDxsaWItaW5wdXQtZmllbGRcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibm90ZVwiXG4gICAgICAgICAgICAgIFt0ZXh0YXJlYV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIidGSUVMRFMuQUREX0RFU0NSSVBUSU9OJyB8IGZhbGxiYWNrVHJhbnNsYXRlOiAnRGVzY3JpcHRpb24nXCJcbiAgICAgICAgICAgICAgbWF4TGVuZ3RoPVwiMjAwMFwiXG4gICAgICAgICAgICAgIFtyZWFkb25seV09XCJsb2FkaW5nJCB8IGFzeW5jXCJcbiAgICAgICAgICAgID48L2xpYi1pbnB1dC1maWVsZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIDwvZGl2PlxuPC9saWItYm90dG9tLW1vZGFsPlxuIl19
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { IonicModule } from '@ionic/angular';
|
|
4
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
5
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
6
|
-
import { BaseComponent, DashedCheckboxModule, DirectiveModule, FormFieldModule, InputDateFieldModule, InputFieldModule, InputFieldSelectModule, InputTimeFieldModule, LibErrorMessageComponent, LibMapModule, LibModalModule, } from '@naniteninja/ionic-lib';
|
|
7
|
-
import { FallbackTranslatePipe } from '../../../../pipes/fallback-translate/fallback-translate.pipe';
|
|
8
|
-
import { CalendarUtilsService } from '../../services/calendar-utils.service';
|
|
9
|
-
import { LibEditRecurringEventComponent } from '../edit-recurring-event/edit-recurring-event.component';
|
|
10
|
-
import { LibEventInfoComponent } from '../event-info/event-info.component';
|
|
11
|
-
import { LibEventFormComponent } from './event-form.component';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
export class LibEventFormModule {
|
|
14
|
-
static forRoot(config) {
|
|
15
|
-
const libMapModule = LibMapModule.forRoot({
|
|
16
|
-
googleMapsKey: config.googleMapsKey,
|
|
17
|
-
googleMapsURL: config.googleMapsURL,
|
|
18
|
-
});
|
|
19
|
-
return {
|
|
20
|
-
ngModule: LibEventFormModule,
|
|
21
|
-
providers: [...(libMapModule.providers || [])],
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibEventFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
25
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: LibEventFormModule, declarations: [LibEventFormComponent], imports: [CommonModule,
|
|
26
|
-
IonicModule,
|
|
27
|
-
TranslateModule,
|
|
28
|
-
FormsModule,
|
|
29
|
-
ReactiveFormsModule,
|
|
30
|
-
DashedCheckboxModule,
|
|
31
|
-
DirectiveModule,
|
|
32
|
-
FormFieldModule,
|
|
33
|
-
InputDateFieldModule,
|
|
34
|
-
InputFieldModule,
|
|
35
|
-
InputFieldSelectModule,
|
|
36
|
-
InputTimeFieldModule,
|
|
37
|
-
LibModalModule,
|
|
38
|
-
LibErrorMessageComponent,
|
|
39
|
-
FallbackTranslatePipe,
|
|
40
|
-
LibEventInfoComponent,
|
|
41
|
-
LibEditRecurringEventComponent,
|
|
42
|
-
BaseComponent], exports: [LibEventFormComponent] }); }
|
|
43
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibEventFormModule, providers: [CalendarUtilsService], imports: [CommonModule,
|
|
44
|
-
IonicModule,
|
|
45
|
-
TranslateModule,
|
|
46
|
-
FormsModule,
|
|
47
|
-
ReactiveFormsModule,
|
|
48
|
-
DashedCheckboxModule,
|
|
49
|
-
DirectiveModule,
|
|
50
|
-
FormFieldModule,
|
|
51
|
-
InputDateFieldModule,
|
|
52
|
-
InputFieldModule,
|
|
53
|
-
InputFieldSelectModule,
|
|
54
|
-
InputTimeFieldModule,
|
|
55
|
-
LibModalModule,
|
|
56
|
-
LibErrorMessageComponent,
|
|
57
|
-
LibEventInfoComponent,
|
|
58
|
-
LibEditRecurringEventComponent,
|
|
59
|
-
BaseComponent] }); }
|
|
60
|
-
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibEventFormModule, decorators: [{
|
|
62
|
-
type: NgModule,
|
|
63
|
-
args: [{
|
|
64
|
-
declarations: [LibEventFormComponent],
|
|
65
|
-
exports: [LibEventFormComponent],
|
|
66
|
-
imports: [
|
|
67
|
-
CommonModule,
|
|
68
|
-
IonicModule,
|
|
69
|
-
TranslateModule,
|
|
70
|
-
FormsModule,
|
|
71
|
-
ReactiveFormsModule,
|
|
72
|
-
DashedCheckboxModule,
|
|
73
|
-
DirectiveModule,
|
|
74
|
-
FormFieldModule,
|
|
75
|
-
InputDateFieldModule,
|
|
76
|
-
InputFieldModule,
|
|
77
|
-
InputFieldSelectModule,
|
|
78
|
-
InputTimeFieldModule,
|
|
79
|
-
LibModalModule,
|
|
80
|
-
LibErrorMessageComponent,
|
|
81
|
-
FallbackTranslatePipe,
|
|
82
|
-
LibEventInfoComponent,
|
|
83
|
-
LibEditRecurringEventComponent,
|
|
84
|
-
BaseComponent,
|
|
85
|
-
],
|
|
86
|
-
providers: [CalendarUtilsService],
|
|
87
|
-
}]
|
|
88
|
-
}] });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtY29tcG9uZW50cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NvbXBvbmVudHMvZXZlbnQtZm9ybS9ldmVudC1mb3JtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUNMLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDcEIsd0JBQXdCLEVBQ3hCLFlBQVksRUFDWixjQUFjLEdBQ2YsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUN4RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUEyQi9ELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUF3RDtRQUNyRSxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDO1lBQ3hDLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYTtZQUNuQyxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7U0FDcEMsQ0FBQyxDQUFDO1FBQ0gsT0FBTztZQUNMLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUM7U0FDL0MsQ0FBQztJQUNKLENBQUM7K0dBVlUsa0JBQWtCO2dIQUFsQixrQkFBa0IsaUJBeEJkLHFCQUFxQixhQUdsQyxZQUFZO1lBQ1osV0FBVztZQUNYLGVBQWU7WUFDZixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQixlQUFlO1lBQ2YsZUFBZTtZQUNmLG9CQUFvQjtZQUNwQixnQkFBZ0I7WUFDaEIsc0JBQXNCO1lBQ3RCLG9CQUFvQjtZQUNwQixjQUFjO1lBQ2Qsd0JBQXdCO1lBQ3hCLHFCQUFxQjtZQUNyQixxQkFBcUI7WUFDckIsOEJBQThCO1lBQzlCLGFBQWEsYUFuQkwscUJBQXFCO2dIQXVCcEIsa0JBQWtCLGFBRmxCLENBQUMsb0JBQW9CLENBQUMsWUFuQi9CLFlBQVk7WUFDWixXQUFXO1lBQ1gsZUFBZTtZQUNmLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLGVBQWU7WUFDZixlQUFlO1lBQ2Ysb0JBQW9CO1lBQ3BCLGdCQUFnQjtZQUNoQixzQkFBc0I7WUFDdEIsb0JBQW9CO1lBQ3BCLGNBQWM7WUFDZCx3QkFBd0I7WUFFeEIscUJBQXFCO1lBQ3JCLDhCQUE4QjtZQUM5QixhQUFhOzs0RkFJSixrQkFBa0I7a0JBekI5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNyQyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDaEMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3dCQUN0QixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2Qsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsOEJBQThCO3dCQUM5QixhQUFhO3FCQUNkO29CQUNELFNBQVMsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEJhc2VDb21wb25lbnQsXG4gIERhc2hlZENoZWNrYm94TW9kdWxlLFxuICBEaXJlY3RpdmVNb2R1bGUsXG4gIEZvcm1GaWVsZE1vZHVsZSxcbiAgSW5wdXREYXRlRmllbGRNb2R1bGUsXG4gIElucHV0RmllbGRNb2R1bGUsXG4gIElucHV0RmllbGRTZWxlY3RNb2R1bGUsXG4gIElucHV0VGltZUZpZWxkTW9kdWxlLFxuICBMaWJFcnJvck1lc3NhZ2VDb21wb25lbnQsXG4gIExpYk1hcE1vZHVsZSxcbiAgTGliTW9kYWxNb2R1bGUsXG59IGZyb20gJ0BuYW5pdGVuaW5qYS9pb25pYy1saWInO1xuaW1wb3J0IHsgRmFsbGJhY2tUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vcGlwZXMvZmFsbGJhY2stdHJhbnNsYXRlL2ZhbGxiYWNrLXRyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IENhbGVuZGFyVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FsZW5kYXItdXRpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBMaWJFZGl0UmVjdXJyaW5nRXZlbnRDb21wb25lbnQgfSBmcm9tICcuLi9lZGl0LXJlY3VycmluZy1ldmVudC9lZGl0LXJlY3VycmluZy1ldmVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGliRXZlbnRJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi4vZXZlbnQtaW5mby9ldmVudC1pbmZvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaWJFdmVudEZvcm1Db21wb25lbnQgfSBmcm9tICcuL2V2ZW50LWZvcm0uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTGliRXZlbnRGb3JtQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0xpYkV2ZW50Rm9ybUNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uaWNNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRGFzaGVkQ2hlY2tib3hNb2R1bGUsXG4gICAgRGlyZWN0aXZlTW9kdWxlLFxuICAgIEZvcm1GaWVsZE1vZHVsZSxcbiAgICBJbnB1dERhdGVGaWVsZE1vZHVsZSxcbiAgICBJbnB1dEZpZWxkTW9kdWxlLFxuICAgIElucHV0RmllbGRTZWxlY3RNb2R1bGUsXG4gICAgSW5wdXRUaW1lRmllbGRNb2R1bGUsXG4gICAgTGliTW9kYWxNb2R1bGUsXG4gICAgTGliRXJyb3JNZXNzYWdlQ29tcG9uZW50LFxuICAgIEZhbGxiYWNrVHJhbnNsYXRlUGlwZSxcbiAgICBMaWJFdmVudEluZm9Db21wb25lbnQsXG4gICAgTGliRWRpdFJlY3VycmluZ0V2ZW50Q29tcG9uZW50LFxuICAgIEJhc2VDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW0NhbGVuZGFyVXRpbHNTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgTGliRXZlbnRGb3JtTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiB7IGdvb2dsZU1hcHNLZXk6IHN0cmluZzsgZ29vZ2xlTWFwc1VSTDogc3RyaW5nIH0pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPExpYkV2ZW50Rm9ybU1vZHVsZT4ge1xuICAgIGNvbnN0IGxpYk1hcE1vZHVsZSA9IExpYk1hcE1vZHVsZS5mb3JSb290KHtcbiAgICAgIGdvb2dsZU1hcHNLZXk6IGNvbmZpZy5nb29nbGVNYXBzS2V5LFxuICAgICAgZ29vZ2xlTWFwc1VSTDogY29uZmlnLmdvb2dsZU1hcHNVUkwsXG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBMaWJFdmVudEZvcm1Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFsuLi4obGliTWFwTW9kdWxlLnByb3ZpZGVycyB8fCBbXSldLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { FallbackTranslatePipe } from '../../../../pipes/fallback-translate/fallback-translate.pipe';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../../../../pipes/fallback-translate/fallback-translate.pipe";
|
|
8
|
-
import * as i2 from "../../services/calendar-utils.service";
|
|
9
|
-
import * as i3 from "@angular/common";
|
|
10
|
-
import * as i4 from "@angular/material/icon";
|
|
11
|
-
import * as i5 from "@ngx-translate/core";
|
|
12
|
-
export class LibEventInfoComponent {
|
|
13
|
-
constructor(fallbackTranslatePipe, calendarUtilService) {
|
|
14
|
-
this.fallbackTranslatePipe = fallbackTranslatePipe;
|
|
15
|
-
this.calendarUtilService = calendarUtilService;
|
|
16
|
-
}
|
|
17
|
-
ngOnInit() {
|
|
18
|
-
this.initEventInfo();
|
|
19
|
-
}
|
|
20
|
-
initEventInfo() {
|
|
21
|
-
this.calendarUtilService.setEventTime(this.event);
|
|
22
|
-
this.recurringException = this.calendarUtilService.getExceptionEvent(this.event, this.event.recurringPattern?.exceptions);
|
|
23
|
-
this.updatedRecurringException = this.calendarUtilService.getUpdatedRecurringException(this.event);
|
|
24
|
-
this.address = this.recurringException?.location?.address || this.updatedRecurringException?.location?.address || this.event.location?.address;
|
|
25
|
-
this.calendarAccount = this.calendars?.find((value) => value._id && this.event.accountId && value._id === this.event.accountId);
|
|
26
|
-
this.title = this.recurringException?.title || this.event.title || this.fallbackTranslatePipe.transform('CALENDAR.NO_TITLE', '(No title)');
|
|
27
|
-
this.note = this.recurringException?.note || this.updatedRecurringException?.note || this.event.note;
|
|
28
|
-
}
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibEventInfoComponent, deps: [{ token: i1.FallbackTranslatePipe }, { token: i2.CalendarUtilsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: LibEventInfoComponent, isStandalone: true, selector: "lib-event-info", inputs: { event: "event", calendars: "calendars" }, ngImport: i0, template: "<div class=\"event-info-body\">\n <div class=\"data-item\" *ngIf=\"event.allDay\">\n <span><mat-icon class=\"all-day\">done_all</mat-icon> {{ 'CALENDAR.ALL_DAY' | translate }}</span>\n </div>\n <div class=\"data-item\">\n <span> <mat-icon>event</mat-icon> {{ 'CALENDAR.STARTS' | translate }}</span>\n <span class=\"event-time\">\n {{ recurringException?.startDate || event.recurringStartDate || event.startDate | date: 'yyyy-MM-dd' }}\n <span *ngIf=\"!event.allDay\"> - {{ event.startTime | date: 'h:mm a' }}</span>\n </span>\n </div>\n <div class=\"data-item\">\n <span><mat-icon>event_available</mat-icon> {{ 'CALENDAR.ENDS' | translate }}</span>\n <span class=\"event-time\">\n {{ recurringException?.endDate || event.recurringEndDate || event.endDate | date: 'yyyy-MM-dd' }}\n <span *ngIf=\"!event.allDay\"> - {{ event.endTime | date: 'h:mm a' }}</span>\n </span>\n </div>\n\n <div class=\"data-item\">\n @if (event.recurringPattern?.type) {\n <span><mat-icon>event_repeat</mat-icon> {{ 'CALENDAR.RECURRING' | translate }}</span>\n <span class=\"recurring-type\">{{ 'CALENDAR.' + event.recurringPattern.type | translate }}</span>\n } @else if (address) {\n <span><mat-icon>location_on</mat-icon> {{ 'LOCATION.TITLE' | translate }}</span>\n <span [innerHTML]=\"address\"></span>\n } @else if (calendarAccount) {\n <span><mat-icon>email</mat-icon> {{ 'CALENDAR.ACCOUNT' | translate }}</span>\n <span [style.color]=\"calendarAccount.theme?.backgroundColor || ''\">{{ calendarAccount.email }}</span>\n } @else if (note) {\n <span><mat-icon>event_note</mat-icon> {{ 'FIELDS.NOTE' | translate }}</span>\n <span class=\"event-note\" [innerHTML]=\"note\"></span>\n }\n </div>\n</div>\n", styles: [".text-style,.event-info-body .data-item{font-family:Gilroy-Regular,serif;font-style:normal;font-weight:500;font-size:16px}.event-info-body{padding:0 15px 20px;max-height:calc(var(--viewport-height) * 60);position:relative;display:block;overflow:auto}.event-info-body .data-item{margin-top:20px;display:flex}.event-info-body .data-item.centred{flex-direction:column;align-items:center;margin-bottom:10px}.event-info-body .data-item span{font-size:14px}.event-info-body .data-item span:first-child{min-width:85px}.event-info-body .data-item span:first-child .mat-icon{position:relative;top:-4px}.event-info-body .data-item span.event-time{display:flex;gap:5px}.event-info-body .data-item span .mat-icon{margin:0 5px 0 0}.event-info-body .data-item span:nth-child(1){display:flex;font-weight:500}.event-info-body .data-item span:nth-child(2){margin-left:20px;opacity:.7}.event-info-body .data-item span.recurring-type{background:var(--cyrano-pink-shade-2);color:#fff;padding:5px 10px;border-radius:30px;height:25px;margin-top:-5px}.event-info-body .data-item .mat-icon.all-day{color:var(--cyrano-pink-shade-1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31
|
-
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibEventInfoComponent, decorators: [{
|
|
33
|
-
type: Component,
|
|
34
|
-
args: [{ selector: 'lib-event-info', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, MatIconModule, FallbackTranslatePipe, TranslateModule], template: "<div class=\"event-info-body\">\n <div class=\"data-item\" *ngIf=\"event.allDay\">\n <span><mat-icon class=\"all-day\">done_all</mat-icon> {{ 'CALENDAR.ALL_DAY' | translate }}</span>\n </div>\n <div class=\"data-item\">\n <span> <mat-icon>event</mat-icon> {{ 'CALENDAR.STARTS' | translate }}</span>\n <span class=\"event-time\">\n {{ recurringException?.startDate || event.recurringStartDate || event.startDate | date: 'yyyy-MM-dd' }}\n <span *ngIf=\"!event.allDay\"> - {{ event.startTime | date: 'h:mm a' }}</span>\n </span>\n </div>\n <div class=\"data-item\">\n <span><mat-icon>event_available</mat-icon> {{ 'CALENDAR.ENDS' | translate }}</span>\n <span class=\"event-time\">\n {{ recurringException?.endDate || event.recurringEndDate || event.endDate | date: 'yyyy-MM-dd' }}\n <span *ngIf=\"!event.allDay\"> - {{ event.endTime | date: 'h:mm a' }}</span>\n </span>\n </div>\n\n <div class=\"data-item\">\n @if (event.recurringPattern?.type) {\n <span><mat-icon>event_repeat</mat-icon> {{ 'CALENDAR.RECURRING' | translate }}</span>\n <span class=\"recurring-type\">{{ 'CALENDAR.' + event.recurringPattern.type | translate }}</span>\n } @else if (address) {\n <span><mat-icon>location_on</mat-icon> {{ 'LOCATION.TITLE' | translate }}</span>\n <span [innerHTML]=\"address\"></span>\n } @else if (calendarAccount) {\n <span><mat-icon>email</mat-icon> {{ 'CALENDAR.ACCOUNT' | translate }}</span>\n <span [style.color]=\"calendarAccount.theme?.backgroundColor || ''\">{{ calendarAccount.email }}</span>\n } @else if (note) {\n <span><mat-icon>event_note</mat-icon> {{ 'FIELDS.NOTE' | translate }}</span>\n <span class=\"event-note\" [innerHTML]=\"note\"></span>\n }\n </div>\n</div>\n", styles: [".text-style,.event-info-body .data-item{font-family:Gilroy-Regular,serif;font-style:normal;font-weight:500;font-size:16px}.event-info-body{padding:0 15px 20px;max-height:calc(var(--viewport-height) * 60);position:relative;display:block;overflow:auto}.event-info-body .data-item{margin-top:20px;display:flex}.event-info-body .data-item.centred{flex-direction:column;align-items:center;margin-bottom:10px}.event-info-body .data-item span{font-size:14px}.event-info-body .data-item span:first-child{min-width:85px}.event-info-body .data-item span:first-child .mat-icon{position:relative;top:-4px}.event-info-body .data-item span.event-time{display:flex;gap:5px}.event-info-body .data-item span .mat-icon{margin:0 5px 0 0}.event-info-body .data-item span:nth-child(1){display:flex;font-weight:500}.event-info-body .data-item span:nth-child(2){margin-left:20px;opacity:.7}.event-info-body .data-item span.recurring-type{background:var(--cyrano-pink-shade-2);color:#fff;padding:5px 10px;border-radius:30px;height:25px;margin-top:-5px}.event-info-body .data-item .mat-icon.all-day{color:var(--cyrano-pink-shade-1)}\n"] }]
|
|
35
|
-
}], ctorParameters: () => [{ type: i1.FallbackTranslatePipe }, { type: i2.CalendarUtilsService }], propDecorators: { event: [{
|
|
36
|
-
type: Input
|
|
37
|
-
}], calendars: [{
|
|
38
|
-
type: Input
|
|
39
|
-
}] } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtY29tcG9uZW50cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NvbXBvbmVudHMvZXZlbnQtaW5mby9ldmVudC1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC1jb21wb25lbnRzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY2FsZW5kYXIvY29tcG9uZW50cy9ldmVudC1pbmZvL2V2ZW50LWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFFckcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFjdEQsTUFBTSxPQUFPLHFCQUFxQjtJQVdoQyxZQUNVLHFCQUE0QyxFQUM1QyxtQkFBeUM7UUFEekMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXNCO0lBQ2hELENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFILElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25HLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDO1FBQy9JLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hJLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLG1CQUFtQixFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzNJLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksSUFBSSxJQUFJLENBQUMseUJBQXlCLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3ZHLENBQUM7K0dBNUJVLHFCQUFxQjttR0FBckIscUJBQXFCLDhIQ25CbEMsMnZEQW1DQSw4b0NEbEJZLFlBQVkscUxBQUUsYUFBYSxtTEFBeUIsZUFBZTs7NEZBRWxFLHFCQUFxQjtrQkFSakMsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLGVBQWUsQ0FBQzs2SEFHckUsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGYWxsYmFja1RyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi8uLi9waXBlcy9mYWxsYmFjay10cmFuc2xhdGUvZmFsbGJhY2stdHJhbnNsYXRlLnBpcGUnO1xuXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJQ2FsZW5kYXJBY2NvdW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9jYWxlbmRhci5hY2NvdW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2V2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJUmVjdXJyaW5nRXZlbnRFeGNlcHRpb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlY3VycmluZy5leGNlcHRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IENhbGVuZGFyVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FsZW5kYXItdXRpbHMuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1ldmVudC1pbmZvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2V2ZW50LWluZm8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ldmVudC1pbmZvLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBGYWxsYmFja1RyYW5zbGF0ZVBpcGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIExpYkV2ZW50SW5mb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGV2ZW50OiBJRXZlbnQ7XG4gIEBJbnB1dCgpIGNhbGVuZGFyczogSUNhbGVuZGFyQWNjb3VudFtdO1xuXG4gIHB1YmxpYyBjYWxlbmRhckFjY291bnQ6IElDYWxlbmRhckFjY291bnQ7XG4gIHB1YmxpYyByZWN1cnJpbmdFeGNlcHRpb246IElSZWN1cnJpbmdFdmVudEV4Y2VwdGlvbjtcbiAgcHVibGljIHVwZGF0ZWRSZWN1cnJpbmdFeGNlcHRpb246IElSZWN1cnJpbmdFdmVudEV4Y2VwdGlvbjtcbiAgcHVibGljIGFkZHJlc3M6IHN0cmluZztcbiAgcHVibGljIHRpdGxlOiBzdHJpbmc7XG4gIHB1YmxpYyBub3RlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYWxsYmFja1RyYW5zbGF0ZVBpcGU6IEZhbGxiYWNrVHJhbnNsYXRlUGlwZSxcbiAgICBwcml2YXRlIGNhbGVuZGFyVXRpbFNlcnZpY2U6IENhbGVuZGFyVXRpbHNTZXJ2aWNlLFxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0RXZlbnRJbmZvKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRFdmVudEluZm8oKTogdm9pZCB7XG4gICAgdGhpcy5jYWxlbmRhclV0aWxTZXJ2aWNlLnNldEV2ZW50VGltZSh0aGlzLmV2ZW50KTtcbiAgICB0aGlzLnJlY3VycmluZ0V4Y2VwdGlvbiA9IHRoaXMuY2FsZW5kYXJVdGlsU2VydmljZS5nZXRFeGNlcHRpb25FdmVudCh0aGlzLmV2ZW50LCB0aGlzLmV2ZW50LnJlY3VycmluZ1BhdHRlcm4/LmV4Y2VwdGlvbnMpO1xuICAgIHRoaXMudXBkYXRlZFJlY3VycmluZ0V4Y2VwdGlvbiA9IHRoaXMuY2FsZW5kYXJVdGlsU2VydmljZS5nZXRVcGRhdGVkUmVjdXJyaW5nRXhjZXB0aW9uKHRoaXMuZXZlbnQpO1xuICAgIHRoaXMuYWRkcmVzcyA9IHRoaXMucmVjdXJyaW5nRXhjZXB0aW9uPy5sb2NhdGlvbj8uYWRkcmVzcyB8fCB0aGlzLnVwZGF0ZWRSZWN1cnJpbmdFeGNlcHRpb24/LmxvY2F0aW9uPy5hZGRyZXNzIHx8IHRoaXMuZXZlbnQubG9jYXRpb24/LmFkZHJlc3M7XG4gICAgdGhpcy5jYWxlbmRhckFjY291bnQgPSB0aGlzLmNhbGVuZGFycz8uZmluZCgodmFsdWUpID0+IHZhbHVlLl9pZCAmJiB0aGlzLmV2ZW50LmFjY291bnRJZCAmJiB2YWx1ZS5faWQgPT09IHRoaXMuZXZlbnQuYWNjb3VudElkKTtcbiAgICB0aGlzLnRpdGxlID0gdGhpcy5yZWN1cnJpbmdFeGNlcHRpb24/LnRpdGxlIHx8IHRoaXMuZXZlbnQudGl0bGUgfHwgdGhpcy5mYWxsYmFja1RyYW5zbGF0ZVBpcGUudHJhbnNmb3JtKCdDQUxFTkRBUi5OT19USVRMRScsICcoTm8gdGl0bGUpJyk7XG4gICAgdGhpcy5ub3RlID0gdGhpcy5yZWN1cnJpbmdFeGNlcHRpb24/Lm5vdGUgfHwgdGhpcy51cGRhdGVkUmVjdXJyaW5nRXhjZXB0aW9uPy5ub3RlIHx8IHRoaXMuZXZlbnQubm90ZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImV2ZW50LWluZm8tYm9keVwiPlxuICA8ZGl2IGNsYXNzPVwiZGF0YS1pdGVtXCIgKm5nSWY9XCJldmVudC5hbGxEYXlcIj5cbiAgICA8c3Bhbj48bWF0LWljb24gY2xhc3M9XCJhbGwtZGF5XCI+ZG9uZV9hbGw8L21hdC1pY29uPiB7eyAnQ0FMRU5EQVIuQUxMX0RBWScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZGF0YS1pdGVtXCI+XG4gICAgPHNwYW4+IDxtYXQtaWNvbj5ldmVudDwvbWF0LWljb24+IHt7ICdDQUxFTkRBUi5TVEFSVFMnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiZXZlbnQtdGltZVwiPlxuICAgICAge3sgcmVjdXJyaW5nRXhjZXB0aW9uPy5zdGFydERhdGUgfHwgZXZlbnQucmVjdXJyaW5nU3RhcnREYXRlIHx8IGV2ZW50LnN0YXJ0RGF0ZSB8IGRhdGU6ICd5eXl5LU1NLWRkJyB9fVxuICAgICAgPHNwYW4gKm5nSWY9XCIhZXZlbnQuYWxsRGF5XCI+IC0ge3sgZXZlbnQuc3RhcnRUaW1lIHwgZGF0ZTogJ2g6bW0gYScgfX08L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImRhdGEtaXRlbVwiPlxuICAgIDxzcGFuPjxtYXQtaWNvbj5ldmVudF9hdmFpbGFibGU8L21hdC1pY29uPiB7eyAnQ0FMRU5EQVIuRU5EUycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJldmVudC10aW1lXCI+XG4gICAgICB7eyByZWN1cnJpbmdFeGNlcHRpb24/LmVuZERhdGUgfHwgZXZlbnQucmVjdXJyaW5nRW5kRGF0ZSB8fCBldmVudC5lbmREYXRlIHwgZGF0ZTogJ3l5eXktTU0tZGQnIH19XG4gICAgICA8c3BhbiAqbmdJZj1cIiFldmVudC5hbGxEYXlcIj4gLSB7eyBldmVudC5lbmRUaW1lIHwgZGF0ZTogJ2g6bW0gYScgfX08L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZGF0YS1pdGVtXCI+XG4gICAgQGlmIChldmVudC5yZWN1cnJpbmdQYXR0ZXJuPy50eXBlKSB7XG4gICAgICA8c3Bhbj48bWF0LWljb24+ZXZlbnRfcmVwZWF0PC9tYXQtaWNvbj4ge3sgJ0NBTEVOREFSLlJFQ1VSUklORycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cInJlY3VycmluZy10eXBlXCI+e3sgJ0NBTEVOREFSLicgKyBldmVudC5yZWN1cnJpbmdQYXR0ZXJuLnR5cGUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgfSBAZWxzZSBpZiAoYWRkcmVzcykge1xuICAgICAgPHNwYW4+PG1hdC1pY29uPmxvY2F0aW9uX29uPC9tYXQtaWNvbj4ge3sgJ0xPQ0FUSU9OLlRJVExFJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiYWRkcmVzc1wiPjwvc3Bhbj5cbiAgICB9IEBlbHNlIGlmIChjYWxlbmRhckFjY291bnQpIHtcbiAgICAgIDxzcGFuPjxtYXQtaWNvbj5lbWFpbDwvbWF0LWljb24+IHt7ICdDQUxFTkRBUi5BQ0NPVU5UJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuIFtzdHlsZS5jb2xvcl09XCJjYWxlbmRhckFjY291bnQudGhlbWU/LmJhY2tncm91bmRDb2xvciB8fCAnJ1wiPnt7IGNhbGVuZGFyQWNjb3VudC5lbWFpbCB9fTwvc3Bhbj5cbiAgICB9IEBlbHNlIGlmIChub3RlKSB7XG4gICAgICA8c3Bhbj48bWF0LWljb24+ZXZlbnRfbm90ZTwvbWF0LWljb24+IHt7ICdGSUVMRFMuTk9URScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImV2ZW50LW5vdGVcIiBbaW5uZXJIVE1MXT1cIm5vdGVcIj48L3NwYW4+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|