@coreui/angular-pro 4.7.3 → 5.0.0-alpha.2
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 +3 -3
- package/esm2022/lib/accordion/accordion-button/accordion-button.directive.mjs +3 -3
- package/esm2022/lib/accordion/accordion-item/accordion-item.component.mjs +3 -3
- package/esm2022/lib/accordion/accordion.module.mjs +4 -4
- package/esm2022/lib/accordion/accordion.service.mjs +3 -3
- 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 +10 -7
- 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 +10 -6
- 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 +9 -9
- package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +4 -4
- package/esm2022/lib/button/button-close.directive.mjs +11 -5
- 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 +150 -71
- package/esm2022/lib/calendar/calendar-month/calendar-class-day.pipe.mjs +5 -4
- package/esm2022/lib/calendar/calendar-month/calendar-class-month.pipe.mjs +5 -5
- package/esm2022/lib/calendar/calendar-month/calendar-class-row.pipe.mjs +26 -0
- 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 +102 -59
- package/esm2022/lib/calendar/calendar-month/calendar-day.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-month.component.mjs +255 -92
- package/esm2022/lib/calendar/calendar-month/calendar-row.directive.mjs +117 -0
- package/esm2022/lib/calendar/calendar-month/calendar-weekday.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-navigation/calendar-navigation.component.mjs +28 -24
- package/esm2022/lib/calendar/calendar.module.mjs +10 -7
- package/esm2022/lib/calendar/calendar.service.mjs +8 -5
- package/esm2022/lib/calendar/calendar.utils.mjs +100 -17
- 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 +12 -8
- package/esm2022/lib/card/card.module.mjs +4 -4
- package/esm2022/lib/carousel/carousel/carousel.component.mjs +37 -36
- 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/coreui.types.mjs +1 -1
- package/esm2022/lib/date-picker/date-picker.component.mjs +8 -12
- 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 +168 -163
- package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown/dropdown.component.mjs +10 -23
- 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 +13 -5
- package/esm2022/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +77 -41
- package/esm2022/lib/dropdown/dropdown.module.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown.service.mjs +5 -5
- package/esm2022/lib/element-cover/element-cover.component.mjs +3 -3
- 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 +4 -4
- 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 +111 -85
- 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 +5 -5
- 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/multi-select/multi-select.type.mjs +1 -1
- 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 +5 -5
- 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 +9 -13
- package/esm2022/lib/navbar/navbar.module.mjs +4 -4
- package/esm2022/lib/offcanvas/offcanvas/offcanvas.component.mjs +10 -6
- 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 +5 -5
- package/esm2022/lib/popover/popover.module.mjs +4 -4
- package/esm2022/lib/progress/progress-bar.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/services/class-toggle.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/shared/html-attr.directive.mjs +3 -3
- package/esm2022/lib/shared/public_api.mjs +2 -1
- package/esm2022/lib/shared/shared.module.mjs +8 -15
- package/esm2022/lib/shared/template-id.directive.mjs +3 -3
- package/esm2022/lib/shared/theme.directive.mjs +44 -0
- package/esm2022/lib/sidebar/sidebar/sidebar.component.mjs +6 -5
- 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 +8 -8
- 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 +23 -19
- 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.component.mjs +13 -4
- 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 +90 -125
- 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 +6 -14
- package/esm2022/lib/smart-table/smart-table-head/smart-table-head.component.mjs +48 -37
- 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/smart-table/smart-table.utils.mjs +181 -0
- package/esm2022/lib/spinner/spinner.component.mjs +3 -3
- 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/table/table.type.mjs +1 -1
- 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 +5 -7
- package/esm2022/lib/tabs/tab.service.mjs +3 -3
- package/esm2022/lib/tabs/tabs.module.mjs +4 -4
- package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.mjs +16 -10
- package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.mjs +22 -15
- package/esm2022/lib/time-picker/time-picker.component.mjs +89 -115
- 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 +3 -3
- package/esm2022/lib/tooltip/tooltip/tooltip.component.mjs +3 -3
- package/esm2022/lib/tooltip/tooltip.directive.mjs +5 -5
- 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/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 +5 -5
- package/esm2022/lib/widget/widget-stat-b/widget-stat-b.component.mjs +6 -6
- package/esm2022/lib/widget/widget-stat-c/widget-stat-c.component.mjs +17 -19
- package/esm2022/lib/widget/widget-stat-d/widget-stat-d.component.mjs +5 -5
- package/esm2022/lib/widget/widget-stat-e/widget-stat-e.component.mjs +5 -5
- package/esm2022/lib/widget/widget-stat-f/widget-stat-f.component.mjs +5 -5
- package/esm2022/lib/widget/widget.module.mjs +4 -4
- package/fesm2022/coreui-angular-pro.mjs +2904 -2167
- package/fesm2022/coreui-angular-pro.mjs.map +1 -1
- package/lib/avatar/avatar.component.d.ts +4 -3
- package/lib/badge/badge.component.d.ts +5 -3
- package/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.d.ts +1 -1
- package/lib/button/button-close.directive.d.ts +3 -1
- package/lib/calendar/calendar/calendar.component.d.ts +46 -19
- package/lib/calendar/calendar-month/calendar-class-row.pipe.d.ts +23 -0
- package/lib/calendar/calendar-month/calendar-day.directive.d.ts +16 -26
- package/lib/calendar/calendar-month/calendar-month.component.d.ts +45 -27
- package/lib/calendar/calendar-month/calendar-row.directive.d.ts +44 -0
- package/lib/calendar/calendar-navigation/calendar-navigation.component.d.ts +7 -6
- package/lib/calendar/calendar.module.d.ts +2 -1
- package/lib/calendar/calendar.service.d.ts +5 -1
- package/lib/calendar/calendar.utils.d.ts +25 -6
- package/lib/card/card.component.d.ts +3 -1
- package/lib/carousel/carousel/carousel.component.d.ts +10 -14
- package/lib/coreui.types.d.ts +4 -1
- package/lib/date-picker/date-picker.component.d.ts +2 -2
- package/lib/date-range-picker/date-range-picker/date-range-picker.component.d.ts +75 -41
- package/lib/dropdown/dropdown/dropdown.component.d.ts +2 -9
- package/lib/dropdown/dropdown-item/dropdown-item.directive.d.ts +5 -1
- package/lib/dropdown/dropdown-menu/dropdown-menu.directive.d.ts +13 -16
- package/lib/dropdown/dropdown.service.d.ts +0 -1
- package/lib/multi-select/multi-select/multi-select.component.d.ts +14 -16
- package/lib/multi-select/multi-select.type.d.ts +1 -1
- package/lib/nav/nav.component.d.ts +2 -2
- package/lib/navbar/navbar.component.d.ts +2 -5
- package/lib/offcanvas/offcanvas/offcanvas.component.d.ts +2 -1
- package/lib/shared/public_api.d.ts +1 -0
- package/lib/shared/shared.module.d.ts +2 -1
- package/lib/shared/theme.directive.d.ts +19 -0
- package/lib/sidebar/sidebar-nav/sidebar-nav.component.d.ts +5 -2
- package/lib/sidebar/sidebar-toggler/sidebar-toggler.component.d.ts +1 -0
- package/lib/smart-table/smart-table/smart-table.component.d.ts +36 -51
- package/lib/smart-table/smart-table-head/smart-table-column-label.pipe.d.ts +0 -1
- package/lib/smart-table/smart-table-head/smart-table-head.component.d.ts +21 -11
- package/lib/smart-table/smart-table.type.d.ts +49 -34
- package/lib/smart-table/smart-table.utils.d.ts +29 -0
- package/lib/table/table.type.d.ts +5 -6
- package/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.d.ts +2 -1
- package/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.d.ts +3 -2
- package/lib/time-picker/time-picker.component.d.ts +17 -28
- package/lib/widget/widget-stat-a/widget-stat-a.component.d.ts +1 -1
- package/lib/widget/widget-stat-b/widget-stat-b.component.d.ts +3 -3
- package/lib/widget/widget-stat-c/widget-stat-c.component.d.ts +15 -13
- package/lib/widget/widget-stat-e/widget-stat-e.component.d.ts +1 -1
- package/lib/widget/widget-stat-f/widget-stat-f.component.d.ts +1 -1
- package/package.json +3 -2
|
@@ -1,13 +1,59 @@
|
|
|
1
|
+
export const convertIsoWeekToDate = (isoWeek) => {
|
|
2
|
+
const [year, week] = isoWeek.split(/w/i);
|
|
3
|
+
// Get date for 4th of January for year
|
|
4
|
+
const date = new Date(Number(year), 0, 4);
|
|
5
|
+
// Get previous Monday, add 7 days for each week after first
|
|
6
|
+
date.setDate(date.getDate() - (date.getDay() || 7) + 1 + (Number(week) - 1) * 7);
|
|
7
|
+
return date;
|
|
8
|
+
};
|
|
9
|
+
export const convertToDateObject = (date, selectionType) => {
|
|
10
|
+
if (date instanceof Date) {
|
|
11
|
+
return date;
|
|
12
|
+
}
|
|
13
|
+
if (selectionType === 'week') {
|
|
14
|
+
return convertIsoWeekToDate(date);
|
|
15
|
+
}
|
|
16
|
+
return new Date(Date.parse(date));
|
|
17
|
+
};
|
|
1
18
|
export const convertToLocalDate = (d, locale, options = {}) => d.toLocaleDateString(locale, options);
|
|
2
19
|
export const convertToLocalTime = (d, locale, options = {}) => d.toLocaleTimeString(locale, options);
|
|
3
20
|
export const createGroupsInArray = (arr, numberOfGroups) => {
|
|
4
21
|
const perGroup = Math.ceil(arr.length / numberOfGroups);
|
|
5
|
-
return
|
|
22
|
+
return Array.from({ length: numberOfGroups })
|
|
6
23
|
.fill('')
|
|
7
24
|
.map((_, i) => arr.slice(i * perGroup, (i + 1) * perGroup));
|
|
8
25
|
};
|
|
26
|
+
export const getCalendarDate = (calendarDate, order, view) => {
|
|
27
|
+
if (order !== 0 && view === 'days') {
|
|
28
|
+
return new Date(Date.UTC(calendarDate.getFullYear(), calendarDate.getMonth() + order, 1));
|
|
29
|
+
}
|
|
30
|
+
if (order !== 0 && view === 'months') {
|
|
31
|
+
return new Date(Date.UTC(calendarDate.getFullYear() + order, calendarDate.getMonth(), 1));
|
|
32
|
+
}
|
|
33
|
+
if (order !== 0 && view === 'years') {
|
|
34
|
+
return new Date(Date.UTC(calendarDate.getFullYear() + (12 * order), calendarDate.getMonth(), 1));
|
|
35
|
+
}
|
|
36
|
+
return calendarDate;
|
|
37
|
+
};
|
|
9
38
|
export const getCurrentYear = () => new Date().getFullYear();
|
|
10
39
|
export const getCurrentMonth = () => new Date().getMonth();
|
|
40
|
+
export const getDateBySelectionType = (date, selectionType) => {
|
|
41
|
+
if (date === null) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
if (selectionType === 'week') {
|
|
45
|
+
return `${date.getFullYear()}W${getWeekNumber(date)}`;
|
|
46
|
+
}
|
|
47
|
+
if (selectionType === 'month') {
|
|
48
|
+
const monthNumber = `0${date.getMonth() + 1}`.slice(-2);
|
|
49
|
+
return `${date.getFullYear()}-${monthNumber}`;
|
|
50
|
+
}
|
|
51
|
+
if (selectionType === 'year') {
|
|
52
|
+
return `${date.getFullYear()}`;
|
|
53
|
+
}
|
|
54
|
+
return date;
|
|
55
|
+
};
|
|
56
|
+
//
|
|
11
57
|
export const getLocalDateFromString = (string, locale, time) => {
|
|
12
58
|
const date = new Date(2013, 11, 31, 17, 19, 22);
|
|
13
59
|
let regex = time ? date.toLocaleString(locale) : date.toLocaleDateString(locale);
|
|
@@ -37,13 +83,13 @@ export const getMonthName = (month, locale) => {
|
|
|
37
83
|
d.setMonth(month);
|
|
38
84
|
return d.toLocaleString(locale, { month: 'long' });
|
|
39
85
|
};
|
|
40
|
-
export const getMonthsNames = (locale) => {
|
|
86
|
+
export const getMonthsNames = (locale, year) => {
|
|
41
87
|
const months = [];
|
|
42
|
-
const d = new Date();
|
|
88
|
+
const d = new Date(year);
|
|
43
89
|
d.setDate(1);
|
|
44
90
|
for (let i = 0; i < 12; i++) {
|
|
45
91
|
d.setMonth(i);
|
|
46
|
-
months.push(d.toLocaleDateString(locale, { month: 'short' }));
|
|
92
|
+
months.push({ year, month: d.toLocaleDateString(locale, { month: 'short' }) });
|
|
47
93
|
}
|
|
48
94
|
return months;
|
|
49
95
|
};
|
|
@@ -93,6 +139,11 @@ const getTrailingDays = (year, month, leadingDays, monthDays) => {
|
|
|
93
139
|
}
|
|
94
140
|
return dates;
|
|
95
141
|
};
|
|
142
|
+
export const getDayNumber = (date) => Math.ceil((Number(date) - Number(new Date(date.getFullYear(), 0, 0))) / 1000 / 60 / 60 / 24);
|
|
143
|
+
export const getWeekNumber = (date) => {
|
|
144
|
+
const week1 = new Date(date.getFullYear(), 0, 4);
|
|
145
|
+
return (1 + Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + ((week1.getDay() + 6) % 7)) / 7));
|
|
146
|
+
};
|
|
96
147
|
export const getMonthDetails = (year, month, firstDayOfWeek) => {
|
|
97
148
|
const daysPrevMonth = getLeadingDays(year, month, firstDayOfWeek);
|
|
98
149
|
const daysThisMonth = getMonthDays(year, month);
|
|
@@ -101,11 +152,14 @@ export const getMonthDetails = (year, month, firstDayOfWeek) => {
|
|
|
101
152
|
const weeks = [];
|
|
102
153
|
days.forEach((day, index) => {
|
|
103
154
|
if (index % 7 === 0 || weeks.length === 0) {
|
|
104
|
-
weeks.push([]);
|
|
155
|
+
weeks.push({ weekNumber: -1, days: [] });
|
|
105
156
|
}
|
|
106
|
-
|
|
157
|
+
if ((index + 1) % 7 === 0) {
|
|
158
|
+
weeks[weeks.length - 1].weekNumber = getWeekNumber(day.date);
|
|
159
|
+
}
|
|
160
|
+
weeks[weeks.length - 1].days.push(day);
|
|
107
161
|
});
|
|
108
|
-
return weeks;
|
|
162
|
+
return [...weeks];
|
|
109
163
|
};
|
|
110
164
|
export const isDateDisabled = (date, min, max, dates) => {
|
|
111
165
|
if (!date) {
|
|
@@ -114,35 +168,58 @@ export const isDateDisabled = (date, min, max, dates) => {
|
|
|
114
168
|
if (!min && !max && (!dates || !dates.length)) {
|
|
115
169
|
return false;
|
|
116
170
|
}
|
|
117
|
-
|
|
171
|
+
if (min && date < min) {
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
if (max && date > max) {
|
|
175
|
+
return true;
|
|
176
|
+
}
|
|
177
|
+
let disabled = false;
|
|
118
178
|
if (dates) {
|
|
119
|
-
|
|
179
|
+
for (const _date of dates) {
|
|
120
180
|
if (Array.isArray(_date)) {
|
|
121
181
|
if (isDateInRange(date, _date[0], _date[1])) {
|
|
122
182
|
disabled = true;
|
|
183
|
+
break;
|
|
123
184
|
}
|
|
124
185
|
}
|
|
125
186
|
if (_date instanceof Date) {
|
|
126
187
|
if (isSameDateAs(date, _date)) {
|
|
127
188
|
disabled = true;
|
|
189
|
+
break;
|
|
128
190
|
}
|
|
129
191
|
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
if (min && date < min) {
|
|
133
|
-
disabled = true;
|
|
134
|
-
}
|
|
135
|
-
if (max && date > max) {
|
|
136
|
-
disabled = true;
|
|
192
|
+
}
|
|
137
193
|
}
|
|
138
194
|
return disabled;
|
|
139
195
|
};
|
|
140
196
|
export const isDateInRange = (date, start, end) => {
|
|
141
197
|
return date && start && end && start <= date && date <= end;
|
|
142
198
|
};
|
|
199
|
+
export const isYearInRange = (date, start, end) => {
|
|
200
|
+
return date && start && end && start.getFullYear() <= date.getFullYear() && date.getFullYear() <= end.getFullYear();
|
|
201
|
+
};
|
|
202
|
+
export const isDateBetweenMinMax = (date, min, max) => {
|
|
203
|
+
if (date && min && max) {
|
|
204
|
+
return min <= date && date <= max;
|
|
205
|
+
}
|
|
206
|
+
if (date && min) {
|
|
207
|
+
return min <= date;
|
|
208
|
+
}
|
|
209
|
+
if (date && max) {
|
|
210
|
+
return date <= max;
|
|
211
|
+
}
|
|
212
|
+
return true;
|
|
213
|
+
};
|
|
143
214
|
export const isDateSelected = (date, start, end) => {
|
|
144
215
|
return date && ((start && isSameDateAs(start, date)) || (end && isSameDateAs(end, date)));
|
|
145
216
|
};
|
|
217
|
+
export const isMonthSelected = (date, start, end) => {
|
|
218
|
+
return date && ((start && isSameMonthAs(start, date)) || (end && isSameMonthAs(end, date)));
|
|
219
|
+
};
|
|
220
|
+
export const isYearSelected = (date, start, end) => {
|
|
221
|
+
return date && ((start && isSameYearAs(start, date)) || (end && isSameYearAs(end, date)));
|
|
222
|
+
};
|
|
146
223
|
export const isEndDate = (date, start, end) => {
|
|
147
224
|
return date && start && end && isSameDateAs(end, date) && start < end;
|
|
148
225
|
};
|
|
@@ -155,6 +232,12 @@ export const isLastDayOfMonth = (date) => {
|
|
|
155
232
|
export const isSameDateAs = (date, date2) => {
|
|
156
233
|
return (date.getDate() == date2.getDate() && date.getMonth() == date2.getMonth() && date.getFullYear() == date2.getFullYear());
|
|
157
234
|
};
|
|
235
|
+
export const isSameMonthAs = (date, date2) => {
|
|
236
|
+
return (date.getMonth() == date2.getMonth() && date.getFullYear() == date2.getFullYear());
|
|
237
|
+
};
|
|
238
|
+
export const isSameYearAs = (date, date2) => {
|
|
239
|
+
return (date.getFullYear() == date2.getFullYear());
|
|
240
|
+
};
|
|
158
241
|
export const isStartDate = (date, start, end) => {
|
|
159
242
|
return date && start && end && isSameDateAs(start, date) && start < end;
|
|
160
243
|
};
|
|
@@ -283,4 +366,4 @@ export const isDateInRangeDisabled = (startDate, endDate, dates) => {
|
|
|
283
366
|
// // }
|
|
284
367
|
//
|
|
285
368
|
// // getDate('12/07/1997');
|
|
286
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBTyxFQUFFLE1BQWMsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRW5ILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBTyxFQUFFLE1BQWMsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRW5ILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsR0FBVSxFQUFFLGNBQXNCLEVBQUUsRUFBRTtJQUN4RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDLENBQUM7SUFDeEQsT0FBTyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUM7U0FDN0IsSUFBSSxDQUFDLEVBQUUsQ0FBQztTQUNSLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ2hFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBRTNELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsTUFBYyxFQUFFLE1BQWMsRUFBRSxJQUFjLEVBQUUsRUFBRTtJQUN2RixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pGLEtBQUssR0FBRyxLQUFLO1NBQ1YsT0FBTyxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQztTQUN0QyxPQUFPLENBQUMsSUFBSSxFQUFFLHNCQUFzQixDQUFDO1NBQ3JDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztJQUV2QyxJQUFJLElBQUksRUFBRTtRQUNSLEtBQUssR0FBRyxLQUFLO2FBQ1YsT0FBTyxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzthQUNuQyxPQUFPLENBQUMsSUFBSSxFQUFFLHFCQUFxQixDQUFDO2FBQ3BDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLENBQUM7YUFDdEMsT0FBTyxDQUFDLElBQUksRUFBRSx1QkFBdUIsQ0FBQzthQUN0QyxPQUFPLENBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLENBQUM7S0FDdkM7SUFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFbkMsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFO1FBQ3JCLE9BQU87S0FDUjtJQUVELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFM2YsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFB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RDtBQUMzRCw4Q0FBOEM7QUFDOUMsT0FBTztBQUNQLEVBQUU7QUFDRiw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgY29udmVydFRvTG9jYWxEYXRlID0gKGQ6IERhdGUsIGxvY2FsZTogc3RyaW5nLCBvcHRpb25zID0ge30pID0+IGQudG9Mb2NhbGVEYXRlU3RyaW5nKGxvY2FsZSwgb3B0aW9ucyk7XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0VG9Mb2NhbFRpbWUgPSAoZDogRGF0ZSwgbG9jYWxlOiBzdHJpbmcsIG9wdGlvbnMgPSB7fSkgPT4gZC50b0xvY2FsZVRpbWVTdHJpbmcobG9jYWxlLCBvcHRpb25zKTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUdyb3Vwc0luQXJyYXkgPSAoYXJyOiBhbnlbXSwgbnVtYmVyT2ZHcm91cHM6IG51bWJlcikgPT4ge1xuICBjb25zdCBwZXJHcm91cCA9IE1hdGguY2VpbChhcnIubGVuZ3RoIC8gbnVtYmVyT2ZHcm91cHMpO1xuICByZXR1cm4gbmV3IEFycmF5KG51bWJlck9mR3JvdXBzKVxuICAgIC5maWxsKCcnKVxuICAgIC5tYXAoKF8sIGkpID0+IGFyci5zbGljZShpICogcGVyR3JvdXAsIChpICsgMSkgKiBwZXJHcm91cCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEN1cnJlbnRZZWFyID0gKCkgPT4gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xuXG5leHBvcnQgY29uc3QgZ2V0Q3VycmVudE1vbnRoID0gKCkgPT4gbmV3IERhdGUoKS5nZXRNb250aCgpO1xuXG5leHBvcnQgY29uc3QgZ2V0TG9jYWxEYXRlRnJvbVN0cmluZyA9IChzdHJpbmc6IHN0cmluZywgbG9jYWxlOiBzdHJpbmcsIHRpbWU/OiBib29sZWFuKSA9PiB7XG4gIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgyMDEzLCAxMSwgMzEsIDE3LCAxOSwgMjIpO1xuICBsZXQgcmVnZXggPSB0aW1lID8gZGF0ZS50b0xvY2FsZVN0cmluZyhsb2NhbGUpIDogZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlKTtcbiAgcmVnZXggPSByZWdleFxuICAgIC5yZXBsYWNlKCcyMDEzJywgJyg/PHllYXI+WzAtOV17Miw0fSknKVxuICAgIC5yZXBsYWNlKCcxMicsICcoPzxtb250aD5bMC05XXsxLDJ9KScpXG4gICAgLnJlcGxhY2UoJzMxJywgJyg/PGRheT5bMC05XXsxLDJ9KScpO1xuXG4gIGlmICh0aW1lKSB7XG4gICAgcmVnZXggPSByZWdleFxuICAgICAgLnJlcGxhY2UoJzUnLCAnKD88aG91cj5bMC05XXsxLDJ9KScpXG4gICAgICAucmVwbGFjZSgnMTcnLCAnKD88aG91cj5bMC05XXsxLDJ9KScpXG4gICAgICAucmVwbGFjZSgnMTknLCAnKD88bWludXRlPlswLTldezEsMn0pJylcbiAgICAgIC5yZXBsYWNlKCcyMicsICcoPzxzZWNvbmQ+WzAtOV17MSwyfSknKVxuICAgICAgLnJlcGxhY2UoJ1BNJywgJyg/PGFtcG0+W0EtWl17Mn0pJyk7XG4gIH1cblxuICBjb25zdCByZ3ggPSBSZWdFeHAoYCR7cmVnZXh9YCk7XG4gIGNvbnN0IHBhcnRpYWxzID0gc3RyaW5nLm1hdGNoKHJneCk7XG5cbiAgaWYgKHBhcnRpYWxzID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbmV3RGF0ZSA9IHBhcnRpYWxzLmdyb3VwcyAmJiAodGltZSA/IG5ldyBEYXRlKE51bWJlcihwYXJ0aWFscy5ncm91cHNbJ3llYXInXSksIE51bWJlcihwYXJ0aWFscy5ncm91cHNbJ21vbnRoJ10pIC0gMSwgTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1snZGF5J10pLCBwYXJ0aWFscy5ncm91cHNbJ2FtcG0nXSA/IHBhcnRpYWxzLmdyb3Vwc1snYW1wbSddID09PSAnUE0nID8gTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1snaG91ciddKSArIDEyIDogTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1snaG91ciddKSA6IE51bWJlcihwYXJ0aWFscy5ncm91cHNbJ2hvdXInXSksIE51bWJlcihwYXJ0aWFscy5ncm91cHNbJ21pbnV0ZSddKSwgTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1snc2Vjb25kJ10pKSA6IG5ldyBEYXRlKE51bWJlcihwYXJ0aWFscy5ncm91cHNbJ3llYXInXSksIE51bWJlcihwYXJ0aWFscy5ncm91cHNbJ21vbnRoJ10pIC0gMSwgTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1snZGF5J10pKSk7XG5cbiAgcmV0dXJuIG5ld0RhdGU7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TW9udGhOYW1lID0gKG1vbnRoOiBudW1iZXIsIGxvY2FsZTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGQgPSBuZXcgRGF0ZSgpO1xuICBkLnNldERhdGUoMSk7XG4gIGQuc2V0TW9udGgobW9udGgpO1xuICByZXR1cm4gZC50b0xvY2FsZVN0cmluZyhsb2NhbGUsIHsgbW9udGg6ICdsb25nJyB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNb250aHNOYW1lcyA9IChsb2NhbGU6IHN0cmluZykgPT4ge1xuICBjb25zdCBtb250aHMgPSBbXTtcbiAgY29uc3QgZCA9IG5ldyBEYXRlKCk7XG4gIGQuc2V0RGF0ZSgxKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICBkLnNldE1vbnRoKGkpO1xuICAgIG1vbnRocy5wdXNoKGQudG9Mb2NhbGVEYXRlU3RyaW5nKGxvY2FsZSwgeyBtb250aDogJ3Nob3J0JyB9KSk7XG4gIH1cblxuICByZXR1cm4gbW9udGhzO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFllYXJzID0gKHllYXI6IG51bWJlcikgPT4ge1xuICBjb25zdCB5ZWFycyA9IFtdO1xuICBmb3IgKGxldCBfeWVhciA9IHllYXIgLSA2OyBfeWVhciA8IHllYXIgKyA2OyBfeWVhcisrKSB7XG4gICAgeWVhcnMucHVzaChfeWVhcik7XG4gIH1cblxuICByZXR1cm4geWVhcnM7XG59O1xuXG5jb25zdCBnZXRMZWFkaW5nRGF5cyA9ICh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGZpcnN0RGF5T2ZXZWVrOiBudW1iZXIpID0+IHtcbiAgLy8gMDogc3VuZGF5XG4gIC8vIDE6IG1vbmRheVxuICBjb25zdCBkYXRlcyA9IFtdO1xuICBjb25zdCBkID0gbmV3IERhdGUoeWVhciwgbW9udGgpO1xuICBjb25zdCB5ID0gZC5nZXRGdWxsWWVhcigpO1xuICBjb25zdCBtID0gZC5nZXRNb250aCgpO1xuICBjb25zdCBmaXJzdFdlZWtkYXkgPSBuZXcgRGF0ZSh5LCBtLCAxKS5nZXREYXkoKTtcbiAgbGV0IGxlYWRpbmdEYXlzID0gNiAtICg2IC0gZmlyc3RXZWVrZGF5KSAtIGZpcnN0RGF5T2ZXZWVrO1xuXG4gIGlmIChmaXJzdERheU9mV2Vlaykge1xuICAgIGxlYWRpbmdEYXlzID0gbGVhZGluZ0RheXMgPCAwID8gNyArIGxlYWRpbmdEYXlzIDogbGVhZGluZ0RheXM7XG4gIH1cblxuICBmb3IgKGxldCBpID0gbGVhZGluZ0RheXMgKiAtMTsgaSA8IDA7IGkrKykge1xuICAgIGRhdGVzLnB1c2goe1xuICAgICAgZGF0ZTogbmV3IERhdGUoeSwgbSwgaSArIDEpLCBtb250aDogJ3ByZXZpb3VzJ1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGRhdGVzO1xufTtcblxuY29uc3QgZ2V0TW9udGhEYXlzID0gKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcikgPT4ge1xuICBjb25zdCBkYXRlcyA9IFtdO1xuICBjb25zdCBsYXN0RGF5ID0gbmV3IERhdGUoeWVhciwgbW9udGggKyAxLCAwKS5nZXREYXRlKCk7XG4gIGZvciAobGV0IGkgPSAxOyBpIDw9IGxhc3REYXk7IGkrKykge1xuICAgIGRhdGVzLnB1c2goe1xuICAgICAgZGF0ZTogbmV3IERhdGUoeWVhciwgbW9udGgsIGkpLCBtb250aDogJ2N1cnJlbnQnXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGRhdGVzO1xufTtcblxuY29uc3QgZ2V0VHJhaWxpbmdEYXlzID0gKFxuICB5ZWFyOiBudW1iZXIsXG4gIG1vbnRoOiBudW1iZXIsXG4gIGxlYWRpbmdEYXlzOiB7IGRhdGU6IERhdGU7IG1vbnRoOiBzdHJpbmcgfVtdLFxuICBtb250aERheXM6IHsgZGF0ZTogRGF0ZTsgbW9udGg6IHN0cmluZyB9W11cbikgPT4ge1xuICBjb25zdCBkYXRlcyA9IFtdO1xuICBjb25zdCBkYXlzID0gNDIgLSAobGVhZGluZ0RheXMubGVuZ3RoICsgbW9udGhEYXlzLmxlbmd0aCk7XG4gIGZvciAobGV0IGkgPSAxOyBpIDw9IGRheXM7IGkrKykge1xuICAgIGRhdGVzLnB1c2goe1xuICAgICAgZGF0ZTogbmV3IERhdGUoeWVhciwgbW9udGggKyAxLCBpKSwgbW9udGg6ICduZXh0J1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBkYXRlcztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNb250aERldGFpbHMgPSAoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBmaXJzdERheU9mV2VlazogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IGRheXNQcmV2TW9udGggPSBnZXRMZWFkaW5nRGF5cyh5ZWFyLCBtb250aCwgZmlyc3REYXlPZldlZWspO1xuICBjb25zdCBkYXlzVGhpc01vbnRoID0gZ2V0TW9udGhEYXlzKHllYXIsIG1vbnRoKTtcbiAgY29uc3QgZGF5c05leHRNb250aCA9IGdldFRyYWlsaW5nRGF5cyh5ZWFyLCBtb250aCwgZGF5c1ByZXZNb250aCwgZGF5c1RoaXNNb250aCk7XG4gIGNvbnN0IGRheXMgPSBbLi4uZGF5c1ByZXZNb250aCwgLi4uZGF5c1RoaXNNb250aCwgLi4uZGF5c05leHRNb250aF07XG5cbiAgY29uc3Qgd2Vla3M6IHsgZGF0ZTogRGF0ZTsgbW9udGg6IHN0cmluZyB9W11bXSA9IFtdO1xuXG4gIGRheXMuZm9yRWFjaCgoZGF5LCBpbmRleCkgPT4ge1xuICAgIGlmIChpbmRleCAlIDcgPT09IDAgfHwgd2Vla3MubGVuZ3RoID09PSAwKSB7XG4gICAgICB3ZWVrcy5wdXNoKFtdKTtcbiAgICB9XG4gICAgd2Vla3Nbd2Vla3MubGVuZ3RoIC0gMV0ucHVzaChkYXkpO1xuICB9KTtcblxuICByZXR1cm4gd2Vla3M7XG59O1xuXG5leHBvcnQgY29uc3QgaXNEYXRlRGlzYWJsZWQgPSAoZGF0ZTogRGF0ZSB8IG51bGwsIG1pbj86IERhdGUgfCBudWxsLCBtYXg/OiBEYXRlIHwgbnVsbCwgZGF0ZXM/OiAoRGF0ZSB8IERhdGVbXSlbXSkgPT4ge1xuICBpZiAoIWRhdGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKCFtaW4gJiYgIW1heCAmJiAoIWRhdGVzIHx8ICFkYXRlcy5sZW5ndGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGxldCBkaXNhYmxlZDtcbiAgaWYgKGRhdGVzKSB7XG4gICAgZGF0ZXMuZm9yRWFjaCgoX2RhdGU6IERhdGUgfCBEYXRlW10pID0+IHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KF9kYXRlKSkge1xuICAgICAgICBpZiAoaXNEYXRlSW5SYW5nZShkYXRlLCBfZGF0ZVswXSwgX2RhdGVbMV0pKSB7XG4gICAgICAgICAgZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoX2RhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIGlmIChpc1NhbWVEYXRlQXMoZGF0ZSwgX2RhdGUpKSB7XG4gICAgICAgICAgZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgaWYgKG1pbiAmJiBkYXRlIDwgbWluKSB7XG4gICAgZGlzYWJsZWQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKG1heCAmJiBkYXRlID4gbWF4KSB7XG4gICAgZGlzYWJsZWQgPSB0cnVlO1xuICB9XG4gIHJldHVybiBkaXNhYmxlZDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0RhdGVJblJhbmdlID0gKGRhdGU6IERhdGUgfCBudWxsLCBzdGFydDogRGF0ZSB8IG51bGwsIGVuZDogRGF0ZSB8IG51bGwpID0+IHtcbiAgcmV0dXJuIGRhdGUgJiYgc3RhcnQgJiYgZW5kICYmIHN0YXJ0IDw9IGRhdGUgJiYgZGF0ZSA8PSBlbmQ7XG59O1xuXG5leHBvcnQgY29uc3QgaXNEYXRlU2VsZWN0ZWQgPSAoZGF0ZTogRGF0ZSB8IG51bGwsIHN0YXJ0OiBEYXRlIHwgbnVsbCwgZW5kOiBEYXRlIHwgbnVsbCkgPT4ge1xuICByZXR1cm4gZGF0ZSAmJiAoKHN0YXJ0ICYmIGlzU2FtZURhdGVBcyhzdGFydCwgZGF0ZSkpIHx8IChlbmQgJiYgaXNTYW1lRGF0ZUFzKGVuZCwgZGF0ZSkpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0VuZERhdGUgPSAoZGF0ZTogRGF0ZSB8IG51bGwsIHN0YXJ0OiBEYXRlIHwgbnVsbCwgZW5kOiBEYXRlIHwgbnVsbCkgPT4ge1xuICByZXR1cm4gZGF0ZSAmJiBzdGFydCAmJiBlbmQgJiYgaXNTYW1lRGF0ZUFzKGVuZCwgZGF0ZSkgJiYgc3RhcnQgPCBlbmQ7XG59O1xuXG5leHBvcnQgY29uc3QgaXNMYXN0RGF5T2ZNb250aCA9IChkYXRlOiBEYXRlKSA9PiB7XG4gIGNvbnN0IHRlc3QgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XG4gIGNvbnN0IG1vbnRoID0gdGVzdC5nZXRNb250aCgpO1xuXG4gIHRlc3Quc2V0RGF0ZSh0ZXN0LmdldERhdGUoKSArIDEpO1xuICByZXR1cm4gdGVzdC5nZXRNb250aCgpICE9PSBtb250aDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1NhbWVEYXRlQXMgPSAoZGF0ZTogRGF0ZSwgZGF0ZTI6IERhdGUpID0+IHtcbiAgcmV0dXJuIChkYXRlLmdldERhdGUoKSA9PSBkYXRlMi5nZXREYXRlKCkgJiYgZGF0ZS5nZXRNb250aCgpID09IGRhdGUyLmdldE1vbnRoKCkgJiYgZGF0ZS5nZXRGdWxsWWVhcigpID09IGRhdGUyLmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzU3RhcnREYXRlID0gKGRhdGU6IERhdGUgfCBudWxsLCBzdGFydDogRGF0ZSB8IG51bGwsIGVuZDogRGF0ZSB8IG51bGwpID0+IHtcbiAgcmV0dXJuIGRhdGUgJiYgc3RhcnQgJiYgZW5kICYmIGlzU2FtZURhdGVBcyhzdGFydCwgZGF0ZSkgJiYgc3RhcnQgPCBlbmQ7XG59O1xuXG5leHBvcnQgY29uc3QgaXNUb2RheSA9IChkYXRlOiBEYXRlKSA9PiB7XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgcmV0dXJuIChkYXRlLmdldERhdGUoKSA9PSB0b2RheS5nZXREYXRlKCkgJiYgZGF0ZS5nZXRNb250aCgpID09IHRvZGF5LmdldE1vbnRoKCkgJiYgZGF0ZS5nZXRGdWxsWWVhcigpID09IHRvZGF5LmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVGhpc01vbnRoID0gKGRhdGU6IERhdGUsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICByZXR1cm4gKGluZGV4ID09IHRvZGF5LmdldE1vbnRoKCkgJiYgZGF0ZS5nZXRGdWxsWWVhcigpID09IHRvZGF5LmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVGhpc1llYXIgPSAoeWVhcjogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgcmV0dXJuICh5ZWFyID09IHRvZGF5LmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVmFsaWREYXRlID0gKGRhdGU6IG51bWJlciB8IHN0cmluZyB8IERhdGUpOiBib29sZWFuID0+IHtcblxuICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUgfHwgdHlwZW9mIGRhdGUgPT09ICdudW1iZXInIHx8IHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xuICAgIC8vIFRyeSB0byBjcmVhdGUgYSBEYXRlIG9iamVjdCBmcm9tIERhdGUgb3IgdGltZXN0YW1wIG9yIHN0cmluZ1xuICAgIGNvbnN0IGRhdGVPYmogPSBuZXcgRGF0ZShkYXRlKTtcbiAgICByZXR1cm4gIWlzTmFOKGRhdGVPYmouZ2V0VGltZSgpKTtcbiAgfVxuXG4gIC8vIElmIG5vbmUgb2YgdGhlIGFib3ZlIGNvbmRpdGlvbnMgYXJlIG1ldCwgaXQncyBub3QgYSB2YWxpZCBkYXRlXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCB0cnlEYXRlID0gKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlLCBwcm9wTmFtZTogc3RyaW5nID0gJ2RhdGUnKSA9PiB7XG4gIGxldCBfdmFsdWU7XG4gIHRyeSB7XG4gICAgaWYgKCFpc1ZhbGlkRGF0ZSh2YWx1ZSkpIHtcbiAgICAgIHRocm93IHZhbHVlO1xuICAgIH1cbiAgICBfdmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNvbnNvbGUud2FybihgSW52YWxpZCAke3Byb3BOYW1lfWAsIGVycik7XG4gICAgX3ZhbHVlID0gbmV3IERhdGUoKTtcbiAgICBfdmFsdWUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIH1cbiAgcmV0dXJuIF92YWx1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0RhdGVJblJhbmdlRGlzYWJsZWQgPSAoc3RhcnREYXRlPzogRGF0ZSB8IG51bGwsIGVuZERhdGU/OiBEYXRlIHwgbnVsbCwgZGF0ZXM/OiAoRGF0ZSB8IERhdGVbXSlbXSkgPT4ge1xuICBpZiAoIWRhdGVzIHx8ICFkYXRlcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKHN0YXJ0RGF0ZSAmJiBlbmREYXRlKSB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHN0YXJ0RGF0ZSk7XG4gICAgbGV0IGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICB3aGlsZSAoZGF0ZSA8IGVuZERhdGUpIHtcbiAgICAgIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSArIDEpO1xuICAgICAgaWYgKGlzRGF0ZURpc2FibGVkKGRhdGUsIG51bGwsIG51bGwsIGRhdGVzKSkge1xuICAgICAgICBkaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGlzYWJsZWQ7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuLy8gZXhwb3J0IGNvbnN0IHN0cmluZ1RvRGF0ZUNvbnZlcnQgPSAoZGF0ZTogc3RyaW5nLCBsb2NhbGVzOiBzdHJpbmcpID0+IHtcbi8vICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2ZyLUZSJyk7XG4vLyAgIGNvbnN0IHBhcnRzID0gZm9ybWF0dGVyLmZvcm1hdFRvUGFydHMoKTtcbi8vICAgY29uc29sZS5sb2coZGF0ZSwgcGFydHMsIGZvcm1hdHRlci5mb3JtYXQoKSwgZm9ybWF0dGVyLnJlc29sdmVkT3B0aW9ucygpLCBmb3JtYXR0ZXIuZm9ybWF0KCkpO1xuLy8gfTtcblxuLy8gZGVjbGFyZSBuYW1lc3BhY2UgSW50bCB7XG4vLyAgIHR5cGUgRGF0ZVRpbWVGb3JtYXRQYXJ0VHlwZXMgPSBcImRheVwiIHwgXCJkYXlQZXJpb2RcIiB8IFwiZXJhXCIgfCBcImZyYWN0aW9uYWxTZWNvbmRcIiB8IFwiaG91clwiIHwgXCJsaXRlcmFsXCIgfCBcIm1pbnV0ZVwiIHwgXCJtb250aFwiIHwgXCJzZWNvbmRcIiB8IFwidGltZVpvbmVOYW1lXCIgfCBcIndlZWtkYXlcIiB8IFwieWVhclwiO1xuLy9cbi8vICAgaW50ZXJmYWNlIERhdGVUaW1lRm9ybWF0UGFydCB7XG4vLyAgICAgdHlwZTogRGF0ZVRpbWVGb3JtYXRQYXJ0VHlwZXM7XG4vLyAgICAgdmFsdWU6IHN0cmluZztcbi8vICAgfVxuLy9cbi8vICAgaW50ZXJmYWNlIERhdGVUaW1lRm9ybWF0IHtcbi8vICAgICBmb3JtYXRUb1BhcnRzKGRhdGU/OiBEYXRlIHwgbnVtYmVyKTogRGF0ZVRpbWVGb3JtYXRQYXJ0W107XG4vLyAgIH1cbi8vIH1cblxudHlwZSBEYXRlVGltZUZvcm1hdFBhcnRUeXBlcyA9XG4gICdkYXknXG4gIHwgJ2RheVBlcmlvZCdcbiAgfCAnZXJhJ1xuICB8ICdmcmFjdGlvbmFsU2Vjb25kJ1xuICB8ICdob3VyJ1xuICB8ICdsaXRlcmFsJ1xuICB8ICdtaW51dGUnXG4gIHwgJ21vbnRoJ1xuICB8ICdzZWNvbmQnXG4gIHwgJ3RpbWVab25lTmFtZSdcbiAgfCAnd2Vla2RheSdcbiAgfCAneWVhcic7XG50eXBlIERhdGVGb3JtYXRQYXJ0VHlwZXMgPSAnZGF5JyB8ICdtb250aCcgfCAneWVhcicgfCAnbGl0ZXJhbCc7XG5cbi8vIHR5cGUgRGF0ZVBhcnRzID0ge1xuLy8gICBba2V5IGluIERhdGVUaW1lRm9ybWF0UGFydFR5cGVzXT86IHN0cmluZztcbi8vIH07XG5cbi8vIHR5cGUgRGF0ZVBhcnRzID0ge1xuLy8gICB5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRheTogbnVtYmVyLCBsaXRlcmFsOiBzdHJpbmdcbi8vIH07XG4vL1xuLy8gZXhwb3J0IGNvbnN0IGN2dERhdGUgPSAoZGF0ZUFzU3RyaW5nOiBzdHJpbmcsIGxvY2FsZSA9ICdwbC1QTCcpID0+IHtcbi8vICAgY29uc3QgZGF0ZVN0cmluZyA9IGRhdGVBc1N0cmluZyA/PyBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUpO1xuLy8gICBjb25zdCBkYXRlU3BsaXQgPSBkYXRlU3RyaW5nLnNwbGl0KC9bLlxcLVxcL1xcc1xcRF0vZ2kpLmZpbHRlcihpdGVtID0+ICEhaXRlbS5sZW5ndGgpO1xuLy8gICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUpO1xuLy8gICBjb25zdCBwYXJ0cyA9IGZvcm1hdHRlci5mb3JtYXRUb1BhcnRzKCkuZmlsdGVyKHBhcnQgPT4gWyd5ZWFyJywgJ21vbnRoJywgJ2RheSddLmluY2x1ZGVzKHBhcnQudHlwZSkpO1xuLy8gICBjb25zdCBkYXRlU2hpbSA9IHtcbi8vICAgICBkYXk6IHVuZGVmaW5lZCwgbW9udGg6IHVuZGVmaW5lZCwgeWVhcjogdW5kZWZpbmVkXG4vLyAgIH07XG4vLyAgIHBhcnRzLmZvckVhY2goKHBhcnQsIGluZGV4KSA9PiB7XG4vLyAgICAgY29uc3QgeyB0eXBlLCB2YWx1ZSB9ID0geyAuLi5wYXJ0IH07XG4vLyAgICAgLy8gQHRzLWlnbm9yZVxuLy8gICAgIGRhdGVTaGltW3R5cGVdID0gZGF0ZVNwbGl0W2luZGV4XTtcbi8vICAgfSk7XG4vL1xuLy8gICByZXR1cm4gZGF0ZVNoaW07XG4vL1xuLy8gICAvLyBjb25zdCBkYXRlUGFydHM6IERhdGVQYXJ0cyA9IHtcbi8vICAgLy8gICB5ZWFyOiAwLFxuLy8gICAvLyAgIG1vbnRoOiAwLFxuLy8gICAvLyAgIGRheTogMCxcbi8vICAgLy8gICBsaXRlcmFsOiAnLydcbi8vICAgLy8gfTtcbi8vICAgLy9cbi8vICAgLy8gY29uc3QgbGl0ZXJhbCA9IHBhcnRzLmZpbmQocGFydCA9PiBwYXJ0LnR5cGUgPT09ICdsaXRlcmFsJyk/LnZhbHVlID8/ICcvJztcbi8vICAgLy8gLy8gY29uc3QgeWVhciA9IHBhcnNlSW50KHBhcnRzLmZpbmQocGFydCA9PiBwYXJ0LnR5cGUgPT09ICd5ZWFyJyk/LnZhbHVlID8/ICcwJyk7XG4vLyAgIC8vIC8vIGNvbnN0IG1vbnRoID0gcGFyc2VJbnQocGFydHMuZmluZChwYXJ0ID0+IHBhcnQudHlwZSA9PT0gJ3llYXInKT8udmFsdWUgPz8gJzAnKTtcbi8vICAgLy8gLy8gY29uc3QgZGF5ID0gcGFyc2VJbnQocGFydHMuZmluZChwYXJ0ID0+IHBhcnQudHlwZSA9PT0gJ3llYXInKT8udmFsdWUgPz8gJzAnKTtcbi8vICAgLy9cbi8vICAgLy8gY29uc3QgZGF0ZUFycmF5ID0gZGF0ZVN0cmluZy5zcGxpdChsaXRlcmFsKTtcbi8vICAgLy9cbi8vICAgLy8gcGFydHMuZm9yRWFjaChwYXJ0ID0+IHtcbi8vICAgLy8gICBjb25zdCB7dHlwZSwgdmFsdWV9ID0gey4uLnBhcnR9O1xuLy8gICAvLyAgIGlmICh0eXBlID09PSAnZGF5Jykge1xuLy8gICAvL1xuLy8gICAvLyAgIH1cbi8vICAgLy8gfSlcbi8vICAgLy9cbi8vICAgLy8gcGFydHMuZmlsdGVyKHBhcnQgPT4gcGFydC50eXBlIGluIGRhdGVQYXJ0cykubWFwKHBhcnQgPT4ge1xuLy8gICAvLyAgIGNvbnN0IHt0eXBlLCB2YWx1ZX0gPSB7Li4ucGFydH07XG4vLyAgIC8vICAgLy8gQHRzLWlnbm9yZVxuLy8gICAvLyAgIGRhdGVQYXJ0c1t0eXBlXSA9IHBhcnNlSW50KHBhcnQudmFsdWUpO1xuLy8gICAvLyAgIC8vXG4vLyAgIC8vICAgLy8gc3dpdGNoICh0eXBlKSB7XG4vLyAgIC8vICAgLy8gICBjYXNlICdkYXknOlxuLy8gICAvLyAgIC8vICAgICBkYXkgPSBwYXJzZUludCh2YWx1ZSk7XG4vLyAgIC8vICAgLy8gICAgIGJyZWFrO1xuLy8gICAvLyAgIC8vICAgY2FzZSAnbW9udGgnOlxuLy8gICAvLyAgIC8vICAgICBtb250aCA9IHBhcnNlSW50KHZhbHVlKTtcbi8vICAgLy8gICAvLyAgICAgYnJlYWs7XG4vLyAgIC8vICAgLy8gICBjYXNlICd5ZWFyJzpcbi8vICAgLy8gICAvLyAgICAgeWVhciA9IHBhcnNlSW50KHZhbHVlKTtcbi8vICAgLy8gICAvLyAgICAgYnJlYWs7XG4vLyAgIC8vICAgLy8gfVxuLy8gICAvLyB9KVxuLy8gICAvLyAvLyBjb25zdCB7IHllYXIsIG1vbnRoLCBkYXkgfSA9IHsuLi5kYXRlUGFydHN9XG4vLyAgIC8vIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7XG4vLyB9O1xuLy9cbi8vIC8vIGZ1bmN0aW9uIGdldERhdGVYKGRhdGVBc1N0cmluZykge1xuLy8gLy8gICBjb25zdCBbZGF5LCBtb250aCwgeWVhcl0gPSBkYXRlQXNTdHJpbmcuc3BsaXQoJy8nKTtcbi8vIC8vICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KTtcbi8vIC8vIH1cbi8vXG4vLyAvLyBnZXREYXRlKCcxMi8wNy8xOTk3Jyk7XG4iXX0=
|
|
369
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUU7SUFDdEQsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLHVDQUF1QztJQUN2QyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFDLDREQUE0RDtJQUM1RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDakYsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUNqQyxJQUFtQixFQUNuQixhQUE2QixFQUM3QixFQUFFO0lBRUYsSUFBSSxJQUFJLFlBQVksSUFBSSxFQUFFO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxJQUFJLGFBQWEsS0FBSyxNQUFNLEVBQUU7UUFDNUIsT0FBTyxvQkFBb0IsQ0FBQyxJQUFjLENBQUMsQ0FBQztLQUM3QztJQUVELE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FB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QUVELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDL0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVuQyxJQUFJLFFBQVEsS0FBSyxJQUFJLEVBQUU7UUFDckIsT0FBTztLQUNSO0lBRUQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUzZixPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFhLEVBQUUsTUFBYyxFQUFFLEVBQUU7SUFDNUQsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQixPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDckQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBYyxFQUFFLElBQVksRUFBRSxFQUFFO0lBQzdELE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNsQixNQUFNLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMzQixDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2QsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNoRjtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQ3ZDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNqQixLQUFLLElBQUksS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDcEQsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNuQjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxjQUFjLEdBQUcsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLGNBQXNCLEVBQUUsRUFBRTtJQUM3RSxZQUFZO0lBQ1osWUFBWTtJQUNaLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNqQixNQUFNLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QixNQUFNLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hELElBQUksV0FBVyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsR0FBRyxjQUFjLENBQUM7SUFFMUQsSUFBSSxjQUFjLEVBQUU7UUFDbEIsV0FBVyxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztLQUMvRDtJQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsV0FBVyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDekMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNULElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVTtTQUMvQyxDQUFDLENBQUM7S0FDSjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLEVBQUU7SUFDbkQsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDakMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNULElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTO1NBQ2pELENBQUMsQ0FBQztLQUNKO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRyxDQUN0QixJQUFZLEVBQ1osS0FBYSxFQUNiLFdBQTRDLEVBQzVDLFNBQTBDLEVBQzFDLEVBQUU7SUFDRixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDakIsTUFBTSxJQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUM5QixLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ1QsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNO1NBQ2xELENBQUMsQ0FBQztLQUNKO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFVLEVBQUUsRUFBRSxDQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUUvRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFVLEVBQUUsRUFBRTtJQUMxQyxNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pELE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFFBQVEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEgsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsSUFBWSxFQUFFLEtBQWEsRUFBRSxjQUFzQixFQUFFLEVBQUU7SUFDckYsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDbEUsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoRCxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDakYsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLGFBQWEsRUFBRSxHQUFHLGFBQWEsRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDO0lBRXBFLE1BQU0sS0FBSyxHQUFvRSxFQUFFLENBQUM7SUFFbEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUMxQixJQUFJLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3pDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDMUM7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDekIsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDOUQ7UUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDcEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBaUIsRUFBRSxHQUFpQixFQUFFLEdBQWlCLEVBQUUsS0FBeUIsRUFBRSxFQUFFO0lBQ25ILElBQUksQ0FBQyxJQUFJLEVBQUU7UUFDVCxPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQzdDLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFO1FBQ3JCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFO1FBQ3JCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDckIsSUFBSSxLQUFLLEVBQUU7UUFDVCxLQUFLLE1BQU0sS0FBSyxJQUFJLEtBQUssRUFBRTtZQUN6QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3hCLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQzNDLFFBQVEsR0FBRyxJQUFJLENBQUM7b0JBQ2hCLE1BQU07aUJBQ1A7YUFDRjtZQUNELElBQUksS0FBSyxZQUFZLElBQUksRUFBRTtnQkFDekIsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFO29CQUM3QixRQUFRLEdBQUcsSUFBSSxDQUFDO29CQUNoQixNQUFNO2lCQUNQO2FBQ0Y7U0FDRjtLQUNGO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBaUIsRUFBRSxLQUFrQixFQUFFLEdBQWdCLEVBQUUsRUFBRTtJQUN2RixPQUFPLElBQUksSUFBSSxLQUFLLElBQUksR0FBRyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQztBQUM5RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFpQixFQUFFLEtBQWtCLEVBQUUsR0FBZ0IsRUFBRSxFQUFFO0lBQ3ZGLE9BQU8sSUFBSSxJQUFJLEtBQUssSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3RILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsSUFBaUIsRUFBRSxHQUFnQixFQUFFLEdBQWdCLEVBQUUsRUFBRTtJQUMzRixJQUFJLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFO1FBQ3RCLE9BQU8sR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDO0tBQ25DO0lBQ0QsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFO1FBQ2YsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDO0tBQ3BCO0lBQ0QsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFO1FBQ2YsT0FBTyxJQUFJLElBQUksR0FBRyxDQUFDO0tBQ3BCO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxJQUFpQixFQUFFLEtBQWtCLEVBQUUsR0FBZ0IsRUFBRSxFQUFFO0lBQ3hGLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLFlBQVksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVGLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLElBQWlCLEVBQUUsS0FBa0IsRUFBRSxHQUFnQixFQUFFLEVBQUU7SUFDekYsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksYUFBYSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUYsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBaUIsRUFBRSxLQUFrQixFQUFFLEdBQWdCLEVBQUUsRUFBRTtJQUN4RixPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxZQUFZLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1RixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFpQixFQUFFLEtBQWtCLEVBQUUsR0FBZ0IsRUFBRSxFQUFFO0lBQ25GLE9BQU8sSUFBSSxJQUFJLEtBQUssSUFBSSxHQUFHLElBQUksWUFBWSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDO0FBQ3hFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBVSxFQUFFLEVBQUU7SUFDN0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRTlCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUssQ0FBQztBQUNuQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFVLEVBQUUsS0FBVyxFQUFFLEVBQUU7SUFDdEQsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDakksQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBVSxFQUFFLEtBQVcsRUFBRSxFQUFFO0lBQ3ZELE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUM1RixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFVLEVBQUUsS0FBVyxFQUFFLEVBQUU7SUFDdEQsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUNyRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFpQixFQUFFLEtBQWtCLEVBQUUsR0FBZ0IsRUFBRSxFQUFFO0lBQ3JGLE9BQU8sSUFBSSxJQUFJLEtBQUssSUFBSSxHQUFHLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDO0FBQzFFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQVUsRUFBRSxFQUFFO0lBQ3BDLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDakksQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBVSxFQUFFLEtBQWEsRUFBRSxFQUFFO0lBQ3ZELE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDekIsT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQ2xGLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQ3pDLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDekIsT0FBTyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUN2QyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUE0QixFQUFXLEVBQUU7SUFFbkUsSUFBSSxJQUFJLFlBQVksSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDaEYsK0RBQStEO1FBQy9ELE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7S0FDbEM7SUFFRCxpRUFBaUU7SUFDakUsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUE2QixFQUFFLFdBQW1CLE1BQU0sRUFBRSxFQUFFO0lBQ2xGLElBQUksTUFBTSxDQUFDO0lBQ1gsSUFBSTtRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxLQUFLLENBQUM7U0FDYjtRQUNELE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUMxQjtJQUFDLE9BQU8sR0FBRyxFQUFFO1FBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLFFBQVEsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3BCLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDN0I7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFNBQXVCLEVBQUUsT0FBcUIsRUFBRSxLQUF5QixFQUFFLEVBQUU7SUFDakgsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7UUFDM0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELElBQUksU0FBUyxJQUFJLE9BQU8sRUFBRTtRQUN4QixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQyxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFFckIsT0FBTyxJQUFJLEdBQUcsT0FBTyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLElBQUksY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUMzQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2dCQUNoQixNQUFNO2FBQ1A7U0FDRjtRQUNELE9BQU8sUUFBUSxDQUFDO0tBQ2pCO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFvQ0YscUJBQXFCO0FBQ3JCLCtDQUErQztBQUMvQyxLQUFLO0FBRUwscUJBQXFCO0FBQ3JCLDhEQUE4RDtBQUM5RCxLQUFLO0FBQ0wsRUFBRTtBQUNGLHVFQUF1RTtBQUN2RSw4RUFBOEU7QUFDOUUsdUZBQXVGO0FBQ3ZGLHVEQUF1RDtBQUN2RCwwR0FBMEc7QUFDMUcsdUJBQXVCO0FBQ3ZCLHdEQUF3RDtBQUN4RCxPQUFPO0FBQ1AscUNBQXFDO0FBQ3JDLDJDQUEyQztBQUMzQyxvQkFBb0I7QUFDcEIseUNBQXlDO0FBQ3pDLFFBQVE7QUFDUixFQUFFO0FBQ0YscUJBQXFCO0FBQ3JCLEVBQUU7QUFDRixzQ0FBc0M7QUFDdEMsa0JBQWtCO0FBQ2xCLG1CQUFtQjtBQUNuQixpQkFBaUI7QUFDakIsc0JBQXNCO0FBQ3RCLFVBQVU7QUFDVixPQUFPO0FBQ1Asa0ZBQWtGO0FBQ2xGLHlGQUF5RjtBQUN6RiwwRkFBMEY7QUFDMUYsd0ZBQXdGO0FBQ3hGLE9BQU87QUFDUCxvREFBb0Q7QUFDcEQsT0FBTztBQUNQLCtCQUErQjtBQUMvQiwwQ0FBMEM7QUFDMUMsK0JBQStCO0FBQy9CLE9BQU87QUFDUCxXQUFXO0FBQ1gsVUFBVTtBQUNWLE9BQU87QUFDUCxrRUFBa0U7QUFDbEUsMENBQTBDO0FBQzFDLHVCQUF1QjtBQUN2QixpREFBaUQ7QUFDakQsWUFBWTtBQUNaLDRCQUE0QjtBQUM1QiwwQkFBMEI7QUFDMUIsdUNBQXVDO0FBQ3ZDLHVCQUF1QjtBQUN2Qiw0QkFBNEI7QUFDNUIseUNBQXlDO0FBQ3pDLHVCQUF1QjtBQUN2QiwyQkFBMkI7QUFDM0Isd0NBQXdDO0FBQ3hDLHVCQUF1QjtBQUN2QixjQUFjO0FBQ2QsVUFBVTtBQUNWLHNEQUFzRDtBQUN0RCw4Q0FBOEM7QUFDOUMsS0FBSztBQUNMLEVBQUU7QUFDRix1Q0FBdUM7QUFDdkMsMkRBQTJEO0FBQzNELDhDQUE4QztBQUM5QyxPQUFPO0FBQ1AsRUFBRTtBQUNGLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvblR5cGUgfSBmcm9tICcuL2NhbGVuZGFyLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgY29udmVydElzb1dlZWtUb0RhdGUgPSAoaXNvV2Vlazogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IFt5ZWFyLCB3ZWVrXSA9IGlzb1dlZWsuc3BsaXQoL3cvaSk7XG4gIC8vIEdldCBkYXRlIGZvciA0dGggb2YgSmFudWFyeSBmb3IgeWVhclxuICBjb25zdCBkYXRlID0gbmV3IERhdGUoTnVtYmVyKHllYXIpLCAwLCA0KTtcbiAgLy8gR2V0IHByZXZpb3VzIE1vbmRheSwgYWRkIDcgZGF5cyBmb3IgZWFjaCB3ZWVrIGFmdGVyIGZpcnN0XG4gIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSAtIChkYXRlLmdldERheSgpIHx8IDcpICsgMSArIChOdW1iZXIod2VlaykgLSAxKSAqIDcpO1xuICByZXR1cm4gZGF0ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0VG9EYXRlT2JqZWN0ID0gKFxuICBkYXRlOiBEYXRlIHwgc3RyaW5nLFxuICBzZWxlY3Rpb25UeXBlPzogU2VsZWN0aW9uVHlwZVxuKSA9PiB7XG5cbiAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cblxuICBpZiAoc2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnKSB7XG4gICAgcmV0dXJuIGNvbnZlcnRJc29XZWVrVG9EYXRlKGRhdGUgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgRGF0ZShEYXRlLnBhcnNlKGRhdGUpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0VG9Mb2NhbERhdGUgPSAoZDogRGF0ZSwgbG9jYWxlOiBzdHJpbmcsIG9wdGlvbnMgPSB7fSkgPT5cbiAgZC50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCBvcHRpb25zKTtcblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRUb0xvY2FsVGltZSA9IChkOiBEYXRlLCBsb2NhbGU6IHN0cmluZywgb3B0aW9ucyA9IHt9KSA9PlxuICBkLnRvTG9jYWxlVGltZVN0cmluZyhsb2NhbGUsIG9wdGlvbnMpO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlR3JvdXBzSW5BcnJheSA9IDxUPihhcnI6IFRbXSwgbnVtYmVyT2ZHcm91cHM6IG51bWJlcik6IFRbXVtdID0+IHtcbiAgY29uc3QgcGVyR3JvdXAgPSBNYXRoLmNlaWwoYXJyLmxlbmd0aCAvIG51bWJlck9mR3JvdXBzKTtcbiAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IG51bWJlck9mR3JvdXBzIH0pXG4gICAgLmZpbGwoJycpXG4gICAgLm1hcCgoXywgaSkgPT4gYXJyLnNsaWNlKGkgKiBwZXJHcm91cCwgKGkgKyAxKSAqIHBlckdyb3VwKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q2FsZW5kYXJEYXRlID0gKGNhbGVuZGFyRGF0ZTogRGF0ZSwgb3JkZXI6IG51bWJlciwgdmlldzogJ2RheXMnIHwgJ21vbnRocycgfCAneWVhcnMnKSA9PiB7XG4gIGlmIChvcmRlciAhPT0gMCAmJiB2aWV3ID09PSAnZGF5cycpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEMoY2FsZW5kYXJEYXRlLmdldEZ1bGxZZWFyKCksIGNhbGVuZGFyRGF0ZS5nZXRNb250aCgpICsgb3JkZXIsIDEpKTtcbiAgfVxuXG4gIGlmIChvcmRlciAhPT0gMCAmJiB2aWV3ID09PSAnbW9udGhzJykge1xuICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyhjYWxlbmRhckRhdGUuZ2V0RnVsbFllYXIoKSArIG9yZGVyLCBjYWxlbmRhckRhdGUuZ2V0TW9udGgoKSwgMSkpO1xuICB9XG5cbiAgaWYgKG9yZGVyICE9PSAwICYmIHZpZXcgPT09ICd5ZWFycycpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEMoY2FsZW5kYXJEYXRlLmdldEZ1bGxZZWFyKCkgKyAoMTIgKiBvcmRlciksIGNhbGVuZGFyRGF0ZS5nZXRNb250aCgpLCAxKSk7XG4gIH1cblxuICByZXR1cm4gY2FsZW5kYXJEYXRlO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEN1cnJlbnRZZWFyID0gKCkgPT4gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xuXG5leHBvcnQgY29uc3QgZ2V0Q3VycmVudE1vbnRoID0gKCkgPT4gbmV3IERhdGUoKS5nZXRNb250aCgpO1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0ZUJ5U2VsZWN0aW9uVHlwZSA9IChcbiAgZGF0ZTogRGF0ZSB8IG51bGwsXG4gIHNlbGVjdGlvblR5cGU6IFNlbGVjdGlvblR5cGVcbikgPT4ge1xuICBpZiAoZGF0ZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHNlbGVjdGlvblR5cGUgPT09ICd3ZWVrJykge1xuICAgIHJldHVybiBgJHtkYXRlLmdldEZ1bGxZZWFyKCl9VyR7Z2V0V2Vla051bWJlcihkYXRlKX1gO1xuICB9XG5cbiAgaWYgKHNlbGVjdGlvblR5cGUgPT09ICdtb250aCcpIHtcbiAgICBjb25zdCBtb250aE51bWJlciA9IGAwJHtkYXRlLmdldE1vbnRoKCkgKyAxfWAuc2xpY2UoLTIpO1xuICAgIHJldHVybiBgJHtkYXRlLmdldEZ1bGxZZWFyKCl9LSR7bW9udGhOdW1iZXJ9YDtcbiAgfVxuXG4gIGlmIChzZWxlY3Rpb25UeXBlID09PSAneWVhcicpIHtcbiAgICByZXR1cm4gYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfWA7XG4gIH1cblxuICByZXR1cm4gZGF0ZTtcbn07XG5cbi8vXG5cbmV4cG9ydCBjb25zdCBnZXRMb2NhbERhdGVGcm9tU3RyaW5nID0gKHN0cmluZzogc3RyaW5nLCBsb2NhbGU6IHN0cmluZywgdGltZT86IGJvb2xlYW4pID0+IHtcbiAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKDIwMTMsIDExLCAzMSwgMTcsIDE5LCAyMik7XG4gIGxldCByZWdleCA9IHRpbWUgPyBkYXRlLnRvTG9jYWxlU3RyaW5nKGxvY2FsZSkgOiBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUpO1xuICByZWdleCA9IHJlZ2V4XG4gICAgLnJlcGxhY2UoJzIwMTMnLCAnKD88eWVhcj5bMC05XXsyLDR9KScpXG4gICAgLnJlcGxhY2UoJzEyJywgJyg/PG1vbnRoPlswLTldezEsMn0pJylcbiAgICAucmVwbGFjZSgnMzEnLCAnKD88ZGF5PlswLTldezEsMn0pJyk7XG5cbiAgaWYgKHRpbWUpIHtcbiAgICByZWdleCA9IHJlZ2V4XG4gICAgICAucmVwbGFjZSgnNScsICcoPzxob3VyPlswLTldezEsMn0pJylcbiAgICAgIC5yZXBsYWNlKCcxNycsICcoPzxob3VyPlswLTldezEsMn0pJylcbiAgICAgIC5yZXBsYWNlKCcxOScsICcoPzxtaW51dGU+WzAtOV17MSwyfSknKVxuICAgICAgLnJlcGxhY2UoJzIyJywgJyg/PHNlY29uZD5bMC05XXsxLDJ9KScpXG4gICAgICAucmVwbGFjZSgnUE0nLCAnKD88YW1wbT5bQS1aXXsyfSknKTtcbiAgfVxuXG4gIGNvbnN0IHJneCA9IFJlZ0V4cChgJHtyZWdleH1gKTtcbiAgY29uc3QgcGFydGlhbHMgPSBzdHJpbmcubWF0Y2gocmd4KTtcblxuICBpZiAocGFydGlhbHMgPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBuZXdEYXRlID0gcGFydGlhbHMuZ3JvdXBzICYmICh0aW1lID8gbmV3IERhdGUoTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1sneWVhciddKSwgTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1snbW9udGgnXSkgLSAxLCBOdW1iZXIocGFydGlhbHMuZ3JvdXBzWydkYXknXSksIHBhcnRpYWxzLmdyb3Vwc1snYW1wbSddID8gcGFydGlhbHMuZ3JvdXBzWydhbXBtJ10gPT09ICdQTScgPyBOdW1iZXIocGFydGlhbHMuZ3JvdXBzWydob3VyJ10pICsgMTIgOiBOdW1iZXIocGFydGlhbHMuZ3JvdXBzWydob3VyJ10pIDogTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1snaG91ciddKSwgTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1snbWludXRlJ10pLCBOdW1iZXIocGFydGlhbHMuZ3JvdXBzWydzZWNvbmQnXSkpIDogbmV3IERhdGUoTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1sneWVhciddKSwgTnVtYmVyKHBhcnRpYWxzLmdyb3Vwc1snbW9udGgnXSkgLSAxLCBOdW1iZXIocGFydGlhbHMuZ3JvdXBzWydkYXknXSkpKTtcblxuICByZXR1cm4gbmV3RGF0ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNb250aE5hbWUgPSAobW9udGg6IG51bWJlciwgbG9jYWxlOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgZCA9IG5ldyBEYXRlKCk7XG4gIGQuc2V0RGF0ZSgxKTtcbiAgZC5zZXRNb250aChtb250aCk7XG4gIHJldHVybiBkLnRvTG9jYWxlU3RyaW5nKGxvY2FsZSwgeyBtb250aDogJ2xvbmcnIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE1vbnRoc05hbWVzID0gKGxvY2FsZTogc3RyaW5nLCB5ZWFyOiBudW1iZXIpID0+IHtcbiAgY29uc3QgbW9udGhzID0gW107XG4gIGNvbnN0IGQgPSBuZXcgRGF0ZSh5ZWFyKTtcbiAgZC5zZXREYXRlKDEpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgIGQuc2V0TW9udGgoaSk7XG4gICAgbW9udGhzLnB1c2goeyB5ZWFyLCBtb250aDogZC50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCB7IG1vbnRoOiAnc2hvcnQnIH0pIH0pO1xuICB9XG5cbiAgcmV0dXJuIG1vbnRocztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRZZWFycyA9ICh5ZWFyOiBudW1iZXIpID0+IHtcbiAgY29uc3QgeWVhcnMgPSBbXTtcbiAgZm9yIChsZXQgX3llYXIgPSB5ZWFyIC0gNjsgX3llYXIgPCB5ZWFyICsgNjsgX3llYXIrKykge1xuICAgIHllYXJzLnB1c2goX3llYXIpO1xuICB9XG5cbiAgcmV0dXJuIHllYXJzO1xufTtcblxuY29uc3QgZ2V0TGVhZGluZ0RheXMgPSAoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBmaXJzdERheU9mV2VlazogbnVtYmVyKSA9PiB7XG4gIC8vIDA6IHN1bmRheVxuICAvLyAxOiBtb25kYXlcbiAgY29uc3QgZGF0ZXMgPSBbXTtcbiAgY29uc3QgZCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoKTtcbiAgY29uc3QgeSA9IGQuZ2V0RnVsbFllYXIoKTtcbiAgY29uc3QgbSA9IGQuZ2V0TW9udGgoKTtcbiAgY29uc3QgZmlyc3RXZWVrZGF5ID0gbmV3IERhdGUoeSwgbSwgMSkuZ2V0RGF5KCk7XG4gIGxldCBsZWFkaW5nRGF5cyA9IDYgLSAoNiAtIGZpcnN0V2Vla2RheSkgLSBmaXJzdERheU9mV2VlaztcblxuICBpZiAoZmlyc3REYXlPZldlZWspIHtcbiAgICBsZWFkaW5nRGF5cyA9IGxlYWRpbmdEYXlzIDwgMCA/IDcgKyBsZWFkaW5nRGF5cyA6IGxlYWRpbmdEYXlzO1xuICB9XG5cbiAgZm9yIChsZXQgaSA9IGxlYWRpbmdEYXlzICogLTE7IGkgPCAwOyBpKyspIHtcbiAgICBkYXRlcy5wdXNoKHtcbiAgICAgIGRhdGU6IG5ldyBEYXRlKHksIG0sIGkgKyAxKSwgbW9udGg6ICdwcmV2aW91cydcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBkYXRlcztcbn07XG5cbmNvbnN0IGdldE1vbnRoRGF5cyA9ICh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIpID0+IHtcbiAgY29uc3QgZGF0ZXMgPSBbXTtcbiAgY29uc3QgbGFzdERheSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoICsgMSwgMCkuZ2V0RGF0ZSgpO1xuICBmb3IgKGxldCBpID0gMTsgaSA8PSBsYXN0RGF5OyBpKyspIHtcbiAgICBkYXRlcy5wdXNoKHtcbiAgICAgIGRhdGU6IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBpKSwgbW9udGg6ICdjdXJyZW50J1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBkYXRlcztcbn07XG5cbmNvbnN0IGdldFRyYWlsaW5nRGF5cyA9IChcbiAgeWVhcjogbnVtYmVyLFxuICBtb250aDogbnVtYmVyLFxuICBsZWFkaW5nRGF5czogeyBkYXRlOiBEYXRlOyBtb250aDogc3RyaW5nIH1bXSxcbiAgbW9udGhEYXlzOiB7IGRhdGU6IERhdGU7IG1vbnRoOiBzdHJpbmcgfVtdXG4pID0+IHtcbiAgY29uc3QgZGF0ZXMgPSBbXTtcbiAgY29uc3QgZGF5cyA9IDQyIC0gKGxlYWRpbmdEYXlzLmxlbmd0aCArIG1vbnRoRGF5cy5sZW5ndGgpO1xuICBmb3IgKGxldCBpID0gMTsgaSA8PSBkYXlzOyBpKyspIHtcbiAgICBkYXRlcy5wdXNoKHtcbiAgICAgIGRhdGU6IG5ldyBEYXRlKHllYXIsIG1vbnRoICsgMSwgaSksIG1vbnRoOiAnbmV4dCdcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gZGF0ZXM7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGF5TnVtYmVyID0gKGRhdGU6IERhdGUpID0+XG4gIE1hdGguY2VpbCgoTnVtYmVyKGRhdGUpIC0gTnVtYmVyKG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgMCwgMCkpKSAvIDEwMDAgLyA2MCAvIDYwIC8gMjQpO1xuXG5leHBvcnQgY29uc3QgZ2V0V2Vla051bWJlciA9IChkYXRlOiBEYXRlKSA9PiB7XG4gIGNvbnN0IHdlZWsxID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCAwLCA0KTtcbiAgcmV0dXJuICgxICsgTWF0aC5yb3VuZCgoKGRhdGUuZ2V0VGltZSgpIC0gd2VlazEuZ2V0VGltZSgpKSAvIDg2NDAwMDAwIC0gMyArICgod2VlazEuZ2V0RGF5KCkgKyA2KSAlIDcpKSAvIDcpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNb250aERldGFpbHMgPSAoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBmaXJzdERheU9mV2VlazogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IGRheXNQcmV2TW9udGggPSBnZXRMZWFkaW5nRGF5cyh5ZWFyLCBtb250aCwgZmlyc3REYXlPZldlZWspO1xuICBjb25zdCBkYXlzVGhpc01vbnRoID0gZ2V0TW9udGhEYXlzKHllYXIsIG1vbnRoKTtcbiAgY29uc3QgZGF5c05leHRNb250aCA9IGdldFRyYWlsaW5nRGF5cyh5ZWFyLCBtb250aCwgZGF5c1ByZXZNb250aCwgZGF5c1RoaXNNb250aCk7XG4gIGNvbnN0IGRheXMgPSBbLi4uZGF5c1ByZXZNb250aCwgLi4uZGF5c1RoaXNNb250aCwgLi4uZGF5c05leHRNb250aF07XG5cbiAgY29uc3Qgd2Vla3M6IHsgd2Vla051bWJlcjogbnVtYmVyOyBkYXlzOiB7IGRhdGU6IERhdGU7IG1vbnRoOiBzdHJpbmcgfVtdIH1bXSA9IFtdO1xuXG4gIGRheXMuZm9yRWFjaCgoZGF5LCBpbmRleCkgPT4ge1xuICAgIGlmIChpbmRleCAlIDcgPT09IDAgfHwgd2Vla3MubGVuZ3RoID09PSAwKSB7XG4gICAgICB3ZWVrcy5wdXNoKHsgd2Vla051bWJlcjogLTEsIGRheXM6IFtdIH0pO1xuICAgIH1cblxuICAgIGlmICgoaW5kZXggKyAxKSAlIDcgPT09IDApIHtcbiAgICAgIHdlZWtzW3dlZWtzLmxlbmd0aCAtIDFdLndlZWtOdW1iZXIgPSBnZXRXZWVrTnVtYmVyKGRheS5kYXRlKTtcbiAgICB9XG5cbiAgICB3ZWVrc1t3ZWVrcy5sZW5ndGggLSAxXS5kYXlzLnB1c2goZGF5KTtcbiAgfSk7XG5cbiAgcmV0dXJuIFsuLi53ZWVrc107XG59O1xuXG5leHBvcnQgY29uc3QgaXNEYXRlRGlzYWJsZWQgPSAoZGF0ZTogRGF0ZSB8IG51bGwsIG1pbj86IERhdGUgfCBudWxsLCBtYXg/OiBEYXRlIHwgbnVsbCwgZGF0ZXM/OiAoRGF0ZSB8IERhdGVbXSlbXSkgPT4ge1xuICBpZiAoIWRhdGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKCFtaW4gJiYgIW1heCAmJiAoIWRhdGVzIHx8ICFkYXRlcy5sZW5ndGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChtaW4gJiYgZGF0ZSA8IG1pbikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChtYXggJiYgZGF0ZSA+IG1heCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgbGV0IGRpc2FibGVkID0gZmFsc2U7XG4gIGlmIChkYXRlcykge1xuICAgIGZvciAoY29uc3QgX2RhdGUgb2YgZGF0ZXMpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KF9kYXRlKSkge1xuICAgICAgICBpZiAoaXNEYXRlSW5SYW5nZShkYXRlLCBfZGF0ZVswXSwgX2RhdGVbMV0pKSB7XG4gICAgICAgICAgZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoX2RhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIGlmIChpc1NhbWVEYXRlQXMoZGF0ZSwgX2RhdGUpKSB7XG4gICAgICAgICAgZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRpc2FibGVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRGF0ZUluUmFuZ2UgPSAoZGF0ZTogRGF0ZSB8IG51bGwsIHN0YXJ0OiBEYXRlIHwgbnVsbCwgZW5kOiBEYXRlIHwgbnVsbCkgPT4ge1xuICByZXR1cm4gZGF0ZSAmJiBzdGFydCAmJiBlbmQgJiYgc3RhcnQgPD0gZGF0ZSAmJiBkYXRlIDw9IGVuZDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1llYXJJblJhbmdlID0gKGRhdGU6IERhdGUgfCBudWxsLCBzdGFydDogRGF0ZSB8IG51bGwsIGVuZDogRGF0ZSB8IG51bGwpID0+IHtcbiAgcmV0dXJuIGRhdGUgJiYgc3RhcnQgJiYgZW5kICYmIHN0YXJ0LmdldEZ1bGxZZWFyKCkgPD0gZGF0ZS5nZXRGdWxsWWVhcigpICYmIGRhdGUuZ2V0RnVsbFllYXIoKSA8PSBlbmQuZ2V0RnVsbFllYXIoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0RhdGVCZXR3ZWVuTWluTWF4ID0gKGRhdGU6IERhdGUgfCBudWxsLCBtaW46IERhdGUgfCBudWxsLCBtYXg6IERhdGUgfCBudWxsKSA9PiB7XG4gIGlmIChkYXRlICYmIG1pbiAmJiBtYXgpIHtcbiAgICByZXR1cm4gbWluIDw9IGRhdGUgJiYgZGF0ZSA8PSBtYXg7XG4gIH1cbiAgaWYgKGRhdGUgJiYgbWluKSB7XG4gICAgcmV0dXJuIG1pbiA8PSBkYXRlO1xuICB9XG4gIGlmIChkYXRlICYmIG1heCkge1xuICAgIHJldHVybiBkYXRlIDw9IG1heDtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0RhdGVTZWxlY3RlZCA9IChkYXRlOiBEYXRlIHwgbnVsbCwgc3RhcnQ6IERhdGUgfCBudWxsLCBlbmQ6IERhdGUgfCBudWxsKSA9PiB7XG4gIHJldHVybiBkYXRlICYmICgoc3RhcnQgJiYgaXNTYW1lRGF0ZUFzKHN0YXJ0LCBkYXRlKSkgfHwgKGVuZCAmJiBpc1NhbWVEYXRlQXMoZW5kLCBkYXRlKSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzTW9udGhTZWxlY3RlZCA9IChkYXRlOiBEYXRlIHwgbnVsbCwgc3RhcnQ6IERhdGUgfCBudWxsLCBlbmQ6IERhdGUgfCBudWxsKSA9PiB7XG4gIHJldHVybiBkYXRlICYmICgoc3RhcnQgJiYgaXNTYW1lTW9udGhBcyhzdGFydCwgZGF0ZSkpIHx8IChlbmQgJiYgaXNTYW1lTW9udGhBcyhlbmQsIGRhdGUpKSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNZZWFyU2VsZWN0ZWQgPSAoZGF0ZTogRGF0ZSB8IG51bGwsIHN0YXJ0OiBEYXRlIHwgbnVsbCwgZW5kOiBEYXRlIHwgbnVsbCkgPT4ge1xuICByZXR1cm4gZGF0ZSAmJiAoKHN0YXJ0ICYmIGlzU2FtZVllYXJBcyhzdGFydCwgZGF0ZSkpIHx8IChlbmQgJiYgaXNTYW1lWWVhckFzKGVuZCwgZGF0ZSkpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0VuZERhdGUgPSAoZGF0ZTogRGF0ZSB8IG51bGwsIHN0YXJ0OiBEYXRlIHwgbnVsbCwgZW5kOiBEYXRlIHwgbnVsbCkgPT4ge1xuICByZXR1cm4gZGF0ZSAmJiBzdGFydCAmJiBlbmQgJiYgaXNTYW1lRGF0ZUFzKGVuZCwgZGF0ZSkgJiYgc3RhcnQgPCBlbmQ7XG59O1xuXG5leHBvcnQgY29uc3QgaXNMYXN0RGF5T2ZNb250aCA9IChkYXRlOiBEYXRlKSA9PiB7XG4gIGNvbnN0IHRlc3QgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XG4gIGNvbnN0IG1vbnRoID0gdGVzdC5nZXRNb250aCgpO1xuXG4gIHRlc3Quc2V0RGF0ZSh0ZXN0LmdldERhdGUoKSArIDEpO1xuICByZXR1cm4gdGVzdC5nZXRNb250aCgpICE9PSBtb250aDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1NhbWVEYXRlQXMgPSAoZGF0ZTogRGF0ZSwgZGF0ZTI6IERhdGUpID0+IHtcbiAgcmV0dXJuIChkYXRlLmdldERhdGUoKSA9PSBkYXRlMi5nZXREYXRlKCkgJiYgZGF0ZS5nZXRNb250aCgpID09IGRhdGUyLmdldE1vbnRoKCkgJiYgZGF0ZS5nZXRGdWxsWWVhcigpID09IGRhdGUyLmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzU2FtZU1vbnRoQXMgPSAoZGF0ZTogRGF0ZSwgZGF0ZTI6IERhdGUpID0+IHtcbiAgcmV0dXJuIChkYXRlLmdldE1vbnRoKCkgPT0gZGF0ZTIuZ2V0TW9udGgoKSAmJiBkYXRlLmdldEZ1bGxZZWFyKCkgPT0gZGF0ZTIuZ2V0RnVsbFllYXIoKSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNTYW1lWWVhckFzID0gKGRhdGU6IERhdGUsIGRhdGUyOiBEYXRlKSA9PiB7XG4gIHJldHVybiAoZGF0ZS5nZXRGdWxsWWVhcigpID09IGRhdGUyLmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzU3RhcnREYXRlID0gKGRhdGU6IERhdGUgfCBudWxsLCBzdGFydDogRGF0ZSB8IG51bGwsIGVuZDogRGF0ZSB8IG51bGwpID0+IHtcbiAgcmV0dXJuIGRhdGUgJiYgc3RhcnQgJiYgZW5kICYmIGlzU2FtZURhdGVBcyhzdGFydCwgZGF0ZSkgJiYgc3RhcnQgPCBlbmQ7XG59O1xuXG5leHBvcnQgY29uc3QgaXNUb2RheSA9IChkYXRlOiBEYXRlKSA9PiB7XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgcmV0dXJuIChkYXRlLmdldERhdGUoKSA9PSB0b2RheS5nZXREYXRlKCkgJiYgZGF0ZS5nZXRNb250aCgpID09IHRvZGF5LmdldE1vbnRoKCkgJiYgZGF0ZS5nZXRGdWxsWWVhcigpID09IHRvZGF5LmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVGhpc01vbnRoID0gKGRhdGU6IERhdGUsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICByZXR1cm4gKGluZGV4ID09IHRvZGF5LmdldE1vbnRoKCkgJiYgZGF0ZS5nZXRGdWxsWWVhcigpID09IHRvZGF5LmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVGhpc1llYXIgPSAoeWVhcjogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgcmV0dXJuICh5ZWFyID09IHRvZGF5LmdldEZ1bGxZZWFyKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVmFsaWREYXRlID0gKGRhdGU6IG51bWJlciB8IHN0cmluZyB8IERhdGUpOiBib29sZWFuID0+IHtcblxuICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUgfHwgdHlwZW9mIGRhdGUgPT09ICdudW1iZXInIHx8IHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xuICAgIC8vIFRyeSB0byBjcmVhdGUgYSBEYXRlIG9iamVjdCBmcm9tIERhdGUgb3IgdGltZXN0YW1wIG9yIHN0cmluZ1xuICAgIGNvbnN0IGRhdGVPYmogPSBuZXcgRGF0ZShkYXRlKTtcbiAgICByZXR1cm4gIWlzTmFOKGRhdGVPYmouZ2V0VGltZSgpKTtcbiAgfVxuXG4gIC8vIElmIG5vbmUgb2YgdGhlIGFib3ZlIGNvbmRpdGlvbnMgYXJlIG1ldCwgaXQncyBub3QgYSB2YWxpZCBkYXRlXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCB0cnlEYXRlID0gKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlLCBwcm9wTmFtZTogc3RyaW5nID0gJ2RhdGUnKSA9PiB7XG4gIGxldCBfdmFsdWU7XG4gIHRyeSB7XG4gICAgaWYgKCFpc1ZhbGlkRGF0ZSh2YWx1ZSkpIHtcbiAgICAgIHRocm93IHZhbHVlO1xuICAgIH1cbiAgICBfdmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNvbnNvbGUud2FybihgSW52YWxpZCAke3Byb3BOYW1lfWAsIGVycik7XG4gICAgX3ZhbHVlID0gbmV3IERhdGUoKTtcbiAgICBfdmFsdWUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIH1cbiAgcmV0dXJuIF92YWx1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0RhdGVJblJhbmdlRGlzYWJsZWQgPSAoc3RhcnREYXRlPzogRGF0ZSB8IG51bGwsIGVuZERhdGU/OiBEYXRlIHwgbnVsbCwgZGF0ZXM/OiAoRGF0ZSB8IERhdGVbXSlbXSkgPT4ge1xuICBpZiAoIWRhdGVzIHx8ICFkYXRlcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKHN0YXJ0RGF0ZSAmJiBlbmREYXRlKSB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHN0YXJ0RGF0ZSk7XG4gICAgbGV0IGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICB3aGlsZSAoZGF0ZSA8IGVuZERhdGUpIHtcbiAgICAgIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSArIDEpO1xuICAgICAgaWYgKGlzRGF0ZURpc2FibGVkKGRhdGUsIG51bGwsIG51bGwsIGRhdGVzKSkge1xuICAgICAgICBkaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGlzYWJsZWQ7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuLy8gZXhwb3J0IGNvbnN0IHN0cmluZ1RvRGF0ZUNvbnZlcnQgPSAoZGF0ZTogc3RyaW5nLCBsb2NhbGVzOiBzdHJpbmcpID0+IHtcbi8vICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2ZyLUZSJyk7XG4vLyAgIGNvbnN0IHBhcnRzID0gZm9ybWF0dGVyLmZvcm1hdFRvUGFydHMoKTtcbi8vICAgY29uc29sZS5sb2coZGF0ZSwgcGFydHMsIGZvcm1hdHRlci5mb3JtYXQoKSwgZm9ybWF0dGVyLnJlc29sdmVkT3B0aW9ucygpLCBmb3JtYXR0ZXIuZm9ybWF0KCkpO1xuLy8gfTtcblxuLy8gZGVjbGFyZSBuYW1lc3BhY2UgSW50bCB7XG4vLyAgIHR5cGUgRGF0ZVRpbWVGb3JtYXRQYXJ0VHlwZXMgPSBcImRheVwiIHwgXCJkYXlQZXJpb2RcIiB8IFwiZXJhXCIgfCBcImZyYWN0aW9uYWxTZWNvbmRcIiB8IFwiaG91clwiIHwgXCJsaXRlcmFsXCIgfCBcIm1pbnV0ZVwiIHwgXCJtb250aFwiIHwgXCJzZWNvbmRcIiB8IFwidGltZVpvbmVOYW1lXCIgfCBcIndlZWtkYXlcIiB8IFwieWVhclwiO1xuLy9cbi8vICAgaW50ZXJmYWNlIERhdGVUaW1lRm9ybWF0UGFydCB7XG4vLyAgICAgdHlwZTogRGF0ZVRpbWVGb3JtYXRQYXJ0VHlwZXM7XG4vLyAgICAgdmFsdWU6IHN0cmluZztcbi8vICAgfVxuLy9cbi8vICAgaW50ZXJmYWNlIERhdGVUaW1lRm9ybWF0IHtcbi8vICAgICBmb3JtYXRUb1BhcnRzKGRhdGU/OiBEYXRlIHwgbnVtYmVyKTogRGF0ZVRpbWVGb3JtYXRQYXJ0W107XG4vLyAgIH1cbi8vIH1cblxudHlwZSBEYXRlVGltZUZvcm1hdFBhcnRUeXBlcyA9XG4gICdkYXknXG4gIHwgJ2RheVBlcmlvZCdcbiAgfCAnZXJhJ1xuICB8ICdmcmFjdGlvbmFsU2Vjb25kJ1xuICB8ICdob3VyJ1xuICB8ICdsaXRlcmFsJ1xuICB8ICdtaW51dGUnXG4gIHwgJ21vbnRoJ1xuICB8ICdzZWNvbmQnXG4gIHwgJ3RpbWVab25lTmFtZSdcbiAgfCAnd2Vla2RheSdcbiAgfCAneWVhcic7XG50eXBlIERhdGVGb3JtYXRQYXJ0VHlwZXMgPSAnZGF5JyB8ICdtb250aCcgfCAneWVhcicgfCAnbGl0ZXJhbCc7XG5cbi8vIHR5cGUgRGF0ZVBhcnRzID0ge1xuLy8gICBba2V5IGluIERhdGVUaW1lRm9ybWF0UGFydFR5cGVzXT86IHN0cmluZztcbi8vIH07XG5cbi8vIHR5cGUgRGF0ZVBhcnRzID0ge1xuLy8gICB5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRheTogbnVtYmVyLCBsaXRlcmFsOiBzdHJpbmdcbi8vIH07XG4vL1xuLy8gZXhwb3J0IGNvbnN0IGN2dERhdGUgPSAoZGF0ZUFzU3RyaW5nOiBzdHJpbmcsIGxvY2FsZSA9ICdwbC1QTCcpID0+IHtcbi8vICAgY29uc3QgZGF0ZVN0cmluZyA9IGRhdGVBc1N0cmluZyA/PyBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUpO1xuLy8gICBjb25zdCBkYXRlU3BsaXQgPSBkYXRlU3RyaW5nLnNwbGl0KC9bLlxcLVxcL1xcc1xcRF0vZ2kpLmZpbHRlcihpdGVtID0+ICEhaXRlbS5sZW5ndGgpO1xuLy8gICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUpO1xuLy8gICBjb25zdCBwYXJ0cyA9IGZvcm1hdHRlci5mb3JtYXRUb1BhcnRzKCkuZmlsdGVyKHBhcnQgPT4gWyd5ZWFyJywgJ21vbnRoJywgJ2RheSddLmluY2x1ZGVzKHBhcnQudHlwZSkpO1xuLy8gICBjb25zdCBkYXRlU2hpbSA9IHtcbi8vICAgICBkYXk6IHVuZGVmaW5lZCwgbW9udGg6IHVuZGVmaW5lZCwgeWVhcjogdW5kZWZpbmVkXG4vLyAgIH07XG4vLyAgIHBhcnRzLmZvckVhY2goKHBhcnQsIGluZGV4KSA9PiB7XG4vLyAgICAgY29uc3QgeyB0eXBlLCB2YWx1ZSB9ID0geyAuLi5wYXJ0IH07XG4vLyAgICAgLy8gQHRzLWlnbm9yZVxuLy8gICAgIGRhdGVTaGltW3R5cGVdID0gZGF0ZVNwbGl0W2luZGV4XTtcbi8vICAgfSk7XG4vL1xuLy8gICByZXR1cm4gZGF0ZVNoaW07XG4vL1xuLy8gICAvLyBjb25zdCBkYXRlUGFydHM6IERhdGVQYXJ0cyA9IHtcbi8vICAgLy8gICB5ZWFyOiAwLFxuLy8gICAvLyAgIG1vbnRoOiAwLFxuLy8gICAvLyAgIGRheTogMCxcbi8vICAgLy8gICBsaXRlcmFsOiAnLydcbi8vICAgLy8gfTtcbi8vICAgLy9cbi8vICAgLy8gY29uc3QgbGl0ZXJhbCA9IHBhcnRzLmZpbmQocGFydCA9PiBwYXJ0LnR5cGUgPT09ICdsaXRlcmFsJyk/LnZhbHVlID8/ICcvJztcbi8vICAgLy8gLy8gY29uc3QgeWVhciA9IHBhcnNlSW50KHBhcnRzLmZpbmQocGFydCA9PiBwYXJ0LnR5cGUgPT09ICd5ZWFyJyk/LnZhbHVlID8/ICcwJyk7XG4vLyAgIC8vIC8vIGNvbnN0IG1vbnRoID0gcGFyc2VJbnQocGFydHMuZmluZChwYXJ0ID0+IHBhcnQudHlwZSA9PT0gJ3llYXInKT8udmFsdWUgPz8gJzAnKTtcbi8vICAgLy8gLy8gY29uc3QgZGF5ID0gcGFyc2VJbnQocGFydHMuZmluZChwYXJ0ID0+IHBhcnQudHlwZSA9PT0gJ3llYXInKT8udmFsdWUgPz8gJzAnKTtcbi8vICAgLy9cbi8vICAgLy8gY29uc3QgZGF0ZUFycmF5ID0gZGF0ZVN0cmluZy5zcGxpdChsaXRlcmFsKTtcbi8vICAgLy9cbi8vICAgLy8gcGFydHMuZm9yRWFjaChwYXJ0ID0+IHtcbi8vICAgLy8gICBjb25zdCB7dHlwZSwgdmFsdWV9ID0gey4uLnBhcnR9O1xuLy8gICAvLyAgIGlmICh0eXBlID09PSAnZGF5Jykge1xuLy8gICAvL1xuLy8gICAvLyAgIH1cbi8vICAgLy8gfSlcbi8vICAgLy9cbi8vICAgLy8gcGFydHMuZmlsdGVyKHBhcnQgPT4gcGFydC50eXBlIGluIGRhdGVQYXJ0cykubWFwKHBhcnQgPT4ge1xuLy8gICAvLyAgIGNvbnN0IHt0eXBlLCB2YWx1ZX0gPSB7Li4ucGFydH07XG4vLyAgIC8vICAgLy8gQHRzLWlnbm9yZVxuLy8gICAvLyAgIGRhdGVQYXJ0c1t0eXBlXSA9IHBhcnNlSW50KHBhcnQudmFsdWUpO1xuLy8gICAvLyAgIC8vXG4vLyAgIC8vICAgLy8gc3dpdGNoICh0eXBlKSB7XG4vLyAgIC8vICAgLy8gICBjYXNlICdkYXknOlxuLy8gICAvLyAgIC8vICAgICBkYXkgPSBwYXJzZUludCh2YWx1ZSk7XG4vLyAgIC8vICAgLy8gICAgIGJyZWFrO1xuLy8gICAvLyAgIC8vICAgY2FzZSAnbW9udGgnOlxuLy8gICAvLyAgIC8vICAgICBtb250aCA9IHBhcnNlSW50KHZhbHVlKTtcbi8vICAgLy8gICAvLyAgICAgYnJlYWs7XG4vLyAgIC8vICAgLy8gICBjYXNlICd5ZWFyJzpcbi8vICAgLy8gICAvLyAgICAgeWVhciA9IHBhcnNlSW50KHZhbHVlKTtcbi8vICAgLy8gICAvLyAgICAgYnJlYWs7XG4vLyAgIC8vICAgLy8gfVxuLy8gICAvLyB9KVxuLy8gICAvLyAvLyBjb25zdCB7IHllYXIsIG1vbnRoLCBkYXkgfSA9IHsuLi5kYXRlUGFydHN9XG4vLyAgIC8vIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7XG4vLyB9O1xuLy9cbi8vIC8vIGZ1bmN0aW9uIGdldERhdGVYKGRhdGVBc1N0cmluZykge1xuLy8gLy8gICBjb25zdCBbZGF5LCBtb250aCwgeWVhcl0gPSBkYXRlQXNTdHJpbmcuc3BsaXQoJy8nKTtcbi8vIC8vICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KTtcbi8vIC8vIH1cbi8vXG4vLyAvLyBnZXREYXRlKCcxMi8wNy8xOTk3Jyk7XG4iXX0=
|
|
@@ -8,10 +8,10 @@ export class CalloutComponent {
|
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
10
|
constructor() { }
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
12
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CalloutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: CalloutComponent, isStandalone: true, selector: "c-callout, [cCallout]", inputs: { color: "color" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:block}\n"] }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CalloutComponent, decorators: [{
|
|
15
15
|
type: Component,
|
|
16
16
|
args: [{ selector: 'c-callout, [cCallout]', template: `<ng-content></ng-content>`, standalone: true, styles: [":host{display:block}\n"] }]
|
|
17
17
|
}], ctorParameters: () => [], propDecorators: { color: [{
|
|
@@ -2,11 +2,11 @@ import { NgModule } from '@angular/core';
|
|
|
2
2
|
import { CalloutComponent } from './callout.component';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class CalloutModule {
|
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
6
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.
|
|
7
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CalloutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: CalloutModule, imports: [CalloutComponent], exports: [CalloutComponent] }); }
|
|
7
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CalloutModule }); }
|
|
8
8
|
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CalloutModule, decorators: [{
|
|
10
10
|
type: NgModule,
|
|
11
11
|
args: [{
|
|
12
12
|
exports: [CalloutComponent],
|
|
@@ -6,10 +6,10 @@ export class CardBodyComponent {
|
|
|
6
6
|
'card-body': true,
|
|
7
7
|
};
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
10
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: CardBodyComponent, isStandalone: true, selector: "c-card-body, [c-card-body]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardBodyComponent, decorators: [{
|
|
13
13
|
type: Component,
|
|
14
14
|
args: [{
|
|
15
15
|
selector: 'c-card-body, [c-card-body]',
|
|
@@ -6,10 +6,10 @@ export class CardFooterComponent {
|
|
|
6
6
|
'card-footer': true
|
|
7
7
|
};
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
10
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: CardFooterComponent, isStandalone: true, selector: "c-card-footer, [c-card-footer]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardFooterComponent, decorators: [{
|
|
13
13
|
type: Component,
|
|
14
14
|
args: [{
|
|
15
15
|
selector: 'c-card-footer, [c-card-footer]',
|
|
@@ -6,10 +6,10 @@ export class CardGroupComponent {
|
|
|
6
6
|
'card-group': true
|
|
7
7
|
};
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
10
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: CardGroupComponent, isStandalone: true, selector: "c-card-group, [c-card-group]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardGroupComponent, decorators: [{
|
|
13
13
|
type: Component,
|
|
14
14
|
args: [{
|
|
15
15
|
selector: 'c-card-group, [c-card-group]',
|
|
@@ -4,10 +4,10 @@ export class CardHeaderActionsComponent {
|
|
|
4
4
|
constructor() {
|
|
5
5
|
this.cardHeaderActions = true;
|
|
6
6
|
}
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
8
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardHeaderActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: CardHeaderActionsComponent, isStandalone: true, selector: "c-card-header-actions, [c-card-header-actions]", host: { properties: { "class.card-header-actions": "this.cardHeaderActions" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardHeaderActionsComponent, decorators: [{
|
|
11
11
|
type: Component,
|
|
12
12
|
args: [{
|
|
13
13
|
selector: 'c-card-header-actions, [c-card-header-actions]',
|
|
@@ -6,10 +6,10 @@ export class CardHeaderComponent {
|
|
|
6
6
|
'card-header': true
|
|
7
7
|
};
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
10
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: CardHeaderComponent, isStandalone: true, selector: "c-card-header, [c-card-header]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardHeaderComponent, decorators: [{
|
|
13
13
|
type: Component,
|
|
14
14
|
args: [{
|
|
15
15
|
selector: 'c-card-header, [c-card-header]',
|
|
@@ -6,10 +6,10 @@ export class CardImgOverlayComponent {
|
|
|
6
6
|
'card-img-overlay': true
|
|
7
7
|
};
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
10
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardImgOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: CardImgOverlayComponent, isStandalone: true, selector: "c-card-img-overlay", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:block}\n"] }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardImgOverlayComponent, decorators: [{
|
|
13
13
|
type: Component,
|
|
14
14
|
args: [{ selector: 'c-card-img-overlay', template: `<ng-content></ng-content>`, standalone: true, styles: [":host{display:block}\n"] }]
|
|
15
15
|
}], propDecorators: { hostClasses: [{
|
|
@@ -7,10 +7,10 @@ export class CardImgDirective {
|
|
|
7
7
|
[`card-img${suffix}`]: true
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
11
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardImgDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
11
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: CardImgDirective, isStandalone: true, selector: "[cCardImg]", inputs: { orientation: ["cCardImg", "orientation"] }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
|
|
12
12
|
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardImgDirective, decorators: [{
|
|
14
14
|
type: Directive,
|
|
15
15
|
args: [{
|
|
16
16
|
selector: '[cCardImg]',
|
|
@@ -6,10 +6,10 @@ export class CardLinkDirective {
|
|
|
6
6
|
'card-link': true
|
|
7
7
|
};
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
10
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
10
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: CardLinkDirective, isStandalone: true, selector: "[cCardLink]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardLinkDirective, decorators: [{
|
|
13
13
|
type: Directive,
|
|
14
14
|
args: [{
|
|
15
15
|
selector: '[cCardLink]',
|
|
@@ -6,10 +6,10 @@ export class CardSubtitleDirective {
|
|
|
6
6
|
'card-subtitle': true
|
|
7
7
|
};
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
10
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardSubtitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
10
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: CardSubtitleDirective, isStandalone: true, selector: "[cCardSubtitle]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardSubtitleDirective, decorators: [{
|
|
13
13
|
type: Directive,
|
|
14
14
|
args: [{
|
|
15
15
|
selector: '[cCardSubtitle]',
|
|
@@ -6,10 +6,10 @@ export class CardTextDirective {
|
|
|
6
6
|
'card-text': true
|
|
7
7
|
};
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
10
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardTextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
10
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: CardTextDirective, isStandalone: true, selector: "[cCardText]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardTextDirective, decorators: [{
|
|
13
13
|
type: Directive,
|
|
14
14
|
args: [{
|
|
15
15
|
selector: '[cCardText]',
|
|
@@ -6,10 +6,10 @@ export class CardTitleDirective {
|
|
|
6
6
|
'card-title': true
|
|
7
7
|
};
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
10
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
10
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: CardTitleDirective, isStandalone: true, selector: "[cCardTitle]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardTitleDirective, decorators: [{
|
|
13
13
|
type: Directive,
|
|
14
14
|
args: [{
|
|
15
15
|
selector: '[cCardTitle]',
|
|
@@ -1,23 +1,27 @@
|
|
|
1
1
|
import { Component, HostBinding, Input } from '@angular/core';
|
|
2
|
+
import { TextColorDirective } from '../utilities';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../utilities/text-color.directive";
|
|
3
5
|
export class CardComponent {
|
|
4
6
|
get hostClasses() {
|
|
5
7
|
return {
|
|
6
8
|
card: true,
|
|
7
|
-
[`bg-${this.color}`]: !!this.color
|
|
8
|
-
[`text-${this.textColor}`]: !!this.textColor,
|
|
9
|
+
[`bg-${this.color}`]: !!this.color
|
|
9
10
|
};
|
|
10
11
|
}
|
|
11
12
|
constructor() { }
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
13
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: CardComponent, isStandalone: true, selector: "c-card, [c-card]", inputs: { color: "color", textColor: "textColor" }, host: { properties: { "class": "this.hostClasses" } }, hostDirectives: [{ directive: i1.TextColorDirective, inputs: ["cTextColor", "textColor"] }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
|
|
14
15
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: CardComponent, decorators: [{
|
|
16
17
|
type: Component,
|
|
17
18
|
args: [{
|
|
18
19
|
selector: 'c-card, [c-card]',
|
|
19
|
-
template:
|
|
20
|
-
standalone: true
|
|
20
|
+
template: '<ng-content></ng-content>',
|
|
21
|
+
standalone: true,
|
|
22
|
+
hostDirectives: [{
|
|
23
|
+
directive: TextColorDirective, inputs: ['cTextColor: textColor']
|
|
24
|
+
}]
|
|
21
25
|
}]
|
|
22
26
|
}], ctorParameters: () => [], propDecorators: { color: [{
|
|
23
27
|
type: Input
|
|
@@ -27,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
27
31
|
type: HostBinding,
|
|
28
32
|
args: ['class']
|
|
29
33
|
}] } });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2NhcmQvY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7O0FBVWxELE1BQU0sT0FBTyxhQUFhO0lBZXhCLElBQ0ksV0FBVztRQUNiLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSTtZQUNWLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7U0FDbkMsQ0FBQztJQUNKLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQzs4R0F2Qk4sYUFBYTtrR0FBYixhQUFhLG9SQU5kLDJCQUEyQjs7MkZBTTFCLGFBQWE7a0JBUnpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGNBQWMsRUFBRSxDQUFDOzRCQUNmLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQzt5QkFDakUsQ0FBQztpQkFDSDt3REFPVSxLQUFLO3NCQUFiLEtBQUs7Z0JBT0csU0FBUztzQkFBakIsS0FBSztnQkFHRixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2xvcnMsIFRleHRDb2xvcnMgfSBmcm9tICcuLi9jb3JldWkudHlwZXMnO1xuaW1wb3J0IHsgVGV4dENvbG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vdXRpbGl0aWVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1jYXJkLCBbYy1jYXJkXScsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3REaXJlY3RpdmVzOiBbe1xuICAgIGRpcmVjdGl2ZTogVGV4dENvbG9yRGlyZWN0aXZlLCBpbnB1dHM6IFsnY1RleHRDb2xvcjogdGV4dENvbG9yJ11cbiAgfV1cbn0pXG5leHBvcnQgY2xhc3MgQ2FyZENvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbG9yIGNvbnRleHQgb2YgdGhlIGNvbXBvbmVudCB0byBvbmUgb2YgQ29yZVVJ4oCZcyB0aGVtZWQgY29sb3JzLlxuICAgKiBAdHlwZSBDb2xvcnNcbiAgICovXG4gIEBJbnB1dCgpIGNvbG9yPzogQ29sb3JzO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB0ZXh0IGNvbG9yIGNvbnRleHQgb2YgdGhlIGNvbXBvbmVudCB0byBvbmUgb2YgQ29yZVVJ4oCZcyB0aGVtZWQgY29sb3JzLlxuICAgKiB2aWEgVGV4dENvbG9yRGlyZWN0aXZlXG4gICAqIEB0eXBlIFRleHRDb2xvcnNcbiAgICovXG4gIEBJbnB1dCgpIHRleHRDb2xvcj86IFRleHRDb2xvcnM7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBjYXJkOiB0cnVlLFxuICAgICAgW2BiZy0ke3RoaXMuY29sb3J9YF06ICEhdGhpcy5jb2xvclxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG59XG4iXX0=
|