@coreui/angular-pro 5.2.18 → 5.2.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/accordion/accordion/accordion.component.mjs +21 -33
- package/esm2022/lib/accordion/accordion-button/accordion-button.directive.mjs +20 -30
- package/esm2022/lib/accordion/accordion-item/accordion-item.component.mjs +24 -23
- package/esm2022/lib/accordion/accordion.module.mjs +4 -4
- package/esm2022/lib/accordion/accordion.service.mjs +4 -4
- package/esm2022/lib/alert/alert-heading.directive.mjs +3 -3
- package/esm2022/lib/alert/alert-link.directive.mjs +3 -3
- package/esm2022/lib/alert/alert.component.mjs +3 -3
- package/esm2022/lib/alert/alert.module.mjs +4 -4
- package/esm2022/lib/avatar/avatar.component.mjs +3 -3
- package/esm2022/lib/avatar/avatar.module.mjs +4 -4
- package/esm2022/lib/backdrop/backdrop.service.mjs +3 -3
- package/esm2022/lib/badge/badge.component.mjs +3 -3
- package/esm2022/lib/badge/badge.module.mjs +4 -4
- package/esm2022/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +3 -3
- package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +3 -3
- package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +3 -3
- package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +4 -4
- package/esm2022/lib/button/button-close.directive.mjs +3 -3
- package/esm2022/lib/button/button.directive.mjs +3 -3
- package/esm2022/lib/button/button.module.mjs +4 -4
- package/esm2022/lib/button-group/button-group/button-group.component.mjs +3 -3
- package/esm2022/lib/button-group/button-group.module.mjs +4 -4
- package/esm2022/lib/button-group/button-toolbar/button-toolbar.component.mjs +3 -3
- package/esm2022/lib/calendar/calendar/calendar-class-view.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar/calendar.component.mjs +4 -4
- package/esm2022/lib/calendar/calendar-month/calendar-class-day.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-class-month.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-class-row.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-class-year.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-day-title.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-day.directive.mjs +81 -84
- package/esm2022/lib/calendar/calendar-month/calendar-day.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-month.component.mjs +47 -20
- package/esm2022/lib/calendar/calendar-month/calendar-row.directive.mjs +17 -13
- package/esm2022/lib/calendar/calendar-month/calendar-weekday.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-navigation/calendar-navigation.component.mjs +23 -47
- package/esm2022/lib/calendar/calendar.module.mjs +4 -4
- package/esm2022/lib/calendar/calendar.service.mjs +3 -3
- package/esm2022/lib/calendar/calendar.utils.mjs +29 -15
- package/esm2022/lib/callout/callout.component.mjs +3 -3
- package/esm2022/lib/callout/callout.module.mjs +4 -4
- package/esm2022/lib/card/card-body.component.mjs +3 -3
- package/esm2022/lib/card/card-footer.component.mjs +3 -3
- package/esm2022/lib/card/card-group.component.mjs +3 -3
- package/esm2022/lib/card/card-header-actions.component.mjs +3 -3
- package/esm2022/lib/card/card-header.component.mjs +3 -3
- package/esm2022/lib/card/card-img-overlay/card-img-overlay.component.mjs +3 -3
- package/esm2022/lib/card/card-img.directive.mjs +3 -3
- package/esm2022/lib/card/card-link.directive.mjs +3 -3
- package/esm2022/lib/card/card-subtitle.directive.mjs +3 -3
- package/esm2022/lib/card/card-text.directive.mjs +3 -3
- package/esm2022/lib/card/card-title.directive.mjs +3 -3
- package/esm2022/lib/card/card.component.mjs +3 -3
- package/esm2022/lib/card/card.module.mjs +4 -4
- package/esm2022/lib/carousel/carousel/carousel.component.mjs +3 -3
- package/esm2022/lib/carousel/carousel-caption/carousel-caption.component.mjs +3 -3
- package/esm2022/lib/carousel/carousel-control/carousel-control.component.mjs +3 -3
- package/esm2022/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +3 -3
- package/esm2022/lib/carousel/carousel-inner/carousel-inner.component.mjs +3 -3
- package/esm2022/lib/carousel/carousel-item/carousel-item.component.mjs +3 -3
- package/esm2022/lib/carousel/carousel-state.mjs +3 -3
- package/esm2022/lib/carousel/carousel.config.mjs +3 -3
- package/esm2022/lib/carousel/carousel.module.mjs +4 -4
- package/esm2022/lib/carousel/carousel.service.mjs +3 -3
- package/esm2022/lib/collapse/collapse.directive.mjs +3 -3
- package/esm2022/lib/collapse/collapse.module.mjs +4 -4
- package/esm2022/lib/date-picker/date-picker.component.mjs +3 -3
- package/esm2022/lib/date-picker/date-picker.module.mjs +4 -4
- package/esm2022/lib/date-range-picker/date-range-picker/custom-range-key.pipe.mjs +3 -3
- package/esm2022/lib/date-range-picker/date-range-picker/date-range-picker.component.mjs +4 -4
- package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown/dropdown.component.mjs +6 -6
- package/esm2022/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown.module.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown.service.mjs +3 -3
- package/esm2022/lib/element-cover/element-cover.component.mjs +68 -57
- package/esm2022/lib/element-cover/element-cover.module.mjs +4 -4
- package/esm2022/lib/footer/footer.component.mjs +3 -3
- package/esm2022/lib/footer/footer.module.mjs +4 -4
- package/esm2022/lib/form/form/form.directive.mjs +3 -3
- package/esm2022/lib/form/form-check/form-check-input.directive.mjs +3 -3
- package/esm2022/lib/form/form-check/form-check-label.directive.mjs +3 -3
- package/esm2022/lib/form/form-check/form-check.component.mjs +3 -3
- package/esm2022/lib/form/form-control/form-control.directive.mjs +3 -3
- package/esm2022/lib/form/form-feedback/form-feedback.component.mjs +3 -3
- package/esm2022/lib/form/form-floating/form-floating.directive.mjs +3 -3
- package/esm2022/lib/form/form-label/form-label.directive.mjs +3 -3
- package/esm2022/lib/form/form-select/form-select.directive.mjs +3 -3
- package/esm2022/lib/form/form-text/form-text.directive.mjs +3 -3
- package/esm2022/lib/form/form.module.mjs +4 -4
- package/esm2022/lib/form/input-group/input-group.component.mjs +3 -3
- package/esm2022/lib/form/input-group-text/input-group-text.directive.mjs +3 -3
- package/esm2022/lib/grid/col.component.mjs +3 -3
- package/esm2022/lib/grid/col.directive.mjs +3 -3
- package/esm2022/lib/grid/container.component.mjs +3 -3
- package/esm2022/lib/grid/grid.module.mjs +4 -4
- package/esm2022/lib/grid/gutter.directive.mjs +3 -3
- package/esm2022/lib/grid/row.component.mjs +3 -3
- package/esm2022/lib/grid/row.directive.mjs +3 -3
- package/esm2022/lib/header/header/header.component.mjs +3 -3
- package/esm2022/lib/header/header-brand/header-brand.component.mjs +3 -3
- package/esm2022/lib/header/header-divider/header-divider.component.mjs +3 -3
- package/esm2022/lib/header/header-nav/header-nav.component.mjs +3 -3
- package/esm2022/lib/header/header-text/header-text.component.mjs +3 -3
- package/esm2022/lib/header/header-toggler/header-toggler.directive.mjs +3 -3
- package/esm2022/lib/header/header.module.mjs +4 -4
- package/esm2022/lib/image/img.directive.mjs +3 -3
- package/esm2022/lib/image/img.module.mjs +4 -4
- package/esm2022/lib/list-group/list-group-item.directive.mjs +3 -3
- package/esm2022/lib/list-group/list-group.directive.mjs +3 -3
- package/esm2022/lib/list-group/list-group.module.mjs +4 -4
- package/esm2022/lib/loading-button/loading-button.component.mjs +3 -3
- package/esm2022/lib/loading-button/loading-button.module.mjs +4 -4
- package/esm2022/lib/modal/modal/modal.component.mjs +3 -3
- package/esm2022/lib/modal/modal-body/modal-body.component.mjs +3 -3
- package/esm2022/lib/modal/modal-content/modal-content.component.mjs +3 -3
- package/esm2022/lib/modal/modal-dialog/modal-dialog.component.mjs +3 -3
- package/esm2022/lib/modal/modal-dismiss/modal-toggle.directive.mjs +3 -3
- package/esm2022/lib/modal/modal-footer/modal-footer.component.mjs +3 -3
- package/esm2022/lib/modal/modal-header/modal-header.component.mjs +3 -3
- package/esm2022/lib/modal/modal-title/modal-title.directive.mjs +3 -3
- package/esm2022/lib/modal/modal.module.mjs +4 -4
- package/esm2022/lib/modal/modal.service.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select/multi-select-search.directive.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select/multi-select.component.mjs +156 -160
- package/esm2022/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select-option/multi-select-option.component.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select.module.mjs +4 -4
- package/esm2022/lib/multi-select/multi-select.service.mjs +3 -3
- package/esm2022/lib/nav/nav-item.component.mjs +3 -3
- package/esm2022/lib/nav/nav-link.directive.mjs +3 -3
- package/esm2022/lib/nav/nav.component.mjs +3 -3
- package/esm2022/lib/nav/nav.module.mjs +4 -4
- package/esm2022/lib/navbar/navbar-brand/navbar-brand.directive.mjs +3 -3
- package/esm2022/lib/navbar/navbar-nav/navbar-nav.component.mjs +3 -3
- package/esm2022/lib/navbar/navbar-text/navbar-text.component.mjs +3 -3
- package/esm2022/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +3 -3
- package/esm2022/lib/navbar/navbar.component.mjs +3 -3
- package/esm2022/lib/navbar/navbar.module.mjs +4 -4
- package/esm2022/lib/offcanvas/offcanvas/offcanvas.component.mjs +3 -3
- package/esm2022/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +3 -3
- package/esm2022/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +3 -3
- package/esm2022/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +3 -3
- package/esm2022/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +3 -3
- package/esm2022/lib/offcanvas/offcanvas.module.mjs +4 -4
- package/esm2022/lib/offcanvas/offcanvas.service.mjs +3 -3
- package/esm2022/lib/pagination/page-item/page-item.component.mjs +3 -3
- package/esm2022/lib/pagination/page-item/page-item.directive.mjs +3 -3
- package/esm2022/lib/pagination/page-link/page-link.directive.mjs +3 -3
- package/esm2022/lib/pagination/pagination/pagination.component.mjs +3 -3
- package/esm2022/lib/pagination/pagination.module.mjs +4 -4
- package/esm2022/lib/placeholder/placeholder-animation.directive.mjs +3 -3
- package/esm2022/lib/placeholder/placeholder.directive.mjs +3 -3
- package/esm2022/lib/placeholder/placeholder.module.mjs +4 -4
- package/esm2022/lib/popover/popover/popover.component.mjs +3 -3
- package/esm2022/lib/popover/popover.directive.mjs +3 -3
- package/esm2022/lib/popover/popover.module.mjs +4 -4
- package/esm2022/lib/progress/progress-bar.component.mjs +3 -3
- package/esm2022/lib/progress/progress-bar.directive.mjs +3 -3
- package/esm2022/lib/progress/progress-stacked.component.mjs +3 -3
- package/esm2022/lib/progress/progress.component.mjs +3 -3
- package/esm2022/lib/progress/progress.module.mjs +4 -4
- package/esm2022/lib/rating/rating-item-label/rating-item-label.component.mjs +3 -3
- package/esm2022/lib/rating/rating.component.mjs +3 -3
- package/esm2022/lib/rating/rating.module.mjs +4 -4
- package/esm2022/lib/services/class-toggle.service.mjs +3 -3
- package/esm2022/lib/services/color-mode.service.mjs +3 -3
- package/esm2022/lib/services/in-memory-storage.service.mjs +3 -3
- package/esm2022/lib/services/intersection.service.mjs +3 -3
- package/esm2022/lib/services/listeners.service.mjs +3 -3
- package/esm2022/lib/services/local-storage.service.mjs +3 -3
- package/esm2022/lib/shared/element-ref.directive.mjs +3 -3
- package/esm2022/lib/shared/html-attr.directive.mjs +3 -3
- package/esm2022/lib/shared/shared.module.mjs +4 -4
- package/esm2022/lib/shared/template-id.directive.mjs +3 -3
- package/esm2022/lib/shared/theme.directive.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar/sidebar.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-group.service.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +6 -6
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +6 -6
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +6 -6
- package/esm2022/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-toggler/sidebar-toggler.directive.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar.module.mjs +4 -4
- package/esm2022/lib/sidebar/sidebar.service.mjs +3 -3
- package/esm2022/lib/smart-pagination/smart-pagination.component.mjs +3 -3
- package/esm2022/lib/smart-pagination/smart-pagination.module.mjs +4 -4
- package/esm2022/lib/smart-table/smart-table/smart-table.component.mjs +23 -24
- package/esm2022/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.mjs +3 -3
- package/esm2022/lib/smart-table/smart-table-filter/filter-input.directive.mjs +3 -3
- package/esm2022/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +3 -3
- package/esm2022/lib/smart-table/smart-table-head/smart-table-column-label.pipe.mjs +3 -3
- package/esm2022/lib/smart-table/smart-table-head/smart-table-head.component.mjs +3 -3
- package/esm2022/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +3 -3
- package/esm2022/lib/smart-table/smart-table.module.mjs +4 -4
- package/esm2022/lib/smart-table/smart-table.type.mjs +1 -1
- package/esm2022/lib/spinner/spinner.component.mjs +36 -33
- package/esm2022/lib/spinner/spinner.module.mjs +4 -4
- package/esm2022/lib/table/table-active.directive.mjs +3 -3
- package/esm2022/lib/table/table-color.directive.mjs +3 -3
- package/esm2022/lib/table/table.directive.mjs +3 -3
- package/esm2022/lib/table/table.module.mjs +4 -4
- package/esm2022/lib/tabs/tab-content/tab-content.component.mjs +3 -3
- package/esm2022/lib/tabs/tab-content-ref.directive.mjs +3 -3
- package/esm2022/lib/tabs/tab-pane/tab-pane.component.mjs +3 -3
- package/esm2022/lib/tabs/tab.service.mjs +3 -3
- package/esm2022/lib/tabs/tabs.module.mjs +4 -4
- package/esm2022/lib/tabs-2/tab/tab.directive.mjs +3 -3
- package/esm2022/lib/tabs-2/tab-panel/tab-panel.component.mjs +3 -3
- package/esm2022/lib/tabs-2/tabs-content/tabs-content.component.mjs +3 -3
- package/esm2022/lib/tabs-2/tabs-list/tabs-list.component.mjs +3 -3
- package/esm2022/lib/tabs-2/tabs.component.mjs +3 -3
- package/esm2022/lib/tabs-2/tabs.service.mjs +3 -3
- package/esm2022/lib/tabs-2/tabs2.module.mjs +4 -4
- package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.mjs +6 -6
- package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.mjs +6 -6
- package/esm2022/lib/time-picker/time-picker.component.mjs +3 -3
- package/esm2022/lib/time-picker/time-picker.module.mjs +4 -4
- package/esm2022/lib/toast/toast/toast.component.mjs +3 -3
- package/esm2022/lib/toast/toast-body/toast-body.component.mjs +3 -3
- package/esm2022/lib/toast/toast-close.directive.mjs +3 -3
- package/esm2022/lib/toast/toast-header/toast-header.component.mjs +3 -3
- package/esm2022/lib/toast/toast.module.mjs +4 -4
- package/esm2022/lib/toast/toaster/toaster-host.directive.mjs +3 -3
- package/esm2022/lib/toast/toaster/toaster.component.mjs +3 -3
- package/esm2022/lib/toast/toaster/toaster.service.mjs +8 -7
- package/esm2022/lib/tooltip/tooltip/tooltip.component.mjs +3 -3
- package/esm2022/lib/tooltip/tooltip.directive.mjs +3 -3
- package/esm2022/lib/tooltip/tooltip.module.mjs +4 -4
- package/esm2022/lib/utilities/align.directive.mjs +3 -3
- package/esm2022/lib/utilities/bg-color.directive.mjs +3 -3
- package/esm2022/lib/utilities/border.directive.mjs +3 -3
- package/esm2022/lib/utilities/rounded.directive.mjs +3 -3
- package/esm2022/lib/utilities/shadow-on-scroll.directive.mjs +3 -3
- package/esm2022/lib/utilities/text-bg-color.directive.mjs +3 -3
- package/esm2022/lib/utilities/text-color.directive.mjs +3 -3
- package/esm2022/lib/utilities/utilities.module.mjs +4 -4
- package/esm2022/lib/widget/widget-stat-a/widget-stat-a.component.mjs +3 -3
- package/esm2022/lib/widget/widget-stat-b/widget-stat-b.component.mjs +3 -3
- package/esm2022/lib/widget/widget-stat-c/widget-stat-c.component.mjs +3 -3
- package/esm2022/lib/widget/widget-stat-d/widget-stat-d.component.mjs +3 -3
- package/esm2022/lib/widget/widget-stat-e/widget-stat-e.component.mjs +3 -3
- package/esm2022/lib/widget/widget-stat-f/widget-stat-f.component.mjs +3 -3
- package/esm2022/lib/widget/widget.module.mjs +4 -4
- package/fesm2022/coreui-angular-pro.mjs +1350 -1343
- package/fesm2022/coreui-angular-pro.mjs.map +1 -1
- package/lib/accordion/accordion/accordion.component.d.ts +4 -7
- package/lib/accordion/accordion-button/accordion-button.directive.d.ts +8 -5
- package/lib/accordion/accordion-item/accordion-item.component.d.ts +7 -10
- package/lib/accordion/accordion.service.d.ts +1 -1
- package/lib/calendar/calendar/calendar.component.d.ts +2 -2
- package/lib/calendar/calendar-month/calendar-day.directive.d.ts +8 -9
- package/lib/calendar/calendar-month/calendar-month.component.d.ts +9 -9
- package/lib/calendar/calendar-month/calendar-row.directive.d.ts +1 -0
- package/lib/calendar/calendar-navigation/calendar-navigation.component.d.ts +10 -14
- package/lib/date-range-picker/date-range-picker/date-range-picker.component.d.ts +1 -1
- package/lib/element-cover/element-cover.component.d.ts +15 -16
- package/lib/smart-table/smart-table/smart-table.component.d.ts +2 -2
- package/lib/smart-table/smart-table.type.d.ts +2 -2
- package/lib/spinner/spinner.component.d.ts +14 -8
- package/lib/toast/toaster/toaster.service.d.ts +2 -2
- package/package.json +3 -3
|
@@ -40,10 +40,10 @@ export class BreadcrumbRouterService {
|
|
|
40
40
|
return breadcrumbs;
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
44
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
43
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BreadcrumbRouterService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
44
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BreadcrumbRouterService, providedIn: 'root' }); }
|
|
45
45
|
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BreadcrumbRouterService, decorators: [{
|
|
47
47
|
type: Injectable,
|
|
48
48
|
args: [{
|
|
49
49
|
providedIn: 'root'
|
|
@@ -6,16 +6,16 @@ import { BreadcrumbRouterComponent } from './breadcrumb-router/breadcrumb-router
|
|
|
6
6
|
import { BreadcrumbRouterService } from './breadcrumb-router/breadcrumb-router.service';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export class BreadcrumbModule {
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
10
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BreadcrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: BreadcrumbModule, imports: [BreadcrumbComponent,
|
|
11
11
|
BreadcrumbItemComponent,
|
|
12
12
|
BreadcrumbRouterComponent], exports: [BreadcrumbComponent,
|
|
13
13
|
BreadcrumbItemComponent,
|
|
14
14
|
BreadcrumbRouterComponent] }); }
|
|
15
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
15
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BreadcrumbModule, providers: [BreadcrumbRouterService], imports: [BreadcrumbItemComponent,
|
|
16
16
|
BreadcrumbRouterComponent] }); }
|
|
17
17
|
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BreadcrumbModule, decorators: [{
|
|
19
19
|
type: NgModule,
|
|
20
20
|
args: [{
|
|
21
21
|
imports: [
|
|
@@ -23,10 +23,10 @@ export class ButtonCloseDirective extends ButtonDirective {
|
|
|
23
23
|
};
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
27
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ButtonCloseDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
27
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.8", type: ButtonCloseDirective, isStandalone: true, selector: "[cButtonClose]", inputs: { white: { classPropertyName: "white", publicName: "white", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.aria-disabled": "ariaDisabled()", "attr.aria-pressed": "isActive()", "attr.disabled": "attrDisabled()", "attr.tabindex": "tabIndex()", "attr.type": "type()" }, classAttribute: "btn btn-close" }, usesInheritance: true, hostDirectives: [{ directive: i1.ThemeDirective, inputs: ["dark", "dark"] }], ngImport: i0 }); }
|
|
28
28
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ButtonCloseDirective, decorators: [{
|
|
30
30
|
type: Directive,
|
|
31
31
|
args: [{
|
|
32
32
|
selector: '[cButtonClose]',
|
|
@@ -65,10 +65,10 @@ export class ButtonDirective {
|
|
|
65
65
|
return this.active() || null;
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
69
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
68
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
69
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.8", type: ButtonDirective, isStandalone: true, selector: "[cButton]", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.aria-disabled": "ariaDisabled()", "attr.aria-pressed": "isActive()", "attr.disabled": "attrDisabled()", "attr.tabindex": "tabIndex()", "attr.type": "type()" }, classAttribute: "btn" }, exportAs: ["cButton"], ngImport: i0 }); }
|
|
70
70
|
}
|
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ButtonDirective, decorators: [{
|
|
72
72
|
type: Directive,
|
|
73
73
|
args: [{
|
|
74
74
|
selector: '[cButton]',
|
|
@@ -3,13 +3,13 @@ import { ButtonDirective } from './button.directive';
|
|
|
3
3
|
import { ButtonCloseDirective } from './button-close.directive';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class ButtonModule {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: ButtonModule, imports: [ButtonDirective,
|
|
8
8
|
ButtonCloseDirective], exports: [ButtonDirective,
|
|
9
9
|
ButtonCloseDirective] }); }
|
|
10
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
10
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ButtonModule }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ButtonModule, decorators: [{
|
|
13
13
|
type: NgModule,
|
|
14
14
|
args: [{
|
|
15
15
|
imports: [
|
|
@@ -26,10 +26,10 @@ export class ButtonGroupComponent {
|
|
|
26
26
|
};
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ButtonGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.8", type: ButtonGroupComponent, isStandalone: true, selector: "c-button-group", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, vertical: { classPropertyName: "vertical", publicName: "vertical", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "role()", "class": "hostClasses()" } }, ngImport: i0, template: '<ng-content />', isInline: true }); }
|
|
31
31
|
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ButtonGroupComponent, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
34
|
args: [{
|
|
35
35
|
selector: 'c-button-group',
|
|
@@ -3,11 +3,11 @@ import { ButtonGroupComponent } from './button-group/button-group.component';
|
|
|
3
3
|
import { ButtonToolbarComponent } from './button-toolbar/button-toolbar.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class ButtonGroupModule {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ButtonGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: ButtonGroupModule, imports: [ButtonGroupComponent, ButtonToolbarComponent], exports: [ButtonGroupComponent, ButtonToolbarComponent] }); }
|
|
8
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ButtonGroupModule }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ButtonGroupModule, decorators: [{
|
|
11
11
|
type: NgModule,
|
|
12
12
|
args: [{
|
|
13
13
|
imports: [ButtonGroupComponent, ButtonToolbarComponent],
|
|
@@ -9,10 +9,10 @@ export class ButtonToolbarComponent {
|
|
|
9
9
|
*/
|
|
10
10
|
this.role = input('toolbar');
|
|
11
11
|
}
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
13
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ButtonToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.8", type: ButtonToolbarComponent, isStandalone: true, selector: "c-button-toolbar", inputs: { role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "role()" }, classAttribute: "btn-toolbar" }, ngImport: i0, template: '<ng-content />', isInline: true }); }
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ButtonToolbarComponent, decorators: [{
|
|
16
16
|
type: Component,
|
|
17
17
|
args: [{
|
|
18
18
|
selector: 'c-button-toolbar',
|
|
@@ -7,10 +7,10 @@ export class CalendarClassViewPipe {
|
|
|
7
7
|
[`${view}`]: !!view
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
11
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarClassViewPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
11
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: CalendarClassViewPipe, isStandalone: true, name: "calendarClassView" }); }
|
|
12
12
|
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarClassViewPipe, decorators: [{
|
|
14
14
|
type: Pipe,
|
|
15
15
|
args: [{
|
|
16
16
|
name: 'calendarClassView',
|
|
@@ -402,10 +402,10 @@ export class CalendarComponent {
|
|
|
402
402
|
this.calendarService.update({ hoverDate: null });
|
|
403
403
|
}
|
|
404
404
|
}
|
|
405
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
406
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
405
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarComponent, deps: [{ token: i1.CalendarService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
406
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: CalendarComponent, isStandalone: true, selector: "c-calendar", inputs: { calendarDate: "calendarDate", calendars: ["calendars", "calendars", numberAttribute], dayFormat: "dayFormat", disabledDates: "disabledDates", startDate: "startDate", endDate: "endDate", firstDayOfWeek: ["firstDayOfWeek", "firstDayOfWeek", numberAttribute], locale: "locale", maxDate: "maxDate", minDate: "minDate", navigation: ["navigation", "navigation", booleanAttribute], navYearFirst: ["navYearFirst", "navYearFirst", booleanAttribute], range: ["range", "range", booleanAttribute], view: "view", weekdayFormat: "weekdayFormat", dateFilter: "dateFilter", selectAdjacentDays: ["selectAdjacentDays", "selectAdjacentDays", booleanAttribute], showAdjacentDays: ["showAdjacentDays", "showAdjacentDays", booleanAttribute], selectionType: "selectionType", showWeekNumber: ["showWeekNumber", "showWeekNumber", booleanAttribute], weekNumbersLabel: "weekNumbersLabel" }, outputs: { calendarCellHover: "calendarCellHover", calendarDateChange: "calendarDateChange", endDateChange: "endDateChange", startDateChange: "startDateChange", viewChange: "viewChange" }, host: { properties: { "class": "this.hostClasses" } }, providers: [CalendarService], viewQueries: [{ propertyName: "calendarMonths", predicate: CalendarMonthComponent, descendants: true }], exportAs: ["cCalendar"], ngImport: i0, template: "@for (calendar of calendarsArray; track calendar; let i = $index) {\n <div [ngClass]=\"view | calendarClassView\">\n <c-calendar-navigation\n (navigationClick)=\"handleNavigationClick($event.direction, $event.years)\"\n [addMonths]=\"i\"\n [navigation]=\"navigation\"\n />\n\n <c-calendar-month\n [addMonths]=\"i\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [weekdayFormat]=\"weekdayFormat\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"handleFocusChange($event)\"\n />\n </div>\n}\n", styles: [".btn-transparent:focus-visible{outline:-webkit-focus-ring-color auto 1px}\n"], dependencies: [{ kind: "component", type: CalendarNavigationComponent, selector: "c-calendar-navigation", inputs: ["addMonths", "navigation"], outputs: ["navigationClick"] }, { kind: "pipe", type: CalendarClassViewPipe, name: "calendarClassView" }, { kind: "component", type: CalendarMonthComponent, selector: "c-calendar-month", inputs: ["addMonths", "startDate", "endDate", "disabledDates", "firstDayOfWeek", "locale", "range", "weekdayFormat", "view", "maxDate", "minDate", "calendarDate"], exportAs: ["cCalendarMonth"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }] }); }
|
|
407
407
|
}
|
|
408
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
408
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarComponent, decorators: [{
|
|
409
409
|
type: Component,
|
|
410
410
|
args: [{ selector: 'c-calendar', exportAs: 'cCalendar', providers: [CalendarService], standalone: true, imports: [CalendarNavigationComponent, CalendarClassViewPipe, CalendarMonthComponent, NgClass, A11yModule], template: "@for (calendar of calendarsArray; track calendar; let i = $index) {\n <div [ngClass]=\"view | calendarClassView\">\n <c-calendar-navigation\n (navigationClick)=\"handleNavigationClick($event.direction, $event.years)\"\n [addMonths]=\"i\"\n [navigation]=\"navigation\"\n />\n\n <c-calendar-month\n [addMonths]=\"i\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [weekdayFormat]=\"weekdayFormat\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"handleFocusChange($event)\"\n />\n </div>\n}\n", styles: [".btn-transparent:focus-visible{outline:-webkit-focus-ring-color auto 1px}\n"] }]
|
|
411
411
|
}], ctorParameters: () => [{ type: i1.CalendarService }], propDecorators: { calendarDate: [{
|
|
@@ -475,4 +475,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
475
475
|
type: ViewChildren,
|
|
476
476
|
args: [CalendarMonthComponent]
|
|
477
477
|
}] } });
|
|
478
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUVmLE1BQU0sRUFFTixNQUFNLEVBQ04sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFFNUQsT0FBTyxFQUFFLGVBQWUsRUFBbUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBV25FLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsV0FBVyxDQUFzQjtJQUVqQyxZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFGcEQsZ0JBQVcsR0FBRyxNQUFNLENB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QUUsZ0JBQWdCLEVBQUU7Z0JBY3pCLGdCQUFnQjtzQkFBNUIsS0FBSztnQkFJSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQWVILFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQVdrQixjQUFjO3NCQUFuRCxZQUFZO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQTExeU1vZHVsZSwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5cbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSwgRGF0ZUZpbHRlclR5cGUsIERheUZvcm1hdFR5cGUsIFNlbGVjdGlvblR5cGUsIFdlZWtkYXlGb3JtYXRUeXBlIH0gZnJvbSAnLi4vY2FsZW5kYXIuc2VydmljZSc7XG5pbXBvcnQgeyBnZXRDYWxlbmRhckRhdGUsIHRyeURhdGUgfSBmcm9tICcuLi9jYWxlbmRhci51dGlscyc7XG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FsZW5kYXItbW9udGgvY2FsZW5kYXItbW9udGguY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NhbGVuZGFyLW5hdmlnYXRpb24vY2FsZW5kYXItbmF2aWdhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJDbGFzc1ZpZXdQaXBlIH0gZnJvbSAnLi9jYWxlbmRhci1jbGFzcy12aWV3LnBpcGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLWNhbGVuZGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjQ2FsZW5kYXInLFxuICBwcm92aWRlcnM6IFtDYWxlbmRhclNlcnZpY2VdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ2FsZW5kYXJOYXZpZ2F0aW9uQ29tcG9uZW50LCBDYWxlbmRhckNsYXNzVmlld1BpcGUsIENhbGVuZGFyTW9udGhDb21wb25lbnQsIE5nQ2xhc3MsIEExMXlNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgI2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjYWxlbmRhclNlcnZpY2U6IENhbGVuZGFyU2VydmljZSkge1xuICAgIHRoaXMuY2FsZW5kYXJTdGF0ZVN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgZGF0ZSBvZiB0aGUgY29tcG9uZW50XG4gICAqIEB0eXBlICBEYXRlIHwgc3RyaW5nXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgY2FsZW5kYXJEYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgLy8gY29uc3QgX3ZhbHVlID0gbmV3IERhdGUodHJ5RGF0ZSgodmFsdWUgPz8gdGhpcy5zdGFydERhdGUgPz8gbmV3IERhdGUoKSksICdjYWxlbmRhckRhdGUnKSk7XG4gICAgY29uc3QgX3ZhbHVlID0gbmV3IERhdGUodHJ5RGF0ZSh2YWx1ZSA/PyB0aGlzLnN0YXJ0RGF0ZSwgJ2NhbGVuZGFyRGF0ZScpKTtcbiAgICAvLyBpZiAoIWlzRGF0ZUJldHdlZW5NaW5NYXgoX3ZhbHVlLCB0aGlzLm1pbkRhdGUsIHRoaXMubWF4RGF0ZSkpIHtcbiAgICAvLyAgIC8vIF92YWx1ZSA9IF92YWx1ZSA8ICh0aGlzLm1pbkRhdGUgPz8gMCkgPyB0aGlzLm1pbkRhdGUgPz8gdGhpcy5tYXhEYXRlID8/IF92YWx1ZSA6IHRoaXMubWF4RGF0ZSA/PyB0aGlzLm1pbkRhdGUgPz8gX3ZhbHVlO1xuICAgIC8vICAgLy8gcmV0dXJuO1xuICAgIC8vICAgX3ZhbHVlID0gdGhpcy5fY2FsZW5kYXJEYXRlO1xuICAgIC8vIH1cbiAgICBpZiAoISFfdmFsdWUgJiYgdGhpcy5fY2FsZW5kYXJEYXRlLmdldFRpbWUoKSAhPT0gX3ZhbHVlLmdldFRpbWUoKSkge1xuICAgICAgY29uc3QgX2NhbGVuZGFyRGF0ZSA9IG5ldyBEYXRlKG5ldyBEYXRlKF92YWx1ZS5zZXREYXRlKDEpKS5zZXRIb3VycygwLCAwLCAwLCAwKSk7XG4gICAgICB0aGlzLl9jYWxlbmRhckRhdGUgPSBfY2FsZW5kYXJEYXRlO1xuICAgICAgdGhpcy5jYWxlbmRhckRhdGVDaGFuZ2UuZW1pdChfY2FsZW5kYXJEYXRlKTtcbiAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGNhbGVuZGFyRGF0ZTogX2NhbGVuZGFyRGF0ZSB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgY2FsZW5kYXJEYXRlKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLl9jYWxlbmRhckRhdGU7XG4gIH1cblxuICBwcml2YXRlIF9jYWxlbmRhckRhdGU6IERhdGUgPSB0cnlEYXRlKG5ldyBEYXRlKCkpO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGNhbGVuZGFycyB0aGF0IHJlbmRlciBvbiBkZXNrdG9wIGRldmljZXMuXG4gICAqIEB0eXBlIG51bWJlclxuICAgKiBkZWZhdWx0IDFcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHNldCBjYWxlbmRhcnModmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2NhbGVuZGFycyA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGNhbGVuZGFycygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jYWxlbmRhcnM7XG4gIH1cblxuICBwcml2YXRlIF9jYWxlbmRhcnM6IG51bWJlciA9IDE7XG5cbiAgZ2V0IGNhbGVuZGFyc0FycmF5KCkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLmNhbGVuZGFycyB9LCAodiwgaSkgPT4gaSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBmb3JtYXQgb2YgZGF5IG5hbWUuXG4gICAqIEBkZWZhdWx0ICdudW1lcmljJ1xuICAgKiBAdHlwZSBEYXlGb3JtYXRUeXBlXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgZGF5Rm9ybWF0KHZhbHVlOiBEYXlGb3JtYXRUeXBlKSB7XG4gICAgdGhpcy5fZGF5Rm9ybWF0ID0gdmFsdWU7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgZGF5Rm9ybWF0OiB0aGlzLl9kYXlGb3JtYXQgfSk7XG4gIH1cblxuICBnZXQgZGF5Rm9ybWF0KCkge1xuICAgIHJldHVybiB0aGlzLl9kYXlGb3JtYXQ7XG4gIH1cblxuICBwcml2YXRlIF9kYXlGb3JtYXQ6IERheUZvcm1hdFR5cGUgPSAnbnVtZXJpYyc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGxpc3Qgb2YgZGF0ZXMgdGhhdCBjYW5ub3QgYmUgc2VsZWN0ZWQuXG4gICAqIEB0eXBlICBEYXRlW10gfCBEYXRlW11bXVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGRpc2FibGVkRGF0ZXModmFsdWU6IERhdGVbXSB8IERhdGVbXVtdKSB7XG4gICAgdGhpcy5fZGlzYWJsZWREYXRlcyA9IHZhbHVlO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGRpc2FibGVkRGF0ZXM6IHRoaXMuX2Rpc2FibGVkRGF0ZXMgfSk7XG4gIH1cblxuICBnZXQgZGlzYWJsZWREYXRlcygpOiBEYXRlW10gfCBEYXRlW11bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkRGF0ZXM7XG4gIH1cblxuICBwcml2YXRlIF9kaXNhYmxlZERhdGVzOiBEYXRlW10gfCBEYXRlW11bXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHNlbGVjdGVkIGRhdGUuXG4gICAqIEB0eXBlICAoRGF0ZSB8IG51bGwpXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgc3RhcnREYXRlKHZhbHVlOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGRhdGUgPSAhIXZhbHVlID8gdHJ5RGF0ZSh2YWx1ZSwgJ3N0YXJ0RGF0ZScpIDogbnVsbDtcbiAgICBpZiAodGhpcy5fc3RhcnREYXRlPy5nZXRUaW1lKCkgIT09IGRhdGU/LmdldFRpbWUoKSkge1xuICAgICAgdGhpcy5fc3RhcnREYXRlID0gZGF0ZTtcbiAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHN0YXJ0RGF0ZTogdGhpcy5fc3RhcnREYXRlIH0pO1xuICAgICAgaWYgKCF0aGlzLnJhbmdlIHx8ICF0aGlzLl9zdGFydERhdGUgfHwgKHRoaXMuZW5kRGF0ZSAmJiB0aGlzLl9zdGFydERhdGUgPiB0aGlzLmVuZERhdGUpKSB7XG4gICAgICAgIHRoaXMuZW5kRGF0ZSA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IHN0YXJ0RGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnREYXRlO1xuICB9XG5cbiAgX3N0YXJ0RGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHNlbGVjdGVkIHRvIGRhdGUgKHJhbmdlKS5cbiAgICogQHR5cGUgRGF0ZSB8IG51bGxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBlbmREYXRlKHZhbHVlOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGRhdGUgPSAhIXZhbHVlID8gdHJ5RGF0ZSh2YWx1ZSwgJ2VuZERhdGUnKSA6IG51bGw7XG4gICAgaWYgKHRoaXMuX2VuZERhdGU/LmdldFRpbWUoKSAhPT0gZGF0ZT8uZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLl9lbmREYXRlID0gZGF0ZTtcbiAgICAgIC8vIHRoaXMuX2VuZERhdGUgPSB0aGlzLnJhbmdlID8gdGhpcy5fZW5kRGF0ZSA6IG51bGw7XG4gICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBlbmREYXRlOiB0aGlzLl9lbmREYXRlIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldCBlbmREYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnJhbmdlID8gdGhpcy5fZW5kRGF0ZSA6IG51bGw7XG4gIH1cblxuICBfZW5kRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkYXkgb2Ygc3RhcnQgd2Vlay5cbiAgICogLSAwIC0gU3VuZGF5LFxuICAgKiAtIDEgLSBNb25kYXksXG4gICAqIC0gMiAtIFR1ZXNkYXksXG4gICAqIC0gMyAtIFdlZG5lc2RheSxcbiAgICogLSA0IC0gVGh1cnNkYXksXG4gICAqIC0gNSAtIEZyaWRheSxcbiAgICogLSA2IC0gU2F0dXJkYXksXG4gICAqXG4gICAqIEB0eXBlIG51bWJlclxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBzZXQgZmlyc3REYXlPZldlZWsodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2ZpcnN0RGF5T2ZXZWVrID0gdmFsdWU7XG4gIH1cblxuICBnZXQgZmlyc3REYXlPZldlZWsoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZmlyc3REYXlPZldlZWs7XG4gIH1cblxuICBwcml2YXRlIF9maXJzdERheU9mV2VlazogbnVtYmVyID0gMTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgZGVmYXVsdCBsb2NhbGUgZm9yIGNvbXBvbmVudHMuIElmIG5vdCBzZXQsIGl0IGlzIGluaGVyaXRlZCBmcm9tIHRoZSBicm93c2VyLlxuICAgKiBAZGVmYXVsdCAnZGVmYXVsdCdcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBsb2NhbGUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2xvY2FsZSA9IHZhbHVlO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGxvY2FsZTogdmFsdWUgfSk7XG4gIH1cblxuICBnZXQgbG9jYWxlKCkge1xuICAgIHJldHVybiB0aGlzLl9sb2NhbGU7XG4gIH1cblxuICBwcml2YXRlIF9sb2NhbGU6IHN0cmluZyA9ICdkZWZhdWx0JztcblxuICAvKipcbiAgICogTWF4IHNlbGVjdGFibGUgZGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBtYXhEYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX21heERhdGUgPSAhIXZhbHVlID8gdHJ5RGF0ZSh2YWx1ZSwgJ21heERhdGUnKSA6IG51bGw7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgbWF4RGF0ZTogdGhpcy5fbWF4RGF0ZSB9KTtcbiAgfVxuXG4gIGdldCBtYXhEYXRlKCk6IERhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4RGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX21heERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogTWluIHNlbGVjdGFibGUgZGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBtaW5EYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX21pbkRhdGUgPSB2YWx1ZSA/IHRyeURhdGUodmFsdWUsICdtaW5EYXRlJykgOiBudWxsO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IG1pbkRhdGU6IHRoaXMuX21pbkRhdGUgfSk7XG4gIH1cblxuICBnZXQgbWluRGF0ZSgpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX21pbkRhdGU7XG4gIH1cblxuICBwcml2YXRlIF9taW5EYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFNob3cgbmF2aWdhdGlvbi5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHNldCBuYXZpZ2F0aW9uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbmF2aWdhdGlvbiA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IG5hdmlnYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX25hdmlnYXRpb247XG4gIH1cblxuICBwcml2YXRlIF9uYXZpZ2F0aW9uOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogUmVvcmRlciB5ZWFyLW1vbnRoIG5hdmlnYXRpb24sIGFuZCByZW5kZXIgeWVhciBmaXJzdC5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHNldCBuYXZZZWFyRmlyc3QodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9uYXZZZWFyRmlyc3QgPSB2YWx1ZTtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBuYXZZZWFyRmlyc3Q6IHRoaXMuX25hdlllYXJGaXJzdCB9KTtcbiAgfVxuXG4gIGdldCBuYXZZZWFyRmlyc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuX25hdlllYXJGaXJzdDtcbiAgfVxuXG4gIHByaXZhdGUgX25hdlllYXJGaXJzdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBbGxvdyByYW5nZSBzZWxlY3Rpb24uXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBzZXQgcmFuZ2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yYW5nZSA9IHZhbHVlO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHJhbmdlOiB0aGlzLl9yYW5nZSB9KTtcbiAgfVxuXG4gIGdldCByYW5nZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2U7XG4gIH1cblxuICBwcml2YXRlIF9yYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTZXQgY2FsZW5kYXIgdmlldy5cbiAgICogQHR5cGUgJ2RheXMnIHwgJ21vbnRocycgfCAneWVhcnMnXG4gICAqIEBkZWZhdWx0ICdkYXlzJ1xuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHZpZXcodmFsdWUpIHtcbiAgICAvLyBpZiAoIVsnZGF5cycsICd3ZWVrcyddLmluY2x1ZGVzKHRoaXMuc2VsZWN0aW9uVHlwZSkpIHtcbiAgICAvLyAgIHZhbHVlID0gdGhpcy5zZWxlY3Rpb25UeXBlID09PSAnbW9udGgnID8gJ21vbnRocycgOiAneWVhcnMnO1xuICAgIC8vIH1cbiAgICB0aGlzLl92aWV3ID0gdmFsdWU7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgdmlldzogdmFsdWUgfSk7XG4gIH1cblxuICBnZXQgdmlldygpIHtcbiAgICByZXR1cm4gdGhpcy5fdmlldztcbiAgfVxuXG4gIHByaXZhdGUgX3ZpZXc6ICdkYXlzJyB8ICdtb250aHMnIHwgJ3llYXJzJyA9ICdkYXlzJztcblxuICAvKipcbiAgICogU2V0IGxlbmd0aCBvciBmb3JtYXQgb2YgZGF5IG5hbWUuXG4gICAqIEB0eXBlIG51bWJlciB8ICdsb25nJyB8ICduYXJyb3cnIHwgJ3Nob3J0J1xuICAgKiBAZGVmYXVsdCAnc2hvcnQnXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgd2Vla2RheUZvcm1hdCh2YWx1ZTogV2Vla2RheUZvcm1hdFR5cGUpIHtcbiAgICB0aGlzLl93ZWVrZGF5Rm9ybWF0ID0gdmFsdWU7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgd2Vla2RheUZvcm1hdDogdGhpcy5fd2Vla2RheUZvcm1hdCB9KTtcbiAgfVxuXG4gIGdldCB3ZWVrZGF5Rm9ybWF0KCkge1xuICAgIHJldHVybiB0aGlzLl93ZWVrZGF5Rm9ybWF0O1xuICB9XG5cbiAgcHJpdmF0ZSBfd2Vla2RheUZvcm1hdDogV2Vla2RheUZvcm1hdFR5cGUgPSAnc2hvcnQnO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBkYXRlRmlsdGVyKHZhbHVlOiBEYXRlRmlsdGVyVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGRhdGVGaWx0ZXI6IHZhbHVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIGRheXMgaW4gYWRqYWNlbnQgbW9udGhzIHNob3duIGJlZm9yZSBvciBhZnRlciB0aGUgY3VycmVudCBtb250aCBhcmUgc2VsZWN0YWJsZS4gVGhpcyBvbmx5IGFwcGxpZXMgaWYgdGhlIGBzaG93QWRqYWNlbnREYXlzYCBvcHRpb24gaXMgc2V0IHRvIHRydWUuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHNpbmNlIDQuNC4xMFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHNldCBzZWxlY3RBZGphY2VudERheXModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBzZWxlY3RBZGphY2VudERheXM6IHZhbHVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIHRvIGRpc3BsYXkgZGF0ZXMgaW4gYWRqYWNlbnQgbW9udGhzIChub24tc2VsZWN0YWJsZSkgYXQgdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhlIGN1cnJlbnQgbW9udGguXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAc2luY2UgNC40LjEwXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgc2V0IHNob3dBZGphY2VudERheXModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBzaG93QWRqYWNlbnREYXlzOiB2YWx1ZSA/PyB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIHR5cGUgb2YgZGF0ZSBzZWxlY3Rpb24gYXMgZGF5LCB3ZWVrLCBtb250aCwgb3IgeWVhci5cbiAgICogQHR5cGUgJ2RheScgfCAnd2VlaycgfCAnbW9udGgnIHwgJ3llYXInXG4gICAqIEBkZWZhdWx0ICdkYXknXG4gICAqIEBzaW5jZSA1LjAuMFxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHNlbGVjdGlvblR5cGUodmFsdWU6IFNlbGVjdGlvblR5cGUpIHtcbiAgICB0aGlzLmNhbGVuZGFycyA9IFsnbW9udGgnLCAneWVhciddLmluY2x1ZGVzKHZhbHVlKSA/IDEgOiB0aGlzLmNhbGVuZGFycztcbiAgICB0aGlzLiNzZWxlY3Rpb25UeXBlID0gdmFsdWU7XG4gICAgdGhpcy52aWV3ID0gWydkYXknLCAnd2VlayddLmluY2x1ZGVzKHZhbHVlKSA/ICdkYXlzJyA6IHZhbHVlID09PSAnbW9udGgnID8gJ21vbnRocycgOiAneWVhcnMnO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHNlbGVjdGlvblR5cGU6IHZhbHVlLCB2aWV3OiB0aGlzLnZpZXcgfSk7XG4gIH1cblxuICBnZXQgc2VsZWN0aW9uVHlwZSgpOiBTZWxlY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gdGhpcy4jc2VsZWN0aW9uVHlwZTtcbiAgfVxuXG4gIC8vICNzZWxlY3Rpb25UeXBlID0gc2lnbmFsPFNlbGVjdGlvblR5cGU+KCdtb250aCcpO1xuICAjc2VsZWN0aW9uVHlwZSA9ICdkYXknIGFzIFNlbGVjdGlvblR5cGU7XG5cbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIHRvIGRpc3BsYXkgd2VlayBudW1iZXJzIGluIHRoZSBjYWxlbmRhci5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc2luY2UgNS4wLjBcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBzZXQgc2hvd1dlZWtOdW1iZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNzaG93V2Vla051bWJlci5zZXQodmFsdWUpO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHNob3dXZWVrTnVtYmVyOiB2YWx1ZSB9KTtcbiAgfVxuXG4gICNzaG93V2Vla051bWJlciA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIExhYmVsIGRpc3BsYXllZCBvdmVyIHdlZWsgbnVtYmVycyBpbiB0aGUgY2FsZW5kYXIuXG4gICAqIEB0eXBlIHN0cmluZ1xuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICogQHNpbmNlIDUuMC4wXG4gICAqL1xuICBASW5wdXQoKSBzZXQgd2Vla051bWJlcnNMYWJlbCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgd2Vla051bWJlcnNMYWJlbDogdmFsdWUgfSk7XG4gIH1cblxuICBAT3V0cHV0KCkgY2FsZW5kYXJDZWxsSG92ZXI6IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPigpO1xuICBAT3V0cHV0KCkgY2FsZW5kYXJEYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG4gIEBPdXRwdXQoKSBlbmREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4oKTtcbiAgQE91dHB1dCgpIHN0YXJ0RGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+KCk7XG4gIEBPdXRwdXQoKSB2aWV3Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8vIHVzZWQgd2l0aCBjYWxlbmRhclNlcnZpY2VcbiAgc2V0IGhvdmVyRGF0ZSh2YWx1ZTogRGF0ZSB8IG51bGwpIHtcbiAgICB0aGlzLl9ob3ZlckRhdGUgPSB2YWx1ZTtcbiAgICB0aGlzLmNhbGVuZGFyQ2VsbEhvdmVyLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IGhvdmVyRGF0ZSgpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2hvdmVyRGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2hvdmVyRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogYW55IHtcbiAgICBjb25zdCBzZWxlY3Rpb25UeXBlID0gdGhpcy4jc2VsZWN0aW9uVHlwZTtcbiAgICBjb25zdCB2aWV3ID0gdGhpcy52aWV3O1xuICAgIHJldHVybiB7XG4gICAgICBjYWxlbmRhcnM6IHRydWUsXG4gICAgICBbYHNlbGVjdC0ke3NlbGVjdGlvblR5cGV9YF06IHNlbGVjdGlvblR5cGUgJiYgdmlldyA9PT0gJ2RheXMnLFxuICAgICAgJ3Nob3ctd2Vlay1udW1iZXJzJzogdGhpcy4jc2hvd1dlZWtOdW1iZXIoKVxuICAgIH07XG4gIH1cblxuICBAVmlld0NoaWxkcmVuKENhbGVuZGFyTW9udGhDb21wb25lbnQpIGNhbGVuZGFyTW9udGhzITogUXVlcnlMaXN0PENhbGVuZGFyTW9udGhDb21wb25lbnQ+O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7XG4gICAgICBsb2NhbGU6IHRoaXMubG9jYWxlID8/ICdkZWZhdWx0JyxcbiAgICAgIHZpZXc6IHRoaXMudmlldyxcbiAgICAgIHJhbmdlOiB0aGlzLnJhbmdlLFxuICAgICAgc2VsZWN0aW9uVHlwZTogdGhpcy5zZWxlY3Rpb25UeXBlXG4gICAgICAvLyBzaG93QWRqYWNlbnREYXlzOiB0aGlzLnNob3dBZGphY2VudERheXMsXG4gICAgICAvLyBzZWxlY3RBZGphY2VudERheXM6IHRoaXMuc2VsZWN0QWRqYWNlbnREYXlzXG4gICAgfSk7XG4gIH1cblxuICBjYWxlbmRhclN0YXRlU3Vic2NyaWJlKCk6IHZvaWQge1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNhbGVuZGFyU3RhdGUkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoc3RhdGUpO1xuICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICBpZiAoa2V5IGluIHRoaXMpIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgaWYgKHRoaXNba2V5XSAhPT0gc3RhdGVba2V5XSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpc1trZXldID0gc3RhdGVba2V5XTtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdzdGFydERhdGUnKSB7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlQ2hhbmdlLmVtaXQodGhpcy5fc3RhcnREYXRlKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2VuZERhdGUnKSB7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZW5kRGF0ZUNoYW5nZS5lbWl0KHRoaXMuX2VuZERhdGUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNldENhbGVuZGFyUGFnZSh5ZWFyczogbnVtYmVyLCBtb250aHMgPSAwLCBzZXRNb250aD86IG51bWJlcikge1xuICAgIGNvbnN0IHllYXIgPSB0aGlzLmNhbGVuZGFyRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IG1vbnRoID0gdGhpcy5jYWxlbmRhckRhdGUuZ2V0TW9udGgoKTtcbiAgICBjb25zdCBkID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xuXG4gICAgeWVhcnMgJiYgZC5zZXRGdWxsWWVhcihkLmdldEZ1bGxZZWFyKCkgKyB5ZWFycyk7XG4gICAgbW9udGhzICYmIGQuc2V0TW9udGgoZC5nZXRNb250aCgpICsgbW9udGhzKTtcbiAgICB0eXBlb2Ygc2V0TW9udGggPT09ICdudW1iZXInICYmIGQuc2V0TW9udGgoc2V0TW9udGgpO1xuXG4gICAgdGhpcy5jYWxlbmRhckRhdGUgPSBkO1xuICB9XG5cbiAgaGFuZGxlTmF2aWdhdGlvbkNsaWNrKGRpcmVjdGlvbjogJ3ByZXYnIHwgJ25leHQnLCB5ZWFycyA9IGZhbHNlKSB7XG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3ByZXYnKSB7XG4gICAgICBpZiAoeWVhcnMpIHtcbiAgICAgICAgdGhpcy5zZXRDYWxlbmRhclBhZ2UodGhpcy52aWV3ID09PSAneWVhcnMnID8gLTEwIDogLTEpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnZpZXcgIT09ICdkYXlzJykge1xuICAgICAgICB0aGlzLnNldENhbGVuZGFyUGFnZSgtMSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZXRDYWxlbmRhclBhZ2UoMCwgLTEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZGlyZWN0aW9uID09PSAnbmV4dCcpIHtcbiAgICAgIGlmICh5ZWFycykge1xuICAgICAgICB0aGlzLnNldENhbGVuZGFyUGFnZSh0aGlzLnZpZXcgPT09ICd5ZWFycycgPyAxMCA6IDEpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnZpZXcgIT09ICdkYXlzJykge1xuICAgICAgICB0aGlzLnNldENhbGVuZGFyUGFnZSgxKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNldENhbGVuZGFyUGFnZSgwLCAxKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgc3RhcnREYXRlIGFuZCBlbmREYXRlXG4gICAqIEB0eXBlIHZvaWRcbiAgICovXG4gIHB1YmxpYyBjbGVhckRhdGVzKCkge1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGVuZERhdGU6IG51bGwgfSk7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgc3RhcnREYXRlOiBudWxsIH0pO1xuICB9XG5cbiAgaGFuZGxlRm9jdXNDaGFuZ2UoJGV2ZW50OiBGb2N1c09yaWdpbikge1xuICAgIGlmICgkZXZlbnQgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGhvdmVyRGF0ZTogbnVsbCB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2V0Q2FsZW5kYXJEYXRlID0gZ2V0Q2FsZW5kYXJEYXRlO1xufVxuIiwiQGZvciAoY2FsZW5kYXIgb2YgY2FsZW5kYXJzQXJyYXk7IHRyYWNrIGNhbGVuZGFyOyBsZXQgaSA9ICRpbmRleCkge1xuICA8ZGl2IFtuZ0NsYXNzXT1cInZpZXcgfCBjYWxlbmRhckNsYXNzVmlld1wiPlxuICAgIDxjLWNhbGVuZGFyLW5hdmlnYXRpb25cbiAgICAgIChuYXZpZ2F0aW9uQ2xpY2spPVwiaGFuZGxlTmF2aWdhdGlvbkNsaWNrKCRldmVudC5kaXJlY3Rpb24sICRldmVudC55ZWFycylcIlxuICAgICAgW2FkZE1vbnRoc109XCJpXCJcbiAgICAgIFtuYXZpZ2F0aW9uXT1cIm5hdmlnYXRpb25cIlxuICAgIC8+XG5cbiAgICA8Yy1jYWxlbmRhci1tb250aFxuICAgICAgW2FkZE1vbnRoc109XCJpXCJcbiAgICAgIFtmaXJzdERheU9mV2Vla109XCJmaXJzdERheU9mV2Vla1wiXG4gICAgICBbd2Vla2RheUZvcm1hdF09XCJ3ZWVrZGF5Rm9ybWF0XCJcbiAgICAgIGNka01vbml0b3JTdWJ0cmVlRm9jdXNcbiAgICAgIChjZGtGb2N1c0NoYW5nZSk9XCJoYW5kbGVGb2N1c0NoYW5nZSgkZXZlbnQpXCJcbiAgICAvPlxuICA8L2Rpdj5cbn1cbiJdfQ==
|
|
478
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUVmLE1BQU0sRUFFTixNQUFNLEVBQ04sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFFNUQsT0FBTyxFQUFFLGVBQWUsRUFBbUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBV25FLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsV0FBVyxDQUFzQjtJQUVqQyxZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFGcEQsZ0JBQVcsR0FBRyxNQUFNLENB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QUUsZ0JBQWdCLEVBQUU7Z0JBY3pCLGdCQUFnQjtzQkFBNUIsS0FBSztnQkFJSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQWVILFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQVdrQixjQUFjO3NCQUFuRCxZQUFZO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQTExeU1vZHVsZSwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5cbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSwgRGF0ZUZpbHRlclR5cGUsIERheUZvcm1hdFR5cGUsIFNlbGVjdGlvblR5cGUsIFdlZWtkYXlGb3JtYXRUeXBlIH0gZnJvbSAnLi4vY2FsZW5kYXIuc2VydmljZSc7XG5pbXBvcnQgeyBnZXRDYWxlbmRhckRhdGUsIHRyeURhdGUgfSBmcm9tICcuLi9jYWxlbmRhci51dGlscyc7XG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FsZW5kYXItbW9udGgvY2FsZW5kYXItbW9udGguY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NhbGVuZGFyLW5hdmlnYXRpb24vY2FsZW5kYXItbmF2aWdhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJDbGFzc1ZpZXdQaXBlIH0gZnJvbSAnLi9jYWxlbmRhci1jbGFzcy12aWV3LnBpcGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLWNhbGVuZGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjQ2FsZW5kYXInLFxuICBwcm92aWRlcnM6IFtDYWxlbmRhclNlcnZpY2VdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ2FsZW5kYXJOYXZpZ2F0aW9uQ29tcG9uZW50LCBDYWxlbmRhckNsYXNzVmlld1BpcGUsIENhbGVuZGFyTW9udGhDb21wb25lbnQsIE5nQ2xhc3MsIEExMXlNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgI2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjYWxlbmRhclNlcnZpY2U6IENhbGVuZGFyU2VydmljZSkge1xuICAgIHRoaXMuY2FsZW5kYXJTdGF0ZVN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgZGF0ZSBvZiB0aGUgY29tcG9uZW50XG4gICAqIEB0eXBlICBEYXRlIHwgc3RyaW5nXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgY2FsZW5kYXJEYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgLy8gY29uc3QgX3ZhbHVlID0gbmV3IERhdGUodHJ5RGF0ZSgodmFsdWUgPz8gdGhpcy5zdGFydERhdGUgPz8gbmV3IERhdGUoKSksICdjYWxlbmRhckRhdGUnKSk7XG4gICAgY29uc3QgX3ZhbHVlID0gbmV3IERhdGUodHJ5RGF0ZSh2YWx1ZSA/PyB0aGlzLnN0YXJ0RGF0ZSwgJ2NhbGVuZGFyRGF0ZScpKTtcbiAgICAvLyBpZiAoIWlzRGF0ZUJldHdlZW5NaW5NYXgoX3ZhbHVlLCB0aGlzLm1pbkRhdGUsIHRoaXMubWF4RGF0ZSkpIHtcbiAgICAvLyAgIC8vIF92YWx1ZSA9IF92YWx1ZSA8ICh0aGlzLm1pbkRhdGUgPz8gMCkgPyB0aGlzLm1pbkRhdGUgPz8gdGhpcy5tYXhEYXRlID8/IF92YWx1ZSA6IHRoaXMubWF4RGF0ZSA/PyB0aGlzLm1pbkRhdGUgPz8gX3ZhbHVlO1xuICAgIC8vICAgLy8gcmV0dXJuO1xuICAgIC8vICAgX3ZhbHVlID0gdGhpcy5fY2FsZW5kYXJEYXRlO1xuICAgIC8vIH1cbiAgICBpZiAoISFfdmFsdWUgJiYgdGhpcy5fY2FsZW5kYXJEYXRlLmdldFRpbWUoKSAhPT0gX3ZhbHVlLmdldFRpbWUoKSkge1xuICAgICAgY29uc3QgX2NhbGVuZGFyRGF0ZSA9IG5ldyBEYXRlKG5ldyBEYXRlKF92YWx1ZS5zZXREYXRlKDEpKS5zZXRIb3VycygwLCAwLCAwLCAwKSk7XG4gICAgICB0aGlzLl9jYWxlbmRhckRhdGUgPSBfY2FsZW5kYXJEYXRlO1xuICAgICAgdGhpcy5jYWxlbmRhckRhdGVDaGFuZ2UuZW1pdChfY2FsZW5kYXJEYXRlKTtcbiAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGNhbGVuZGFyRGF0ZTogX2NhbGVuZGFyRGF0ZSB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgY2FsZW5kYXJEYXRlKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLl9jYWxlbmRhckRhdGU7XG4gIH1cblxuICBwcml2YXRlIF9jYWxlbmRhckRhdGU6IERhdGUgPSB0cnlEYXRlKG5ldyBEYXRlKCkpO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGNhbGVuZGFycyB0aGF0IHJlbmRlciBvbiBkZXNrdG9wIGRldmljZXMuXG4gICAqIEB0eXBlIG51bWJlclxuICAgKiBkZWZhdWx0IDFcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHNldCBjYWxlbmRhcnModmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2NhbGVuZGFycyA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGNhbGVuZGFycygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jYWxlbmRhcnM7XG4gIH1cblxuICBwcml2YXRlIF9jYWxlbmRhcnM6IG51bWJlciA9IDE7XG5cbiAgZ2V0IGNhbGVuZGFyc0FycmF5KCkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLmNhbGVuZGFycyB9LCAodiwgaSkgPT4gaSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBmb3JtYXQgb2YgZGF5IG5hbWUuXG4gICAqIEBkZWZhdWx0ICdudW1lcmljJ1xuICAgKiBAdHlwZSBEYXlGb3JtYXRUeXBlXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgZGF5Rm9ybWF0KHZhbHVlOiBEYXlGb3JtYXRUeXBlKSB7XG4gICAgdGhpcy5fZGF5Rm9ybWF0ID0gdmFsdWU7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgZGF5Rm9ybWF0OiB0aGlzLl9kYXlGb3JtYXQgfSk7XG4gIH1cblxuICBnZXQgZGF5Rm9ybWF0KCkge1xuICAgIHJldHVybiB0aGlzLl9kYXlGb3JtYXQ7XG4gIH1cblxuICBwcml2YXRlIF9kYXlGb3JtYXQ6IERheUZvcm1hdFR5cGUgPSAnbnVtZXJpYyc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGxpc3Qgb2YgZGF0ZXMgdGhhdCBjYW5ub3QgYmUgc2VsZWN0ZWQuXG4gICAqIEB0eXBlICBEYXRlW10gfCBEYXRlW11bXVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGRpc2FibGVkRGF0ZXModmFsdWU6IChEYXRlW10gfCBEYXRlKVtdKSB7XG4gICAgdGhpcy5fZGlzYWJsZWREYXRlcyA9IHZhbHVlO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGRpc2FibGVkRGF0ZXM6IHRoaXMuX2Rpc2FibGVkRGF0ZXMgfSk7XG4gIH1cblxuICBnZXQgZGlzYWJsZWREYXRlcygpOiAoRGF0ZVtdIHwgRGF0ZSlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkRGF0ZXM7XG4gIH1cblxuICBwcml2YXRlIF9kaXNhYmxlZERhdGVzOiAoRGF0ZVtdIHwgRGF0ZSlbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHNlbGVjdGVkIGRhdGUuXG4gICAqIEB0eXBlICAoRGF0ZSB8IG51bGwpXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgc3RhcnREYXRlKHZhbHVlOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGRhdGUgPSAhIXZhbHVlID8gdHJ5RGF0ZSh2YWx1ZSwgJ3N0YXJ0RGF0ZScpIDogbnVsbDtcbiAgICBpZiAodGhpcy5fc3RhcnREYXRlPy5nZXRUaW1lKCkgIT09IGRhdGU/LmdldFRpbWUoKSkge1xuICAgICAgdGhpcy5fc3RhcnREYXRlID0gZGF0ZTtcbiAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHN0YXJ0RGF0ZTogdGhpcy5fc3RhcnREYXRlIH0pO1xuICAgICAgaWYgKCF0aGlzLnJhbmdlIHx8ICF0aGlzLl9zdGFydERhdGUgfHwgKHRoaXMuZW5kRGF0ZSAmJiB0aGlzLl9zdGFydERhdGUgPiB0aGlzLmVuZERhdGUpKSB7XG4gICAgICAgIHRoaXMuZW5kRGF0ZSA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IHN0YXJ0RGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnREYXRlO1xuICB9XG5cbiAgX3N0YXJ0RGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHNlbGVjdGVkIHRvIGRhdGUgKHJhbmdlKS5cbiAgICogQHR5cGUgRGF0ZSB8IG51bGxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBlbmREYXRlKHZhbHVlOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGRhdGUgPSAhIXZhbHVlID8gdHJ5RGF0ZSh2YWx1ZSwgJ2VuZERhdGUnKSA6IG51bGw7XG4gICAgaWYgKHRoaXMuX2VuZERhdGU/LmdldFRpbWUoKSAhPT0gZGF0ZT8uZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLl9lbmREYXRlID0gZGF0ZTtcbiAgICAgIC8vIHRoaXMuX2VuZERhdGUgPSB0aGlzLnJhbmdlID8gdGhpcy5fZW5kRGF0ZSA6IG51bGw7XG4gICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBlbmREYXRlOiB0aGlzLl9lbmREYXRlIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldCBlbmREYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnJhbmdlID8gdGhpcy5fZW5kRGF0ZSA6IG51bGw7XG4gIH1cblxuICBfZW5kRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkYXkgb2Ygc3RhcnQgd2Vlay5cbiAgICogLSAwIC0gU3VuZGF5LFxuICAgKiAtIDEgLSBNb25kYXksXG4gICAqIC0gMiAtIFR1ZXNkYXksXG4gICAqIC0gMyAtIFdlZG5lc2RheSxcbiAgICogLSA0IC0gVGh1cnNkYXksXG4gICAqIC0gNSAtIEZyaWRheSxcbiAgICogLSA2IC0gU2F0dXJkYXksXG4gICAqXG4gICAqIEB0eXBlIG51bWJlclxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBzZXQgZmlyc3REYXlPZldlZWsodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2ZpcnN0RGF5T2ZXZWVrID0gdmFsdWU7XG4gIH1cblxuICBnZXQgZmlyc3REYXlPZldlZWsoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZmlyc3REYXlPZldlZWs7XG4gIH1cblxuICBwcml2YXRlIF9maXJzdERheU9mV2VlazogbnVtYmVyID0gMTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgZGVmYXVsdCBsb2NhbGUgZm9yIGNvbXBvbmVudHMuIElmIG5vdCBzZXQsIGl0IGlzIGluaGVyaXRlZCBmcm9tIHRoZSBicm93c2VyLlxuICAgKiBAZGVmYXVsdCAnZGVmYXVsdCdcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBsb2NhbGUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2xvY2FsZSA9IHZhbHVlO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGxvY2FsZTogdmFsdWUgfSk7XG4gIH1cblxuICBnZXQgbG9jYWxlKCkge1xuICAgIHJldHVybiB0aGlzLl9sb2NhbGU7XG4gIH1cblxuICBwcml2YXRlIF9sb2NhbGU6IHN0cmluZyA9ICdkZWZhdWx0JztcblxuICAvKipcbiAgICogTWF4IHNlbGVjdGFibGUgZGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBtYXhEYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX21heERhdGUgPSAhIXZhbHVlID8gdHJ5RGF0ZSh2YWx1ZSwgJ21heERhdGUnKSA6IG51bGw7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgbWF4RGF0ZTogdGhpcy5fbWF4RGF0ZSB9KTtcbiAgfVxuXG4gIGdldCBtYXhEYXRlKCk6IERhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4RGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX21heERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogTWluIHNlbGVjdGFibGUgZGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBtaW5EYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX21pbkRhdGUgPSB2YWx1ZSA/IHRyeURhdGUodmFsdWUsICdtaW5EYXRlJykgOiBudWxsO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IG1pbkRhdGU6IHRoaXMuX21pbkRhdGUgfSk7XG4gIH1cblxuICBnZXQgbWluRGF0ZSgpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX21pbkRhdGU7XG4gIH1cblxuICBwcml2YXRlIF9taW5EYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFNob3cgbmF2aWdhdGlvbi5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHNldCBuYXZpZ2F0aW9uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbmF2aWdhdGlvbiA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IG5hdmlnYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX25hdmlnYXRpb247XG4gIH1cblxuICBwcml2YXRlIF9uYXZpZ2F0aW9uOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogUmVvcmRlciB5ZWFyLW1vbnRoIG5hdmlnYXRpb24sIGFuZCByZW5kZXIgeWVhciBmaXJzdC5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHNldCBuYXZZZWFyRmlyc3QodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9uYXZZZWFyRmlyc3QgPSB2YWx1ZTtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBuYXZZZWFyRmlyc3Q6IHRoaXMuX25hdlllYXJGaXJzdCB9KTtcbiAgfVxuXG4gIGdldCBuYXZZZWFyRmlyc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuX25hdlllYXJGaXJzdDtcbiAgfVxuXG4gIHByaXZhdGUgX25hdlllYXJGaXJzdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBbGxvdyByYW5nZSBzZWxlY3Rpb24uXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBzZXQgcmFuZ2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yYW5nZSA9IHZhbHVlO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHJhbmdlOiB0aGlzLl9yYW5nZSB9KTtcbiAgfVxuXG4gIGdldCByYW5nZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2U7XG4gIH1cblxuICBwcml2YXRlIF9yYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTZXQgY2FsZW5kYXIgdmlldy5cbiAgICogQHR5cGUgJ2RheXMnIHwgJ21vbnRocycgfCAneWVhcnMnXG4gICAqIEBkZWZhdWx0ICdkYXlzJ1xuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHZpZXcodmFsdWUpIHtcbiAgICAvLyBpZiAoIVsnZGF5cycsICd3ZWVrcyddLmluY2x1ZGVzKHRoaXMuc2VsZWN0aW9uVHlwZSkpIHtcbiAgICAvLyAgIHZhbHVlID0gdGhpcy5zZWxlY3Rpb25UeXBlID09PSAnbW9udGgnID8gJ21vbnRocycgOiAneWVhcnMnO1xuICAgIC8vIH1cbiAgICB0aGlzLl92aWV3ID0gdmFsdWU7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgdmlldzogdmFsdWUgfSk7XG4gIH1cblxuICBnZXQgdmlldygpIHtcbiAgICByZXR1cm4gdGhpcy5fdmlldztcbiAgfVxuXG4gIHByaXZhdGUgX3ZpZXc6ICdkYXlzJyB8ICdtb250aHMnIHwgJ3llYXJzJyA9ICdkYXlzJztcblxuICAvKipcbiAgICogU2V0IGxlbmd0aCBvciBmb3JtYXQgb2YgZGF5IG5hbWUuXG4gICAqIEB0eXBlIG51bWJlciB8ICdsb25nJyB8ICduYXJyb3cnIHwgJ3Nob3J0J1xuICAgKiBAZGVmYXVsdCAnc2hvcnQnXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgd2Vla2RheUZvcm1hdCh2YWx1ZTogV2Vla2RheUZvcm1hdFR5cGUpIHtcbiAgICB0aGlzLl93ZWVrZGF5Rm9ybWF0ID0gdmFsdWU7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgd2Vla2RheUZvcm1hdDogdGhpcy5fd2Vla2RheUZvcm1hdCB9KTtcbiAgfVxuXG4gIGdldCB3ZWVrZGF5Rm9ybWF0KCkge1xuICAgIHJldHVybiB0aGlzLl93ZWVrZGF5Rm9ybWF0O1xuICB9XG5cbiAgcHJpdmF0ZSBfd2Vla2RheUZvcm1hdDogV2Vla2RheUZvcm1hdFR5cGUgPSAnc2hvcnQnO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBkYXRlRmlsdGVyKHZhbHVlOiBEYXRlRmlsdGVyVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGRhdGVGaWx0ZXI6IHZhbHVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIGRheXMgaW4gYWRqYWNlbnQgbW9udGhzIHNob3duIGJlZm9yZSBvciBhZnRlciB0aGUgY3VycmVudCBtb250aCBhcmUgc2VsZWN0YWJsZS4gVGhpcyBvbmx5IGFwcGxpZXMgaWYgdGhlIGBzaG93QWRqYWNlbnREYXlzYCBvcHRpb24gaXMgc2V0IHRvIHRydWUuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQHNpbmNlIDQuNC4xMFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHNldCBzZWxlY3RBZGphY2VudERheXModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBzZWxlY3RBZGphY2VudERheXM6IHZhbHVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIHRvIGRpc3BsYXkgZGF0ZXMgaW4gYWRqYWNlbnQgbW9udGhzIChub24tc2VsZWN0YWJsZSkgYXQgdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhlIGN1cnJlbnQgbW9udGguXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAc2luY2UgNC40LjEwXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgc2V0IHNob3dBZGphY2VudERheXModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBzaG93QWRqYWNlbnREYXlzOiB2YWx1ZSA/PyB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIHR5cGUgb2YgZGF0ZSBzZWxlY3Rpb24gYXMgZGF5LCB3ZWVrLCBtb250aCwgb3IgeWVhci5cbiAgICogQHR5cGUgJ2RheScgfCAnd2VlaycgfCAnbW9udGgnIHwgJ3llYXInXG4gICAqIEBkZWZhdWx0ICdkYXknXG4gICAqIEBzaW5jZSA1LjAuMFxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHNlbGVjdGlvblR5cGUodmFsdWU6IFNlbGVjdGlvblR5cGUpIHtcbiAgICB0aGlzLmNhbGVuZGFycyA9IFsnbW9udGgnLCAneWVhciddLmluY2x1ZGVzKHZhbHVlKSA/IDEgOiB0aGlzLmNhbGVuZGFycztcbiAgICB0aGlzLiNzZWxlY3Rpb25UeXBlID0gdmFsdWU7XG4gICAgdGhpcy52aWV3ID0gWydkYXknLCAnd2VlayddLmluY2x1ZGVzKHZhbHVlKSA/ICdkYXlzJyA6IHZhbHVlID09PSAnbW9udGgnID8gJ21vbnRocycgOiAneWVhcnMnO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHNlbGVjdGlvblR5cGU6IHZhbHVlLCB2aWV3OiB0aGlzLnZpZXcgfSk7XG4gIH1cblxuICBnZXQgc2VsZWN0aW9uVHlwZSgpOiBTZWxlY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gdGhpcy4jc2VsZWN0aW9uVHlwZTtcbiAgfVxuXG4gIC8vICNzZWxlY3Rpb25UeXBlID0gc2lnbmFsPFNlbGVjdGlvblR5cGU+KCdtb250aCcpO1xuICAjc2VsZWN0aW9uVHlwZSA9ICdkYXknIGFzIFNlbGVjdGlvblR5cGU7XG5cbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIHRvIGRpc3BsYXkgd2VlayBudW1iZXJzIGluIHRoZSBjYWxlbmRhci5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc2luY2UgNS4wLjBcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBzZXQgc2hvd1dlZWtOdW1iZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNzaG93V2Vla051bWJlci5zZXQodmFsdWUpO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHNob3dXZWVrTnVtYmVyOiB2YWx1ZSB9KTtcbiAgfVxuXG4gICNzaG93V2Vla051bWJlciA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIExhYmVsIGRpc3BsYXllZCBvdmVyIHdlZWsgbnVtYmVycyBpbiB0aGUgY2FsZW5kYXIuXG4gICAqIEB0eXBlIHN0cmluZ1xuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICogQHNpbmNlIDUuMC4wXG4gICAqL1xuICBASW5wdXQoKSBzZXQgd2Vla051bWJlcnNMYWJlbCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgd2Vla051bWJlcnNMYWJlbDogdmFsdWUgfSk7XG4gIH1cblxuICBAT3V0cHV0KCkgY2FsZW5kYXJDZWxsSG92ZXI6IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPigpO1xuICBAT3V0cHV0KCkgY2FsZW5kYXJEYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG4gIEBPdXRwdXQoKSBlbmREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4oKTtcbiAgQE91dHB1dCgpIHN0YXJ0RGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+KCk7XG4gIEBPdXRwdXQoKSB2aWV3Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8vIHVzZWQgd2l0aCBjYWxlbmRhclNlcnZpY2VcbiAgc2V0IGhvdmVyRGF0ZSh2YWx1ZTogRGF0ZSB8IG51bGwpIHtcbiAgICB0aGlzLl9ob3ZlckRhdGUgPSB2YWx1ZTtcbiAgICB0aGlzLmNhbGVuZGFyQ2VsbEhvdmVyLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IGhvdmVyRGF0ZSgpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2hvdmVyRGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2hvdmVyRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogYW55IHtcbiAgICBjb25zdCBzZWxlY3Rpb25UeXBlID0gdGhpcy4jc2VsZWN0aW9uVHlwZTtcbiAgICBjb25zdCB2aWV3ID0gdGhpcy52aWV3O1xuICAgIHJldHVybiB7XG4gICAgICBjYWxlbmRhcnM6IHRydWUsXG4gICAgICBbYHNlbGVjdC0ke3NlbGVjdGlvblR5cGV9YF06IHNlbGVjdGlvblR5cGUgJiYgdmlldyA9PT0gJ2RheXMnLFxuICAgICAgJ3Nob3ctd2Vlay1udW1iZXJzJzogdGhpcy4jc2hvd1dlZWtOdW1iZXIoKVxuICAgIH07XG4gIH1cblxuICBAVmlld0NoaWxkcmVuKENhbGVuZGFyTW9udGhDb21wb25lbnQpIGNhbGVuZGFyTW9udGhzITogUXVlcnlMaXN0PENhbGVuZGFyTW9udGhDb21wb25lbnQ+O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7XG4gICAgICBsb2NhbGU6IHRoaXMubG9jYWxlID8/ICdkZWZhdWx0JyxcbiAgICAgIHZpZXc6IHRoaXMudmlldyxcbiAgICAgIHJhbmdlOiB0aGlzLnJhbmdlLFxuICAgICAgc2VsZWN0aW9uVHlwZTogdGhpcy5zZWxlY3Rpb25UeXBlXG4gICAgICAvLyBzaG93QWRqYWNlbnREYXlzOiB0aGlzLnNob3dBZGphY2VudERheXMsXG4gICAgICAvLyBzZWxlY3RBZGphY2VudERheXM6IHRoaXMuc2VsZWN0QWRqYWNlbnREYXlzXG4gICAgfSk7XG4gIH1cblxuICBjYWxlbmRhclN0YXRlU3Vic2NyaWJlKCk6IHZvaWQge1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNhbGVuZGFyU3RhdGUkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoc3RhdGUpO1xuICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICBpZiAoa2V5IGluIHRoaXMpIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgaWYgKHRoaXNba2V5XSAhPT0gc3RhdGVba2V5XSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpc1trZXldID0gc3RhdGVba2V5XTtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdzdGFydERhdGUnKSB7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlQ2hhbmdlLmVtaXQodGhpcy5fc3RhcnREYXRlKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2VuZERhdGUnKSB7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZW5kRGF0ZUNoYW5nZS5lbWl0KHRoaXMuX2VuZERhdGUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNldENhbGVuZGFyUGFnZSh5ZWFyczogbnVtYmVyLCBtb250aHMgPSAwLCBzZXRNb250aD86IG51bWJlcikge1xuICAgIGNvbnN0IHllYXIgPSB0aGlzLmNhbGVuZGFyRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IG1vbnRoID0gdGhpcy5jYWxlbmRhckRhdGUuZ2V0TW9udGgoKTtcbiAgICBjb25zdCBkID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xuXG4gICAgeWVhcnMgJiYgZC5zZXRGdWxsWWVhcihkLmdldEZ1bGxZZWFyKCkgKyB5ZWFycyk7XG4gICAgbW9udGhzICYmIGQuc2V0TW9udGgoZC5nZXRNb250aCgpICsgbW9udGhzKTtcbiAgICB0eXBlb2Ygc2V0TW9udGggPT09ICdudW1iZXInICYmIGQuc2V0TW9udGgoc2V0TW9udGgpO1xuXG4gICAgdGhpcy5jYWxlbmRhckRhdGUgPSBkO1xuICB9XG5cbiAgaGFuZGxlTmF2aWdhdGlvbkNsaWNrKGRpcmVjdGlvbjogJ3ByZXYnIHwgJ25leHQnLCB5ZWFycyA9IGZhbHNlKSB7XG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3ByZXYnKSB7XG4gICAgICBpZiAoeWVhcnMpIHtcbiAgICAgICAgdGhpcy5zZXRDYWxlbmRhclBhZ2UodGhpcy52aWV3ID09PSAneWVhcnMnID8gLTEwIDogLTEpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnZpZXcgIT09ICdkYXlzJykge1xuICAgICAgICB0aGlzLnNldENhbGVuZGFyUGFnZSgtMSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZXRDYWxlbmRhclBhZ2UoMCwgLTEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZGlyZWN0aW9uID09PSAnbmV4dCcpIHtcbiAgICAgIGlmICh5ZWFycykge1xuICAgICAgICB0aGlzLnNldENhbGVuZGFyUGFnZSh0aGlzLnZpZXcgPT09ICd5ZWFycycgPyAxMCA6IDEpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnZpZXcgIT09ICdkYXlzJykge1xuICAgICAgICB0aGlzLnNldENhbGVuZGFyUGFnZSgxKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNldENhbGVuZGFyUGFnZSgwLCAxKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgc3RhcnREYXRlIGFuZCBlbmREYXRlXG4gICAqIEB0eXBlIHZvaWRcbiAgICovXG4gIHB1YmxpYyBjbGVhckRhdGVzKCkge1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGVuZERhdGU6IG51bGwgfSk7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgc3RhcnREYXRlOiBudWxsIH0pO1xuICB9XG5cbiAgaGFuZGxlRm9jdXNDaGFuZ2UoJGV2ZW50OiBGb2N1c09yaWdpbikge1xuICAgIGlmICgkZXZlbnQgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGhvdmVyRGF0ZTogbnVsbCB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2V0Q2FsZW5kYXJEYXRlID0gZ2V0Q2FsZW5kYXJEYXRlO1xufVxuIiwiQGZvciAoY2FsZW5kYXIgb2YgY2FsZW5kYXJzQXJyYXk7IHRyYWNrIGNhbGVuZGFyOyBsZXQgaSA9ICRpbmRleCkge1xuICA8ZGl2IFtuZ0NsYXNzXT1cInZpZXcgfCBjYWxlbmRhckNsYXNzVmlld1wiPlxuICAgIDxjLWNhbGVuZGFyLW5hdmlnYXRpb25cbiAgICAgIChuYXZpZ2F0aW9uQ2xpY2spPVwiaGFuZGxlTmF2aWdhdGlvbkNsaWNrKCRldmVudC5kaXJlY3Rpb24sICRldmVudC55ZWFycylcIlxuICAgICAgW2FkZE1vbnRoc109XCJpXCJcbiAgICAgIFtuYXZpZ2F0aW9uXT1cIm5hdmlnYXRpb25cIlxuICAgIC8+XG5cbiAgICA8Yy1jYWxlbmRhci1tb250aFxuICAgICAgW2FkZE1vbnRoc109XCJpXCJcbiAgICAgIFtmaXJzdERheU9mV2Vla109XCJmaXJzdERheU9mV2Vla1wiXG4gICAgICBbd2Vla2RheUZvcm1hdF09XCJ3ZWVrZGF5Rm9ybWF0XCJcbiAgICAgIGNka01vbml0b3JTdWJ0cmVlRm9jdXNcbiAgICAgIChjZGtGb2N1c0NoYW5nZSk9XCJoYW5kbGVGb2N1c0NoYW5nZSgkZXZlbnQpXCJcbiAgICAvPlxuICA8L2Rpdj5cbn1cbiJdfQ==
|
|
@@ -17,10 +17,10 @@ export class CalendarClassDayPipe {
|
|
|
17
17
|
last: isLastDayOfMonth(date)
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
21
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarClassDayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
21
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: CalendarClassDayPipe, isStandalone: true, name: "calendarClassDay" }); }
|
|
22
22
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarClassDayPipe, decorators: [{
|
|
24
24
|
type: Pipe,
|
|
25
25
|
args: [{
|
|
26
26
|
name: 'calendarClassDay',
|
|
@@ -10,10 +10,10 @@ export class CalendarClassMonthPipe {
|
|
|
10
10
|
today: isThisMonth(date, monthIndex)
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
14
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarClassMonthPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
14
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: CalendarClassMonthPipe, isStandalone: true, name: "calendarClassMonth" }); }
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarClassMonthPipe, decorators: [{
|
|
17
17
|
type: Pipe,
|
|
18
18
|
args: [{
|
|
19
19
|
name: 'calendarClassMonth',
|
|
@@ -13,10 +13,10 @@ export class CalendarClassRowPipe {
|
|
|
13
13
|
disabled: isDisabled
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
17
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarClassRowPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
17
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: CalendarClassRowPipe, isStandalone: true, name: "calendarClassRow" }); }
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarClassRowPipe, decorators: [{
|
|
20
20
|
type: Pipe,
|
|
21
21
|
args: [{
|
|
22
22
|
name: 'calendarClassRow',
|
|
@@ -9,10 +9,10 @@ export class CalendarClassYearPipe {
|
|
|
9
9
|
today: isThisYear(year)
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
13
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarClassYearPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
13
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: CalendarClassYearPipe, isStandalone: true, name: "calendarClassYear" }); }
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarClassYearPipe, decorators: [{
|
|
16
16
|
type: Pipe,
|
|
17
17
|
args: [{
|
|
18
18
|
name: 'calendarClassYear',
|
|
@@ -4,10 +4,10 @@ export class CalendarDayTitlePipe {
|
|
|
4
4
|
transform(date, locale = 'default') {
|
|
5
5
|
return date.toLocaleDateString(locale);
|
|
6
6
|
}
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
8
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarDayTitlePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
8
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: CalendarDayTitlePipe, isStandalone: true, name: "calendarDayTitle" }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarDayTitlePipe, decorators: [{
|
|
11
11
|
type: Pipe,
|
|
12
12
|
args: [{
|
|
13
13
|
name: 'calendarDayTitle',
|