@coreui/angular-pro 4.1.0 → 4.2.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +174 -174
- package/esm2020/lib/accordion/accordion/accordion.component.mjs +3 -3
- package/esm2020/lib/accordion/accordion-button/accordion-button.directive.mjs +3 -3
- package/esm2020/lib/accordion/accordion-item/accordion-item.component.mjs +3 -3
- package/esm2020/lib/accordion/accordion.module.mjs +4 -4
- package/esm2020/lib/accordion/accordion.service.mjs +3 -3
- package/esm2020/lib/alert/alert-heading.directive.mjs +3 -3
- package/esm2020/lib/alert/alert-link.directive.mjs +3 -3
- package/esm2020/lib/alert/alert.component.mjs +3 -3
- package/esm2020/lib/alert/alert.module.mjs +4 -4
- package/esm2020/lib/avatar/avatar.component.mjs +3 -3
- package/esm2020/lib/avatar/avatar.module.mjs +4 -4
- package/esm2020/lib/backdrop/backdrop.service.mjs +3 -3
- package/esm2020/lib/badge/badge.component.mjs +3 -3
- package/esm2020/lib/badge/badge.module.mjs +4 -4
- package/esm2020/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2020/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +3 -3
- package/esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +3 -3
- package/esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +3 -3
- package/esm2020/lib/breadcrumb/breadcrumb.module.mjs +4 -4
- package/esm2020/lib/button/button-close.directive.mjs +3 -3
- package/esm2020/lib/button/button.directive.mjs +3 -3
- package/esm2020/lib/button/button.module.mjs +4 -4
- package/esm2020/lib/button-group/button-group/button-group.component.mjs +3 -3
- package/esm2020/lib/button-group/button-group.module.mjs +4 -4
- package/esm2020/lib/button-group/button-toolbar/button-toolbar.component.mjs +3 -3
- package/esm2020/lib/calendar/calendar/calendar-class-view.pipe.mjs +19 -0
- package/esm2020/lib/calendar/calendar/calendar.component.mjs +366 -0
- package/esm2020/lib/calendar/calendar-month/calendar-class-day.pipe.mjs +28 -0
- package/esm2020/lib/calendar/calendar-month/calendar-class-month.pipe.mjs +21 -0
- package/esm2020/lib/calendar/calendar-month/calendar-class-year.pipe.mjs +21 -0
- package/esm2020/lib/calendar/calendar-month/calendar-day.directive.mjs +81 -0
- package/esm2020/lib/calendar/calendar-month/calendar-day.pipe.mjs +18 -0
- package/esm2020/lib/calendar/calendar-month/calendar-month.component.mjs +320 -0
- package/esm2020/lib/calendar/calendar-month/calendar-weekday.pipe.mjs +20 -0
- package/esm2020/lib/calendar/calendar-navigation/calendar-navigation.component.mjs +79 -0
- package/esm2020/lib/calendar/calendar.module.mjs +59 -0
- package/esm2020/lib/calendar/calendar.service.mjs +60 -0
- package/esm2020/lib/calendar/calendar.utils.mjs +273 -0
- package/esm2020/lib/calendar/index.mjs +2 -0
- package/esm2020/lib/calendar/public_api.mjs +5 -0
- package/esm2020/lib/callout/callout.component.mjs +3 -3
- package/esm2020/lib/callout/callout.module.mjs +4 -4
- package/esm2020/lib/card/card-body.component.mjs +3 -3
- package/esm2020/lib/card/card-footer.component.mjs +3 -3
- package/esm2020/lib/card/card-group.component.mjs +3 -3
- package/esm2020/lib/card/card-header-actions.component.mjs +3 -3
- package/esm2020/lib/card/card-header.component.mjs +3 -3
- package/esm2020/lib/card/card-img-overlay/card-img-overlay.component.mjs +3 -3
- package/esm2020/lib/card/card-img.directive.mjs +3 -3
- package/esm2020/lib/card/card-link.directive.mjs +3 -3
- package/esm2020/lib/card/card-subtitle.directive.mjs +3 -3
- package/esm2020/lib/card/card-text.directive.mjs +3 -3
- package/esm2020/lib/card/card-title.directive.mjs +3 -3
- package/esm2020/lib/card/card.component.mjs +3 -3
- package/esm2020/lib/card/card.module.mjs +4 -4
- package/esm2020/lib/carousel/carousel/carousel.component.mjs +3 -3
- package/esm2020/lib/carousel/carousel-caption/carousel-caption.component.mjs +3 -3
- package/esm2020/lib/carousel/carousel-control/carousel-control.component.mjs +3 -3
- package/esm2020/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +3 -3
- package/esm2020/lib/carousel/carousel-inner/carousel-inner.component.mjs +3 -3
- package/esm2020/lib/carousel/carousel-item/carousel-item.component.mjs +3 -3
- package/esm2020/lib/carousel/carousel-state.mjs +3 -3
- package/esm2020/lib/carousel/carousel.config.mjs +3 -3
- package/esm2020/lib/carousel/carousel.module.mjs +4 -4
- package/esm2020/lib/carousel/carousel.service.mjs +3 -3
- package/esm2020/lib/collapse/collapse.directive.mjs +3 -3
- package/esm2020/lib/collapse/collapse.module.mjs +4 -4
- package/esm2020/lib/date-range-picker/date-range-picker/date-range-picker.component.mjs +503 -0
- package/esm2020/lib/date-range-picker/date-range-picker.module.mjs +57 -0
- package/esm2020/lib/date-range-picker/end-date.directive.mjs +17 -0
- package/esm2020/lib/date-range-picker/index.mjs +2 -0
- package/esm2020/lib/date-range-picker/public_api.mjs +3 -0
- package/esm2020/lib/date-range-picker/start-date.directive.mjs +17 -0
- package/esm2020/lib/dropdown/dropdown/dropdown.component.mjs +6 -6
- package/esm2020/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +3 -3
- package/esm2020/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +3 -3
- package/esm2020/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +3 -3
- package/esm2020/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +3 -3
- package/esm2020/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +3 -3
- package/esm2020/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +3 -3
- package/esm2020/lib/dropdown/dropdown.module.mjs +4 -4
- package/esm2020/lib/dropdown/dropdown.service.mjs +3 -3
- package/esm2020/lib/element-cover/element-cover.component.mjs +3 -3
- package/esm2020/lib/element-cover/element-cover.module.mjs +4 -4
- package/esm2020/lib/footer/footer.component.mjs +3 -3
- package/esm2020/lib/footer/footer.module.mjs +4 -4
- package/esm2020/lib/form/form/form.directive.mjs +3 -3
- package/esm2020/lib/form/form-check/form-check-input.directive.mjs +3 -3
- package/esm2020/lib/form/form-check/form-check-label.directive.mjs +3 -3
- package/esm2020/lib/form/form-check/form-check.component.mjs +3 -3
- package/esm2020/lib/form/form-control/form-control.directive.mjs +3 -3
- package/esm2020/lib/form/form-feedback/form-feedback.component.mjs +3 -3
- package/esm2020/lib/form/form-floating/form-floating.directive.mjs +3 -3
- package/esm2020/lib/form/form-label/form-label.directive.mjs +3 -3
- package/esm2020/lib/form/form-select/form-select.directive.mjs +3 -3
- package/esm2020/lib/form/form-text/form-text.directive.mjs +3 -3
- package/esm2020/lib/form/form.module.mjs +4 -4
- package/esm2020/lib/form/input-group/input-group.component.mjs +3 -3
- package/esm2020/lib/form/input-group-text/input-group-text.directive.mjs +3 -3
- package/esm2020/lib/grid/col.component.mjs +3 -3
- package/esm2020/lib/grid/col.directive.mjs +3 -3
- package/esm2020/lib/grid/container.component.mjs +3 -3
- package/esm2020/lib/grid/grid.module.mjs +4 -4
- package/esm2020/lib/grid/gutter.directive.mjs +3 -3
- package/esm2020/lib/grid/row.component.mjs +3 -3
- package/esm2020/lib/grid/row.directive.mjs +3 -3
- package/esm2020/lib/header/header/header.component.mjs +3 -3
- package/esm2020/lib/header/header-brand/header-brand.component.mjs +3 -3
- package/esm2020/lib/header/header-divider/header-divider.component.mjs +3 -3
- package/esm2020/lib/header/header-nav/header-nav.component.mjs +3 -3
- package/esm2020/lib/header/header-text/header-text.component.mjs +3 -3
- package/esm2020/lib/header/header-toggler/header-toggler.directive.mjs +3 -3
- package/esm2020/lib/header/header.module.mjs +4 -4
- package/esm2020/lib/image/img.directive.mjs +3 -3
- package/esm2020/lib/image/img.module.mjs +4 -4
- package/esm2020/lib/list-group/list-group-item.directive.mjs +3 -3
- package/esm2020/lib/list-group/list-group.directive.mjs +3 -3
- package/esm2020/lib/list-group/list-group.module.mjs +4 -4
- package/esm2020/lib/loading-button/loading-button.component.mjs +3 -3
- package/esm2020/lib/loading-button/loading-button.module.mjs +4 -4
- package/esm2020/lib/modal/modal/modal.component.mjs +3 -3
- package/esm2020/lib/modal/modal-body/modal-body.component.mjs +3 -3
- package/esm2020/lib/modal/modal-content/modal-content.component.mjs +3 -3
- package/esm2020/lib/modal/modal-dialog/modal-dialog.component.mjs +3 -3
- package/esm2020/lib/modal/modal-dismiss/modal-toggle.directive.mjs +3 -3
- package/esm2020/lib/modal/modal-footer/modal-footer.component.mjs +3 -3
- package/esm2020/lib/modal/modal-header/modal-header.component.mjs +3 -3
- package/esm2020/lib/modal/modal-title/modal-title.directive.mjs +3 -3
- package/esm2020/lib/modal/modal.module.mjs +4 -4
- package/esm2020/lib/modal/modal.service.mjs +3 -3
- package/esm2020/lib/multi-select/multi-select/multi-select.component.mjs +3 -3
- package/esm2020/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +3 -3
- package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +3 -3
- package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +3 -3
- package/esm2020/lib/multi-select/multi-select-option/multi-select-option.component.mjs +3 -3
- package/esm2020/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +3 -3
- package/esm2020/lib/multi-select/multi-select.module.mjs +4 -4
- package/esm2020/lib/multi-select/multi-select.service.mjs +3 -3
- package/esm2020/lib/nav/nav-item.component.mjs +3 -3
- package/esm2020/lib/nav/nav-link.directive.mjs +3 -3
- package/esm2020/lib/nav/nav.component.mjs +3 -3
- package/esm2020/lib/nav/nav.module.mjs +4 -4
- package/esm2020/lib/navbar/navbar-brand/navbar-brand.directive.mjs +3 -3
- package/esm2020/lib/navbar/navbar-nav/navbar-nav.component.mjs +3 -3
- package/esm2020/lib/navbar/navbar-text/navbar-text.component.mjs +3 -3
- package/esm2020/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +3 -3
- package/esm2020/lib/navbar/navbar.component.mjs +3 -3
- package/esm2020/lib/navbar/navbar.module.mjs +4 -4
- package/esm2020/lib/offcanvas/offcanvas/offcanvas.component.mjs +3 -3
- package/esm2020/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +3 -3
- package/esm2020/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +3 -3
- package/esm2020/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +3 -3
- package/esm2020/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +3 -3
- package/esm2020/lib/offcanvas/offcanvas.module.mjs +4 -4
- package/esm2020/lib/offcanvas/offcanvas.service.mjs +3 -3
- package/esm2020/lib/pagination/page-item/page-item.component.mjs +3 -3
- package/esm2020/lib/pagination/page-item/page-item.directive.mjs +3 -3
- package/esm2020/lib/pagination/page-link/page-link.directive.mjs +3 -3
- package/esm2020/lib/pagination/pagination/pagination.component.mjs +3 -3
- package/esm2020/lib/pagination/pagination.module.mjs +4 -4
- package/esm2020/lib/placeholder/placeholder-animation.directive.mjs +3 -3
- package/esm2020/lib/placeholder/placeholder.directive.mjs +3 -3
- package/esm2020/lib/placeholder/placeholder.module.mjs +4 -4
- package/esm2020/lib/popover/popover/popover.component.mjs +3 -3
- package/esm2020/lib/popover/popover.directive.mjs +3 -3
- package/esm2020/lib/popover/popover.module.mjs +4 -4
- package/esm2020/lib/progress/progress-bar.component.mjs +3 -3
- package/esm2020/lib/progress/progress.component.mjs +3 -3
- package/esm2020/lib/progress/progress.module.mjs +4 -4
- package/esm2020/lib/services/class-toggle.service.mjs +3 -3
- package/esm2020/lib/services/intersection.service.mjs +3 -3
- package/esm2020/lib/services/listeners.service.mjs +3 -3
- package/esm2020/lib/shared/html-attr.directive.mjs +3 -3
- package/esm2020/lib/shared/shared.module.mjs +4 -4
- package/esm2020/lib/shared/template-id.directive.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar/sidebar.component.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +6 -6
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +6 -6
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +6 -6
- package/esm2020/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-toggler/sidebar-toggler.component.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar.module.mjs +4 -4
- package/esm2020/lib/sidebar/sidebar.service.mjs +3 -3
- package/esm2020/lib/smart-pagination/smart-pagination.component.mjs +3 -3
- package/esm2020/lib/smart-pagination/smart-pagination.module.mjs +4 -4
- package/esm2020/lib/smart-table/smart-table/smart-table.component.mjs +3 -3
- package/esm2020/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +3 -3
- package/esm2020/lib/smart-table/smart-table-head/smart-table-head.component.mjs +3 -3
- package/esm2020/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +3 -3
- package/esm2020/lib/smart-table/smart-table.module.mjs +4 -4
- package/esm2020/lib/spinner/spinner.component.mjs +3 -3
- package/esm2020/lib/spinner/spinner.module.mjs +4 -4
- package/esm2020/lib/table/table-active.directive.mjs +3 -3
- package/esm2020/lib/table/table-color.directive.mjs +3 -3
- package/esm2020/lib/table/table.directive.mjs +3 -3
- package/esm2020/lib/table/table.module.mjs +4 -4
- package/esm2020/lib/tabs/tab-content/tab-content.component.mjs +3 -3
- package/esm2020/lib/tabs/tab-content-ref.directive.mjs +3 -3
- package/esm2020/lib/tabs/tab-pane/tab-pane.component.mjs +3 -3
- package/esm2020/lib/tabs/tab.service.mjs +3 -3
- package/esm2020/lib/tabs/tabs.module.mjs +4 -4
- package/esm2020/lib/time-picker/index.mjs +2 -0
- package/esm2020/lib/time-picker/public_api.mjs +3 -0
- package/esm2020/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.mjs +103 -0
- package/esm2020/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.mjs +104 -0
- package/esm2020/lib/time-picker/time-picker.component.mjs +434 -0
- package/esm2020/lib/time-picker/time-picker.module.mjs +50 -0
- package/esm2020/lib/time-picker/time.utils.mjs +645 -0
- package/esm2020/lib/toast/toast/toast.component.mjs +3 -3
- package/esm2020/lib/toast/toast-body/toast-body.component.mjs +3 -3
- package/esm2020/lib/toast/toast-close.directive.mjs +3 -3
- package/esm2020/lib/toast/toast-header/toast-header.component.mjs +3 -3
- package/esm2020/lib/toast/toast.module.mjs +4 -4
- package/esm2020/lib/toast/toaster/toaster-host.directive.mjs +3 -3
- package/esm2020/lib/toast/toaster/toaster.component.mjs +3 -3
- package/esm2020/lib/toast/toaster/toaster.service.mjs +3 -3
- package/esm2020/lib/tooltip/tooltip/tooltip.component.mjs +3 -3
- package/esm2020/lib/tooltip/tooltip.directive.mjs +3 -3
- package/esm2020/lib/tooltip/tooltip.module.mjs +4 -4
- package/esm2020/lib/utilities/align.directive.mjs +3 -3
- package/esm2020/lib/utilities/bg-color.directive.mjs +3 -3
- package/esm2020/lib/utilities/border.directive.mjs +3 -3
- package/esm2020/lib/utilities/rounded.directive.mjs +3 -3
- package/esm2020/lib/utilities/text-color.directive.mjs +3 -3
- package/esm2020/lib/utilities/utilities.module.mjs +4 -4
- package/esm2020/lib/widget/widget-stat-a/widget-stat-a.component.mjs +3 -3
- package/esm2020/lib/widget/widget-stat-b/widget-stat-b.component.mjs +3 -3
- package/esm2020/lib/widget/widget-stat-c/widget-stat-c.component.mjs +3 -3
- package/esm2020/lib/widget/widget-stat-d/widget-stat-d.component.mjs +3 -3
- package/esm2020/lib/widget/widget-stat-e/widget-stat-e.component.mjs +3 -3
- package/esm2020/lib/widget/widget-stat-f/widget-stat-f.component.mjs +3 -3
- package/esm2020/lib/widget/widget.module.mjs +4 -4
- package/esm2020/public-api.mjs +4 -1
- package/fesm2015/coreui-angular-pro.mjs +5009 -1813
- package/fesm2015/coreui-angular-pro.mjs.map +1 -1
- package/fesm2020/coreui-angular-pro.mjs +4989 -1828
- package/fesm2020/coreui-angular-pro.mjs.map +1 -1
- package/lib/calendar/calendar/calendar-class-view.pipe.d.ts +7 -0
- package/lib/calendar/calendar/calendar.component.d.ts +155 -0
- package/lib/calendar/calendar-month/calendar-class-day.pipe.d.ts +15 -0
- package/lib/calendar/calendar-month/calendar-class-month.pipe.d.ts +7 -0
- package/lib/calendar/calendar-month/calendar-class-year.pipe.d.ts +7 -0
- package/lib/calendar/calendar-month/calendar-day.directive.d.ts +29 -0
- package/lib/calendar/calendar-month/calendar-day.pipe.d.ts +8 -0
- package/lib/calendar/calendar-month/calendar-month.component.d.ts +121 -0
- package/lib/calendar/calendar-month/calendar-weekday.pipe.d.ts +8 -0
- package/lib/calendar/calendar-navigation/calendar-navigation.component.d.ts +30 -0
- package/lib/calendar/calendar.module.d.ts +18 -0
- package/lib/calendar/calendar.service.d.ts +33 -0
- package/lib/calendar/calendar.utils.d.ts +26 -0
- package/lib/calendar/index.d.ts +1 -0
- package/lib/calendar/public_api.d.ts +4 -0
- package/lib/date-range-picker/date-range-picker/date-range-picker.component.d.ts +235 -0
- package/lib/date-range-picker/date-range-picker.module.d.ts +16 -0
- package/lib/date-range-picker/end-date.directive.d.ts +8 -0
- package/lib/date-range-picker/index.d.ts +1 -0
- package/lib/date-range-picker/public_api.d.ts +2 -0
- package/lib/date-range-picker/start-date.directive.d.ts +8 -0
- package/lib/time-picker/index.d.ts +1 -0
- package/lib/time-picker/public_api.d.ts +2 -0
- package/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.d.ts +39 -0
- package/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.d.ts +38 -0
- package/lib/time-picker/time-picker.component.d.ts +169 -0
- package/lib/time-picker/time-picker.module.d.ts +14 -0
- package/lib/time-picker/time.utils.d.ts +57 -0
- package/package.json +8 -2
- package/public-api.d.ts +3 -0
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
|
|
3
|
+
import { createGroupsInArray, getMonthDetails, getMonthsNames, getYears, isDateDisabled, isDateInRangeDisabled, tryDate } from '../calendar.utils';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../calendar.service";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "./calendar-day.directive";
|
|
8
|
+
import * as i4 from "./calendar-class-year.pipe";
|
|
9
|
+
import * as i5 from "./calendar-class-day.pipe";
|
|
10
|
+
import * as i6 from "./calendar-class-month.pipe";
|
|
11
|
+
import * as i7 from "./calendar-day.pipe";
|
|
12
|
+
import * as i8 from "./calendar-weekday.pipe";
|
|
13
|
+
export class CalendarMonthComponent {
|
|
14
|
+
constructor(calendarService) {
|
|
15
|
+
this.calendarService = calendarService;
|
|
16
|
+
this.addMonths = 0;
|
|
17
|
+
this._startDate = null;
|
|
18
|
+
this._endDate = null;
|
|
19
|
+
this._disabledDates = [];
|
|
20
|
+
this._firstDayOfWeek = 1;
|
|
21
|
+
this._locale = 'default';
|
|
22
|
+
this._range = false;
|
|
23
|
+
/**
|
|
24
|
+
* Set length or format of day name.
|
|
25
|
+
* @type number | 'long' | 'narrow' | 'short'
|
|
26
|
+
* @default 'short'
|
|
27
|
+
*/
|
|
28
|
+
this.weekdayFormat = 'short';
|
|
29
|
+
this._view = 'days';
|
|
30
|
+
this._maxDate = null;
|
|
31
|
+
this._minDate = null;
|
|
32
|
+
this.listOfMonths = createGroupsInArray(getMonthsNames(this.locale), 4);
|
|
33
|
+
this.listOfYears = createGroupsInArray(getYears(this.date.getFullYear()), 4);
|
|
34
|
+
this._calendarDate = new Date();
|
|
35
|
+
this.calendarStateSubscribe();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Initial selected date.
|
|
39
|
+
* @type (Date | null)
|
|
40
|
+
*/
|
|
41
|
+
set startDate(value) {
|
|
42
|
+
this._startDate = !!value ? tryDate(value, 'startDate') : null;
|
|
43
|
+
this.calendarService.update({ startDate: this._startDate });
|
|
44
|
+
}
|
|
45
|
+
get startDate() {
|
|
46
|
+
return this._startDate;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Initial selected to date (range).
|
|
50
|
+
* @type (Date | null)
|
|
51
|
+
*/
|
|
52
|
+
set endDate(value) {
|
|
53
|
+
this._endDate = !!value ? tryDate(value, 'endDate') : null;
|
|
54
|
+
this.calendarService.update({ endDate: this._endDate });
|
|
55
|
+
}
|
|
56
|
+
get endDate() {
|
|
57
|
+
return this._endDate;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Specify the list of dates that cannot be selected.
|
|
61
|
+
* @type (Date[] | Date[][])
|
|
62
|
+
*/
|
|
63
|
+
set disabledDates(value) {
|
|
64
|
+
this._disabledDates = value;
|
|
65
|
+
}
|
|
66
|
+
get disabledDates() {
|
|
67
|
+
return this._disabledDates;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Sets the day of start week.
|
|
71
|
+
* - 0 - Sunday,
|
|
72
|
+
* - 1 - Monday,
|
|
73
|
+
* - 2 - Tuesday,
|
|
74
|
+
* - 3 - Wednesday,
|
|
75
|
+
* - 4 - Thursday,
|
|
76
|
+
* - 5 - Friday,
|
|
77
|
+
* - 6 - Saturday,
|
|
78
|
+
*/
|
|
79
|
+
set firstDayOfWeek(value) {
|
|
80
|
+
this._firstDayOfWeek = coerceNumberProperty(value);
|
|
81
|
+
}
|
|
82
|
+
get firstDayOfWeek() {
|
|
83
|
+
return this._firstDayOfWeek;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Sets the default locale for components. If not set, it is inherited from the browser.
|
|
87
|
+
* @default 'default'
|
|
88
|
+
*/
|
|
89
|
+
set locale(value) {
|
|
90
|
+
this._locale = value;
|
|
91
|
+
this.listOfMonths = createGroupsInArray(getMonthsNames(value), 4);
|
|
92
|
+
}
|
|
93
|
+
get locale() {
|
|
94
|
+
return this._locale;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Allow range selection.
|
|
98
|
+
*/
|
|
99
|
+
set range(value) {
|
|
100
|
+
this._range = coerceBooleanProperty(value);
|
|
101
|
+
}
|
|
102
|
+
get range() {
|
|
103
|
+
return this._range;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Set calendar view.
|
|
107
|
+
* @type 'days' | 'months' | 'years'
|
|
108
|
+
* @default 'days'
|
|
109
|
+
*/
|
|
110
|
+
set view(value) {
|
|
111
|
+
this._view = value;
|
|
112
|
+
this.listOfYears = createGroupsInArray(getYears(this.date.getFullYear()), 4);
|
|
113
|
+
}
|
|
114
|
+
get view() {
|
|
115
|
+
return this._view;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Max selectable date.
|
|
119
|
+
*/
|
|
120
|
+
set maxDate(value) {
|
|
121
|
+
this._maxDate = value ? tryDate(value, 'maxDate') : null;
|
|
122
|
+
}
|
|
123
|
+
get maxDate() {
|
|
124
|
+
return this._maxDate;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Min selectable date.
|
|
128
|
+
*/
|
|
129
|
+
set minDate(value) {
|
|
130
|
+
this._minDate = value ? tryDate(value, 'minDate') : null;
|
|
131
|
+
}
|
|
132
|
+
get minDate() {
|
|
133
|
+
return this._minDate;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Default date of the component
|
|
137
|
+
* @type Date
|
|
138
|
+
*/
|
|
139
|
+
set calendarDate(value) {
|
|
140
|
+
const _value = new Date(tryDate((value ?? this.startDate ?? new Date()), 'calendarDate'));
|
|
141
|
+
if (this._calendarDate.getTime() !== _value.getTime()) {
|
|
142
|
+
this.listOfYears = createGroupsInArray(getYears(_value.getFullYear()), 4);
|
|
143
|
+
this._calendarDate = new Date(_value.setDate(1));
|
|
144
|
+
this.setMonthDetails(this.date);
|
|
145
|
+
this.calendarService.update({ calendarDate: this._calendarDate });
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
get calendarDate() {
|
|
149
|
+
return this._calendarDate;
|
|
150
|
+
}
|
|
151
|
+
get date() {
|
|
152
|
+
return new Date(this.calendarDate?.getFullYear(), this.calendarDate?.getMonth() + this.addMonths);
|
|
153
|
+
}
|
|
154
|
+
get monthDetails() {
|
|
155
|
+
return this._monthDetails;
|
|
156
|
+
}
|
|
157
|
+
get weekDays() {
|
|
158
|
+
return this.monthDetails[0];
|
|
159
|
+
}
|
|
160
|
+
ngOnInit() {
|
|
161
|
+
this.listOfMonths = createGroupsInArray(getMonthsNames(this.locale), 4);
|
|
162
|
+
this.setMonthDetails(this.date);
|
|
163
|
+
}
|
|
164
|
+
setMonthDetails(date = this.date) {
|
|
165
|
+
this._monthDetails = getMonthDetails(date.getFullYear(), date.getMonth(), this.firstDayOfWeek);
|
|
166
|
+
}
|
|
167
|
+
yearNumber(year) {
|
|
168
|
+
return new Date(year, 0).toLocaleDateString(this.locale, { year: 'numeric' });
|
|
169
|
+
}
|
|
170
|
+
isDateDisabled(date) {
|
|
171
|
+
// @ts-ignore
|
|
172
|
+
return isDateDisabled(date, this.minDate, this.maxDate, this.disabledDates) || (this.dateFilter ? !this.dateFilter(date) : false);
|
|
173
|
+
}
|
|
174
|
+
calendarCellTitle(date) {
|
|
175
|
+
return date.toLocaleDateString(this.locale);
|
|
176
|
+
}
|
|
177
|
+
handleCellMouseEnter(hoverDate) {
|
|
178
|
+
const hoverValue = this.isDateDisabled(hoverDate) ? null : hoverDate;
|
|
179
|
+
this.calendarService.update({ hoverDate: hoverValue });
|
|
180
|
+
}
|
|
181
|
+
handleYearCellClick(year) {
|
|
182
|
+
const calendarDate = new Date(year, this.calendarDate.getMonth(), 1);
|
|
183
|
+
this.view = 'months';
|
|
184
|
+
this.calendarService.update({ view: this.view, calendarDate: calendarDate });
|
|
185
|
+
}
|
|
186
|
+
handleYearCellKeyUp($event, year) {
|
|
187
|
+
if ($event.key === 'Enter') {
|
|
188
|
+
this.handleYearCellClick(year);
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
handleMonthCellKeyUp($event, i, idx) {
|
|
193
|
+
if ($event.key === 'Enter') {
|
|
194
|
+
this.handleMonthCellClick(i, idx);
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
handleMonthCellClick(i, idx) {
|
|
199
|
+
this.setCalendarPage(0, 0, i * 3 + idx - this.addMonths);
|
|
200
|
+
this.view = 'days';
|
|
201
|
+
this.calendarService.update({ view: this.view });
|
|
202
|
+
}
|
|
203
|
+
setCalendarPage(years, months = 0, setMonth) {
|
|
204
|
+
const year = this.date.getFullYear();
|
|
205
|
+
const month = this.date.getMonth();
|
|
206
|
+
const d = new Date(year, month);
|
|
207
|
+
years && d.setFullYear(d.getFullYear() + years);
|
|
208
|
+
months && d.setMonth(d.getMonth() + months);
|
|
209
|
+
typeof setMonth === 'number' && d.setMonth(setMonth);
|
|
210
|
+
this.calendarService.update({ calendarDate: d });
|
|
211
|
+
}
|
|
212
|
+
handleCellMouseLeave() {
|
|
213
|
+
this.calendarService.update({ hoverDate: null });
|
|
214
|
+
}
|
|
215
|
+
handleDayCellKeyUp($event, date) {
|
|
216
|
+
if ($event.key === 'Enter') {
|
|
217
|
+
this.handleDayCellClick(date);
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
if ($event.key === 'Tab') {
|
|
221
|
+
this.handleCellMouseEnter(date);
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
handleDayCellClick(date) {
|
|
226
|
+
if (this.isDateDisabled(date)) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
if (!this.range) {
|
|
230
|
+
this.endDate = null;
|
|
231
|
+
this.startDate = date;
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
if (this.startDate && this.endDate) {
|
|
235
|
+
this.startDate = null;
|
|
236
|
+
this.endDate = null;
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
if (!!this.startDate && !this.endDate) {
|
|
240
|
+
if (this.startDate && date < this.startDate) {
|
|
241
|
+
this.endDate = null;
|
|
242
|
+
this.startDate = date;
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
this.endDate = date;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
this.endDate = null;
|
|
250
|
+
this.startDate = date;
|
|
251
|
+
}
|
|
252
|
+
if (this.startDate && this.endDate) {
|
|
253
|
+
// @ts-ignore
|
|
254
|
+
if (isDateInRangeDisabled(this.startDate, this.endDate, this.disabledDates)) {
|
|
255
|
+
this.startDate = null;
|
|
256
|
+
this.endDate = null;
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
// let date = new Date(this.startDate);
|
|
260
|
+
// while (date < this.endDate) {
|
|
261
|
+
// date.setDate(date.getDate() + 1);
|
|
262
|
+
// if (this.isDateDisabled(date)) {
|
|
263
|
+
// this.startDate = null;
|
|
264
|
+
// this.endDate = null;
|
|
265
|
+
// break;
|
|
266
|
+
// }
|
|
267
|
+
// }
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
calendarStateSubscribe(subscribe = true) {
|
|
271
|
+
if (subscribe) {
|
|
272
|
+
this.calendarStateSubscription =
|
|
273
|
+
this.calendarService.calendarState$.subscribe(state => {
|
|
274
|
+
const keys = Object.keys(state);
|
|
275
|
+
for (const key of keys) {
|
|
276
|
+
// if (key in this) {
|
|
277
|
+
// @ts-ignore
|
|
278
|
+
this[key] = state[key];
|
|
279
|
+
// }
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
this.calendarStateSubscription?.unsubscribe();
|
|
285
|
+
}
|
|
286
|
+
ngOnDestroy() {
|
|
287
|
+
this.calendarStateSubscribe(false);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
CalendarMonthComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CalendarMonthComponent, deps: [{ token: i1.CalendarService }], target: i0.ɵɵFactoryTarget.Component });
|
|
291
|
+
CalendarMonthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: CalendarMonthComponent, selector: "c-calendar-month", inputs: { addMonths: "addMonths", startDate: "startDate", endDate: "endDate", disabledDates: "disabledDates", firstDayOfWeek: "firstDayOfWeek", locale: "locale", range: "range", weekdayFormat: "weekdayFormat", view: "view", maxDate: "maxDate", minDate: "minDate", calendarDate: "calendarDate" }, exportAs: ["cCalendarMonth"], ngImport: i0, template: "<table>\r\n <thead *ngIf=\"view === 'days'\">\r\n <tr>\r\n <th *ngFor=\"let weekDay of weekDays; index as i; count as cnt\" class=\"calendar-cell\">\r\n <div class=\"calendar-header-cell-inner\">\r\n {{ weekDay.date | calendarWeekday:weekdayFormat:locale }}\r\n </div>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody (mouseleave)=\"handleCellMouseLeave()\" [ngSwitch]=\"view\">\r\n <ng-container *ngSwitchCase=\"'years'\">\r\n <tr *ngFor=\"let yearsRow of listOfYears; index as rowIdx\">\r\n <td\r\n (click)=\"handleYearCellClick(year)\"\r\n (keyup)=\"handleYearCellKeyUp($event, year)\"\r\n *ngFor=\"let year of yearsRow; index as idx\"\r\n [ngClass]=\"year | calendarClassYear\"\r\n [tabindex]=\"0\"\r\n >\r\n <div class=\"calendar-cell-inner\">\r\n {{ yearNumber(year) }}\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'months'\">\r\n <tr *ngFor=\"let monthsRow of listOfMonths; index as rowIdx\">\r\n <td\r\n (click)=\"handleMonthCellClick(rowIdx, idx)\"\r\n (keyup)=\"handleMonthCellKeyUp($event, rowIdx, idx)\"\r\n *ngFor=\"let month of monthsRow; index as idx\"\r\n [ngClass]=\"calendarDate | calendarClassMonth:(rowIdx*3+idx)\"\r\n [tabindex]=\"0\"\r\n >\r\n <div class=\"calendar-cell-inner\">\r\n {{ month }}\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <tr *ngFor=\"let week of monthDetails; index as i\">\r\n <td\r\n (click)=\"dateObj.month === 'current' && handleDayCellClick(dateObj.date)\"\r\n (keyup)=\"dateObj.month === 'current' && handleDayCellKeyUp($event, dateObj.date)\"\r\n (mouseenter)=\"dateObj.month === 'current' && handleCellMouseEnter(dateObj.date)\"\r\n *ngFor=\"let dateObj of week; index as idx\"\r\n [cCalendarDay]=\"dateObj\"\r\n [ngClass]=\"dateObj | calendarClassDay:{minDate, maxDate, disabledDates, dateFilter}\"\r\n [tabindex]=\"isDateDisabled(dateObj.date) || dateObj.month !== 'current' ? -1 : 0\"\r\n [title]=\"calendarCellTitle(dateObj.date)\"\r\n >\r\n <div class=\"calendar-cell-inner\">\r\n {{ dateObj.date | calendarDay:dayFormat:locale }}\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n</table>\r\n\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.CalendarDayDirective, selector: "[cCalendarDay]", inputs: ["cCalendarDay"] }, { kind: "pipe", type: i4.CalendarClassYearPipe, name: "calendarClassYear" }, { kind: "pipe", type: i5.CalendarClassDayPipe, name: "calendarClassDay" }, { kind: "pipe", type: i6.CalendarClassMonthPipe, name: "calendarClassMonth" }, { kind: "pipe", type: i7.CalendarDayPipe, name: "calendarDay" }, { kind: "pipe", type: i8.CalendarWeekdayPipe, name: "calendarWeekday" }] });
|
|
292
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CalendarMonthComponent, decorators: [{
|
|
293
|
+
type: Component,
|
|
294
|
+
args: [{ selector: 'c-calendar-month', exportAs: 'cCalendarMonth', template: "<table>\r\n <thead *ngIf=\"view === 'days'\">\r\n <tr>\r\n <th *ngFor=\"let weekDay of weekDays; index as i; count as cnt\" class=\"calendar-cell\">\r\n <div class=\"calendar-header-cell-inner\">\r\n {{ weekDay.date | calendarWeekday:weekdayFormat:locale }}\r\n </div>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody (mouseleave)=\"handleCellMouseLeave()\" [ngSwitch]=\"view\">\r\n <ng-container *ngSwitchCase=\"'years'\">\r\n <tr *ngFor=\"let yearsRow of listOfYears; index as rowIdx\">\r\n <td\r\n (click)=\"handleYearCellClick(year)\"\r\n (keyup)=\"handleYearCellKeyUp($event, year)\"\r\n *ngFor=\"let year of yearsRow; index as idx\"\r\n [ngClass]=\"year | calendarClassYear\"\r\n [tabindex]=\"0\"\r\n >\r\n <div class=\"calendar-cell-inner\">\r\n {{ yearNumber(year) }}\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'months'\">\r\n <tr *ngFor=\"let monthsRow of listOfMonths; index as rowIdx\">\r\n <td\r\n (click)=\"handleMonthCellClick(rowIdx, idx)\"\r\n (keyup)=\"handleMonthCellKeyUp($event, rowIdx, idx)\"\r\n *ngFor=\"let month of monthsRow; index as idx\"\r\n [ngClass]=\"calendarDate | calendarClassMonth:(rowIdx*3+idx)\"\r\n [tabindex]=\"0\"\r\n >\r\n <div class=\"calendar-cell-inner\">\r\n {{ month }}\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <tr *ngFor=\"let week of monthDetails; index as i\">\r\n <td\r\n (click)=\"dateObj.month === 'current' && handleDayCellClick(dateObj.date)\"\r\n (keyup)=\"dateObj.month === 'current' && handleDayCellKeyUp($event, dateObj.date)\"\r\n (mouseenter)=\"dateObj.month === 'current' && handleCellMouseEnter(dateObj.date)\"\r\n *ngFor=\"let dateObj of week; index as idx\"\r\n [cCalendarDay]=\"dateObj\"\r\n [ngClass]=\"dateObj | calendarClassDay:{minDate, maxDate, disabledDates, dateFilter}\"\r\n [tabindex]=\"isDateDisabled(dateObj.date) || dateObj.month !== 'current' ? -1 : 0\"\r\n [title]=\"calendarCellTitle(dateObj.date)\"\r\n >\r\n <div class=\"calendar-cell-inner\">\r\n {{ dateObj.date | calendarDay:dayFormat:locale }}\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n</table>\r\n\r\n" }]
|
|
295
|
+
}], ctorParameters: function () { return [{ type: i1.CalendarService }]; }, propDecorators: { addMonths: [{
|
|
296
|
+
type: Input
|
|
297
|
+
}], startDate: [{
|
|
298
|
+
type: Input
|
|
299
|
+
}], endDate: [{
|
|
300
|
+
type: Input
|
|
301
|
+
}], disabledDates: [{
|
|
302
|
+
type: Input
|
|
303
|
+
}], firstDayOfWeek: [{
|
|
304
|
+
type: Input
|
|
305
|
+
}], locale: [{
|
|
306
|
+
type: Input
|
|
307
|
+
}], range: [{
|
|
308
|
+
type: Input
|
|
309
|
+
}], weekdayFormat: [{
|
|
310
|
+
type: Input
|
|
311
|
+
}], view: [{
|
|
312
|
+
type: Input
|
|
313
|
+
}], maxDate: [{
|
|
314
|
+
type: Input
|
|
315
|
+
}], minDate: [{
|
|
316
|
+
type: Input
|
|
317
|
+
}], calendarDate: [{
|
|
318
|
+
type: Input
|
|
319
|
+
}] } });
|
|
320
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbW9udGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci1tb250aC9jYWxlbmRhci1tb250aC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLW1vbnRoL2NhbGVuZGFyLW1vbnRoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdwRixPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixjQUFjLEVBQ2QsUUFBUSxFQUNSLGNBQWMsRUFDZCxxQkFBcUIsRUFDckIsT0FBTyxFQUNSLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7QUFVM0IsTUFBTSxPQUFPLHNCQUFzQjtJQUVqQyxZQUNVLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUtqQyxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBYy9CLGVBQVUsR0FBZ0IsSUFBSSxDQUFDO1FBYy9CLGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBYXZCLG1CQUFjLEdBQXdCLEVBQUUsQ0FBQztRQW1CekMsb0JBQWUsR0FBVyxDQUFDLENBQUM7UUFjNUIsWUFBTyxHQUFXLFNBQVMsQ0FBQztRQVk1QixXQUFNLEdBQVksS0FBSyxDQUFDO1FBRWhDOzs7O1dBSUc7UUFDTSxrQkFBYSxHQUFzQixPQUFPLENBQUM7UUFlNUMsVUFBSyxHQUFnQyxNQUFNLENBQUM7UUFZNUMsYUFBUSxHQUFnQixJQUFJLENBQUM7UUFZN0IsYUFBUSxH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QixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7O21IQTlVVSxzQkFBc0I7dUdBQXRCLHNCQUFzQiw4WEN0Qm5DLDY0RUE4REE7MkZEeENhLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSxrQkFBa0IsWUFHbEIsZ0JBQWdCO3NHQVVqQixTQUFTO3NCQUFqQixLQUFLO2dCQU9GLFNBQVM7c0JBRFosS0FBSztnQkFlRixPQUFPO3NCQURWLEtBQUs7Z0JBZUYsYUFBYTtzQkFEaEIsS0FBSztnQkFvQkYsY0FBYztzQkFEakIsS0FBSztnQkFjRixNQUFNO3NCQURULEtBQUs7Z0JBY0YsS0FBSztzQkFEUixLQUFLO2dCQWNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBUUYsSUFBSTtzQkFEUCxLQUFLO2dCQWNGLE9BQU87c0JBRFYsS0FBSztnQkFhRixPQUFPO3NCQURWLEtBQUs7Z0JBa0JGLFlBQVk7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgY3JlYXRlR3JvdXBzSW5BcnJheSxcclxuICBnZXRNb250aERldGFpbHMsXHJcbiAgZ2V0TW9udGhzTmFtZXMsXHJcbiAgZ2V0WWVhcnMsXHJcbiAgaXNEYXRlRGlzYWJsZWQsXHJcbiAgaXNEYXRlSW5SYW5nZURpc2FibGVkLFxyXG4gIHRyeURhdGVcclxufSBmcm9tICcuLi9jYWxlbmRhci51dGlscyc7XHJcblxyXG5pbXBvcnQgeyBDYWxlbmRhclNlcnZpY2UsIERhdGVGaWx0ZXJUeXBlLCBEYXlGb3JtYXRUeXBlLCBXZWVrZGF5Rm9ybWF0VHlwZSB9IGZyb20gJy4uL2NhbGVuZGFyLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjLWNhbGVuZGFyLW1vbnRoJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItbW9udGguY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLW1vbnRoLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZXhwb3J0QXM6ICdjQ2FsZW5kYXJNb250aCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENhbGVuZGFyTW9udGhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjYWxlbmRhclNlcnZpY2U6IENhbGVuZGFyU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5jYWxlbmRhclN0YXRlU3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBhZGRNb250aHM6IG51bWJlciA9IDA7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWwgc2VsZWN0ZWQgZGF0ZS5cclxuICAgKiBAdHlwZSAgKERhdGUgfCBudWxsKVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHN0YXJ0RGF0ZSh2YWx1ZTogRGF0ZSB8IG51bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX3N0YXJ0RGF0ZSA9ICEhdmFsdWUgPyB0cnlEYXRlKHZhbHVlLCAnc3RhcnREYXRlJykgOiBudWxsO1xyXG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgc3RhcnREYXRlOiB0aGlzLl9zdGFydERhdGUgfSk7XHJcbiAgfVxyXG4gIGdldCBzdGFydERhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3RhcnREYXRlO1xyXG4gIH1cclxuICBfc3RhcnREYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWwgc2VsZWN0ZWQgdG8gZGF0ZSAocmFuZ2UpLlxyXG4gICAqIEB0eXBlICAoRGF0ZSB8IG51bGwpXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgZW5kRGF0ZSh2YWx1ZTogRGF0ZSB8IG51bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX2VuZERhdGUgPSAhIXZhbHVlID8gdHJ5RGF0ZSh2YWx1ZSwgJ2VuZERhdGUnKSA6IG51bGw7XHJcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBlbmREYXRlOiB0aGlzLl9lbmREYXRlIH0pO1xyXG4gIH1cclxuICBnZXQgZW5kRGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9lbmREYXRlO1xyXG4gIH1cclxuICBfZW5kRGF0ZTogKERhdGUgfCBudWxsKSA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNwZWNpZnkgdGhlIGxpc3Qgb2YgZGF0ZXMgdGhhdCBjYW5ub3QgYmUgc2VsZWN0ZWQuXHJcbiAgICogQHR5cGUgIChEYXRlW10gfCBEYXRlW11bXSlcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBkaXNhYmxlZERhdGVzKHZhbHVlOiBEYXRlW10gfCBEYXRlW11bXSkge1xyXG4gICAgdGhpcy5fZGlzYWJsZWREYXRlcyA9IHZhbHVlO1xyXG4gIH1cclxuICBnZXQgZGlzYWJsZWREYXRlcygpOiBEYXRlW10gfCBEYXRlW11bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWREYXRlcztcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWREYXRlczogKERhdGVbXSB8IERhdGVbXVtdKSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBkYXkgb2Ygc3RhcnQgd2Vlay5cclxuICAgKiAtIDAgLSBTdW5kYXksXHJcbiAgICogLSAxIC0gTW9uZGF5LFxyXG4gICAqIC0gMiAtIFR1ZXNkYXksXHJcbiAgICogLSAzIC0gV2VkbmVzZGF5LFxyXG4gICAqIC0gNCAtIFRodXJzZGF5LFxyXG4gICAqIC0gNSAtIEZyaWRheSxcclxuICAgKiAtIDYgLSBTYXR1cmRheSxcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBmaXJzdERheU9mV2Vlayh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9maXJzdERheU9mV2VlayA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IGZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlyc3REYXlPZldlZWs7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2ZpcnN0RGF5T2ZXZWVrOiBudW1iZXIgPSAxO1xyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBkZWZhdWx0IGxvY2FsZSBmb3IgY29tcG9uZW50cy4gSWYgbm90IHNldCwgaXQgaXMgaW5oZXJpdGVkIGZyb20gdGhlIGJyb3dzZXIuXHJcbiAgICogQGRlZmF1bHQgJ2RlZmF1bHQnXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgbG9jYWxlKHZhbHVlKSB7XHJcbiAgICB0aGlzLl9sb2NhbGUgPSB2YWx1ZTtcclxuICAgIHRoaXMubGlzdE9mTW9udGhzID0gY3JlYXRlR3JvdXBzSW5BcnJheShnZXRNb250aHNOYW1lcyh2YWx1ZSksIDQpO1xyXG4gIH1cclxuICBnZXQgbG9jYWxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xvY2FsZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbG9jYWxlOiBzdHJpbmcgPSAnZGVmYXVsdCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFsbG93IHJhbmdlIHNlbGVjdGlvbi5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCByYW5nZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fcmFuZ2UgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH1cclxuICBnZXQgcmFuZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2U7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3JhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCBsZW5ndGggb3IgZm9ybWF0IG9mIGRheSBuYW1lLlxyXG4gICAqIEB0eXBlIG51bWJlciB8ICdsb25nJyB8ICduYXJyb3cnIHwgJ3Nob3J0J1xyXG4gICAqIEBkZWZhdWx0ICdzaG9ydCdcclxuICAgKi9cclxuICBASW5wdXQoKSB3ZWVrZGF5Rm9ybWF0OiBXZWVrZGF5Rm9ybWF0VHlwZSA9ICdzaG9ydCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCBjYWxlbmRhciB2aWV3LlxyXG4gICAqIEB0eXBlICdkYXlzJyB8ICdtb250aHMnIHwgJ3llYXJzJ1xyXG4gICAqIEBkZWZhdWx0ICdkYXlzJ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZpZXcodmFsdWUpIHtcclxuICAgIHRoaXMuX3ZpZXcgPSB2YWx1ZTtcclxuICAgIHRoaXMubGlzdE9mWWVhcnMgPSBjcmVhdGVHcm91cHNJbkFycmF5KGdldFllYXJzKHRoaXMuZGF0ZS5nZXRGdWxsWWVhcigpKSwgNCk7XHJcbiAgfVxyXG4gIGdldCB2aWV3KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZpZXc7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3ZpZXc6ICdkYXlzJyB8ICdtb250aHMnIHwgJ3llYXJzJyA9ICdkYXlzJztcclxuXHJcbiAgLyoqXHJcbiAgICogTWF4IHNlbGVjdGFibGUgZGF0ZS5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBtYXhEYXRlKHZhbHVlOiBEYXRlIHwgbnVsbCkge1xyXG4gICAgdGhpcy5fbWF4RGF0ZSA9IHZhbHVlID8gdHJ5RGF0ZSh2YWx1ZSwgJ21heERhdGUnKSA6IG51bGw7XHJcbiAgfVxyXG4gIGdldCBtYXhEYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX21heERhdGU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX21heERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogTWluIHNlbGVjdGFibGUgZGF0ZS5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBtaW5EYXRlKHZhbHVlOiBEYXRlIHwgbnVsbCkge1xyXG4gICAgdGhpcy5fbWluRGF0ZSA9IHZhbHVlID8gdHJ5RGF0ZSh2YWx1ZSwgJ21pbkRhdGUnKSA6IG51bGw7XHJcbiAgfVxyXG4gIGdldCBtaW5EYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pbkRhdGU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX21pbkRhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgbGlzdE9mTW9udGhzID0gY3JlYXRlR3JvdXBzSW5BcnJheShnZXRNb250aHNOYW1lcyh0aGlzLmxvY2FsZSksIDQpO1xyXG4gIGxpc3RPZlllYXJzID0gY3JlYXRlR3JvdXBzSW5BcnJheShnZXRZZWFycyh0aGlzLmRhdGUuZ2V0RnVsbFllYXIoKSksIDQpO1xyXG4gIHByaXZhdGUgY2FsZW5kYXJTdGF0ZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmYXVsdCBkYXRlIG9mIHRoZSBjb21wb25lbnRcclxuICAgKiBAdHlwZSBEYXRlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgY2FsZW5kYXJEYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyKSB7XHJcbiAgICBjb25zdCBfdmFsdWUgPSBuZXcgRGF0ZSh0cnlEYXRlKCh2YWx1ZSA/PyB0aGlzLnN0YXJ0RGF0ZSA/PyBuZXcgRGF0ZSgpKSwgJ2NhbGVuZGFyRGF0ZScpKTtcclxuICAgIGlmICh0aGlzLl9jYWxlbmRhckRhdGUuZ2V0VGltZSgpICE9PSBfdmFsdWUuZ2V0VGltZSgpKSB7XHJcbiAgICAgIHRoaXMubGlzdE9mWWVhcnMgPSBjcmVhdGVHcm91cHNJbkFycmF5KGdldFllYXJzKF92YWx1ZS5nZXRGdWxsWWVhcigpKSwgNCk7XHJcbiAgICAgIHRoaXMuX2NhbGVuZGFyRGF0ZSA9IG5ldyBEYXRlKF92YWx1ZS5zZXREYXRlKDEpKTtcclxuICAgICAgdGhpcy5zZXRNb250aERldGFpbHModGhpcy5kYXRlKTtcclxuICAgICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgY2FsZW5kYXJEYXRlOiB0aGlzLl9jYWxlbmRhckRhdGUgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldCBjYWxlbmRhckRhdGUoKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FsZW5kYXJEYXRlO1xyXG4gIH1cclxuICBwcml2YXRlIF9jYWxlbmRhckRhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICBkYXRlRmlsdGVyITogRGF0ZUZpbHRlclR5cGU7XHJcblxyXG4gIGdldCBkYXRlKCkge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuY2FsZW5kYXJEYXRlPy5nZXRGdWxsWWVhcigpLCB0aGlzLmNhbGVuZGFyRGF0ZT8uZ2V0TW9udGgoKSArIHRoaXMuYWRkTW9udGhzKTtcclxuICB9XHJcbiAgZGF5Rm9ybWF0ITogRGF5Rm9ybWF0VHlwZTtcclxuXHJcbiAgcHJpdmF0ZSBfbW9udGhEZXRhaWxzITogeyBkYXRlOiBEYXRlOyBtb250aDogc3RyaW5nOyB9W11bXTtcclxuXHJcbiAgZ2V0IG1vbnRoRGV0YWlscygpOiB7IGRhdGU6IERhdGU7IG1vbnRoOiBzdHJpbmc7IH1bXVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9tb250aERldGFpbHM7XHJcbiAgfVxyXG5cclxuICBnZXQgd2Vla0RheXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tb250aERldGFpbHNbMF07XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubGlzdE9mTW9udGhzID0gY3JlYXRlR3JvdXBzSW5BcnJheShnZXRNb250aHNOYW1lcyh0aGlzLmxvY2FsZSksIDQpO1xyXG4gICAgdGhpcy5zZXRNb250aERldGFpbHModGhpcy5kYXRlKTtcclxuICB9XHJcblxyXG4gIHNldE1vbnRoRGV0YWlscyhkYXRlOiBEYXRlID0gdGhpcy5kYXRlKSB7XHJcbiAgICB0aGlzLl9tb250aERldGFpbHMgPSBnZXRNb250aERldGFpbHMoXHJcbiAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgZGF0ZS5nZXRNb250aCgpLFxyXG4gICAgICB0aGlzLmZpcnN0RGF5T2ZXZWVrXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgeWVhck51bWJlcih5ZWFyOiBhbnkpIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCAwKS50b0xvY2FsZURhdGVTdHJpbmcodGhpcy5sb2NhbGUsIHsgeWVhcjogJ251bWVyaWMnIH0pO1xyXG4gIH1cclxuXHJcbiAgaXNEYXRlRGlzYWJsZWQoZGF0ZTogRGF0ZSkge1xyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgcmV0dXJuIGlzRGF0ZURpc2FibGVkKGRhdGUsIHRoaXMubWluRGF0ZSwgdGhpcy5tYXhEYXRlLCB0aGlzLmRpc2FibGVkRGF0ZXMpIHx8ICh0aGlzLmRhdGVGaWx0ZXIgPyAhdGhpcy5kYXRlRmlsdGVyKGRhdGUpIDogZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgY2FsZW5kYXJDZWxsVGl0bGUoZGF0ZTogRGF0ZSkge1xyXG4gICAgcmV0dXJuIGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKHRoaXMubG9jYWxlKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNlbGxNb3VzZUVudGVyKGhvdmVyRGF0ZTogRGF0ZSkge1xyXG4gICAgY29uc3QgaG92ZXJWYWx1ZSA9IHRoaXMuaXNEYXRlRGlzYWJsZWQoaG92ZXJEYXRlKSA/IG51bGwgOiBob3ZlckRhdGU7XHJcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBob3ZlckRhdGU6IGhvdmVyVmFsdWUgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVZZWFyQ2VsbENsaWNrKHllYXI6IGFueSkge1xyXG4gICAgY29uc3QgY2FsZW5kYXJEYXRlID0gbmV3IERhdGUoeWVhciwgdGhpcy5jYWxlbmRhckRhdGUuZ2V0TW9udGgoKSwgMSk7XHJcbiAgICB0aGlzLnZpZXcgPSAnbW9udGhzJztcclxuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHZpZXc6IHRoaXMudmlldywgY2FsZW5kYXJEYXRlOiBjYWxlbmRhckRhdGUgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVZZWFyQ2VsbEtleVVwKCRldmVudDogS2V5Ym9hcmRFdmVudCwgeWVhcjogYW55KSB7XHJcbiAgICBpZiAoJGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICB0aGlzLmhhbmRsZVllYXJDZWxsQ2xpY2soeWVhcik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZU1vbnRoQ2VsbEtleVVwKCRldmVudDogS2V5Ym9hcmRFdmVudCwgaTogbnVtYmVyLCBpZHg6IG51bWJlcikge1xyXG4gICAgaWYgKCRldmVudC5rZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgdGhpcy5oYW5kbGVNb250aENlbGxDbGljayhpLCBpZHgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVNb250aENlbGxDbGljayhpOiBudW1iZXIsIGlkeDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNldENhbGVuZGFyUGFnZSgwLCAwLCBpICogMyArIGlkeCAtIHRoaXMuYWRkTW9udGhzKTtcclxuICAgIHRoaXMudmlldyA9ICdkYXlzJztcclxuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHZpZXc6IHRoaXMudmlldyB9KTtcclxuICB9XHJcblxyXG4gIHNldENhbGVuZGFyUGFnZSh5ZWFyczogbnVtYmVyLCBtb250aHMgPSAwLCBzZXRNb250aD86IG51bWJlcikge1xyXG4gICAgY29uc3QgeWVhciA9IHRoaXMuZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgbW9udGggPSB0aGlzLmRhdGUuZ2V0TW9udGgoKTtcclxuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCk7XHJcblxyXG4gICAgeWVhcnMgJiYgZC5zZXRGdWxsWWVhcihkLmdldEZ1bGxZZWFyKCkgKyB5ZWFycyk7XHJcbiAgICBtb250aHMgJiYgZC5zZXRNb250aChkLmdldE1vbnRoKCkgKyBtb250aHMpO1xyXG4gICAgdHlwZW9mIHNldE1vbnRoID09PSAnbnVtYmVyJyAmJiBkLnNldE1vbnRoKHNldE1vbnRoKTtcclxuXHJcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBjYWxlbmRhckRhdGU6IGQgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDZWxsTW91c2VMZWF2ZSgpIHtcclxuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGhvdmVyRGF0ZTogbnVsbCB9KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZURheUNlbGxLZXlVcCgkZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGRhdGU6IERhdGUpIHtcclxuICAgIGlmICgkZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlRGF5Q2VsbENsaWNrKGRhdGUpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoJGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcclxuICAgICAgdGhpcy5oYW5kbGVDZWxsTW91c2VFbnRlcihkYXRlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRGF5Q2VsbENsaWNrKGRhdGU6IERhdGUpIHtcclxuICAgIGlmICh0aGlzLmlzRGF0ZURpc2FibGVkKGRhdGUpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMucmFuZ2UpIHtcclxuICAgICAgdGhpcy5lbmREYXRlID0gbnVsbDtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBkYXRlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc3RhcnREYXRlICYmIHRoaXMuZW5kRGF0ZSkge1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuZW5kRGF0ZSA9IG51bGw7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoISF0aGlzLnN0YXJ0RGF0ZSAmJiAhdGhpcy5lbmREYXRlKSB7XHJcbiAgICAgIGlmICh0aGlzLnN0YXJ0RGF0ZSAmJiBkYXRlIDwgdGhpcy5zdGFydERhdGUpIHtcclxuICAgICAgICB0aGlzLmVuZERhdGUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuc3RhcnREYXRlID0gZGF0ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmVuZERhdGUgPSBkYXRlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVuZERhdGUgPSBudWxsO1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IGRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc3RhcnREYXRlICYmIHRoaXMuZW5kRGF0ZSkge1xyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIGlmIChpc0RhdGVJblJhbmdlRGlzYWJsZWQodGhpcy5zdGFydERhdGUsIHRoaXMuZW5kRGF0ZSwgdGhpcy5kaXNhYmxlZERhdGVzKSkge1xyXG4gICAgICAgIHRoaXMuc3RhcnREYXRlID0gbnVsbDtcclxuICAgICAgICB0aGlzLmVuZERhdGUgPSBudWxsO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gbGV0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZSk7XHJcbiAgICAgIC8vIHdoaWxlIChkYXRlIDwgdGhpcy5lbmREYXRlKSB7XHJcbiAgICAgIC8vICAgZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgMSk7XHJcbiAgICAgIC8vICAgaWYgKHRoaXMuaXNEYXRlRGlzYWJsZWQoZGF0ZSkpIHtcclxuICAgICAgLy8gICAgIHRoaXMuc3RhcnREYXRlID0gbnVsbDtcclxuICAgICAgLy8gICAgIHRoaXMuZW5kRGF0ZSA9IG51bGw7XHJcbiAgICAgIC8vICAgICBicmVhaztcclxuICAgICAgLy8gICB9XHJcbiAgICAgIC8vIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhbGVuZGFyU3RhdGVTdWJzY3JpYmUoc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKHN1YnNjcmliZSkge1xyXG4gICAgICB0aGlzLmNhbGVuZGFyU3RhdGVTdWJzY3JpcHRpb24gPVxyXG4gICAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNhbGVuZGFyU3RhdGUkLnN1YnNjcmliZShzdGF0ZSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoc3RhdGUpO1xyXG4gICAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xyXG4gICAgICAgICAgICAvLyBpZiAoa2V5IGluIHRoaXMpIHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBzdGF0ZVtrZXldO1xyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY2FsZW5kYXJTdGF0ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jYWxlbmRhclN0YXRlU3Vic2NyaWJlKGZhbHNlKTtcclxuICB9XHJcbn1cclxuIiwiPHRhYmxlPlxyXG4gIDx0aGVhZCAqbmdJZj1cInZpZXcgPT09ICdkYXlzJ1wiPlxyXG4gIDx0cj5cclxuICAgIDx0aCAqbmdGb3I9XCJsZXQgd2Vla0RheSBvZiB3ZWVrRGF5czsgaW5kZXggYXMgaTsgY291bnQgYXMgY250XCIgY2xhc3M9XCJjYWxlbmRhci1jZWxsXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1oZWFkZXItY2VsbC1pbm5lclwiPlxyXG4gICAgICAgIHt7IHdlZWtEYXkuZGF0ZSB8IGNhbGVuZGFyV2Vla2RheTp3ZWVrZGF5Rm9ybWF0OmxvY2FsZSB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvdGg+XHJcbiAgPC90cj5cclxuICA8L3RoZWFkPlxyXG4gIDx0Ym9keSAobW91c2VsZWF2ZSk9XCJoYW5kbGVDZWxsTW91c2VMZWF2ZSgpXCIgW25nU3dpdGNoXT1cInZpZXdcIj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIneWVhcnMnXCI+XHJcbiAgICA8dHIgKm5nRm9yPVwibGV0IHllYXJzUm93IG9mIGxpc3RPZlllYXJzOyBpbmRleCBhcyByb3dJZHhcIj5cclxuICAgICAgPHRkXHJcbiAgICAgICAgKGNsaWNrKT1cImhhbmRsZVllYXJDZWxsQ2xpY2soeWVhcilcIlxyXG4gICAgICAgIChrZXl1cCk9XCJoYW5kbGVZZWFyQ2VsbEtleVVwKCRldmVudCwgeWVhcilcIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCB5ZWFyIG9mIHllYXJzUm93OyBpbmRleCBhcyBpZHhcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInllYXIgfCBjYWxlbmRhckNsYXNzWWVhclwiXHJcbiAgICAgICAgW3RhYmluZGV4XT1cIjBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWNlbGwtaW5uZXJcIj5cclxuICAgICAgICAgIHt7IHllYXJOdW1iZXIoeWVhcikgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC90ZD5cclxuICAgIDwvdHI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21vbnRocydcIj5cclxuICAgIDx0ciAqbmdGb3I9XCJsZXQgbW9udGhzUm93IG9mIGxpc3RPZk1vbnRoczsgaW5kZXggYXMgcm93SWR4XCI+XHJcbiAgICAgIDx0ZFxyXG4gICAgICAgIChjbGljayk9XCJoYW5kbGVNb250aENlbGxDbGljayhyb3dJZHgsIGlkeClcIlxyXG4gICAgICAgIChrZXl1cCk9XCJoYW5kbGVNb250aENlbGxLZXlVcCgkZXZlbnQsIHJvd0lkeCwgaWR4KVwiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IG1vbnRoIG9mIG1vbnRoc1JvdzsgaW5kZXggYXMgaWR4XCJcclxuICAgICAgICBbbmdDbGFzc109XCJjYWxlbmRhckRhdGUgfCBjYWxlbmRhckNsYXNzTW9udGg6KHJvd0lkeCozK2lkeClcIlxyXG4gICAgICAgIFt0YWJpbmRleF09XCIwXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1jZWxsLWlubmVyXCI+XHJcbiAgICAgICAgICB7eyBtb250aCB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC90cj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICA8dHIgKm5nRm9yPVwibGV0IHdlZWsgb2YgbW9udGhEZXRhaWxzOyBpbmRleCBhcyBpXCI+XHJcbiAgICAgIDx0ZFxyXG4gICAgICAgIChjbGljayk9XCJkYXRlT2JqLm1vbnRoID09PSAnY3VycmVudCcgJiYgaGFuZGxlRGF5Q2VsbENsaWNrKGRhdGVPYmouZGF0ZSlcIlxyXG4gICAgICAgIChrZXl1cCk9XCJkYXRlT2JqLm1vbnRoID09PSAnY3VycmVudCcgJiYgaGFuZGxlRGF5Q2VsbEtleVVwKCRldmVudCwgZGF0ZU9iai5kYXRlKVwiXHJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwiZGF0ZU9iai5tb250aCA9PT0gJ2N1cnJlbnQnICYmIGhhbmRsZUNlbGxNb3VzZUVudGVyKGRhdGVPYmouZGF0ZSlcIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBkYXRlT2JqIG9mIHdlZWs7IGluZGV4IGFzIGlkeFwiXHJcbiAgICAgICAgW2NDYWxlbmRhckRheV09XCJkYXRlT2JqXCJcclxuICAgICAgICBbbmdDbGFzc109XCJkYXRlT2JqIHwgY2FsZW5kYXJDbGFzc0RheTp7bWluRGF0ZSwgbWF4RGF0ZSwgZGlzYWJsZWREYXRlcywgZGF0ZUZpbHRlcn1cIlxyXG4gICAgICAgIFt0YWJpbmRleF09XCJpc0RhdGVEaXNhYmxlZChkYXRlT2JqLmRhdGUpIHx8IGRhdGVPYmoubW9udGggIT09ICdjdXJyZW50JyA/IC0xIDogMFwiXHJcbiAgICAgICAgW3RpdGxlXT1cImNhbGVuZGFyQ2VsbFRpdGxlKGRhdGVPYmouZGF0ZSlcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWNlbGwtaW5uZXJcIj5cclxuICAgICAgICAgIHt7IGRhdGVPYmouZGF0ZSB8IGNhbGVuZGFyRGF5OmRheUZvcm1hdDpsb2NhbGUgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC90ZD5cclxuICAgIDwvdHI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPC90Ym9keT5cclxuPC90YWJsZT5cclxuXHJcbiJdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class CalendarWeekdayPipe {
|
|
4
|
+
transform(date, weekdayFormat = 'short', locale = 'default') {
|
|
5
|
+
return typeof weekdayFormat === 'function'
|
|
6
|
+
? weekdayFormat(date)
|
|
7
|
+
: typeof weekdayFormat === 'string'
|
|
8
|
+
? date.toLocaleDateString(locale, { weekday: weekdayFormat })
|
|
9
|
+
: date.toLocaleDateString(locale, { weekday: 'long' }).slice(0, weekdayFormat);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
CalendarWeekdayPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CalendarWeekdayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
13
|
+
CalendarWeekdayPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.1.0", ngImport: i0, type: CalendarWeekdayPipe, name: "calendarWeekday" });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CalendarWeekdayPipe, decorators: [{
|
|
15
|
+
type: Pipe,
|
|
16
|
+
args: [{
|
|
17
|
+
name: 'calendarWeekday'
|
|
18
|
+
}]
|
|
19
|
+
}] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItd2Vla2RheS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci1tb250aC9jYWxlbmRhci13ZWVrZGF5LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsU0FBUyxDQUFDLElBQVUsRUFBRSxnQkFBbUMsT0FBTyxFQUFFLFNBQWlCLFNBQVM7UUFDMUYsT0FBTyxPQUFPLGFBQWEsS0FBSyxVQUFVO1lBQ3hDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxPQUFPLGFBQWEsS0FBSyxRQUFRO2dCQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQztnQkFDN0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7O2dIQVJVLG1CQUFtQjs4R0FBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBSC9CLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGlCQUFpQjtpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFdlZWtkYXlGb3JtYXRUeXBlIH0gZnJvbSAnLi4vY2FsZW5kYXIuc2VydmljZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2NhbGVuZGFyV2Vla2RheSdcclxufSlcclxuZXhwb3J0IGNsYXNzIENhbGVuZGFyV2Vla2RheVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgdHJhbnNmb3JtKGRhdGU6IERhdGUsIHdlZWtkYXlGb3JtYXQ6IFdlZWtkYXlGb3JtYXRUeXBlID0gJ3Nob3J0JywgbG9jYWxlOiBzdHJpbmcgPSAnZGVmYXVsdCcpOiAoc3RyaW5nIHwgbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHdlZWtkYXlGb3JtYXQgPT09ICdmdW5jdGlvbidcclxuICAgICAgPyB3ZWVrZGF5Rm9ybWF0KGRhdGUpXHJcbiAgICAgIDogdHlwZW9mIHdlZWtkYXlGb3JtYXQgPT09ICdzdHJpbmcnXHJcbiAgICAgICAgPyBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUsIHsgd2Vla2RheTogd2Vla2RheUZvcm1hdCB9KVxyXG4gICAgICAgIDogZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCB7IHdlZWtkYXk6ICdsb25nJyB9KS5zbGljZSgwLCB3ZWVrZGF5Rm9ybWF0KTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../calendar.service";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "../../button/button.directive";
|
|
6
|
+
export class CalendarNavigationComponent {
|
|
7
|
+
constructor(calendarService) {
|
|
8
|
+
this.calendarService = calendarService;
|
|
9
|
+
this.addMonths = 0;
|
|
10
|
+
this._calendarDate = new Date();
|
|
11
|
+
this.navigation = true;
|
|
12
|
+
this.navYearFirst = false;
|
|
13
|
+
this.locale = 'default';
|
|
14
|
+
this.view = 'days';
|
|
15
|
+
this.navigationClick = new EventEmitter();
|
|
16
|
+
this.calendarStateSubscribe();
|
|
17
|
+
}
|
|
18
|
+
set calendarDate(value) {
|
|
19
|
+
this._calendarDate = value;
|
|
20
|
+
}
|
|
21
|
+
;
|
|
22
|
+
get calendarDate() {
|
|
23
|
+
return this._calendarDate;
|
|
24
|
+
}
|
|
25
|
+
get date() {
|
|
26
|
+
return new Date(this.calendarDate.getFullYear(), this.calendarDate.getMonth() + this.addMonths);
|
|
27
|
+
}
|
|
28
|
+
get hostClasses() {
|
|
29
|
+
return {
|
|
30
|
+
'calendar-nav': true
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
ngOnDestroy() {
|
|
34
|
+
this.calendarStateSubscribe(false);
|
|
35
|
+
}
|
|
36
|
+
calendarStateSubscribe(subscribe = true) {
|
|
37
|
+
if (subscribe) {
|
|
38
|
+
this.calendarStateSubscription =
|
|
39
|
+
this.calendarService.calendarState$.subscribe(state => {
|
|
40
|
+
const keys = Object.keys(state);
|
|
41
|
+
for (const key of keys) {
|
|
42
|
+
if (key in this) {
|
|
43
|
+
// @ts-ignore
|
|
44
|
+
this[key] = state[key];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
this.calendarStateSubscription.unsubscribe();
|
|
51
|
+
}
|
|
52
|
+
setView(view) {
|
|
53
|
+
this.view = view;
|
|
54
|
+
this.calendarService.update({ view: view });
|
|
55
|
+
}
|
|
56
|
+
handleNavigationClick(direction, years = false) {
|
|
57
|
+
this.navigationClick.emit({ direction, years: years });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
CalendarNavigationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CalendarNavigationComponent, deps: [{ token: i1.CalendarService }], target: i0.ɵɵFactoryTarget.Component });
|
|
61
|
+
CalendarNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: CalendarNavigationComponent, selector: "c-calendar-navigation", inputs: { addMonths: "addMonths", calendarDate: "calendarDate", navigation: "navigation", navYearFirst: "navYearFirst" }, outputs: { navigationClick: "navigationClick" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<div *ngIf=\"navigation\" class=\"calendar-nav-prev\">\r\n <button\r\n (click)=\"handleNavigationClick('prev', true)\"\r\n cButton\r\n color=\"transparent\"\r\n size=\"sm\"\r\n tabindex=\"0\"\r\n >\r\n <span class=\"calendar-nav-icon calendar-nav-icon-double-prev\"></span>\r\n </button>\r\n <button\r\n (click)=\"handleNavigationClick('prev')\"\r\n *ngIf=\"view === 'days'\"\r\n cButton\r\n color=\"transparent\"\r\n size=\"sm\"\r\n tabindex=\"0\"\r\n >\r\n <span class=\"calendar-nav-icon calendar-nav-icon-prev\"></span>\r\n </button>\r\n</div>\r\n<div class=\"calendar-nav-date\" [ngStyle]=\"navYearFirst ? { display: 'flex', justifyContent: 'center' } : {}\">\r\n <button\r\n (click)=\"setView('months')\"\r\n *ngIf=\"view === 'days'\"\r\n cButton\r\n color=\"transparent\"\r\n size=\"sm\"\r\n tabindex=\"0\"\r\n >\r\n {{ date.toLocaleDateString(locale, { month: 'long' }) }}\r\n </button>\r\n <button (click)=\"setView('years')\" cButton color=\"transparent\" size=\"sm\" tabindex=\"0\" [ngStyle]=\"navYearFirst ? { order: '-1' } : {}\">\r\n {{ date.toLocaleDateString(locale, { year: 'numeric' }) }}\r\n </button>\r\n</div>\r\n<div *ngIf=\"navigation\" class=\"calendar-nav-next\">\r\n <button\r\n (click)=\"handleNavigationClick('next')\"\r\n *ngIf=\"view === 'days'\"\r\n cButton\r\n color=\"transparent\"\r\n size=\"sm\"\r\n tabindex=\"0\"\r\n >\r\n <span class=\"calendar-nav-icon calendar-nav-icon-next\"></span>\r\n </button>\r\n <button\r\n (click)=\"handleNavigationClick('next', true)\"\r\n cButton\r\n color=\"transparent\"\r\n size=\"sm\"\r\n tabindex=\"0\"\r\n >\r\n <span class=\"calendar-nav-icon calendar-nav-icon-double-next\"></span>\r\n </button>\r\n</div>\r\n", styles: [".btn-transparent:focus-visible{outline:-webkit-focus-ring-color auto 1px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.ButtonDirective, selector: "[cButton]", inputs: ["active", "color", "disabled", "shape", "size", "type", "variant"], exportAs: ["cButton"] }] });
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CalendarNavigationComponent, decorators: [{
|
|
63
|
+
type: Component,
|
|
64
|
+
args: [{ selector: 'c-calendar-navigation', template: "<div *ngIf=\"navigation\" class=\"calendar-nav-prev\">\r\n <button\r\n (click)=\"handleNavigationClick('prev', true)\"\r\n cButton\r\n color=\"transparent\"\r\n size=\"sm\"\r\n tabindex=\"0\"\r\n >\r\n <span class=\"calendar-nav-icon calendar-nav-icon-double-prev\"></span>\r\n </button>\r\n <button\r\n (click)=\"handleNavigationClick('prev')\"\r\n *ngIf=\"view === 'days'\"\r\n cButton\r\n color=\"transparent\"\r\n size=\"sm\"\r\n tabindex=\"0\"\r\n >\r\n <span class=\"calendar-nav-icon calendar-nav-icon-prev\"></span>\r\n </button>\r\n</div>\r\n<div class=\"calendar-nav-date\" [ngStyle]=\"navYearFirst ? { display: 'flex', justifyContent: 'center' } : {}\">\r\n <button\r\n (click)=\"setView('months')\"\r\n *ngIf=\"view === 'days'\"\r\n cButton\r\n color=\"transparent\"\r\n size=\"sm\"\r\n tabindex=\"0\"\r\n >\r\n {{ date.toLocaleDateString(locale, { month: 'long' }) }}\r\n </button>\r\n <button (click)=\"setView('years')\" cButton color=\"transparent\" size=\"sm\" tabindex=\"0\" [ngStyle]=\"navYearFirst ? { order: '-1' } : {}\">\r\n {{ date.toLocaleDateString(locale, { year: 'numeric' }) }}\r\n </button>\r\n</div>\r\n<div *ngIf=\"navigation\" class=\"calendar-nav-next\">\r\n <button\r\n (click)=\"handleNavigationClick('next')\"\r\n *ngIf=\"view === 'days'\"\r\n cButton\r\n color=\"transparent\"\r\n size=\"sm\"\r\n tabindex=\"0\"\r\n >\r\n <span class=\"calendar-nav-icon calendar-nav-icon-next\"></span>\r\n </button>\r\n <button\r\n (click)=\"handleNavigationClick('next', true)\"\r\n cButton\r\n color=\"transparent\"\r\n size=\"sm\"\r\n tabindex=\"0\"\r\n >\r\n <span class=\"calendar-nav-icon calendar-nav-icon-double-next\"></span>\r\n </button>\r\n</div>\r\n", styles: [".btn-transparent:focus-visible{outline:-webkit-focus-ring-color auto 1px}\n"] }]
|
|
65
|
+
}], ctorParameters: function () { return [{ type: i1.CalendarService }]; }, propDecorators: { addMonths: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], calendarDate: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], navigation: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], navYearFirst: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], navigationClick: [{
|
|
74
|
+
type: Output
|
|
75
|
+
}], hostClasses: [{
|
|
76
|
+
type: HostBinding,
|
|
77
|
+
args: ['class']
|
|
78
|
+
}] } });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbmF2aWdhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLW5hdmlnYXRpb24vY2FsZW5kYXItbmF2aWdhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLW5hdmlnYXRpb24vY2FsZW5kYXItbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFlL0YsTUFBTSxPQUFPLDJCQUEyQjtJQUV0QyxZQUNVLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUtqQyxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBV3ZCLGtCQUFhLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUUxQixlQUFVLEdBQVksSUFBSSxDQUFDO1FBQzNCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRXZDLFdBQU0sR0FBVyxTQUFTLENBQUM7UUFDM0IsU0FBSSxHQUFnQyxNQUFNLENBQUM7UUFFakMsb0JBQWUsR0FBbUMsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUF0Qi9GLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFJRCxJQUNJLFlBQVksQ0FBQyxLQUFXO1FBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFBQSxDQUFDO0lBRUYsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFhRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELElBQ0ksV0FBVztRQUNiLE9BQU87WUFDTCxjQUFjLEVBQUUsSUFBSTtTQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELHNCQUFzQixDQUFDLFlBQXFCLElBQUk7UUFDOUMsSUFBSSxTQUFTLEVBQUU7WUFDYixJQUFJLENBQUMseUJBQXlCO2dCQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3BELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2hDLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO3dCQUN0QixJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUU7NEJBQ2YsYUFBYTs0QkFDYixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3lCQUN4QjtxQkFDRjtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsT0FBTyxDQUFDLElBQWlDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELHFCQUFxQixDQUFDLFNBQTBCLEVBQUUsS0FBSyxHQUFHLEtBQUs7UUFDN0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQzs7d0hBckVVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLCtSQ2Z4Qyw4d0RBeURBOzJGRDFDYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsdUJBQXVCO3NHQVl4QixTQUFTO3NCQUFqQixLQUFLO2dCQUdGLFlBQVk7c0JBRGYsS0FBSztnQkFXRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0ksZUFBZTtzQkFBeEIsTUFBTTtnQkFRSCxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQ2FsZW5kYXJTZXJ2aWNlIH0gZnJvbSAnLi4vY2FsZW5kYXIuc2VydmljZSc7XHJcblxyXG5pbnRlcmZhY2UgSU5hdmlnYXRpb25DbGljayB7XHJcbiAgZGlyZWN0aW9uOiAoJ3ByZXYnIHwgJ25leHQnKTtcclxuICB5ZWFyczogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjLWNhbGVuZGFyLW5hdmlnYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci1uYXZpZ2F0aW9uLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENhbGVuZGFyTmF2aWdhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjYWxlbmRhclNlcnZpY2U6IENhbGVuZGFyU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5jYWxlbmRhclN0YXRlU3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBhZGRNb250aHM6IG51bWJlciA9IDA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGNhbGVuZGFyRGF0ZSh2YWx1ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5fY2FsZW5kYXJEYXRlID0gdmFsdWU7XHJcbiAgfTtcclxuXHJcbiAgZ2V0IGNhbGVuZGFyRGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9jYWxlbmRhckRhdGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jYWxlbmRhckRhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICBASW5wdXQoKSBuYXZpZ2F0aW9uOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBuYXZZZWFyRmlyc3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgbG9jYWxlOiBzdHJpbmcgPSAnZGVmYXVsdCc7XHJcbiAgdmlldzogJ2RheXMnIHwgJ21vbnRocycgfCAneWVhcnMnID0gJ2RheXMnO1xyXG5cclxuICBAT3V0cHV0KCkgbmF2aWdhdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8SU5hdmlnYXRpb25DbGljaz4gPSBuZXcgRXZlbnRFbWl0dGVyPElOYXZpZ2F0aW9uQ2xpY2s+KCk7XHJcbiAgcHJpdmF0ZSBjYWxlbmRhclN0YXRlU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBnZXQgZGF0ZSgpIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLmNhbGVuZGFyRGF0ZS5nZXRGdWxsWWVhcigpLCB0aGlzLmNhbGVuZGFyRGF0ZS5nZXRNb250aCgpICsgdGhpcy5hZGRNb250aHMpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IGFueSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAnY2FsZW5kYXItbmF2JzogdHJ1ZVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jYWxlbmRhclN0YXRlU3Vic2NyaWJlKGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGNhbGVuZGFyU3RhdGVTdWJzY3JpYmUoc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKHN1YnNjcmliZSkge1xyXG4gICAgICB0aGlzLmNhbGVuZGFyU3RhdGVTdWJzY3JpcHRpb24gPVxyXG4gICAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNhbGVuZGFyU3RhdGUkLnN1YnNjcmliZShzdGF0ZSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoc3RhdGUpO1xyXG4gICAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xyXG4gICAgICAgICAgICBpZiAoa2V5IGluIHRoaXMpIHtcclxuICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgdGhpc1trZXldID0gc3RhdGVba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmNhbGVuZGFyU3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHNldFZpZXcodmlldzogJ2RheXMnIHwgJ21vbnRocycgfCAneWVhcnMnKSB7XHJcbiAgICB0aGlzLnZpZXcgPSB2aWV3O1xyXG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgdmlldzogdmlldyB9KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZU5hdmlnYXRpb25DbGljayhkaXJlY3Rpb246ICdwcmV2JyB8ICduZXh0JywgeWVhcnMgPSBmYWxzZSkge1xyXG4gICAgdGhpcy5uYXZpZ2F0aW9uQ2xpY2suZW1pdCh7IGRpcmVjdGlvbiwgeWVhcnM6IHllYXJzIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwibmF2aWdhdGlvblwiIGNsYXNzPVwiY2FsZW5kYXItbmF2LXByZXZcIj5cclxuICA8YnV0dG9uXHJcbiAgICAoY2xpY2spPVwiaGFuZGxlTmF2aWdhdGlvbkNsaWNrKCdwcmV2JywgdHJ1ZSlcIlxyXG4gICAgY0J1dHRvblxyXG4gICAgY29sb3I9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICBzaXplPVwic21cIlxyXG4gICAgdGFiaW5kZXg9XCIwXCJcclxuICA+XHJcbiAgICA8c3BhbiBjbGFzcz1cImNhbGVuZGFyLW5hdi1pY29uIGNhbGVuZGFyLW5hdi1pY29uLWRvdWJsZS1wcmV2XCI+PC9zcGFuPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxidXR0b25cclxuICAgIChjbGljayk9XCJoYW5kbGVOYXZpZ2F0aW9uQ2xpY2soJ3ByZXYnKVwiXHJcbiAgICAqbmdJZj1cInZpZXcgPT09ICdkYXlzJ1wiXHJcbiAgICBjQnV0dG9uXHJcbiAgICBjb2xvcj1cInRyYW5zcGFyZW50XCJcclxuICAgIHNpemU9XCJzbVwiXHJcbiAgICB0YWJpbmRleD1cIjBcIlxyXG4gID5cclxuICAgIDxzcGFuIGNsYXNzPVwiY2FsZW5kYXItbmF2LWljb24gY2FsZW5kYXItbmF2LWljb24tcHJldlwiPjwvc3Bhbj5cclxuICA8L2J1dHRvbj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjYWxlbmRhci1uYXYtZGF0ZVwiIFtuZ1N0eWxlXT1cIm5hdlllYXJGaXJzdCA/IHsgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicgfSA6IHt9XCI+XHJcbiAgPGJ1dHRvblxyXG4gICAgKGNsaWNrKT1cInNldFZpZXcoJ21vbnRocycpXCJcclxuICAgICpuZ0lmPVwidmlldyA9PT0gJ2RheXMnXCJcclxuICAgIGNCdXR0b25cclxuICAgIGNvbG9yPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgc2l6ZT1cInNtXCJcclxuICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgPlxyXG4gICAge3sgZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCB7IG1vbnRoOiAnbG9uZycgfSkgfX1cclxuICA8L2J1dHRvbj5cclxuICA8YnV0dG9uIChjbGljayk9XCJzZXRWaWV3KCd5ZWFycycpXCIgY0J1dHRvbiBjb2xvcj1cInRyYW5zcGFyZW50XCIgc2l6ZT1cInNtXCIgdGFiaW5kZXg9XCIwXCIgW25nU3R5bGVdPVwibmF2WWVhckZpcnN0ID8geyBvcmRlcjogJy0xJyB9IDoge31cIj5cclxuICAgIHt7IGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKGxvY2FsZSwgeyB5ZWFyOiAnbnVtZXJpYycgfSkgfX1cclxuICA8L2J1dHRvbj5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCJuYXZpZ2F0aW9uXCIgY2xhc3M9XCJjYWxlbmRhci1uYXYtbmV4dFwiPlxyXG4gIDxidXR0b25cclxuICAgIChjbGljayk9XCJoYW5kbGVOYXZpZ2F0aW9uQ2xpY2soJ25leHQnKVwiXHJcbiAgICAqbmdJZj1cInZpZXcgPT09ICdkYXlzJ1wiXHJcbiAgICBjQnV0dG9uXHJcbiAgICBjb2xvcj1cInRyYW5zcGFyZW50XCJcclxuICAgIHNpemU9XCJzbVwiXHJcbiAgICB0YWJpbmRleD1cIjBcIlxyXG4gID5cclxuICAgIDxzcGFuIGNsYXNzPVwiY2FsZW5kYXItbmF2LWljb24gY2FsZW5kYXItbmF2LWljb24tbmV4dFwiPjwvc3Bhbj5cclxuICA8L2J1dHRvbj5cclxuICA8YnV0dG9uXHJcbiAgICAoY2xpY2spPVwiaGFuZGxlTmF2aWdhdGlvbkNsaWNrKCduZXh0JywgdHJ1ZSlcIlxyXG4gICAgY0J1dHRvblxyXG4gICAgY29sb3I9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICBzaXplPVwic21cIlxyXG4gICAgdGFiaW5kZXg9XCIwXCJcclxuICA+XHJcbiAgICA8c3BhbiBjbGFzcz1cImNhbGVuZGFyLW5hdi1pY29uIGNhbGVuZGFyLW5hdi1pY29uLWRvdWJsZS1uZXh0XCI+PC9zcGFuPlxyXG4gIDwvYnV0dG9uPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ButtonModule } from '../button';
|
|
4
|
+
import { CalendarComponent } from './calendar/calendar.component';
|
|
5
|
+
import { CalendarClassViewPipe } from './calendar/calendar-class-view.pipe';
|
|
6
|
+
import { CalendarClassYearPipe } from './calendar-month/calendar-class-year.pipe';
|
|
7
|
+
import { CalendarDayDirective } from './calendar-month/calendar-day.directive';
|
|
8
|
+
import { CalendarClassDayPipe } from './calendar-month/calendar-class-day.pipe';
|
|
9
|
+
import { CalendarClassMonthPipe } from './calendar-month/calendar-class-month.pipe';
|
|
10
|
+
import { CalendarMonthComponent } from './calendar-month/calendar-month.component';
|
|
11
|
+
import { CalendarNavigationComponent } from './calendar-navigation/calendar-navigation.component';
|
|
12
|
+
import { CalendarDayPipe } from './calendar-month/calendar-day.pipe';
|
|
13
|
+
import { CalendarWeekdayPipe } from './calendar-month/calendar-weekday.pipe';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
export class CalendarModule {
|
|
16
|
+
}
|
|
17
|
+
CalendarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18
|
+
CalendarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.0", ngImport: i0, type: CalendarModule, declarations: [CalendarComponent,
|
|
19
|
+
CalendarClassYearPipe,
|
|
20
|
+
CalendarClassDayPipe,
|
|
21
|
+
CalendarClassMonthPipe,
|
|
22
|
+
CalendarDayDirective,
|
|
23
|
+
CalendarClassViewPipe,
|
|
24
|
+
CalendarNavigationComponent,
|
|
25
|
+
CalendarMonthComponent,
|
|
26
|
+
CalendarDayPipe,
|
|
27
|
+
CalendarWeekdayPipe], imports: [CommonModule,
|
|
28
|
+
ButtonModule], exports: [CalendarComponent,
|
|
29
|
+
CalendarMonthComponent,
|
|
30
|
+
CalendarNavigationComponent] });
|
|
31
|
+
CalendarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CalendarModule, imports: [CommonModule,
|
|
32
|
+
ButtonModule] });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CalendarModule, decorators: [{
|
|
34
|
+
type: NgModule,
|
|
35
|
+
args: [{
|
|
36
|
+
declarations: [
|
|
37
|
+
CalendarComponent,
|
|
38
|
+
CalendarClassYearPipe,
|
|
39
|
+
CalendarClassDayPipe,
|
|
40
|
+
CalendarClassMonthPipe,
|
|
41
|
+
CalendarDayDirective,
|
|
42
|
+
CalendarClassViewPipe,
|
|
43
|
+
CalendarNavigationComponent,
|
|
44
|
+
CalendarMonthComponent,
|
|
45
|
+
CalendarDayPipe,
|
|
46
|
+
CalendarWeekdayPipe
|
|
47
|
+
],
|
|
48
|
+
imports: [
|
|
49
|
+
CommonModule,
|
|
50
|
+
ButtonModule
|
|
51
|
+
],
|
|
52
|
+
exports: [
|
|
53
|
+
CalendarComponent,
|
|
54
|
+
CalendarMonthComponent,
|
|
55
|
+
CalendarNavigationComponent
|
|
56
|
+
]
|
|
57
|
+
}]
|
|
58
|
+
}] });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBeUI3RSxNQUFNLE9BQU8sY0FBYzs7MkdBQWQsY0FBYzs0R0FBZCxjQUFjLGlCQXJCdkIsaUJBQWlCO1FBQ2pCLHFCQUFxQjtRQUNyQixvQkFBb0I7UUFDcEIsc0JBQXNCO1FBQ3RCLG9CQUFvQjtRQUNwQixxQkFBcUI7UUFDckIsMkJBQTJCO1FBQzNCLHNCQUFzQjtRQUN0QixlQUFlO1FBQ2YsbUJBQW1CLGFBR25CLFlBQVk7UUFDWixZQUFZLGFBR1osaUJBQWlCO1FBQ2pCLHNCQUFzQjtRQUN0QiwyQkFBMkI7NEdBR2xCLGNBQWMsWUFUdkIsWUFBWTtRQUNaLFlBQVk7MkZBUUgsY0FBYztrQkF2QjFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGlCQUFpQjt3QkFDakIscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLDJCQUEyQjt3QkFDM0Isc0JBQXNCO3dCQUN0QixlQUFlO3dCQUNmLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLDJCQUEyQjtxQkFDNUI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24nO1xyXG5cclxuaW1wb3J0IHsgQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENhbGVuZGFyQ2xhc3NWaWV3UGlwZSB9IGZyb20gJy4vY2FsZW5kYXIvY2FsZW5kYXItY2xhc3Mtdmlldy5waXBlJztcclxuaW1wb3J0IHsgQ2FsZW5kYXJDbGFzc1llYXJQaXBlIH0gZnJvbSAnLi9jYWxlbmRhci1tb250aC9jYWxlbmRhci1jbGFzcy15ZWFyLnBpcGUnO1xyXG5pbXBvcnQgeyBDYWxlbmRhckRheURpcmVjdGl2ZSB9IGZyb20gJy4vY2FsZW5kYXItbW9udGgvY2FsZW5kYXItZGF5LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENhbGVuZGFyQ2xhc3NEYXlQaXBlIH0gZnJvbSAnLi9jYWxlbmRhci1tb250aC9jYWxlbmRhci1jbGFzcy1kYXkucGlwZSc7XHJcbmltcG9ydCB7IENhbGVuZGFyQ2xhc3NNb250aFBpcGUgfSBmcm9tICcuL2NhbGVuZGFyLW1vbnRoL2NhbGVuZGFyLWNsYXNzLW1vbnRoLnBpcGUnO1xyXG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci1tb250aC9jYWxlbmRhci1tb250aC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDYWxlbmRhck5hdmlnYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLW5hdmlnYXRpb24vY2FsZW5kYXItbmF2aWdhdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDYWxlbmRhckRheVBpcGUgfSBmcm9tICcuL2NhbGVuZGFyLW1vbnRoL2NhbGVuZGFyLWRheS5waXBlJztcclxuaW1wb3J0IHsgQ2FsZW5kYXJXZWVrZGF5UGlwZSB9IGZyb20gJy4vY2FsZW5kYXItbW9udGgvY2FsZW5kYXItd2Vla2RheS5waXBlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBDYWxlbmRhckNvbXBvbmVudCxcclxuICAgIENhbGVuZGFyQ2xhc3NZZWFyUGlwZSxcclxuICAgIENhbGVuZGFyQ2xhc3NEYXlQaXBlLFxyXG4gICAgQ2FsZW5kYXJDbGFzc01vbnRoUGlwZSxcclxuICAgIENhbGVuZGFyRGF5RGlyZWN0aXZlLFxyXG4gICAgQ2FsZW5kYXJDbGFzc1ZpZXdQaXBlLFxyXG4gICAgQ2FsZW5kYXJOYXZpZ2F0aW9uQ29tcG9uZW50LFxyXG4gICAgQ2FsZW5kYXJNb250aENvbXBvbmVudCxcclxuICAgIENhbGVuZGFyRGF5UGlwZSxcclxuICAgIENhbGVuZGFyV2Vla2RheVBpcGVcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEJ1dHRvbk1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQ2FsZW5kYXJDb21wb25lbnQsXHJcbiAgICBDYWxlbmRhck1vbnRoQ29tcG9uZW50LFxyXG4gICAgQ2FsZW5kYXJOYXZpZ2F0aW9uQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJNb2R1bGUge1xyXG59XHJcbiJdfQ==
|