@ng-nest/ui 15.0.14 → 15.0.16
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/date-picker/picker-date.component.d.ts +3 -1
- package/esm2020/affix/affix.component.mjs +3 -3
- package/esm2020/affix/affix.module.mjs +4 -4
- package/esm2020/affix/affix.property.mjs +3 -3
- package/esm2020/alert/alert.component.mjs +3 -3
- package/esm2020/alert/alert.module.mjs +4 -4
- package/esm2020/alert/alert.property.mjs +3 -3
- package/esm2020/anchor/anchor-inner.component.mjs +3 -3
- package/esm2020/anchor/anchor.component.mjs +7 -4
- package/esm2020/anchor/anchor.module.mjs +4 -4
- package/esm2020/anchor/anchor.property.mjs +6 -6
- package/esm2020/api/api.component.mjs +3 -3
- package/esm2020/api/api.module.mjs +4 -4
- package/esm2020/auto-complete/auto-complete-portal.component.mjs +3 -3
- package/esm2020/auto-complete/auto-complete.component.mjs +3 -3
- package/esm2020/auto-complete/auto-complete.module.mjs +4 -4
- package/esm2020/auto-complete/auto-complete.property.mjs +3 -3
- package/esm2020/avatar/avatar-group.component.mjs +3 -3
- package/esm2020/avatar/avatar.component.mjs +3 -3
- package/esm2020/avatar/avatar.module.mjs +4 -4
- package/esm2020/avatar/avatar.property.mjs +6 -6
- package/esm2020/back-top/back-top.component.mjs +3 -3
- package/esm2020/back-top/back-top.module.mjs +4 -4
- package/esm2020/back-top/back-top.property.mjs +3 -3
- package/esm2020/badge/badge.component.mjs +3 -3
- package/esm2020/badge/badge.module.mjs +4 -4
- package/esm2020/badge/badge.property.mjs +3 -3
- package/esm2020/base-form/base-form.component.mjs +3 -3
- package/esm2020/base-form/base-form.module.mjs +4 -4
- package/esm2020/base-form/base-form.property.mjs +3 -3
- package/esm2020/border/border.component.mjs +3 -3
- package/esm2020/border/border.module.mjs +4 -4
- package/esm2020/button/button.component.mjs +3 -3
- package/esm2020/button/button.module.mjs +4 -4
- package/esm2020/button/button.property.mjs +6 -6
- package/esm2020/button/buttons.component.mjs +3 -3
- package/esm2020/calendar/calendar.component.mjs +3 -3
- package/esm2020/calendar/calendar.module.mjs +4 -4
- package/esm2020/calendar/calendar.property.mjs +3 -3
- package/esm2020/card/card.component.mjs +3 -3
- package/esm2020/card/card.module.mjs +4 -4
- package/esm2020/card/card.property.mjs +3 -3
- package/esm2020/carousel/carousel-panel.component.mjs +3 -3
- package/esm2020/carousel/carousel.component.mjs +3 -3
- package/esm2020/carousel/carousel.module.mjs +4 -4
- package/esm2020/carousel/carousel.property.mjs +6 -6
- package/esm2020/cascade/cascade-portal.component.mjs +3 -3
- package/esm2020/cascade/cascade.component.mjs +3 -3
- package/esm2020/cascade/cascade.module.mjs +4 -4
- package/esm2020/cascade/cascade.property.mjs +3 -3
- package/esm2020/checkbox/checkbox.component.mjs +3 -3
- package/esm2020/checkbox/checkbox.module.mjs +4 -4
- package/esm2020/checkbox/checkbox.property.mjs +3 -3
- package/esm2020/collapse/collapse-panel.component.mjs +3 -3
- package/esm2020/collapse/collapse.component.mjs +3 -3
- package/esm2020/collapse/collapse.module.mjs +4 -4
- package/esm2020/collapse/collapse.property.mjs +6 -6
- package/esm2020/color/color.component.mjs +3 -3
- package/esm2020/color/color.module.mjs +4 -4
- package/esm2020/color/color.property.mjs +3 -3
- package/esm2020/color-picker/color-picker-portal.component.mjs +5 -5
- package/esm2020/color-picker/color-picker.component.mjs +3 -3
- package/esm2020/color-picker/color-picker.module.mjs +4 -4
- package/esm2020/color-picker/color-picker.property.mjs +3 -3
- package/esm2020/comment/comment-reply.component.mjs +3 -3
- package/esm2020/comment/comment.component.mjs +3 -3
- package/esm2020/comment/comment.module.mjs +4 -4
- package/esm2020/comment/comment.property.mjs +6 -6
- package/esm2020/container/aside.component.mjs +3 -3
- package/esm2020/container/container.component.mjs +3 -3
- package/esm2020/container/container.module.mjs +4 -4
- package/esm2020/container/container.property.mjs +12 -12
- package/esm2020/container/footer.component.mjs +3 -3
- package/esm2020/container/header.component.mjs +3 -3
- package/esm2020/container/main.component.mjs +3 -3
- package/esm2020/core/config/config.service.mjs +3 -3
- package/esm2020/core/services/http.service.mjs +3 -3
- package/esm2020/core/services/preloading-strategy.service.mjs +3 -3
- package/esm2020/core/services/storage.service.mjs +3 -3
- package/esm2020/core/theme/theme.service.mjs +3 -3
- package/esm2020/crumb/crumb.component.mjs +3 -3
- package/esm2020/crumb/crumb.module.mjs +4 -4
- package/esm2020/crumb/crumb.property.mjs +3 -3
- package/esm2020/date-picker/date-picker-portal.component.mjs +3 -3
- package/esm2020/date-picker/date-picker.component.mjs +3 -3
- package/esm2020/date-picker/date-picker.module.mjs +4 -4
- package/esm2020/date-picker/date-picker.property.mjs +15 -15
- package/esm2020/date-picker/date-range-portal.component.mjs +5 -8
- package/esm2020/date-picker/date-range.component.mjs +6 -5
- package/esm2020/date-picker/picker-date.component.mjs +18 -6
- package/esm2020/date-picker/picker-month.component.mjs +3 -3
- package/esm2020/date-picker/picker-year.component.mjs +3 -3
- package/esm2020/description/description-item.component.mjs +3 -3
- package/esm2020/description/description.component.mjs +3 -3
- package/esm2020/description/description.module.mjs +4 -4
- package/esm2020/description/description.property.mjs +6 -6
- package/esm2020/dialog/dialog-container.component.mjs +3 -3
- package/esm2020/dialog/dialog-portal.component.mjs +3 -3
- package/esm2020/dialog/dialog-portal.directives.mjs +18 -18
- package/esm2020/dialog/dialog.component.mjs +3 -3
- package/esm2020/dialog/dialog.module.mjs +4 -4
- package/esm2020/dialog/dialog.property.mjs +6 -6
- package/esm2020/dialog/dialog.service.mjs +3 -3
- package/esm2020/doc/doc.component.mjs +3 -3
- package/esm2020/doc/doc.module.mjs +4 -4
- package/esm2020/drawer/drawer-container.component.mjs +3 -3
- package/esm2020/drawer/drawer-portal.component.mjs +3 -3
- package/esm2020/drawer/drawer-portal.directives.mjs +9 -9
- package/esm2020/drawer/drawer.component.mjs +3 -3
- package/esm2020/drawer/drawer.module.mjs +4 -4
- package/esm2020/drawer/drawer.property.mjs +6 -6
- package/esm2020/drawer/drawer.service.mjs +3 -3
- package/esm2020/dropdown/dropdown-portal.component.mjs +3 -3
- package/esm2020/dropdown/dropdown.component.mjs +3 -3
- package/esm2020/dropdown/dropdown.module.mjs +4 -4
- package/esm2020/dropdown/dropdown.property.mjs +3 -3
- package/esm2020/empty/empty.component.mjs +3 -3
- package/esm2020/empty/empty.module.mjs +4 -4
- package/esm2020/empty/empty.property.mjs +3 -3
- package/esm2020/examples/examples.component.mjs +3 -3
- package/esm2020/examples/examples.module.mjs +4 -4
- package/esm2020/find/find.component.mjs +3 -3
- package/esm2020/find/find.module.mjs +4 -4
- package/esm2020/find/find.property.mjs +3 -3
- package/esm2020/form/control.component.mjs +3 -3
- package/esm2020/form/form.component.mjs +3 -3
- package/esm2020/form/form.module.mjs +4 -4
- package/esm2020/form/form.property.mjs +6 -6
- package/esm2020/highlight/highlight.component.mjs +3 -3
- package/esm2020/highlight/highlight.module.mjs +4 -4
- package/esm2020/highlight/highlight.property.mjs +3 -3
- package/esm2020/i18n/i18n.directive.mjs +3 -3
- package/esm2020/i18n/i18n.module.mjs +4 -4
- package/esm2020/i18n/i18n.pipe.mjs +3 -3
- package/esm2020/i18n/i18n.service.mjs +3 -3
- package/esm2020/icon/icon.component.mjs +3 -3
- package/esm2020/icon/icon.module.mjs +4 -4
- package/esm2020/icon/icon.property.mjs +3 -3
- package/esm2020/icon/icon.service.mjs +3 -3
- package/esm2020/image/image-group.component.mjs +3 -3
- package/esm2020/image/image-preview.component.mjs +3 -3
- package/esm2020/image/image.component.mjs +3 -3
- package/esm2020/image/image.module.mjs +4 -4
- package/esm2020/image/image.property.mjs +6 -6
- package/esm2020/inner/inner.component.mjs +3 -3
- package/esm2020/inner/inner.module.mjs +4 -4
- package/esm2020/inner/inner.property.mjs +3 -3
- package/esm2020/input/input-group.component.mjs +3 -3
- package/esm2020/input/input.component.mjs +3 -3
- package/esm2020/input/input.module.mjs +4 -4
- package/esm2020/input/input.property.mjs +6 -6
- package/esm2020/input-number/input-number.component.mjs +3 -3
- package/esm2020/input-number/input-number.module.mjs +4 -4
- package/esm2020/input-number/input-number.property.mjs +3 -3
- package/esm2020/keyword/keyword.directive.mjs +3 -3
- package/esm2020/keyword/keyword.module.mjs +4 -4
- package/esm2020/keyword/keyword.property.mjs +3 -3
- package/esm2020/layout/col.component.mjs +3 -3
- package/esm2020/layout/layout.module.mjs +4 -4
- package/esm2020/layout/layout.property.mjs +6 -6
- package/esm2020/layout/row.component.mjs +3 -3
- package/esm2020/link/link.component.mjs +3 -3
- package/esm2020/link/link.module.mjs +4 -4
- package/esm2020/link/link.property.mjs +3 -3
- package/esm2020/list/list-drop-group.directive.mjs +3 -3
- package/esm2020/list/list-option.component.mjs +3 -3
- package/esm2020/list/list.component.mjs +3 -3
- package/esm2020/list/list.module.mjs +4 -4
- package/esm2020/list/list.property.mjs +6 -6
- package/esm2020/loading/loading.component.mjs +3 -3
- package/esm2020/loading/loading.module.mjs +4 -4
- package/esm2020/loading/loading.property.mjs +3 -3
- package/esm2020/menu/menu-node.component.mjs +3 -3
- package/esm2020/menu/menu.component.mjs +3 -3
- package/esm2020/menu/menu.module.mjs +4 -4
- package/esm2020/menu/menu.property.mjs +6 -6
- package/esm2020/message/message.component.mjs +3 -3
- package/esm2020/message/message.module.mjs +4 -4
- package/esm2020/message/message.service.mjs +3 -3
- package/esm2020/message-box/message-box.component.mjs +3 -3
- package/esm2020/message-box/message-box.module.mjs +4 -4
- package/esm2020/message-box/message-box.service.mjs +3 -3
- package/esm2020/notification/notification.component.mjs +3 -3
- package/esm2020/notification/notification.module.mjs +4 -4
- package/esm2020/notification/notification.service.mjs +3 -3
- package/esm2020/outlet/outlet.directive.mjs +3 -3
- package/esm2020/outlet/outlet.module.mjs +4 -4
- package/esm2020/page-header/page-header.component.mjs +3 -3
- package/esm2020/page-header/page-header.module.mjs +4 -4
- package/esm2020/page-header/page-header.property.mjs +3 -3
- package/esm2020/pagination/pagination.component.mjs +3 -3
- package/esm2020/pagination/pagination.module.mjs +4 -4
- package/esm2020/pagination/pagination.property.mjs +3 -3
- package/esm2020/pattern/pattern.component.mjs +3 -3
- package/esm2020/pattern/pattern.module.mjs +4 -4
- package/esm2020/popconfirm/popconfirm.component.mjs +3 -3
- package/esm2020/popconfirm/popconfirm.module.mjs +4 -4
- package/esm2020/popconfirm/popconfirm.property.mjs +3 -3
- package/esm2020/popover/popover-portal.component.mjs +3 -3
- package/esm2020/popover/popover.directive.mjs +3 -3
- package/esm2020/popover/popover.module.mjs +4 -4
- package/esm2020/popover/popover.property.mjs +3 -3
- package/esm2020/portal/portal.module.mjs +4 -4
- package/esm2020/portal/portal.service.mjs +3 -3
- package/esm2020/progress/progress.component.mjs +3 -3
- package/esm2020/progress/progress.module.mjs +4 -4
- package/esm2020/progress/progress.property.mjs +3 -3
- package/esm2020/radio/radio.component.mjs +3 -3
- package/esm2020/radio/radio.module.mjs +4 -4
- package/esm2020/radio/radio.property.mjs +3 -3
- package/esm2020/rate/rate.component.mjs +3 -3
- package/esm2020/rate/rate.module.mjs +4 -4
- package/esm2020/rate/rate.property.mjs +3 -3
- package/esm2020/resizable/resizable.directive.mjs +3 -3
- package/esm2020/resizable/resizable.module.mjs +4 -4
- package/esm2020/resizable/resizable.property.mjs +3 -3
- package/esm2020/result/result.component.mjs +3 -3
- package/esm2020/result/result.module.mjs +4 -4
- package/esm2020/result/result.property.mjs +3 -3
- package/esm2020/ripple/ripple.directive.mjs +3 -3
- package/esm2020/ripple/ripple.module.mjs +4 -4
- package/esm2020/ripple/ripple.property.mjs +3 -3
- package/esm2020/select/select-portal.component.mjs +3 -3
- package/esm2020/select/select.component.mjs +3 -3
- package/esm2020/select/select.module.mjs +4 -4
- package/esm2020/select/select.property.mjs +3 -3
- package/esm2020/skeleton/skeleton.component.mjs +3 -3
- package/esm2020/skeleton/skeleton.module.mjs +4 -4
- package/esm2020/skeleton/skeleton.property.mjs +3 -3
- package/esm2020/slider/slider.component.mjs +7 -4
- package/esm2020/slider/slider.module.mjs +4 -4
- package/esm2020/slider/slider.property.mjs +3 -3
- package/esm2020/slider-select/slider-select.component.mjs +3 -3
- package/esm2020/slider-select/slider-select.module.mjs +4 -4
- package/esm2020/slider-select/slider-select.property.mjs +3 -3
- package/esm2020/statistic/countdown.component.mjs +3 -3
- package/esm2020/statistic/statistic.component.mjs +3 -3
- package/esm2020/statistic/statistic.module.mjs +4 -4
- package/esm2020/statistic/statistic.property.mjs +6 -6
- package/esm2020/steps/steps.component.mjs +3 -3
- package/esm2020/steps/steps.module.mjs +4 -4
- package/esm2020/steps/steps.property.mjs +3 -3
- package/esm2020/switch/switch.component.mjs +3 -3
- package/esm2020/switch/switch.module.mjs +4 -4
- package/esm2020/switch/switch.property.mjs +3 -3
- package/esm2020/table/drag.directive.mjs +3 -3
- package/esm2020/table/table-body.component.mjs +3 -3
- package/esm2020/table/table-foot.component.mjs +3 -3
- package/esm2020/table/table-head.component.mjs +3 -3
- package/esm2020/table/table.component.mjs +3 -3
- package/esm2020/table/table.module.mjs +4 -4
- package/esm2020/table/table.property.mjs +12 -12
- package/esm2020/tabs/tab-content.component.mjs +3 -3
- package/esm2020/tabs/tab-link.directive.mjs +6 -6
- package/esm2020/tabs/tab.component.mjs +3 -3
- package/esm2020/tabs/tabs.component.mjs +3 -3
- package/esm2020/tabs/tabs.module.mjs +4 -4
- package/esm2020/tabs/tabs.property.mjs +6 -6
- package/esm2020/tag/tag.component.mjs +3 -3
- package/esm2020/tag/tag.module.mjs +4 -4
- package/esm2020/tag/tag.property.mjs +3 -3
- package/esm2020/text-retract/text-retract.component.mjs +3 -3
- package/esm2020/text-retract/text-retract.module.mjs +4 -4
- package/esm2020/text-retract/text-retract.property.mjs +3 -3
- package/esm2020/textarea/textarea.component.mjs +3 -3
- package/esm2020/textarea/textarea.module.mjs +4 -4
- package/esm2020/textarea/textarea.property.mjs +3 -3
- package/esm2020/theme/theme.component.mjs +3 -3
- package/esm2020/theme/theme.module.mjs +4 -4
- package/esm2020/theme/theme.property.mjs +3 -3
- package/esm2020/time-ago/time-ago.module.mjs +4 -4
- package/esm2020/time-ago/time-ago.pipe.mjs +3 -3
- package/esm2020/time-picker/time-picker-frame.component.mjs +3 -3
- package/esm2020/time-picker/time-picker-portal.component.mjs +3 -3
- package/esm2020/time-picker/time-picker.component.mjs +3 -3
- package/esm2020/time-picker/time-picker.module.mjs +4 -4
- package/esm2020/time-picker/time-picker.property.mjs +3 -3
- package/esm2020/time-range/time-range.module.mjs +4 -4
- package/esm2020/time-range/time-range.pipe.mjs +3 -3
- package/esm2020/timeline/timeline.component.mjs +3 -3
- package/esm2020/timeline/timeline.module.mjs +4 -4
- package/esm2020/timeline/timeline.property.mjs +3 -3
- package/esm2020/tooltip/tooltip-portal.component.mjs +3 -3
- package/esm2020/tooltip/tooltip.directive.mjs +3 -3
- package/esm2020/tooltip/tooltip.module.mjs +4 -4
- package/esm2020/tooltip/tooltip.property.mjs +3 -3
- package/esm2020/transfer/transfer.component.mjs +3 -3
- package/esm2020/transfer/transfer.module.mjs +4 -4
- package/esm2020/transfer/transfer.property.mjs +3 -3
- package/esm2020/tree/tree-node.component.mjs +3 -3
- package/esm2020/tree/tree.component.mjs +50 -62
- package/esm2020/tree/tree.module.mjs +4 -4
- package/esm2020/tree/tree.property.mjs +6 -6
- package/esm2020/tree/tree.service.mjs +3 -3
- package/esm2020/tree-file/tree-file.component.mjs +3 -3
- package/esm2020/tree-file/tree-file.module.mjs +4 -4
- package/esm2020/tree-file/tree-file.property.mjs +3 -3
- package/esm2020/tree-select/tree-select-portal.component.mjs +3 -3
- package/esm2020/tree-select/tree-select.component.mjs +3 -3
- package/esm2020/tree-select/tree-select.module.mjs +4 -4
- package/esm2020/tree-select/tree-select.property.mjs +3 -3
- package/esm2020/typography/typography.component.mjs +3 -3
- package/esm2020/typography/typography.module.mjs +4 -4
- package/esm2020/typography/typography.property.mjs +3 -3
- package/esm2020/upload/upload-portal.component.mjs +3 -3
- package/esm2020/upload/upload.component.mjs +3 -3
- package/esm2020/upload/upload.module.mjs +4 -4
- package/esm2020/upload/upload.property.mjs +3 -3
- package/fesm2015/ng-nest-ui-affix.mjs +10 -11
- package/fesm2015/ng-nest-ui-alert.mjs +10 -11
- package/fesm2015/ng-nest-ui-anchor.mjs +19 -17
- package/fesm2015/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-api.mjs +7 -8
- package/fesm2015/ng-nest-ui-auto-complete.mjs +13 -14
- package/fesm2015/ng-nest-ui-avatar.mjs +16 -17
- package/fesm2015/ng-nest-ui-back-top.mjs +10 -11
- package/fesm2015/ng-nest-ui-badge.mjs +10 -11
- package/fesm2015/ng-nest-ui-base-form.mjs +10 -11
- package/fesm2015/ng-nest-ui-border.mjs +7 -8
- package/fesm2015/ng-nest-ui-button.mjs +16 -17
- package/fesm2015/ng-nest-ui-calendar.mjs +10 -11
- package/fesm2015/ng-nest-ui-card.mjs +10 -11
- package/fesm2015/ng-nest-ui-carousel.mjs +16 -17
- package/fesm2015/ng-nest-ui-cascade.mjs +13 -14
- package/fesm2015/ng-nest-ui-checkbox.mjs +10 -11
- package/fesm2015/ng-nest-ui-collapse.mjs +16 -17
- package/fesm2015/ng-nest-ui-color-picker.mjs +14 -15
- package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-color.mjs +10 -11
- package/fesm2015/ng-nest-ui-comment.mjs +16 -17
- package/fesm2015/ng-nest-ui-container.mjs +31 -32
- package/fesm2015/ng-nest-ui-core.mjs +15 -16
- package/fesm2015/ng-nest-ui-crumb.mjs +10 -11
- package/fesm2015/ng-nest-ui-date-picker.mjs +58 -47
- package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-description.mjs +16 -17
- package/fesm2015/ng-nest-ui-dialog.mjs +40 -41
- package/fesm2015/ng-nest-ui-doc.mjs +7 -8
- package/fesm2015/ng-nest-ui-drawer.mjs +31 -32
- package/fesm2015/ng-nest-ui-dropdown.mjs +13 -14
- package/fesm2015/ng-nest-ui-empty.mjs +10 -11
- package/fesm2015/ng-nest-ui-examples.mjs +7 -8
- package/fesm2015/ng-nest-ui-find.mjs +10 -11
- package/fesm2015/ng-nest-ui-form.mjs +16 -17
- package/fesm2015/ng-nest-ui-highlight.mjs +10 -11
- package/fesm2015/ng-nest-ui-i18n.mjs +13 -14
- package/fesm2015/ng-nest-ui-icon.mjs +13 -14
- package/fesm2015/ng-nest-ui-image.mjs +19 -20
- package/fesm2015/ng-nest-ui-inner.mjs +10 -11
- package/fesm2015/ng-nest-ui-input-number.mjs +10 -11
- package/fesm2015/ng-nest-ui-input.mjs +16 -17
- package/fesm2015/ng-nest-ui-keyword.mjs +10 -11
- package/fesm2015/ng-nest-ui-layout.mjs +16 -17
- package/fesm2015/ng-nest-ui-link.mjs +10 -11
- package/fesm2015/ng-nest-ui-list.mjs +19 -20
- package/fesm2015/ng-nest-ui-loading.mjs +10 -11
- package/fesm2015/ng-nest-ui-menu.mjs +16 -17
- package/fesm2015/ng-nest-ui-message-box.mjs +10 -11
- package/fesm2015/ng-nest-ui-message.mjs +10 -11
- package/fesm2015/ng-nest-ui-notification.mjs +10 -11
- package/fesm2015/ng-nest-ui-outlet.mjs +7 -8
- package/fesm2015/ng-nest-ui-page-header.mjs +10 -11
- package/fesm2015/ng-nest-ui-pagination.mjs +10 -11
- package/fesm2015/ng-nest-ui-pattern.mjs +7 -8
- package/fesm2015/ng-nest-ui-popconfirm.mjs +10 -11
- package/fesm2015/ng-nest-ui-popover.mjs +13 -14
- package/fesm2015/ng-nest-ui-portal.mjs +7 -8
- package/fesm2015/ng-nest-ui-progress.mjs +10 -11
- package/fesm2015/ng-nest-ui-radio.mjs +10 -11
- package/fesm2015/ng-nest-ui-rate.mjs +10 -11
- package/fesm2015/ng-nest-ui-resizable.mjs +10 -11
- package/fesm2015/ng-nest-ui-result.mjs +10 -11
- package/fesm2015/ng-nest-ui-ripple.mjs +10 -11
- package/fesm2015/ng-nest-ui-select.mjs +13 -14
- package/fesm2015/ng-nest-ui-skeleton.mjs +10 -11
- package/fesm2015/ng-nest-ui-slider-select.mjs +10 -11
- package/fesm2015/ng-nest-ui-slider.mjs +13 -11
- package/fesm2015/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-statistic.mjs +16 -17
- package/fesm2015/ng-nest-ui-steps.mjs +10 -11
- package/fesm2015/ng-nest-ui-switch.mjs +10 -11
- package/fesm2015/ng-nest-ui-table.mjs +31 -32
- package/fesm2015/ng-nest-ui-tabs.mjs +25 -26
- package/fesm2015/ng-nest-ui-tag.mjs +10 -11
- package/fesm2015/ng-nest-ui-text-retract.mjs +10 -11
- package/fesm2015/ng-nest-ui-textarea.mjs +10 -11
- package/fesm2015/ng-nest-ui-theme.mjs +10 -11
- package/fesm2015/ng-nest-ui-time-ago.mjs +7 -8
- package/fesm2015/ng-nest-ui-time-picker.mjs +16 -17
- package/fesm2015/ng-nest-ui-time-range.mjs +7 -8
- package/fesm2015/ng-nest-ui-timeline.mjs +10 -11
- package/fesm2015/ng-nest-ui-tooltip.mjs +13 -14
- package/fesm2015/ng-nest-ui-transfer.mjs +10 -11
- package/fesm2015/ng-nest-ui-tree-file.mjs +10 -10
- package/fesm2015/ng-nest-ui-tree-select.mjs +13 -14
- package/fesm2015/ng-nest-ui-tree.mjs +64 -77
- package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-typography.mjs +10 -11
- package/fesm2015/ng-nest-ui-upload.mjs +13 -14
- package/fesm2015/ng-nest-ui.mjs +0 -1
- package/fesm2020/ng-nest-ui-affix.mjs +10 -11
- package/fesm2020/ng-nest-ui-alert.mjs +10 -11
- package/fesm2020/ng-nest-ui-anchor.mjs +19 -17
- package/fesm2020/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-api.mjs +7 -8
- package/fesm2020/ng-nest-ui-auto-complete.mjs +13 -14
- package/fesm2020/ng-nest-ui-avatar.mjs +16 -17
- package/fesm2020/ng-nest-ui-back-top.mjs +10 -11
- package/fesm2020/ng-nest-ui-badge.mjs +10 -11
- package/fesm2020/ng-nest-ui-base-form.mjs +10 -11
- package/fesm2020/ng-nest-ui-border.mjs +7 -8
- package/fesm2020/ng-nest-ui-button.mjs +16 -17
- package/fesm2020/ng-nest-ui-calendar.mjs +10 -11
- package/fesm2020/ng-nest-ui-card.mjs +10 -11
- package/fesm2020/ng-nest-ui-carousel.mjs +16 -17
- package/fesm2020/ng-nest-ui-cascade.mjs +13 -14
- package/fesm2020/ng-nest-ui-checkbox.mjs +10 -11
- package/fesm2020/ng-nest-ui-collapse.mjs +16 -17
- package/fesm2020/ng-nest-ui-color-picker.mjs +14 -15
- package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-color.mjs +10 -11
- package/fesm2020/ng-nest-ui-comment.mjs +16 -17
- package/fesm2020/ng-nest-ui-container.mjs +31 -32
- package/fesm2020/ng-nest-ui-core.mjs +15 -16
- package/fesm2020/ng-nest-ui-crumb.mjs +10 -11
- package/fesm2020/ng-nest-ui-date-picker.mjs +57 -47
- package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-description.mjs +16 -17
- package/fesm2020/ng-nest-ui-dialog.mjs +40 -41
- package/fesm2020/ng-nest-ui-doc.mjs +7 -8
- package/fesm2020/ng-nest-ui-drawer.mjs +31 -32
- package/fesm2020/ng-nest-ui-dropdown.mjs +13 -14
- package/fesm2020/ng-nest-ui-empty.mjs +10 -11
- package/fesm2020/ng-nest-ui-examples.mjs +7 -8
- package/fesm2020/ng-nest-ui-find.mjs +10 -11
- package/fesm2020/ng-nest-ui-form.mjs +16 -17
- package/fesm2020/ng-nest-ui-highlight.mjs +10 -11
- package/fesm2020/ng-nest-ui-i18n.mjs +13 -14
- package/fesm2020/ng-nest-ui-icon.mjs +13 -14
- package/fesm2020/ng-nest-ui-image.mjs +19 -20
- package/fesm2020/ng-nest-ui-inner.mjs +10 -11
- package/fesm2020/ng-nest-ui-input-number.mjs +10 -11
- package/fesm2020/ng-nest-ui-input.mjs +16 -17
- package/fesm2020/ng-nest-ui-keyword.mjs +10 -11
- package/fesm2020/ng-nest-ui-layout.mjs +16 -17
- package/fesm2020/ng-nest-ui-link.mjs +10 -11
- package/fesm2020/ng-nest-ui-list.mjs +19 -20
- package/fesm2020/ng-nest-ui-loading.mjs +10 -11
- package/fesm2020/ng-nest-ui-menu.mjs +16 -17
- package/fesm2020/ng-nest-ui-message-box.mjs +10 -11
- package/fesm2020/ng-nest-ui-message.mjs +10 -11
- package/fesm2020/ng-nest-ui-notification.mjs +10 -11
- package/fesm2020/ng-nest-ui-outlet.mjs +7 -8
- package/fesm2020/ng-nest-ui-page-header.mjs +10 -11
- package/fesm2020/ng-nest-ui-pagination.mjs +10 -11
- package/fesm2020/ng-nest-ui-pattern.mjs +7 -8
- package/fesm2020/ng-nest-ui-popconfirm.mjs +10 -11
- package/fesm2020/ng-nest-ui-popover.mjs +13 -14
- package/fesm2020/ng-nest-ui-portal.mjs +7 -8
- package/fesm2020/ng-nest-ui-progress.mjs +10 -11
- package/fesm2020/ng-nest-ui-radio.mjs +10 -11
- package/fesm2020/ng-nest-ui-rate.mjs +10 -11
- package/fesm2020/ng-nest-ui-resizable.mjs +10 -11
- package/fesm2020/ng-nest-ui-result.mjs +10 -11
- package/fesm2020/ng-nest-ui-ripple.mjs +10 -11
- package/fesm2020/ng-nest-ui-select.mjs +13 -14
- package/fesm2020/ng-nest-ui-skeleton.mjs +10 -11
- package/fesm2020/ng-nest-ui-slider-select.mjs +10 -11
- package/fesm2020/ng-nest-ui-slider.mjs +13 -11
- package/fesm2020/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-statistic.mjs +16 -17
- package/fesm2020/ng-nest-ui-steps.mjs +10 -11
- package/fesm2020/ng-nest-ui-switch.mjs +10 -11
- package/fesm2020/ng-nest-ui-table.mjs +31 -32
- package/fesm2020/ng-nest-ui-tabs.mjs +25 -26
- package/fesm2020/ng-nest-ui-tag.mjs +10 -11
- package/fesm2020/ng-nest-ui-text-retract.mjs +10 -11
- package/fesm2020/ng-nest-ui-textarea.mjs +10 -11
- package/fesm2020/ng-nest-ui-theme.mjs +10 -11
- package/fesm2020/ng-nest-ui-time-ago.mjs +7 -8
- package/fesm2020/ng-nest-ui-time-picker.mjs +16 -17
- package/fesm2020/ng-nest-ui-time-range.mjs +7 -8
- package/fesm2020/ng-nest-ui-timeline.mjs +10 -11
- package/fesm2020/ng-nest-ui-tooltip.mjs +13 -14
- package/fesm2020/ng-nest-ui-transfer.mjs +10 -11
- package/fesm2020/ng-nest-ui-tree-file.mjs +10 -10
- package/fesm2020/ng-nest-ui-tree-select.mjs +13 -14
- package/fesm2020/ng-nest-ui-tree.mjs +64 -77
- package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-typography.mjs +10 -11
- package/fesm2020/ng-nest-ui-upload.mjs +13 -14
- package/fesm2020/ng-nest-ui.mjs +0 -1
- package/package.json +1 -1
- package/slider/slider.component.d.ts +1 -1
- package/tree/tree.component.d.ts +1 -1
- package/divider/README.md +0 -9
|
@@ -45,9 +45,12 @@ export class XPickerDateComponent extends XPickerDateProperty {
|
|
|
45
45
|
}
|
|
46
46
|
return '';
|
|
47
47
|
}
|
|
48
|
-
isWeekRange() {
|
|
48
|
+
get isWeekRange() {
|
|
49
49
|
return this.type === 'week' && this.rangePicker;
|
|
50
50
|
}
|
|
51
|
+
get isNotWeekRange() {
|
|
52
|
+
return this.type !== 'week' && this.rangePicker;
|
|
53
|
+
}
|
|
51
54
|
isDisabled(date) {
|
|
52
55
|
if (this.disabledDate && XIsFunction(this.disabledDate)) {
|
|
53
56
|
return this.disabledDate(date);
|
|
@@ -98,6 +101,15 @@ export class XPickerDateComponent extends XPickerDateProperty {
|
|
|
98
101
|
}
|
|
99
102
|
return false;
|
|
100
103
|
}
|
|
104
|
+
isInRangeWeek(week) {
|
|
105
|
+
if (!this.rangeType || !this.rangeValue)
|
|
106
|
+
return;
|
|
107
|
+
if (!XIsNull(this.rangeValue[0]) && !XIsNull(this.rangeValue[1]) && week.length > 1) {
|
|
108
|
+
let time = week[1].date?.getTime();
|
|
109
|
+
return time > this.rangeValue[0] && time < this.rangeValue[1];
|
|
110
|
+
}
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
101
113
|
isStartDate(date) {
|
|
102
114
|
if (this.type === 'week' || !this.rangeType || !this.rangeValue)
|
|
103
115
|
return;
|
|
@@ -308,10 +320,10 @@ export class XPickerDateComponent extends XPickerDateProperty {
|
|
|
308
320
|
return item;
|
|
309
321
|
}
|
|
310
322
|
}
|
|
311
|
-
/** @nocollapse */ XPickerDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
312
|
-
/** @nocollapse */ XPickerDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerDateComponent, selector: "x-picker-date", providers: [DatePipe, LowerCasePipe], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-picker-date\" [class.x-date-picker-datetemp]=\"dateTemp\">\r\n <div class=\"x-picker-date-header\" *ngIf=\"showHeader\">\r\n <x-link icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\" [class.x-visibility]=\"!lastYearBtn\"></x-link>\r\n <x-link icon=\"fto-chevron-left\" (click)=\"nextMonth(-1)\" [class.x-visibility]=\"!lastMonthBtn\"></x-link>\r\n <div class=\"x-picker-date-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-link>\r\n <x-link (click)=\"typeOnChange('month')\">{{ getLocaleMonth(display) }}</x-link>\r\n </div>\r\n <x-link icon=\"fto-chevron-right\" (click)=\"nextMonth(1)\" [class.x-visibility]=\"!nextMonthBtn\"></x-link>\r\n <x-link icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\" [class.x-visibility]=\"!nextYearBtn\"></x-link>\r\n </div>\r\n <div class=\"x-picker-date-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let title of titles; trackBy: trackByNode\">{{ title | xI18n }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"let weeks of weekDates\"\r\n [class.x-date-week-active]=\"!rangePicker && isWeekActive(weeks)\"\r\n [class.x-date-week-active]=\"isWeekRange && isStartWeek(weeks)\"\r\n [class.x-date-week-active]=\"isWeekRange && isEndWeek(weeks)\"\r\n >\r\n <ng-container *ngFor=\"let week of weeks; trackBy: trackByNode\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-week]=\"week.type === 'week'\"\r\n [class.x-date-disabled]=\"week.isDisabled\"\r\n [class.x-date-last-or-next]=\"week.isLastOrNext\"\r\n [class.x-date-now]=\"week.isNow\"\r\n [class.x-date-first-day]=\"week.isFirstDay\"\r\n [class.x-date-last-day]=\"week.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartDate(week.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndDate(week.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && week.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && week.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && week.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && week.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && week.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && week.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && week.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && week.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && week.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && week.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && week.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && week.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && week.isInRangeHover\"\r\n [class.x-date-active]=\"\r\n !rangePicker && week.type !== 'week' && (week.date | date : 'yyyyMMdd') === (model | date : 'yyyyMMdd')\r\n \"\r\n title=\"{{ week.date | date : 'yyyy-MM-dd' }}\"\r\n (click)=\"week.type !== 'week' && !week.isDisabled && dateClick(week)\"\r\n (mouseenter)=\"week.type !== 'week' && !week.isDisabled && rangePicker && rangeHover && onTdMouseenter(week)\"\r\n (mouseleave)=\"week.type !== 'week' && !week.isDisabled && rangePicker && rangeHover && onTdMouseleave(week)\"\r\n >\r\n <div *ngIf=\"!dateTemp\" class=\"x-date-text\">\r\n <ng-container [ngSwitch]=\"week.type\">\r\n <ng-container *ngSwitchCase=\"'week'\">{{ week.week }}</ng-container>\r\n <ng-container *ngSwitchDefault>{{ week.date | date : 'd' }}</ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"dateTemp\">\r\n <ng-container *ngTemplateOutlet=\"dateTemp; context: { date$: week.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-date{margin:0;padding:0}.x-picker-date-header{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) solid var(--x-border);color:var(--x-text-500);font-size:var(--x-font-size-medium)}.x-picker-date-header x-link{height:100%;-webkit-user-select:none;user-select:none}.x-picker-date-header .x-link{padding:0 .25rem}.x-picker-date-year-month{flex:1;text-align:center;color:var(--x-text);font-size:var(--x-font-size)}.x-picker-date-body{padding:.1375rem .5rem}.x-picker-date-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-date-body>table tr{display:flex;align-items:center;justify-content:center}.x-picker-date-body>table tr.x-date-week-active .x-picker-date-item,.x-picker-date-body>table tr.x-date-week-active .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);color:var(--x-background-100)}.x-picker-date-body>table tbody tr{padding:.125rem 0}.x-picker-date-body>table th{flex:1;font-weight:400;height:2rem;line-height:2rem;color:var(--x-text-400);-webkit-user-select:none;user-select:none}.x-picker-date-body>table td{padding:.125rem 0;flex:1;-webkit-user-select:none;user-select:none}.x-picker-date-body>table td:first-child{border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius)}.x-picker-date-body>table td:last-child{border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius)}.x-picker-date-body .x-picker-date-item{text-align:center;cursor:pointer;color:var(--x-text-300);position:relative;transition:var(--x-animation-duration-base)}.x-picker-date-body .x-picker-date-item .x-date-text{width:1.75rem;height:1.625rem;display:flex;align-items:center;justify-content:center;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-date-body .x-picker-date-item:after,.x-picker-date-body .x-picker-date-item:before{height:1.625rem}.x-picker-date-body .x-picker-date-item:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-date-body .x-picker-date-item.x-date-last-or-next{color:var(--x-text-700)}.x-picker-date-body .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-date-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:1.75rem}.x-picker-date-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:1.75rem}.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before,.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-last-day:first-child:not(.x-date-last-or-next):before{width:1.75rem}.x-picker-date-body .x-picker-date-item.x-date-disabled{cursor:default;background-color:var(--x-background-a200);color:var(--x-text-700)}.x-picker-date .x-visibility{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i4.XLinkComponent, selector: "x-link" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i3.XI18nPipe, name: "xI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
313
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
323
|
+
/** @nocollapse */ XPickerDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XPickerDateComponent, deps: [{ token: i0.Renderer2 }, { token: i1.DatePipe }, { token: i1.LowerCasePipe }, { token: i0.ChangeDetectorRef }, { token: i2.XConfigService }, { token: i3.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
324
|
+
/** @nocollapse */ XPickerDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XPickerDateComponent, selector: "x-picker-date", providers: [DatePipe, LowerCasePipe], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-picker-date\" [class.x-date-picker-datetemp]=\"dateTemp\">\r\n <div class=\"x-picker-date-header\" *ngIf=\"showHeader\">\r\n <x-link icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\" [class.x-visibility]=\"!lastYearBtn\"></x-link>\r\n <x-link icon=\"fto-chevron-left\" (click)=\"nextMonth(-1)\" [class.x-visibility]=\"!lastMonthBtn\"></x-link>\r\n <div class=\"x-picker-date-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-link>\r\n <x-link (click)=\"typeOnChange('month')\">{{ getLocaleMonth(display) }}</x-link>\r\n </div>\r\n <x-link icon=\"fto-chevron-right\" (click)=\"nextMonth(1)\" [class.x-visibility]=\"!nextMonthBtn\"></x-link>\r\n <x-link icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\" [class.x-visibility]=\"!nextYearBtn\"></x-link>\r\n </div>\r\n <div class=\"x-picker-date-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let title of titles; trackBy: trackByNode\">{{ title | xI18n }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"let weeks of weekDates\"\r\n [class.x-date-week-active]=\"!rangePicker && isWeekActive(weeks)\"\r\n [class.x-date-week-start-active]=\"isWeekRange && isStartWeek(weeks)\"\r\n [class.x-date-week-end-active]=\"isWeekRange && isEndWeek(weeks)\"\r\n [class.x-date-week-in-range]=\"isWeekRange && isInRangeWeek(weeks)\"\r\n >\r\n <ng-container *ngFor=\"let week of weeks; trackBy: trackByNode\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-week]=\"week.type === 'week'\"\r\n [class.x-date-disabled]=\"week.isDisabled\"\r\n [class.x-date-last-or-next]=\"week.isLastOrNext\"\r\n [class.x-date-now]=\"week.isNow\"\r\n [class.x-date-first-day]=\"week.isFirstDay\"\r\n [class.x-date-last-day]=\"week.isLastDay\"\r\n [class.x-date-range-start]=\"isNotWeekRange && isStartDate(week.date!)\"\r\n [class.x-date-range-end]=\"isNotWeekRange && isEndDate(week.date!)\"\r\n [class.x-date-range-start-left]=\"isNotWeekRange && week.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"isNotWeekRange && week.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"isNotWeekRange && week.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"isNotWeekRange && week.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"isNotWeekRange && week.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"isNotWeekRange && week.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"isNotWeekRange && week.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"isNotWeekRange && week.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"isNotWeekRange && week.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"isNotWeekRange && week.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"isNotWeekRange && week.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"isNotWeekRange && week.isInRange\"\r\n [class.x-date-in-range-hover]=\"isNotWeekRange && week.isInRangeHover\"\r\n [class.x-date-active]=\"\r\n !rangePicker && week.type !== 'week' && (week.date | date : 'yyyyMMdd') === (model | date : 'yyyyMMdd')\r\n \"\r\n title=\"{{ week.date | date : 'yyyy-MM-dd' }}\"\r\n (click)=\"week.type !== 'week' && !week.isDisabled && dateClick(week)\"\r\n (mouseenter)=\"week.type !== 'week' && !week.isDisabled && rangePicker && rangeHover && onTdMouseenter(week)\"\r\n (mouseleave)=\"week.type !== 'week' && !week.isDisabled && rangePicker && rangeHover && onTdMouseleave(week)\"\r\n >\r\n <div *ngIf=\"!dateTemp\" class=\"x-date-text\">\r\n <ng-container [ngSwitch]=\"week.type\">\r\n <ng-container *ngSwitchCase=\"'week'\">{{ week.week }}</ng-container>\r\n <ng-container *ngSwitchDefault>{{ week.date | date : 'd' }}</ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"dateTemp\">\r\n <ng-container *ngTemplateOutlet=\"dateTemp; context: { date$: week.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-date{margin:0;padding:0}.x-picker-date-header{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) solid var(--x-border);color:var(--x-text-500);font-size:var(--x-font-size-medium)}.x-picker-date-header x-link{height:100%;-webkit-user-select:none;user-select:none}.x-picker-date-header .x-link{padding:0 .25rem}.x-picker-date-year-month{flex:1;text-align:center;color:var(--x-text);font-size:var(--x-font-size)}.x-picker-date-body{padding:.1375rem .5rem}.x-picker-date-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-date-body>table tr{display:flex;align-items:center;justify-content:center}.x-picker-date-body>table tr.x-date-week-active .x-picker-date-item,.x-picker-date-body>table tr.x-date-week-active .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text,.x-picker-date-body>table tr.x-date-week-start-active .x-picker-date-item,.x-picker-date-body>table tr.x-date-week-start-active .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text,.x-picker-date-body>table tr.x-date-week-end-active .x-picker-date-item,.x-picker-date-body>table tr.x-date-week-end-active .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);color:var(--x-background-100)}.x-picker-date-body>table tbody tr{padding:.125rem 0}.x-picker-date-body>table th{flex:1;font-weight:400;height:2rem;line-height:2rem;color:var(--x-text-400);-webkit-user-select:none;user-select:none}.x-picker-date-body>table td{padding:.125rem 0;flex:1;-webkit-user-select:none;user-select:none}.x-picker-date-body>table td:first-child{border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius)}.x-picker-date-body>table td:last-child{border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius)}.x-picker-date-body .x-picker-date-item{text-align:center;cursor:pointer;color:var(--x-text-300);position:relative;transition:var(--x-animation-duration-base)}.x-picker-date-body .x-picker-date-item .x-date-text{width:1.75rem;height:1.625rem;display:flex;align-items:center;justify-content:center;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-date-body .x-picker-date-item:after,.x-picker-date-body .x-picker-date-item:before{height:1.625rem}.x-picker-date-body .x-picker-date-item:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-date-body .x-picker-date-item.x-date-last-or-next{color:var(--x-text-700)}.x-picker-date-body .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-date-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:1.75rem}.x-picker-date-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:1.75rem}.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before,.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-last-day:first-child:not(.x-date-last-or-next):before{width:1.75rem}.x-picker-date-body .x-picker-date-item.x-date-disabled{cursor:default;background-color:var(--x-background-a200);color:var(--x-text-700)}.x-picker-date .x-visibility{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i4.XLinkComponent, selector: "x-link" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i3.XI18nPipe, name: "xI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
325
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XPickerDateComponent, decorators: [{
|
|
314
326
|
type: Component,
|
|
315
|
-
args: [{ selector: `${XPickerDatePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DatePipe, LowerCasePipe], template: "<div class=\"x-picker-date\" [class.x-date-picker-datetemp]=\"dateTemp\">\r\n <div class=\"x-picker-date-header\" *ngIf=\"showHeader\">\r\n <x-link icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\" [class.x-visibility]=\"!lastYearBtn\"></x-link>\r\n <x-link icon=\"fto-chevron-left\" (click)=\"nextMonth(-1)\" [class.x-visibility]=\"!lastMonthBtn\"></x-link>\r\n <div class=\"x-picker-date-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-link>\r\n <x-link (click)=\"typeOnChange('month')\">{{ getLocaleMonth(display) }}</x-link>\r\n </div>\r\n <x-link icon=\"fto-chevron-right\" (click)=\"nextMonth(1)\" [class.x-visibility]=\"!nextMonthBtn\"></x-link>\r\n <x-link icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\" [class.x-visibility]=\"!nextYearBtn\"></x-link>\r\n </div>\r\n <div class=\"x-picker-date-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let title of titles; trackBy: trackByNode\">{{ title | xI18n }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"let weeks of weekDates\"\r\n [class.x-date-week-active]=\"!rangePicker && isWeekActive(weeks)\"\r\n [class.x-date-week-active]=\"isWeekRange && isStartWeek(weeks)\"\r\n [class.x-date-week-active]=\"isWeekRange && isEndWeek(weeks)\"\r\n >\r\n <ng-container *ngFor=\"let week of weeks; trackBy: trackByNode\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-week]=\"week.type === 'week'\"\r\n [class.x-date-disabled]=\"week.isDisabled\"\r\n [class.x-date-last-or-next]=\"week.isLastOrNext\"\r\n [class.x-date-now]=\"week.isNow\"\r\n [class.x-date-first-day]=\"week.isFirstDay\"\r\n [class.x-date-last-day]=\"week.isLastDay\"\r\n [class.x-date-range-start]=\"
|
|
327
|
+
args: [{ selector: `${XPickerDatePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DatePipe, LowerCasePipe], template: "<div class=\"x-picker-date\" [class.x-date-picker-datetemp]=\"dateTemp\">\r\n <div class=\"x-picker-date-header\" *ngIf=\"showHeader\">\r\n <x-link icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\" [class.x-visibility]=\"!lastYearBtn\"></x-link>\r\n <x-link icon=\"fto-chevron-left\" (click)=\"nextMonth(-1)\" [class.x-visibility]=\"!lastMonthBtn\"></x-link>\r\n <div class=\"x-picker-date-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-link>\r\n <x-link (click)=\"typeOnChange('month')\">{{ getLocaleMonth(display) }}</x-link>\r\n </div>\r\n <x-link icon=\"fto-chevron-right\" (click)=\"nextMonth(1)\" [class.x-visibility]=\"!nextMonthBtn\"></x-link>\r\n <x-link icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\" [class.x-visibility]=\"!nextYearBtn\"></x-link>\r\n </div>\r\n <div class=\"x-picker-date-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let title of titles; trackBy: trackByNode\">{{ title | xI18n }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"let weeks of weekDates\"\r\n [class.x-date-week-active]=\"!rangePicker && isWeekActive(weeks)\"\r\n [class.x-date-week-start-active]=\"isWeekRange && isStartWeek(weeks)\"\r\n [class.x-date-week-end-active]=\"isWeekRange && isEndWeek(weeks)\"\r\n [class.x-date-week-in-range]=\"isWeekRange && isInRangeWeek(weeks)\"\r\n >\r\n <ng-container *ngFor=\"let week of weeks; trackBy: trackByNode\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-week]=\"week.type === 'week'\"\r\n [class.x-date-disabled]=\"week.isDisabled\"\r\n [class.x-date-last-or-next]=\"week.isLastOrNext\"\r\n [class.x-date-now]=\"week.isNow\"\r\n [class.x-date-first-day]=\"week.isFirstDay\"\r\n [class.x-date-last-day]=\"week.isLastDay\"\r\n [class.x-date-range-start]=\"isNotWeekRange && isStartDate(week.date!)\"\r\n [class.x-date-range-end]=\"isNotWeekRange && isEndDate(week.date!)\"\r\n [class.x-date-range-start-left]=\"isNotWeekRange && week.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"isNotWeekRange && week.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"isNotWeekRange && week.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"isNotWeekRange && week.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"isNotWeekRange && week.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"isNotWeekRange && week.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"isNotWeekRange && week.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"isNotWeekRange && week.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"isNotWeekRange && week.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"isNotWeekRange && week.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"isNotWeekRange && week.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"isNotWeekRange && week.isInRange\"\r\n [class.x-date-in-range-hover]=\"isNotWeekRange && week.isInRangeHover\"\r\n [class.x-date-active]=\"\r\n !rangePicker && week.type !== 'week' && (week.date | date : 'yyyyMMdd') === (model | date : 'yyyyMMdd')\r\n \"\r\n title=\"{{ week.date | date : 'yyyy-MM-dd' }}\"\r\n (click)=\"week.type !== 'week' && !week.isDisabled && dateClick(week)\"\r\n (mouseenter)=\"week.type !== 'week' && !week.isDisabled && rangePicker && rangeHover && onTdMouseenter(week)\"\r\n (mouseleave)=\"week.type !== 'week' && !week.isDisabled && rangePicker && rangeHover && onTdMouseleave(week)\"\r\n >\r\n <div *ngIf=\"!dateTemp\" class=\"x-date-text\">\r\n <ng-container [ngSwitch]=\"week.type\">\r\n <ng-container *ngSwitchCase=\"'week'\">{{ week.week }}</ng-container>\r\n <ng-container *ngSwitchDefault>{{ week.date | date : 'd' }}</ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"dateTemp\">\r\n <ng-container *ngTemplateOutlet=\"dateTemp; context: { date$: week.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-date{margin:0;padding:0}.x-picker-date-header{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) solid var(--x-border);color:var(--x-text-500);font-size:var(--x-font-size-medium)}.x-picker-date-header x-link{height:100%;-webkit-user-select:none;user-select:none}.x-picker-date-header .x-link{padding:0 .25rem}.x-picker-date-year-month{flex:1;text-align:center;color:var(--x-text);font-size:var(--x-font-size)}.x-picker-date-body{padding:.1375rem .5rem}.x-picker-date-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-date-body>table tr{display:flex;align-items:center;justify-content:center}.x-picker-date-body>table tr.x-date-week-active .x-picker-date-item,.x-picker-date-body>table tr.x-date-week-active .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text,.x-picker-date-body>table tr.x-date-week-start-active .x-picker-date-item,.x-picker-date-body>table tr.x-date-week-start-active .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text,.x-picker-date-body>table tr.x-date-week-end-active .x-picker-date-item,.x-picker-date-body>table tr.x-date-week-end-active .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);color:var(--x-background-100)}.x-picker-date-body>table tbody tr{padding:.125rem 0}.x-picker-date-body>table th{flex:1;font-weight:400;height:2rem;line-height:2rem;color:var(--x-text-400);-webkit-user-select:none;user-select:none}.x-picker-date-body>table td{padding:.125rem 0;flex:1;-webkit-user-select:none;user-select:none}.x-picker-date-body>table td:first-child{border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius)}.x-picker-date-body>table td:last-child{border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius)}.x-picker-date-body .x-picker-date-item{text-align:center;cursor:pointer;color:var(--x-text-300);position:relative;transition:var(--x-animation-duration-base)}.x-picker-date-body .x-picker-date-item .x-date-text{width:1.75rem;height:1.625rem;display:flex;align-items:center;justify-content:center;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-date-body .x-picker-date-item:after,.x-picker-date-body .x-picker-date-item:before{height:1.625rem}.x-picker-date-body .x-picker-date-item:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-date-body .x-picker-date-item.x-date-last-or-next{color:var(--x-text-700)}.x-picker-date-body .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-date-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:1.75rem}.x-picker-date-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:1.75rem}.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before,.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-last-day:first-child:not(.x-date-last-or-next):before{width:1.75rem}.x-picker-date-body .x-picker-date-item.x-date-disabled{cursor:default;background-color:var(--x-background-a200);color:var(--x-text-700)}.x-picker-date .x-visibility{visibility:hidden}\n"] }]
|
|
316
328
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.DatePipe }, { type: i1.LowerCasePipe }, { type: i0.ChangeDetectorRef }, { type: i2.XConfigService }, { type: i3.XI18nService }]; } });
|
|
317
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvcGlja2VyLWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvcGlja2VyLWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFrQixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNySCxPQUFPLEVBQThCLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQVUxRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsbUJBQW1CO0lBMkMzRCxZQUNTLFFBQW1CLEVBQ25CLFFBQWtCLEVBQ2xCLGFBQTRCLEVBQzVCLEdBQXNCLEVBQ3RCLGFBQTZCLEVBQzdCLElBQWtCO1FBRXpCLEtBQUssRUFBRSxDQUFDO1FBUEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUM3QixTQUFJLEdBQUosSUFBSSxDQUFj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O1FBRUQsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNWLEdBQUc7WUFDRCxNQUFNLElBQUksR0FBYyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdkgsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzNDLEtBQUssRUFBRSxDQUFDO1NBQ1QsUUFBUSxLQUFLLElBQUksUUFBUSxFQUFFO1FBRTVCLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDVixHQUFHLEdBQUcsT0FBTyxDQUFDO1FBQ2QsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMxQyxLQUFLLEVBQUUsQ0FBQztZQUNSLE1BQU0sSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEQsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzNDLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzFCO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWxDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7WUFDeEIsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLFNB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MkZEakRhLG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDRSxHQUFHLGlCQUFpQixFQUFFLGlCQUdqQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFJlbmRlcmVyMixcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQ2h1bmssIFhJc0NoYW5nZSwgWENvbmZpZ1NlcnZpY2UsIFhJc051bGwsIFhJc0Z1bmN0aW9uLCBYRGF0ZVdlZWssIFhEYXRlWWVhcldlZWsgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWERhdGVDZWxsLCBYRGF0ZVBpY2tlclR5cGUsIFhQaWNrZXJEYXRlUHJlZml4LCBYUGlja2VyRGF0ZVByb3BlcnR5IH0gZnJvbSAnLi9kYXRlLXBpY2tlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWEkxOG5EYXRlUGlja2VyLCBYSTE4blNlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IERhdGVQaXBlLCBMb3dlckNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYUGlja2VyRGF0ZVByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9waWNrZXItZGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcGlja2VyLWRhdGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW0RhdGVQaXBlLCBMb3dlckNhc2VQaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFBpY2tlckRhdGVDb21wb25lbnQgZXh0ZW5kcyBYUGlja2VyRGF0ZVByb3BlcnR5IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICB0aXRsZXMgPSBbXHJcbiAgICAnZGF0ZVBpY2tlci5tb25kYXknLFxyXG4gICAgJ2RhdGVQaWNrZXIudHVlc2RheScsXHJcbiAgICAnZGF0ZVBpY2tlci53ZWRuZXNkYXknLFxyXG4gICAgJ2RhdGVQaWNrZXIudGh1cnNkYXknLFxyXG4gICAgJ2RhdGVQaWNrZXIuZnJpZGF5JyxcclxuICAgICdkYXRlUGlja2VyLnNhdHVyZGF5JyxcclxuICAgICdkYXRlUGlja2VyLnN1bmRheSdcclxuICBdO1xyXG4gIG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgZGF0ZXM6IFhEYXRlQ2VsbFtdID0gW107XHJcbiAgd2Vla0RhdGVzOiBYRGF0ZUNlbGxbXVtdID0gW107XHJcbiAgY2xpY2tDZWxsPzogWERhdGVDZWxsO1xyXG4gIGxvY2FsZTogWEkxOG5EYXRlUGlja2VyID0ge307XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgZ2V0IHJhbmdlU3RhcnQoKSB7XHJcbiAgICBpZiAodGhpcy5yYW5nZVZhbHVlICYmIHRoaXMucmFuZ2VWYWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJhbmdlVmFsdWVbMF07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBnZXQgcmFuZ2VFbmQoKSB7XHJcbiAgICBpZiAodGhpcy5yYW5nZVZhbHVlICYmIHRoaXMucmFuZ2VWYWx1ZS5sZW5ndGggPiAxKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJhbmdlVmFsdWVbMV07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBpc1dlZWtSYW5nZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnR5cGUgPT09ICd3ZWVrJyAmJiB0aGlzLnJhbmdlUGlja2VyO1xyXG4gIH1cclxuXHJcbiAgaXNEaXNhYmxlZChkYXRlOiBEYXRlKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZERhdGUgJiYgWElzRnVuY3Rpb24odGhpcy5kaXNhYmxlZERhdGUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkRGF0ZShkYXRlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgZGF0ZVBpcGU6IERhdGVQaXBlLFxyXG4gICAgcHVibGljIGxvd2VyQ2FzZVBpcGU6IExvd2VyQ2FzZVBpcGUsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZSxcclxuICAgIHB1YmxpYyBpMThuOiBYSTE4blNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2VcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKCh4KSA9PiB4LmRhdGVQaWNrZXIgYXMgWEkxOG5EYXRlUGlja2VyKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLmxvY2FsZSA9IHg7XHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5zZXRUaXRsZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKHNpbXBsZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IHsgZGlzcGxheSB9ID0gc2ltcGxlcztcclxuICAgIFhJc0NoYW5nZShkaXNwbGF5KSAmJiB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdCgpIHtcclxuICAgIHRoaXMuc2V0RGF5cyh0aGlzLmRpc3BsYXkpO1xyXG4gIH1cclxuXHJcbiAgaXNXZWVrQWN0aXZlKHdlZWs6IFhEYXRlQ2VsbFtdKSB7XHJcbiAgICBpZiAod2Vlay5sZW5ndGggPiAxKSB7XHJcbiAgICAgIHJldHVybiBYRGF0ZVllYXJXZWVrKHdlZWtbMV0uZGF0ZSEpID09PSBYRGF0ZVllYXJXZWVrKHRoaXMubW9kZWwhKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlzU3RhcnRXZWVrKHdlZWs6IFhEYXRlQ2VsbFtdKSB7XHJcbiAgICBpZiAoIXRoaXMucmFuZ2VUeXBlIHx8ICF0aGlzLnJhbmdlVmFsdWUpIHJldHVybjtcclxuICAgIGlmICghWElzTnVsbCh0aGlzLnJhbmdlVmFsdWVbMF0pICYmIHdlZWsubGVuZ3RoID4gMSkge1xyXG4gICAgICByZXR1cm4gWERhdGVZZWFyV2Vlayh3ZWVrWzFdLmRhdGUhKSA9PT0gWERhdGVZZWFyV2Vlayh0aGlzLnJhbmdlVmFsdWVbMF0hKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlzRW5kV2Vlayh3ZWVrOiBYRGF0ZUNlbGxbXSkge1xyXG4gICAgaWYgKCF0aGlzLnJhbmdlVHlwZSB8fCAhdGhpcy5yYW5nZVZhbHVlKSByZXR1cm47XHJcbiAgICBpZiAoIVhJc051bGwodGhpcy5yYW5nZVZhbHVlWzFdKSAmJiB3ZWVrLmxlbmd0aCA+IDEpIHtcclxuICAgICAgcmV0dXJuIFhEYXRlWWVhcldlZWsod2Vla1sxXS5kYXRlISkgPT09IFhEYXRlWWVhcldlZWsodGhpcy5yYW5nZVZhbHVlWzFdISk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpc1N0YXJ0RGF0ZShkYXRlOiBEYXRlKSB7XHJcbiAgICBpZiAodGhpcy50eXBlID09PSAnd2VlaycgfHwgIXRoaXMucmFuZ2VUeXBlIHx8ICF0aGlzLnJhbmdlVmFsdWUpIHJldHVybjtcclxuICAgIGlmICghWElzTnVsbCh0aGlzLnJhbmdlVmFsdWVbMF0pKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLnJhbmdlVmFsdWVbMF0sICd5eXl5TU1kZCcpID09PSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShkYXRlLCAneXl5eU1NZGQnKTtcclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGlzRW5kRGF0ZShkYXRlOiBEYXRlKSB7XHJcbiAgICBpZiAodGhpcy50eXBlID09PSAnd2VlaycgfHwgIXRoaXMucmFuZ2VUeXBlIHx8ICF0aGlzLnJhbmdlVmFsdWUpIHJldHVybjtcclxuICAgIGlmICghWElzTnVsbCh0aGlzLnJhbmdlVmFsdWVbMV0pKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLnJhbmdlVmFsdWVbMV0sICd5eXl5TU1kZCcpID09PSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShkYXRlLCAneXl5eU1NZGQnKTtcclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHNldERhdGVzU3RhdGUoY2VsbDogWERhdGVDZWxsKSB7XHJcbiAgICB0aGlzLmNsZWFyU3RhdGUoLi4udGhpcy5kYXRlcyk7XHJcbiAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMuZGF0ZXMpIHtcclxuICAgICAgdGhpcy5zZXREYXlTdGF0ZShpdGVtKTtcclxuICAgIH1cclxuICAgIHRoaXMub25UZE1vdXNlZW50ZXIoY2VsbCwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgc2V0VGl0bGVzKCkge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3dlZWsnKSB7XHJcbiAgICAgIHRoaXMudGl0bGVzID0gWydkYXRlUGlja2VyLndlZWsnLCAuLi50aGlzLnRpdGxlc107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblRkTW91c2VlbnRlcihjZWxsOiBYRGF0ZUNlbGwsIGlzRW1pdCA9IHRydWUpIHtcclxuICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IHRoaXMucmFuZ2VWYWx1ZTtcclxuICAgIGlmICghWElzTnVsbChzdGFydCkgfHwgIVhJc051bGwoZW5kKSkge1xyXG4gICAgICBjb25zdCB0aW1lID0gY2VsbC5kYXRlIS5nZXRUaW1lKCk7XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5kYXRlcykge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1UaW1lID0gaXRlbS5kYXRlIS5nZXRUaW1lKCk7XHJcbiAgICAgICAgdGhpcy5jbGVhclN0YXRlKGl0ZW0pO1xyXG4gICAgICAgIGlmICghWElzTnVsbChzdGFydCkgJiYgWElzTnVsbChlbmQpKSB7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlclN0YXJ0TGVmdCA9IHRpbWUgPCBzdGFydCEgJiYgaXRlbVRpbWUgPT09IHN0YXJ0ITtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyU3RhcnRSaWdodCA9IHRpbWUgPiBzdGFydCEgJiYgaXRlbVRpbWUgPT09IHN0YXJ0ITtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyID1cclxuICAgICAgICAgICAgKHRpbWUgPCBzdGFydCEgJiYgaXRlbVRpbWUgPj0gdGltZSAmJiBpdGVtVGltZSA8IHN0YXJ0ISkgfHwgKHRpbWUgPiBzdGFydCEgJiYgaXRlbVRpbWUgPiBzdGFydCEgJiYgaXRlbVRpbWUgPD0gdGltZSk7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlclN0YXJ0ID0gaXRlbVRpbWUgPT09IHRpbWUgJiYgdGltZSA8IHN0YXJ0ITtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyRW5kID0gaXRlbVRpbWUgPT09IHRpbWUgJiYgdGltZSA+IHN0YXJ0ITtcclxuICAgICAgICB9IGVsc2UgaWYgKFhJc051bGwoc3RhcnQpICYmICFYSXNOdWxsKGVuZCkpIHtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyRW5kTGVmdCA9IHRpbWUgPCBlbmQhICYmIGl0ZW1UaW1lID09PSBlbmQhO1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXJFbmRSaWdodCA9IHRpbWUgPiBlbmQhICYmIGl0ZW1UaW1lID09PSBlbmQhO1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXIgPSAodGltZSA8IGVuZCEgJiYgaXRlbVRpbWUgPj0gdGltZSAmJiBpdGVtVGltZSA8IGVuZCEpIHx8ICh0aW1lID4gZW5kISAmJiBpdGVtVGltZSA+IGVuZCEgJiYgaXRlbVRpbWUgPD0gdGltZSk7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlclN0YXJ0ID0gaXRlbVRpbWUgPT09IHRpbWUgJiYgdGltZSA8IGVuZCE7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlckVuZCA9IGl0ZW1UaW1lID09PSB0aW1lICYmIHRpbWUgPiBlbmQhO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoIVhJc051bGwoc3RhcnQpICYmICFYSXNOdWxsKGVuZCkpIHtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyU3RhcnRMZWZ0ID0gdGltZSA8IHN0YXJ0ISAmJiBpdGVtVGltZSA9PT0gc3RhcnQhO1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXJFbmRSaWdodCA9IHRpbWUgPiBlbmQhICYmIGl0ZW1UaW1lID09PSBlbmQhO1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXIgPVxyXG4gICAgICAgICAgICAodGltZSA8IHN0YXJ0ISAmJiBpdGVtVGltZSA+PSB0aW1lICYmIGl0ZW1UaW1lIDwgc3RhcnQhKSB8fCAodGltZSA+IGVuZCEgJiYgaXRlbVRpbWUgPiBlbmQhICYmIGl0ZW1UaW1lIDw9IHRpbWUpO1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXJTdGFydCA9IGl0ZW1UaW1lID09PSB0aW1lICYmIHRpbWUgPCBzdGFydCE7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlckVuZCA9IGl0ZW1UaW1lID09PSB0aW1lICYmIHRpbWUgPiBlbmQhO1xyXG4gICAgICAgICAgaWYgKHRoaXMucmFuZ2VUeXBlID09PSAnc3RhcnQnKSB7XHJcbiAgICAgICAgICAgIGl0ZW0uaXNJblJhbmdlSG92ZXIgPSBpdGVtVGltZSA+PSB0aW1lISAmJiBpdGVtVGltZSA8PSBlbmQhO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnJhbmdlVHlwZSA9PT0gJ2VuZCcpIHtcclxuICAgICAgICAgICAgaXRlbS5pc0luUmFuZ2VIb3ZlciA9IGl0ZW1UaW1lID49IHN0YXJ0ISAmJiBpdGVtVGltZSA8PSB0aW1lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoaXNFbWl0KSB7XHJcbiAgICAgICAgdGhpcy5yYW5nZVRkTW91c2VlbnRlci5lbWl0KGNlbGwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25UZE1vdXNlbGVhdmUoY2VsbDogWERhdGVDZWxsLCBpc0VtaXQgPSB0cnVlKSB7XHJcbiAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB0aGlzLnJhbmdlVmFsdWU7XHJcbiAgICBpZiAoIVhJc051bGwoc3RhcnQpIHx8ICFYSXNOdWxsKGVuZCkpIHtcclxuICAgICAgdGhpcy5jbGVhclN0YXRlKC4uLnRoaXMuZGF0ZXMpO1xyXG4gICAgICBpZiAoaXNFbWl0KSB0aGlzLnJhbmdlVGRNb3VzZWxlYXZlLmVtaXQoY2VsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhclN0YXRlKC4uLmNlbGxzOiBYRGF0ZUNlbGxbXSkge1xyXG4gICAgZm9yIChsZXQgY2VsbCBvZiBjZWxscykge1xyXG4gICAgICBjZWxsLmlzSW5SYW5nZUhvdmVyID0gZmFsc2U7XHJcbiAgICAgIGNlbGwuaXNSYW5nZUhvdmVyID0gZmFsc2U7XHJcbiAgICAgIGNlbGwuaXNSYW5nZUhvdmVyU3RhcnQgPSBmYWxzZTtcclxuICAgICAgY2VsbC5pc1JhbmdlSG92ZXJFbmQgPSBmYWxzZTtcclxuICAgICAgY2VsbC5pc1JhbmdlSG92ZXJTdGFydExlZnQgPSBmYWxzZTtcclxuICAgICAgY2VsbC5pc1JhbmdlSG92ZXJTdGFydFJpZ2h0ID0gZmFsc2U7XHJcbiAgICAgIGNlbGwuaXNSYW5nZUhvdmVyRW5kTGVmdCA9IGZhbHNlO1xyXG4gICAgICBjZWxsLmlzUmFuZ2VIb3ZlckVuZFJpZ2h0ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXREYXlzKGRhdGU6IERhdGUpIHtcclxuICAgIGxldCBkYXRlczogWERhdGVDZWxsW10gPSBbXTtcclxuICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICBjb25zdCBtb250aCA9IGRhdGUuZ2V0TW9udGgoKTtcclxuICAgIGNvbnN0IGZpcnN0ID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xyXG4gICAgY29uc3QgbGFzdCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoICsgMSwgMCk7XHJcbiAgICBjb25zdCBsYXN0RGF0ZSA9IGxhc3QuZ2V0RGF0ZSgpO1xyXG4gICAgY29uc3QgZmlyc3REYXkgPSBmaXJzdC5nZXREYXkoKTtcclxuICAgIGNvbnN0IGxhc3REYXkgPSBsYXN0LmdldERheSgpO1xyXG5cclxuICAgIGxldCBkYXkgPSBmaXJzdERheTtcclxuICAgIGxldCBpbmRleCA9IDE7XHJcbiAgICB3aGlsZSAoZGF5ICE9PSAxKSB7XHJcbiAgICAgIGluZGV4LS07XHJcbiAgICAgIGNvbnN0IGNlbGwgPSB7IGRhdGU6IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBpbmRleCkgfTtcclxuICAgICAgZGF0ZXMgPSBbdGhpcy5zZXREYXlTdGF0ZShjZWxsKSwgLi4uZGF0ZXNdO1xyXG4gICAgICBkYXkgPSBjZWxsLmRhdGUuZ2V0RGF5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5kZXggPSAxO1xyXG4gICAgZG8ge1xyXG4gICAgICBjb25zdCBjZWxsOiBYRGF0ZUNlbGwgPSB7IGRhdGU6IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBpbmRleCksIGlzRmlyc3REYXk6IGluZGV4ID09PSAxLCBpc0xhc3REYXk6IGluZGV4ID09PSBsYXN0RGF0ZSB9O1xyXG4gICAgICBkYXRlcyA9IFsuLi5kYXRlcywgdGhpcy5zZXREYXlTdGF0ZShjZWxsKV07XHJcbiAgICAgIGluZGV4Kys7XHJcbiAgICB9IHdoaWxlIChpbmRleCA8PSBsYXN0RGF0ZSk7XHJcblxyXG4gICAgaW5kZXggPSAwO1xyXG4gICAgZGF5ID0gbGFzdERheTtcclxuICAgIHdoaWxlIChkYXkgIT09IDAgfHwgZGF0ZXMubGVuZ3RoICE9PSA3ICogNikge1xyXG4gICAgICBpbmRleCsrO1xyXG4gICAgICBjb25zdCBjZWxsID0geyBkYXRlOiBuZXcgRGF0ZSh5ZWFyLCBtb250aCArIDEsIGluZGV4KSB9O1xyXG4gICAgICBkYXRlcyA9IFsuLi5kYXRlcywgdGhpcy5zZXREYXlTdGF0ZShjZWxsKV07XHJcbiAgICAgIGRheSA9IGNlbGwuZGF0ZS5nZXREYXkoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGVzID0gZGF0ZXM7XHJcbiAgICB0aGlzLndlZWtEYXRlcyA9IFhDaHVuayhkYXRlcywgNyk7XHJcblxyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3dlZWsnKSB7XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5kYXRlcykge1xyXG4gICAgICAgIGl0ZW0ud2VlayA9IFhEYXRlV2VlayhpdGVtLmRhdGUhKTtcclxuICAgICAgfVxyXG4gICAgICBmb3IgKGxldCB3ZWVrIG9mIHRoaXMud2Vla0RhdGVzKSB7XHJcbiAgICAgICAgd2Vlay51bnNoaWZ0KHsgdHlwZTogJ3dlZWsnLCB3ZWVrOiB3ZWVrWzBdLndlZWshIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0ZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnJhbmdlQ2hhbmdlLmVtaXQoW2RhdGVzWzBdLmRhdGUhLCBkYXRlc1tkYXRlcy5sZW5ndGggLSAxXS5kYXRlIV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldERheVN0YXRlKGNlbGw6IFhEYXRlQ2VsbCk6IFhEYXRlQ2VsbCB7XHJcbiAgICBjb25zdCB0aW1lID0gY2VsbC5kYXRlPy5nZXRUaW1lKCkhO1xyXG4gICAgY29uc3QgZmRhdGUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShjZWxsLmRhdGUsICd5eXl5TU1kZCcpO1xyXG4gICAgY29uc3QgZmRhdGVtID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oY2VsbC5kYXRlLCAneXl5eU1NJyk7XHJcbiAgICBjb25zdCBmZGlzcGxheW0gPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmRpc3BsYXksICd5eXl5TU0nKTtcclxuICAgIGNvbnN0IGZub3cgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLm5vdywgJ3l5eXlNTWRkJyk7XHJcbiAgICBjZWxsLmlzTGFzdE9yTmV4dCA9IGZkYXRlbSAhPT0gZmRpc3BsYXltO1xyXG4gICAgY2VsbC5pc05vdyA9IGZkYXRlID09PSBmbm93O1xyXG4gICAgY2VsbC5pc0Rpc2FibGVkID0gdGhpcy5pc0Rpc2FibGVkKGNlbGwuZGF0ZSEpO1xyXG4gICAgaWYgKHRoaXMucmFuZ2VQaWNrZXIpIHtcclxuICAgICAgaWYgKCF0aGlzLnJhbmdlVmFsdWUpIHJldHVybiBjZWxsO1xyXG4gICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB0aGlzLnJhbmdlVmFsdWU7XHJcbiAgICAgIGNlbGwuaXNJblJhbmdlID0gISFzdGFydCAmJiAhIWVuZCAmJiB0aW1lID49IHN0YXJ0ISAmJiB0aW1lIDw9IGVuZCE7XHJcbiAgICAgIGNlbGwuaXNSYW5nZVN0YXJ0UmlnaHQgPSAhIXN0YXJ0ICYmICEhZW5kICYmIGZkYXRlID09PSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShzdGFydCEsICd5eXl5TU1kZCcpO1xyXG4gICAgICBjZWxsLmlzUmFuZ2VFbmRMZWZ0ID0gISFzdGFydCAmJiAhIWVuZCAmJiBmZGF0ZSA9PT0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZW5kISwgJ3l5eXlNTWRkJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2VsbDtcclxuICB9XHJcblxyXG4gIGRhdGVDbGljayhjZWxsOiBYRGF0ZUNlbGwpIHtcclxuICAgIHRoaXMubW9kZWwgPSBjZWxsLmRhdGU7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoY2VsbC5kYXRlKTtcclxuICAgIGlmICh0aGlzLnJhbmdlUGlja2VyKSB7XHJcbiAgICAgIHRoaXMuY2xlYXJTdGF0ZSguLi50aGlzLmRhdGVzKTtcclxuICAgICAgZm9yIChsZXQgaXRlbSBvZiB0aGlzLmRhdGVzKSB7XHJcbiAgICAgICAgdGhpcy5zZXREYXlTdGF0ZShpdGVtKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnJhbmdlRGF0ZUNsaWNrLmVtaXQoY2VsbCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXRMb2NhbGVNb250aChkYXRlOiBEYXRlKSB7XHJcbiAgICByZXR1cm4gKHRoaXMubG9jYWxlIGFzIGFueSlbdGhpcy5sb3dlckNhc2VQaXBlLnRyYW5zZm9ybSh0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShkYXRlLCAnTExMTCcpIGFzIHN0cmluZyldO1xyXG4gIH1cclxuXHJcbiAgcmFuZ2VEaXNhYmxlZChkYXRlOiBEYXRlKSB7XHJcbiAgICBpZiAodGhpcy5yYW5nZVR5cGUgPT09ICdlbmQnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJhbmdlU3RhcnQgIT09ICcnICYmIGRhdGUuZ2V0VGltZSgpIDwgdGhpcy5yYW5nZVN0YXJ0ITtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5yYW5nZVR5cGUgPT09ICdzdGFydCcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmFuZ2VFbmQgIT09ICcnICYmIGRhdGUuZ2V0VGltZSgpID4gdGhpcy5yYW5nZUVuZCE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZXREaXNwbGF5KGRhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuZGlzcGxheSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCAxKTtcclxuICAgIHRoaXMuZGlzcGxheUNoYW5nZS5lbWl0KHRoaXMuZGlzcGxheSk7XHJcbiAgICB0aGlzLnNldERheXModGhpcy5kaXNwbGF5KTtcclxuICB9XHJcblxyXG4gIG5leHRNb250aChudW06IG51bWJlcikge1xyXG4gICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLmRpc3BsYXkpO1xyXG4gICAgZGF0ZS5zZXRNb250aChkYXRlLmdldE1vbnRoKCkgKyBudW0pO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KGRhdGUpO1xyXG4gICAgdGhpcy5tb250aENoYW5nZS5lbWl0KG51bSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZXh0WWVhcihudW06IG51bWJlcikge1xyXG4gICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLmRpc3BsYXkpO1xyXG4gICAgZGF0ZS5zZXRGdWxsWWVhcihkYXRlLmdldEZ1bGxZZWFyKCkgKyBudW0pO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KGRhdGUpO1xyXG4gICAgdGhpcy55ZWFyQ2hhbmdlLmVtaXQobnVtKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHR5cGVPbkNoYW5nZSh0eXBlOiBYRGF0ZVBpY2tlclR5cGUpIHtcclxuICAgIHRoaXMudHlwZSA9IHR5cGU7XHJcbiAgICB0aGlzLnR5cGVDaGFuZ2UuZW1pdCh0eXBlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlOb2RlKF9pbmRleDogbnVtYmVyLCBpdGVtOiBzdHJpbmcgfCBEYXRlIHwgWERhdGVDZWxsKSB7XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIngtcGlja2VyLWRhdGVcIiBbY2xhc3MueC1kYXRlLXBpY2tlci1kYXRldGVtcF09XCJkYXRlVGVtcFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXBpY2tlci1kYXRlLWhlYWRlclwiICpuZ0lmPVwic2hvd0hlYWRlclwiPlxyXG4gICAgPHgtbGluayBpY29uPVwiZnRvLWNoZXZyb25zLWxlZnRcIiAoY2xpY2spPVwibmV4dFllYXIoLTEpXCIgW2NsYXNzLngtdmlzaWJpbGl0eV09XCIhbGFzdFllYXJCdG5cIj48L3gtbGluaz5cclxuICAgIDx4LWxpbmsgaWNvbj1cImZ0by1jaGV2cm9uLWxlZnRcIiAoY2xpY2spPVwibmV4dE1vbnRoKC0xKVwiIFtjbGFzcy54LXZpc2liaWxpdHldPVwiIWxhc3RNb250aEJ0blwiPjwveC1saW5rPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtcGlja2VyLWRhdGUteWVhci1tb250aFwiPlxyXG4gICAgICA8eC1saW5rIChjbGljayk9XCJ0eXBlT25DaGFuZ2UoJ3llYXInKVwiPnt7IGRpc3BsYXkgfCBkYXRlIDogJ3l5eXknIH19e3sgbG9jYWxlLnllYXIgfX08L3gtbGluaz5cclxuICAgICAgPHgtbGluayAoY2xpY2spPVwidHlwZU9uQ2hhbmdlKCdtb250aCcpXCI+e3sgZ2V0TG9jYWxlTW9udGgoZGlzcGxheSkgfX08L3gtbGluaz5cclxuICAgIDwvZGl2PlxyXG4gICAgPHgtbGluayBpY29uPVwiZnRvLWNoZXZyb24tcmlnaHRcIiAoY2xpY2spPVwibmV4dE1vbnRoKDEpXCIgW2NsYXNzLngtdmlzaWJpbGl0eV09XCIhbmV4dE1vbnRoQnRuXCI+PC94LWxpbms+XHJcbiAgICA8eC1saW5rIGljb249XCJmdG8tY2hldnJvbnMtcmlnaHRcIiAoY2xpY2spPVwibmV4dFllYXIoMSlcIiBbY2xhc3MueC12aXNpYmlsaXR5XT1cIiFuZXh0WWVhckJ0blwiPjwveC1saW5rPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXBpY2tlci1kYXRlLWJvZHlcIj5cclxuICAgIDx0YWJsZSBjZWxsc3BhY2luZz1cIjBcIiBjZWxscGFkZGluZz1cIjBcIj5cclxuICAgICAgPHRoZWFkPlxyXG4gICAgICAgIDx0cj5cclxuICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgdGl0bGUgb2YgdGl0bGVzOyB0cmFja0J5OiB0cmFja0J5Tm9kZVwiPnt7IHRpdGxlIHwgeEkxOG4gfX08L3RoPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgIDwvdGhlYWQ+XHJcbiAgICAgIDx0Ym9keT5cclxuICAgICAgICA8dHJcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCB3ZWVrcyBvZiB3ZWVrRGF0ZXNcIlxyXG4gICAgICAgICAgW2NsYXNzLngtZGF0ZS13ZWVrLWFjdGl2ZV09XCIhcmFuZ2VQaWNrZXIgJiYgaXNXZWVrQWN0aXZlKHdlZWtzKVwiXHJcbiAgICAgICAgICBbY2xhc3MueC1kYXRlLXdlZWstYWN0aXZlXT1cImlzV2Vla1JhbmdlICYmIGlzU3RhcnRXZWVrKHdlZWtzKVwiXHJcbiAgICAgICAgICBbY2xhc3MueC1kYXRlLXdlZWstYWN0aXZlXT1cImlzV2Vla1JhbmdlICYmIGlzRW5kV2Vlayh3ZWVrcylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHdlZWsgb2Ygd2Vla3M7IHRyYWNrQnk6IHRyYWNrQnlOb2RlXCI+XHJcbiAgICAgICAgICAgIDx0ZFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwieC1waWNrZXItZGF0ZS1pdGVtXCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLXdlZWtdPVwid2Vlay50eXBlID09PSAnd2VlaydcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtZGlzYWJsZWRdPVwid2Vlay5pc0Rpc2FibGVkXCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLWxhc3Qtb3ItbmV4dF09XCJ3ZWVrLmlzTGFzdE9yTmV4dFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1ub3ddPVwid2Vlay5pc05vd1wiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1maXJzdC1kYXldPVwid2Vlay5pc0ZpcnN0RGF5XCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLWxhc3QtZGF5XT1cIndlZWsuaXNMYXN0RGF5XCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLXN0YXJ0XT1cInJhbmdlUGlja2VyICYmIGlzU3RhcnREYXRlKHdlZWsuZGF0ZSEpXCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLWVuZF09XCJyYW5nZVBpY2tlciAmJiBpc0VuZERhdGUod2Vlay5kYXRlISlcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtcmFuZ2Utc3RhcnQtbGVmdF09XCJyYW5nZVBpY2tlciAmJiB3ZWVrLmlzUmFuZ2VTdGFydExlZnRcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtcmFuZ2Utc3RhcnQtcmlnaHRdPVwicmFuZ2VQaWNrZXIgJiYgd2Vlay5pc1JhbmdlU3RhcnRSaWdodFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1lbmQtbGVmdF09XCJyYW5nZVBpY2tlciAmJiB3ZWVrLmlzUmFuZ2VFbmRMZWZ0XCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLWVuZC1yaWdodF09XCJyYW5nZVBpY2tlciAmJiB3ZWVrLmlzUmFuZ2VFbmRSaWdodFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1ob3Zlcl09XCJyYW5nZVBpY2tlciAmJiB3ZWVrLmlzUmFuZ2VIb3ZlclwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1ob3Zlci1zdGFydC1sZWZ0XT1cInJhbmdlUGlja2VyICYmIHdlZWsuaXNSYW5nZUhvdmVyU3RhcnRMZWZ0XCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLWhvdmVyLXN0YXJ0LXJpZ2h0XT1cInJhbmdlUGlja2VyICYmIHdlZWsuaXNSYW5nZUhvdmVyU3RhcnRSaWdodFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1ob3Zlci1lbmQtbGVmdF09XCJyYW5nZVBpY2tlciAmJiB3ZWVrLmlzUmFuZ2VIb3ZlckVuZExlZnRcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtcmFuZ2UtaG92ZXItZW5kLXJpZ2h0XT1cInJhbmdlUGlja2VyICYmIHdlZWsuaXNSYW5nZUhvdmVyRW5kUmlnaHRcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtcmFuZ2UtaG92ZXItc3RhcnRdPVwicmFuZ2VQaWNrZXIgJiYgd2Vlay5pc1JhbmdlSG92ZXJTdGFydFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1ob3Zlci1lbmRdPVwicmFuZ2VQaWNrZXIgJiYgd2Vlay5pc1JhbmdlSG92ZXJFbmRcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtaW4tcmFuZ2VdPVwicmFuZ2VQaWNrZXIgJiYgd2Vlay5pc0luUmFuZ2VcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtaW4tcmFuZ2UtaG92ZXJdPVwicmFuZ2VQaWNrZXIgJiYgd2Vlay5pc0luUmFuZ2VIb3ZlclwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1hY3RpdmVdPVwiXHJcbiAgICAgICAgICAgICAgICAhcmFuZ2VQaWNrZXIgJiYgd2Vlay50eXBlICE9PSAnd2VlaycgJiYgKHdlZWsuZGF0ZSB8IGRhdGUgOiAneXl5eU1NZGQnKSA9PT0gKG1vZGVsIHwgZGF0ZSA6ICd5eXl5TU1kZCcpXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICB0aXRsZT1cInt7IHdlZWsuZGF0ZSB8IGRhdGUgOiAneXl5eS1NTS1kZCcgfX1cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJ3ZWVrLnR5cGUgIT09ICd3ZWVrJyAmJiAhd2Vlay5pc0Rpc2FibGVkICYmIGRhdGVDbGljayh3ZWVrKVwiXHJcbiAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwid2Vlay50eXBlICE9PSAnd2VlaycgJiYgIXdlZWsuaXNEaXNhYmxlZCAmJiByYW5nZVBpY2tlciAmJiByYW5nZUhvdmVyICYmIG9uVGRNb3VzZWVudGVyKHdlZWspXCJcclxuICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJ3ZWVrLnR5cGUgIT09ICd3ZWVrJyAmJiAhd2Vlay5pc0Rpc2FibGVkICYmIHJhbmdlUGlja2VyICYmIHJhbmdlSG92ZXIgJiYgb25UZE1vdXNlbGVhdmUod2VlaylcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFkYXRlVGVtcFwiIGNsYXNzPVwieC1kYXRlLXRleHRcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIndlZWsudHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInd2VlaydcIj57eyB3ZWVrLndlZWsgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0Pnt7IHdlZWsuZGF0ZSB8IGRhdGUgOiAnZCcgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRlVGVtcFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGVUZW1wOyBjb250ZXh0OiB7IGRhdGUkOiB3ZWVrLmRhdGUgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgPC90Ym9keT5cclxuICAgIDwvdGFibGU+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
329
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvcGlja2VyLWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvcGlja2VyLWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFrQixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNySCxPQUFPLEVBQThCLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQVUxRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsbUJBQW1CO0lBK0MzRCxZQUNTLFFBQW1CLEVBQ25CLFFBQWtCLEVBQ2xCLGFBQTRCLEVBQzVCLEdBQXNCLEVBQ3RCLGFBQTZCLEVBQzdCLElBQWtCO1FBRXpCLEtBQUssRUFBRSxDQUFDO1FBUEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUM3QixTQUFJLEdBQUosSUFBSSxDQUFj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LElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRyxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFFLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFFLENBQUM7U0FDakU7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBVTtRQUNwQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUN4RSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQzlHO1FBQ0QsT0FBTztJQUNULENBQUM7SUFFRCxTQUFTLENBQUMsSUFBVTtRQUNsQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUN4RSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQzlHO1FBQ0QsT0FBTztJQUNU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QUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFxQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBYyxFQUFFLElBQStCO1FBQ3pELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7b0lBblZVLG9CQUFvQjt3SEFBcEIsb0JBQW9CLHdDQUZwQixDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsc0VDdEJ0Qywwb0pBMEVBOzJGRGxEYSxvQkFBb0I7a0JBUmhDLFNBQVM7K0JBQ0UsR0FBRyxpQkFBaUIsRUFBRSxpQkFHakIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFNpbXBsZUNoYW5nZXNcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWENodW5rLCBYSXNDaGFuZ2UsIFhDb25maWdTZXJ2aWNlLCBYSXNOdWxsLCBYSXNGdW5jdGlvbiwgWERhdGVXZWVrLCBYRGF0ZVllYXJXZWVrIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFhEYXRlQ2VsbCwgWERhdGVQaWNrZXJUeXBlLCBYUGlja2VyRGF0ZVByZWZpeCwgWFBpY2tlckRhdGVQcm9wZXJ0eSB9IGZyb20gJy4vZGF0ZS1waWNrZXIucHJvcGVydHknO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFhJMThuRGF0ZVBpY2tlciwgWEkxOG5TZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvaTE4bic7XHJcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSwgTG93ZXJDYXNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFBpY2tlckRhdGVQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGlja2VyLWRhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BpY2tlci1kYXRlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtEYXRlUGlwZSwgTG93ZXJDYXNlUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhQaWNrZXJEYXRlQ29tcG9uZW50IGV4dGVuZHMgWFBpY2tlckRhdGVQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgdGl0bGVzID0gW1xyXG4gICAgJ2RhdGVQaWNrZXIubW9uZGF5JyxcclxuICAgICdkYXRlUGlja2VyLnR1ZXNkYXknLFxyXG4gICAgJ2RhdGVQaWNrZXIud2VkbmVzZGF5JyxcclxuICAgICdkYXRlUGlja2VyLnRodXJzZGF5JyxcclxuICAgICdkYXRlUGlja2VyLmZyaWRheScsXHJcbiAgICAnZGF0ZVBpY2tlci5zYXR1cmRheScsXHJcbiAgICAnZGF0ZVBpY2tlci5zdW5kYXknXHJcbiAgXTtcclxuICBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gIGRhdGVzOiBYRGF0ZUNlbGxbXSA9IFtdO1xyXG4gIHdlZWtEYXRlczogWERhdGVDZWxsW11bXSA9IFtdO1xyXG4gIGNsaWNrQ2VsbD86IFhEYXRlQ2VsbDtcclxuICBsb2NhbGU6IFhJMThuRGF0ZVBpY2tlciA9IHt9O1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGdldCByYW5nZVN0YXJ0KCkge1xyXG4gICAgaWYgKHRoaXMucmFuZ2VWYWx1ZSAmJiB0aGlzLnJhbmdlVmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5yYW5nZVZhbHVlWzBdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJhbmdlRW5kKCkge1xyXG4gICAgaWYgKHRoaXMucmFuZ2VWYWx1ZSAmJiB0aGlzLnJhbmdlVmFsdWUubGVuZ3RoID4gMSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5yYW5nZVZhbHVlWzFdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzV2Vla1JhbmdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ3dlZWsnICYmIHRoaXMucmFuZ2VQaWNrZXI7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNOb3RXZWVrUmFuZ2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50eXBlICE9PSAnd2VlaycgJiYgdGhpcy5yYW5nZVBpY2tlcjtcclxuICB9XHJcblxyXG4gIGlzRGlzYWJsZWQoZGF0ZTogRGF0ZSkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWREYXRlICYmIFhJc0Z1bmN0aW9uKHRoaXMuZGlzYWJsZWREYXRlKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZERhdGUoZGF0ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgIHB1YmxpYyBsb3dlckNhc2VQaXBlOiBMb3dlckNhc2VQaXBlLFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgaTE4bjogWEkxOG5TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT4geC5kYXRlUGlja2VyIGFzIFhJMThuRGF0ZVBpY2tlciksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2NhbGUgPSB4O1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuc2V0VGl0bGVzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhzaW1wbGVzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB7IGRpc3BsYXkgfSA9IHNpbXBsZXM7XHJcbiAgICBYSXNDaGFuZ2UoZGlzcGxheSkgJiYgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGluaXQoKSB7XHJcbiAgICB0aGlzLnNldERheXModGhpcy5kaXNwbGF5KTtcclxuICB9XHJcblxyXG4gIGlzV2Vla0FjdGl2ZSh3ZWVrOiBYRGF0ZUNlbGxbXSkge1xyXG4gICAgaWYgKHdlZWsubGVuZ3RoID4gMSkge1xyXG4gICAgICByZXR1cm4gWERhdGVZZWFyV2Vlayh3ZWVrWzFdLmRhdGUhKSA9PT0gWERhdGVZZWFyV2Vlayh0aGlzLm1vZGVsISk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpc1N0YXJ0V2Vlayh3ZWVrOiBYRGF0ZUNlbGxbXSkge1xyXG4gICAgaWYgKCF0aGlzLnJhbmdlVHlwZSB8fCAhdGhpcy5yYW5nZVZhbHVlKSByZXR1cm47XHJcbiAgICBpZiAoIVhJc051bGwodGhpcy5yYW5nZVZhbHVlWzBdKSAmJiB3ZWVrLmxlbmd0aCA+IDEpIHtcclxuICAgICAgcmV0dXJuIFhEYXRlWWVhcldlZWsod2Vla1sxXS5kYXRlISkgPT09IFhEYXRlWWVhcldlZWsodGhpcy5yYW5nZVZhbHVlWzBdISk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpc0VuZFdlZWsod2VlazogWERhdGVDZWxsW10pIHtcclxuICAgIGlmICghdGhpcy5yYW5nZVR5cGUgfHwgIXRoaXMucmFuZ2VWYWx1ZSkgcmV0dXJuO1xyXG4gICAgaWYgKCFYSXNOdWxsKHRoaXMucmFuZ2VWYWx1ZVsxXSkgJiYgd2Vlay5sZW5ndGggPiAxKSB7XHJcbiAgICAgIHJldHVybiBYRGF0ZVllYXJXZWVrKHdlZWtbMV0uZGF0ZSEpID09PSBYRGF0ZVllYXJXZWVrKHRoaXMucmFuZ2VWYWx1ZVsxXSEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaXNJblJhbmdlV2Vlayh3ZWVrOiBYRGF0ZUNlbGxbXSkge1xyXG4gICAgaWYgKCF0aGlzLnJhbmdlVHlwZSB8fCAhdGhpcy5yYW5nZVZhbHVlKSByZXR1cm47XHJcbiAgICBpZiAoIVhJc051bGwodGhpcy5yYW5nZVZhbHVlWzBdKSAmJiAhWElzTnVsbCh0aGlzLnJhbmdlVmFsdWVbMV0pICYmIHdlZWsubGVuZ3RoID4gMSkge1xyXG4gICAgICBsZXQgdGltZSA9IHdlZWtbMV0uZGF0ZT8uZ2V0VGltZSgpITtcclxuICAgICAgcmV0dXJuIHRpbWUgPiB0aGlzLnJhbmdlVmFsdWVbMF0hICYmIHRpbWUgPCB0aGlzLnJhbmdlVmFsdWVbMV0hO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaXNTdGFydERhdGUoZGF0ZTogRGF0ZSkge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3dlZWsnIHx8ICF0aGlzLnJhbmdlVHlwZSB8fCAhdGhpcy5yYW5nZVZhbHVlKSByZXR1cm47XHJcbiAgICBpZiAoIVhJc051bGwodGhpcy5yYW5nZVZhbHVlWzBdKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5yYW5nZVZhbHVlWzBdLCAneXl5eU1NZGQnKSA9PT0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZSwgJ3l5eXlNTWRkJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBpc0VuZERhdGUoZGF0ZTogRGF0ZSkge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3dlZWsnIHx8ICF0aGlzLnJhbmdlVHlwZSB8fCAhdGhpcy5yYW5nZVZhbHVlKSByZXR1cm47XHJcbiAgICBpZiAoIVhJc051bGwodGhpcy5yYW5nZVZhbHVlWzFdKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5yYW5nZVZhbHVlWzFdLCAneXl5eU1NZGQnKSA9PT0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZSwgJ3l5eXlNTWRkJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBzZXREYXRlc1N0YXRlKGNlbGw6IFhEYXRlQ2VsbCkge1xyXG4gICAgdGhpcy5jbGVhclN0YXRlKC4uLnRoaXMuZGF0ZXMpO1xyXG4gICAgZm9yIChsZXQgaXRlbSBvZiB0aGlzLmRhdGVzKSB7XHJcbiAgICAgIHRoaXMuc2V0RGF5U3RhdGUoaXRlbSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9uVGRNb3VzZWVudGVyKGNlbGwsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHNldFRpdGxlcygpIHtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICd3ZWVrJykge1xyXG4gICAgICB0aGlzLnRpdGxlcyA9IFsnZGF0ZVBpY2tlci53ZWVrJywgLi4udGhpcy50aXRsZXNdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25UZE1vdXNlZW50ZXIoY2VsbDogWERhdGVDZWxsLCBpc0VtaXQgPSB0cnVlKSB7XHJcbiAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB0aGlzLnJhbmdlVmFsdWU7XHJcbiAgICBpZiAoIVhJc051bGwoc3RhcnQpIHx8ICFYSXNOdWxsKGVuZCkpIHtcclxuICAgICAgY29uc3QgdGltZSA9IGNlbGwuZGF0ZSEuZ2V0VGltZSgpO1xyXG4gICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMuZGF0ZXMpIHtcclxuICAgICAgICBjb25zdCBpdGVtVGltZSA9IGl0ZW0uZGF0ZSEuZ2V0VGltZSgpO1xyXG4gICAgICAgIHRoaXMuY2xlYXJTdGF0ZShpdGVtKTtcclxuICAgICAgICBpZiAoIVhJc051bGwoc3RhcnQpICYmIFhJc051bGwoZW5kKSkge1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXJTdGFydExlZnQgPSB0aW1lIDwgc3RhcnQhICYmIGl0ZW1UaW1lID09PSBzdGFydCE7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlclN0YXJ0UmlnaHQgPSB0aW1lID4gc3RhcnQhICYmIGl0ZW1UaW1lID09PSBzdGFydCE7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlciA9XHJcbiAgICAgICAgICAgICh0aW1lIDwgc3RhcnQhICYmIGl0ZW1UaW1lID49IHRpbWUgJiYgaXRlbVRpbWUgPCBzdGFydCEpIHx8ICh0aW1lID4gc3RhcnQhICYmIGl0ZW1UaW1lID4gc3RhcnQhICYmIGl0ZW1UaW1lIDw9IHRpbWUpO1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXJTdGFydCA9IGl0ZW1UaW1lID09PSB0aW1lICYmIHRpbWUgPCBzdGFydCE7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlckVuZCA9IGl0ZW1UaW1lID09PSB0aW1lICYmIHRpbWUgPiBzdGFydCE7XHJcbiAgICAgICAgfSBlbHNlIGlmIChYSXNOdWxsKHN0YXJ0KSAmJiAhWElzTnVsbChlbmQpKSB7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlckVuZExlZnQgPSB0aW1lIDwgZW5kISAmJiBpdGVtVGltZSA9PT0gZW5kITtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyRW5kUmlnaHQgPSB0aW1lID4gZW5kISAmJiBpdGVtVGltZSA9PT0gZW5kITtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyID0gKHRpbWUgPCBlbmQhICYmIGl0ZW1UaW1lID49IHRpbWUgJiYgaXRlbVRpbWUgPCBlbmQhKSB8fCAodGltZSA+IGVuZCEgJiYgaXRlbVRpbWUgPiBlbmQhICYmIGl0ZW1UaW1lIDw9IHRpbWUpO1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXJTdGFydCA9IGl0ZW1UaW1lID09PSB0aW1lICYmIHRpbWUgPCBlbmQhO1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXJFbmQgPSBpdGVtVGltZSA9PT0gdGltZSAmJiB0aW1lID4gZW5kITtcclxuICAgICAgICB9IGVsc2UgaWYgKCFYSXNOdWxsKHN0YXJ0KSAmJiAhWElzTnVsbChlbmQpKSB7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlclN0YXJ0TGVmdCA9IHRpbWUgPCBzdGFydCEgJiYgaXRlbVRpbWUgPT09IHN0YXJ0ITtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyRW5kUmlnaHQgPSB0aW1lID4gZW5kISAmJiBpdGVtVGltZSA9PT0gZW5kITtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyID1cclxuICAgICAgICAgICAgKHRpbWUgPCBzdGFydCEgJiYgaXRlbVRpbWUgPj0gdGltZSAmJiBpdGVtVGltZSA8IHN0YXJ0ISkgfHwgKHRpbWUgPiBlbmQhICYmIGl0ZW1UaW1lID4gZW5kISAmJiBpdGVtVGltZSA8PSB0aW1lKTtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyU3RhcnQgPSBpdGVtVGltZSA9PT0gdGltZSAmJiB0aW1lIDwgc3RhcnQhO1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXJFbmQgPSBpdGVtVGltZSA9PT0gdGltZSAmJiB0aW1lID4gZW5kITtcclxuICAgICAgICAgIGlmICh0aGlzLnJhbmdlVHlwZSA9PT0gJ3N0YXJ0Jykge1xyXG4gICAgICAgICAgICBpdGVtLmlzSW5SYW5nZUhvdmVyID0gaXRlbVRpbWUgPj0gdGltZSEgJiYgaXRlbVRpbWUgPD0gZW5kITtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5yYW5nZVR5cGUgPT09ICdlbmQnKSB7XHJcbiAgICAgICAgICAgIGl0ZW0uaXNJblJhbmdlSG92ZXIgPSBpdGVtVGltZSA+PSBzdGFydCEgJiYgaXRlbVRpbWUgPD0gdGltZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlzRW1pdCkge1xyXG4gICAgICAgIHRoaXMucmFuZ2VUZE1vdXNlZW50ZXIuZW1pdChjZWxsKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uVGRNb3VzZWxlYXZlKGNlbGw6IFhEYXRlQ2VsbCwgaXNFbWl0ID0gdHJ1ZSkge1xyXG4gICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gdGhpcy5yYW5nZVZhbHVlO1xyXG4gICAgaWYgKCFYSXNOdWxsKHN0YXJ0KSB8fCAhWElzTnVsbChlbmQpKSB7XHJcbiAgICAgIHRoaXMuY2xlYXJTdGF0ZSguLi50aGlzLmRhdGVzKTtcclxuICAgICAgaWYgKGlzRW1pdCkgdGhpcy5yYW5nZVRkTW91c2VsZWF2ZS5lbWl0KGNlbGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJTdGF0ZSguLi5jZWxsczogWERhdGVDZWxsW10pIHtcclxuICAgIGZvciAobGV0IGNlbGwgb2YgY2VsbHMpIHtcclxuICAgICAgY2VsbC5pc0luUmFuZ2VIb3ZlciA9IGZhbHNlO1xyXG4gICAgICBjZWxsLmlzUmFuZ2VIb3ZlciA9IGZhbHNlO1xyXG4gICAgICBjZWxsLmlzUmFuZ2VIb3ZlclN0YXJ0ID0gZmFsc2U7XHJcbiAgICAgIGNlbGwuaXNSYW5nZUhvdmVyRW5kID0gZmFsc2U7XHJcbiAgICAgIGNlbGwuaXNSYW5nZUhvdmVyU3RhcnRMZWZ0ID0gZmFsc2U7XHJcbiAgICAgIGNlbGwuaXNSYW5nZUhvdmVyU3RhcnRSaWdodCA9IGZhbHNlO1xyXG4gICAgICBjZWxsLmlzUmFuZ2VIb3ZlckVuZExlZnQgPSBmYWxzZTtcclxuICAgICAgY2VsbC5pc1JhbmdlSG92ZXJFbmRSaWdodCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RGF5cyhkYXRlOiBEYXRlKSB7XHJcbiAgICBsZXQgZGF0ZXM6IFhEYXRlQ2VsbFtdID0gW107XHJcbiAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgbW9udGggPSBkYXRlLmdldE1vbnRoKCk7XHJcbiAgICBjb25zdCBmaXJzdCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKTtcclxuICAgIGNvbnN0IGxhc3QgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCArIDEsIDApO1xyXG4gICAgY29uc3QgbGFzdERhdGUgPSBsYXN0LmdldERhdGUoKTtcclxuICAgIGNvbnN0IGZpcnN0RGF5ID0gZmlyc3QuZ2V0RGF5KCk7XHJcbiAgICBjb25zdCBsYXN0RGF5ID0gbGFzdC5nZXREYXkoKTtcclxuXHJcbiAgICBsZXQgZGF5ID0gZmlyc3REYXk7XHJcbiAgICBsZXQgaW5kZXggPSAxO1xyXG4gICAgd2hpbGUgKGRheSAhPT0gMSkge1xyXG4gICAgICBpbmRleC0tO1xyXG4gICAgICBjb25zdCBjZWxsID0geyBkYXRlOiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgaW5kZXgpIH07XHJcbiAgICAgIGRhdGVzID0gW3RoaXMuc2V0RGF5U3RhdGUoY2VsbCksIC4uLmRhdGVzXTtcclxuICAgICAgZGF5ID0gY2VsbC5kYXRlLmdldERheSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGluZGV4ID0gMTtcclxuICAgIGRvIHtcclxuICAgICAgY29uc3QgY2VsbDogWERhdGVDZWxsID0geyBkYXRlOiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgaW5kZXgpLCBpc0ZpcnN0RGF5OiBpbmRleCA9PT0gMSwgaXNMYXN0RGF5OiBpbmRleCA9PT0gbGFzdERhdGUgfTtcclxuICAgICAgZGF0ZXMgPSBbLi4uZGF0ZXMsIHRoaXMuc2V0RGF5U3RhdGUoY2VsbCldO1xyXG4gICAgICBpbmRleCsrO1xyXG4gICAgfSB3aGlsZSAoaW5kZXggPD0gbGFzdERhdGUpO1xyXG5cclxuICAgIGluZGV4ID0gMDtcclxuICAgIGRheSA9IGxhc3REYXk7XHJcbiAgICB3aGlsZSAoZGF5ICE9PSAwIHx8IGRhdGVzLmxlbmd0aCAhPT0gNyAqIDYpIHtcclxuICAgICAgaW5kZXgrKztcclxuICAgICAgY29uc3QgY2VsbCA9IHsgZGF0ZTogbmV3IERhdGUoeWVhciwgbW9udGggKyAxLCBpbmRleCkgfTtcclxuICAgICAgZGF0ZXMgPSBbLi4uZGF0ZXMsIHRoaXMuc2V0RGF5U3RhdGUoY2VsbCldO1xyXG4gICAgICBkYXkgPSBjZWxsLmRhdGUuZ2V0RGF5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXRlcyA9IGRhdGVzO1xyXG4gICAgdGhpcy53ZWVrRGF0ZXMgPSBYQ2h1bmsoZGF0ZXMsIDcpO1xyXG5cclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICd3ZWVrJykge1xyXG4gICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMuZGF0ZXMpIHtcclxuICAgICAgICBpdGVtLndlZWsgPSBYRGF0ZVdlZWsoaXRlbS5kYXRlISk7XHJcbiAgICAgIH1cclxuICAgICAgZm9yIChsZXQgd2VlayBvZiB0aGlzLndlZWtEYXRlcykge1xyXG4gICAgICAgIHdlZWsudW5zaGlmdCh7IHR5cGU6ICd3ZWVrJywgd2Vlazogd2Vla1swXS53ZWVrISB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRhdGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5yYW5nZUNoYW5nZS5lbWl0KFtkYXRlc1swXS5kYXRlISwgZGF0ZXNbZGF0ZXMubGVuZ3RoIC0gMV0uZGF0ZSFdKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXREYXlTdGF0ZShjZWxsOiBYRGF0ZUNlbGwpOiBYRGF0ZUNlbGwge1xyXG4gICAgY29uc3QgdGltZSA9IGNlbGwuZGF0ZT8uZ2V0VGltZSgpITtcclxuICAgIGNvbnN0IGZkYXRlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oY2VsbC5kYXRlLCAneXl5eU1NZGQnKTtcclxuICAgIGNvbnN0IGZkYXRlbSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGNlbGwuZGF0ZSwgJ3l5eXlNTScpO1xyXG4gICAgY29uc3QgZmRpc3BsYXltID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5kaXNwbGF5LCAneXl5eU1NJyk7XHJcbiAgICBjb25zdCBmbm93ID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5ub3csICd5eXl5TU1kZCcpO1xyXG4gICAgY2VsbC5pc0xhc3RPck5leHQgPSBmZGF0ZW0gIT09IGZkaXNwbGF5bTtcclxuICAgIGNlbGwuaXNOb3cgPSBmZGF0ZSA9PT0gZm5vdztcclxuICAgIGNlbGwuaXNEaXNhYmxlZCA9IHRoaXMuaXNEaXNhYmxlZChjZWxsLmRhdGUhKTtcclxuICAgIGlmICh0aGlzLnJhbmdlUGlja2VyKSB7XHJcbiAgICAgIGlmICghdGhpcy5yYW5nZVZhbHVlKSByZXR1cm4gY2VsbDtcclxuICAgICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gdGhpcy5yYW5nZVZhbHVlO1xyXG4gICAgICBjZWxsLmlzSW5SYW5nZSA9ICEhc3RhcnQgJiYgISFlbmQgJiYgdGltZSA+PSBzdGFydCEgJiYgdGltZSA8PSBlbmQhO1xyXG4gICAgICBjZWxsLmlzUmFuZ2VTdGFydFJpZ2h0ID0gISFzdGFydCAmJiAhIWVuZCAmJiBmZGF0ZSA9PT0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oc3RhcnQhLCAneXl5eU1NZGQnKTtcclxuICAgICAgY2VsbC5pc1JhbmdlRW5kTGVmdCA9ICEhc3RhcnQgJiYgISFlbmQgJiYgZmRhdGUgPT09IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGVuZCEsICd5eXl5TU1kZCcpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNlbGw7XHJcbiAgfVxyXG5cclxuICBkYXRlQ2xpY2soY2VsbDogWERhdGVDZWxsKSB7XHJcbiAgICB0aGlzLm1vZGVsID0gY2VsbC5kYXRlO1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KGNlbGwuZGF0ZSk7XHJcbiAgICBpZiAodGhpcy5yYW5nZVBpY2tlcikge1xyXG4gICAgICB0aGlzLmNsZWFyU3RhdGUoLi4udGhpcy5kYXRlcyk7XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5kYXRlcykge1xyXG4gICAgICAgIHRoaXMuc2V0RGF5U3RhdGUoaXRlbSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yYW5nZURhdGVDbGljay5lbWl0KGNlbGwpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9jYWxlTW9udGgoZGF0ZTogRGF0ZSkge1xyXG4gICAgcmV0dXJuICh0aGlzLmxvY2FsZSBhcyBhbnkpW3RoaXMubG93ZXJDYXNlUGlwZS50cmFuc2Zvcm0odGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZSwgJ0xMTEwnKSBhcyBzdHJpbmcpXTtcclxuICB9XHJcblxyXG4gIHJhbmdlRGlzYWJsZWQoZGF0ZTogRGF0ZSkge1xyXG4gICAgaWYgKHRoaXMucmFuZ2VUeXBlID09PSAnZW5kJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5yYW5nZVN0YXJ0ICE9PSAnJyAmJiBkYXRlLmdldFRpbWUoKSA8IHRoaXMucmFuZ2VTdGFydCE7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMucmFuZ2VUeXBlID09PSAnc3RhcnQnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJhbmdlRW5kICE9PSAnJyAmJiBkYXRlLmdldFRpbWUoKSA+IHRoaXMucmFuZ2VFbmQhO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzcGxheShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLmRpc3BsYXkgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgMSk7XHJcbiAgICB0aGlzLmRpc3BsYXlDaGFuZ2UuZW1pdCh0aGlzLmRpc3BsYXkpO1xyXG4gICAgdGhpcy5zZXREYXlzKHRoaXMuZGlzcGxheSk7XHJcbiAgfVxyXG5cclxuICBuZXh0TW9udGgobnVtOiBudW1iZXIpIHtcclxuICAgIGxldCBkYXRlID0gbmV3IERhdGUodGhpcy5kaXNwbGF5KTtcclxuICAgIGRhdGUuc2V0TW9udGgoZGF0ZS5nZXRNb250aCgpICsgbnVtKTtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIHRoaXMubW9udGhDaGFuZ2UuZW1pdChudW0pO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmV4dFllYXIobnVtOiBudW1iZXIpIHtcclxuICAgIGxldCBkYXRlID0gbmV3IERhdGUodGhpcy5kaXNwbGF5KTtcclxuICAgIGRhdGUuc2V0RnVsbFllYXIoZGF0ZS5nZXRGdWxsWWVhcigpICsgbnVtKTtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KG51bSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0eXBlT25DaGFuZ2UodHlwZTogWERhdGVQaWNrZXJUeXBlKSB7XHJcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy50eXBlQ2hhbmdlLmVtaXQodHlwZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5Tm9kZShfaW5kZXg6IG51bWJlciwgaXRlbTogc3RyaW5nIHwgRGF0ZSB8IFhEYXRlQ2VsbCkge1xyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LXBpY2tlci1kYXRlXCIgW2NsYXNzLngtZGF0ZS1waWNrZXItZGF0ZXRlbXBdPVwiZGF0ZVRlbXBcIj5cclxuICA8ZGl2IGNsYXNzPVwieC1waWNrZXItZGF0ZS1oZWFkZXJcIiAqbmdJZj1cInNob3dIZWFkZXJcIj5cclxuICAgIDx4LWxpbmsgaWNvbj1cImZ0by1jaGV2cm9ucy1sZWZ0XCIgKGNsaWNrKT1cIm5leHRZZWFyKC0xKVwiIFtjbGFzcy54LXZpc2liaWxpdHldPVwiIWxhc3RZZWFyQnRuXCI+PC94LWxpbms+XHJcbiAgICA8eC1saW5rIGljb249XCJmdG8tY2hldnJvbi1sZWZ0XCIgKGNsaWNrKT1cIm5leHRNb250aCgtMSlcIiBbY2xhc3MueC12aXNpYmlsaXR5XT1cIiFsYXN0TW9udGhCdG5cIj48L3gtbGluaz5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LXBpY2tlci1kYXRlLXllYXItbW9udGhcIj5cclxuICAgICAgPHgtbGluayAoY2xpY2spPVwidHlwZU9uQ2hhbmdlKCd5ZWFyJylcIj57eyBkaXNwbGF5IHwgZGF0ZSA6ICd5eXl5JyB9fXt7IGxvY2FsZS55ZWFyIH19PC94LWxpbms+XHJcbiAgICAgIDx4LWxpbmsgKGNsaWNrKT1cInR5cGVPbkNoYW5nZSgnbW9udGgnKVwiPnt7IGdldExvY2FsZU1vbnRoKGRpc3BsYXkpIH19PC94LWxpbms+XHJcbiAgICA8L2Rpdj5cclxuICAgIDx4LWxpbmsgaWNvbj1cImZ0by1jaGV2cm9uLXJpZ2h0XCIgKGNsaWNrKT1cIm5leHRNb250aCgxKVwiIFtjbGFzcy54LXZpc2liaWxpdHldPVwiIW5leHRNb250aEJ0blwiPjwveC1saW5rPlxyXG4gICAgPHgtbGluayBpY29uPVwiZnRvLWNoZXZyb25zLXJpZ2h0XCIgKGNsaWNrKT1cIm5leHRZZWFyKDEpXCIgW2NsYXNzLngtdmlzaWJpbGl0eV09XCIhbmV4dFllYXJCdG5cIj48L3gtbGluaz5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwieC1waWNrZXItZGF0ZS1ib2R5XCI+XHJcbiAgICA8dGFibGUgY2VsbHNwYWNpbmc9XCIwXCIgY2VsbHBhZGRpbmc9XCIwXCI+XHJcbiAgICAgIDx0aGVhZD5cclxuICAgICAgICA8dHI+XHJcbiAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IHRpdGxlIG9mIHRpdGxlczsgdHJhY2tCeTogdHJhY2tCeU5vZGVcIj57eyB0aXRsZSB8IHhJMThuIH19PC90aD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L3RoZWFkPlxyXG4gICAgICA8dGJvZHk+XHJcbiAgICAgICAgPHRyXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgd2Vla3Mgb2Ygd2Vla0RhdGVzXCJcclxuICAgICAgICAgIFtjbGFzcy54LWRhdGUtd2Vlay1hY3RpdmVdPVwiIXJhbmdlUGlja2VyICYmIGlzV2Vla0FjdGl2ZSh3ZWVrcylcIlxyXG4gICAgICAgICAgW2NsYXNzLngtZGF0ZS13ZWVrLXN0YXJ0LWFjdGl2ZV09XCJpc1dlZWtSYW5nZSAmJiBpc1N0YXJ0V2Vlayh3ZWVrcylcIlxyXG4gICAgICAgICAgW2NsYXNzLngtZGF0ZS13ZWVrLWVuZC1hY3RpdmVdPVwiaXNXZWVrUmFuZ2UgJiYgaXNFbmRXZWVrKHdlZWtzKVwiXHJcbiAgICAgICAgICBbY2xhc3MueC1kYXRlLXdlZWstaW4tcmFuZ2VdPVwiaXNXZWVrUmFuZ2UgJiYgaXNJblJhbmdlV2Vlayh3ZWVrcylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHdlZWsgb2Ygd2Vla3M7IHRyYWNrQnk6IHRyYWNrQnlOb2RlXCI+XHJcbiAgICAgICAgICAgIDx0ZFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwieC1waWNrZXItZGF0ZS1pdGVtXCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLXdlZWtdPVwid2Vlay50eXBlID09PSAnd2VlaydcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtZGlzYWJsZWRdPVwid2Vlay5pc0Rpc2FibGVkXCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLWxhc3Qtb3ItbmV4dF09XCJ3ZWVrLmlzTGFzdE9yTmV4dFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1ub3ddPVwid2Vlay5pc05vd1wiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1maXJzdC1kYXldPVwid2Vlay5pc0ZpcnN0RGF5XCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLWxhc3QtZGF5XT1cIndlZWsuaXNMYXN0RGF5XCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLXN0YXJ0XT1cImlzTm90V2Vla1JhbmdlICYmIGlzU3RhcnREYXRlKHdlZWsuZGF0ZSEpXCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLWVuZF09XCJpc05vdFdlZWtSYW5nZSAmJiBpc0VuZERhdGUod2Vlay5kYXRlISlcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtcmFuZ2Utc3RhcnQtbGVmdF09XCJpc05vdFdlZWtSYW5nZSAmJiB3ZWVrLmlzUmFuZ2VTdGFydExlZnRcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtcmFuZ2Utc3RhcnQtcmlnaHRdPVwiaXNOb3RXZWVrUmFuZ2UgJiYgd2Vlay5pc1JhbmdlU3RhcnRSaWdodFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1lbmQtbGVmdF09XCJpc05vdFdlZWtSYW5nZSAmJiB3ZWVrLmlzUmFuZ2VFbmRMZWZ0XCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLWVuZC1yaWdodF09XCJpc05vdFdlZWtSYW5nZSAmJiB3ZWVrLmlzUmFuZ2VFbmRSaWdodFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1ob3Zlcl09XCJpc05vdFdlZWtSYW5nZSAmJiB3ZWVrLmlzUmFuZ2VIb3ZlclwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1ob3Zlci1zdGFydC1sZWZ0XT1cImlzTm90V2Vla1JhbmdlICYmIHdlZWsuaXNSYW5nZUhvdmVyU3RhcnRMZWZ0XCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLWhvdmVyLXN0YXJ0LXJpZ2h0XT1cImlzTm90V2Vla1JhbmdlICYmIHdlZWsuaXNSYW5nZUhvdmVyU3RhcnRSaWdodFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1ob3Zlci1lbmQtbGVmdF09XCJpc05vdFdlZWtSYW5nZSAmJiB3ZWVrLmlzUmFuZ2VIb3ZlckVuZExlZnRcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtcmFuZ2UtaG92ZXItZW5kLXJpZ2h0XT1cImlzTm90V2Vla1JhbmdlICYmIHdlZWsuaXNSYW5nZUhvdmVyRW5kUmlnaHRcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtcmFuZ2UtaG92ZXItc3RhcnRdPVwiaXNOb3RXZWVrUmFuZ2UgJiYgd2Vlay5pc1JhbmdlSG92ZXJTdGFydFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1ob3Zlci1lbmRdPVwiaXNOb3RXZWVrUmFuZ2UgJiYgd2Vlay5pc1JhbmdlSG92ZXJFbmRcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtaW4tcmFuZ2VdPVwiaXNOb3RXZWVrUmFuZ2UgJiYgd2Vlay5pc0luUmFuZ2VcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtaW4tcmFuZ2UtaG92ZXJdPVwiaXNOb3RXZWVrUmFuZ2UgJiYgd2Vlay5pc0luUmFuZ2VIb3ZlclwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1hY3RpdmVdPVwiXHJcbiAgICAgICAgICAgICAgICAhcmFuZ2VQaWNrZXIgJiYgd2Vlay50eXBlICE9PSAnd2VlaycgJiYgKHdlZWsuZGF0ZSB8IGRhdGUgOiAneXl5eU1NZGQnKSA9PT0gKG1vZGVsIHwgZGF0ZSA6ICd5eXl5TU1kZCcpXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICB0aXRsZT1cInt7IHdlZWsuZGF0ZSB8IGRhdGUgOiAneXl5eS1NTS1kZCcgfX1cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJ3ZWVrLnR5cGUgIT09ICd3ZWVrJyAmJiAhd2Vlay5pc0Rpc2FibGVkICYmIGRhdGVDbGljayh3ZWVrKVwiXHJcbiAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwid2Vlay50eXBlICE9PSAnd2VlaycgJiYgIXdlZWsuaXNEaXNhYmxlZCAmJiByYW5nZVBpY2tlciAmJiByYW5nZUhvdmVyICYmIG9uVGRNb3VzZWVudGVyKHdlZWspXCJcclxuICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJ3ZWVrLnR5cGUgIT09ICd3ZWVrJyAmJiAhd2Vlay5pc0Rpc2FibGVkICYmIHJhbmdlUGlja2VyICYmIHJhbmdlSG92ZXIgJiYgb25UZE1vdXNlbGVhdmUod2VlaylcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFkYXRlVGVtcFwiIGNsYXNzPVwieC1kYXRlLXRleHRcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIndlZWsudHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInd2VlaydcIj57eyB3ZWVrLndlZWsgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0Pnt7IHdlZWsuZGF0ZSB8IGRhdGUgOiAnZCcgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRlVGVtcFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGVUZW1wOyBjb250ZXh0OiB7IGRhdGUkOiB3ZWVrLmRhdGUgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgPC90Ym9keT5cclxuICAgIDwvdGFibGU+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -225,9 +225,9 @@ export class XPickerMonthComponent extends XPickerMonthProperty {
|
|
|
225
225
|
return item;
|
|
226
226
|
}
|
|
227
227
|
}
|
|
228
|
-
/** @nocollapse */ XPickerMonthComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
229
|
-
/** @nocollapse */ XPickerMonthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
230
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
228
|
+
/** @nocollapse */ XPickerMonthComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XPickerMonthComponent, deps: [{ token: i0.Renderer2 }, { token: i1.DatePipe }, { token: i1.LowerCasePipe }, { token: i0.ChangeDetectorRef }, { token: i2.XConfigService }, { token: i3.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
229
|
+
/** @nocollapse */ XPickerMonthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XPickerMonthComponent, selector: "x-picker-month", providers: [DatePipe, LowerCasePipe], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-picker-month\" [class.x-date-picker-monthtemp]=\"monthTemp\">\r\n <div class=\"x-picker-month-header\" *ngIf=\"showHeader\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-month-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n <div class=\"x-picker-month-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <tr *ngFor=\"let months of chunkDates\">\r\n <ng-container *ngFor=\"let month of months; trackBy: trackByMonth\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"month.isDisabled\"\r\n [class.x-date-last-or-next]=\"month.isLastOrNext\"\r\n [class.x-date-now]=\"month.isNow\"\r\n [class.x-date-first-day]=\"month.isFirstDay\"\r\n [class.x-date-last-day]=\"month.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartMonth(month.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndMonth(month.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && month.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && month.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && month.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && month.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && month.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && month.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && month.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && month.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && month.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && month.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && month.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && month.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && month.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (month.date | date : 'yyyyMM') === (model | date : 'yyyyMM')\"\r\n title=\"{{ month.date | date : 'yyyy-MM' }}\"\r\n (click)=\"!month.isDisabled && monthClick(month)\"\r\n (mouseenter)=\"!month.isDisabled && rangePicker && onTdMouseenter(month)\"\r\n (mouseleave)=\"!month.isDisabled && rangePicker && onTdMouseleave(month)\"\r\n >\r\n <div *ngIf=\"!monthTemp\" class=\"x-date-text\">\r\n {{ getLocaleMonth(month.date!) }}\r\n </div>\r\n <ng-container *ngIf=\"monthTemp\">\r\n <ng-container *ngTemplateOutlet=\"monthTemp; context: { date$: month.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-month{margin:0;padding:0}.x-picker-month-header{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) solid var(--x-border);color:var(--x-text-500);font-size:var(--x-font-size-medium)}.x-picker-month-header x-link{height:100%;-webkit-user-select:none;user-select:none}.x-picker-month-header .x-link{padding:0 .25rem}.x-picker-month-year-month{flex:1;text-align:center;color:var(--x-text);font-size:var(--x-font-size)}.x-picker-month-body{padding:.1375rem .5rem}.x-picker-month-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-month-body>table tr{padding:.125rem 0;display:flex;align-items:center;justify-content:center}.x-picker-month-body>table td{flex:1;padding:.125rem 0;-webkit-user-select:none;user-select:none}.x-picker-month-body .x-picker-date-item{text-align:center;cursor:pointer;color:var(--x-text-300);position:relative}.x-picker-month-body .x-picker-date-item .x-date-text{width:3.5rem;height:3.25rem;display:flex;align-items:center;justify-content:center;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-month-body .x-picker-date-item:after,.x-picker-month-body .x-picker-date-item:before{height:3.25rem}.x-picker-month-body .x-picker-date-item:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-month-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-month-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-month-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-month-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-month-body .x-picker-date-item.x-date-last-or-next{color:var(--x-text-700)}.x-picker-month-body .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-month-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-month-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:3.5rem}.x-picker-month-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-month-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:3.5rem}.x-picker-month-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before,.x-picker-month-body .x-picker-date-item.x-date-range-hover.x-date-last-day:first-child:not(.x-date-last-or-next):before{width:3.5rem}.x-picker-month-body .x-picker-date-item.x-date-disabled{cursor:default;background-color:var(--x-background-a200);color:var(--x-text-700)}.x-picker-month .x-visibility{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.XLinkComponent, selector: "x-link" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
230
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XPickerMonthComponent, decorators: [{
|
|
231
231
|
type: Component,
|
|
232
232
|
args: [{ selector: 'x-picker-month', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DatePipe, LowerCasePipe], template: "<div class=\"x-picker-month\" [class.x-date-picker-monthtemp]=\"monthTemp\">\r\n <div class=\"x-picker-month-header\" *ngIf=\"showHeader\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-month-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n <div class=\"x-picker-month-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <tr *ngFor=\"let months of chunkDates\">\r\n <ng-container *ngFor=\"let month of months; trackBy: trackByMonth\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"month.isDisabled\"\r\n [class.x-date-last-or-next]=\"month.isLastOrNext\"\r\n [class.x-date-now]=\"month.isNow\"\r\n [class.x-date-first-day]=\"month.isFirstDay\"\r\n [class.x-date-last-day]=\"month.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartMonth(month.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndMonth(month.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && month.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && month.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && month.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && month.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && month.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && month.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && month.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && month.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && month.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && month.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && month.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && month.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && month.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (month.date | date : 'yyyyMM') === (model | date : 'yyyyMM')\"\r\n title=\"{{ month.date | date : 'yyyy-MM' }}\"\r\n (click)=\"!month.isDisabled && monthClick(month)\"\r\n (mouseenter)=\"!month.isDisabled && rangePicker && onTdMouseenter(month)\"\r\n (mouseleave)=\"!month.isDisabled && rangePicker && onTdMouseleave(month)\"\r\n >\r\n <div *ngIf=\"!monthTemp\" class=\"x-date-text\">\r\n {{ getLocaleMonth(month.date!) }}\r\n </div>\r\n <ng-container *ngIf=\"monthTemp\">\r\n <ng-container *ngTemplateOutlet=\"monthTemp; context: { date$: month.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-month{margin:0;padding:0}.x-picker-month-header{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) solid var(--x-border);color:var(--x-text-500);font-size:var(--x-font-size-medium)}.x-picker-month-header x-link{height:100%;-webkit-user-select:none;user-select:none}.x-picker-month-header .x-link{padding:0 .25rem}.x-picker-month-year-month{flex:1;text-align:center;color:var(--x-text);font-size:var(--x-font-size)}.x-picker-month-body{padding:.1375rem .5rem}.x-picker-month-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-month-body>table tr{padding:.125rem 0;display:flex;align-items:center;justify-content:center}.x-picker-month-body>table td{flex:1;padding:.125rem 0;-webkit-user-select:none;user-select:none}.x-picker-month-body .x-picker-date-item{text-align:center;cursor:pointer;color:var(--x-text-300);position:relative}.x-picker-month-body .x-picker-date-item .x-date-text{width:3.5rem;height:3.25rem;display:flex;align-items:center;justify-content:center;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-month-body .x-picker-date-item:after,.x-picker-month-body .x-picker-date-item:before{height:3.25rem}.x-picker-month-body .x-picker-date-item:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-month-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-month-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-month-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-month-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-month-body .x-picker-date-item.x-date-last-or-next{color:var(--x-text-700)}.x-picker-month-body .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-month-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-month-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:3.5rem}.x-picker-month-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-month-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:3.5rem}.x-picker-month-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before,.x-picker-month-body .x-picker-date-item.x-date-range-hover.x-date-last-day:first-child:not(.x-date-last-or-next):before{width:3.5rem}.x-picker-month-body .x-picker-date-item.x-date-disabled{cursor:default;background-color:var(--x-background-a200);color:var(--x-text-700)}.x-picker-month .x-visibility{visibility:hidden}\n"] }]
|
|
233
233
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.DatePipe }, { type: i1.LowerCasePipe }, { type: i0.ChangeDetectorRef }, { type: i2.XConfigService }, { type: i3.XI18nService }]; } });
|
|
@@ -210,9 +210,9 @@ export class XPickerYearComponent extends XPickerYearProperty {
|
|
|
210
210
|
return item;
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
|
-
/** @nocollapse */ XPickerYearComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
214
|
-
/** @nocollapse */ XPickerYearComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
215
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
213
|
+
/** @nocollapse */ XPickerYearComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XPickerYearComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.DatePipe }, { token: i2.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
214
|
+
/** @nocollapse */ XPickerYearComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XPickerYearComponent, selector: "x-picker-year", providers: [DatePipe], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-picker-year\">\r\n <div class=\"x-picker-year-header\" *ngIf=\"showHeader\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYears(-10)\"></x-link>\r\n <div class=\"x-picker-year-year-month\">\r\n <x-link>{{ start }}</x-link> -\r\n <x-link>{{ end }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYears(10)\"></x-link>\r\n </div>\r\n <div class=\"x-picker-year-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <tr *ngFor=\"let years of chunkDates\">\r\n <ng-container *ngFor=\"let year of years; trackBy: trackByYear\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"year.isDisabled\"\r\n [class.x-date-last-or-next]=\"year.isLastOrNext\"\r\n [class.x-date-now]=\"year.isNow\"\r\n [class.x-date-first-day]=\"year.isFirstDay\"\r\n [class.x-date-last-day]=\"year.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartYear(year.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndYear(year.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && year.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && year.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && year.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && year.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && year.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && year.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && year.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && year.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && year.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && year.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && year.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && year.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && year.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (year.date | date : 'yyyy') === (model | date : 'yyyy')\"\r\n title=\"{{ year.date | date : 'yyyy' }}\"\r\n (click)=\"!year.isDisabled && yearClick(year)\"\r\n (mouseenter)=\"!year.isDisabled && rangePicker && onTdMouseenter(year)\"\r\n (mouseleave)=\"!year.isDisabled && rangePicker && onTdMouseleave(year)\"\r\n >\r\n <div *ngIf=\"!yearTemp\" class=\"x-date-text\">\r\n {{ year.date | date : 'yyyy' }}\r\n </div>\r\n <ng-container *ngIf=\"yearTemp\">\r\n <ng-container *ngTemplateOutlet=\"yearTemp; context: { date$: year.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-year{margin:0;padding:0}.x-picker-year-header{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) solid var(--x-border);color:var(--x-text-500);font-size:var(--x-font-size-medium)}.x-picker-year-header x-link{height:100%;-webkit-user-select:none;user-select:none}.x-picker-year-header .x-link{padding:0 .25rem}.x-picker-year-year-month{flex:1;text-align:center;color:var(--x-text);font-size:var(--x-font-size)}.x-picker-year-body{padding:.1375rem .5rem}.x-picker-year-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-year-body>table tr{padding:.125rem 0;display:flex;align-items:center;justify-content:center}.x-picker-year-body>table td{flex:1;padding:.125rem 0;-webkit-user-select:none;user-select:none}.x-picker-year-body .x-picker-date-item{text-align:center;cursor:pointer;color:var(--x-text-300);position:relative}.x-picker-year-body .x-picker-date-item .x-date-text{width:3.5rem;height:3.25rem;display:flex;align-items:center;justify-content:center;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-year-body .x-picker-date-item:after,.x-picker-year-body .x-picker-date-item:before{height:3.25rem}.x-picker-year-body .x-picker-date-item:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-year-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-year-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-year-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-year-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-year-body .x-picker-date-item.x-date-last-or-next{color:var(--x-text-700)}.x-picker-year-body .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-year-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-year-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:3.5rem}.x-picker-year-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-year-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:3.5rem}.x-picker-year-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before,.x-picker-year-body .x-picker-date-item.x-date-range-hover.x-date-last-day:first-child:not(.x-date-last-or-next):before{width:3.5rem}.x-picker-year-body .x-picker-date-item.x-date-disabled{cursor:default;background-color:var(--x-background-a200);color:var(--x-text-700)}.x-picker-year .x-visibility{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.XLinkComponent, selector: "x-link" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
215
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XPickerYearComponent, decorators: [{
|
|
216
216
|
type: Component,
|
|
217
217
|
args: [{ selector: 'x-picker-year', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DatePipe], template: "<div class=\"x-picker-year\">\r\n <div class=\"x-picker-year-header\" *ngIf=\"showHeader\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYears(-10)\"></x-link>\r\n <div class=\"x-picker-year-year-month\">\r\n <x-link>{{ start }}</x-link> -\r\n <x-link>{{ end }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYears(10)\"></x-link>\r\n </div>\r\n <div class=\"x-picker-year-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <tr *ngFor=\"let years of chunkDates\">\r\n <ng-container *ngFor=\"let year of years; trackBy: trackByYear\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"year.isDisabled\"\r\n [class.x-date-last-or-next]=\"year.isLastOrNext\"\r\n [class.x-date-now]=\"year.isNow\"\r\n [class.x-date-first-day]=\"year.isFirstDay\"\r\n [class.x-date-last-day]=\"year.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartYear(year.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndYear(year.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && year.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && year.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && year.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && year.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && year.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && year.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && year.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && year.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && year.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && year.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && year.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && year.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && year.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (year.date | date : 'yyyy') === (model | date : 'yyyy')\"\r\n title=\"{{ year.date | date : 'yyyy' }}\"\r\n (click)=\"!year.isDisabled && yearClick(year)\"\r\n (mouseenter)=\"!year.isDisabled && rangePicker && onTdMouseenter(year)\"\r\n (mouseleave)=\"!year.isDisabled && rangePicker && onTdMouseleave(year)\"\r\n >\r\n <div *ngIf=\"!yearTemp\" class=\"x-date-text\">\r\n {{ year.date | date : 'yyyy' }}\r\n </div>\r\n <ng-container *ngIf=\"yearTemp\">\r\n <ng-container *ngTemplateOutlet=\"yearTemp; context: { date$: year.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-year{margin:0;padding:0}.x-picker-year-header{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) solid var(--x-border);color:var(--x-text-500);font-size:var(--x-font-size-medium)}.x-picker-year-header x-link{height:100%;-webkit-user-select:none;user-select:none}.x-picker-year-header .x-link{padding:0 .25rem}.x-picker-year-year-month{flex:1;text-align:center;color:var(--x-text);font-size:var(--x-font-size)}.x-picker-year-body{padding:.1375rem .5rem}.x-picker-year-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-year-body>table tr{padding:.125rem 0;display:flex;align-items:center;justify-content:center}.x-picker-year-body>table td{flex:1;padding:.125rem 0;-webkit-user-select:none;user-select:none}.x-picker-year-body .x-picker-date-item{text-align:center;cursor:pointer;color:var(--x-text-300);position:relative}.x-picker-year-body .x-picker-date-item .x-date-text{width:3.5rem;height:3.25rem;display:flex;align-items:center;justify-content:center;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-year-body .x-picker-date-item:after,.x-picker-year-body .x-picker-date-item:before{height:3.25rem}.x-picker-year-body .x-picker-date-item:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-year-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-year-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-year-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-year-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-year-body .x-picker-date-item.x-date-last-or-next{color:var(--x-text-700)}.x-picker-year-body .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-year-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-year-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:3.5rem}.x-picker-year-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-year-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:3.5rem}.x-picker-year-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before,.x-picker-year-body .x-picker-date-item.x-date-range-hover.x-date-last-day:first-child:not(.x-date-last-or-next):before{width:3.5rem}.x-picker-year-body .x-picker-date-item.x-date-disabled{cursor:default;background-color:var(--x-background-a200);color:var(--x-text-700)}.x-picker-year .x-visibility{visibility:hidden}\n"] }]
|
|
218
218
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.DatePipe }, { type: i2.XConfigService }]; } });
|
|
@@ -6,13 +6,13 @@ export class XDescriptionItemComponent extends XDescriptionItemProperty {
|
|
|
6
6
|
super();
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
/** @nocollapse */ XDescriptionItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
10
|
-
/** @nocollapse */ XDescriptionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
9
|
+
/** @nocollapse */ XDescriptionItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XDescriptionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
/** @nocollapse */ XDescriptionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XDescriptionItemComponent, selector: "x-description-item", viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
11
11
|
<ng-template>
|
|
12
12
|
<ng-content></ng-content>
|
|
13
13
|
</ng-template>
|
|
14
14
|
`, isInline: true, styles: [".x-description{margin:0;padding:0}.x-description-header{display:flex;align-items:center}.x-description-title{font-weight:700}.x-description-grid{display:grid;grid-auto-flow:row}.x-description-item{display:flex;align-items:baseline}.x-description-item.x-flex{display:flex}.x-description-item.x-justify-start{justify-content:flex-start}.x-description-item.x-justify-center{justify-content:center}.x-description-item.x-justify-end{justify-content:flex-end}.x-description-item.x-justify-space-between{justify-content:space-between}.x-description-item.x-justify-space-around{justify-content:space-around}.x-description-item.x-align-start{align-items:flex-start}.x-description-item.x-align-center{align-items:center}.x-description-item.x-align-end{align-items:flex-end}.x-description-item.x-direction-column{flex-direction:column}.x-description-item.x-direction-column-reverse{flex-direction:column-reverse}.x-description-item.x-direction-row{flex-direction:row}.x-description-item.x-direction-row-reverse{flex-direction:row-reverse}.x-description-item-heading{background-color:var(--x-background-a100)}.x-description-bordered .x-description-item{border:var(--x-border-width) var(--x-border-style) var(--x-border);margin-left:-1px;margin-top:-1px}.x-description-big .x-description-header{padding:var(--x-padding-big) 0}.x-description-big .x-description-item{padding:calc(var(--x-padding-big) / 2) 0}.x-description-big.x-description-bordered .x-description-item{padding:var(--x-padding-big)}.x-description-large .x-description-header{padding:var(--x-padding-large) 0}.x-description-large .x-description-item{padding:calc(var(--x-padding-large) / 2) 0}.x-description-large.x-description-bordered .x-description-item{padding:var(--x-padding-large)}.x-description-medium .x-description-header{padding:var(--x-padding-medium) 0}.x-description-medium .x-description-item{padding:calc(var(--x-padding-medium) / 2) 0}.x-description-medium.x-description-bordered .x-description-item{padding:var(--x-padding-medium)}.x-description-small .x-description-header{padding:var(--x-padding-small) 0}.x-description-small .x-description-item{padding:calc(var(--x-padding-small) / 2) 0}.x-description-small.x-description-bordered .x-description-item{padding:var(--x-padding-small)}.x-description-mini .x-description-header{padding:var(--x-padding-mini) 0}.x-description-mini .x-description-item{padding:calc(var(--x-padding-mini) / 2) 0}.x-description-mini.x-description-bordered .x-description-item{padding:var(--x-padding-mini)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XDescriptionItemComponent, decorators: [{
|
|
16
16
|
type: Component,
|
|
17
17
|
args: [{ selector: `${XDescriptionItemPrefix}`, template: `
|
|
18
18
|
<ng-template>
|
|
@@ -52,9 +52,9 @@ export class XDescriptionComponent extends XDescriptionProperty {
|
|
|
52
52
|
this.gridTemplateColumns = gridTemplateColumns.join(' ');
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
/** @nocollapse */ XDescriptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
56
|
-
/** @nocollapse */ XDescriptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
55
|
+
/** @nocollapse */ XDescriptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XDescriptionComponent, deps: [{ token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
56
|
+
/** @nocollapse */ XDescriptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XDescriptionComponent, selector: "x-description", queries: [{ propertyName: "items", predicate: XDescriptionItemComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-description\" [class.x-description-bordered]=\"bordered\" [ngClass]=\"classMap\">\r\n <div class=\"x-description-header\" *ngIf=\"title\">\r\n <div class=\"x-description-title\" *xOutlet=\"title\">\r\n {{ title }}\r\n </div>\r\n </div>\r\n <div class=\"x-description-grid\" [style.grid-template-columns]=\"gridTemplateColumns\">\r\n <div\r\n *ngFor=\"let item of items; index as i\"\r\n class=\"x-description-item\"\r\n [style.grid-area]=\"item.gridArea ? item.gridArea : '1 / ' + (i + 1)\"\r\n [class.x-description-item-heading]=\"item.heading\"\r\n [ngClass]=\"setFlex(item)\"\r\n >\r\n <div class=\"x-description-item-label\">\r\n <ng-container *xOutlet=\"item.label\">{{ item.label }}</ng-container>\r\n </div>\r\n <div class=\"x-description-item-content\">\r\n <ng-template [ngTemplateOutlet]=\"item.content\"></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".x-description{margin:0;padding:0}.x-description-header{display:flex;align-items:center}.x-description-title{font-weight:700}.x-description-grid{display:grid;grid-auto-flow:row}.x-description-item{display:flex;align-items:baseline}.x-description-item.x-flex{display:flex}.x-description-item.x-justify-start{justify-content:flex-start}.x-description-item.x-justify-center{justify-content:center}.x-description-item.x-justify-end{justify-content:flex-end}.x-description-item.x-justify-space-between{justify-content:space-between}.x-description-item.x-justify-space-around{justify-content:space-around}.x-description-item.x-align-start{align-items:flex-start}.x-description-item.x-align-center{align-items:center}.x-description-item.x-align-end{align-items:flex-end}.x-description-item.x-direction-column{flex-direction:column}.x-description-item.x-direction-column-reverse{flex-direction:column-reverse}.x-description-item.x-direction-row{flex-direction:row}.x-description-item.x-direction-row-reverse{flex-direction:row-reverse}.x-description-item-heading{background-color:var(--x-background-a100)}.x-description-bordered .x-description-item{border:var(--x-border-width) var(--x-border-style) var(--x-border);margin-left:-1px;margin-top:-1px}.x-description-big .x-description-header{padding:var(--x-padding-big) 0}.x-description-big .x-description-item{padding:calc(var(--x-padding-big) / 2) 0}.x-description-big.x-description-bordered .x-description-item{padding:var(--x-padding-big)}.x-description-large .x-description-header{padding:var(--x-padding-large) 0}.x-description-large .x-description-item{padding:calc(var(--x-padding-large) / 2) 0}.x-description-large.x-description-bordered .x-description-item{padding:var(--x-padding-large)}.x-description-medium .x-description-header{padding:var(--x-padding-medium) 0}.x-description-medium .x-description-item{padding:calc(var(--x-padding-medium) / 2) 0}.x-description-medium.x-description-bordered .x-description-item{padding:var(--x-padding-medium)}.x-description-small .x-description-header{padding:var(--x-padding-small) 0}.x-description-small .x-description-item{padding:calc(var(--x-padding-small) / 2) 0}.x-description-small.x-description-bordered .x-description-item{padding:var(--x-padding-small)}.x-description-mini .x-description-header{padding:var(--x-padding-mini) 0}.x-description-mini .x-description-item{padding:calc(var(--x-padding-mini) / 2) 0}.x-description-mini.x-description-bordered .x-description-item{padding:var(--x-padding-mini)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XDescriptionComponent, decorators: [{
|
|
58
58
|
type: Component,
|
|
59
59
|
args: [{ selector: `${XDescriptionPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-description\" [class.x-description-bordered]=\"bordered\" [ngClass]=\"classMap\">\r\n <div class=\"x-description-header\" *ngIf=\"title\">\r\n <div class=\"x-description-title\" *xOutlet=\"title\">\r\n {{ title }}\r\n </div>\r\n </div>\r\n <div class=\"x-description-grid\" [style.grid-template-columns]=\"gridTemplateColumns\">\r\n <div\r\n *ngFor=\"let item of items; index as i\"\r\n class=\"x-description-item\"\r\n [style.grid-area]=\"item.gridArea ? item.gridArea : '1 / ' + (i + 1)\"\r\n [class.x-description-item-heading]=\"item.heading\"\r\n [ngClass]=\"setFlex(item)\"\r\n >\r\n <div class=\"x-description-item-label\">\r\n <ng-container *xOutlet=\"item.label\">{{ item.label }}</ng-container>\r\n </div>\r\n <div class=\"x-description-item-content\">\r\n <ng-template [ngTemplateOutlet]=\"item.content\"></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".x-description{margin:0;padding:0}.x-description-header{display:flex;align-items:center}.x-description-title{font-weight:700}.x-description-grid{display:grid;grid-auto-flow:row}.x-description-item{display:flex;align-items:baseline}.x-description-item.x-flex{display:flex}.x-description-item.x-justify-start{justify-content:flex-start}.x-description-item.x-justify-center{justify-content:center}.x-description-item.x-justify-end{justify-content:flex-end}.x-description-item.x-justify-space-between{justify-content:space-between}.x-description-item.x-justify-space-around{justify-content:space-around}.x-description-item.x-align-start{align-items:flex-start}.x-description-item.x-align-center{align-items:center}.x-description-item.x-align-end{align-items:flex-end}.x-description-item.x-direction-column{flex-direction:column}.x-description-item.x-direction-column-reverse{flex-direction:column-reverse}.x-description-item.x-direction-row{flex-direction:row}.x-description-item.x-direction-row-reverse{flex-direction:row-reverse}.x-description-item-heading{background-color:var(--x-background-a100)}.x-description-bordered .x-description-item{border:var(--x-border-width) var(--x-border-style) var(--x-border);margin-left:-1px;margin-top:-1px}.x-description-big .x-description-header{padding:var(--x-padding-big) 0}.x-description-big .x-description-item{padding:calc(var(--x-padding-big) / 2) 0}.x-description-big.x-description-bordered .x-description-item{padding:var(--x-padding-big)}.x-description-large .x-description-header{padding:var(--x-padding-large) 0}.x-description-large .x-description-item{padding:calc(var(--x-padding-large) / 2) 0}.x-description-large.x-description-bordered .x-description-item{padding:var(--x-padding-large)}.x-description-medium .x-description-header{padding:var(--x-padding-medium) 0}.x-description-medium .x-description-item{padding:calc(var(--x-padding-medium) / 2) 0}.x-description-medium.x-description-bordered .x-description-item{padding:var(--x-padding-medium)}.x-description-small .x-description-header{padding:var(--x-padding-small) 0}.x-description-small .x-description-item{padding:calc(var(--x-padding-small) / 2) 0}.x-description-small.x-description-bordered .x-description-item{padding:var(--x-padding-small)}.x-description-mini .x-description-header{padding:var(--x-padding-mini) 0}.x-description-mini .x-description-item{padding:calc(var(--x-padding-mini) / 2) 0}.x-description-mini.x-description-bordered .x-description-item{padding:var(--x-padding-mini)}\n"] }]
|
|
60
60
|
}], ctorParameters: function () { return [{ type: i1.XConfigService }]; }, propDecorators: { items: [{
|
|
@@ -7,10 +7,10 @@ import { XDescriptionItemProperty, XDescriptionProperty } from './description.pr
|
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export class XDescriptionModule {
|
|
9
9
|
}
|
|
10
|
-
/** @nocollapse */ XDescriptionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
11
|
-
/** @nocollapse */ XDescriptionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
12
|
-
/** @nocollapse */ XDescriptionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
10
|
+
/** @nocollapse */ XDescriptionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XDescriptionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
/** @nocollapse */ XDescriptionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: XDescriptionModule, declarations: [XDescriptionComponent, XDescriptionProperty, XDescriptionItemComponent, XDescriptionItemProperty], imports: [CommonModule, XOutletModule], exports: [XDescriptionComponent, XDescriptionItemComponent] });
|
|
12
|
+
/** @nocollapse */ XDescriptionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XDescriptionModule, imports: [CommonModule, XOutletModule] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XDescriptionModule, decorators: [{
|
|
14
14
|
type: NgModule,
|
|
15
15
|
args: [{
|
|
16
16
|
declarations: [XDescriptionComponent, XDescriptionProperty, XDescriptionItemComponent, XDescriptionItemProperty],
|