@ti-tecnologico-de-monterrey-oficial/ds-ng 1.5.1020 → 1.5.1118
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/assets/images/gif/mitecLogoIntroMobile.gif +0 -0
- package/assets/images/gif/mitecLogoIntroWeb.gif +0 -0
- package/assets/images/lang-flags/mx.svg +392 -0
- package/assets/images/lang-flags/us.svg +13 -0
- package/assets/styles/main.min.css +1 -1
- package/assets/styles/main.min.css.map +1 -1
- package/assets/svg/neutral_fill.svg +1 -0
- package/assets/svg/primary_fill.svg +1 -0
- package/esm2022/lib/components/bmb-academic-progress/bmb-academic-progress.component.mjs +87 -0
- package/esm2022/lib/components/bmb-accordion/bmb-accordion.component.mjs +159 -0
- package/esm2022/lib/components/bmb-account-statement/bmb-account-statement.component.mjs +150 -0
- package/esm2022/lib/components/bmb-action-icon/bmb-action-icon.component.mjs +49 -0
- package/esm2022/lib/components/bmb-action-menu/bmb-action-menu.component.mjs +31 -0
- package/esm2022/lib/components/bmb-advertisement-card/bmb-advertisement-card.component.mjs +35 -0
- package/esm2022/lib/components/bmb-advertisement-card/types.mjs +2 -0
- package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-ads/bmb-alert-center-ads.component.mjs +40 -0
- package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-empty/bmb-alert-center-empty.component.mjs +18 -0
- package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-form/bmb-alert-center-form.component.mjs +148 -0
- package/esm2022/lib/components/bmb-alert-center/bmb-alert-center-list/bmb-alert-center-list.component.mjs +52 -0
- package/esm2022/lib/components/bmb-alert-center/bmb-alert-center.component.mjs +196 -0
- package/esm2022/lib/components/bmb-alert-center/bmb-alert-center.service.mjs +62 -0
- package/esm2022/lib/components/bmb-alert-center/types.mjs +2 -0
- package/esm2022/lib/components/bmb-badge/bmb-badge.component.mjs +26 -0
- package/esm2022/lib/components/bmb-balance-overview/bmb-balance-overview.component.mjs +26 -0
- package/esm2022/lib/components/bmb-bookmark/bmb-bookmark.component.mjs +27 -0
- package/esm2022/lib/components/bmb-bottom-navigation-bar/bmb-bottom-navigation-bar.component.mjs +42 -0
- package/esm2022/lib/components/bmb-breadcrumb/bmb-breadcrumb.component.mjs +55 -0
- package/esm2022/lib/components/bmb-button-icon/bmb-button-icon.component.mjs +30 -0
- package/esm2022/lib/components/bmb-calendar/bmb-calendar.component.mjs +262 -0
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-header/bmb-calendar-header.component.mjs +95 -0
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-hour-view/bmb-calendar-hour-view.component.mjs +40 -0
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-schedule-cards/bmb-calendar-schedule-cards.component.mjs +68 -0
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-day/bmb-calendar-template-day.component.mjs +41 -0
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-event-list/bmb-calendar-template-event-list.component.mjs +63 -0
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-mobile/bmb-calendar-template-mobile.component.mjs +95 -0
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-month/bmb-calendar-template-month.component.mjs +45 -0
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-week/bmb-calendar-template-week.component.mjs +54 -0
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-time-indicator/bmb-calendar-time-indicator.component.mjs +24 -0
- package/esm2022/lib/components/bmb-calendar/types.mjs +2 -0
- package/esm2022/lib/components/bmb-calendar/utils.mjs +96 -0
- package/esm2022/lib/components/bmb-card/bmb-card.component.mjs +154 -0
- package/esm2022/lib/components/bmb-card-button/bmb-card-button.component.mjs +76 -0
- package/esm2022/lib/components/bmb-carousel/bmb-carousel.component.mjs +80 -0
- package/esm2022/lib/components/bmb-chat-bar/bmb-chat-bar.component.mjs +175 -0
- package/esm2022/lib/components/bmb-chat-bar/bot_list.mjs +57 -0
- package/esm2022/lib/components/bmb-chat-bar/types.mjs +2 -0
- package/esm2022/lib/components/bmb-chat-bubbles/bmb-chat-bubbles.component.mjs +56 -0
- package/esm2022/lib/components/bmb-chat-bubbles/types.mjs +2 -0
- package/esm2022/lib/components/bmb-check-external-link-button/bmb-check-external-link-button.component.mjs +46 -0
- package/esm2022/lib/components/bmb-checkbox/bmb-checkbox.component.mjs +80 -0
- package/esm2022/lib/components/bmb-chevron-title-selector/bmb-chevron-title-selector.component.mjs +36 -0
- package/esm2022/lib/components/bmb-container/bmb-container.component.mjs +27 -0
- package/esm2022/lib/components/bmb-container-button/bmb-container-button.component.mjs +83 -0
- package/esm2022/lib/components/bmb-date-range/bmb-date-range.component.mjs +69 -0
- package/esm2022/lib/components/bmb-datepicker/bmb-datepicker-modal/bmb-datepicker-modal.component.mjs +211 -0
- package/esm2022/lib/components/bmb-datepicker/bmb-datepicker.component.mjs +123 -0
- package/esm2022/lib/components/bmb-digital-id/bmb-digital-id.component.mjs +54 -0
- package/esm2022/lib/components/bmb-divider/bmb-divider.component.mjs +25 -0
- package/esm2022/lib/components/bmb-dot-paginator/bmb-dot-paginator.component.mjs +34 -0
- package/esm2022/lib/components/bmb-drawer-overlay/bmb-drawer-overlay.component.mjs +54 -0
- package/esm2022/lib/components/bmb-dropdown/bmb-dropdown.component.mjs +200 -0
- package/esm2022/lib/components/bmb-dropdown-menu/bmb-dropdown-menu.component.mjs +28 -0
- package/esm2022/lib/components/bmb-dropzone/bmb-dropzone.component.mjs +175 -0
- package/esm2022/lib/components/bmb-evaluation-rubric/bmb-evaluation-rubric.component.mjs +76 -0
- package/esm2022/lib/components/bmb-external-link/bmb-external-link.component.mjs +78 -0
- package/esm2022/lib/components/bmb-fab/bmb-fab-.interface.mjs +9 -0
- package/esm2022/lib/components/bmb-fab/bmb-fab.component.mjs +37 -0
- package/esm2022/lib/components/bmb-filter-card/bmb-filter-card.component.mjs +154 -0
- package/esm2022/lib/components/bmb-filter-card/bmb-filter-card.interface.mjs +2 -0
- package/esm2022/lib/components/bmb-focus-element/bmb-focus-element.component.mjs +36 -0
- package/esm2022/lib/components/bmb-form-validation/bmb-form-validation.component.mjs +159 -0
- package/esm2022/lib/components/bmb-form-validator/bmb-form-validator.component.mjs +159 -0
- package/esm2022/lib/components/bmb-frequent-apps-selector/bmb-frequent-apps-selector.component.mjs +29 -0
- package/esm2022/lib/components/bmb-grade-value/bmb-grade-value.component.mjs +22 -0
- package/esm2022/lib/components/bmb-grades/bmb-grades.component.mjs +181 -0
- package/esm2022/lib/components/bmb-grades/types.mjs +2 -0
- package/esm2022/lib/components/bmb-header-mitec/bmb-header-mitec.component.mjs +55 -0
- package/esm2022/lib/components/bmb-header-mobile/bmb-header-mobile.component.mjs +49 -0
- package/esm2022/lib/components/bmb-hito-card/bmb-hito-card.component.mjs +77 -0
- package/esm2022/lib/components/bmb-hito-list/bmb-hito-list.component.mjs +59 -0
- package/esm2022/lib/components/bmb-home-card/bmb-home-card-header/bmb-home-card-header.component.mjs +76 -0
- package/esm2022/lib/components/bmb-home-card/bmb-home-card.component.mjs +41 -0
- package/esm2022/lib/components/bmb-home-card-chat/bmb-home-card-chat.component.mjs +39 -0
- package/esm2022/lib/components/bmb-home-section/bmb-home-section.component.mjs +20 -0
- package/esm2022/lib/components/bmb-icon/bmb-icon.component.mjs +49 -0
- package/esm2022/lib/components/bmb-icon/types.mjs +2 -0
- package/esm2022/lib/components/bmb-icon-item/bmb-icon-item.component.mjs +23 -0
- package/esm2022/lib/components/bmb-icon-status/bmb-icon-status.component.mjs +24 -0
- package/esm2022/lib/components/bmb-iframe/bmb-iframe.component.mjs +19 -0
- package/esm2022/lib/components/bmb-iframe/bmb-iframe.pipe.mjs +21 -0
- package/esm2022/lib/components/bmb-image/bmb-image.component.mjs +33 -0
- package/esm2022/lib/components/bmb-inner-header/bmb-inner-header.component.mjs +77 -0
- package/esm2022/lib/components/bmb-input/bmb-input-content/bmb-input-content.component.mjs +147 -0
- package/esm2022/lib/components/bmb-input/bmb-input-validation/bmb-input-validation.component.mjs +162 -0
- package/esm2022/lib/components/bmb-input/bmb-input-validation/bmb-input-validation.service.mjs +116 -0
- package/esm2022/lib/components/bmb-input/bmb-input-validator/bmb-input-validator.component.mjs +178 -0
- package/esm2022/lib/components/bmb-input/bmb-input.component.mjs +85 -0
- package/esm2022/lib/components/bmb-input-phone-number/bmb-input-phone-number.component.mjs +219 -0
- package/esm2022/lib/components/bmb-input-tags/bmb-input-tags.component.mjs +191 -0
- package/esm2022/lib/components/bmb-interactive-icon/bmb-interactive-icon.component.mjs +54 -0
- package/esm2022/lib/components/bmb-invoice/bmb-invoice.component.mjs +34 -0
- package/esm2022/lib/components/bmb-item/bmb-item.component.mjs +28 -0
- package/esm2022/lib/components/bmb-legend/bmb-legend.component.mjs +23 -0
- package/esm2022/lib/components/bmb-list-group/bmb-list-group-item/bmb-list-group-item.component.mjs +83 -0
- package/esm2022/lib/components/bmb-list-group/bmb-list-group.component.mjs +60 -0
- package/esm2022/lib/components/bmb-list-group/bmb-list-group.service.mjs +55 -0
- package/esm2022/lib/components/bmb-list-group/types.mjs +2 -0
- package/esm2022/lib/components/bmb-list-items/bmb-list-items.component.mjs +83 -0
- package/esm2022/lib/components/bmb-loader/bmb-loader.component.mjs +77 -0
- package/esm2022/lib/components/bmb-login/bmb-login-content/bmb-login-content.component.mjs +55 -0
- package/esm2022/lib/components/bmb-login/bmb-login.component.mjs +66 -0
- package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-logged/bmb-login-onboarding-logged.component.mjs +40 -0
- package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-login/bmb-login-onboarding-login.component.mjs +20 -0
- package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-logout/bmb-login-onboarding-logout.component.mjs +33 -0
- package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-four.component.mjs +87 -0
- package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-one.component.mjs +88 -0
- package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-three.component.mjs +57 -0
- package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-two.component.mjs +99 -0
- package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step.component.mjs +39 -0
- package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper.component.mjs +44 -0
- package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding.component.mjs +52 -0
- package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding.service.mjs +70 -0
- package/esm2022/lib/components/bmb-login-onboarding/types.mjs +2 -0
- package/esm2022/lib/components/bmb-logo/bmb-logo.component.mjs +43 -0
- package/esm2022/lib/components/bmb-media-card/bmb-media-card.component.mjs +64 -0
- package/esm2022/lib/components/bmb-mitec-logo-animation/bmb-mitec-logo-animation.component.mjs +14 -0
- package/esm2022/lib/components/bmb-mobile-templates/bmb-mobile-templates.component.mjs +88 -0
- package/esm2022/lib/components/bmb-modal/bmb-modal.component.mjs +139 -0
- package/esm2022/lib/components/bmb-modal/bmb-modal.interface.mjs +2 -0
- package/esm2022/lib/components/bmb-modal/bmb-native-modal.component.mjs +84 -0
- package/esm2022/lib/components/bmb-multi-dot-paginator/bmb-multi-dot-paginator-item/bmb-multi-dot-paginator-item.component.mjs +15 -0
- package/esm2022/lib/components/bmb-multi-dot-paginator/bmb-multi-dot-paginator.component.mjs +59 -0
- package/esm2022/lib/components/bmb-navigation-bar/bmb-navigation-bar.component.mjs +30 -0
- package/esm2022/lib/components/bmb-notice-card/bmb-notice-card.component.mjs +43 -0
- package/esm2022/lib/components/bmb-notification-card/bmb-notification-card.component.mjs +86 -0
- package/esm2022/lib/components/bmb-overlay/bmb-overlay.component.mjs +22 -0
- package/esm2022/lib/components/bmb-paginator/bmb-paginator.component.mjs +52 -0
- package/esm2022/lib/components/bmb-portal/bmb-portal.component.mjs +52 -0
- package/esm2022/lib/components/bmb-profile/bmb-profile.component.mjs +153 -0
- package/esm2022/lib/components/bmb-progress-bar/bmb-progress-bar.component.mjs +39 -0
- package/esm2022/lib/components/bmb-progress-cirlce/bmb-progress-circle.component.mjs +196 -0
- package/esm2022/lib/components/bmb-progress-cirlce/bmb-progress-circle.interface.mjs +2 -0
- package/esm2022/lib/components/bmb-pull-wedge/bmb-pull-wedge.component.mjs +88 -0
- package/esm2022/lib/components/bmb-push-notification/bmb-push-notification-item/bmb-push-notification-item.component.mjs +75 -0
- package/esm2022/lib/components/bmb-push-notification/bmb-push-notification.component.mjs +24 -0
- package/esm2022/lib/components/bmb-push-notification/types.mjs +2 -0
- package/esm2022/lib/components/bmb-radial/bmb-radial.component.mjs +78 -0
- package/esm2022/lib/components/bmb-search-input/bmb-search-input.component.mjs +117 -0
- package/esm2022/lib/components/bmb-select/bmb-select-item/bmb-select-item.component.mjs +16 -0
- package/esm2022/lib/components/bmb-select/bmb-select.component.mjs +55 -0
- package/esm2022/lib/components/bmb-server-table/bmb-server-table.component.mjs +82 -0
- package/esm2022/lib/components/bmb-sidebar/bmb-sidebar.component.mjs +103 -0
- package/esm2022/lib/components/bmb-sidebar/bmb-sidebar.interface.mjs +2 -0
- package/esm2022/lib/components/bmb-simple-header/bmb-simple-header.component.mjs +64 -0
- package/esm2022/lib/components/bmb-skeleton/bmb-skeleton.component.mjs +16 -0
- package/esm2022/lib/components/bmb-sounds-card/bmb-sounds-card.component.mjs +64 -0
- package/esm2022/lib/components/bmb-stat-counter/bmb-stat-counter.component.mjs +32 -0
- package/esm2022/lib/components/bmb-step-progress-bar/bmb-step-progress-bar.component.mjs +53 -0
- package/esm2022/lib/components/bmb-student-activity-card/bmb-student-activity-card.component.mjs +53 -0
- package/esm2022/lib/components/bmb-student-activity-selector/bmb-student-activity-tab/bmb-student-activity-tab.component.mjs +27 -0
- package/esm2022/lib/components/bmb-switch/bmb-switch.component.mjs +88 -0
- package/esm2022/lib/components/bmb-tables/bmb-tables.component.mjs +545 -0
- package/esm2022/lib/components/bmb-tables/bmb-tables.interface.mjs +2 -0
- package/esm2022/lib/components/bmb-tabs/bmb-tabs.component.mjs +127 -0
- package/esm2022/lib/components/bmb-tags/bmb-tags.component.mjs +65 -0
- package/esm2022/lib/components/bmb-text-editor/bmb-text-editor.component.mjs +135 -0
- package/esm2022/lib/components/bmb-text-link/bmb-text-link.component.mjs +43 -0
- package/esm2022/lib/components/bmb-theme/bmb-theme.component.mjs +65 -0
- package/esm2022/lib/components/bmb-three-cols/bmb-three-cols.component.mjs +30 -0
- package/esm2022/lib/components/bmb-timestream/bmb-timestream-detail/bmb-timestream-detail.component.mjs +74 -0
- package/esm2022/lib/components/bmb-timestream/bmb-timestream-error/bmb-timestream-error.component.mjs +13 -0
- package/esm2022/lib/components/bmb-timestream/bmb-timestream.component.mjs +238 -0
- package/esm2022/lib/components/bmb-timestream/types.mjs +2 -0
- package/esm2022/lib/components/bmb-timestream-card/bmb-timestream-card.component.mjs +139 -0
- package/esm2022/lib/components/bmb-title-content/bmb-title-content.component.mjs +61 -0
- package/esm2022/lib/components/bmb-toast/bmb-toast.component.mjs +47 -0
- package/esm2022/lib/components/bmb-tooltip/bmb-tooltip.component.mjs +26 -0
- package/esm2022/lib/components/bmb-top-bar/bmb-top-bar-item/bmb-top-bar-item.component.mjs +31 -0
- package/esm2022/lib/components/bmb-top-bar/bmb-top-bar-user-section/bmb-top-bar-user-section.component.mjs +70 -0
- package/esm2022/lib/components/bmb-top-bar/bmb-top-bar.component.mjs +122 -0
- package/esm2022/lib/components/bmb-top-bar/types.mjs +2 -0
- package/esm2022/lib/components/bmb-totp/bmb-totp.component.mjs +138 -0
- package/esm2022/lib/components/bmb-user-image/bmb-user-image.component.mjs +44 -0
- package/esm2022/lib/components/bmb-user-profile/bmb-user-profile-content/bmb-user-profile-content.component.mjs +19 -0
- package/esm2022/lib/components/bmb-user-profile/bmb-user-profile.component.mjs +71 -0
- package/esm2022/lib/components/bmb-user-summary/bmb-user-summary-content/bmb-user-summary-content.component.mjs +51 -0
- package/esm2022/lib/components/bmb-user-summary/bmb-user-summary.component.mjs +28 -0
- package/esm2022/lib/components/bmb-value-counter/bmb-value-counter.component.mjs +23 -0
- package/esm2022/lib/components/bmb-web-templates/bmb-web-templates.component.mjs +85 -0
- package/esm2022/lib/components/bmb-wheel-menu/bmb-wheel-menu.component.mjs +128 -0
- package/esm2022/lib/components/utils/bmb-dropdown-content/bmb-dropdown-content.component.mjs +55 -0
- package/esm2022/lib/directives/bmb-accordion/bmb-accordion-control.directive.mjs +88 -0
- package/esm2022/lib/directives/bmb-button/button.directive.mjs +84 -0
- package/esm2022/lib/directives/bmb-button-group/bmb-button-group.directive.mjs +29 -0
- package/esm2022/lib/directives/bmb-layout/bmb-layout-item.directive.mjs +51 -0
- package/esm2022/lib/directives/bmb-layout/bmb-layout.directive.mjs +36 -0
- package/esm2022/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout-item.directive.mjs +34 -0
- package/esm2022/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout.directive.mjs +37 -0
- package/esm2022/lib/directives/bmb-layout-grid/bmb-layout-grid.directive.mjs +89 -0
- package/esm2022/lib/directives/utils/clickoutside.directive.mjs +41 -0
- package/esm2022/lib/ds-ng.component.mjs +11 -0
- package/esm2022/lib/ds-ng.service.mjs +14 -0
- package/esm2022/lib/services/calendar.service.mjs +51 -0
- package/esm2022/lib/services/index.mjs +3 -0
- package/esm2022/lib/services/native-modal.service.mjs +69 -0
- package/esm2022/lib/services/notification.service.mjs +77 -0
- package/esm2022/lib/services/tabs.service.mjs +30 -0
- package/esm2022/lib/services/theme.service.mjs +30 -0
- package/esm2022/lib/services/toast.service.mjs +24 -0
- package/esm2022/lib/services/user/profile.service.mjs +26 -0
- package/esm2022/lib/types/colors.mjs +2 -0
- package/esm2022/lib/types/index.mjs +11 -0
- package/esm2022/lib/utils/countryCodes.mjs +1089 -0
- package/esm2022/lib/utils/currencyFormat.mjs +7 -0
- package/esm2022/lib/utils/dropdown.mjs +85 -0
- package/esm2022/lib/utils/formControl.mjs +25 -0
- package/esm2022/lib/utils/timestreamFilters.mjs +32 -0
- package/esm2022/lib/utils/utils.mjs +66 -0
- package/esm2022/public-api.mjs +151 -0
- package/esm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs +5 -0
- package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs +3714 -3147
- package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs.map +1 -1
- package/index.d.ts +5 -3573
- package/lib/components/bmb-academic-progress/bmb-academic-progress.component.d.ts +21 -0
- package/lib/components/bmb-accordion/bmb-accordion.component.d.ts +37 -0
- package/lib/components/bmb-account-statement/bmb-account-statement.component.d.ts +54 -0
- package/lib/components/bmb-action-icon/bmb-action-icon.component.d.ts +23 -0
- package/lib/components/bmb-action-menu/bmb-action-menu.component.d.ts +17 -0
- package/lib/components/bmb-advertisement-card/bmb-advertisement-card.component.d.ts +13 -0
- package/lib/components/bmb-advertisement-card/types.d.ts +21 -0
- package/lib/components/bmb-alert-center/bmb-alert-center-ads/bmb-alert-center-ads.component.d.ts +10 -0
- package/lib/components/bmb-alert-center/bmb-alert-center-empty/bmb-alert-center-empty.component.d.ts +7 -0
- package/lib/components/bmb-alert-center/bmb-alert-center-form/bmb-alert-center-form.component.d.ts +31 -0
- package/lib/components/bmb-alert-center/bmb-alert-center-list/bmb-alert-center-list.component.d.ts +20 -0
- package/lib/components/bmb-alert-center/bmb-alert-center.component.d.ts +46 -0
- package/lib/components/bmb-alert-center/bmb-alert-center.service.d.ts +20 -0
- package/lib/components/bmb-alert-center/types.d.ts +64 -0
- package/lib/components/bmb-badge/bmb-badge.component.d.ts +11 -0
- package/lib/components/bmb-balance-overview/bmb-balance-overview.component.d.ts +15 -0
- package/lib/components/bmb-bookmark/bmb-bookmark.component.d.ts +8 -0
- package/lib/components/bmb-bottom-navigation-bar/bmb-bottom-navigation-bar.component.d.ts +25 -0
- package/lib/components/bmb-breadcrumb/bmb-breadcrumb.component.d.ts +27 -0
- package/lib/components/bmb-button-icon/bmb-button-icon.component.d.ts +16 -0
- package/lib/components/bmb-calendar/bmb-calendar.component.d.ts +65 -0
- package/lib/components/bmb-calendar/common/bmb-calendar-header/bmb-calendar-header.component.d.ts +20 -0
- package/lib/components/bmb-calendar/common/bmb-calendar-hour-view/bmb-calendar-hour-view.component.d.ts +13 -0
- package/lib/components/bmb-calendar/common/bmb-calendar-schedule-cards/bmb-calendar-schedule-cards.component.d.ts +16 -0
- package/lib/components/bmb-calendar/common/bmb-calendar-template-day/bmb-calendar-template-day.component.d.ts +18 -0
- package/lib/components/bmb-calendar/common/bmb-calendar-template-event-list/bmb-calendar-template-event-list.component.d.ts +17 -0
- package/lib/components/bmb-calendar/common/bmb-calendar-template-mobile/bmb-calendar-template-mobile.component.d.ts +31 -0
- package/lib/components/bmb-calendar/common/bmb-calendar-template-month/bmb-calendar-template-month.component.d.ts +18 -0
- package/lib/components/bmb-calendar/common/bmb-calendar-template-week/bmb-calendar-template-week.component.d.ts +23 -0
- package/lib/components/bmb-calendar/common/bmb-calendar-time-indicator/bmb-calendar-time-indicator.component.d.ts +9 -0
- package/lib/components/bmb-calendar/types.d.ts +43 -0
- package/lib/components/bmb-calendar/utils.d.ts +12 -0
- package/lib/components/bmb-card/bmb-card.component.d.ts +42 -0
- package/lib/components/bmb-card-button/bmb-card-button.component.d.ts +50 -0
- package/lib/components/bmb-carousel/bmb-carousel.component.d.ts +20 -0
- package/lib/components/bmb-chat-bar/bmb-chat-bar.component.d.ts +62 -0
- package/lib/components/bmb-chat-bar/bot_list.d.ts +6 -0
- package/lib/components/bmb-chat-bar/types.d.ts +9 -0
- package/lib/components/bmb-chat-bubbles/bmb-chat-bubbles.component.d.ts +23 -0
- package/lib/components/bmb-chat-bubbles/types.d.ts +23 -0
- package/lib/components/bmb-check-external-link-button/bmb-check-external-link-button.component.d.ts +21 -0
- package/lib/components/bmb-checkbox/bmb-checkbox.component.d.ts +33 -0
- package/lib/components/bmb-chevron-title-selector/bmb-chevron-title-selector.component.d.ts +17 -0
- package/lib/components/bmb-container/bmb-container.component.d.ts +9 -0
- package/lib/components/bmb-container-button/bmb-container-button.component.d.ts +30 -0
- package/lib/components/bmb-date-range/bmb-date-range.component.d.ts +35 -0
- package/lib/components/bmb-datepicker/bmb-datepicker-modal/bmb-datepicker-modal.component.d.ts +40 -0
- package/lib/components/bmb-datepicker/bmb-datepicker.component.d.ts +44 -0
- package/lib/components/bmb-digital-id/bmb-digital-id.component.d.ts +26 -0
- package/lib/components/bmb-divider/bmb-divider.component.d.ts +8 -0
- package/lib/components/bmb-dot-paginator/bmb-dot-paginator.component.d.ts +17 -0
- package/lib/components/bmb-drawer-overlay/bmb-drawer-overlay.component.d.ts +24 -0
- package/lib/components/bmb-dropdown/bmb-dropdown.component.d.ts +61 -0
- package/lib/components/bmb-dropdown-menu/bmb-dropdown-menu.component.d.ts +10 -0
- package/lib/components/bmb-dropzone/bmb-dropzone.component.d.ts +49 -0
- package/lib/components/bmb-evaluation-rubric/bmb-evaluation-rubric.component.d.ts +45 -0
- package/lib/components/bmb-external-link/bmb-external-link.component.d.ts +22 -0
- package/lib/components/bmb-fab/bmb-fab-.interface.d.ts +10 -0
- package/lib/components/bmb-fab/bmb-fab.component.d.ts +15 -0
- package/lib/components/bmb-filter-card/bmb-filter-card.component.d.ts +33 -0
- package/lib/components/bmb-filter-card/bmb-filter-card.interface.d.ts +10 -0
- package/lib/components/bmb-focus-element/bmb-focus-element.component.d.ts +14 -0
- package/lib/components/bmb-form-validation/bmb-form-validation.component.d.ts +34 -0
- package/lib/components/bmb-form-validator/bmb-form-validator.component.d.ts +34 -0
- package/lib/components/bmb-frequent-apps-selector/bmb-frequent-apps-selector.component.d.ts +13 -0
- package/lib/components/bmb-grade-value/bmb-grade-value.component.d.ts +11 -0
- package/lib/components/bmb-grades/bmb-grades.component.d.ts +43 -0
- package/lib/components/bmb-grades/types.d.ts +25 -0
- package/lib/components/bmb-header-mitec/bmb-header-mitec.component.d.ts +17 -0
- package/lib/components/bmb-header-mobile/bmb-header-mobile.component.d.ts +23 -0
- package/lib/components/bmb-hito-card/bmb-hito-card.component.d.ts +23 -0
- package/lib/components/bmb-hito-list/bmb-hito-list.component.d.ts +24 -0
- package/lib/components/bmb-home-card/bmb-home-card-header/bmb-home-card-header.component.d.ts +28 -0
- package/lib/components/bmb-home-card/bmb-home-card.component.d.ts +27 -0
- package/lib/components/bmb-home-card-chat/bmb-home-card-chat.component.d.ts +25 -0
- package/lib/components/bmb-home-section/bmb-home-section.component.d.ts +9 -0
- package/lib/components/bmb-icon/bmb-icon.component.d.ts +23 -0
- package/lib/components/bmb-icon/types.d.ts +1 -0
- package/lib/components/bmb-icon-item/bmb-icon-item.component.d.ts +13 -0
- package/lib/components/bmb-icon-status/bmb-icon-status.component.d.ts +10 -0
- package/lib/components/bmb-iframe/bmb-iframe.component.d.ts +11 -0
- package/lib/components/bmb-iframe/bmb-iframe.pipe.d.ts +10 -0
- package/lib/components/bmb-image/bmb-image.component.d.ts +19 -0
- package/lib/components/bmb-inner-header/bmb-inner-header.component.d.ts +29 -0
- package/lib/components/bmb-input/bmb-input-content/bmb-input-content.component.d.ts +53 -0
- package/lib/components/bmb-input/bmb-input-validation/bmb-input-validation.component.d.ts +46 -0
- package/lib/components/bmb-input/bmb-input-validation/bmb-input-validation.service.d.ts +16 -0
- package/lib/components/bmb-input/bmb-input-validator/bmb-input-validator.component.d.ts +45 -0
- package/lib/components/bmb-input/bmb-input.component.d.ts +68 -0
- package/lib/components/bmb-input-phone-number/bmb-input-phone-number.component.d.ts +52 -0
- package/lib/components/bmb-input-tags/bmb-input-tags.component.d.ts +55 -0
- package/lib/components/bmb-interactive-icon/bmb-interactive-icon.component.d.ts +23 -0
- package/lib/components/bmb-invoice/bmb-invoice.component.d.ts +31 -0
- package/lib/components/bmb-item/bmb-item.component.d.ts +16 -0
- package/lib/components/bmb-legend/bmb-legend.component.d.ts +9 -0
- package/lib/components/bmb-list-group/bmb-list-group-item/bmb-list-group-item.component.d.ts +33 -0
- package/lib/components/bmb-list-group/bmb-list-group.component.d.ts +27 -0
- package/lib/components/bmb-list-group/bmb-list-group.service.d.ts +18 -0
- package/lib/components/bmb-list-group/types.d.ts +1 -0
- package/lib/components/bmb-list-items/bmb-list-items.component.d.ts +33 -0
- package/lib/components/bmb-loader/bmb-loader.component.d.ts +31 -0
- package/lib/components/bmb-login/bmb-login-content/bmb-login-content.component.d.ts +27 -0
- package/lib/components/bmb-login/bmb-login.component.d.ts +33 -0
- package/lib/components/bmb-login-onboarding/bmb-login-onboarding-logged/bmb-login-onboarding-logged.component.d.ts +14 -0
- package/lib/components/bmb-login-onboarding/bmb-login-onboarding-login/bmb-login-onboarding-login.component.d.ts +8 -0
- package/lib/components/bmb-login-onboarding/bmb-login-onboarding-logout/bmb-login-onboarding-logout.component.d.ts +12 -0
- package/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-four.component.d.ts +18 -0
- package/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-one.component.d.ts +17 -0
- package/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-three.component.d.ts +11 -0
- package/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step-two.component.d.ts +19 -0
- package/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step.component.d.ts +19 -0
- package/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper.component.d.ts +15 -0
- package/lib/components/bmb-login-onboarding/bmb-login-onboarding.component.d.ts +20 -0
- package/lib/components/bmb-login-onboarding/bmb-login-onboarding.service.d.ts +25 -0
- package/lib/components/bmb-login-onboarding/types.d.ts +15 -0
- package/lib/components/bmb-logo/bmb-logo.component.d.ts +19 -0
- package/lib/components/bmb-media-card/bmb-media-card.component.d.ts +34 -0
- package/lib/components/bmb-mitec-logo-animation/bmb-mitec-logo-animation.component.d.ts +6 -0
- package/lib/components/bmb-mobile-templates/bmb-mobile-templates.component.d.ts +47 -0
- package/lib/components/bmb-modal/bmb-modal.component.d.ts +31 -0
- package/lib/components/bmb-modal/bmb-modal.interface.d.ts +37 -0
- package/lib/components/bmb-modal/bmb-native-modal.component.d.ts +37 -0
- package/lib/components/bmb-multi-dot-paginator/bmb-multi-dot-paginator-item/bmb-multi-dot-paginator-item.component.d.ts +7 -0
- package/lib/components/bmb-multi-dot-paginator/bmb-multi-dot-paginator.component.d.ts +15 -0
- package/lib/components/bmb-navigation-bar/bmb-navigation-bar.component.d.ts +13 -0
- package/lib/components/bmb-notice-card/bmb-notice-card.component.d.ts +21 -0
- package/lib/components/bmb-notification-card/bmb-notification-card.component.d.ts +27 -0
- package/lib/components/bmb-overlay/bmb-overlay.component.d.ts +9 -0
- package/lib/components/bmb-paginator/bmb-paginator.component.d.ts +14 -0
- package/lib/components/bmb-portal/bmb-portal.component.d.ts +18 -0
- package/lib/components/bmb-profile/bmb-profile.component.d.ts +34 -0
- package/lib/components/bmb-progress-bar/bmb-progress-bar.component.d.ts +19 -0
- package/lib/components/bmb-progress-cirlce/bmb-progress-circle.component.d.ts +51 -0
- package/lib/components/bmb-progress-cirlce/bmb-progress-circle.interface.d.ts +12 -0
- package/lib/components/bmb-pull-wedge/bmb-pull-wedge.component.d.ts +23 -0
- package/lib/components/bmb-push-notification/bmb-push-notification-item/bmb-push-notification-item.component.d.ts +18 -0
- package/lib/components/bmb-push-notification/bmb-push-notification.component.d.ts +11 -0
- package/lib/components/bmb-push-notification/types.d.ts +46 -0
- package/lib/components/bmb-radial/bmb-radial.component.d.ts +33 -0
- package/lib/components/bmb-search-input/bmb-search-input.component.d.ts +33 -0
- package/lib/components/bmb-select/bmb-select-item/bmb-select-item.component.d.ts +6 -0
- package/lib/components/bmb-select/bmb-select.component.d.ts +17 -0
- package/lib/components/bmb-server-table/bmb-server-table.component.d.ts +26 -0
- package/lib/components/bmb-sidebar/bmb-sidebar.component.d.ts +27 -0
- package/lib/components/bmb-sidebar/bmb-sidebar.interface.d.ts +10 -0
- package/lib/components/bmb-simple-header/bmb-simple-header.component.d.ts +10 -0
- package/lib/components/bmb-skeleton/bmb-skeleton.component.d.ts +7 -0
- package/lib/components/bmb-sounds-card/bmb-sounds-card.component.d.ts +24 -0
- package/lib/components/bmb-stat-counter/bmb-stat-counter.component.d.ts +11 -0
- package/lib/components/bmb-step-progress-bar/bmb-step-progress-bar.component.d.ts +26 -0
- package/lib/components/bmb-student-activity-card/bmb-student-activity-card.component.d.ts +23 -0
- package/lib/components/bmb-student-activity-selector/bmb-student-activity-tab/bmb-student-activity-tab.component.d.ts +10 -0
- package/lib/components/bmb-switch/bmb-switch.component.d.ts +25 -0
- package/lib/components/bmb-tables/bmb-tables.component.d.ts +104 -0
- package/lib/components/bmb-tables/bmb-tables.interface.d.ts +21 -0
- package/lib/components/bmb-tabs/bmb-tabs.component.d.ts +41 -0
- package/lib/components/bmb-tags/bmb-tags.component.d.ts +25 -0
- package/lib/components/bmb-text-editor/bmb-text-editor.component.d.ts +34 -0
- package/lib/components/bmb-text-link/bmb-text-link.component.d.ts +17 -0
- package/lib/components/bmb-theme/bmb-theme.component.d.ts +19 -0
- package/lib/components/bmb-three-cols/bmb-three-cols.component.d.ts +15 -0
- package/lib/components/bmb-timestream/bmb-timestream-detail/bmb-timestream-detail.component.d.ts +25 -0
- package/lib/components/bmb-timestream/bmb-timestream-error/bmb-timestream-error.component.d.ts +5 -0
- package/lib/components/bmb-timestream/bmb-timestream.component.d.ts +67 -0
- package/lib/components/bmb-timestream/types.d.ts +54 -0
- package/lib/components/bmb-timestream-card/bmb-timestream-card.component.d.ts +29 -0
- package/lib/components/bmb-title-content/bmb-title-content.component.d.ts +26 -0
- package/lib/components/bmb-toast/bmb-toast.component.d.ts +16 -0
- package/lib/components/bmb-tooltip/bmb-tooltip.component.d.ts +15 -0
- package/lib/components/bmb-top-bar/bmb-top-bar-item/bmb-top-bar-item.component.d.ts +7 -0
- package/lib/components/bmb-top-bar/bmb-top-bar-user-section/bmb-top-bar-user-section.component.d.ts +30 -0
- package/lib/components/bmb-top-bar/bmb-top-bar.component.d.ts +45 -0
- package/lib/components/bmb-top-bar/types.d.ts +6 -0
- package/lib/components/bmb-totp/bmb-totp.component.d.ts +30 -0
- package/lib/components/bmb-user-image/bmb-user-image.component.d.ts +19 -0
- package/lib/components/bmb-user-profile/bmb-user-profile-content/bmb-user-profile-content.component.d.ts +10 -0
- package/lib/components/bmb-user-profile/bmb-user-profile.component.d.ts +19 -0
- package/lib/components/bmb-user-summary/bmb-user-summary-content/bmb-user-summary-content.component.d.ts +24 -0
- package/lib/components/bmb-user-summary/bmb-user-summary.component.d.ts +14 -0
- package/lib/components/bmb-value-counter/bmb-value-counter.component.d.ts +8 -0
- package/lib/components/bmb-web-templates/bmb-web-templates.component.d.ts +42 -0
- package/lib/components/bmb-wheel-menu/bmb-wheel-menu.component.d.ts +40 -0
- package/lib/components/utils/bmb-dropdown-content/bmb-dropdown-content.component.d.ts +16 -0
- package/lib/directives/bmb-accordion/bmb-accordion-control.directive.d.ts +22 -0
- package/lib/directives/bmb-button/button.directive.d.ts +29 -0
- package/lib/directives/bmb-button-group/bmb-button-group.directive.d.ts +10 -0
- package/lib/directives/bmb-layout/bmb-layout-item.directive.d.ts +20 -0
- package/lib/directives/bmb-layout/bmb-layout.directive.d.ts +15 -0
- package/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout-item.directive.d.ts +9 -0
- package/lib/directives/bmb-layout/bmb-vertical-layout/bmb-vertical-layout.directive.d.ts +14 -0
- package/lib/directives/bmb-layout-grid/bmb-layout-grid.directive.d.ts +29 -0
- package/lib/directives/utils/clickoutside.directive.d.ts +15 -0
- package/lib/ds-ng.component.d.ts +5 -0
- package/lib/ds-ng.service.d.ts +6 -0
- package/lib/services/calendar.service.d.ts +15 -0
- package/lib/services/index.d.ts +2 -0
- package/lib/services/native-modal.service.d.ts +18 -0
- package/lib/services/notification.service.d.ts +20 -0
- package/lib/services/tabs.service.d.ts +13 -0
- package/lib/services/theme.service.d.ts +11 -0
- package/lib/services/toast.service.d.ts +9 -0
- package/lib/services/user/profile.service.d.ts +9 -0
- package/lib/types/colors.d.ts +2 -0
- package/lib/types/index.d.ts +127 -0
- package/lib/utils/countryCodes.d.ts +7 -0
- package/lib/utils/currencyFormat.d.ts +1 -0
- package/lib/utils/dropdown.d.ts +6 -0
- package/lib/utils/formControl.d.ts +7 -0
- package/lib/utils/timestreamFilters.d.ts +2 -0
- package/lib/utils/utils.d.ts +12 -0
- package/package.json +4 -2
- package/public-api.d.ts +142 -0
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, ViewEncapsulation, HostListener, model, input, ViewChild, TemplateRef, output, computed, signal, effect, } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { DateTime, Interval } from 'luxon';
|
|
4
|
+
import { BmbCalendarTemplateWeekComponent } from './common/bmb-calendar-template-week/bmb-calendar-template-week.component';
|
|
5
|
+
import { BmbCalendarTemplateDayComponent } from './common/bmb-calendar-template-day/bmb-calendar-template-day.component';
|
|
6
|
+
import { BmbCalendarTemplateMonthComponent } from './common/bmb-calendar-template-month/bmb-calendar-template-month.component';
|
|
7
|
+
import { BmbCalendarHeaderComponent } from './common/bmb-calendar-header/bmb-calendar-header.component';
|
|
8
|
+
import { BmbCalendarTemplateMobileComponent } from './common/bmb-calendar-template-mobile/bmb-calendar-template-mobile.component';
|
|
9
|
+
import { BmbLoaderComponent } from '../bmb-loader/bmb-loader.component';
|
|
10
|
+
import { getWeekDays, getMonthDays, DEFAULT_DATE_FORMAT } from './utils';
|
|
11
|
+
import { BmbBadgeComponent } from '../bmb-badge/bmb-badge.component';
|
|
12
|
+
import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
|
|
13
|
+
import { BmbCheckboxComponent } from '../bmb-checkbox/bmb-checkbox.component';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
import * as i1 from "../../services/calendar.service";
|
|
16
|
+
import * as i2 from "../../services/native-modal.service";
|
|
17
|
+
import * as i3 from "@angular/common";
|
|
18
|
+
import * as i4 from "@angular/forms";
|
|
19
|
+
const parseFromFormat = (dateString, format) => {
|
|
20
|
+
if (format.toLowerCase() === 'iso')
|
|
21
|
+
return DateTime.fromISO(dateString);
|
|
22
|
+
return DateTime.fromFormat(dateString, format);
|
|
23
|
+
};
|
|
24
|
+
export class BmbCalendarComponent {
|
|
25
|
+
resize() {
|
|
26
|
+
if (window.innerWidth < 1000) {
|
|
27
|
+
this.view.set('day');
|
|
28
|
+
this.isMobileHeader = true;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
this.isMobileHeader = false;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
constructor(eventsSignal, modalService) {
|
|
35
|
+
this.eventsSignal = eventsSignal;
|
|
36
|
+
this.modalService = modalService;
|
|
37
|
+
this.view = model('week'); // internal
|
|
38
|
+
this.filters = model({});
|
|
39
|
+
this.calendarTimezone = input(Intl.DateTimeFormat().resolvedOptions().timeZone);
|
|
40
|
+
this.clientTimezone = input(Intl.DateTimeFormat().resolvedOptions().timeZone);
|
|
41
|
+
this.lang = input('es-MX');
|
|
42
|
+
this.height = input('100%');
|
|
43
|
+
this.startBusinessHour = input(8);
|
|
44
|
+
this.calendarTitle = input('Mi horario');
|
|
45
|
+
this.dateFormat = input(DEFAULT_DATE_FORMAT);
|
|
46
|
+
this.events = computed(() => this.eventsSignal.getEventList());
|
|
47
|
+
this.showFilterButton = input(false);
|
|
48
|
+
this.visibleDate = model(DateTime.now()); // internal
|
|
49
|
+
this.currentDate = input(''); // Deprecated
|
|
50
|
+
this.onDateChange = output();
|
|
51
|
+
this.onClose = output();
|
|
52
|
+
this.selectedWeek = computed(() => this.visibleDate().weekNumber);
|
|
53
|
+
this.weekNumber = computed(() => this.visibleDate().weekNumber);
|
|
54
|
+
this.renderWeekDays = computed(() => getWeekDays(this.visibleDate()));
|
|
55
|
+
this.isLoading = computed(() => this.eventsSignal.getIsLoading());
|
|
56
|
+
this.selectedEvent = null;
|
|
57
|
+
this.isMobileHeader = false;
|
|
58
|
+
this.orderedEvents = computed(() => {
|
|
59
|
+
const weeks = this.events().reduce((acc, event) => {
|
|
60
|
+
const startDate = parseFromFormat(event.start, this.dateFormat());
|
|
61
|
+
const endDate = parseFromFormat(event.end, this.dateFormat());
|
|
62
|
+
const interval = Interval.fromDateTimes(startDate, endDate);
|
|
63
|
+
const week = startDate.weekNumber;
|
|
64
|
+
const stringDate = startDate.toFormat('yyyy-MM-dd');
|
|
65
|
+
if (!acc[week])
|
|
66
|
+
acc[week] = {};
|
|
67
|
+
if (!acc[week][stringDate])
|
|
68
|
+
acc[week][stringDate] = [];
|
|
69
|
+
acc[week][stringDate].push({ ...event, startDate, endDate, interval });
|
|
70
|
+
if (event.calendar &&
|
|
71
|
+
!acc.calendars?.some((cal) => cal === event.calendar)) {
|
|
72
|
+
acc.calendars?.push(event.calendar);
|
|
73
|
+
}
|
|
74
|
+
return acc;
|
|
75
|
+
}, { calendars: [] });
|
|
76
|
+
const orderedDates = {};
|
|
77
|
+
for (const week in weeks) {
|
|
78
|
+
if (week === 'calendars') {
|
|
79
|
+
orderedDates[week] = weeks[week];
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
orderedDates[week] = {};
|
|
83
|
+
for (const date in weeks[week]) {
|
|
84
|
+
orderedDates[week][date] = weeks[week][date].sort((a, b) => {
|
|
85
|
+
const aDate = a.startDate ?? DateTime.invalid('Invalid Date');
|
|
86
|
+
const bDate = b.startDate ?? DateTime.invalid('Invalid Date');
|
|
87
|
+
return aDate <= bDate ? -1 : 1;
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return orderedDates;
|
|
93
|
+
});
|
|
94
|
+
this.filteredEvents = computed(() => {
|
|
95
|
+
const newEvents = {};
|
|
96
|
+
for (const week in this.orderedEvents()) {
|
|
97
|
+
if (week !== 'calendars') {
|
|
98
|
+
newEvents[week] = {};
|
|
99
|
+
for (const date in this.orderedEvents()[week]) {
|
|
100
|
+
newEvents[week][date] = this.orderedEvents()[week][date].map((event) => ({
|
|
101
|
+
...event,
|
|
102
|
+
isVisible: Object.keys(this.filters()).length === 0 ||
|
|
103
|
+
this.filters()[event.calendar || 'Default'] !== false,
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
newEvents.calendars = this.orderedEvents().calendars;
|
|
109
|
+
return newEvents;
|
|
110
|
+
});
|
|
111
|
+
this.filterModalId = signal(null);
|
|
112
|
+
this.calendarForm = new FormGroup({});
|
|
113
|
+
this.currentTime = signal(DateTime.now());
|
|
114
|
+
effect(() => {
|
|
115
|
+
const calendars = this.filteredEvents().calendars || [];
|
|
116
|
+
calendars.forEach((calendar) => {
|
|
117
|
+
this.calendarForm.addControl(calendar, new FormControl(this.filters()[calendar] || true));
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
ngOnDestroy() {
|
|
122
|
+
if (this.timerId) {
|
|
123
|
+
clearInterval(this.timerId);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
ngAfterViewInit() {
|
|
127
|
+
if (window.innerWidth < 1000) {
|
|
128
|
+
this.view.set('day');
|
|
129
|
+
this.isMobileHeader = true;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
ngOnInit() {
|
|
133
|
+
this.view.update((value) => (window.innerWidth < 1000 ? 'day' : value));
|
|
134
|
+
this.timerId = setInterval(() => {
|
|
135
|
+
this.updateTime();
|
|
136
|
+
}, 60000); // Actualiza cada 60000 milisegundos (1 minuto)
|
|
137
|
+
}
|
|
138
|
+
updateTime() {
|
|
139
|
+
this.currentTime.set(DateTime.now());
|
|
140
|
+
}
|
|
141
|
+
handleDateChange(range, now) {
|
|
142
|
+
this.view.set(range);
|
|
143
|
+
let visibleDates = [];
|
|
144
|
+
switch (range) {
|
|
145
|
+
case 'day':
|
|
146
|
+
visibleDates = getMonthDays(now).map((date) => date.toISO());
|
|
147
|
+
break;
|
|
148
|
+
case 'week':
|
|
149
|
+
visibleDates = getWeekDays(now).map((date) => date.toISO());
|
|
150
|
+
break;
|
|
151
|
+
case 'month':
|
|
152
|
+
visibleDates = getMonthDays(now).map((date) => date.toISO());
|
|
153
|
+
break;
|
|
154
|
+
default:
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
this.onDateChange.emit({
|
|
158
|
+
range,
|
|
159
|
+
now: now.toISO(),
|
|
160
|
+
visibleDates,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
handleCurrentDateChange(newDate) {
|
|
164
|
+
this.visibleDate.set(newDate);
|
|
165
|
+
}
|
|
166
|
+
getDayEvents() {
|
|
167
|
+
const visibleDateStr = this.visibleDate().toFormat('yyyy-MM-dd');
|
|
168
|
+
const events = this.filteredEvents()[this.selectedWeek()]?.[visibleDateStr] ?? [];
|
|
169
|
+
return events;
|
|
170
|
+
}
|
|
171
|
+
handleSelectEvent(newEvent) {
|
|
172
|
+
const { event } = newEvent;
|
|
173
|
+
const title = event.modalTitle ?? event.title;
|
|
174
|
+
const modalTitle = event.status === 'disabled' ? `(Cancelado) ${title}` : title;
|
|
175
|
+
this.selectedEvent = event;
|
|
176
|
+
const data = {
|
|
177
|
+
title: modalTitle,
|
|
178
|
+
subtitle: event.subtitle,
|
|
179
|
+
content: this.detailContent,
|
|
180
|
+
size: 'small',
|
|
181
|
+
};
|
|
182
|
+
this.modalService.openModal(data);
|
|
183
|
+
}
|
|
184
|
+
isAnEventSelected(event) {
|
|
185
|
+
return !!event;
|
|
186
|
+
}
|
|
187
|
+
getHeight(height) {
|
|
188
|
+
if (typeof height === 'number')
|
|
189
|
+
return `${height}px`;
|
|
190
|
+
return height;
|
|
191
|
+
}
|
|
192
|
+
getDuration() {
|
|
193
|
+
if (!this.selectedEvent)
|
|
194
|
+
return '';
|
|
195
|
+
return `${DateTime.fromISO(this.selectedEvent.start).toFormat('hh:mm a')} - ${DateTime.fromISO(this.selectedEvent.end).toFormat('hh:mm a')}`;
|
|
196
|
+
}
|
|
197
|
+
handleClose() {
|
|
198
|
+
this.onClose.emit('close');
|
|
199
|
+
}
|
|
200
|
+
handleShowModalFilter() {
|
|
201
|
+
this.filterModalId.set(this.modalService.openModal({
|
|
202
|
+
title: 'Calendarios',
|
|
203
|
+
subtitle: 'Selecciona los calendarios que quieres ver',
|
|
204
|
+
content: this.modalTemplate,
|
|
205
|
+
size: 'x-small',
|
|
206
|
+
closeModalClicked: (event) => this.handleFormReset(event),
|
|
207
|
+
actions: [
|
|
208
|
+
{
|
|
209
|
+
buttonName: 'save',
|
|
210
|
+
appearance: 'primary',
|
|
211
|
+
label: 'Guardar',
|
|
212
|
+
action: () => this.handleApplyFilters(),
|
|
213
|
+
},
|
|
214
|
+
],
|
|
215
|
+
}));
|
|
216
|
+
}
|
|
217
|
+
handleFormReset(_) {
|
|
218
|
+
for (const calendar in this.calendarForm.controls) {
|
|
219
|
+
const value = Object.keys(this.filters()).length === 0 || !!this.filters()[calendar];
|
|
220
|
+
this.calendarForm.controls[calendar].setValue(value);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
handleApplyFilters() {
|
|
224
|
+
const selectedCalendars = Object.keys(this.calendarForm.controls).reduce((acc, calendar) => {
|
|
225
|
+
acc[calendar] = this.calendarForm.controls[calendar].value;
|
|
226
|
+
return acc;
|
|
227
|
+
}, {});
|
|
228
|
+
this.filters.set(selectedCalendars);
|
|
229
|
+
this.modalService.closeModal(this.filterModalId());
|
|
230
|
+
this.filterModalId.set(null);
|
|
231
|
+
}
|
|
232
|
+
getFormControl(name) {
|
|
233
|
+
return this.calendarForm.get(name);
|
|
234
|
+
}
|
|
235
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BmbCalendarComponent, deps: [{ token: i1.BmbCalendarService }, { token: i2.BmbNativeModalService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
236
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BmbCalendarComponent, isStandalone: true, selector: "bmb-calendar", inputs: { view: { classPropertyName: "view", publicName: "view", isSignal: true, isRequired: false, transformFunction: null }, filters: { classPropertyName: "filters", publicName: "filters", isSignal: true, isRequired: false, transformFunction: null }, calendarTimezone: { classPropertyName: "calendarTimezone", publicName: "calendarTimezone", isSignal: true, isRequired: false, transformFunction: null }, clientTimezone: { classPropertyName: "clientTimezone", publicName: "clientTimezone", isSignal: true, isRequired: false, transformFunction: null }, lang: { classPropertyName: "lang", publicName: "lang", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, startBusinessHour: { classPropertyName: "startBusinessHour", publicName: "startBusinessHour", isSignal: true, isRequired: false, transformFunction: null }, calendarTitle: { classPropertyName: "calendarTitle", publicName: "calendarTitle", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "dateFormat", isSignal: true, isRequired: false, transformFunction: null }, showFilterButton: { classPropertyName: "showFilterButton", publicName: "showFilterButton", isSignal: true, isRequired: false, transformFunction: null }, visibleDate: { classPropertyName: "visibleDate", publicName: "visibleDate", isSignal: true, isRequired: false, transformFunction: null }, currentDate: { classPropertyName: "currentDate", publicName: "currentDate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { view: "viewChange", filters: "filtersChange", visibleDate: "visibleDateChange", onDateChange: "onDateChange", onClose: "onClose" }, host: { listeners: { "window:resize": "resize($event)" } }, viewQueries: [{ propertyName: "detailContent", first: true, predicate: ["detailContent"], descendants: true, read: TemplateRef }, { propertyName: "modalTemplate", first: true, predicate: ["modalTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"bmb_calendar\" [ngStyle]=\"{ height: getHeight(height()) }\">\r\n @if (isMobileHeader) {\r\n <bmb-calendar-template-mobile\r\n [now]=\"visibleDate()\"\r\n [lang]=\"lang()\"\r\n [events]=\"filteredEvents()\"\r\n (onCurrentDateChange)=\"handleCurrentDateChange($event)\"\r\n [weekDays]=\"renderWeekDays()\"\r\n [calendarTitle]=\"calendarTitle()\"\r\n (onClose)=\"handleClose()\"\r\n (showFilters)=\"handleShowModalFilter()\"\r\n />\r\n } @else {\r\n <bmb-calendar-header\r\n [weekDays]=\"renderWeekDays()\"\r\n [lang]=\"lang()\"\r\n [view]=\"view()\"\r\n [currentDate]=\"visibleDate()\"\r\n (onRangeChange)=\"handleDateChange($event, visibleDate())\"\r\n (onCurrentDateChange)=\"handleCurrentDateChange($event)\"\r\n [showFilterButton]=\"showFilterButton()\"\r\n (showFilters)=\"handleShowModalFilter()\"\r\n />\r\n }\r\n @switch (view()) {\r\n @case (\"day\") {\r\n <bmb-calendar-template-day\r\n [now]=\"visibleDate()\"\r\n [events]=\"getDayEvents()\"\r\n (onSelectEvent)=\"handleSelectEvent($event)\"\r\n [currentTime]=\"currentTime()\"\r\n [startBusinessHour]=\"startBusinessHour()\"\r\n [dateFormat]=\"dateFormat()\"\r\n class=\"bmb_calendar-content\"\r\n />\r\n }\r\n @case (\"week\") {\r\n <bmb-calendar-template-week\r\n [weekDays]=\"renderWeekDays()\"\r\n [lang]=\"lang()\"\r\n [now]=\"visibleDate()\"\r\n [events]=\"filteredEvents()\"\r\n (onSelectEvent)=\"handleSelectEvent($event)\"\r\n [currentTime]=\"currentTime()\"\r\n [startBusinessHour]=\"startBusinessHour()\"\r\n [selectedWeek]=\"selectedWeek()\"\r\n class=\"bmb_calendar-content\"\r\n />\r\n }\r\n @case (\"month\") {\r\n <bmb-calendar-template-month\r\n [now]=\"visibleDate()\"\r\n [events]=\"filteredEvents()\"\r\n (onSelectEvent)=\"handleSelectEvent($event)\"\r\n class=\"bmb_calendar-content\"\r\n />\r\n }\r\n @default {\r\n <bmb-calendar-template-week\r\n [weekDays]=\"renderWeekDays()\"\r\n [lang]=\"lang()\"\r\n [now]=\"visibleDate()\"\r\n [events]=\"filteredEvents()\"\r\n class=\"bmb_calendar-content\"\r\n />\r\n }\r\n }\r\n\r\n @if (isLoading()) {\r\n <div class=\"bmb_calendar-loader\">\r\n <bmb-loader [showInline]=\"true\" />\r\n </div>\r\n }\r\n</div>\r\n\r\n<ng-template #detailContent>\r\n @if (selectedEvent) {\r\n <section>\r\n @if (selectedEvent.tags?.length) {\r\n <p style=\"display: flex; flex-wrap: wrap; gap: 0.5rem\">\r\n @for (item of selectedEvent.tags; track $index) {\r\n <bmb-badge [text]=\"item.text\" [appearance]=\"item.appearance\" />\r\n }\r\n </p>\r\n }\r\n @if (selectedEvent.title) {\r\n <p class=\"bmb_calendar-event-modal-title\">{{ selectedEvent.title }}</p>\r\n }\r\n @if (selectedEvent.place) {\r\n <p class=\"bmb_calendar-event-modal-place\">{{ selectedEvent.place }}</p>\r\n }\r\n <div class=\"bmb_calendar-event-modal-duration\">{{ getDuration() }}</div>\r\n </section>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #modalTemplate>\r\n <form [formGroup]=\"calendarForm\">\r\n @for (item of filteredEvents().calendars; track $index) {\r\n <bmb-checkbox\r\n [inputId]=\"'checkbox_' + item\"\r\n [name]=\"'checkbox_' + item\"\r\n [label]=\"item\"\r\n [control]=\"getFormControl(item)\"\r\n />\r\n }\r\n </form>\r\n</ng-template>\r\n", styles: ["@font-face{font-family:Poppins-Thin;font-style:normal;font-weight:100;src:url(/assets/fonts/Poppins/Poppins-Thin.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Medium;font-style:normal;font-weight:500;src:url(/assets/fonts/Poppins/Poppins-Medium.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Semibold;font-style:normal;font-weight:600;src:url(/assets/fonts/Poppins/Poppins-SemiBold.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_calendar{background-color:var(--containers-background);position:relative;overflow:hidden;display:flex;flex-flow:column}@media (min-width: 1001px){.bmb_calendar{padding:var(--bmb-spacing-xl);background-color:var(--containers-main)}}.bmb_calendar-detail-header{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:var(--bmb-spacing-n) var(--bmb-spacing-none);border-bottom:.0625rem solid var(--general_contrasts-25);position:sticky;top:0;z-index:1;background-color:var(--containers-main)}@media (max-width: 999px){.bmb_calendar-detail-header{display:none}}.bmb_calendar-detail-header h2{font-family:Poppins-Medium,sans-serif;font-size:.75rem;font-weight:400}.bmb_calendar-detail-header h2:first-letter .bmb-first-letter{text-transform:capitalize}.bmb_calendar-detail-header span{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.bmb_calendar-body{position:relative}.bmb_calendar-col{flex:1;height:fit-content;border-left:.0625rem solid var(--containers-main)}@media (min-width: 1001px){.bmb_calendar-col{border-left:.0625rem solid var(--general_contrasts-25)}}.bmb_calendar-col-today{background-color:var(--general_contrasts-25)}.bmb_calendar-row-body{min-height:7.5rem;border-bottom:.0625rem solid var(--containers-main);position:relative}@media (min-width: 1001px){.bmb_calendar-row-body{border-bottom:.0625rem solid var(--general_contrasts-25)}}.bmb_calendar-row-body:before{content:\"\";position:absolute;top:50%;left:0;width:100%;border-bottom:.0625rem dashed var(--containers-main)}@media (min-width: 1001px){.bmb_calendar-row-body:before{display:none}}.bmb_calendar-week-view,.bmb_calendar-day-view{display:flex;justify-content:space-between}.bmb_calendar-loader{display:flex;height:100%;position:absolute;top:0;width:100%;left:0;justify-content:center;align-items:center}.bmb_calendar-content{flex:1 0 0%;overflow:hidden}.bmb_calendar-event-modal-title{overflow:hidden;text-overflow:ellipsis;white-space:wrap;font-family:Poppins-Medium,sans-serif;font-size:1rem}.bmb_calendar-event-modal-detail,.bmb_calendar-event-modal-place,.bmb_calendar-event-modal-duration{font-family:Poppins-Regular,sans-serif;font-size:.875rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: BmbCalendarTemplateDayComponent, selector: "bmb-calendar-template-day", inputs: ["lang", "now", "events", "currentTime", "startBusinessHour", "dateFormat"], outputs: ["onSelectEvent"] }, { kind: "component", type: BmbCalendarTemplateWeekComponent, selector: "bmb-calendar-template-week", inputs: ["weekDays", "lang", "now", "dateFormat", "events", "currentTime", "startBusinessHour", "selectedWeek"], outputs: ["onSelectEvent"] }, { kind: "component", type: BmbCalendarTemplateMonthComponent, selector: "bmb-calendar-template-month", inputs: ["lang", "now", "events"], outputs: ["onSelectEvent"] }, { kind: "component", type: BmbCalendarHeaderComponent, selector: "bmb-calendar-header", inputs: ["weekDays", "lang", "view", "currentDate", "showFilterButton"], outputs: ["onRangeChange", "onCurrentDateChange", "showFilters"] }, { kind: "component", type: BmbCalendarTemplateMobileComponent, selector: "bmb-calendar-template-mobile", inputs: ["weekDays", "now", "lang", "events", "calendarTitle"], outputs: ["onClose", "onCurrentDateChange", "showFilters"] }, { kind: "component", type: BmbBadgeComponent, selector: "bmb-badge", inputs: ["appearance", "text", "container"] }, { kind: "component", type: BmbLoaderComponent, selector: "bmb-loader", inputs: ["appearance", "title", "icon", "subtitle", "overlay", "isVisible", "errorState", "actions", "buttonPrimary", "buttonSecondary", "showInline"], outputs: ["onButtonPrimary", "onButtonSecondary"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: BmbCheckboxComponent, selector: "bmb-checkbox", inputs: ["name", "id", "disabled", "required", "value", "label", "labelPosition", "ariaDescribedby", "ariaLabel", "ariaLabelledby", "errorMessage", "helperMessage", "customValidation", "control", "checked", "showError", "indeterminate", "inputId"], outputs: ["controlChange", "checkedChange", "showErrorChange", "indeterminateChange", "inputIdChange", "change"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
237
|
+
}
|
|
238
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BmbCalendarComponent, decorators: [{
|
|
239
|
+
type: Component,
|
|
240
|
+
args: [{ selector: 'bmb-calendar', standalone: true, imports: [
|
|
241
|
+
CommonModule,
|
|
242
|
+
BmbCalendarTemplateDayComponent,
|
|
243
|
+
BmbCalendarTemplateWeekComponent,
|
|
244
|
+
BmbCalendarTemplateMonthComponent,
|
|
245
|
+
BmbCalendarHeaderComponent,
|
|
246
|
+
BmbCalendarTemplateMobileComponent,
|
|
247
|
+
BmbBadgeComponent,
|
|
248
|
+
BmbLoaderComponent,
|
|
249
|
+
ReactiveFormsModule,
|
|
250
|
+
BmbCheckboxComponent,
|
|
251
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"bmb_calendar\" [ngStyle]=\"{ height: getHeight(height()) }\">\r\n @if (isMobileHeader) {\r\n <bmb-calendar-template-mobile\r\n [now]=\"visibleDate()\"\r\n [lang]=\"lang()\"\r\n [events]=\"filteredEvents()\"\r\n (onCurrentDateChange)=\"handleCurrentDateChange($event)\"\r\n [weekDays]=\"renderWeekDays()\"\r\n [calendarTitle]=\"calendarTitle()\"\r\n (onClose)=\"handleClose()\"\r\n (showFilters)=\"handleShowModalFilter()\"\r\n />\r\n } @else {\r\n <bmb-calendar-header\r\n [weekDays]=\"renderWeekDays()\"\r\n [lang]=\"lang()\"\r\n [view]=\"view()\"\r\n [currentDate]=\"visibleDate()\"\r\n (onRangeChange)=\"handleDateChange($event, visibleDate())\"\r\n (onCurrentDateChange)=\"handleCurrentDateChange($event)\"\r\n [showFilterButton]=\"showFilterButton()\"\r\n (showFilters)=\"handleShowModalFilter()\"\r\n />\r\n }\r\n @switch (view()) {\r\n @case (\"day\") {\r\n <bmb-calendar-template-day\r\n [now]=\"visibleDate()\"\r\n [events]=\"getDayEvents()\"\r\n (onSelectEvent)=\"handleSelectEvent($event)\"\r\n [currentTime]=\"currentTime()\"\r\n [startBusinessHour]=\"startBusinessHour()\"\r\n [dateFormat]=\"dateFormat()\"\r\n class=\"bmb_calendar-content\"\r\n />\r\n }\r\n @case (\"week\") {\r\n <bmb-calendar-template-week\r\n [weekDays]=\"renderWeekDays()\"\r\n [lang]=\"lang()\"\r\n [now]=\"visibleDate()\"\r\n [events]=\"filteredEvents()\"\r\n (onSelectEvent)=\"handleSelectEvent($event)\"\r\n [currentTime]=\"currentTime()\"\r\n [startBusinessHour]=\"startBusinessHour()\"\r\n [selectedWeek]=\"selectedWeek()\"\r\n class=\"bmb_calendar-content\"\r\n />\r\n }\r\n @case (\"month\") {\r\n <bmb-calendar-template-month\r\n [now]=\"visibleDate()\"\r\n [events]=\"filteredEvents()\"\r\n (onSelectEvent)=\"handleSelectEvent($event)\"\r\n class=\"bmb_calendar-content\"\r\n />\r\n }\r\n @default {\r\n <bmb-calendar-template-week\r\n [weekDays]=\"renderWeekDays()\"\r\n [lang]=\"lang()\"\r\n [now]=\"visibleDate()\"\r\n [events]=\"filteredEvents()\"\r\n class=\"bmb_calendar-content\"\r\n />\r\n }\r\n }\r\n\r\n @if (isLoading()) {\r\n <div class=\"bmb_calendar-loader\">\r\n <bmb-loader [showInline]=\"true\" />\r\n </div>\r\n }\r\n</div>\r\n\r\n<ng-template #detailContent>\r\n @if (selectedEvent) {\r\n <section>\r\n @if (selectedEvent.tags?.length) {\r\n <p style=\"display: flex; flex-wrap: wrap; gap: 0.5rem\">\r\n @for (item of selectedEvent.tags; track $index) {\r\n <bmb-badge [text]=\"item.text\" [appearance]=\"item.appearance\" />\r\n }\r\n </p>\r\n }\r\n @if (selectedEvent.title) {\r\n <p class=\"bmb_calendar-event-modal-title\">{{ selectedEvent.title }}</p>\r\n }\r\n @if (selectedEvent.place) {\r\n <p class=\"bmb_calendar-event-modal-place\">{{ selectedEvent.place }}</p>\r\n }\r\n <div class=\"bmb_calendar-event-modal-duration\">{{ getDuration() }}</div>\r\n </section>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #modalTemplate>\r\n <form [formGroup]=\"calendarForm\">\r\n @for (item of filteredEvents().calendars; track $index) {\r\n <bmb-checkbox\r\n [inputId]=\"'checkbox_' + item\"\r\n [name]=\"'checkbox_' + item\"\r\n [label]=\"item\"\r\n [control]=\"getFormControl(item)\"\r\n />\r\n }\r\n </form>\r\n</ng-template>\r\n", styles: ["@font-face{font-family:Poppins-Thin;font-style:normal;font-weight:100;src:url(/assets/fonts/Poppins/Poppins-Thin.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Medium;font-style:normal;font-weight:500;src:url(/assets/fonts/Poppins/Poppins-Medium.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Semibold;font-style:normal;font-weight:600;src:url(/assets/fonts/Poppins/Poppins-SemiBold.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_calendar{background-color:var(--containers-background);position:relative;overflow:hidden;display:flex;flex-flow:column}@media (min-width: 1001px){.bmb_calendar{padding:var(--bmb-spacing-xl);background-color:var(--containers-main)}}.bmb_calendar-detail-header{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:var(--bmb-spacing-n) var(--bmb-spacing-none);border-bottom:.0625rem solid var(--general_contrasts-25);position:sticky;top:0;z-index:1;background-color:var(--containers-main)}@media (max-width: 999px){.bmb_calendar-detail-header{display:none}}.bmb_calendar-detail-header h2{font-family:Poppins-Medium,sans-serif;font-size:.75rem;font-weight:400}.bmb_calendar-detail-header h2:first-letter .bmb-first-letter{text-transform:capitalize}.bmb_calendar-detail-header span{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.bmb_calendar-body{position:relative}.bmb_calendar-col{flex:1;height:fit-content;border-left:.0625rem solid var(--containers-main)}@media (min-width: 1001px){.bmb_calendar-col{border-left:.0625rem solid var(--general_contrasts-25)}}.bmb_calendar-col-today{background-color:var(--general_contrasts-25)}.bmb_calendar-row-body{min-height:7.5rem;border-bottom:.0625rem solid var(--containers-main);position:relative}@media (min-width: 1001px){.bmb_calendar-row-body{border-bottom:.0625rem solid var(--general_contrasts-25)}}.bmb_calendar-row-body:before{content:\"\";position:absolute;top:50%;left:0;width:100%;border-bottom:.0625rem dashed var(--containers-main)}@media (min-width: 1001px){.bmb_calendar-row-body:before{display:none}}.bmb_calendar-week-view,.bmb_calendar-day-view{display:flex;justify-content:space-between}.bmb_calendar-loader{display:flex;height:100%;position:absolute;top:0;width:100%;left:0;justify-content:center;align-items:center}.bmb_calendar-content{flex:1 0 0%;overflow:hidden}.bmb_calendar-event-modal-title{overflow:hidden;text-overflow:ellipsis;white-space:wrap;font-family:Poppins-Medium,sans-serif;font-size:1rem}.bmb_calendar-event-modal-detail,.bmb_calendar-event-modal-place,.bmb_calendar-event-modal-duration{font-family:Poppins-Regular,sans-serif;font-size:.875rem}\n"] }]
|
|
252
|
+
}], ctorParameters: () => [{ type: i1.BmbCalendarService }, { type: i2.BmbNativeModalService }], propDecorators: { detailContent: [{
|
|
253
|
+
type: ViewChild,
|
|
254
|
+
args: ['detailContent', { read: TemplateRef }]
|
|
255
|
+
}], modalTemplate: [{
|
|
256
|
+
type: ViewChild,
|
|
257
|
+
args: ['modalTemplate']
|
|
258
|
+
}], resize: [{
|
|
259
|
+
type: HostListener,
|
|
260
|
+
args: ['window:resize', ['$event']]
|
|
261
|
+
}] } });
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWNhbGVuZGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItY2FsZW5kYXIvYm1iLWNhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItY2FsZW5kYXIvYm1iLWNhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osS0FBSyxFQUNMLEtBQUssRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUdOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDNUgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDekgsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDL0gsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDeEcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFDbEksT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFPeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFJekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1B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QkFBMEI7d0JBQzFCLGtDQUFrQzt3QkFDbEMsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3FCQUNyQixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTsySEEwR3JDLGFBQWE7c0JBRFosU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUVyQixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBR2xCLE1BQU07c0JBRGIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgbW9kZWwsXHJcbiAgaW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIG91dHB1dCxcclxuICBjb21wdXRlZCxcclxuICBzaWduYWwsXHJcbiAgT25Jbml0LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgZWZmZWN0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBEYXRlVGltZSwgSW50ZXJ2YWwgfSBmcm9tICdsdXhvbic7XHJcbmltcG9ydCB7IEJtYkNhbGVuZGFyVGVtcGxhdGVXZWVrQ29tcG9uZW50IH0gZnJvbSAnLi9jb21tb24vYm1iLWNhbGVuZGFyLXRlbXBsYXRlLXdlZWsvYm1iLWNhbGVuZGFyLXRlbXBsYXRlLXdlZWsuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQm1iQ2FsZW5kYXJUZW1wbGF0ZURheUNvbXBvbmVudCB9IGZyb20gJy4vY29tbW9uL2JtYi1jYWxlbmRhci10ZW1wbGF0ZS1kYXkvYm1iLWNhbGVuZGFyLXRlbXBsYXRlLWRheS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCbWJDYWxlbmRhclRlbXBsYXRlTW9udGhDb21wb25lbnQgfSBmcm9tICcuL2NvbW1vbi9ibWItY2FsZW5kYXItdGVtcGxhdGUtbW9udGgvYm1iLWNhbGVuZGFyLXRlbXBsYXRlLW1vbnRoLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJtYkNhbGVuZGFySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21tb24vYm1iLWNhbGVuZGFyLWhlYWRlci9ibWItY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJtYkNhbGVuZGFyVGVtcGxhdGVNb2JpbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbW1vbi9ibWItY2FsZW5kYXItdGVtcGxhdGUtbW9iaWxlL2JtYi1jYWxlbmRhci10ZW1wbGF0ZS1tb2JpbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQm1iTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWxvYWRlci9ibWItbG9hZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgSUJtYkNhbGVuZGFyRXZlbnQsXHJcbiAgSUJtYkNhbGVuZGFyRXZlbnRDbGljayxcclxuICBJQm1iQ2FsZW5kYXJWaWV3LFxyXG4gIElCbWJQYXJzZWREYXRlcyxcclxufSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgZ2V0V2Vla0RheXMsIGdldE1vbnRoRGF5cywgREVGQVVMVF9EQVRFX0ZPUk1BVCB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBCbWJDYWxlbmRhclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYWxlbmRhci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQm1iTmF0aXZlTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF0aXZlLW1vZGFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb2RhbERhdGFDb25maWcgfSBmcm9tICcuLi9ibWItbW9kYWwvYm1iLW1vZGFsLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEJtYkJhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWJhZGdlL2JtYi1iYWRnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCbWJDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1jaGVja2JveC9ibWItY2hlY2tib3guY29tcG9uZW50JztcclxuXHJcbmNvbnN0IHBhcnNlRnJvbUZvcm1hdCA9IChkYXRlU3RyaW5nOiBzdHJpbmcsIGZvcm1hdDogc3RyaW5nKTogRGF0ZVRpbWUgPT4ge1xyXG4gIGlmIChmb3JtYXQudG9Mb3dlckNhc2UoKSA9PT0gJ2lzbycpIHJldHVybiBEYXRlVGltZS5mcm9tSVNPKGRhdGVTdHJpbmcpO1xyXG5cclxuICByZXR1cm4gRGF0ZVRpbWUuZnJvbUZvcm1hdChkYXRlU3RyaW5nLCBmb3JtYXQpO1xyXG59O1xyXG5cclxuZXhwb3J0IHtcclxuICBJQm1iQ2FsZW5kYXJFdmVudCxcclxuICBJQm1iQ2FsZW5kYXJFdmVudENsaWNrLFxyXG4gIElCbWJFdmVudFR5cGUsXHJcbn0gZnJvbSAnLi90eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JtYi1jYWxlbmRhcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBCbWJDYWxlbmRhclRlbXBsYXRlRGF5Q29tcG9uZW50LFxyXG4gICAgQm1iQ2FsZW5kYXJUZW1wbGF0ZVdlZWtDb21wb25lbnQsXHJcbiAgICBCbWJDYWxlbmRhclRlbXBsYXRlTW9udGhDb21wb25lbnQsXHJcbiAgICBCbWJDYWxlbmRhckhlYWRlckNvbXBvbmVudCxcclxuICAgIEJtYkNhbGVuZGFyVGVtcGxhdGVNb2JpbGVDb21wb25lbnQsXHJcbiAgICBCbWJCYWRnZUNvbXBvbmVudCxcclxuICAgIEJtYkxvYWRlckNvbXBvbmVudCxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBCbWJDaGVja2JveENvbXBvbmVudCxcclxuICBdLFxyXG4gIHN0eWxlVXJsOiAnLi9ibWItY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ibWItY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCbWJDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgdmlldyA9IG1vZGVsPElCbWJDYWxlbmRhclZpZXc+KCd3ZWVrJyk7IC8vIGludGVybmFsXHJcbiAgZmlsdGVycyA9IG1vZGVsPHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9Pih7fSk7XHJcbiAgY2FsZW5kYXJUaW1lem9uZSA9IGlucHV0PHN0cmluZz4oXHJcbiAgICBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmUsXHJcbiAgKTtcclxuICBjbGllbnRUaW1lem9uZSA9IGlucHV0PHN0cmluZz4oXHJcbiAgICBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmUsXHJcbiAgKTtcclxuICBsYW5nID0gaW5wdXQ8c3RyaW5nPignZXMtTVgnKTtcclxuICBoZWlnaHQgPSBpbnB1dDxudW1iZXIgfCBzdHJpbmc+KCcxMDAlJyk7XHJcbiAgc3RhcnRCdXNpbmVzc0hvdXIgPSBpbnB1dDxudW1iZXI+KDgpO1xyXG4gIGNhbGVuZGFyVGl0bGUgPSBpbnB1dDxzdHJpbmc+KCdNaSBob3JhcmlvJyk7XHJcbiAgZGF0ZUZvcm1hdCA9IGlucHV0PHN0cmluZz4oREVGQVVMVF9EQVRFX0ZPUk1BVCk7XHJcbiAgZXZlbnRzID0gY29tcHV0ZWQ8SUJtYkNhbGVuZGFyRXZlbnRbXT4oKCkgPT5cclxuICAgIHRoaXMuZXZlbnRzU2lnbmFsLmdldEV2ZW50TGlzdCgpLFxyXG4gICk7XHJcbiAgc2hvd0ZpbHRlckJ1dHRvbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICB2aXNpYmxlRGF0ZSA9IG1vZGVsPERhdGVUaW1lPihEYXRlVGltZS5ub3coKSk7IC8vIGludGVybmFsXHJcblxyXG4gIGN1cnJlbnREYXRlID0gaW5wdXQ8c3RyaW5nPignJyk7IC8vIERlcHJlY2F0ZWRcclxuXHJcbiAgb25EYXRlQ2hhbmdlID0gb3V0cHV0PGFueT4oKTtcclxuICBvbkNsb3NlID0gb3V0cHV0PGFueT4oKTtcclxuXHJcbiAgc2VsZWN0ZWRXZWVrID0gY29tcHV0ZWQoKCkgPT4gdGhpcy52aXNpYmxlRGF0ZSgpLndlZWtOdW1iZXIpO1xyXG4gIHdlZWtOdW1iZXIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnZpc2libGVEYXRlKCkud2Vla051bWJlcik7XHJcbiAgcmVuZGVyV2Vla0RheXMgPSBjb21wdXRlZCgoKSA9PiBnZXRXZWVrRGF5cyh0aGlzLnZpc2libGVEYXRlKCkpKTtcclxuICBpc0xvYWRpbmcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmV2ZW50c1NpZ25hbC5nZXRJc0xvYWRpbmcoKSk7XHJcbiAgc2VsZWN0ZWRFdmVudDogSUJtYkNhbGVuZGFyRXZlbnQgfCBudWxsID0gbnVsbDtcclxuICBpc01vYmlsZUhlYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG9yZGVyZWRFdmVudHMgPSBjb21wdXRlZDxJQm1iUGFyc2VkRGF0ZXM+KCgpID0+IHtcclxuICAgIGNvbnN0IHdlZWtzID0gdGhpcy5ldmVudHMoKS5yZWR1Y2UoXHJcbiAgICAgIChhY2M6IElCbWJQYXJzZWREYXRlcywgZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCBzdGFydERhdGUgPSBwYXJzZUZyb21Gb3JtYXQoZXZlbnQuc3RhcnQsIHRoaXMuZGF0ZUZvcm1hdCgpKTtcclxuICAgICAgICBjb25zdCBlbmREYXRlID0gcGFyc2VGcm9tRm9ybWF0KGV2ZW50LmVuZCwgdGhpcy5kYXRlRm9ybWF0KCkpO1xyXG4gICAgICAgIGNvbnN0IGludGVydmFsID0gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzdGFydERhdGUsIGVuZERhdGUpO1xyXG4gICAgICAgIGNvbnN0IHdlZWsgPSBzdGFydERhdGUud2Vla051bWJlcjtcclxuICAgICAgICBjb25zdCBzdHJpbmdEYXRlID0gc3RhcnREYXRlLnRvRm9ybWF0KCd5eXl5LU1NLWRkJyk7XHJcblxyXG4gICAgICAgIGlmICghYWNjW3dlZWtdKSBhY2Nbd2Vla10gPSB7fTtcclxuICAgICAgICBpZiAoIWFjY1t3ZWVrXVtzdHJpbmdEYXRlXSkgYWNjW3dlZWtdW3N0cmluZ0RhdGVdID0gW107XHJcbiAgICAgICAgYWNjW3dlZWtdW3N0cmluZ0RhdGVdLnB1c2goeyAuLi5ldmVudCwgc3RhcnREYXRlLCBlbmREYXRlLCBpbnRlcnZhbCB9KTtcclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZXZlbnQuY2FsZW5kYXIgJiZcclxuICAgICAgICAgICFhY2MuY2FsZW5kYXJzPy5zb21lKChjYWwpID0+IGNhbCA9PT0gZXZlbnQuY2FsZW5kYXIpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBhY2MuY2FsZW5kYXJzPy5wdXNoKGV2ZW50LmNhbGVuZGFyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgIH0sXHJcbiAgICAgIHsgY2FsZW5kYXJzOiBbXSB9IGFzIElCbWJQYXJzZWREYXRlcyxcclxuICAgICk7XHJcblxyXG4gICAgY29uc3Qgb3JkZXJlZERhdGVzID0ge30gYXMgSUJtYlBhcnNlZERhdGVzO1xyXG5cclxuICAgIGZvciAoY29uc3Qgd2VlayBpbiB3ZWVrcykge1xyXG4gICAgICBpZiAod2VlayA9PT0gJ2NhbGVuZGFycycpIHtcclxuICAgICAgICBvcmRlcmVkRGF0ZXNbd2Vla10gPSB3ZWVrc1t3ZWVrXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBvcmRlcmVkRGF0ZXNbd2Vla10gPSB7fTtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBkYXRlIGluIHdlZWtzW3dlZWtdKSB7XHJcbiAgICAgICAgICBvcmRlcmVkRGF0ZXNbd2Vla11bZGF0ZV0gPSB3ZWVrc1t3ZWVrXVtkYXRlXS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFEYXRlID0gYS5zdGFydERhdGUgPz8gRGF0ZVRpbWUuaW52YWxpZCgnSW52YWxpZCBEYXRlJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGJEYXRlID0gYi5zdGFydERhdGUgPz8gRGF0ZVRpbWUuaW52YWxpZCgnSW52YWxpZCBEYXRlJyk7XHJcbiAgICAgICAgICAgIHJldHVybiBhRGF0ZSA8PSBiRGF0ZSA/IC0xIDogMTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvcmRlcmVkRGF0ZXM7XHJcbiAgfSk7XHJcbiAgZmlsdGVyZWRFdmVudHMgPSBjb21wdXRlZDxJQm1iUGFyc2VkRGF0ZXM+KCgpID0+IHtcclxuICAgIGNvbnN0IG5ld0V2ZW50cyA9IHt9IGFzIElCbWJQYXJzZWREYXRlcztcclxuICAgIGZvciAoY29uc3Qgd2VlayBpbiB0aGlzLm9yZGVyZWRFdmVudHMoKSkge1xyXG4gICAgICBpZiAod2VlayAhPT0gJ2NhbGVuZGFycycpIHtcclxuICAgICAgICBuZXdFdmVudHNbd2Vla10gPSB7fTtcclxuICAgICAgICBmb3IgKGNvbnN0IGRhdGUgaW4gdGhpcy5vcmRlcmVkRXZlbnRzKClbd2Vla10pIHtcclxuICAgICAgICAgIG5ld0V2ZW50c1t3ZWVrXVtkYXRlXSA9IHRoaXMub3JkZXJlZEV2ZW50cygpW3dlZWtdW2RhdGVdLm1hcChcclxuICAgICAgICAgICAgKGV2ZW50KSA9PiAoe1xyXG4gICAgICAgICAgICAgIC4uLmV2ZW50LFxyXG4gICAgICAgICAgICAgIGlzVmlzaWJsZTpcclxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMuZmlsdGVycygpKS5sZW5ndGggPT09IDAgfHxcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVycygpW2V2ZW50LmNhbGVuZGFyIHx8ICdEZWZhdWx0J10gIT09IGZhbHNlLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmV3RXZlbnRzLmNhbGVuZGFycyA9IHRoaXMub3JkZXJlZEV2ZW50cygpLmNhbGVuZGFycztcclxuXHJcbiAgICByZXR1cm4gbmV3RXZlbnRzO1xyXG4gIH0pO1xyXG4gIGZpbHRlck1vZGFsSWQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XHJcbiAgY2FsZW5kYXJGb3JtOiBGb3JtR3JvdXA8eyBba2V5OiBzdHJpbmddOiBGb3JtQ29udHJvbDxhbnk+IH0+ID0gbmV3IEZvcm1Hcm91cChcclxuICAgIHt9LFxyXG4gICk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2RldGFpbENvbnRlbnQnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXHJcbiAgZGV0YWlsQ29udGVudD86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQFZpZXdDaGlsZCgnbW9kYWxUZW1wbGF0ZScpIG1vZGFsVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBwcml2YXRlIHJlc2l6ZSgpIHtcclxuICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8IDEwMDApIHtcclxuICAgICAgdGhpcy52aWV3LnNldCgnZGF5Jyk7XHJcbiAgICAgIHRoaXMuaXNNb2JpbGVIZWFkZXIgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pc01vYmlsZUhlYWRlciA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGV2ZW50c1NpZ25hbDogQm1iQ2FsZW5kYXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJtYk5hdGl2ZU1vZGFsU2VydmljZSxcclxuICApIHtcclxuICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNhbGVuZGFycyA9IHRoaXMuZmlsdGVyZWRFdmVudHMoKS5jYWxlbmRhcnMgfHwgW107XHJcbiAgICAgIGNhbGVuZGFycy5mb3JFYWNoKChjYWxlbmRhcikgPT4ge1xyXG4gICAgICAgIHRoaXMuY2FsZW5kYXJGb3JtLmFkZENvbnRyb2woXHJcbiAgICAgICAgICBjYWxlbmRhcixcclxuICAgICAgICAgIG5ldyBGb3JtQ29udHJvbCh0aGlzLmZpbHRlcnMoKVtjYWxlbmRhcl0gfHwgdHJ1ZSksXHJcbiAgICAgICAgKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGN1cnJlbnRUaW1lID0gc2lnbmFsPERhdGVUaW1lPihEYXRlVGltZS5ub3coKSk7XHJcbiAgcHJpdmF0ZSB0aW1lcklkOiBhbnk7XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMudGltZXJJZCkge1xyXG4gICAgICBjbGVhckludGVydmFsKHRoaXMudGltZXJJZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPCAxMDAwKSB7XHJcbiAgICAgIHRoaXMudmlldy5zZXQoJ2RheScpO1xyXG4gICAgICB0aGlzLmlzTW9iaWxlSGVhZGVyID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy52aWV3LnVwZGF0ZSgodmFsdWUpID0+ICh3aW5kb3cuaW5uZXJXaWR0aCA8IDEwMDAgPyAnZGF5JyA6IHZhbHVlKSk7XHJcblxyXG4gICAgdGhpcy50aW1lcklkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICB0aGlzLnVwZGF0ZVRpbWUoKTtcclxuICAgIH0sIDYwMDAwKTsgLy8gQWN0dWFsaXphIGNhZGEgNjAwMDAgbWlsaXNlZ3VuZG9zICgxIG1pbnV0bylcclxuICB9XHJcblxyXG4gIHVwZGF0ZVRpbWUoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRUaW1lLnNldChEYXRlVGltZS5ub3coKSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVEYXRlQ2hhbmdlKHJhbmdlOiBJQm1iQ2FsZW5kYXJWaWV3LCBub3c6IERhdGVUaW1lKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZXcuc2V0KHJhbmdlKTtcclxuICAgIGxldCB2aXNpYmxlRGF0ZXM6IChzdHJpbmcgfCBudWxsKVtdID0gW107XHJcblxyXG4gICAgc3dpdGNoIChyYW5nZSkge1xyXG4gICAgICBjYXNlICdkYXknOlxyXG4gICAgICAgIHZpc2libGVEYXRlcyA9IGdldE1vbnRoRGF5cyhub3cpLm1hcCgoZGF0ZSkgPT4gZGF0ZS50b0lTTygpKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ3dlZWsnOlxyXG4gICAgICAgIHZpc2libGVEYXRlcyA9IGdldFdlZWtEYXlzKG5vdykubWFwKChkYXRlKSA9PiBkYXRlLnRvSVNPKCkpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnbW9udGgnOlxyXG4gICAgICAgIHZpc2libGVEYXRlcyA9IGdldE1vbnRoRGF5cyhub3cpLm1hcCgoZGF0ZSkgPT4gZGF0ZS50b0lTTygpKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5vbkRhdGVDaGFuZ2UuZW1pdCh7XHJcbiAgICAgIHJhbmdlLFxyXG4gICAgICBub3c6IG5vdy50b0lTTygpLFxyXG4gICAgICB2aXNpYmxlRGF0ZXMsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUN1cnJlbnREYXRlQ2hhbmdlKG5ld0RhdGU6IERhdGVUaW1lKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpc2libGVEYXRlLnNldChuZXdEYXRlKTtcclxuICB9XHJcblxyXG4gIGdldERheUV2ZW50cygpOiBJQm1iQ2FsZW5kYXJFdmVudFtdIHtcclxuICAgIGNvbnN0IHZpc2libGVEYXRlU3RyID0gdGhpcy52aXNpYmxlRGF0ZSgpLnRvRm9ybWF0KCd5eXl5LU1NLWRkJyk7XHJcbiAgICBjb25zdCBldmVudHMgPVxyXG4gICAgICB0aGlzLmZpbHRlcmVkRXZlbnRzKClbdGhpcy5zZWxlY3RlZFdlZWsoKV0/Llt2aXNpYmxlRGF0ZVN0cl0gPz8gW107XHJcbiAgICByZXR1cm4gZXZlbnRzO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2VsZWN0RXZlbnQobmV3RXZlbnQ6IElCbWJDYWxlbmRhckV2ZW50Q2xpY2spOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgZXZlbnQgfSA9IG5ld0V2ZW50O1xyXG4gICAgY29uc3QgdGl0bGUgPSBldmVudC5tb2RhbFRpdGxlID8/IGV2ZW50LnRpdGxlO1xyXG4gICAgY29uc3QgbW9kYWxUaXRsZSA9XHJcbiAgICAgIGV2ZW50LnN0YXR1cyA9PT0gJ2Rpc2FibGVkJyA/IGAoQ2FuY2VsYWRvKSAke3RpdGxlfWAgOiB0aXRsZTtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkRXZlbnQgPSBldmVudDtcclxuXHJcbiAgICBjb25zdCBkYXRhOiBNb2RhbERhdGFDb25maWcgPSB7XHJcbiAgICAgIHRpdGxlOiBtb2RhbFRpdGxlLFxyXG4gICAgICBzdWJ0aXRsZTogZXZlbnQuc3VidGl0bGUsXHJcbiAgICAgIGNvbnRlbnQ6IHRoaXMuZGV0YWlsQ29udGVudCxcclxuICAgICAgc2l6ZTogJ3NtYWxsJyxcclxuICAgIH07XHJcbiAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuTW9kYWwoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBpc0FuRXZlbnRTZWxlY3RlZChldmVudDogSUJtYkNhbGVuZGFyRXZlbnRDbGljayB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIWV2ZW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0SGVpZ2h0KGhlaWdodDogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh0eXBlb2YgaGVpZ2h0ID09PSAnbnVtYmVyJykgcmV0dXJuIGAke2hlaWdodH1weGA7XHJcblxyXG4gICAgcmV0dXJuIGhlaWdodDtcclxuICB9XHJcblxyXG4gIGdldER1cmF0aW9uKCkge1xyXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkRXZlbnQpIHJldHVybiAnJztcclxuICAgIHJldHVybiBgJHtEYXRlVGltZS5mcm9tSVNPKHRoaXMuc2VsZWN0ZWRFdmVudC5zdGFydCkudG9Gb3JtYXQoJ2hoOm1tIGEnKX0gLSAke0RhdGVUaW1lLmZyb21JU08odGhpcy5zZWxlY3RlZEV2ZW50LmVuZCkudG9Gb3JtYXQoJ2hoOm1tIGEnKX1gO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2xvc2UoKSB7XHJcbiAgICB0aGlzLm9uQ2xvc2UuZW1pdCgnY2xvc2UnKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNob3dNb2RhbEZpbHRlcigpIHtcclxuICAgIHRoaXMuZmlsdGVyTW9kYWxJZC5zZXQoXHJcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW5Nb2RhbCh7XHJcbiAgICAgICAgdGl0bGU6ICdDYWxlbmRhcmlvcycsXHJcbiAgICAgICAgc3VidGl0bGU6ICdTZWxlY2Npb25hIGxvcyBjYWxlbmRhcmlvcyBxdWUgcXVpZXJlcyB2ZXInLFxyXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMubW9kYWxUZW1wbGF0ZSxcclxuICAgICAgICBzaXplOiAneC1zbWFsbCcsXHJcbiAgICAgICAgY2xvc2VNb2RhbENsaWNrZWQ6IChldmVudDogdW5rbm93bikgPT4gdGhpcy5oYW5kbGVGb3JtUmVzZXQoZXZlbnQpLFxyXG4gICAgICAgIGFjdGlvbnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYnV0dG9uTmFtZTogJ3NhdmUnLFxyXG4gICAgICAgICAgICBhcHBlYXJhbmNlOiAncHJpbWFyeScsXHJcbiAgICAgICAgICAgIGxhYmVsOiAnR3VhcmRhcicsXHJcbiAgICAgICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5oYW5kbGVBcHBseUZpbHRlcnMoKSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRm9ybVJlc2V0KF86IGFueSk6IHZvaWQge1xyXG4gICAgZm9yIChjb25zdCBjYWxlbmRhciBpbiB0aGlzLmNhbGVuZGFyRm9ybS5jb250cm9scykge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9XHJcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5maWx0ZXJzKCkpLmxlbmd0aCA9PT0gMCB8fCAhIXRoaXMuZmlsdGVycygpW2NhbGVuZGFyXTtcclxuICAgICAgdGhpcy5jYWxlbmRhckZvcm0uY29udHJvbHNbY2FsZW5kYXJdLnNldFZhbHVlKHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUFwcGx5RmlsdGVycygpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkQ2FsZW5kYXJzID0gT2JqZWN0LmtleXModGhpcy5jYWxlbmRhckZvcm0uY29udHJvbHMpLnJlZHVjZTx7XHJcbiAgICAgIFtrZXk6IHN0cmluZ106IGJvb2xlYW47XHJcbiAgICB9PigoYWNjLCBjYWxlbmRhcikgPT4ge1xyXG4gICAgICBhY2NbY2FsZW5kYXJdID0gdGhpcy5jYWxlbmRhckZvcm0uY29udHJvbHNbY2FsZW5kYXJdLnZhbHVlO1xyXG4gICAgICByZXR1cm4gYWNjO1xyXG4gICAgfSwge30pO1xyXG4gICAgdGhpcy5maWx0ZXJzLnNldChzZWxlY3RlZENhbGVuZGFycyk7XHJcbiAgICB0aGlzLm1vZGFsU2VydmljZS5jbG9zZU1vZGFsKHRoaXMuZmlsdGVyTW9kYWxJZCgpIGFzIHN0cmluZyk7XHJcbiAgICB0aGlzLmZpbHRlck1vZGFsSWQuc2V0KG51bGwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybUNvbnRyb2wobmFtZTogc3RyaW5nKTogRm9ybUNvbnRyb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuY2FsZW5kYXJGb3JtLmdldChuYW1lKSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImJtYl9jYWxlbmRhclwiIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBnZXRIZWlnaHQoaGVpZ2h0KCkpIH1cIj5cclxuICBAaWYgKGlzTW9iaWxlSGVhZGVyKSB7XHJcbiAgICA8Ym1iLWNhbGVuZGFyLXRlbXBsYXRlLW1vYmlsZVxyXG4gICAgICBbbm93XT1cInZpc2libGVEYXRlKClcIlxyXG4gICAgICBbbGFuZ109XCJsYW5nKClcIlxyXG4gICAgICBbZXZlbnRzXT1cImZpbHRlcmVkRXZlbnRzKClcIlxyXG4gICAgICAob25DdXJyZW50RGF0ZUNoYW5nZSk9XCJoYW5kbGVDdXJyZW50RGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgW3dlZWtEYXlzXT1cInJlbmRlcldlZWtEYXlzKClcIlxyXG4gICAgICBbY2FsZW5kYXJUaXRsZV09XCJjYWxlbmRhclRpdGxlKClcIlxyXG4gICAgICAob25DbG9zZSk9XCJoYW5kbGVDbG9zZSgpXCJcclxuICAgICAgKHNob3dGaWx0ZXJzKT1cImhhbmRsZVNob3dNb2RhbEZpbHRlcigpXCJcclxuICAgIC8+XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA8Ym1iLWNhbGVuZGFyLWhlYWRlclxyXG4gICAgICBbd2Vla0RheXNdPVwicmVuZGVyV2Vla0RheXMoKVwiXHJcbiAgICAgIFtsYW5nXT1cImxhbmcoKVwiXHJcbiAgICAgIFt2aWV3XT1cInZpZXcoKVwiXHJcbiAgICAgIFtjdXJyZW50RGF0ZV09XCJ2aXNpYmxlRGF0ZSgpXCJcclxuICAgICAgKG9uUmFuZ2VDaGFuZ2UpPVwiaGFuZGxlRGF0ZUNoYW5nZSgkZXZlbnQsIHZpc2libGVEYXRlKCkpXCJcclxuICAgICAgKG9uQ3VycmVudERhdGVDaGFuZ2UpPVwiaGFuZGxlQ3VycmVudERhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIFtzaG93RmlsdGVyQnV0dG9uXT1cInNob3dGaWx0ZXJCdXR0b24oKVwiXHJcbiAgICAgIChzaG93RmlsdGVycyk9XCJoYW5kbGVTaG93TW9kYWxGaWx0ZXIoKVwiXHJcbiAgICAvPlxyXG4gIH1cclxuICBAc3dpdGNoICh2aWV3KCkpIHtcclxuICAgIEBjYXNlIChcImRheVwiKSB7XHJcbiAgICAgIDxibWItY2FsZW5kYXItdGVtcGxhdGUtZGF5XHJcbiAgICAgICAgW25vd109XCJ2aXNpYmxlRGF0ZSgpXCJcclxuICAgICAgICBbZXZlbnRzXT1cImdldERheUV2ZW50cygpXCJcclxuICAgICAgICAob25TZWxlY3RFdmVudCk9XCJoYW5kbGVTZWxlY3RFdmVudCgkZXZlbnQpXCJcclxuICAgICAgICBbY3VycmVudFRpbWVdPVwiY3VycmVudFRpbWUoKVwiXHJcbiAgICAgICAgW3N0YXJ0QnVzaW5lc3NIb3VyXT1cInN0YXJ0QnVzaW5lc3NIb3VyKClcIlxyXG4gICAgICAgIFtkYXRlRm9ybWF0XT1cImRhdGVGb3JtYXQoKVwiXHJcbiAgICAgICAgY2xhc3M9XCJibWJfY2FsZW5kYXItY29udGVudFwiXHJcbiAgICAgIC8+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoXCJ3ZWVrXCIpIHtcclxuICAgICAgPGJtYi1jYWxlbmRhci10ZW1wbGF0ZS13ZWVrXHJcbiAgICAgICAgW3dlZWtEYXlzXT1cInJlbmRlcldlZWtEYXlzKClcIlxyXG4gICAgICAgIFtsYW5nXT1cImxhbmcoKVwiXHJcbiAgICAgICAgW25vd109XCJ2aXNpYmxlRGF0ZSgpXCJcclxuICAgICAgICBbZXZlbnRzXT1cImZpbHRlcmVkRXZlbnRzKClcIlxyXG4gICAgICAgIChvblNlbGVjdEV2ZW50KT1cImhhbmRsZVNlbGVjdEV2ZW50KCRldmVudClcIlxyXG4gICAgICAgIFtjdXJyZW50VGltZV09XCJjdXJyZW50VGltZSgpXCJcclxuICAgICAgICBbc3RhcnRCdXNpbmVzc0hvdXJdPVwic3RhcnRCdXNpbmVzc0hvdXIoKVwiXHJcbiAgICAgICAgW3NlbGVjdGVkV2Vla109XCJzZWxlY3RlZFdlZWsoKVwiXHJcbiAgICAgICAgY2xhc3M9XCJibWJfY2FsZW5kYXItY29udGVudFwiXHJcbiAgICAgIC8+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoXCJtb250aFwiKSB7XHJcbiAgICAgIDxibWItY2FsZW5kYXItdGVtcGxhdGUtbW9udGhcclxuICAgICAgICBbbm93XT1cInZpc2libGVEYXRlKClcIlxyXG4gICAgICAgIFtldmVudHNdPVwiZmlsdGVyZWRFdmVudHMoKVwiXHJcbiAgICAgICAgKG9uU2VsZWN0RXZlbnQpPVwiaGFuZGxlU2VsZWN0RXZlbnQoJGV2ZW50KVwiXHJcbiAgICAgICAgY2xhc3M9XCJibWJfY2FsZW5kYXItY29udGVudFwiXHJcbiAgICAgIC8+XHJcbiAgICB9XHJcbiAgICBAZGVmYXVsdCB7XHJcbiAgICAgIDxibWItY2FsZW5kYXItdGVtcGxhdGUtd2Vla1xyXG4gICAgICAgIFt3ZWVrRGF5c109XCJyZW5kZXJXZWVrRGF5cygpXCJcclxuICAgICAgICBbbGFuZ109XCJsYW5nKClcIlxyXG4gICAgICAgIFtub3ddPVwidmlzaWJsZURhdGUoKVwiXHJcbiAgICAgICAgW2V2ZW50c109XCJmaWx0ZXJlZEV2ZW50cygpXCJcclxuICAgICAgICBjbGFzcz1cImJtYl9jYWxlbmRhci1jb250ZW50XCJcclxuICAgICAgLz5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAoaXNMb2FkaW5nKCkpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJibWJfY2FsZW5kYXItbG9hZGVyXCI+XHJcbiAgICAgIDxibWItbG9hZGVyIFtzaG93SW5saW5lXT1cInRydWVcIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGV0YWlsQ29udGVudD5cclxuICBAaWYgKHNlbGVjdGVkRXZlbnQpIHtcclxuICAgIDxzZWN0aW9uPlxyXG4gICAgICBAaWYgKHNlbGVjdGVkRXZlbnQudGFncz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgPHAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogMC41cmVtXCI+XHJcbiAgICAgICAgICBAZm9yIChpdGVtIG9mIHNlbGVjdGVkRXZlbnQudGFnczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgIDxibWItYmFkZ2UgW3RleHRdPVwiaXRlbS50ZXh0XCIgW2FwcGVhcmFuY2VdPVwiaXRlbS5hcHBlYXJhbmNlXCIgLz5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L3A+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChzZWxlY3RlZEV2ZW50LnRpdGxlKSB7XHJcbiAgICAgICAgPHAgY2xhc3M9XCJibWJfY2FsZW5kYXItZXZlbnQtbW9kYWwtdGl0bGVcIj57eyBzZWxlY3RlZEV2ZW50LnRpdGxlIH19PC9wPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoc2VsZWN0ZWRFdmVudC5wbGFjZSkge1xyXG4gICAgICAgIDxwIGNsYXNzPVwiYm1iX2NhbGVuZGFyLWV2ZW50LW1vZGFsLXBsYWNlXCI+e3sgc2VsZWN0ZWRFdmVudC5wbGFjZSB9fTwvcD5cclxuICAgICAgfVxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYm1iX2NhbGVuZGFyLWV2ZW50LW1vZGFsLWR1cmF0aW9uXCI+e3sgZ2V0RHVyYXRpb24oKSB9fTwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbW9kYWxUZW1wbGF0ZT5cclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNhbGVuZGFyRm9ybVwiPlxyXG4gICAgQGZvciAoaXRlbSBvZiBmaWx0ZXJlZEV2ZW50cygpLmNhbGVuZGFyczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgIDxibWItY2hlY2tib3hcclxuICAgICAgICBbaW5wdXRJZF09XCInY2hlY2tib3hfJyArIGl0ZW1cIlxyXG4gICAgICAgIFtuYW1lXT1cIidjaGVja2JveF8nICsgaXRlbVwiXHJcbiAgICAgICAgW2xhYmVsXT1cIml0ZW1cIlxyXG4gICAgICAgIFtjb250cm9sXT1cImdldEZvcm1Db250cm9sKGl0ZW0pXCJcclxuICAgICAgLz5cclxuICAgIH1cclxuICA8L2Zvcm0+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, ChangeDetectionStrategy, ViewEncapsulation, input, output, } from '@angular/core';
|
|
3
|
+
import { BmbIconComponent } from '../../../bmb-icon/bmb-icon.component';
|
|
4
|
+
import { DateTime } from 'luxon';
|
|
5
|
+
import { BmbButtonGroupDirective } from '../../../../directives/bmb-button-group/bmb-button-group.directive';
|
|
6
|
+
import { BmbLayoutDirective } from '../../../../directives/bmb-layout/bmb-layout.directive';
|
|
7
|
+
import { BmbLayoutItemDirective } from '../../../../directives/bmb-layout/bmb-layout-item.directive';
|
|
8
|
+
import { BmbActionIconComponent } from '../../../bmb-action-icon/bmb-action-icon.component';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/common";
|
|
11
|
+
export class BmbCalendarHeaderComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.weekDays = input([]);
|
|
14
|
+
this.lang = input('es-MX');
|
|
15
|
+
this.view = input('week');
|
|
16
|
+
this.currentDate = input(DateTime.now());
|
|
17
|
+
this.showFilterButton = input(false);
|
|
18
|
+
this.onRangeChange = output();
|
|
19
|
+
this.onCurrentDateChange = output();
|
|
20
|
+
this.showFilters = output();
|
|
21
|
+
}
|
|
22
|
+
getTitle() {
|
|
23
|
+
if (this.view() === 'week') {
|
|
24
|
+
return `${this.weekDays()[0].setLocale(this.lang()).toFormat('LLL dd')} -
|
|
25
|
+
${this.weekDays()[6].setLocale(this.lang()).toFormat('LLL dd')}`;
|
|
26
|
+
}
|
|
27
|
+
if (this.view() === 'day') {
|
|
28
|
+
return this.currentDate().toLocaleString({
|
|
29
|
+
month: 'long',
|
|
30
|
+
day: 'numeric',
|
|
31
|
+
year: 'numeric',
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return this.currentDate().toLocaleString({ month: 'long' });
|
|
35
|
+
}
|
|
36
|
+
handleRangeChange(event) {
|
|
37
|
+
if (event === 'month') {
|
|
38
|
+
const newDate = DateTime.fromObject({
|
|
39
|
+
month: this.currentDate().month,
|
|
40
|
+
year: this.currentDate().year,
|
|
41
|
+
day: 1,
|
|
42
|
+
});
|
|
43
|
+
this.onCurrentDateChange.emit(newDate);
|
|
44
|
+
}
|
|
45
|
+
this.onRangeChange.emit(event);
|
|
46
|
+
}
|
|
47
|
+
handleChangeDate(event) {
|
|
48
|
+
const modifyDate = ({ config, date }) => {
|
|
49
|
+
if (event === '+') {
|
|
50
|
+
this.onCurrentDateChange.emit(date.plus(config));
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
this.onCurrentDateChange.emit(date.minus(config));
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
switch (this.view()) {
|
|
57
|
+
case 'day':
|
|
58
|
+
modifyDate({ config: { days: 1 }, date: this.currentDate() });
|
|
59
|
+
break;
|
|
60
|
+
case 'week':
|
|
61
|
+
modifyDate({ config: { days: 7 }, date: this.currentDate() });
|
|
62
|
+
break;
|
|
63
|
+
case 'month':
|
|
64
|
+
const newDate = DateTime.fromObject({
|
|
65
|
+
month: this.currentDate().month,
|
|
66
|
+
year: this.currentDate().year,
|
|
67
|
+
day: 1,
|
|
68
|
+
});
|
|
69
|
+
modifyDate({ config: { month: 1 }, date: newDate });
|
|
70
|
+
break;
|
|
71
|
+
default:
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
goToToday() {
|
|
76
|
+
this.onCurrentDateChange.emit(DateTime.now());
|
|
77
|
+
}
|
|
78
|
+
handleShowFilters() {
|
|
79
|
+
this.showFilters.emit();
|
|
80
|
+
}
|
|
81
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BmbCalendarHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
82
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BmbCalendarHeaderComponent, isStandalone: true, selector: "bmb-calendar-header", inputs: { weekDays: { classPropertyName: "weekDays", publicName: "weekDays", isSignal: true, isRequired: false, transformFunction: null }, lang: { classPropertyName: "lang", publicName: "lang", isSignal: true, isRequired: false, transformFunction: null }, view: { classPropertyName: "view", publicName: "view", isSignal: true, isRequired: false, transformFunction: null }, currentDate: { classPropertyName: "currentDate", publicName: "currentDate", isSignal: true, isRequired: false, transformFunction: null }, showFilterButton: { classPropertyName: "showFilterButton", publicName: "showFilterButton", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onRangeChange: "onRangeChange", onCurrentDateChange: "onCurrentDateChange", showFilters: "showFilters" }, ngImport: i0, template: "<section\r\n class=\"bmb_calendar-header\"\r\n bmbLayout\r\n [dynamicCols]=\"true\"\r\n margin=\"none\"\r\n alignItems=\"center\"\r\n>\r\n <div\r\n bmbLayoutItem\r\n [isDynamicItem]=\"true\"\r\n bmbButtonGroup\r\n appearance=\"transparent\"\r\n size=\"large\"\r\n >\r\n <button type=\"button\" (click)=\"goToToday()\">Hoy</button>\r\n <button type=\"button\" (click)=\"handleChangeDate('-')\">\r\n <bmb-icon [icon]=\"'arrow_back_ios'\" />\r\n </button>\r\n <button type=\"button\" (click)=\"handleChangeDate('+')\">\r\n <bmb-icon [icon]=\"'arrow_forward_ios'\" />\r\n </button>\r\n </div>\r\n <h1\r\n bmbLayoutItem\r\n [isDynamicItem]=\"true\"\r\n [colGrow]=\"1\"\r\n class=\"bmb_calendar-header-title\"\r\n >\r\n {{ getTitle() }}\r\n </h1>\r\n <div bmbButtonGroup appearance=\"secondary-outlined\" size=\"large\">\r\n <button\r\n type=\"button\"\r\n (click)=\"handleRangeChange('day')\"\r\n [ngClass]=\"{ 'bmb_button-selected': view() === 'day' }\"\r\n >\r\n D\u00EDa\r\n </button>\r\n <button\r\n type=\"button\"\r\n (click)=\"handleRangeChange('week')\"\r\n [ngClass]=\"{ 'bmb_button-selected': view() === 'week' }\"\r\n >\r\n Semana\r\n </button>\r\n <button\r\n type=\"button\"\r\n (click)=\"handleRangeChange('month')\"\r\n [ngClass]=\"{ 'bmb_button-selected': view() === 'month' }\"\r\n >\r\n Mes\r\n </button>\r\n </div>\r\n @if (showFilterButton()) {\r\n <bmb-action-icon\r\n [icon]=\"'tune'\"\r\n (buttonClick)=\"handleShowFilters()\"\r\n [iconSize]=\"24\"\r\n ></bmb-action-icon>\r\n }\r\n</section>\r\n", styles: ["@font-face{font-family:Poppins-Thin;font-style:normal;font-weight:100;src:url(/assets/fonts/Poppins/Poppins-Thin.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Medium;font-style:normal;font-weight:500;src:url(/assets/fonts/Poppins/Poppins-Medium.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Semibold;font-style:normal;font-weight:600;src:url(/assets/fonts/Poppins/Poppins-SemiBold.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_calendar-header{padding-bottom:1rem}@media (max-width: 999px){.bmb_calendar-header{display:none}}.bmb_calendar-header .bmb_button-group-transparent>*{color:var(--general_contrasts-100)}.bmb_calendar-header-title{font-family:Poppins-Bold,sans-serif;font-size:1.25rem;text-align:center;text-transform:capitalize}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BmbIconComponent, selector: "bmb-icon", inputs: ["icon", "materialIcon", "styleIcon", "isFill", "fontWeight", "size", "alt", "dotNotification"] }, { kind: "directive", type: BmbButtonGroupDirective, selector: "[bmbButtonGroup]", inputs: ["appearance", "size"] }, { kind: "directive", type: BmbLayoutDirective, selector: "[bmbLayout]", inputs: ["gapSize", "margin", "dynamicCols", "justify", "alignItems"] }, { kind: "directive", type: BmbLayoutItemDirective, selector: "[bmbLayoutItem]", inputs: ["colSm", "colLg", "marginLeft", "marginRight", "colGrow", "isDynamicItem"] }, { kind: "component", type: BmbActionIconComponent, selector: "bmb-action-icon", inputs: ["idElement", "icon", "alt", "iconSize", "isFill", "toggleIconActive", "isToggleActive", "isAccentColor", "dotNotification", "target", "link", "disabled"], outputs: ["isToggleActiveChange", "isAccentColorChange", "buttonPress", "buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
83
|
+
}
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BmbCalendarHeaderComponent, decorators: [{
|
|
85
|
+
type: Component,
|
|
86
|
+
args: [{ selector: 'bmb-calendar-header', standalone: true, imports: [
|
|
87
|
+
CommonModule,
|
|
88
|
+
BmbIconComponent,
|
|
89
|
+
BmbButtonGroupDirective,
|
|
90
|
+
BmbLayoutDirective,
|
|
91
|
+
BmbLayoutItemDirective,
|
|
92
|
+
BmbActionIconComponent,
|
|
93
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<section\r\n class=\"bmb_calendar-header\"\r\n bmbLayout\r\n [dynamicCols]=\"true\"\r\n margin=\"none\"\r\n alignItems=\"center\"\r\n>\r\n <div\r\n bmbLayoutItem\r\n [isDynamicItem]=\"true\"\r\n bmbButtonGroup\r\n appearance=\"transparent\"\r\n size=\"large\"\r\n >\r\n <button type=\"button\" (click)=\"goToToday()\">Hoy</button>\r\n <button type=\"button\" (click)=\"handleChangeDate('-')\">\r\n <bmb-icon [icon]=\"'arrow_back_ios'\" />\r\n </button>\r\n <button type=\"button\" (click)=\"handleChangeDate('+')\">\r\n <bmb-icon [icon]=\"'arrow_forward_ios'\" />\r\n </button>\r\n </div>\r\n <h1\r\n bmbLayoutItem\r\n [isDynamicItem]=\"true\"\r\n [colGrow]=\"1\"\r\n class=\"bmb_calendar-header-title\"\r\n >\r\n {{ getTitle() }}\r\n </h1>\r\n <div bmbButtonGroup appearance=\"secondary-outlined\" size=\"large\">\r\n <button\r\n type=\"button\"\r\n (click)=\"handleRangeChange('day')\"\r\n [ngClass]=\"{ 'bmb_button-selected': view() === 'day' }\"\r\n >\r\n D\u00EDa\r\n </button>\r\n <button\r\n type=\"button\"\r\n (click)=\"handleRangeChange('week')\"\r\n [ngClass]=\"{ 'bmb_button-selected': view() === 'week' }\"\r\n >\r\n Semana\r\n </button>\r\n <button\r\n type=\"button\"\r\n (click)=\"handleRangeChange('month')\"\r\n [ngClass]=\"{ 'bmb_button-selected': view() === 'month' }\"\r\n >\r\n Mes\r\n </button>\r\n </div>\r\n @if (showFilterButton()) {\r\n <bmb-action-icon\r\n [icon]=\"'tune'\"\r\n (buttonClick)=\"handleShowFilters()\"\r\n [iconSize]=\"24\"\r\n ></bmb-action-icon>\r\n }\r\n</section>\r\n", styles: ["@font-face{font-family:Poppins-Thin;font-style:normal;font-weight:100;src:url(/assets/fonts/Poppins/Poppins-Thin.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Medium;font-style:normal;font-weight:500;src:url(/assets/fonts/Poppins/Poppins-Medium.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Semibold;font-style:normal;font-weight:600;src:url(/assets/fonts/Poppins/Poppins-SemiBold.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_calendar-header{padding-bottom:1rem}@media (max-width: 999px){.bmb_calendar-header{display:none}}.bmb_calendar-header .bmb_button-group-transparent>*{color:var(--general_contrasts-100)}.bmb_calendar-header-title{font-family:Poppins-Bold,sans-serif;font-size:1.25rem;text-align:center;text-transform:capitalize}\n"] }]
|
|
94
|
+
}] });
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWNhbGVuZGFyLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1uZy9zcmMvbGliL2NvbXBvbmVudHMvYm1iLWNhbGVuZGFyL2NvbW1vbi9ibWItY2FsZW5kYXItaGVhZGVyL2JtYi1jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtbmcvc3JjL2xpYi9jb21wb25lbnRzL2JtYi1jYWxlbmRhci9jb21tb24vYm1iLWNhbGVuZGFyLWhlYWRlci9ibWItY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRWpDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7QUFrQjVGLE1BQU0sT0FBTywwQkFBMEI7SUFoQnZDO1FBaUJFLGFBQVEsR0FBRyxLQUFLLENBQWEsRUFBRSxDQUFDLENBQUM7UUFDakMsU0FBSSxHQUFHLEtBQUssQ0FBUyxPQUFPLENBQUMsQ0FBQztRQUM5QixTQUFJLEdBQUcs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UixLQUFLLE9BQU87Z0JBQ1YsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztvQkFDbEMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLO29CQUMvQixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUk7b0JBQzdCLEdBQUcsRUFBRSxDQUFDO2lCQUNQLENBQUMsQ0FBQztnQkFFSCxVQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQ3BELE1BQU07WUFFUjtnQkFDRSxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDOytHQS9FVSwwQkFBMEI7bUdBQTFCLDBCQUEwQiw4MUJDaEN2Qyw4cERBNkRBLHVvTkR6Q0ksWUFBWSw2SEFDWixnQkFBZ0IsOEpBQ2hCLHVCQUF1Qiw2RkFDdkIsa0JBQWtCLCtIQUNsQixzQkFBc0IsaUpBQ3RCLHNCQUFzQjs7NEZBT2IsMEJBQTBCO2tCQWhCdEMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QixzQkFBc0I7cUJBQ3ZCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgaW5wdXQsXHJcbiAgb3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCbWJJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYm1iLWljb24vYm1iLWljb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XHJcbmltcG9ydCB7IElCbWJDYWxlbmRhclZpZXcgfSBmcm9tICcuLi8uLi90eXBlcyc7XHJcbmltcG9ydCB7IEJtYkJ1dHRvbkdyb3VwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcy9ibWItYnV0dG9uLWdyb3VwL2JtYi1idXR0b24tZ3JvdXAuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQm1iTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcy9ibWItbGF5b3V0L2JtYi1sYXlvdXQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQm1iTGF5b3V0SXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZXMvYm1iLWxheW91dC9ibWItbGF5b3V0LWl0ZW0uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQm1iQWN0aW9uSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2JtYi1hY3Rpb24taWNvbi9ibWItYWN0aW9uLWljb24uY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYm1iLWNhbGVuZGFyLWhlYWRlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBCbWJJY29uQ29tcG9uZW50LFxyXG4gICAgQm1iQnV0dG9uR3JvdXBEaXJlY3RpdmUsXHJcbiAgICBCbWJMYXlvdXREaXJlY3RpdmUsXHJcbiAgICBCbWJMYXlvdXRJdGVtRGlyZWN0aXZlLFxyXG4gICAgQm1iQWN0aW9uSWNvbkNvbXBvbmVudCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ibWItY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYm1iLWNhbGVuZGFyLWhlYWRlci5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJtYkNhbGVuZGFySGVhZGVyQ29tcG9uZW50IHtcclxuICB3ZWVrRGF5cyA9IGlucHV0PERhdGVUaW1lW10+KFtdKTtcclxuICBsYW5nID0gaW5wdXQ8c3RyaW5nPignZXMtTVgnKTtcclxuICB2aWV3ID0gaW5wdXQ8SUJtYkNhbGVuZGFyVmlldz4oJ3dlZWsnKTtcclxuICBjdXJyZW50RGF0ZSA9IGlucHV0PERhdGVUaW1lPihEYXRlVGltZS5ub3coKSk7XHJcbiAgc2hvd0ZpbHRlckJ1dHRvbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgb25SYW5nZUNoYW5nZSA9IG91dHB1dDxhbnk+KCk7XHJcbiAgb25DdXJyZW50RGF0ZUNoYW5nZSA9IG91dHB1dDxEYXRlVGltZT4oKTtcclxuICBzaG93RmlsdGVycyA9IG91dHB1dDx2b2lkPigpO1xyXG5cclxuICBnZXRUaXRsZSgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMudmlldygpID09PSAnd2VlaycpIHtcclxuICAgICAgcmV0dXJuIGAke3RoaXMud2Vla0RheXMoKVswXS5zZXRMb2NhbGUodGhpcy5sYW5nKCkpLnRvRm9ybWF0KCdMTEwgZGQnKX0gLVxyXG4gICAgICAgICR7dGhpcy53ZWVrRGF5cygpWzZdLnNldExvY2FsZSh0aGlzLmxhbmcoKSkudG9Gb3JtYXQoJ0xMTCBkZCcpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMudmlldygpID09PSAnZGF5Jykge1xyXG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW50RGF0ZSgpLnRvTG9jYWxlU3RyaW5nKHtcclxuICAgICAgICBtb250aDogJ2xvbmcnLFxyXG4gICAgICAgIGRheTogJ251bWVyaWMnLFxyXG4gICAgICAgIHllYXI6ICdudW1lcmljJyxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudERhdGUoKS50b0xvY2FsZVN0cmluZyh7IG1vbnRoOiAnbG9uZycgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVSYW5nZUNoYW5nZShldmVudDogSUJtYkNhbGVuZGFyVmlldyk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50ID09PSAnbW9udGgnKSB7XHJcbiAgICAgIGNvbnN0IG5ld0RhdGUgPSBEYXRlVGltZS5mcm9tT2JqZWN0KHtcclxuICAgICAgICBtb250aDogdGhpcy5jdXJyZW50RGF0ZSgpLm1vbnRoLFxyXG4gICAgICAgIHllYXI6IHRoaXMuY3VycmVudERhdGUoKS55ZWFyLFxyXG4gICAgICAgIGRheTogMSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLm9uQ3VycmVudERhdGVDaGFuZ2UuZW1pdChuZXdEYXRlKTtcclxuICAgIH1cclxuICAgIHRoaXMub25SYW5nZUNoYW5nZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNoYW5nZURhdGUoZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgbW9kaWZ5RGF0ZSA9ICh7IGNvbmZpZywgZGF0ZSB9OiBhbnkpID0+IHtcclxuICAgICAgaWYgKGV2ZW50ID09PSAnKycpIHtcclxuICAgICAgICB0aGlzLm9uQ3VycmVudERhdGVDaGFuZ2UuZW1pdChkYXRlLnBsdXMoY29uZmlnKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vbkN1cnJlbnREYXRlQ2hhbmdlLmVtaXQoZGF0ZS5taW51cyhjb25maWcpKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBzd2l0Y2ggKHRoaXMudmlldygpKSB7XHJcbiAgICAgIGNhc2UgJ2RheSc6XHJcbiAgICAgICAgbW9kaWZ5RGF0ZSh7IGNvbmZpZzogeyBkYXlzOiAxIH0sIGRhdGU6IHRoaXMuY3VycmVudERhdGUoKSB9KTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ3dlZWsnOlxyXG4gICAgICAgIG1vZGlmeURhdGUoeyBjb25maWc6IHsgZGF5czogNyB9LCBkYXRlOiB0aGlzLmN1cnJlbnREYXRlKCkgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ21vbnRoJzpcclxuICAgICAgICBjb25zdCBuZXdEYXRlID0gRGF0ZVRpbWUuZnJvbU9iamVjdCh7XHJcbiAgICAgICAgICBtb250aDogdGhpcy5jdXJyZW50RGF0ZSgpLm1vbnRoLFxyXG4gICAgICAgICAgeWVhcjogdGhpcy5jdXJyZW50RGF0ZSgpLnllYXIsXHJcbiAgICAgICAgICBkYXk6IDEsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIG1vZGlmeURhdGUoeyBjb25maWc6IHsgbW9udGg6IDEgfSwgZGF0ZTogbmV3RGF0ZSB9KTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnb1RvVG9kYXkoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ3VycmVudERhdGVDaGFuZ2UuZW1pdChEYXRlVGltZS5ub3coKSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTaG93RmlsdGVycygpIHtcclxuICAgIHRoaXMuc2hvd0ZpbHRlcnMuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8c2VjdGlvblxyXG4gIGNsYXNzPVwiYm1iX2NhbGVuZGFyLWhlYWRlclwiXHJcbiAgYm1iTGF5b3V0XHJcbiAgW2R5bmFtaWNDb2xzXT1cInRydWVcIlxyXG4gIG1hcmdpbj1cIm5vbmVcIlxyXG4gIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxyXG4+XHJcbiAgPGRpdlxyXG4gICAgYm1iTGF5b3V0SXRlbVxyXG4gICAgW2lzRHluYW1pY0l0ZW1dPVwidHJ1ZVwiXHJcbiAgICBibWJCdXR0b25Hcm91cFxyXG4gICAgYXBwZWFyYW5jZT1cInRyYW5zcGFyZW50XCJcclxuICAgIHNpemU9XCJsYXJnZVwiXHJcbiAgPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImdvVG9Ub2RheSgpXCI+SG95PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiaGFuZGxlQ2hhbmdlRGF0ZSgnLScpXCI+XHJcbiAgICAgIDxibWItaWNvbiBbaWNvbl09XCInYXJyb3dfYmFja19pb3MnXCIgLz5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImhhbmRsZUNoYW5nZURhdGUoJysnKVwiPlxyXG4gICAgICA8Ym1iLWljb24gW2ljb25dPVwiJ2Fycm93X2ZvcndhcmRfaW9zJ1wiIC8+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8aDFcclxuICAgIGJtYkxheW91dEl0ZW1cclxuICAgIFtpc0R5bmFtaWNJdGVtXT1cInRydWVcIlxyXG4gICAgW2NvbEdyb3ddPVwiMVwiXHJcbiAgICBjbGFzcz1cImJtYl9jYWxlbmRhci1oZWFkZXItdGl0bGVcIlxyXG4gID5cclxuICAgIHt7IGdldFRpdGxlKCkgfX1cclxuICA8L2gxPlxyXG4gIDxkaXYgYm1iQnV0dG9uR3JvdXAgYXBwZWFyYW5jZT1cInNlY29uZGFyeS1vdXRsaW5lZFwiIHNpemU9XCJsYXJnZVwiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgKGNsaWNrKT1cImhhbmRsZVJhbmdlQ2hhbmdlKCdkYXknKVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2JtYl9idXR0b24tc2VsZWN0ZWQnOiB2aWV3KCkgPT09ICdkYXknIH1cIlxyXG4gICAgPlxyXG4gICAgICBEw61hXHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIChjbGljayk9XCJoYW5kbGVSYW5nZUNoYW5nZSgnd2VlaycpXCJcclxuICAgICAgW25nQ2xhc3NdPVwieyAnYm1iX2J1dHRvbi1zZWxlY3RlZCc6IHZpZXcoKSA9PT0gJ3dlZWsnIH1cIlxyXG4gICAgPlxyXG4gICAgICBTZW1hbmFcclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgKGNsaWNrKT1cImhhbmRsZVJhbmdlQ2hhbmdlKCdtb250aCcpXCJcclxuICAgICAgW25nQ2xhc3NdPVwieyAnYm1iX2J1dHRvbi1zZWxlY3RlZCc6IHZpZXcoKSA9PT0gJ21vbnRoJyB9XCJcclxuICAgID5cclxuICAgICAgTWVzXHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICBAaWYgKHNob3dGaWx0ZXJCdXR0b24oKSkge1xyXG4gICAgPGJtYi1hY3Rpb24taWNvblxyXG4gICAgICBbaWNvbl09XCIndHVuZSdcIlxyXG4gICAgICAoYnV0dG9uQ2xpY2spPVwiaGFuZGxlU2hvd0ZpbHRlcnMoKVwiXHJcbiAgICAgIFtpY29uU2l6ZV09XCIyNFwiXHJcbiAgICA+PC9ibWItYWN0aW9uLWljb24+XHJcbiAgfVxyXG48L3NlY3Rpb24+XHJcbiJdfQ==
|