@coreui/angular-pro 4.7.2 → 5.0.0-alpha.1
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 +55 -31
- package/esm2022/lib/backdrop/index.mjs +2 -0
- package/esm2022/lib/backdrop/public_api.mjs +2 -0
- 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 +88 -59
- 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 +16 -13
- 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 +37 -36
- 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/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 +56 -61
- 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/esm2022/public-api.mjs +2 -1
- package/fesm2022/coreui-angular-pro.mjs +12446 -11687
- package/fesm2022/coreui-angular-pro.mjs.map +1 -1
- package/lib/avatar/avatar.component.d.ts +4 -3
- package/lib/backdrop/backdrop.service.d.ts +7 -10
- package/lib/backdrop/index.d.ts +1 -0
- package/lib/backdrop/public_api.d.ts +1 -0
- 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/modal/modal/modal.component.d.ts +13 -13
- package/lib/multi-select/multi-select/multi-select.component.d.ts +1 -2
- package/lib/multi-select/multi-select-option/multi-select-option.component.d.ts +8 -10
- 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 +14 -11
- 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
- package/public-api.d.ts +1 -0
package/esm2022/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.mjs
CHANGED
|
@@ -14,10 +14,10 @@ export class SmartTableColumnFilterComponent {
|
|
|
14
14
|
this.#filterInputDirective.emitObject = { ...this.#filterInputDirective.emitObject, column: value };
|
|
15
15
|
}
|
|
16
16
|
;
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SmartTableColumnFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: SmartTableColumnFilterComponent, isStandalone: true, selector: "c-smart-table-column-filter", inputs: { column: "column", sizing: "sizing" }, ngImport: i0, template: "<input\n [sizing]=\"sizing\"\n [value]=\"value$ | async\"\n autocomplete=\"off\"\n cFormControl\n/>\n", dependencies: [{ kind: "directive", type: FormControlDirective, selector: "input[cFormControl], textarea[cFormControl]", inputs: ["sizing", "valid", "type", "plaintext"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19
19
|
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SmartTableColumnFilterComponent, decorators: [{
|
|
21
21
|
type: Component,
|
|
22
22
|
args: [{ selector: 'c-smart-table-column-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormControlDirective, AsyncPipe], template: "<input\n [sizing]=\"sizing\"\n [value]=\"value$ | async\"\n autocomplete=\"off\"\n cFormControl\n/>\n" }]
|
|
23
23
|
}], ctorParameters: () => [], propDecorators: { column: [{
|
|
@@ -47,10 +47,10 @@ export class FilterInputDirective {
|
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
51
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: FilterInputDirective, deps: [{ token: i0.ElementRef }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
51
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.6", type: FilterInputDirective, isStandalone: true, selector: "[cFilterInput]", inputs: { delay: "delay", onEvent: "onEvent", value: "value" }, outputs: { valueChange: "valueChange" }, exportAs: ["cFilterInput"], ngImport: i0 }); }
|
|
52
52
|
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: FilterInputDirective, decorators: [{
|
|
54
54
|
type: Directive,
|
|
55
55
|
args: [{
|
|
56
56
|
selector: '[cFilterInput]',
|
|
@@ -24,10 +24,10 @@ export class SmartTableFilterComponent {
|
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
26
|
;
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SmartTableFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: SmartTableFilterComponent, isStandalone: true, selector: "c-smart-table-filter", inputs: { filterLabel: "filterLabel", filterPlaceholder: "filterPlaceholder", sizing: "sizing" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<label *ngIf=\"!!filterLabel\" [ngClass]=\"labelClasses\" cLabel=\"col\" class=\"col-auto\">\n {{ filterLabel }}\n</label>\n<div class=\"col-auto\">\n <input\n [placeholder]=\"filterPlaceholder\"\n [sizing]=\"sizing\"\n [value]=\"value$ | async\"\n autocomplete=\"off\"\n cFormControl\n size=\"10\"\n />\n</div>\n", dependencies: [{ kind: "directive", type: FormControlDirective, selector: "input[cFormControl], textarea[cFormControl]", inputs: ["sizing", "valid", "type", "plaintext"] }, { kind: "directive", type: FormLabelDirective, selector: "[cLabel]", inputs: ["cLabel", "sizing"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29
29
|
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SmartTableFilterComponent, decorators: [{
|
|
31
31
|
type: Component,
|
|
32
32
|
args: [{ selector: 'c-smart-table-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormControlDirective, FormLabelDirective, NgClass, NgIf, AsyncPipe], template: "<label *ngIf=\"!!filterLabel\" [ngClass]=\"labelClasses\" cLabel=\"col\" class=\"col-auto\">\n {{ filterLabel }}\n</label>\n<div class=\"col-auto\">\n <input\n [placeholder]=\"filterPlaceholder\"\n [sizing]=\"sizing\"\n [value]=\"value$ | async\"\n autocomplete=\"off\"\n cFormControl\n size=\"10\"\n />\n</div>\n" }]
|
|
33
33
|
}], ctorParameters: () => [], propDecorators: { filterLabel: [{
|
|
@@ -1,26 +1,18 @@
|
|
|
1
1
|
import { Pipe } from '@angular/core';
|
|
2
|
+
import { getColumnLabel } from '../smart-table.utils';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export class SmartTableColumnLabelPipe {
|
|
4
5
|
transform(column, ...args) {
|
|
5
|
-
return
|
|
6
|
+
return getColumnLabel(column);
|
|
6
7
|
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
.replace(/[-_.]/g, ' ')
|
|
10
|
-
.replace(/ +/g, ' ')
|
|
11
|
-
.replace(/([a-z0-9])([A-Z])/g, '$1 $2')
|
|
12
|
-
.split(' ')
|
|
13
|
-
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
14
|
-
.join(' ');
|
|
15
|
-
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: SmartTableColumnLabelPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
17
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.5", ngImport: i0, type: SmartTableColumnLabelPipe, isStandalone: true, name: "columnLabel" }); }
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SmartTableColumnLabelPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
9
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: SmartTableColumnLabelPipe, isStandalone: true, name: "columnLabel" }); }
|
|
18
10
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SmartTableColumnLabelPipe, decorators: [{
|
|
20
12
|
type: Pipe,
|
|
21
13
|
args: [{
|
|
22
14
|
name: 'columnLabel',
|
|
23
15
|
standalone: true
|
|
24
16
|
}]
|
|
25
17
|
}] });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdGFibGUtY29sdW1uLWxhYmVsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NtYXJ0LXRhYmxlL3NtYXJ0LXRhYmxlLWhlYWQvc21hcnQtdGFibGUtY29sdW1uLWxhYmVsLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQU10RCxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFNBQVMsQ0FBQyxNQUF3QixFQUFFLEdBQUcsSUFBZTtRQUNwRCxPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDOzhHQUpVLHlCQUF5Qjs0R0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUpyQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxhQUFhO29CQUNuQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQ29sdW1uIH0gZnJvbSAnLi4vc21hcnQtdGFibGUudHlwZSc7XG5pbXBvcnQgeyBnZXRDb2x1bW5MYWJlbCB9IGZyb20gJy4uL3NtYXJ0LXRhYmxlLnV0aWxzJztcblxuQFBpcGUoe1xuICBuYW1lOiAnY29sdW1uTGFiZWwnLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0VGFibGVDb2x1bW5MYWJlbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICB0cmFuc2Zvcm0oY29sdW1uOiBJQ29sdW1uIHwgc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiB1bmtub3duIHtcbiAgICByZXR1cm4gZ2V0Q29sdW1uTGFiZWwoY29sdW1uKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
|
|
2
|
-
import { AsyncPipe, NgForOf, NgIf, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet } from '@angular/common';
|
|
1
|
+
import { booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output, signal } from '@angular/core';
|
|
2
|
+
import { AsyncPipe, NgClass, NgForOf, NgIf, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet } from '@angular/common';
|
|
3
3
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
4
|
import { BehaviorSubject } from 'rxjs';
|
|
5
|
+
import { getColumns, getTableHeaderCellClass, getTableHeaderCellProps, getTableHeaderCellStyles } from '../smart-table.utils';
|
|
5
6
|
import { HtmlAttributesDirective } from '../../shared';
|
|
6
7
|
import { TableColorDirective } from '../../table';
|
|
7
8
|
import { FormCheckInputDirective } from '../../form';
|
|
@@ -9,13 +10,20 @@ import { SmartTableColumnFilterComponent } from '../smart-table-column-filter/sm
|
|
|
9
10
|
import { FilterInputDirective } from '../smart-table-filter/filter-input.directive';
|
|
10
11
|
import { SmartTableColumnLabelPipe } from './smart-table-column-label.pipe';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
13
|
+
// todo - add support for column groups
|
|
12
14
|
export class SmartTableHeadComponent {
|
|
13
15
|
constructor() {
|
|
16
|
+
this.getTableHeaderCellStyles = getTableHeaderCellStyles;
|
|
17
|
+
this.getTableHeaderCellProps = getTableHeaderCellProps;
|
|
18
|
+
this.getTableHeaderCellClass = getTableHeaderCellClass;
|
|
14
19
|
this.columnFilterState = {};
|
|
15
20
|
this.columnSorter = true;
|
|
16
21
|
this.component = 'thead';
|
|
17
|
-
this.#
|
|
22
|
+
this.#columns = signal(undefined);
|
|
23
|
+
this.columnGroups$ = signal([]);
|
|
24
|
+
this.selectAll = true;
|
|
18
25
|
this.#selectedAll = false;
|
|
26
|
+
this.showGroups = false;
|
|
19
27
|
this.#columnFilterTemplates = {};
|
|
20
28
|
this.#summaryRowTemplate = null;
|
|
21
29
|
// todo
|
|
@@ -27,14 +35,17 @@ export class SmartTableHeadComponent {
|
|
|
27
35
|
this.sorterStateChange = new EventEmitter();
|
|
28
36
|
this.selectAllChange = new EventEmitter();
|
|
29
37
|
}
|
|
30
|
-
set
|
|
31
|
-
|
|
38
|
+
set columns(value) {
|
|
39
|
+
const columns = value ? getColumns(value) : [];
|
|
40
|
+
this.#columns.set(columns);
|
|
32
41
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
42
|
+
get columns() {
|
|
43
|
+
return this.#columns();
|
|
44
|
+
}
|
|
45
|
+
#columns;
|
|
46
|
+
set columnGroups(value) {
|
|
47
|
+
this.columnGroups$.set(value);
|
|
36
48
|
}
|
|
37
|
-
#selectAll;
|
|
38
49
|
#selectedAllPreviousValue;
|
|
39
50
|
set selectedAll(value) {
|
|
40
51
|
this.indeterminate$.next(value === 'indeterminate');
|
|
@@ -78,13 +89,6 @@ export class SmartTableHeadComponent {
|
|
|
78
89
|
this.columnFilterState[columnKey] = this.columnFilterState[columnKey] ?? '';
|
|
79
90
|
});
|
|
80
91
|
}
|
|
81
|
-
tableHeaderCellProps(column) {
|
|
82
|
-
if (typeof column === 'object' && column._props) {
|
|
83
|
-
const { color, ...props } = { ...column._props };
|
|
84
|
-
return props;
|
|
85
|
-
}
|
|
86
|
-
return {};
|
|
87
|
-
}
|
|
88
92
|
tableHeaderCellColor(column) {
|
|
89
93
|
if (typeof column === 'object' && column._props) {
|
|
90
94
|
const { color } = { ...column._props };
|
|
@@ -92,18 +96,6 @@ export class SmartTableHeadComponent {
|
|
|
92
96
|
}
|
|
93
97
|
return '';
|
|
94
98
|
}
|
|
95
|
-
tableHeaderCellStyles(column) {
|
|
96
|
-
const style = { verticalAlign: 'middle', overflow: 'hidden', cursor: '' };
|
|
97
|
-
if (this.columnSorter &&
|
|
98
|
-
(typeof column !== 'object' ||
|
|
99
|
-
(typeof column === 'object' && (typeof column.sorter === 'undefined' || column.sorter)))) {
|
|
100
|
-
style.cursor = 'pointer';
|
|
101
|
-
}
|
|
102
|
-
if (typeof column === 'object' && column._style) {
|
|
103
|
-
return { ...style, ...column._style };
|
|
104
|
-
}
|
|
105
|
-
return style;
|
|
106
|
-
}
|
|
107
99
|
columnKey(column) {
|
|
108
100
|
return typeof column === 'object' ? column.key : column;
|
|
109
101
|
}
|
|
@@ -117,10 +109,18 @@ export class SmartTableHeadComponent {
|
|
|
117
109
|
}
|
|
118
110
|
return 0;
|
|
119
111
|
}
|
|
120
|
-
handleSortClick(column, i) {
|
|
112
|
+
handleSortClick(column, i, order) {
|
|
121
113
|
if (this.columnSorterEnabled(column)) {
|
|
122
114
|
const columnKey = this.columnKey(column);
|
|
123
|
-
this.sorterStateChange.emit({ columnKey, index: i });
|
|
115
|
+
this.sorterStateChange.emit({ columnKey, index: i, order });
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
handleSortKeyDown($event, column, i) {
|
|
119
|
+
const eventCode = $event.code;
|
|
120
|
+
if (['Enter', 'Space', 'ArrowUp', 'ArrowDown'].includes(eventCode)) {
|
|
121
|
+
$event.preventDefault();
|
|
122
|
+
const order = eventCode === 'ArrowUp' ? 'asc' : eventCode === 'ArrowDown' ? 'desc' : undefined;
|
|
123
|
+
this.handleSortClick(column, i, order);
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
126
|
columnFilterEnabled(column) {
|
|
@@ -157,10 +157,14 @@ export class SmartTableHeadComponent {
|
|
|
157
157
|
return (typeof this.columnFilter === 'object' && this.columnFilter.lazy) ? 'change' : 'input';
|
|
158
158
|
}
|
|
159
159
|
;
|
|
160
|
-
|
|
161
|
-
|
|
160
|
+
getAriaSort(column) {
|
|
161
|
+
const sort = this.getColumnSorterState(column);
|
|
162
|
+
return sort === 'asc' ? 'ascending' : sort === 'desc' ? 'descending' : null;
|
|
163
|
+
}
|
|
164
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SmartTableHeadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
165
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.6", type: SmartTableHeadComponent, isStandalone: true, selector: "c-smart-table-head", inputs: { columnFilter: "columnFilter", columnFilterState: "columnFilterState", columnSorter: "columnSorter", component: "component", columns: "columns", columnGroups: "columnGroups", selectable: "selectable", selectAll: ["selectAll", "selectAll", booleanAttribute], selectedAll: "selectedAll", showGroups: ["showGroups", "showGroups", booleanAttribute], sorterValue: "sorterValue", columnFilterTemplates: "columnFilterTemplates", summaryRowTemplate: "summaryRowTemplate" }, outputs: { columnFilterStateChange: "columnFilterStateChange", sorterStateChange: "sorterStateChange", selectAllChange: "selectAllChange" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<ng-template [ngIf]=\"component==='tfoot'\">\n <ng-container *ngTemplateOutlet=\"summaryRowTemplate\" />\n</ng-template>\n\n<ng-template [ngIf]=\"showGroups\">\n <tr *ngFor=\"let row of columnGroups$() let i = index\">\n <th *ngIf=\"selectable\"></th>\n <th *ngFor=\"let cell of row; let i = index\"\n [colSpan]=\"cell.colspan ?? 1\"\n [cHtmlAttr]=\"getTableHeaderCellProps(cell)\"\n [cTableColor]=\"tableHeaderCellColor(cell)\"\n [ngStyle]=\"getTableHeaderCellStyles(cell, columnSorter)\"\n >\n {{cell.label}}\n </th>\n </tr>\n</ng-template>\n\n<tr>\n <th *ngIf=\"selectable\">\n <input\n cFormCheckInput\n (change)=\"handleSelectAllChecked($event)\"\n [checked]=\"selectedAll === true\"\n [indeterminate]=\"indeterminate$ | async\"\n type=\"checkbox\"\n [disabled]=\"!selectAll\"\n autocomplete=\"off\"\n >\n </th>\n <th\n (click)=\"handleSortClick(column, i)\"\n (keydown)=\"handleSortKeyDown($event, column, i)\"\n *ngFor=\"let column of columns; let i = index\"\n [attr.aria-sort]=\"getAriaSort(column)\"\n [cHtmlAttr]=\"getTableHeaderCellProps(column)\"\n [cTableColor]=\"tableHeaderCellColor(column)\"\n [ngStyle]=\"getTableHeaderCellStyles(column, columnSorter)\"\n [ngClass]=\"getTableHeaderCellClass(column)\"\n [tabindex]=\"columnSorter && columnSorterEnabled(column) ? 0 : -1\"\n >\n <ng-template [ngIf]=\"columnSorter && columnSorterEnabled(column)\">\n <ng-container\n *ngTemplateOutlet=\"columnSorterIconTemplate; context: { $implicit: getColumnSorterState(column) }\"\n />\n </ng-template>\n <div class=\"d-inline\">{{ column | columnLabel }}</div>\n </th>\n</tr>\n<tr *ngIf=\"columnFilter\">\n <th *ngIf=\"selectable\"></th>\n <th *ngFor=\"let column of columns; let i = index\"\n [cHtmlAttr]=\"getTableHeaderCellProps(column)\"\n [cTableColor]=\"tableHeaderCellColor(column)\"\n [ngStyle]=\"getTableHeaderCellStyles(column, columnSorter)\"\n >\n <ng-container\n *ngTemplateOutlet=\"columnFilterTemplates[getColumnFilter(column)] ?? defaultColumnFilter; context: {$implicit: column, header: this}\"\n />\n </th>\n</tr>\n\n<ng-template #defaultColumnFilter let-column>\n <c-smart-table-column-filter\n (valueChange)=\"handleColumnFilterValueChange($event)\"\n *ngIf=\"columnFilterEnabled(column)\"\n [column]=\"column\"\n [delay]=\"300\"\n [onEvent]=\"columnFilterEvent\"\n [value]=\"columnFilterState[columnKey(column)] ?? ''\"\n cFilterInput\n sizing=\"sm\"\n />\n</ng-template>\n\n<ng-template #columnSorterIconTemplate let-columnSorterState>\n <ng-container [ngSwitch]=\"columnSorterState\">\n <span *ngSwitchCase=\"'asc'\" class=\"float-end mx-1\">\n <ng-container *ngTemplateOutlet=\"sortingIconAscendingTemplate\" />\n </span>\n <span *ngSwitchCase=\"'desc'\" class=\"float-end mx-1\">\n <ng-container *ngTemplateOutlet=\"sortingIconDescendingTemplate\" />\n </span>\n <span *ngSwitchDefault class=\"opacity-25 float-end mx-1\">\n <ng-container *ngTemplateOutlet=\"sortingIconTemplate\" />\n </span>\n </ng-container>\n</ng-template>\n\n<!--todo: sortingIconCustom Templates-->\n<ng-template #sortingIconTemplate>\n <svg\n class=\"icon icon-custom-size\"\n role=\"img\"\n viewBox=\"0 0 512 512\"\n width=\"18\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <polygon\n class=\"ci-primary\"\n fill=\"var(--ci-primary-color, currentColor)\"\n points=\"384 433.373 384 160 352 160 352 434.51 282.177 364.687 259.55 387.313 367.432 495.196 475.313 387.313 452.687 364.687 384 433.373\"\n ></polygon>\n <polygon\n class=\"ci-primary\"\n fill=\"var(--ci-primary-color, currentColor)\"\n points=\"159.432 17.372 51.55 125.255 74.177 147.882 144 78.059 144 352 176 352 176 79.195 244.687 147.882 267.313 125.255 159.432 17.372\"\n ></polygon>\n </svg>\n</ng-template>\n\n<ng-template #sortingIconAscendingTemplate>\n <svg\n class=\"icon icon-custom-size\"\n role=\"img\"\n viewBox=\"0 0 512 512\"\n width=\"18\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <polygon\n class=\"ci-primary\"\n fill=\"var(--ci-primary-color, currentColor)\"\n points=\"390.624 150.625 256 16 121.376 150.625 144.004 173.252 240.001 77.254 240.001 495.236 272.001 495.236 272.001 77.257 367.996 173.252 390.624 150.625\"\n ></polygon>\n </svg>\n</ng-template>\n\n<ng-template #sortingIconDescendingTemplate>\n <svg\n class=\"icon icon-custom-size\"\n role=\"img\"\n viewBox=\"0 0 512 512\"\n width=\"18\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <polygon\n class=\"ci-primary\"\n fill=\"var(--ci-primary-color, currentColor)\"\n points=\"367.997 338.75 271.999 434.747 271.999 17.503 239.999 17.503 239.999 434.745 144.003 338.75 121.376 361.377 256 496 390.624 361.377 367.997 338.75\"\n ></polygon>\n </svg>\n</ng-template>\n", styles: [":host{-webkit-user-select:none;user-select:none}:host.thead{display:table-header-group;vertical-align:middle;border-color:inherit}:host.tfoot{display:table-footer-group;vertical-align:middle;border-color:inherit}\n"], dependencies: [{ kind: "directive", type: FilterInputDirective, selector: "[cFilterInput]", inputs: ["delay", "onEvent", "value"], outputs: ["valueChange"], exportAs: ["cFilterInput"] }, { kind: "directive", type: FormCheckInputDirective, selector: "input[cFormCheckInput]", inputs: ["type", "indeterminate", "valid", "checked"] }, { kind: "directive", type: HtmlAttributesDirective, selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { kind: "component", type: SmartTableColumnFilterComponent, selector: "c-smart-table-column-filter", inputs: ["column", "sizing"] }, { kind: "directive", type: TableColorDirective, selector: "[cTableColor]", inputs: ["cTableColor"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: SmartTableColumnLabelPipe, name: "columnLabel" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
162
166
|
}
|
|
163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
167
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SmartTableHeadComponent, decorators: [{
|
|
164
168
|
type: Component,
|
|
165
169
|
args: [{ selector: 'c-smart-table-head', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
166
170
|
FilterInputDirective,
|
|
@@ -176,8 +180,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImpor
|
|
|
176
180
|
NgSwitchCase,
|
|
177
181
|
NgSwitchDefault,
|
|
178
182
|
NgTemplateOutlet,
|
|
179
|
-
SmartTableColumnLabelPipe
|
|
180
|
-
|
|
183
|
+
SmartTableColumnLabelPipe,
|
|
184
|
+
NgClass
|
|
185
|
+
], template: "<ng-template [ngIf]=\"component==='tfoot'\">\n <ng-container *ngTemplateOutlet=\"summaryRowTemplate\" />\n</ng-template>\n\n<ng-template [ngIf]=\"showGroups\">\n <tr *ngFor=\"let row of columnGroups$() let i = index\">\n <th *ngIf=\"selectable\"></th>\n <th *ngFor=\"let cell of row; let i = index\"\n [colSpan]=\"cell.colspan ?? 1\"\n [cHtmlAttr]=\"getTableHeaderCellProps(cell)\"\n [cTableColor]=\"tableHeaderCellColor(cell)\"\n [ngStyle]=\"getTableHeaderCellStyles(cell, columnSorter)\"\n >\n {{cell.label}}\n </th>\n </tr>\n</ng-template>\n\n<tr>\n <th *ngIf=\"selectable\">\n <input\n cFormCheckInput\n (change)=\"handleSelectAllChecked($event)\"\n [checked]=\"selectedAll === true\"\n [indeterminate]=\"indeterminate$ | async\"\n type=\"checkbox\"\n [disabled]=\"!selectAll\"\n autocomplete=\"off\"\n >\n </th>\n <th\n (click)=\"handleSortClick(column, i)\"\n (keydown)=\"handleSortKeyDown($event, column, i)\"\n *ngFor=\"let column of columns; let i = index\"\n [attr.aria-sort]=\"getAriaSort(column)\"\n [cHtmlAttr]=\"getTableHeaderCellProps(column)\"\n [cTableColor]=\"tableHeaderCellColor(column)\"\n [ngStyle]=\"getTableHeaderCellStyles(column, columnSorter)\"\n [ngClass]=\"getTableHeaderCellClass(column)\"\n [tabindex]=\"columnSorter && columnSorterEnabled(column) ? 0 : -1\"\n >\n <ng-template [ngIf]=\"columnSorter && columnSorterEnabled(column)\">\n <ng-container\n *ngTemplateOutlet=\"columnSorterIconTemplate; context: { $implicit: getColumnSorterState(column) }\"\n />\n </ng-template>\n <div class=\"d-inline\">{{ column | columnLabel }}</div>\n </th>\n</tr>\n<tr *ngIf=\"columnFilter\">\n <th *ngIf=\"selectable\"></th>\n <th *ngFor=\"let column of columns; let i = index\"\n [cHtmlAttr]=\"getTableHeaderCellProps(column)\"\n [cTableColor]=\"tableHeaderCellColor(column)\"\n [ngStyle]=\"getTableHeaderCellStyles(column, columnSorter)\"\n >\n <ng-container\n *ngTemplateOutlet=\"columnFilterTemplates[getColumnFilter(column)] ?? defaultColumnFilter; context: {$implicit: column, header: this}\"\n />\n </th>\n</tr>\n\n<ng-template #defaultColumnFilter let-column>\n <c-smart-table-column-filter\n (valueChange)=\"handleColumnFilterValueChange($event)\"\n *ngIf=\"columnFilterEnabled(column)\"\n [column]=\"column\"\n [delay]=\"300\"\n [onEvent]=\"columnFilterEvent\"\n [value]=\"columnFilterState[columnKey(column)] ?? ''\"\n cFilterInput\n sizing=\"sm\"\n />\n</ng-template>\n\n<ng-template #columnSorterIconTemplate let-columnSorterState>\n <ng-container [ngSwitch]=\"columnSorterState\">\n <span *ngSwitchCase=\"'asc'\" class=\"float-end mx-1\">\n <ng-container *ngTemplateOutlet=\"sortingIconAscendingTemplate\" />\n </span>\n <span *ngSwitchCase=\"'desc'\" class=\"float-end mx-1\">\n <ng-container *ngTemplateOutlet=\"sortingIconDescendingTemplate\" />\n </span>\n <span *ngSwitchDefault class=\"opacity-25 float-end mx-1\">\n <ng-container *ngTemplateOutlet=\"sortingIconTemplate\" />\n </span>\n </ng-container>\n</ng-template>\n\n<!--todo: sortingIconCustom Templates-->\n<ng-template #sortingIconTemplate>\n <svg\n class=\"icon icon-custom-size\"\n role=\"img\"\n viewBox=\"0 0 512 512\"\n width=\"18\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <polygon\n class=\"ci-primary\"\n fill=\"var(--ci-primary-color, currentColor)\"\n points=\"384 433.373 384 160 352 160 352 434.51 282.177 364.687 259.55 387.313 367.432 495.196 475.313 387.313 452.687 364.687 384 433.373\"\n ></polygon>\n <polygon\n class=\"ci-primary\"\n fill=\"var(--ci-primary-color, currentColor)\"\n points=\"159.432 17.372 51.55 125.255 74.177 147.882 144 78.059 144 352 176 352 176 79.195 244.687 147.882 267.313 125.255 159.432 17.372\"\n ></polygon>\n </svg>\n</ng-template>\n\n<ng-template #sortingIconAscendingTemplate>\n <svg\n class=\"icon icon-custom-size\"\n role=\"img\"\n viewBox=\"0 0 512 512\"\n width=\"18\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <polygon\n class=\"ci-primary\"\n fill=\"var(--ci-primary-color, currentColor)\"\n points=\"390.624 150.625 256 16 121.376 150.625 144.004 173.252 240.001 77.254 240.001 495.236 272.001 495.236 272.001 77.257 367.996 173.252 390.624 150.625\"\n ></polygon>\n </svg>\n</ng-template>\n\n<ng-template #sortingIconDescendingTemplate>\n <svg\n class=\"icon icon-custom-size\"\n role=\"img\"\n viewBox=\"0 0 512 512\"\n width=\"18\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <polygon\n class=\"ci-primary\"\n fill=\"var(--ci-primary-color, currentColor)\"\n points=\"367.997 338.75 271.999 434.747 271.999 17.503 239.999 17.503 239.999 434.745 144.003 338.75 121.376 361.377 256 496 390.624 361.377 367.997 338.75\"\n ></polygon>\n </svg>\n</ng-template>\n", styles: [":host{-webkit-user-select:none;user-select:none}:host.thead{display:table-header-group;vertical-align:middle;border-color:inherit}:host.tfoot{display:table-footer-group;vertical-align:middle;border-color:inherit}\n"] }]
|
|
181
186
|
}], ctorParameters: () => [], propDecorators: { columnFilter: [{
|
|
182
187
|
type: Input
|
|
183
188
|
}], columnFilterState: [{
|
|
@@ -188,12 +193,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImpor
|
|
|
188
193
|
type: Input
|
|
189
194
|
}], columns: [{
|
|
190
195
|
type: Input
|
|
196
|
+
}], columnGroups: [{
|
|
197
|
+
type: Input
|
|
191
198
|
}], selectable: [{
|
|
192
199
|
type: Input
|
|
193
200
|
}], selectAll: [{
|
|
194
|
-
type: Input
|
|
201
|
+
type: Input,
|
|
202
|
+
args: [{ transform: booleanAttribute }]
|
|
195
203
|
}], selectedAll: [{
|
|
196
204
|
type: Input
|
|
205
|
+
}], showGroups: [{
|
|
206
|
+
type: Input,
|
|
207
|
+
args: [{ transform: booleanAttribute }]
|
|
197
208
|
}], sorterValue: [{
|
|
198
209
|
type: Input
|
|
199
210
|
}], columnFilterTemplates: [{
|
|
@@ -210,4 +221,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImpor
|
|
|
210
221
|
type: HostBinding,
|
|
211
222
|
args: ['class']
|
|
212
223
|
}] } });
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdGFibGUtaGVhZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NtYXJ0LXRhYmxlL3NtYXJ0LXRhYmxlLWhlYWQvc21hcnQtdGFibGUtaGVhZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NtYXJ0LXRhYmxlL3NtYXJ0LXRhYmxlLWhlYWQvc21hcnQtdGFibGUtaGVhZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsSUFBSSxFQUNKLE9BQU8sRUFDUCxRQUFRLEVBQ1IsWUFBWSxFQUNaLGVBQWUsRUFDZixnQkFBZ0IsRUFDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBS3ZDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQXlCNUUsTUFBTSxP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WTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdGLFNBQVM7c0JBRFosS0FBSztnQkFjRixXQUFXO3NCQURkLEtBQUs7Z0JBZ0JHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0YscUJBQXFCO3NCQUR4QixLQUFLO2dCQVlGLGtCQUFrQjtzQkFEckIsS0FBSztnQkFrQmEsdUJBQXVCO3NCQUF6QyxNQUFNO2dCQUNZLGlCQUFpQjtzQkFBbkMsTUFBTTtnQkFDWSxlQUFlO3NCQUFqQyxNQUFNO2dCQUdILFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFzeW5jUGlwZSxcbiAgTmdGb3JPZixcbiAgTmdJZixcbiAgTmdTdHlsZSxcbiAgTmdTd2l0Y2gsXG4gIE5nU3dpdGNoQ2FzZSxcbiAgTmdTd2l0Y2hEZWZhdWx0LFxuICBOZ1RlbXBsYXRlT3V0bGV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IElDb2x1bW4sIElDb2x1bW5GaWx0ZXIsIElDb2x1bW5GaWx0ZXJWYWx1ZSwgSVNvcnRlciwgSVNvcnRlclZhbHVlIH0gZnJvbSAnLi4vc21hcnQtdGFibGUudHlwZSc7XG5cbmltcG9ydCB7IENvbG9ycyB9IGZyb20gJy4uLy4uL2NvcmV1aS50eXBlcyc7XG5pbXBvcnQgeyBIdG1sQXR0cmlidXRlc0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBUYWJsZUNvbG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdGFibGUnO1xuaW1wb3J0IHsgRm9ybUNoZWNrSW5wdXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9mb3JtJztcbmltcG9ydCB7IFNtYXJ0VGFibGVDb2x1bW5GaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9zbWFydC10YWJsZS1jb2x1bW4tZmlsdGVyL3NtYXJ0LXRhYmxlLWNvbHVtbi1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbHRlcklucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vc21hcnQtdGFibGUtZmlsdGVyL2ZpbHRlci1pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU21hcnRUYWJsZUNvbHVtbkxhYmVsUGlwZSB9IGZyb20gJy4vc21hcnQtdGFibGUtY29sdW1uLWxhYmVsLnBpcGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLXNtYXJ0LXRhYmxlLWhlYWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtdGFibGUtaGVhZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NtYXJ0LXRhYmxlLWhlYWQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBGaWx0ZXJJbnB1dERpcmVjdGl2ZSxcbiAgICBGb3JtQ2hlY2tJbnB1dERpcmVjdGl2ZSxcbiAgICBIdG1sQXR0cmlidXRlc0RpcmVjdGl2ZSxcbiAgICBTbWFydFRhYmxlQ29sdW1uRmlsdGVyQ29tcG9uZW50LFxuICAgIFRhYmxlQ29sb3JEaXJlY3RpdmUsXG4gICAgQXN5bmNQaXBlLFxuICAgIE5nRm9yT2YsXG4gICAgTmdJZixcbiAgICBOZ1N0eWxlLFxuICAgIE5nU3dpdGNoLFxuICAgIE5nU3dpdGNoQ2FzZSxcbiAgICBOZ1N3aXRjaERlZmF1bHQsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBTbWFydFRhYmxlQ29sdW1uTGFiZWxQaXBlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU21hcnRUYWJsZUhlYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgQElucHV0KCkgY29sdW1uRmlsdGVyPzogYm9vbGVhbiB8IElDb2x1bW5GaWx0ZXI7XG4gIEBJbnB1dCgpIGNvbHVtbkZpbHRlclN0YXRlOiBJQ29sdW1uRmlsdGVyVmFsdWUgPSB7fTtcbiAgQElucHV0KCkgY29sdW1uU29ydGVyPzogYm9vbGVhbiB8IElTb3J0ZXIgPSB0cnVlO1xuICBASW5wdXQoKSBjb21wb25lbnQ/OiBzdHJpbmcgPSAndGhlYWQnO1xuICBASW5wdXQoKSBjb2x1bW5zPzogKElDb2x1bW4gfCBzdHJpbmcpW107XG4gIEBJbnB1dCgpIHNlbGVjdGFibGU/OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBzZWxlY3RBbGwodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNzZWxlY3RBbGwgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9O1xuXG4gIGdldCBzZWxlY3RBbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3NlbGVjdEFsbDtcbiAgfVxuXG4gICNzZWxlY3RBbGwgPSB0cnVlO1xuXG4gICNzZWxlY3RlZEFsbFByZXZpb3VzVmFsdWU/OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBzZWxlY3RlZEFsbCh2YWx1ZTogYm9vbGVhbiB8ICdpbmRldGVybWluYXRlJykge1xuICAgIHRoaXMuaW5kZXRlcm1pbmF0ZSQubmV4dCh2YWx1ZSA9PT0gJ2luZGV0ZXJtaW5hdGUnKTtcblxuICAgIHRoaXMuI3NlbGVjdGVkQWxsID0gdmFsdWUgPT09ICdpbmRldGVybWluYXRlJyA/IGZhbHNlIDogY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAodmFsdWUgIT09ICdpbmRldGVybWluYXRlJykge1xuICAgICAgdGhpcy4jc2VsZWN0ZWRBbGxQcmV2aW91c1ZhbHVlID0gdGhpcy4jc2VsZWN0ZWRBbGw7XG4gICAgfVxuICB9O1xuXG4gIGdldCBzZWxlY3RlZEFsbCgpIHtcbiAgICByZXR1cm4gdGhpcy4jc2VsZWN0ZWRBbGw7XG4gIH1cblxuICAjc2VsZWN0ZWRBbGw6IGJvb2xlYW4gfCAnaW5kZXRlcm1pbmF0ZScgPSBmYWxzZTtcblxuICBASW5wdXQoKSBzb3J0ZXJWYWx1ZT86IElTb3J0ZXJWYWx1ZTtcblxuICBASW5wdXQoKVxuICBzZXQgY29sdW1uRmlsdGVyVGVtcGxhdGVzKHZhbHVlKSB7XG4gICAgdGhpcy4jY29sdW1uRmlsdGVyVGVtcGxhdGVzID0geyAuLi52YWx1ZSB9O1xuICB9O1xuXG4gIGdldCBjb2x1bW5GaWx0ZXJUZW1wbGF0ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuI2NvbHVtbkZpbHRlclRlbXBsYXRlcztcbiAgfTtcblxuICAjY29sdW1uRmlsdGVyVGVtcGxhdGVzPzogYW55ID0ge307XG5cbiAgQElucHV0KClcbiAgc2V0IHN1bW1hcnlSb3dUZW1wbGF0ZSh2YWx1ZSkge1xuICAgIHRoaXMuI3N1bW1hcnlSb3dUZW1wbGF0ZSA9IHZhbHVlO1xuICB9O1xuXG4gIGdldCBzdW1tYXJ5Um93VGVtcGxhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3N1bW1hcnlSb3dUZW1wbGF0ZTtcbiAgfTtcblxuICAjc3VtbWFyeVJvd1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gIC8vIHRvZG9cbiAgLy8gQElucHV0KCkgc29ydGluZ0ljb24/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvLyBASW5wdXQoKSBzb3J0aW5nSWNvbkFzY2VuZGluZz86IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG4gIC8vIEBJbnB1dCgpIHNvcnRpbmdJY29uRGVzY2VuZGluZz86IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcmVhZG9ubHkgaW5kZXRlcm1pbmF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgY29sdW1uRmlsdGVyU3RhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBzb3J0ZXJTdGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdEFsbENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRoZWFkOiB0aGlzLmNvbXBvbmVudCA9PT0gJ3RoZWFkJyxcbiAgICAgIHRmb290OiB0aGlzLmNvbXBvbmVudCA9PT0gJ3Rmb290J1xuICAgIH07XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbHVtbnM/LmZvckVhY2goKGNvbHVtbiwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGNvbHVtbktleSA9IHRoaXMuY29sdW1uS2V5KGNvbHVtbik7XG4gICAgICB0aGlzLmNvbHVtbkZpbHRlclN0YXRlW2NvbHVtbktleV0gPSB0aGlzLmNvbHVtbkZpbHRlclN0YXRlW2NvbHVtbktleV0gPz8gJyc7XG4gICAgfSk7XG4gIH1cblxuICB0YWJsZUhlYWRlckNlbGxQcm9wcyhjb2x1bW46IElDb2x1bW4gfCBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIGNvbHVtbiA9PT0gJ29iamVjdCcgJiYgY29sdW1uLl9wcm9wcykge1xuICAgICAgY29uc3QgeyBjb2xvciwgLi4ucHJvcHMgfSA9IHsgLi4uY29sdW1uLl9wcm9wcyB9O1xuICAgICAgcmV0dXJuIHByb3BzO1xuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH1cblxuICB0YWJsZUhlYWRlckNlbGxDb2xvcihjb2x1bW46IElDb2x1bW4gfCBzdHJpbmcpOiBDb2xvcnMge1xuICAgIGlmICh0eXBlb2YgY29sdW1uID09PSAnb2JqZWN0JyAmJiBjb2x1bW4uX3Byb3BzKSB7XG4gICAgICBjb25zdCB7IGNvbG9yIH0gPSB7IC4uLmNvbHVtbi5fcHJvcHMgfTtcbiAgICAgIHJldHVybiA8Q29sb3JzIHwgc3RyaW5nPmNvbG9yO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB0YWJsZUhlYWRlckNlbGxTdHlsZXMoY29sdW1uOiBJQ29sdW1uIHwgc3RyaW5nKSB7XG4gICAgY29uc3Qgc3R5bGUgPSB7IHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLCBvdmVyZmxvdzogJ2hpZGRlbicsIGN1cnNvcjogJycgfTtcbiAgICBpZiAoXG4gICAgICB0aGlzLmNvbHVtblNvcnRlciAmJlxuICAgICAgKHR5cGVvZiBjb2x1bW4gIT09ICdvYmplY3QnIHx8XG4gICAgICAgICh0eXBlb2YgY29sdW1uID09PSAnb2JqZWN0JyAmJiAodHlwZW9mIGNvbHVtbi5zb3J0ZXIgPT09ICd1bmRlZmluZWQnIHx8IGNvbHVtbi5zb3J0ZXIpKSlcbiAgICApIHtcbiAgICAgIHN0eWxlLmN1cnNvciA9ICdwb2ludGVyJztcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNvbHVtbiA9PT0gJ29iamVjdCcgJiYgY29sdW1uLl9zdHlsZSkge1xuICAgICAgcmV0dXJuIHsgLi4uc3R5bGUsIC4uLmNvbHVtbi5fc3R5bGUgfTtcbiAgICB9XG4gICAgcmV0dXJuIHN0eWxlO1xuICB9XG5cbiAgY29sdW1uS2V5KGNvbHVtbjogSUNvbHVtbiB8IHN0cmluZykge1xuICAgIHJldHVybiB0eXBlb2YgY29sdW1uID09PSAnb2JqZWN0JyA/IGNvbHVtbi5rZXkgOiBjb2x1bW47XG4gIH1cblxuICBnZXRDb2x1bW5Tb3J0ZXJTdGF0ZShjb2x1bW46IElDb2x1bW4gfCBzdHJpbmcpIHtcbiAgICBjb25zdCBjb2x1bW5LZXkgPSB0aGlzLmNvbHVtbktleShjb2x1bW4pO1xuICAgIGlmICh0aGlzLnNvcnRlclZhbHVlPy5jb2x1bW4gPT09IGNvbHVtbktleSkge1xuICAgICAgaWYgKHRoaXMuc29ydGVyVmFsdWUuc3RhdGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc29ydGVyVmFsdWUuc3RhdGU7XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBoYW5kbGVTb3J0Q2xpY2soY29sdW1uOiBJQ29sdW1uIHwgc3RyaW5nLCBpOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5jb2x1bW5Tb3J0ZXJFbmFibGVkKGNvbHVtbikpIHtcbiAgICAgIGNvbnN0IGNvbHVtbktleSA9IHRoaXMuY29sdW1uS2V5KGNvbHVtbik7XG4gICAgICB0aGlzLnNvcnRlclN0YXRlQ2hhbmdlLmVtaXQoeyBjb2x1bW5LZXksIGluZGV4OiBpIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbHVtbkZpbHRlckVuYWJsZWQoY29sdW1uOiBJQ29sdW1uIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBjb2x1bW4gIT09ICdvYmplY3QnID8gdHJ1ZSA6IHR5cGVvZiBjb2x1bW4uZmlsdGVyID09PSAndW5kZWZpbmVkJyA/IHRydWUgOiBjb2x1bW4uZmlsdGVyO1xuICB9XG5cbiAgY29sdW1uU29ydGVyRW5hYmxlZChjb2x1bW46IElDb2x1bW4gfCBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuY29sdW1uU29ydGVyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAodHlwZW9mIGNvbHVtbiAhPT0gJ29iamVjdCcpID8gdHJ1ZSA6IHR5cGVvZiBjb2x1bW4uc29ydGVyID09PSAndW5kZWZpbmVkJyA/IHRydWUgOiBjb2x1bW4uc29ydGVyO1xuICB9XG5cbiAgaGFuZGxlQ29sdW1uRmlsdGVyVmFsdWVDaGFuZ2UoJGV2ZW50OiB7IHZhbHVlOiBzdHJpbmcsIHR5cGU/OiBzdHJpbmcsIGNvbHVtbjogKElDb2x1bW4gfCBzdHJpbmcpIH0pIHtcbiAgICBjb25zdCB7IHZhbHVlLCB0eXBlOiBldmVudFR5cGUsIGNvbHVtbiB9ID0geyAuLi4kZXZlbnQgfTtcbiAgICBjb25zdCBjb2x1bW5LZXkgPSB0aGlzLmNvbHVtbktleShjb2x1bW4pO1xuICAgIGNvbnN0IGNvbHVtbkZpbHRlclZhbHVlID0gdmFsdWU7XG4gICAgY29uc3QgaXNMYXp5ID0gdHlwZW9mIHRoaXMuY29sdW1uRmlsdGVyID09PSAnb2JqZWN0JyAmJiB0aGlzLmNvbHVtbkZpbHRlci5sYXp5ID09PSB0cnVlO1xuICAgIGlmICgoKGlzTGF6eSAmJiBldmVudFR5cGUgPT09ICdpbnB1dCcpIHx8ICghaXNMYXp5ICYmIGV2ZW50VHlwZSA9PT0gJ2NoYW5nZScpKSAmJiBjb2x1bW5GaWx0ZXJWYWx1ZS5sZW5ndGggIT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb2x1bW5GaWx0ZXJTdGF0ZVt0aGlzLmNvbHVtbktleShjb2x1bW4pXSA9IGNvbHVtbkZpbHRlclZhbHVlO1xuICAgIHRoaXMuY29sdW1uRmlsdGVyU3RhdGVDaGFuZ2UuZW1pdCh7IGNvbHVtbjogY29sdW1uS2V5LCB2YWx1ZTogY29sdW1uRmlsdGVyVmFsdWUsIHR5cGU6IGV2ZW50VHlwZSB9KTtcbiAgfVxuXG4gIGhhbmRsZVNlbGVjdEFsbENoZWNrZWQoJGV2ZW50OiBFdmVudCkge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICgkZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQgPSAhdGhpcy4jc2VsZWN0ZWRBbGxQcmV2aW91c1ZhbHVlO1xuICAgIC8vICgkZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQgPSAhdGhpcy5zZWxlY3RlZEFsbDtcbiAgICBjb25zdCBzZWxlY3RBbGwgPSAoJGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkO1xuICAgIHRoaXMuc2VsZWN0QWxsQ2hhbmdlLmVtaXQoc2VsZWN0QWxsKTtcbiAgfVxuXG4gIGdldENvbHVtbkZpbHRlcihjb2x1bW46IElDb2x1bW4gfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gYGNvbHVtbkZpbHRlcl8ke3RoaXMuY29sdW1uS2V5KGNvbHVtbikgPz8gJ191bmRlZmluZWQnfWA7XG4gIH1cblxuICBnZXQgY29sdW1uRmlsdGVyRXZlbnQoKTogJ2NoYW5nZScgfCAnaW5wdXQnIHtcbiAgICByZXR1cm4gKHR5cGVvZiB0aGlzLmNvbHVtbkZpbHRlciA9PT0gJ29iamVjdCcgJiYgdGhpcy5jb2x1bW5GaWx0ZXIubGF6eSkgPyAnY2hhbmdlJyA6ICdpbnB1dCc7XG4gIH07XG5cbn1cbiIsIjxuZy10ZW1wbGF0ZSBbbmdJZl09XCJjb21wb25lbnQ9PT0ndGZvb3QnXCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdW1tYXJ5Um93VGVtcGxhdGVcIiAvPlxuPC9uZy10ZW1wbGF0ZT5cbjx0cj5cbiAgPHRoICpuZ0lmPVwic2VsZWN0YWJsZVwiPlxuICAgIDxpbnB1dFxuICAgICAgY0Zvcm1DaGVja0lucHV0XG4gICAgICAoY2hhbmdlKT1cImhhbmRsZVNlbGVjdEFsbENoZWNrZWQoJGV2ZW50KVwiXG4gICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZEFsbCA9PT0gdHJ1ZVwiXG4gICAgICBbaW5kZXRlcm1pbmF0ZV09XCJpbmRldGVybWluYXRlJCB8IGFzeW5jXCJcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICBbZGlzYWJsZWRdPVwiIXNlbGVjdEFsbFwiXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgID5cbiAgPC90aD5cbiAgPHRoXG4gICAgKGNsaWNrKT1cImhhbmRsZVNvcnRDbGljayhjb2x1bW4sIGkpXCJcbiAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGxldCBpID0gaW5kZXhcIlxuICAgIFtjSHRtbEF0dHJdPVwidGFibGVIZWFkZXJDZWxsUHJvcHMoY29sdW1uKVwiXG4gICAgW2NUYWJsZUNvbG9yXT1cInRhYmxlSGVhZGVyQ2VsbENvbG9yKGNvbHVtbilcIlxuICAgIFtuZ1N0eWxlXT1cInRhYmxlSGVhZGVyQ2VsbFN0eWxlcyhjb2x1bW4pXCJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJjb2x1bW5Tb3J0ZXIgJiYgY29sdW1uU29ydGVyRW5hYmxlZChjb2x1bW4pXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uU29ydGVySWNvblRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogZ2V0Q29sdW1uU29ydGVyU3RhdGUoY29sdW1uKSB9XCJcbiAgICAgIC8+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiZC1pbmxpbmVcIj57eyBjb2x1bW4gfCBjb2x1bW5MYWJlbCB9fTwvZGl2PlxuICA8L3RoPlxuPC90cj5cbjx0ciAqbmdJZj1cImNvbHVtbkZpbHRlclwiPlxuICA8dGggKm5nSWY9XCJzZWxlY3RhYmxlXCI+PC90aD5cbiAgPHRoICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICBbY0h0bWxBdHRyXT1cInRhYmxlSGVhZGVyQ2VsbFByb3BzKGNvbHVtbilcIlxuICAgICAgW2NUYWJsZUNvbG9yXT1cInRhYmxlSGVhZGVyQ2VsbENvbG9yKGNvbHVtbilcIlxuICAgICAgW25nU3R5bGVdPVwidGFibGVIZWFkZXJDZWxsU3R5bGVzKGNvbHVtbilcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW5GaWx0ZXJUZW1wbGF0ZXNbZ2V0Q29sdW1uRmlsdGVyKGNvbHVtbildID8/IGRlZmF1bHRDb2x1bW5GaWx0ZXI7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGNvbHVtbiwgaGVhZGVyOiB0aGlzfVwiXG4gICAgLz5cbiAgPC90aD5cbjwvdHI+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbHVtbkZpbHRlciBsZXQtY29sdW1uPlxuICA8Yy1zbWFydC10YWJsZS1jb2x1bW4tZmlsdGVyXG4gICAgKHZhbHVlQ2hhbmdlKT1cImhhbmRsZUNvbHVtbkZpbHRlclZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICpuZ0lmPVwiY29sdW1uRmlsdGVyRW5hYmxlZChjb2x1bW4pXCJcbiAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgW2RlbGF5XT1cIjMwMFwiXG4gICAgW29uRXZlbnRdPVwiY29sdW1uRmlsdGVyRXZlbnRcIlxuICAgIFt2YWx1ZV09XCJjb2x1bW5GaWx0ZXJTdGF0ZVtjb2x1bW5LZXkoY29sdW1uKV0gPz8gJydcIlxuICAgIGNGaWx0ZXJJbnB1dFxuICAgIHNpemluZz1cInNtXCJcbiAgLz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29sdW1uU29ydGVySWNvblRlbXBsYXRlIGxldC1jb2x1bW5Tb3J0ZXJTdGF0ZT5cbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY29sdW1uU29ydGVyU3RhdGVcIj5cbiAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2FzYydcIiBjbGFzcz1cImZsb2F0LWVuZCBteC0xXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic29ydGluZ0ljb25Bc2NlbmRpbmdUZW1wbGF0ZVwiIC8+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInZGVzYydcIiBjbGFzcz1cImZsb2F0LWVuZCBteC0xXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic29ydGluZ0ljb25EZXNjZW5kaW5nVGVtcGxhdGVcIiAvPlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiAqbmdTd2l0Y2hEZWZhdWx0IGNsYXNzPVwib3BhY2l0eS0yNSBmbG9hdC1lbmQgbXgtMVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvcnRpbmdJY29uVGVtcGxhdGVcIiAvPlxuICAgIDwvc3Bhbj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tdG9kbzogc29ydGluZ0ljb25DdXN0b20gVGVtcGxhdGVzLS0+XG48bmctdGVtcGxhdGUgI3NvcnRpbmdJY29uVGVtcGxhdGU+XG4gIDxzdmdcbiAgICBjbGFzcz1cImljb24gaWNvbi1jdXN0b20tc2l6ZVwiXG4gICAgcm9sZT1cImltZ1wiXG4gICAgdmlld0JveD1cIjAgMCA1MTIgNTEyXCJcbiAgICB3aWR0aD1cIjE4XCJcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgPlxuICAgIDxwb2x5Z29uXG4gICAgICBjbGFzcz1cImNpLXByaW1hcnlcIlxuICAgICAgZmlsbD1cInZhcigtLWNpLXByaW1hcnktY29sb3IsIGN1cnJlbnRDb2xvcilcIlxuICAgICAgcG9pbnRzPVwiMzg0IDQzMy4zNzMgMzg0IDE2MCAzNTIgMTYwIDM1MiA0MzQuNTEgMjgyLjE3NyAzNjQuNjg3IDI1OS41NSAzODcuMzEzIDM2Ny40MzIgNDk1LjE5NiA0NzUuMzEzIDM4Ny4zMTMgNDUyLjY4NyAzNjQuNjg3IDM4NCA0MzMuMzczXCJcbiAgICA+PC9wb2x5Z29uPlxuICAgIDxwb2x5Z29uXG4gICAgICBjbGFzcz1cImNpLXByaW1hcnlcIlxuICAgICAgZmlsbD1cInZhcigtLWNpLXByaW1hcnktY29sb3IsIGN1cnJlbnRDb2xvcilcIlxuICAgICAgcG9pbnRzPVwiMTU5LjQzMiAxNy4zNzIgNTEuNTUgMTI1LjI1NSA3NC4xNzcgMTQ3Ljg4MiAxNDQgNzguMDU5IDE0NCAzNTIgMTc2IDM1MiAxNzYgNzkuMTk1IDI0NC42ODcgMTQ3Ljg4MiAyNjcuMzEzIDEyNS4yNTUgMTU5LjQzMiAxNy4zNzJcIlxuICAgID48L3BvbHlnb24+XG4gIDwvc3ZnPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzb3J0aW5nSWNvbkFzY2VuZGluZ1RlbXBsYXRlPlxuICA8c3ZnXG4gICAgY2xhc3M9XCJpY29uIGljb24tY3VzdG9tLXNpemVcIlxuICAgIHJvbGU9XCJpbWdcIlxuICAgIHZpZXdCb3g9XCIwIDAgNTEyIDUxMlwiXG4gICAgd2lkdGg9XCIxOFwiXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gID5cbiAgICA8cG9seWdvblxuICAgICAgY2xhc3M9XCJjaS1wcmltYXJ5XCJcbiAgICAgIGZpbGw9XCJ2YXIoLS1jaS1wcmltYXJ5LWNvbG9yLCBjdXJyZW50Q29sb3IpXCJcbiAgICAgIHBvaW50cz1cIjM5MC42MjQgMTUwLjYyNSAyNTYgMTYgMTIxLjM3NiAxNTAuNjI1IDE0NC4wMDQgMTczLjI1MiAyNDAuMDAxIDc3LjI1NCAyNDAuMDAxIDQ5NS4yMzYgMjcyLjAwMSA0OTUuMjM2IDI3Mi4wMDEgNzcuMjU3IDM2Ny45OTYgMTczLjI1MiAzOTAuNjI0IDE1MC42MjVcIlxuICAgID48L3BvbHlnb24+XG4gIDwvc3ZnPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzb3J0aW5nSWNvbkRlc2NlbmRpbmdUZW1wbGF0ZT5cbiAgPHN2Z1xuICAgIGNsYXNzPVwiaWNvbiBpY29uLWN1c3RvbS1zaXplXCJcbiAgICByb2xlPVwiaW1nXCJcbiAgICB2aWV3Qm94PVwiMCAwIDUxMiA1MTJcIlxuICAgIHdpZHRoPVwiMThcIlxuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICA+XG4gICAgPHBvbHlnb25cbiAgICAgIGNsYXNzPVwiY2ktcHJpbWFyeVwiXG4gICAgICBmaWxsPVwidmFyKC0tY2ktcHJpbWFyeS1jb2xvciwgY3VycmVudENvbG9yKVwiXG4gICAgICBwb2ludHM9XCIzNjcuOTk3IDMzOC43NSAyNzEuOTk5IDQzNC43NDcgMjcxLjk5OSAxNy41MDMgMjM5Ljk5OSAxNy41MDMgMjM5Ljk5OSA0MzQuNzQ1IDE0NC4wMDMgMzM4Ljc1IDEyMS4zNzYgMzYxLjM3NyAyNTYgNDk2IDM5MC42MjQgMzYxLjM3NyAzNjcuOTk3IDMzOC43NVwiXG4gICAgPjwvcG9seWdvbj5cbiAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdGFibGUtaGVhZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NtYXJ0LXRhYmxlL3NtYXJ0LXRhYmxlLWhlYWQvc21hcnQtdGFibGUtaGVhZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NtYXJ0LXRhYmxlL3NtYXJ0LXRhYmxlLWhlYWQvc21hcnQtdGFibGUtaGVhZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUNOLE1BQU0sRUFHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsU0FBUyxFQUNULE9BQU8sRUFDUCxPQUFPLEVBQ1AsSUFBSSxFQUNKLE9BQU8sRUFDUCxRQUFRLEVBQ1IsWUFBWSxFQUNaLGVBQWUsRUFDZixnQkFBZ0IsRUFDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBV3ZDLE9BQU8sRUFDTCxVQUFVLEVBQ1YsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDekIsTUFBTSxzQkFBc0IsQ0FBQztBQUc5QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxr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QURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgc2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgV3JpdGFibGVTaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBc3luY1BpcGUsXG4gIE5nQ2xhc3MsXG4gIE5nRm9yT2YsXG4gIE5nSWYsXG4gIE5nU3R5bGUsXG4gIE5nU3dpdGNoLFxuICBOZ1N3aXRjaENhc2UsXG4gIE5nU3dpdGNoRGVmYXVsdCxcbiAgTmdUZW1wbGF0ZU91dGxldFxufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBJQ29sdW1uLFxuICBJQ29sdW1uRmlsdGVyLFxuICBJQ29sdW1uRmlsdGVyVmFsdWUsXG4gIElHcm91cCxcbiAgSVNvcnRlcixcbiAgSVNvcnRlclZhbHVlLFxuICBTb3J0T3JkZXJcbn0gZnJvbSAnLi4vc21hcnQtdGFibGUudHlwZSc7XG5pbXBvcnQge1xuICBnZXRDb2x1bW5zLFxuICBnZXRUYWJsZUhlYWRlckNlbGxDbGFzcyxcbiAgZ2V0VGFibGVIZWFkZXJDZWxsUHJvcHMsXG4gIGdldFRhYmxlSGVhZGVyQ2VsbFN0eWxlc1xufSBmcm9tICcuLi9zbWFydC10YWJsZS51dGlscyc7XG5cbmltcG9ydCB7IENvbG9ycyB9IGZyb20gJy4uLy4uL2NvcmV1aS50eXBlcyc7XG5pbXBvcnQgeyBIdG1sQXR0cmlidXRlc0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBUYWJsZUNvbG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdGFibGUnO1xuaW1wb3J0IHsgRm9ybUNoZWNrSW5wdXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9mb3JtJztcbmltcG9ydCB7IFNtYXJ0VGFibGVDb2x1bW5GaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9zbWFydC10YWJsZS1jb2x1bW4tZmlsdGVyL3NtYXJ0LXRhYmxlLWNvbHVtbi1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbHRlcklucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vc21hcnQtdGFibGUtZmlsdGVyL2ZpbHRlci1pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU21hcnRUYWJsZUNvbHVtbkxhYmVsUGlwZSB9IGZyb20gJy4vc21hcnQtdGFibGUtY29sdW1uLWxhYmVsLnBpcGUnO1xuXG4vLyB0b2RvIC0gYWRkIHN1cHBvcnQgZm9yIGNvbHVtbiBncm91cHNcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1zbWFydC10YWJsZS1oZWFkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LXRhYmxlLWhlYWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zbWFydC10YWJsZS1oZWFkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRmlsdGVySW5wdXREaXJlY3RpdmUsXG4gICAgRm9ybUNoZWNrSW5wdXREaXJlY3RpdmUsXG4gICAgSHRtbEF0dHJpYnV0ZXNEaXJlY3RpdmUsXG4gICAgU21hcnRUYWJsZUNvbHVtbkZpbHRlckNvbXBvbmVudCxcbiAgICBUYWJsZUNvbG9yRGlyZWN0aXZlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBOZ0Zvck9mLFxuICAgIE5nSWYsXG4gICAgTmdTdHlsZSxcbiAgICBOZ1N3aXRjaCxcbiAgICBOZ1N3aXRjaENhc2UsXG4gICAgTmdTd2l0Y2hEZWZhdWx0LFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgU21hcnRUYWJsZUNvbHVtbkxhYmVsUGlwZSxcbiAgICBOZ0NsYXNzXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU21hcnRUYWJsZUhlYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGdldFRhYmxlSGVhZGVyQ2VsbFN0eWxlcyA9IGdldFRhYmxlSGVhZGVyQ2VsbFN0eWxlcztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGdldFRhYmxlSGVhZGVyQ2VsbFByb3BzID0gZ2V0VGFibGVIZWFkZXJDZWxsUHJvcHM7XG4gIHByb3RlY3RlZCByZWFkb25seSBnZXRUYWJsZUhlYWRlckNlbGxDbGFzcyA9IGdldFRhYmxlSGVhZGVyQ2VsbENsYXNzO1xuXG4gIEBJbnB1dCgpIGNvbHVtbkZpbHRlcj86IGJvb2xlYW4gfCBJQ29sdW1uRmlsdGVyO1xuICBASW5wdXQoKSBjb2x1bW5GaWx0ZXJTdGF0ZTogSUNvbHVtbkZpbHRlclZhbHVlID0ge307XG4gIEBJbnB1dCgpIGNvbHVtblNvcnRlcj86IGJvb2xlYW4gfCBJU29ydGVyID0gdHJ1ZTtcbiAgQElucHV0KCkgY29tcG9uZW50Pzogc3RyaW5nID0gJ3RoZWFkJztcblxuICBASW5wdXQoKVxuICBzZXQgY29sdW1ucyh2YWx1ZTogKElDb2x1bW4gfCBJR3JvdXApW10gfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBjb2x1bW5zID0gdmFsdWUgPyBnZXRDb2x1bW5zKHZhbHVlKSA6IFtdO1xuICAgIHRoaXMuI2NvbHVtbnMuc2V0KGNvbHVtbnMpO1xuICB9XG5cbiAgZ2V0IGNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuI2NvbHVtbnMoKTtcbiAgfVxuXG4gICNjb2x1bW5zOiBXcml0YWJsZVNpZ25hbDwoSUNvbHVtbiB8IElHcm91cClbXSB8IHVuZGVmaW5lZD4gPSBzaWduYWwodW5kZWZpbmVkKTtcblxuICBASW5wdXQoKSBzZXQgY29sdW1uR3JvdXBzKHZhbHVlOiBJR3JvdXBbXVtdKSB7XG4gICAgdGhpcy5jb2x1bW5Hcm91cHMkLnNldCh2YWx1ZSk7XG4gIH1cblxuICBjb2x1bW5Hcm91cHMkOiBXcml0YWJsZVNpZ25hbDxJR3JvdXBbXVtdPiA9IHNpZ25hbChbXSk7XG5cbiAgQElucHV0KCkgc2VsZWN0YWJsZT86IGJvb2xlYW47XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNlbGVjdEFsbCA9IHRydWU7XG5cbiAgI3NlbGVjdGVkQWxsUHJldmlvdXNWYWx1ZT86IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgc2V0IHNlbGVjdGVkQWxsKHZhbHVlOiBib29sZWFuIHwgJ2luZGV0ZXJtaW5hdGUnKSB7XG4gICAgdGhpcy5pbmRldGVybWluYXRlJC5uZXh0KHZhbHVlID09PSAnaW5kZXRlcm1pbmF0ZScpO1xuXG4gICAgdGhpcy4jc2VsZWN0ZWRBbGwgPSB2YWx1ZSA9PT0gJ2luZGV0ZXJtaW5hdGUnID8gZmFsc2UgOiBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmICh2YWx1ZSAhPT0gJ2luZGV0ZXJtaW5hdGUnKSB7XG4gICAgICB0aGlzLiNzZWxlY3RlZEFsbFByZXZpb3VzVmFsdWUgPSB0aGlzLiNzZWxlY3RlZEFsbDtcbiAgICB9XG4gIH07XG5cbiAgZ2V0IHNlbGVjdGVkQWxsKCkge1xuICAgIHJldHVybiB0aGlzLiNzZWxlY3RlZEFsbDtcbiAgfVxuXG4gICNzZWxlY3RlZEFsbDogYm9vbGVhbiB8ICdpbmRldGVybWluYXRlJyA9IGZhbHNlO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93R3JvdXBzID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc29ydGVyVmFsdWU/OiBJU29ydGVyVmFsdWU7XG5cbiAgQElucHV0KClcbiAgc2V0IGNvbHVtbkZpbHRlclRlbXBsYXRlcyh2YWx1ZSkge1xuICAgIHRoaXMuI2NvbHVtbkZpbHRlclRlbXBsYXRlcyA9IHsgLi4udmFsdWUgfTtcbiAgfTtcblxuICBnZXQgY29sdW1uRmlsdGVyVGVtcGxhdGVzKCkge1xuICAgIHJldHVybiB0aGlzLiNjb2x1bW5GaWx0ZXJUZW1wbGF0ZXM7XG4gIH07XG5cbiAgI2NvbHVtbkZpbHRlclRlbXBsYXRlcz86IGFueSA9IHt9O1xuXG4gIEBJbnB1dCgpXG4gIHNldCBzdW1tYXJ5Um93VGVtcGxhdGUodmFsdWUpIHtcbiAgICB0aGlzLiNzdW1tYXJ5Um93VGVtcGxhdGUgPSB2YWx1ZTtcbiAgfTtcblxuICBnZXQgc3VtbWFyeVJvd1RlbXBsYXRlKCkge1xuICAgIHJldHVybiB0aGlzLiNzdW1tYXJ5Um93VGVtcGxhdGU7XG4gIH07XG5cbiAgI3N1bW1hcnlSb3dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcblxuICAvLyB0b2RvXG4gIC8vIEBJbnB1dCgpIHNvcnRpbmdJY29uPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgLy8gQElucHV0KCkgc29ydGluZ0ljb25Bc2NlbmRpbmc/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvLyBASW5wdXQoKSBzb3J0aW5nSWNvbkRlc2NlbmRpbmc/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHJlYWRvbmx5IGluZGV0ZXJtaW5hdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNvbHVtbkZpbHRlclN0YXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgc29ydGVyU3RhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3RBbGxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0aGVhZDogdGhpcy5jb21wb25lbnQgPT09ICd0aGVhZCcsXG4gICAgICB0Zm9vdDogdGhpcy5jb21wb25lbnQgPT09ICd0Zm9vdCdcbiAgICB9O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5zPy5mb3JFYWNoKChjb2x1bW4sIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBjb2x1bW5LZXkgPSB0aGlzLmNvbHVtbktleShjb2x1bW4pO1xuICAgICAgdGhpcy5jb2x1bW5GaWx0ZXJTdGF0ZVtjb2x1bW5LZXldID0gdGhpcy5jb2x1bW5GaWx0ZXJTdGF0ZVtjb2x1bW5LZXldID8/ICcnO1xuICAgIH0pO1xuICB9XG5cbiAgdGFibGVIZWFkZXJDZWxsQ29sb3IoY29sdW1uOiBJQ29sdW1uIHwgc3RyaW5nKTogQ29sb3JzIHtcbiAgICBpZiAodHlwZW9mIGNvbHVtbiA9PT0gJ29iamVjdCcgJiYgY29sdW1uLl9wcm9wcykge1xuICAgICAgY29uc3QgeyBjb2xvciB9ID0geyAuLi5jb2x1bW4uX3Byb3BzIH07XG4gICAgICByZXR1cm4gPENvbG9ycyB8IHN0cmluZz5jb2xvcjtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29sdW1uS2V5KGNvbHVtbjogSUNvbHVtbiB8IHN0cmluZykge1xuICAgIHJldHVybiB0eXBlb2YgY29sdW1uID09PSAnb2JqZWN0JyA/IGNvbHVtbi5rZXkgOiBjb2x1bW47XG4gIH1cblxuICBnZXRDb2x1bW5Tb3J0ZXJTdGF0ZShjb2x1bW46IElDb2x1bW4gfCBzdHJpbmcpIHtcbiAgICBjb25zdCBjb2x1bW5LZXkgPSB0aGlzLmNvbHVtbktleShjb2x1bW4pO1xuICAgIGlmICh0aGlzLnNvcnRlclZhbHVlPy5jb2x1bW4gPT09IGNvbHVtbktleSkge1xuICAgICAgaWYgKHRoaXMuc29ydGVyVmFsdWUuc3RhdGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc29ydGVyVmFsdWUuc3RhdGU7XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBoYW5kbGVTb3J0Q2xpY2soY29sdW1uOiBJQ29sdW1uIHwgc3RyaW5nLCBpOiBudW1iZXIsIG9yZGVyPzogU29ydE9yZGVyKSB7XG4gICAgaWYgKHRoaXMuY29sdW1uU29ydGVyRW5hYmxlZChjb2x1bW4pKSB7XG4gICAgICBjb25zdCBjb2x1bW5LZXkgPSB0aGlzLmNvbHVtbktleShjb2x1bW4pO1xuICAgICAgdGhpcy5zb3J0ZXJTdGF0ZUNoYW5nZS5lbWl0KHsgY29sdW1uS2V5LCBpbmRleDogaSwgb3JkZXIgfSk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlU29ydEtleURvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50LCBjb2x1bW46IElDb2x1bW4gfCBzdHJpbmcsIGk6IG51bWJlcikge1xuICAgIGNvbnN0IGV2ZW50Q29kZSA9ICRldmVudC5jb2RlO1xuICAgIGlmIChbJ0VudGVyJywgJ1NwYWNlJywgJ0Fycm93VXAnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoZXZlbnRDb2RlKSkge1xuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCBvcmRlcjogU29ydE9yZGVyID0gZXZlbnRDb2RlID09PSAnQXJyb3dVcCcgPyAnYXNjJyA6IGV2ZW50Q29kZSA9PT0gJ0Fycm93RG93bicgPyAnZGVzYycgOiB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmhhbmRsZVNvcnRDbGljayhjb2x1bW4sIGksIG9yZGVyKTtcbiAgICB9XG4gIH1cblxuICBjb2x1bW5GaWx0ZXJFbmFibGVkKGNvbHVtbjogSUNvbHVtbiB8IHN0cmluZykge1xuICAgIHJldHVybiB0eXBlb2YgY29sdW1uICE9PSAnb2JqZWN0JyA/IHRydWUgOiB0eXBlb2YgY29sdW1uLmZpbHRlciA9PT0gJ3VuZGVmaW5lZCcgPyB0cnVlIDogY29sdW1uLmZpbHRlcjtcbiAgfVxuXG4gIGNvbHVtblNvcnRlckVuYWJsZWQoY29sdW1uOiBJQ29sdW1uIHwgc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmNvbHVtblNvcnRlcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gKHR5cGVvZiBjb2x1bW4gIT09ICdvYmplY3QnKSA/IHRydWUgOiB0eXBlb2YgY29sdW1uLnNvcnRlciA9PT0gJ3VuZGVmaW5lZCcgPyB0cnVlIDogY29sdW1uLnNvcnRlcjtcbiAgfVxuXG4gIGhhbmRsZUNvbHVtbkZpbHRlclZhbHVlQ2hhbmdlKCRldmVudDogeyB2YWx1ZTogc3RyaW5nLCB0eXBlPzogc3RyaW5nLCBjb2x1bW46IChJQ29sdW1uIHwgc3RyaW5nKSB9KSB7XG4gICAgY29uc3QgeyB2YWx1ZSwgdHlwZTogZXZlbnRUeXBlLCBjb2x1bW4gfSA9IHsgLi4uJGV2ZW50IH07XG4gICAgY29uc3QgY29sdW1uS2V5ID0gdGhpcy5jb2x1bW5LZXkoY29sdW1uKTtcbiAgICBjb25zdCBjb2x1bW5GaWx0ZXJWYWx1ZSA9IHZhbHVlO1xuICAgIGNvbnN0IGlzTGF6eSA9IHR5cGVvZiB0aGlzLmNvbHVtbkZpbHRlciA9PT0gJ29iamVjdCcgJiYgdGhpcy5jb2x1bW5GaWx0ZXIubGF6eSA9PT0gdHJ1ZTtcbiAgICBpZiAoKChpc0xhenkgJiYgZXZlbnRUeXBlID09PSAnaW5wdXQnKSB8fCAoIWlzTGF6eSAmJiBldmVudFR5cGUgPT09ICdjaGFuZ2UnKSkgJiYgY29sdW1uRmlsdGVyVmFsdWUubGVuZ3RoICE9PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY29sdW1uRmlsdGVyU3RhdGVbdGhpcy5jb2x1bW5LZXkoY29sdW1uKV0gPSBjb2x1bW5GaWx0ZXJWYWx1ZTtcbiAgICB0aGlzLmNvbHVtbkZpbHRlclN0YXRlQ2hhbmdlLmVtaXQoeyBjb2x1bW46IGNvbHVtbktleSwgdmFsdWU6IGNvbHVtbkZpbHRlclZhbHVlLCB0eXBlOiBldmVudFR5cGUgfSk7XG4gIH1cblxuICBoYW5kbGVTZWxlY3RBbGxDaGVja2VkKCRldmVudDogRXZlbnQpIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAoJGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkID0gIXRoaXMuI3NlbGVjdGVkQWxsUHJldmlvdXNWYWx1ZTtcbiAgICAvLyAoJGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkID0gIXRoaXMuc2VsZWN0ZWRBbGw7XG4gICAgY29uc3Qgc2VsZWN0QWxsID0gKCRldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZDtcbiAgICB0aGlzLnNlbGVjdEFsbENoYW5nZS5lbWl0KHNlbGVjdEFsbCk7XG4gIH1cblxuICBnZXRDb2x1bW5GaWx0ZXIoY29sdW1uOiBJQ29sdW1uIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIGBjb2x1bW5GaWx0ZXJfJHt0aGlzLmNvbHVtbktleShjb2x1bW4pID8/ICdfdW5kZWZpbmVkJ31gO1xuICB9XG5cbiAgZ2V0IGNvbHVtbkZpbHRlckV2ZW50KCk6ICdjaGFuZ2UnIHwgJ2lucHV0JyB7XG4gICAgcmV0dXJuICh0eXBlb2YgdGhpcy5jb2x1bW5GaWx0ZXIgPT09ICdvYmplY3QnICYmIHRoaXMuY29sdW1uRmlsdGVyLmxhenkpID8gJ2NoYW5nZScgOiAnaW5wdXQnO1xuICB9O1xuXG4gIGdldEFyaWFTb3J0KGNvbHVtbjogSUNvbHVtbiB8IHN0cmluZykge1xuICAgIGNvbnN0IHNvcnQgPSB0aGlzLmdldENvbHVtblNvcnRlclN0YXRlKGNvbHVtbik7XG4gICAgcmV0dXJuIHNvcnQgPT09ICdhc2MnID8gJ2FzY2VuZGluZycgOiBzb3J0ID09PSAnZGVzYycgPyAnZGVzY2VuZGluZycgOiBudWxsO1xuICB9XG5cbn1cbiIsIjxuZy10ZW1wbGF0ZSBbbmdJZl09XCJjb21wb25lbnQ9PT0ndGZvb3QnXCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdW1tYXJ5Um93VGVtcGxhdGVcIiAvPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInNob3dHcm91cHNcIj5cbiAgPHRyICpuZ0Zvcj1cImxldCByb3cgb2YgY29sdW1uR3JvdXBzJCgpIGxldCBpID0gaW5kZXhcIj5cbiAgICA8dGggKm5nSWY9XCJzZWxlY3RhYmxlXCI+PC90aD5cbiAgICA8dGggKm5nRm9yPVwibGV0IGNlbGwgb2Ygcm93OyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgW2NvbFNwYW5dPVwiY2VsbC5jb2xzcGFuID8/IDFcIlxuICAgICAgICBbY0h0bWxBdHRyXT1cImdldFRhYmxlSGVhZGVyQ2VsbFByb3BzKGNlbGwpXCJcbiAgICAgICAgW2NUYWJsZUNvbG9yXT1cInRhYmxlSGVhZGVyQ2VsbENvbG9yKGNlbGwpXCJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0VGFibGVIZWFkZXJDZWxsU3R5bGVzKGNlbGwsIGNvbHVtblNvcnRlcilcIlxuICAgID5cbiAgICAgIHt7Y2VsbC5sYWJlbH19XG4gICAgPC90aD5cbiAgPC90cj5cbjwvbmctdGVtcGxhdGU+XG5cbjx0cj5cbiAgPHRoICpuZ0lmPVwic2VsZWN0YWJsZVwiPlxuICAgIDxpbnB1dFxuICAgICAgY0Zvcm1DaGVja0lucHV0XG4gICAgICAoY2hhbmdlKT1cImhhbmRsZVNlbGVjdEFsbENoZWNrZWQoJGV2ZW50KVwiXG4gICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZEFsbCA9PT0gdHJ1ZVwiXG4gICAgICBbaW5kZXRlcm1pbmF0ZV09XCJpbmRldGVybWluYXRlJCB8IGFzeW5jXCJcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICBbZGlzYWJsZWRdPVwiIXNlbGVjdEFsbFwiXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgID5cbiAgPC90aD5cbiAgPHRoXG4gICAgKGNsaWNrKT1cImhhbmRsZVNvcnRDbGljayhjb2x1bW4sIGkpXCJcbiAgICAoa2V5ZG93bik9XCJoYW5kbGVTb3J0S2V5RG93bigkZXZlbnQsIGNvbHVtbiwgaSlcIlxuICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgW2F0dHIuYXJpYS1zb3J0XT1cImdldEFyaWFTb3J0KGNvbHVtbilcIlxuICAgIFtjSHRtbEF0dHJdPVwiZ2V0VGFibGVIZWFkZXJDZWxsUHJvcHMoY29sdW1uKVwiXG4gICAgW2NUYWJsZUNvbG9yXT1cInRhYmxlSGVhZGVyQ2VsbENvbG9yKGNvbHVtbilcIlxuICAgIFtuZ1N0eWxlXT1cImdldFRhYmxlSGVhZGVyQ2VsbFN0eWxlcyhjb2x1bW4sIGNvbHVtblNvcnRlcilcIlxuICAgIFtuZ0NsYXNzXT1cImdldFRhYmxlSGVhZGVyQ2VsbENsYXNzKGNvbHVtbilcIlxuICAgIFt0YWJpbmRleF09XCJjb2x1bW5Tb3J0ZXIgJiYgY29sdW1uU29ydGVyRW5hYmxlZChjb2x1bW4pID8gMCA6IC0xXCJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJjb2x1bW5Tb3J0ZXIgJiYgY29sdW1uU29ydGVyRW5hYmxlZChjb2x1bW4pXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uU29ydGVySWNvblRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogZ2V0Q29sdW1uU29ydGVyU3RhdGUoY29sdW1uKSB9XCJcbiAgICAgIC8+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiZC1pbmxpbmVcIj57eyBjb2x1bW4gfCBjb2x1bW5MYWJlbCB9fTwvZGl2PlxuICA8L3RoPlxuPC90cj5cbjx0ciAqbmdJZj1cImNvbHVtbkZpbHRlclwiPlxuICA8dGggKm5nSWY9XCJzZWxlY3RhYmxlXCI+PC90aD5cbiAgPHRoICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICBbY0h0bWxBdHRyXT1cImdldFRhYmxlSGVhZGVyQ2VsbFByb3BzKGNvbHVtbilcIlxuICAgICAgW2NUYWJsZUNvbG9yXT1cInRhYmxlSGVhZGVyQ2VsbENvbG9yKGNvbHVtbilcIlxuICAgICAgW25nU3R5bGVdPVwiZ2V0VGFibGVIZWFkZXJDZWxsU3R5bGVzKGNvbHVtbiwgY29sdW1uU29ydGVyKVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbkZpbHRlclRlbXBsYXRlc1tnZXRDb2x1bW5GaWx0ZXIoY29sdW1uKV0gPz8gZGVmYXVsdENvbHVtbkZpbHRlcjsgY29udGV4dDogeyRpbXBsaWNpdDogY29sdW1uLCBoZWFkZXI6IHRoaXN9XCJcbiAgICAvPlxuICA8L3RoPlxuPC90cj5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29sdW1uRmlsdGVyIGxldC1jb2x1bW4+XG4gIDxjLXNtYXJ0LXRhYmxlLWNvbHVtbi1maWx0ZXJcbiAgICAodmFsdWVDaGFuZ2UpPVwiaGFuZGxlQ29sdW1uRmlsdGVyVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKm5nSWY9XCJjb2x1bW5GaWx0ZXJFbmFibGVkKGNvbHVtbilcIlxuICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICBbZGVsYXldPVwiMzAwXCJcbiAgICBbb25FdmVudF09XCJjb2x1bW5GaWx0ZXJFdmVudFwiXG4gICAgW3ZhbHVlXT1cImNvbHVtbkZpbHRlclN0YXRlW2NvbHVtbktleShjb2x1bW4pXSA/PyAnJ1wiXG4gICAgY0ZpbHRlcklucHV0XG4gICAgc2l6aW5nPVwic21cIlxuICAvPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb2x1bW5Tb3J0ZXJJY29uVGVtcGxhdGUgbGV0LWNvbHVtblNvcnRlclN0YXRlPlxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb2x1bW5Tb3J0ZXJTdGF0ZVwiPlxuICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInYXNjJ1wiIGNsYXNzPVwiZmxvYXQtZW5kIG14LTFcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb3J0aW5nSWNvbkFzY2VuZGluZ1RlbXBsYXRlXCIgLz5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidkZXNjJ1wiIGNsYXNzPVwiZmxvYXQtZW5kIG14LTFcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb3J0aW5nSWNvbkRlc2NlbmRpbmdUZW1wbGF0ZVwiIC8+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuICpuZ1N3aXRjaERlZmF1bHQgY2xhc3M9XCJvcGFjaXR5LTI1IGZsb2F0LWVuZCBteC0xXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic29ydGluZ0ljb25UZW1wbGF0ZVwiIC8+XG4gICAgPC9zcGFuPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS10b2RvOiBzb3J0aW5nSWNvbkN1c3RvbSBUZW1wbGF0ZXMtLT5cbjxuZy10ZW1wbGF0ZSAjc29ydGluZ0ljb25UZW1wbGF0ZT5cbiAgPHN2Z1xuICAgIGNsYXNzPVwiaWNvbiBpY29uLWN1c3RvbS1zaXplXCJcbiAgICByb2xlPVwiaW1nXCJcbiAgICB2aWV3Qm94PVwiMCAwIDUxMiA1MTJcIlxuICAgIHdpZHRoPVwiMThcIlxuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICA+XG4gICAgPHBvbHlnb25cbiAgICAgIGNsYXNzPVwiY2ktcHJpbWFyeVwiXG4gICAgICBmaWxsPVwidmFyKC0tY2ktcHJpbWFyeS1jb2xvciwgY3VycmVudENvbG9yKVwiXG4gICAgICBwb2ludHM9XCIzODQgNDMzLjM3MyAzODQgMTYwIDM1MiAxNjAgMzUyIDQzNC41MSAyODIuMTc3IDM2NC42ODcgMjU5LjU1IDM4Ny4zMTMgMzY3LjQzMiA0OTUuMTk2IDQ3NS4zMTMgMzg3LjMxMyA0NTIuNjg3IDM2NC42ODcgMzg0IDQzMy4zNzNcIlxuICAgID48L3BvbHlnb24+XG4gICAgPHBvbHlnb25cbiAgICAgIGNsYXNzPVwiY2ktcHJpbWFyeVwiXG4gICAgICBmaWxsPVwidmFyKC0tY2ktcHJpbWFyeS1jb2xvciwgY3VycmVudENvbG9yKVwiXG4gICAgICBwb2ludHM9XCIxNTkuNDMyIDE3LjM3MiA1MS41NSAxMjUuMjU1IDc0LjE3NyAxNDcuODgyIDE0NCA3OC4wNTkgMTQ0IDM1MiAxNzYgMzUyIDE3NiA3OS4xOTUgMjQ0LjY4NyAxNDcuODgyIDI2Ny4zMTMgMTI1LjI1NSAxNTkuNDMyIDE3LjM3MlwiXG4gICAgPjwvcG9seWdvbj5cbiAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NvcnRpbmdJY29uQXNjZW5kaW5nVGVtcGxhdGU+XG4gIDxzdmdcbiAgICBjbGFzcz1cImljb24gaWNvbi1jdXN0b20tc2l6ZVwiXG4gICAgcm9sZT1cImltZ1wiXG4gICAgdmlld0JveD1cIjAgMCA1MTIgNTEyXCJcbiAgICB3aWR0aD1cIjE4XCJcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgPlxuICAgIDxwb2x5Z29uXG4gICAgICBjbGFzcz1cImNpLXByaW1hcnlcIlxuICAgICAgZmlsbD1cInZhcigtLWNpLXByaW1hcnktY29sb3IsIGN1cnJlbnRDb2xvcilcIlxuICAgICAgcG9pbnRzPVwiMzkwLjYyNCAxNTAuNjI1IDI1NiAxNiAxMjEuMzc2IDE1MC42MjUgMTQ0LjAwNCAxNzMuMjUyIDI0MC4wMDEgNzcuMjU0IDI0MC4wMDEgNDk1LjIzNiAyNzIuMDAxIDQ5NS4yMzYgMjcyLjAwMSA3Ny4yNTcgMzY3Ljk5NiAxNzMuMjUyIDM5MC42MjQgMTUwLjYyNVwiXG4gICAgPjwvcG9seWdvbj5cbiAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NvcnRpbmdJY29uRGVzY2VuZGluZ1RlbXBsYXRlPlxuICA8c3ZnXG4gICAgY2xhc3M9XCJpY29uIGljb24tY3VzdG9tLXNpemVcIlxuICAgIHJvbGU9XCJpbWdcIlxuICAgIHZpZXdCb3g9XCIwIDAgNTEyIDUxMlwiXG4gICAgd2lkdGg9XCIxOFwiXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gID5cbiAgICA8cG9seWdvblxuICAgICAgY2xhc3M9XCJjaS1wcmltYXJ5XCJcbiAgICAgIGZpbGw9XCJ2YXIoLS1jaS1wcmltYXJ5LWNvbG9yLCBjdXJyZW50Q29sb3IpXCJcbiAgICAgIHBvaW50cz1cIjM2Ny45OTcgMzM4Ljc1IDI3MS45OTkgNDM0Ljc0NyAyNzEuOTk5IDE3LjUwMyAyMzkuOTk5IDE3LjUwMyAyMzkuOTk5IDQzNC43NDUgMTQ0LjAwMyAzMzguNzUgMTIxLjM3NiAzNjEuMzc3IDI1NiA0OTYgMzkwLjYyNCAzNjEuMzc3IDM2Ny45OTcgMzM4Ljc1XCJcbiAgICA+PC9wb2x5Z29uPlxuICA8L3N2Zz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -26,10 +26,10 @@ export class SmartTableItemsPerPageSelectorComponent {
|
|
|
26
26
|
row: true
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SmartTableItemsPerPageSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: SmartTableItemsPerPageSelectorComponent, isStandalone: true, selector: "c-smart-table-items-per-page-selector", inputs: { itemsPerPage: "itemsPerPage", itemsPerPageLabel: "itemsPerPageLabel", itemsPerPageOptions: "itemsPerPageOptions" }, outputs: { itemsPerPageChange: "itemsPerPageChange" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<label cLabel=\"col\" class=\"col-sm-auto\">{{itemsPerPageLabel}}</label>\n<div class=\"col-auto\">\n <select [(ngModel)]=\"itemsPerPage\" cSelect name=\"itemsPerPageSelector\">\n <option *ngFor=\"let option of itemsPerPageOptions; let i = index\" [ngValue]=\"option\">{{option}}</option>\n </select>\n</div>\n", dependencies: [{ kind: "directive", type: FormSelectDirective, selector: "select[cSelect]", inputs: ["sizing", "valid"] }, { kind: "directive", type: FormLabelDirective, selector: "[cLabel]", inputs: ["cLabel", "sizing"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
31
31
|
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SmartTableItemsPerPageSelectorComponent, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
34
|
args: [{ selector: 'c-smart-table-items-per-page-selector', imports: [
|
|
35
35
|
FormSelectDirective,
|
|
@@ -3,11 +3,11 @@ import { SmartTableComponent } from './smart-table/smart-table.component';
|
|
|
3
3
|
import { SmartTableFilterComponent } from './smart-table-filter/smart-table-filter.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class SmartTableModule {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.
|
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SmartTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: SmartTableModule, imports: [SmartTableComponent, SmartTableFilterComponent], exports: [SmartTableComponent, SmartTableFilterComponent] }); }
|
|
8
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SmartTableModule, imports: [SmartTableComponent] }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SmartTableModule, decorators: [{
|
|
11
11
|
type: NgModule,
|
|
12
12
|
args: [{
|
|
13
13
|
exports: [SmartTableComponent, SmartTableFilterComponent],
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdGFibGUudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvc21hcnQtdGFibGUvc21hcnQtdGFibGUudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sb3JzIH0gZnJvbSAnLi4vY29yZXVpLnR5cGVzJztcbmltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJVGFibGUsIElUYWJsZUVsZW1lbnRQcm9wcywgSVRhYmxlUm93Q2VsbFByb3BzIH0gZnJvbSAnLi4vdGFibGUvdGFibGUudHlwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNtYXJ0VGFibGUge1xuICAvKipcbiAgICogU2V0cyBhY3RpdmUgcGFnZS4gSWYgJ3BhZ2luYXRpb24nIHByb3AgaXMgZW5hYmxlZCwgYWN0aXZlUGFnZSBpcyBzZXQgb25seSBpbml0aWFsbHkuXG4gICAqIEB0eXBlIG51bWJlclxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICBhY3RpdmVQYWdlPzogbnVtYmVyO1xuICAvKipcbiAgICogV2hlbiBzZXQsIGRpc3BsYXlzIHRhYmxlIGNsZWFuZXIgYWJvdmUgdGFibGUsIG5leHQgdG8gdGhlIHRhYmxlIGZpbHRlciAob3IgaW4gcGxhY2Ugb2YgdGFibGUgZmlsdGVyIGlmIGB0YWJsZUZpbHRlcmAgcHJvcCBpcyBub3Qgc2V0KVxuICAgKiBDbGVhbmVyIHJlc2V0cyBgdGFibGVGaWx0ZXJWYWx1ZWAsIGBjb2x1bW5GaWx0ZXJWYWx1ZWAsIGBzb3J0ZXJWYWx1ZWAuXG4gICAqIElmIGNsZWFuIGlzIHBvc3NpYmxlIGl0IGlzIGNsaWNrYWJsZSAoYHRhYkluZGV4PVwiMFwiYCBgcm9sZT1cImJ1dHRvblwiYCwgYGNvbG9yPVwiZGFuZ2VyXCJgKSwgb3RoZXJ3aXNlIGl0IGlzIG5vdCBjbGlja2FibGUgYW5kIHRyYW5zcGFyZW50LlxuICAgKiBDbGVhbmVyIGNhbiBiZSBjdXN0b21pemVkIHRocm91Z2ggdGhlIGBjbGVhbmVyYCBzbG90LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBjbGVhbmVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFN0eWxlIHRhYmxlIGl0ZW1zIGFzIGNsaWNrYWJsZS5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgY2xpY2thYmxlUm93cz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGVuIHNldCwgZGlzcGxheXMgYWRkaXRpb25hbCBmaWx0ZXIgcm93IGJldHdlZW4gdGFibGUgaGVhZGVyIGFuZCBpdGVtcywgYWxsb3dpbmcgZmlsdGVyaW5nIGJ5IHNwZWNpZmljIGNvbHVtbi5cbiAgICogQ29sdW1uIGZpbHRlciBjYW4gYmUgY3VzdG9taXplZCwgYnkgcGFzc2luZyBwcm9wIGFzIG9iamVjdCB3aXRoIGFkZGl0aW9uYWwgb3B0aW9ucyBhcyBrZXlzLiBBdmFpbGFibGUgb3B0aW9uczpcbiAgICogLSBleHRlcm5hbCAoQm9vbGVhbikgLSBEaXNhYmxlcyBhdXRvbWF0aWMgZmlsdGVyaW5nIGluc2lkZSBjb21wb25lbnQuXG4gICAqIC0gbGF6eSAoQm9vbGVhbikgLSBTZXQgdG8gdHJ1ZSB0byB0cmlnZ2VyIGZpbHRlciB1cGRhdGVzIG9ubHkgb24gY2hhbmdlIGV2ZW50LlxuICAgKiBAdHlwZSBib29sZWFuIHwgQ29sdW1uRmlsdGVyXG4gICAqL1xuICBjb2x1bW5GaWx0ZXI/OiBib29sZWFuIHwgSUNvbHVtbkZpbHRlcjtcbiAgLyoqXG4gICAqIFZhbHVlIG9mIHRhYmxlIGZpbHRlci4gVG8gc2V0IHBhc3Mgb2JqZWN0IHdoZXJlIGtleXMgYXJlIGNvbHVtbiBuYW1lcyBhbmQgdmFsdWVzIGFyZSBmaWx0ZXIgc3RyaW5ncyBlLmcuOlxuICAgKiB7IHVzZXI6ICdKb2huJywgYWdlOiAxMiB9XG4gICAqL1xuICBjb2x1bW5GaWx0ZXJWYWx1ZT86IElDb2x1bW5GaWx0ZXJWYWx1ZTtcbiAgLyoqXG4gICAqIFByb3AgZm9yIHRhYmxlIGNvbHVtbnMgY29uZmlndXJhdGlvbi4gSWYgcHJvcCBpcyBub3QgZGVmaW5lZCwgdGFibGUgd2lsbCBkaXNwbGF5IGNvbHVtbnMgYmFzZWQgb24gdGhlIGZpcnN0IGl0ZW0ga2V5cywgb21pdHRpbmcga2V5cyB0aGF0IGJlZ2luIHdpdGggdW5kZXJzY29yZSAoZS5nLiAnX2NsYXNzZXMnKVxuICAgKlxuICAgKiBJbiBjb2x1bW5zIHByb3AgZWFjaCBhcnJheSBpdGVtIHJlcHJlc2VudHMgb25lIGNvbHVtbi4gSXRlbSBtaWdodCBiZSBzcGVjaWZpZWQgaW4gdHdvIHdheXM6XG4gICAqIFN0cmluZzogZWFjaCBpdGVtIGRlZmluZSBjb2x1bW4gbmFtZSBlcXVhbCB0byBpdGVtIHZhbHVlLlxuICAgKiBPYmplY3Q6IGl0ZW0gaXMgb2JqZWN0IHdpdGggZm9sbG93aW5nIGtleXMgYXZhaWxhYmxlIGFzIGNvbHVtbiBjb25maWd1cmF0aW9uOlxuICAgKiAtIGtleSAocmVxdWlyZWQpKFN0cmluZykgLSBkZWZpbmUgY29sdW1uIG5hbWUgZXF1YWwgdG8gaXRlbSBrZXkuXG4gICAqIC0gbGFiZWwgKFN0cmluZykgLSBkZWZpbmUgdmlzaWJsZSBsYWJlbCBvZiBjb2x1bW4uIElmIG5vdCBkZWZpbmVkLCBsYWJlbCB3aWxsIGJlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIGNvbHVtbiBuYW1lLCBieSBjb252ZXJ0aW5nIGtlYmFiLWNhc2UgYW5kIHNuYWtlX2Nhc2UgdG8gaW5kaXZpZHVhbCB3b3JkcyBhbmQgY2FwaXRhbGl6YXRpb24gb2YgZWFjaCB3b3JkLlxuICAgKiAtIF9jbGFzc2VzIChTdHJpbmcvQXJyYXkvT2JqZWN0KSAtIGFkZHMgY2xhc3NlcyB0byBhbGwgY2VscyBpbiBjb2x1bW5cbiAgICogLSBfc3R5bGUgKFN0cmluZy9BcnJheS9PYmplY3QpIC0gYWRkcyBzdHlsZXMgdG8gdGhlIGNvbHVtbiBoZWFkZXIgKHVzZWZ1bCBmb3IgZGVmaW5pbmcgd2lkdGhzKVxuICAgKiAtIHNvcnRlciAoQm9vbGVhbikgLSBkaXNhYmxlcyBzb3J0aW5nIG9mIHRoZSBjb2x1bW4gd2hlbiBzZXQgdG8gZmFsc2VcbiAgICogLSBmaWx0ZXIgKEJvb2xlYW4pIC0gcmVtb3ZlcyBmaWx0ZXIgZnJvbSBjb2x1bW4gd2hlbiBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBjb2x1bW5zPzogKHN0cmluZyB8IElDb2x1bW4pW107XG4gIC8qKlxuICAgKiBFbmFibGVzIHRhYmxlIHNvcnRpbmcgYnkgY29sdW1uIHZhbHVlLiBTb3J0aW5nIHdpbGwgYmUgcGVyZm9ybWVkIGNvcnJlY3RseSBpZiB2YWx1ZXMgaW4gY29sdW1uIGFyZSBvbmUgb2YgdHlwZTogc3RyaW5nIChjYXNlLWluc2Vuc2l0aXZlKSBvciBudW1iZXIuXG4gICAqXG4gICAqIFNvcnRlciBjYW4gYmUgY3VzdG9taXplZCwgYnkgcGFzc2luZyBwcm9wIGFzIG9iamVjdCB3aXRoIGFkZGl0aW9uYWwgb3B0aW9ucyBhcyBrZXlzLiBBdmFpbGFibGUgb3B0aW9uczpcbiAgICogLSBleHRlcm5hbCAoQm9vbGVhbikgLSBEaXNhYmxlcyBhdXRvbWF0aWMgc29ydGluZyBpbnNpZGUgY29tcG9uZW50LlxuICAgKiAtIHJlc2V0YWJsZSAoQm9vbGVhbikgLSBJZiBzZXQgdG8gdHJ1ZSBjbGlja2luZyBvbiBzb3J0ZXIgaGF2ZSB0aHJlZSBzdGF0ZXM6IGFzY2VuZGluZywgZGVzY2VuZGluZyBhbmQgbnVsbC4gVGhhdCBtZWFucyB0aGF0IHRoaXJkIGNsaWNrIG9uIHNvcnRlciB3aWxsIHJlc2V0IHNvcnRpbmcsIGFuZCByZXN0b3JlIHRhYmxlIHRvIG9yaWdpbmFsIG9yZGVyLlxuICAgKiBAdHlwZSBib29sZWFuIHwgU29ydGVyXG4gICAqL1xuICBjb2x1bW5Tb3J0ZXI/OiBib29sZWFuIHwgSVNvcnRlcjtcbiAgLyoqXG4gICAqIERpc3BsYXlzIHRhYmxlIGZvb3Rlciwgd2hpY2ggbWlycm9ycyB0YWJsZSBoZWFkZXIuICh3aXRob3V0IGNvbHVtbiBmaWx0ZXIpLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBmb290ZXI/OiBib29sZWFuO1xuICAvKipcbiAgICogU2V0IHRvIGZhbHNlIHRvIHJlbW92ZSB0YWJsZSBoZWFkZXIuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGhlYWRlcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBcnJheSBvZiBvYmplY3RzLCB3aGVyZSBlYWNoIG9iamVjdCByZXByZXNlbnRzIG9uZSBpdGVtIC0gcm93IGluIHRhYmxlLiBBZGRpdGlvbmFsbHksIHlvdSBjYW4gYWRkIHN0eWxlIGNsYXNzZXMgdG8gZWFjaCByb3cgYnkgcGFzc2luZyB0aGVtIGJ5ICdfY2xhc3Nlcycga2V5IGFuZCB0byBzaW5nbGUgY2VsbCBieSAnX2NlbGxDbGFzc2VzJy5cbiAgICpcbiAgICogRXhhbXBsZSBpdGVtOlxuICAgKiB7IG5hbWU6ICdKb2huJyAsIGFnZTogMTIsIF9wcm9wczogeyBjb2xvcjogJ3N1Y2Nlc3MnIH0sIF9jZWxsUHJvcHM6IHsgYWdlOiB7IGNsYXNzTmFtZTogJ2Z3LWJvbGQnfX19XG4gICAqIEZvciBjb2x1bW4gZ2VuZXJhdGlvbiBkZXNjcmlwdGlvbiBzZWUgY29sdW1ucyBwcm9wLlxuICAgKiBAdHlwZSBBcnJheTxJSXRlbT5cbiAgICovXG4gIGl0ZW1zPzogSUl0ZW1bXTtcbiAgLyoqXG4gICAqIE51bWJlciBvZiBpdGVtcyBwZXIgc2l0ZSwgd2hlbiBwYWdpbmF0aW9uIGlzIGVuYWJsZWQuXG4gICAqIEBkZWZhdWx0IDEwXG4gICAqIEB0eXBlIG51bWJlclxuICAgKi9cbiAgaXRlbXNQZXJQYWdlPzogbnVtYmVyO1xuICAvKipcbiAgICogTGFiZWwgZm9yIGl0ZW1zIHBlciBwYWdlIHNlbGVjdG9yLlxuICAgKiBAZGVmYXVsdCAnSXRlbXMgcGVyIHBhZ2U6J1xuICAgKiBAdHlwZSBzdHJpbmdcbiAgICogdG9kbyBvciByZW1vdmU/XG4gICAqL1xuICBpdGVtc1BlclBhZ2VMYWJlbD86IHN0cmluZztcbiAgLyoqXG4gICAqIEl0ZW1zIHBlciBwYWdlIHNlbGVjdG9yIG9wdGlvbnMuXG4gICAqIEBkZWZhdWx0IFs1LCAxMCwgMjAsIDUwXVxuICAgKiBAdHlwZSBudW1iZXJbXVxuICAgKiB0b2RvIG9yIHJlbW92ZT9cbiAgICovXG4gIGl0ZW1zUGVyUGFnZU9wdGlvbnM/OiBudW1iZXJbXTtcbiAgLyoqXG4gICAqIEFkZHMgc2VsZWN0IGVsZW1lbnQgb3ZlciB0YWJsZSwgd2hpY2ggaXMgdXNlZCBmb3IgY29udHJvbCBpdGVtcyBwZXIgcGFnZSBpbiBwYWdpbmF0aW9uLlxuICAgKiBJZiB5b3Ugd2FudCB0byBjdXN0b21pemUgdGhpcyBlbGVtZW50LCBwYXNzIGFuIG9iamVjdCB3aXRoIG9wdGlvbmFsIHZhbHVlczpcbiAgICogLSBsYWJlbCAoU3RyaW5nKSAtIHJlcGxhY2VzIGRlZmF1bHQgbGFiZWwgdGV4dFxuICAgKiAtIHZhbHVlcyAoQXJyYXkpIC0gY3VzdG9tIGFycmF5IG9mIHBhZ2luYXRpb24gdmFsdWVzXG4gICAqIC0gZXh0ZXJuYWwgKEJvb2xlYW4pIC0gZGlzYWJsZXMgYXV0b21hdGljICdpdGVtc1BlclBhZ2UnIGNoYW5nZSAodXNlIHRvIGNoYW5nZSBwYWdlcyBleHRlcm5hbGx5IGJ5ICdwYWdpbmF0aW9uLWNoYW5nZScgZXZlbnQpLlxuICAgKi9cbiAgaXRlbXNQZXJQYWdlU2VsZWN0PzogYm9vbGVhbiB8IEl0ZW1zUGVyUGFnZVNlbGVjdDtcbiAgLyoqXG4gICAqIFdoZW4gc2V0LCB0YWJsZSB3aWxsIGhhdmUgbG9hZGluZyBzdHlsZTogbG9hZGluZyBzcGlubmVyIGFuZCByZWR1Y2VkIG9wYWNpdHkuXG4gICAqIFdoZW4gJ3NtYWxsJyBwcm9wIGlzIGVuYWJsZWQgc3Bpbm5lciB3aWxsIGJlIGFsc28gc21hbGxlci5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgbG9hZGluZz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZWFjdE5vZGUgb3Igc3RyaW5nIGZvciBwYXNzaW5nIGN1c3RvbSBub0l0ZW1zTGFiZWwgdGV4dHMuXG4gICAqIEBkZWZhdWx0ICdObyBpdGVtcyBmb3VuZCdcbiAgICovXG4gIG5vSXRlbXNMYWJlbD86IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG4gIC8qKlxuICAgKiBFbmFibGVzIGRlZmF1bHQgcGFnaW5hdGlvbi4gU2V0IHRvIHRydWUgZm9yIGRlZmF1bHQgc2V0dXAgb3IgcGFzcyBhbiBvYmplY3Qgd2l0aCBhZGRpdGlvbmFsIENQYWdpbmF0aW9uIHByb3BzLlxuICAgKiBEZWZhdWx0IHBhZ2luYXRpb24gd2lsbCBhbHdheXMgaGF2ZSB0aGUgY29tcHV0ZWQgbnVtYmVyIG9mIHBhZ2VzIHRoYXQgY2Fubm90IGJlIGNoYW5nZWQuXG4gICAqIFRoZSBudW1iZXIgb2YgcGFnZXMgaXMgZ2VuZXJhdGVkIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgcGFzc2VkIGl0ZW1zIGFuZCAnaXRlbXNQZXJQYWdlJyBwcm9wLlxuICAgKiBJZiB0aGlzIHJlc3RyaWN0aW9uIGlzIGFuIG9ic3RhY2xlLCB5b3UgY2FuIG1ha2UgZXh0ZXJuYWwgQ1BhZ2luYXRpb24gaW5zdGVhZC5cbiAgICovXG4gIHBhZ2luYXRpb24/OiBib29sZWFuO1xuICAvKipcbiAgICogUHJvcGVydGllcyB0byBgQ1NtYXJ0UGFnaW5hdGlvbmAgY29tcG9uZW50LlxuICAgKiBAbGluayBodHRwczovL2NvcmV1aS5pby9hbmd1bGFyL2RvY3MvY29tcG9uZW50cy9zbWFydC1wYWdpbmF0aW9uI2NzbWFydHBhZ2luYXRpb25cbiAgICogdG9kbyBvciByZW1vdmU/XG4gICAqL1xuICAvLyBwYWdpbmF0aW9uUHJvcHM/OiBDU21hcnRQYWdpbmF0aW9uUHJvcHNcbiAgLyoqXG4gICAqIFNjb3BlZCBjb2x1bW5zLlxuICAgKiBAdHlwZSBTY29wZWRDb2x1bW5zXG4gICAqIHRvZG8gb3IgcmVtb3ZlP1xuICAgKi9cbiAgLy8gc2NvcGVkQ29sdW1ucz86IFNjb3BlZENvbHVtbnNcbiAgLyoqXG4gICAqIEFkZCBjaGVja2JveGVzIHRvIG1ha2UgdGFibGUgcm93cyBzZWxlY3RhYmxlLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBzZWxlY3RhYmxlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEVuYWJsZXMgc2VsZWN0IGFsbCBjaGVja2JveCBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlciBvZiB0aGUgdGFibGUuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIHNlbGVjdEFsbD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTdGF0ZSBvZiB0aGUgc29ydGVyLiBOYW1lIGtleSBpcyBjb2x1bW4gbmFtZSwgZGlyZWN0aW9uIGNhbiBiZSAnYXNjJyBvciAnZGVzYycuXG4gICAqIEB0eXBlIElTb3J0ZXJWYWx1ZVxuICAgKi9cbiAgc29ydGVyVmFsdWU/OiBJU29ydGVyVmFsdWU7XG4gIC8qKlxuICAgKiBTb3J0ZXIgaWNvbiB3aGVuIGl0ZW1zIGFyZSB1bnNvcnRlZC5cbiAgICogQGRlZmF1bHQgJzxzdmcgY0ljb24gd2lkdGg9XCIxOFwiIGNvbnRlbnQ9e2NpbEFycm93VG9wfSAvPlxuICAgKi9cbiAgc29ydGluZ0ljb24/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKipcbiAgICogU29ydGVyIGljb24gd2hlbiBpdGVtcyBhcmUgc29ydGVkIGFzY2VuZGluZy5cbiAgICogQGRlZmF1bHQgJzxzdmcgY0ljb24gd2lkdGg9XCIxOFwiIGNvbnRlbnQ9e2NpbEFycm93VG9wfSAvPlxuICAgKi9cbiAgc29ydGluZ0ljb25Bc2NlbmRpbmc/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKipcbiAgICogU29ydGVyIGljb24gd2hlbiBpdGVtcyBhcmUgc29ydGVkIGRlc2NlbmRpbmcuXG4gICAqIEBkZWZhdWx0ICc8c3ZnIGNJY29uIHdpZHRoPVwiMThcIiBjb250ZW50PXtjaWxBcnJvd0JvdHRvbX0gLz5cbiAgICovXG4gIHNvcnRpbmdJY29uRGVzY2VuZGluZz86IFRlbXBsYXRlUmVmPGFueT47XG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIHRvIGBDVGFibGVCb2R5YCBjb21wb25lbnQuXG4gICAqIEBsaW5rIGh0dHBzOi8vY29yZXVpLmlvL2FuZ3VsYXIvZG9jcy9jb21wb25lbnRzL3RhYmxlLyNjdGFibGVib2R5XG4gICAqIHRvZG8gb3IgcmVtb3ZlP1xuICAgKi9cbiAgLy8gdGFibGVCb2R5UHJvcHM/OiBDVGFibGVCb2R5UHJvcHNcbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgdG8gYENUYWJsZUZvb3RgIGNvbXBvbmVudC5cbiAgICogQGxpbmsgaHR0cHM6Ly9jb3JldWkuaW8vYW5ndWxhci9kb2NzL2NvbXBvbmVudHMvdGFibGUvI2N0YWJsZWZvb3RcbiAgICogdG9kbyBvciByZW1vdmU/XG4gICAqL1xuICAvLyAgIHRhYmxlRm9vdFByb3BzPzogQ1RhYmxlRm9vdFByb3BzXG4gIC8qKlxuICAgKiBXaGVuIHNldCwgZGlzcGxheXMgdGFibGUgZmlsdGVyIGFib3ZlIHRhYmxlLCBhbGxvd2luZyBmaWx0ZXJpbmcgYnkgc3BlY2lmaWMgY29sdW1uLlxuICAgKlxuICAgKiBDb2x1bW4gZmlsdGVyIGNhbiBiZSBjdXN0b21pemVkLCBieSBwYXNzaW5nIHByb3AgYXMgb2JqZWN0IHdpdGggYWRkaXRpb25hbCBvcHRpb25zIGFzIGtleXMuIEF2YWlsYWJsZSBvcHRpb25zOlxuICAgKiAtIHBsYWNlaG9sZGVyIChTdHJpbmcpIC0gU2V0cyBjdXN0b20gdGFibGUgZmlsdGVyIHBsYWNlaG9sZGVyLlxuICAgKiAtIGxhYmVsIChTdHJpbmcpIC0gU2V0cyBjdXN0b20gdGFibGUgZmlsdGVyIGxhYmVsLlxuICAgKiAtIGV4dGVybmFsIChCb29sZWFuKSAtIERpc2FibGVzIGF1dG9tYXRpYyBmaWx0ZXJpbmcgaW5zaWRlIGNvbXBvbmVudC5cbiAgICogLSBsYXp5IChCb29sZWFuKSAtIFNldCB0byB0cnVlIHRvIHRyaWdnZXIgZmlsdGVyIHVwZGF0ZXMgb25seSBvbiBjaGFuZ2UgZXZlbnQuXG4gICAqL1xuICB0YWJsZUZpbHRlcj86IGJvb2xlYW4gfCBJVGFibGVGaWx0ZXI7XG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCByZXByZXNlbnRzIGEgY2FwdGlvbiBmb3IgYSBjb21wb25lbnQuXG4gICAqIEBkZWZhdWx0ICdGaWx0ZXI6J1xuICAgKiB0b2RvIG9yIHJlbW92ZT9cbiAgICovXG4gIHRhYmxlRmlsdGVyTGFiZWw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBzaG9ydCBoaW50IHRoYXQgaXMgdmlzaWJsZSBpbiB0aGUgc2VhcmNoIGlucHV0LlxuICAgKiBAZGVmYXVsdCAndHlwZSBzdHJpbmcuLi4nXG4gICAqIHRvZG8gb3IgcmVtb3ZlP1xuICAgKi9cbiAgdGFibGVGaWx0ZXJQbGFjZWhvbGRlcj86IHN0cmluZztcbiAgLyoqXG4gICAqIFZhbHVlIG9mIHRhYmxlIGZpbHRlci4gU2V0IC5zeW5jIG1vZGlmaWVyIHRvIHRyYWNrIGNoYW5nZXMuXG4gICAqIEB0eXBlIHN0cmluZ1xuICAgKi9cbiAgdGFibGVGaWx0ZXJWYWx1ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgdG8gYENUYWJsZUhlYWRgIGNvbXBvbmVudC5cbiAgICogQGxpbmsgaHR0cHM6Ly9jb3JldWkuaW8vYW5ndWxhci9kb2NzL2NvbXBvbmVudHMvdGFibGUvI2N0YWJsZWhlYWRcbiAgICogdG9kbyBvciByZW1vdmU/XG4gICAqL1xuICAvLyB0YWJsZUhlYWRQcm9wcz86IENUYWJsZUhlYWRQcm9wc1xuICAvKipcbiAgICogUHJvcGVydGllcyB0byBgQ1RhYmxlYCBjb21wb25lbnQuXG4gICAqIEBsaW5rIGh0dHBzOi8vY29yZXVpLmlvL2FuZ3VsYXIvZG9jcy9jb21wb25lbnRzL3RhYmxlLyNjdGFibGVcbiAgICovXG4gIHRhYmxlUHJvcHM/OiBJVGFibGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbHVtbkZpbHRlciB7XG4gIGxhenk/OiBib29sZWFuO1xuICBleHRlcm5hbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbHVtbkZpbHRlclZhbHVlIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb2x1bW4ge1xuICBmaWx0ZXI/OiBib29sZWFuIHwgKChjb2x1bW46IElJdGVtLCB2YWx1ZTogc3RyaW5nKSA9PiBib29sZWFuKTtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICBzb3J0ZXI/OiBib29sZWFuIHwgKChhOiBJSXRlbSwgYjogSUl0ZW0pID0+IG51bWJlcik7XG4gIF9zdHlsZT86IGFueTtcbiAgX3Byb3BzPzogSVRhYmxlSGVhZGVyQ2VsbFByb3BzO1xuICBfY2xhc3Nlcz86IHN0cmluZyB8IHN0cmluZ1tdIHwgU2V0PHN0cmluZz4gfCB7IFtrbGFzczogc3RyaW5nXTogYW55OyB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZUhlYWRlckNlbGxQcm9wcyB7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb2xvciBjb250ZXh0IG9mIHRoZSBjb21wb25lbnQgdG8gb25lIG9mIENvcmVVSeKAmXMgdGhlbWVkIGNvbG9ycy5cbiAgICpcbiAgICogQHR5cGUgJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAnc3VjY2VzcycgfCAnZGFuZ2VyJyB8ICd3YXJuaW5nJyB8ICdpbmZvJyB8ICdkYXJrJyB8ICdsaWdodCcgfCBzdHJpbmdcbiAgICovXG4gIGNvbG9yPzogQ29sb3JzO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNvcnRlciB7XG4gIHJlc2V0YWJsZT86IGJvb2xlYW47XG4gIGV4dGVybmFsPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSXRlbSB7XG4gIF9wcm9wcz86IElUYWJsZVJvd0NlbGxQcm9wcztcbiAgX2NlbGxQcm9wcz86IElUYWJsZUNlbGxQcm9wcztcbiAgX3NlbGVjdGVkPzogYm9vbGVhbjtcbiAgX3NlbGVjdGFibGU/OiBib29sZWFuO1xuICBba2V5OiBzdHJpbmddOiBudW1iZXIgfCBzdHJpbmcgfCBhbnk7XG4gIC8vIF9kZWxldGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVDZWxsUHJvcHMge1xuICBfYWxsPzogSVRhYmxlUm93Q2VsbFByb3BzO1xuICBfYXR0cmlidXRlcz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG4gIFtrZXk6IHN0cmluZ106IElUYWJsZVJvd0NlbGxQcm9wcyB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSXRlbUludGVybmFsIGV4dGVuZHMgSUl0ZW0ge1xuICBfaWQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXRlbXNQZXJQYWdlU2VsZWN0IHtcbiAgZXh0ZXJuYWw/OiBib29sZWFuO1xuICBsYWJlbD86IHN0cmluZztcbiAgdmFsdWVzPzogQXJyYXk8bnVtYmVyPjtcbn1cblxuLy8gZXhwb3J0IGludGVyZmFjZSBTY29wZWRDb2x1bW5zIHtcbi8vICAgW2tleTogc3RyaW5nXTogYW55XG4vLyAgIGRldGFpbHM/OiAoYTogSUl0ZW0sIGI6IG51bWJlcikgPT4gUmVhY3ROb2RlXG4vLyB9XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNvcnRlclZhbHVlIHtcbiAgY29sdW1uPzogc3RyaW5nO1xuICBzdGF0ZT86IG51bWJlciB8IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVGaWx0ZXIge1xuICBsYXp5PzogYm9vbGVhbjtcbiAgZXh0ZXJuYWw/OiBib29sZWFuO1xuICBsYWJlbD86IHN0cmluZztcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHZhbHVlPzogc3RyaW5nIHwgbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZUdyb3VwUHJvcHMgZXh0ZW5kcyBJVGFibGVFbGVtZW50UHJvcHMge1xuICBhdHRyaWJ1dGVzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cbiJdfQ==
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdGFibGUudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvc21hcnQtdGFibGUvc21hcnQtdGFibGUudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sb3JzLCBOZ0Nzc0NsYXNzIH0gZnJvbSAnLi4vY29yZXVpLnR5cGVzJztcbmltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJVGFibGUsIElUYWJsZUVsZW1lbnRQcm9wcywgSVRhYmxlUm93Q2VsbFByb3BzIH0gZnJvbSAnLi4vdGFibGUvdGFibGUudHlwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNtYXJ0VGFibGUge1xuICAvKipcbiAgICogU2V0cyBhY3RpdmUgcGFnZS4gSWYgJ3BhZ2luYXRpb24nIHByb3AgaXMgZW5hYmxlZCwgYWN0aXZlUGFnZSBpcyBzZXQgb25seSBpbml0aWFsbHkuXG4gICAqIEB0eXBlIG51bWJlclxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICBhY3RpdmVQYWdlPzogbnVtYmVyO1xuICAvKipcbiAgICogV2hlbiBzZXQsIGRpc3BsYXlzIHRhYmxlIGNsZWFuZXIgYWJvdmUgdGFibGUsIG5leHQgdG8gdGhlIHRhYmxlIGZpbHRlciAob3IgaW4gcGxhY2Ugb2YgdGFibGUgZmlsdGVyIGlmIGB0YWJsZUZpbHRlcmAgcHJvcCBpcyBub3Qgc2V0KVxuICAgKiBDbGVhbmVyIHJlc2V0cyBgdGFibGVGaWx0ZXJWYWx1ZWAsIGBjb2x1bW5GaWx0ZXJWYWx1ZWAsIGBzb3J0ZXJWYWx1ZWAuXG4gICAqIElmIGNsZWFuIGlzIHBvc3NpYmxlIGl0IGlzIGNsaWNrYWJsZSAoYHRhYkluZGV4PVwiMFwiYCBgcm9sZT1cImJ1dHRvblwiYCwgYGNvbG9yPVwiZGFuZ2VyXCJgKSwgb3RoZXJ3aXNlIGl0IGlzIG5vdCBjbGlja2FibGUgYW5kIHRyYW5zcGFyZW50LlxuICAgKiBDbGVhbmVyIGNhbiBiZSBjdXN0b21pemVkIHRocm91Z2ggdGhlIGBjbGVhbmVyYCBzbG90LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBjbGVhbmVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFN0eWxlIHRhYmxlIGl0ZW1zIGFzIGNsaWNrYWJsZS5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgY2xpY2thYmxlUm93cz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGVuIHNldCwgZGlzcGxheXMgYWRkaXRpb25hbCBmaWx0ZXIgcm93IGJldHdlZW4gdGFibGUgaGVhZGVyIGFuZCBpdGVtcywgYWxsb3dpbmcgZmlsdGVyaW5nIGJ5IHNwZWNpZmljIGNvbHVtbi5cbiAgICogQ29sdW1uIGZpbHRlciBjYW4gYmUgY3VzdG9taXplZCwgYnkgcGFzc2luZyBwcm9wIGFzIG9iamVjdCB3aXRoIGFkZGl0aW9uYWwgb3B0aW9ucyBhcyBrZXlzLiBBdmFpbGFibGUgb3B0aW9uczpcbiAgICogLSBleHRlcm5hbCAoQm9vbGVhbikgLSBEaXNhYmxlcyBhdXRvbWF0aWMgZmlsdGVyaW5nIGluc2lkZSBjb21wb25lbnQuXG4gICAqIC0gbGF6eSAoQm9vbGVhbikgLSBTZXQgdG8gdHJ1ZSB0byB0cmlnZ2VyIGZpbHRlciB1cGRhdGVzIG9ubHkgb24gY2hhbmdlIGV2ZW50LlxuICAgKiBAdHlwZSBib29sZWFuIHwgQ29sdW1uRmlsdGVyXG4gICAqL1xuICBjb2x1bW5GaWx0ZXI/OiBib29sZWFuIHwgSUNvbHVtbkZpbHRlcjtcbiAgLyoqXG4gICAqIFZhbHVlIG9mIHRhYmxlIGZpbHRlci4gVG8gc2V0IHBhc3Mgb2JqZWN0IHdoZXJlIGtleXMgYXJlIGNvbHVtbiBuYW1lcyBhbmQgdmFsdWVzIGFyZSBmaWx0ZXIgc3RyaW5ncyBlLmcuOlxuICAgKiB7IHVzZXI6ICdKb2huJywgYWdlOiAxMiB9XG4gICAqL1xuICBjb2x1bW5GaWx0ZXJWYWx1ZT86IElDb2x1bW5GaWx0ZXJWYWx1ZTtcbiAgLyoqXG4gICAqIFByb3AgZm9yIHRhYmxlIGNvbHVtbnMgY29uZmlndXJhdGlvbi4gSWYgcHJvcCBpcyBub3QgZGVmaW5lZCwgdGFibGUgd2lsbCBkaXNwbGF5IGNvbHVtbnMgYmFzZWQgb24gdGhlIGZpcnN0IGl0ZW0ga2V5cywgb21pdHRpbmcga2V5cyB0aGF0IGJlZ2luIHdpdGggdW5kZXJzY29yZSAoZS5nLiAnX2NsYXNzZXMnKVxuICAgKlxuICAgKiBJbiBjb2x1bW5zIHByb3AgZWFjaCBhcnJheSBpdGVtIHJlcHJlc2VudHMgb25lIGNvbHVtbi4gSXRlbSBtaWdodCBiZSBzcGVjaWZpZWQgaW4gdHdvIHdheXM6XG4gICAqIFN0cmluZzogZWFjaCBpdGVtIGRlZmluZSBjb2x1bW4gbmFtZSBlcXVhbCB0byBpdGVtIHZhbHVlLlxuICAgKiBPYmplY3Q6IGl0ZW0gaXMgb2JqZWN0IHdpdGggZm9sbG93aW5nIGtleXMgYXZhaWxhYmxlIGFzIGNvbHVtbiBjb25maWd1cmF0aW9uOlxuICAgKiAtIGtleSAocmVxdWlyZWQpKFN0cmluZykgLSBkZWZpbmUgY29sdW1uIG5hbWUgZXF1YWwgdG8gaXRlbSBrZXkuXG4gICAqIC0gbGFiZWwgKFN0cmluZykgLSBkZWZpbmUgdmlzaWJsZSBsYWJlbCBvZiBjb2x1bW4uIElmIG5vdCBkZWZpbmVkLCBsYWJlbCB3aWxsIGJlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIGNvbHVtbiBuYW1lLCBieSBjb252ZXJ0aW5nIGtlYmFiLWNhc2UgYW5kIHNuYWtlX2Nhc2UgdG8gaW5kaXZpZHVhbCB3b3JkcyBhbmQgY2FwaXRhbGl6YXRpb24gb2YgZWFjaCB3b3JkLlxuICAgKiAtIF9jbGFzc2VzIChTdHJpbmcvQXJyYXkvT2JqZWN0KSAtIGFkZHMgY2xhc3NlcyB0byBhbGwgY2VsbHMgaW4gYSBjb2x1bW5cbiAgICogLSBfc3R5bGUgKFN0cmluZy9BcnJheS9PYmplY3QpIC0gYWRkcyBzdHlsZXMgdG8gdGhlIGNvbHVtbiBoZWFkZXIgKHVzZWZ1bCBmb3IgZGVmaW5pbmcgd2lkdGhzKVxuICAgKiAtIHNvcnRlciAoQm9vbGVhbikgLSBkaXNhYmxlcyBzb3J0aW5nIG9mIHRoZSBjb2x1bW4gd2hlbiBzZXQgdG8gZmFsc2VcbiAgICogLSBmaWx0ZXIgKEJvb2xlYW4pIC0gcmVtb3ZlcyBmaWx0ZXIgZnJvbSBjb2x1bW4gd2hlbiBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBjb2x1bW5zPzogKHN0cmluZyB8IElDb2x1bW4pW107XG4gIC8qKlxuICAgKiBFbmFibGVzIHRhYmxlIHNvcnRpbmcgYnkgY29sdW1uIHZhbHVlLiBTb3J0aW5nIHdpbGwgYmUgcGVyZm9ybWVkIGNvcnJlY3RseSBpZiB2YWx1ZXMgaW4gY29sdW1uIGFyZSBvbmUgb2YgdHlwZTogc3RyaW5nIChjYXNlLWluc2Vuc2l0aXZlKSBvciBudW1iZXIuXG4gICAqXG4gICAqIFNvcnRlciBjYW4gYmUgY3VzdG9taXplZCwgYnkgcGFzc2luZyBwcm9wIGFzIG9iamVjdCB3aXRoIGFkZGl0aW9uYWwgb3B0aW9ucyBhcyBrZXlzLiBBdmFpbGFibGUgb3B0aW9uczpcbiAgICogLSBleHRlcm5hbCAoQm9vbGVhbikgLSBEaXNhYmxlcyBhdXRvbWF0aWMgc29ydGluZyBpbnNpZGUgY29tcG9uZW50LlxuICAgKiAtIHJlc2V0YWJsZSAoQm9vbGVhbikgLSBJZiBzZXQgdG8gdHJ1ZSBjbGlja2luZyBvbiBzb3J0ZXIgaGF2ZSB0aHJlZSBzdGF0ZXM6IGFzY2VuZGluZywgZGVzY2VuZGluZyBhbmQgbnVsbC4gVGhhdCBtZWFucyB0aGF0IHRoaXJkIGNsaWNrIG9uIHNvcnRlciB3aWxsIHJlc2V0IHNvcnRpbmcsIGFuZCByZXN0b3JlIHRhYmxlIHRvIG9yaWdpbmFsIG9yZGVyLlxuICAgKiBAdHlwZSBib29sZWFuIHwgU29ydGVyXG4gICAqL1xuICBjb2x1bW5Tb3J0ZXI/OiBib29sZWFuIHwgSVNvcnRlcjtcbiAgLyoqXG4gICAqIERpc3BsYXlzIHRhYmxlIGZvb3Rlciwgd2hpY2ggbWlycm9ycyB0YWJsZSBoZWFkZXIuICh3aXRob3V0IGNvbHVtbiBmaWx0ZXIpLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBmb290ZXI/OiBib29sZWFuO1xuICAvKipcbiAgICogU2V0IGZhbHNlIHRvIHJlbW92ZSB0YWJsZSBoZWFkZXIuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGhlYWRlcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBcnJheSBvZiBvYmplY3RzLCB3aGVyZSBlYWNoIG9iamVjdCByZXByZXNlbnRzIG9uZSBpdGVtIC0gcm93IGluIHRhYmxlLiBBZGRpdGlvbmFsbHksIHlvdSBjYW4gYWRkIHN0eWxlIGNsYXNzZXMgdG8gZWFjaCByb3cgYnkgcGFzc2luZyB0aGVtIGJ5ICdfY2xhc3Nlcycga2V5IGFuZCB0byBzaW5nbGUgY2VsbCBieSAnX2NlbGxDbGFzc2VzJy5cbiAgICpcbiAgICogRXhhbXBsZSBpdGVtOlxuICAgKiB7IG5hbWU6ICdKb2huJyAsIGFnZTogMTIsIF9wcm9wczogeyBjb2xvcjogJ3N1Y2Nlc3MnIH0sIF9jZWxsUHJvcHM6IHsgYWdlOiB7IGNsYXNzOiAnZnctYm9sZCd9fX1cbiAgICogRm9yIGNvbHVtbiBnZW5lcmF0aW9uIGRlc2NyaXB0aW9uIHNlZSBjb2x1bW5zIHByb3AuXG4gICAqIEB0eXBlIEFycmF5PElJdGVtPlxuICAgKi9cbiAgaXRlbXM/OiBJSXRlbVtdO1xuICAvKipcbiAgICogTnVtYmVyIG9mIGl0ZW1zIHBlciBzaXRlLCB3aGVuIHBhZ2luYXRpb24gaXMgZW5hYmxlZC5cbiAgICogQGRlZmF1bHQgMTBcbiAgICogQHR5cGUgbnVtYmVyXG4gICAqL1xuICBpdGVtc1BlclBhZ2U/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBMYWJlbCBmb3IgaXRlbXMgcGVyIHBhZ2Ugc2VsZWN0b3IuXG4gICAqIEBkZWZhdWx0ICdJdGVtcyBwZXIgcGFnZTonXG4gICAqIEB0eXBlIHN0cmluZ1xuICAgKi9cbiAgaXRlbXNQZXJQYWdlTGFiZWw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJdGVtcyBwZXIgcGFnZSBzZWxlY3RvciBvcHRpb25zLlxuICAgKiBAZGVmYXVsdCBbNSwgMTAsIDIwLCA1MF1cbiAgICogQHR5cGUgbnVtYmVyW11cbiAgICovXG4gIGl0ZW1zUGVyUGFnZU9wdGlvbnM/OiBudW1iZXJbXTtcbiAgLyoqXG4gICAqIEFkZHMgc2VsZWN0IGVsZW1lbnQgb3ZlciB0YWJsZSwgd2hpY2ggaXMgdXNlZCBmb3IgY29udHJvbCBpdGVtcyBwZXIgcGFnZSBpbiBwYWdpbmF0aW9uLlxuICAgKiBJZiB5b3Ugd2FudCB0byBjdXN0b21pemUgdGhpcyBlbGVtZW50LCBwYXNzIGFuIG9iamVjdCB3aXRoIG9wdGlvbmFsIHZhbHVlczpcbiAgICogLSBleHRlcm5hbCAoQm9vbGVhbikgLSBkaXNhYmxlcyBhdXRvbWF0aWMgJ2l0ZW1zUGVyUGFnZScgY2hhbmdlICh1c2UgdG8gY2hhbmdlIHBhZ2VzIGV4dGVybmFsbHkgYnkgJ3BhZ2luYXRpb24tY2hhbmdlJyBldmVudCkuXG4gICAqL1xuICBpdGVtc1BlclBhZ2VTZWxlY3Q/OiBib29sZWFuIHwgSXRlbXNQZXJQYWdlU2VsZWN0O1xuICAvKipcbiAgICogV2hlbiBzZXQsIHRhYmxlIHdpbGwgaGF2ZSBsb2FkaW5nIHN0eWxlOiBsb2FkaW5nIHNwaW5uZXIgYW5kIHJlZHVjZWQgb3BhY2l0eS5cbiAgICogV2hlbiAnc21hbGwnIHByb3AgaXMgZW5hYmxlZCBzcGlubmVyIHdpbGwgYmUgYWxzbyBzbWFsbGVyLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBsb2FkaW5nPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFJlYWN0Tm9kZSBvciBzdHJpbmcgZm9yIHBhc3NpbmcgY3VzdG9tIG5vSXRlbXNMYWJlbCB0ZXh0cy5cbiAgICogQGRlZmF1bHQgJ05vIGl0ZW1zIGZvdW5kJ1xuICAgKi9cbiAgbm9JdGVtc0xhYmVsPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgLyoqXG4gICAqIEVuYWJsZXMgZGVmYXVsdCBwYWdpbmF0aW9uLiBTZXQgdG8gdHJ1ZSBmb3IgZGVmYXVsdCBzZXR1cCBvciBwYXNzIGFuIG9iamVjdCB3aXRoIGFkZGl0aW9uYWwgQ1BhZ2luYXRpb24gcHJvcHMuXG4gICAqIERlZmF1bHQgcGFnaW5hdGlvbiB3aWxsIGFsd2F5cyBoYXZlIHRoZSBjb21wdXRlZCBudW1iZXIgb2YgcGFnZXMgdGhhdCBjYW5ub3QgYmUgY2hhbmdlZC5cbiAgICogVGhlIG51bWJlciBvZiBwYWdlcyBpcyBnZW5lcmF0ZWQgYmFzZWQgb24gdGhlIG51bWJlciBvZiBwYXNzZWQgaXRlbXMgYW5kICdpdGVtc1BlclBhZ2UnIHByb3AuXG4gICAqIElmIHRoaXMgcmVzdHJpY3Rpb24gaXMgYW4gb2JzdGFjbGUsIHlvdSBjYW4gbWFrZSBleHRlcm5hbCBDUGFnaW5hdGlvbiBpbnN0ZWFkLlxuICAgKi9cbiAgcGFnaW5hdGlvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIHRvIGBDU21hcnRQYWdpbmF0aW9uYCBjb21wb25lbnQuXG4gICAqIEBsaW5rIGh0dHBzOi8vY29yZXVpLmlvL2FuZ3VsYXIvZG9jcy9jb21wb25lbnRzL3NtYXJ0LXBhZ2luYXRpb24jY3NtYXJ0cGFnaW5hdGlvblxuICAgKiB0b2RvIG9yIHJlbW92ZT9cbiAgICovXG4gIC8vIHBhZ2luYXRpb25Qcm9wcz86IENTbWFydFBhZ2luYXRpb25Qcm9wc1xuICAvKipcbiAgICogU2NvcGVkIGNvbHVtbnMuXG4gICAvLyAqIEB0eXBlIFNjb3BlZENvbHVtbnNcbiAgICogdG9kbyBvciByZW1vdmU/XG4gICAqL1xuICAvLyBzY29wZWRDb2x1bW5zPzogU2NvcGVkQ29sdW1uc1xuICAvKipcbiAgICogQWRkIGNoZWNrYm94ZXMgdG8gbWFrZSB0YWJsZSByb3dzIHNlbGVjdGFibGUuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIHNlbGVjdGFibGU/OiBib29sZWFuO1xuICAvKipcbiAgICogRW5hYmxlcyBzZWxlY3QgYWxsIGNoZWNrYm94IGRpc3BsYXllZCBpbiB0aGUgaGVhZGVyIG9mIHRoZSB0YWJsZS5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgc2VsZWN0QWxsPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFN0YXRlIG9mIHRoZSBzb3J0ZXIuIE5hbWUga2V5IGlzIGNvbHVtbiBuYW1lLCBkaXJlY3Rpb24gY2FuIGJlICdhc2MnIG9yICdkZXNjJy5cbiAgICogQHR5cGUgSVNvcnRlclZhbHVlXG4gICAqL1xuICBzb3J0ZXJWYWx1ZT86IElTb3J0ZXJWYWx1ZTtcbiAgLyoqXG4gICAqIFNvcnRlciBpY29uIHdoZW4gaXRlbXMgYXJlIHVuc29ydGVkLlxuICAgKiBAZGVmYXVsdCAnPHN2ZyBjSWNvbiB3aWR0aD1cIjE4XCIgY29udGVudD17Y2lsQXJyb3dUb3B9IC8+XG4gICAqL1xuICBzb3J0aW5nSWNvbj86IFRlbXBsYXRlUmVmPGFueT47XG4gIC8qKlxuICAgKiBTb3J0ZXIgaWNvbiB3aGVuIGl0ZW1zIGFyZSBzb3J0ZWQgYXNjZW5kaW5nLlxuICAgKiBAZGVmYXVsdCAnPHN2ZyBjSWNvbiB3aWR0aD1cIjE4XCIgY29udGVudD17Y2lsQXJyb3dUb3B9IC8+XG4gICAqL1xuICBzb3J0aW5nSWNvbkFzY2VuZGluZz86IFRlbXBsYXRlUmVmPGFueT47XG4gIC8qKlxuICAgKiBTb3J0ZXIgaWNvbiB3aGVuIGl0ZW1zIGFyZSBzb3J0ZWQgZGVzY2VuZGluZy5cbiAgICogQGRlZmF1bHQgJzxzdmcgY0ljb24gd2lkdGg9XCIxOFwiIGNvbnRlbnQ9e2NpbEFycm93Qm90dG9tfSAvPlxuICAgKi9cbiAgc29ydGluZ0ljb25EZXNjZW5kaW5nPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgdG8gYFRhYmxlQm9keWAgY29tcG9uZW50LlxuICAgKiBAbGluayBodHRwczovL2NvcmV1aS5pby9hbmd1bGFyL2RvY3MvY29tcG9uZW50cy90YWJsZS8jY3RhYmxlYm9keVxuICAgKi9cbiAgdGFibGVCb2R5UHJvcHM/OiBJVGFibGVTZWN0aW9uUHJvcHM7XG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIHRvIGBUYWJsZUZvb3RgIGNvbXBvbmVudC5cbiAgICogQGxpbmsgaHR0cHM6Ly9jb3JldWkuaW8vYW5ndWxhci9kb2NzL2NvbXBvbmVudHMvdGFibGUvI2N0YWJsZWZvb3RcbiAgICovXG4gIHRhYmxlRm9vdFByb3BzPzogSVRhYmxlU2VjdGlvblByb3BzO1xuICAvKipcbiAgICogV2hlbiBzZXQsIGRpc3BsYXlzIHRhYmxlIGZpbHRlciBhYm92ZSB0YWJsZSwgYWxsb3dpbmcgZmlsdGVyaW5nIGJ5IHNwZWNpZmljIGNvbHVtbi5cbiAgICpcbiAgICogQ29sdW1uIGZpbHRlciBjYW4gYmUgY3VzdG9taXplZCwgYnkgcGFzc2luZyBwcm9wIGFzIG9iamVjdCB3aXRoIGFkZGl0aW9uYWwgb3B0aW9ucyBhcyBrZXlzLiBBdmFpbGFibGUgb3B0aW9uczpcbiAgICogLSBwbGFjZWhvbGRlciAoU3RyaW5nKSAtIFNldHMgY3VzdG9tIHRhYmxlIGZpbHRlciBwbGFjZWhvbGRlci5cbiAgICogLSBsYWJlbCAoU3RyaW5nKSAtIFNldHMgY3VzdG9tIHRhYmxlIGZpbHRlciBsYWJlbC5cbiAgICogLSBleHRlcm5hbCAoQm9vbGVhbikgLSBEaXNhYmxlcyBhdXRvbWF0aWMgZmlsdGVyaW5nIGluc2lkZSBjb21wb25lbnQuXG4gICAqIC0gbGF6eSAoQm9vbGVhbikgLSBTZXQgdG8gdHJ1ZSB0byB0cmlnZ2VyIGZpbHRlciB1cGRhdGVzIG9ubHkgb24gY2hhbmdlIGV2ZW50LlxuICAgKi9cbiAgdGFibGVGaWx0ZXI/OiBib29sZWFuIHwgSVRhYmxlRmlsdGVyO1xuICAvKipcbiAgICogVGhlIGVsZW1lbnQgcmVwcmVzZW50cyBhIGNhcHRpb24gZm9yIGEgY29tcG9uZW50LlxuICAgKiBAZGVmYXVsdCAnRmlsdGVyOidcbiAgICogdG9kbyBvciByZW1vdmU/XG4gICAqL1xuICB0YWJsZUZpbHRlckxhYmVsPzogc3RyaW5nO1xuICAvKipcbiAgICogU3BlY2lmaWVzIGEgc2hvcnQgaGludCB0aGF0IGlzIHZpc2libGUgaW4gdGhlIHNlYXJjaCBpbnB1dC5cbiAgICogQGRlZmF1bHQgJ3R5cGUgc3RyaW5nLi4uJ1xuICAgKiB0b2RvIG9yIHJlbW92ZT9cbiAgICovXG4gIHRhYmxlRmlsdGVyUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBWYWx1ZSBvZiB0YWJsZSBmaWx0ZXIuIFNldCAuc3luYyBtb2RpZmllciB0byB0cmFjayBjaGFuZ2VzLlxuICAgKiBAdHlwZSBzdHJpbmdcbiAgICovXG4gIHRhYmxlRmlsdGVyVmFsdWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIHRvIGBDVGFibGVIZWFkYCBjb21wb25lbnQuXG4gICAqIEBsaW5rIGh0dHBzOi8vY29yZXVpLmlvL2FuZ3VsYXIvZG9jcy9jb21wb25lbnRzL3RhYmxlLyNjdGFibGVoZWFkXG4gICAqL1xuICB0YWJsZUhlYWRQcm9wcz86IElUYWJsZVNlY3Rpb25Qcm9wcztcbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgdG8gYENUYWJsZWAgY29tcG9uZW50LlxuICAgKiBAbGluayBodHRwczovL2NvcmV1aS5pby9hbmd1bGFyL2RvY3MvY29tcG9uZW50cy90YWJsZS8jY3RhYmxlXG4gICAqL1xuICB0YWJsZVByb3BzPzogSVRhYmxlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZVNlY3Rpb25Qcm9wcyBleHRlbmRzIElUYWJsZUVsZW1lbnRQcm9wcyB7XG4gIGFsaWduPzogJ2JvdHRvbScgfCAnbWlkZGxlJyB8ICd0b3AnO1xuICBjb2xvcj86IENvbG9ycztcbiAgYXR0cmlidXRlcz86IFBhcnRpYWw8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb2x1bW5GaWx0ZXIge1xuICBsYXp5PzogYm9vbGVhbjtcbiAgZXh0ZXJuYWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb2x1bW5GaWx0ZXJWYWx1ZSB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29sdW1uIHtcbiAgY2hpbGRyZW4/OiBJQ29sdW1uW107XG4gIGZpbHRlcj86IGJvb2xlYW4gfCAoKGNvbHVtbjogSUl0ZW0sIHZhbHVlOiBzdHJpbmcpID0+IGJvb2xlYW4pO1xuICBncm91cD86IHN0cmluZztcbiAga2V5OiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBzb3J0ZXI/OiBib29sZWFuIHwgKChhOiBJSXRlbSwgYjogSUl0ZW0pID0+IG51bWJlcik7XG4gIF9hdHRyPzogUGFydGlhbDxIVE1MVGFibGVDZWxsRWxlbWVudD47ICAgIC8vIGhlYWRlclxuICBfc3R5bGU/OiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+OyAgICAvLyBoZWFkZXJcbiAgX3Byb3BzPzogSVRhYmxlSGVhZGVyQ2VsbFByb3BzOyAgICAgICAgICAgLy8gaGVhZGVyXG4gIF9jbGFzc2VzPzogTmdDc3NDbGFzczsgICAgICAgICAgICAgICAgICAgIC8vIGhlYWRlclxuICBfY29sQXR0cj86IFBhcnRpYWw8SFRNTFRhYmxlQ29sRWxlbWVudD47ICAvLyBjb2x1bW5cbiAgX2NvbFN0eWxlPzogUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPjsgLy8gY29sdW1uXG4gIF9jb2xQcm9wcz86IElUYWJsZVJvd0NlbGxQcm9wczsgICAgICAgICAgIC8vIGNvbHVtblxuICBfY29sQ2xhc3M/OiBOZ0Nzc0NsYXNzOyAgICAgICAgICAgICAgICAgICAvLyBjb2x1bW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JvdXAge1xuICBjaGlsZHJlbj86IElHcm91cFtdIHwgSUNvbHVtbltdO1xuICBjb2xzcGFuPzogbnVtYmVyO1xuICBkZWVwPzogbnVtYmVyO1xuICBncm91cD86IHN0cmluZztcbiAga2V5OiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBfYXR0cj86IFBhcnRpYWw8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+O1xuICBfY2xhc3M/OiBOZ0Nzc0NsYXNzO1xuICBfcHJvcHM/OiBJVGFibGVIZWFkZXJDZWxsUHJvcHM7XG4gIF9zdHlsZT86IFBhcnRpYWw8Q1NTU3R5bGVEZWNsYXJhdGlvbj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlSGVhZGVyQ2VsbFByb3BzIHtcbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbG9yIGNvbnRleHQgb2YgdGhlIGNvbXBvbmVudCB0byBvbmUgb2YgQ29yZVVJ4oCZcyB0aGVtZWQgY29sb3JzLlxuICAgKlxuICAgKiBAdHlwZSAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdzdWNjZXNzJyB8ICdkYW5nZXInIHwgJ3dhcm5pbmcnIHwgJ2luZm8nIHwgJ2RhcmsnIHwgJ2xpZ2h0JyB8IHN0cmluZ1xuICAgKi9cbiAgY29sb3I/OiBDb2xvcnM7XG5cbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTb3J0ZXIge1xuICByZXNldGFibGU/OiBib29sZWFuO1xuICBleHRlcm5hbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUl0ZW0ge1xuICBfYXR0cj86IFBhcnRpYWw8SFRNTFRhYmxlUm93RWxlbWVudD47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA/IHJvdyBodG1sIGF0dHJpYnNcbiAgX2NsYXNzPzogTmdDc3NDbGFzczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gPyByb3cgY3NzIGNsYXNzXG4gIF9wcm9wcz86IElUYWJsZVJvd0NlbGxQcm9wczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdyBQcm9wc1xuICBfc3R5bGU/OiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA/IHJvdyBjc3Mgc3R5bGVcbiAgX2NlbGxBdHRyPzogSVRhYmxlQ2VsbFByb3BzPEhUTUxUYWJsZUNlbGxFbGVtZW50PjsgICAgICAgICAgICAgICAgICAgLy8gPyBjZWxsIGh0bWwgYXR0cmlic1xuICBfY2VsbENsYXNzPzogSVRhYmxlQ2VsbFByb3BzPE5nQ3NzQ2xhc3M+OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA/IGNlbGwgY3NzIGNsYXNzXG4gIF9jZWxsUHJvcHM/OiBJVGFibGVDZWxsUHJvcHM8SVRhYmxlUm93Q2VsbFByb3BzPjsgICAgICAgICAgICAgICAgICAgIC8vIGNlbGwgcHJvcHNcbiAgX2NlbGxTdHlsZT86IElUYWJsZUNlbGxQcm9wczxDU1NTdHlsZURlY2xhcmF0aW9uPjsgICAgICAgICAgICAgICAgICAgLy8gPyBjZWxsIGNzcyBzdHlsZVxuXG4gIF9zZWxlY3RlZD86IGJvb2xlYW47XG4gIF9zZWxlY3RhYmxlPzogYm9vbGVhbjtcblxuICBba2V5OiBzdHJpbmddOiBudW1iZXIgfCBzdHJpbmcgfCBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlQ2VsbFByb3BzPFQ+IHtcbiAgX2FsbD86IFBhcnRpYWw8VD47XG5cbiAgW2tleTogc3RyaW5nXTogUGFydGlhbDxUPiB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSXRlbUludGVybmFsIGV4dGVuZHMgSUl0ZW0ge1xuICBfX19pZD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJdGVtc1BlclBhZ2VTZWxlY3Qge1xuICBleHRlcm5hbD86IGJvb2xlYW47XG4gIC8vIGxhYmVsPzogc3RyaW5nO1xuICAvLyB2YWx1ZXM/OiBBcnJheTxudW1iZXI+O1xufVxuXG4vLyBleHBvcnQgaW50ZXJmYWNlIFNjb3BlZENvbHVtbnMge1xuLy8gICBba2V5OiBzdHJpbmddOiBhbnlcbi8vICAgZGV0YWlscz86IChhOiBJSXRlbSwgYjogbnVtYmVyKSA9PiBSZWFjdE5vZGVcbi8vIH1cblxuZXhwb3J0IGludGVyZmFjZSBJU29ydGVyVmFsdWUge1xuICBjb2x1bW4/OiBzdHJpbmc7XG4gIHN0YXRlPzogbnVtYmVyIHwgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZUZpbHRlciB7XG4gIGxhenk/OiBib29sZWFuO1xuICBleHRlcm5hbD86IGJvb2xlYW47XG4gIGxhYmVsPzogc3RyaW5nO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgdmFsdWU/OiBzdHJpbmcgfCBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIFNvcnRPcmRlciA9ICdhc2MnIHwgJ2Rlc2MnIHwgMCB8IHVuZGVmaW5lZDtcblxuIl19
|