@ng-nest/ui 17.0.1 → 17.0.3
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/affix/affix.component.d.ts +1 -2
- package/affix/affix.module.d.ts +1 -3
- package/alert/alert.component.d.ts +4 -5
- package/alert/alert.module.d.ts +1 -8
- package/anchor/anchor-inner.component.d.ts +1 -1
- package/anchor/anchor.component.d.ts +6 -7
- package/anchor/anchor.module.d.ts +2 -6
- package/api/api.component.d.ts +4 -4
- package/api/api.module.d.ts +1 -2
- package/auto-complete/auto-complete-portal.component.d.ts +3 -5
- package/auto-complete/auto-complete.component.d.ts +12 -13
- package/auto-complete/auto-complete.module.d.ts +1 -9
- package/avatar/avatar-group.component.d.ts +1 -2
- package/avatar/avatar.component.d.ts +6 -7
- package/avatar/avatar.module.d.ts +2 -6
- package/back-top/back-top.component.d.ts +7 -12
- package/back-top/back-top.module.d.ts +1 -5
- package/badge/badge.component.d.ts +3 -8
- package/badge/badge.module.d.ts +1 -3
- package/base-form/base-form.component.d.ts +1 -1
- package/base-form/base-form.module.d.ts +1 -2
- package/border/border.component.d.ts +4 -4
- package/border/border.module.d.ts +1 -1
- package/button/button.component.d.ts +8 -10
- package/button/button.module.d.ts +1 -5
- package/button/buttons.component.d.ts +4 -5
- package/calendar/calendar.component.d.ts +9 -14
- package/calendar/calendar.module.d.ts +1 -10
- package/card/card.component.d.ts +2 -6
- package/card/card.module.d.ts +1 -5
- package/carousel/carousel-panel.component.d.ts +10 -13
- package/carousel/carousel.component.d.ts +4 -8
- package/carousel/carousel.module.d.ts +1 -5
- package/cascade/cascade-portal.component.d.ts +4 -5
- package/cascade/cascade.component.d.ts +14 -13
- package/cascade/cascade.module.d.ts +1 -9
- package/checkbox/checkbox.component.d.ts +6 -9
- package/checkbox/checkbox.module.d.ts +1 -8
- package/collapse/collapse-panel.component.d.ts +5 -8
- package/collapse/collapse.component.d.ts +3 -7
- package/collapse/collapse.module.d.ts +1 -5
- package/color/color.component.d.ts +4 -6
- package/color/color.module.d.ts +1 -3
- package/color-picker/color-picker-portal.component.d.ts +7 -11
- package/color-picker/color-picker.component.d.ts +11 -12
- package/color-picker/color-picker.module.d.ts +1 -11
- package/comment/comment-reply.component.d.ts +4 -9
- package/comment/comment.component.d.ts +5 -9
- package/comment/comment.module.d.ts +1 -11
- package/container/aside.component.d.ts +5 -5
- package/container/container.component.d.ts +2 -3
- package/container/container.module.d.ts +1 -3
- package/container/footer.component.d.ts +5 -7
- package/container/header.component.d.ts +5 -7
- package/container/main.component.d.ts +4 -4
- package/crumb/crumb.component.d.ts +4 -6
- package/crumb/crumb.module.d.ts +1 -5
- package/date-picker/date-picker-portal.component.d.ts +5 -9
- package/date-picker/date-picker.component.d.ts +14 -16
- package/date-picker/date-picker.module.d.ts +2 -21
- package/date-picker/date-quarter.pipe.d.ts +1 -1
- package/date-picker/date-range-portal.component.d.ts +1 -1
- package/date-picker/date-range.component.d.ts +17 -19
- package/date-picker/picker-date.component.d.ts +8 -12
- package/date-picker/picker-month.component.d.ts +8 -11
- package/date-picker/picker-quarter.component.d.ts +9 -14
- package/date-picker/picker-year.component.d.ts +5 -8
- package/description/description-item.component.d.ts +1 -2
- package/description/description.component.d.ts +4 -5
- package/description/description.module.d.ts +2 -5
- package/dialog/dialog-container.component.d.ts +1 -2
- package/dialog/dialog-portal.component.d.ts +1 -1
- package/dialog/dialog-portal.directives.d.ts +13 -17
- package/dialog/dialog.component.d.ts +15 -17
- package/dialog/dialog.module.d.ts +1 -14
- package/dialog/dialog.service.d.ts +8 -10
- package/doc/doc.component.d.ts +6 -6
- package/doc/doc.module.d.ts +1 -2
- package/drag/drag.directive.d.ts +5 -6
- package/drag/drag.module.d.ts +1 -2
- package/drawer/drawer-container.component.d.ts +1 -2
- package/drawer/drawer-portal.component.d.ts +1 -2
- package/drawer/drawer-portal.directives.d.ts +5 -6
- package/drawer/drawer.component.d.ts +10 -15
- package/drawer/drawer.module.d.ts +2 -8
- package/drawer/drawer.service.d.ts +5 -7
- package/dropdown/dropdown-portal.component.d.ts +1 -1
- package/dropdown/dropdown.component.d.ts +10 -13
- package/dropdown/dropdown.module.d.ts +1 -7
- package/empty/empty.component.d.ts +4 -7
- package/empty/empty.module.d.ts +1 -6
- package/esm2022/affix/affix.component.mjs +11 -11
- package/esm2022/affix/affix.module.mjs +6 -9
- package/esm2022/affix/affix.property.mjs +3 -3
- package/esm2022/alert/alert.component.mjs +19 -19
- package/esm2022/alert/alert.module.mjs +6 -14
- package/esm2022/alert/alert.property.mjs +4 -4
- package/esm2022/anchor/anchor-inner.component.mjs +5 -4
- package/esm2022/anchor/anchor.component.mjs +18 -21
- package/esm2022/anchor/anchor.module.mjs +6 -11
- package/esm2022/anchor/anchor.property.mjs +7 -7
- package/esm2022/api/api.component.mjs +14 -12
- package/esm2022/api/api.module.mjs +6 -8
- package/esm2022/auto-complete/auto-complete-portal.component.mjs +15 -16
- package/esm2022/auto-complete/auto-complete.component.mjs +44 -31
- package/esm2022/auto-complete/auto-complete.module.mjs +7 -16
- package/esm2022/auto-complete/auto-complete.property.mjs +3 -3
- package/esm2022/avatar/avatar-group.component.mjs +7 -7
- package/esm2022/avatar/avatar.component.mjs +17 -19
- package/esm2022/avatar/avatar.module.mjs +6 -11
- package/esm2022/avatar/avatar.property.mjs +7 -7
- package/esm2022/back-top/back-top.component.mjs +23 -29
- package/esm2022/back-top/back-top.module.mjs +6 -11
- package/esm2022/back-top/back-top.property.mjs +3 -3
- package/esm2022/badge/badge.component.mjs +18 -23
- package/esm2022/badge/badge.module.mjs +6 -9
- package/esm2022/badge/badge.property.mjs +3 -3
- package/esm2022/base-form/base-form.component.mjs +11 -6
- package/esm2022/base-form/base-form.module.mjs +7 -8
- package/esm2022/base-form/base-form.property.mjs +4 -4
- package/esm2022/border/border.component.mjs +14 -12
- package/esm2022/border/border.module.mjs +6 -6
- package/esm2022/button/button.component.mjs +19 -24
- package/esm2022/button/button.module.mjs +6 -11
- package/esm2022/button/button.property.mjs +7 -7
- package/esm2022/button/buttons.component.mjs +15 -15
- package/esm2022/calendar/calendar.component.mjs +38 -30
- package/esm2022/calendar/calendar.module.mjs +6 -16
- package/esm2022/calendar/calendar.property.mjs +3 -3
- package/esm2022/card/card.component.mjs +14 -17
- package/esm2022/card/card.module.mjs +6 -11
- package/esm2022/card/card.property.mjs +3 -3
- package/esm2022/carousel/carousel-panel.component.mjs +36 -34
- package/esm2022/carousel/carousel.component.mjs +19 -26
- package/esm2022/carousel/carousel.module.mjs +7 -12
- package/esm2022/carousel/carousel.property.mjs +6 -6
- package/esm2022/cascade/cascade-portal.component.mjs +20 -20
- package/esm2022/cascade/cascade.component.mjs +34 -29
- package/esm2022/cascade/cascade.module.mjs +7 -16
- package/esm2022/cascade/cascade.property.mjs +3 -3
- package/esm2022/checkbox/checkbox.component.mjs +31 -27
- package/esm2022/checkbox/checkbox.module.mjs +6 -14
- package/esm2022/checkbox/checkbox.property.mjs +3 -3
- package/esm2022/collapse/collapse-panel.component.mjs +18 -21
- package/esm2022/collapse/collapse.component.mjs +11 -15
- package/esm2022/collapse/collapse.module.mjs +6 -11
- package/esm2022/collapse/collapse.property.mjs +6 -6
- package/esm2022/color/color.component.mjs +14 -19
- package/esm2022/color/color.module.mjs +6 -9
- package/esm2022/color/color.property.mjs +3 -3
- package/esm2022/color-picker/color-picker-portal.component.mjs +45 -35
- package/esm2022/color-picker/color-picker.component.mjs +36 -35
- package/esm2022/color-picker/color-picker.module.mjs +7 -44
- package/esm2022/color-picker/color-picker.property.mjs +3 -3
- package/esm2022/comment/comment-reply.component.mjs +18 -19
- package/esm2022/comment/comment.component.mjs +30 -25
- package/esm2022/comment/comment.module.mjs +6 -43
- package/esm2022/comment/comment.property.mjs +7 -7
- package/esm2022/container/aside.component.mjs +15 -13
- package/esm2022/container/container.component.mjs +14 -14
- package/esm2022/container/container.module.mjs +7 -37
- package/esm2022/container/container.property.mjs +12 -12
- package/esm2022/container/footer.component.mjs +17 -21
- package/esm2022/container/header.component.mjs +17 -21
- package/esm2022/container/main.component.mjs +14 -12
- package/esm2022/core/config/config.service.mjs +11 -6
- package/esm2022/core/services/http.service.mjs +3 -3
- package/esm2022/core/services/preloading-strategy.service.mjs +6 -5
- package/esm2022/core/services/storage.service.mjs +3 -3
- package/esm2022/core/theme/theme.service.mjs +3 -3
- package/esm2022/crumb/crumb.component.mjs +15 -19
- package/esm2022/crumb/crumb.module.mjs +6 -11
- package/esm2022/crumb/crumb.property.mjs +3 -3
- package/esm2022/date-picker/date-picker-portal.component.mjs +38 -29
- package/esm2022/date-picker/date-picker.component.mjs +52 -47
- package/esm2022/date-picker/date-picker.module.mjs +7 -108
- package/esm2022/date-picker/date-picker.property.mjs +18 -18
- package/esm2022/date-picker/date-quarter.pipe.mjs +5 -5
- package/esm2022/date-picker/date-range-portal.component.mjs +25 -13
- package/esm2022/date-picker/date-range.component.mjs +50 -51
- package/esm2022/date-picker/picker-date.component.mjs +45 -43
- package/esm2022/date-picker/picker-month.component.mjs +31 -30
- package/esm2022/date-picker/picker-quarter.component.mjs +31 -32
- package/esm2022/date-picker/picker-year.component.mjs +26 -25
- package/esm2022/description/description-item.component.mjs +6 -9
- package/esm2022/description/description.component.mjs +13 -14
- package/esm2022/description/description.module.mjs +6 -10
- package/esm2022/description/description.property.mjs +6 -6
- package/esm2022/dialog/dialog-container.component.mjs +7 -7
- package/esm2022/dialog/dialog-portal.component.mjs +22 -11
- package/esm2022/dialog/dialog-portal.directives.mjs +48 -48
- package/esm2022/dialog/dialog-ref.mjs +1 -1
- package/esm2022/dialog/dialog.component.mjs +40 -48
- package/esm2022/dialog/dialog.module.mjs +12 -71
- package/esm2022/dialog/dialog.property.mjs +6 -6
- package/esm2022/dialog/dialog.service.mjs +16 -17
- package/esm2022/doc/doc.component.mjs +12 -10
- package/esm2022/doc/doc.module.mjs +6 -8
- package/esm2022/drag/drag.directive.mjs +11 -11
- package/esm2022/drag/drag.module.mjs +6 -8
- package/esm2022/drag/drag.property.mjs +3 -3
- package/esm2022/drawer/drawer-container.component.mjs +7 -7
- package/esm2022/drawer/drawer-portal.component.mjs +12 -12
- package/esm2022/drawer/drawer-portal.directives.mjs +22 -21
- package/esm2022/drawer/drawer.component.mjs +23 -33
- package/esm2022/drawer/drawer.module.mjs +10 -27
- package/esm2022/drawer/drawer.property.mjs +6 -6
- package/esm2022/drawer/drawer.service.mjs +15 -15
- package/esm2022/dropdown/dropdown-portal.component.mjs +8 -7
- package/esm2022/dropdown/dropdown.component.mjs +18 -22
- package/esm2022/dropdown/dropdown.module.mjs +7 -14
- package/esm2022/dropdown/dropdown.property.mjs +3 -3
- package/esm2022/empty/empty.component.mjs +20 -18
- package/esm2022/empty/empty.module.mjs +6 -12
- package/esm2022/empty/empty.property.mjs +3 -3
- package/esm2022/examples/examples.component.mjs +12 -10
- package/esm2022/examples/examples.module.mjs +6 -8
- package/esm2022/find/find.component.mjs +48 -33
- package/esm2022/find/find.module.mjs +6 -54
- package/esm2022/find/find.property.mjs +3 -3
- package/esm2022/form/control.component.mjs +67 -40
- package/esm2022/form/form.component.mjs +28 -22
- package/esm2022/form/form.module.mjs +6 -71
- package/esm2022/form/form.property.mjs +6 -6
- package/esm2022/highlight/highlight.component.mjs +26 -24
- package/esm2022/highlight/highlight.module.mjs +6 -10
- package/esm2022/highlight/highlight.property.mjs +3 -3
- package/esm2022/i18n/i18n.directive.mjs +14 -11
- package/esm2022/i18n/i18n.module.mjs +6 -6
- package/esm2022/i18n/i18n.pipe.mjs +6 -5
- package/esm2022/i18n/i18n.service.mjs +9 -13
- package/esm2022/icon/icon.component.mjs +21 -22
- package/esm2022/icon/icon.module.mjs +6 -11
- package/esm2022/icon/icon.property.mjs +4 -4
- package/esm2022/icon/icon.service.mjs +36 -35
- package/esm2022/image/image-group.component.mjs +12 -6
- package/esm2022/image/image-preview.component.mjs +26 -32
- package/esm2022/image/image.component.mjs +30 -30
- package/esm2022/image/image.module.mjs +6 -15
- package/esm2022/image/image.property.mjs +6 -6
- package/esm2022/inner/inner.component.mjs +14 -14
- package/esm2022/inner/inner.module.mjs +6 -9
- package/esm2022/inner/inner.property.mjs +3 -3
- package/esm2022/input/input-group.component.mjs +12 -14
- package/esm2022/input/input.component.mjs +33 -35
- package/esm2022/input/input.module.mjs +6 -13
- package/esm2022/input/input.property.mjs +6 -6
- package/esm2022/input-number/input-number.component.mjs +23 -27
- package/esm2022/input-number/input-number.module.mjs +6 -13
- package/esm2022/input-number/input-number.property.mjs +3 -3
- package/esm2022/keyword/keyword.directive.mjs +14 -14
- package/esm2022/keyword/keyword.module.mjs +6 -9
- package/esm2022/keyword/keyword.property.mjs +5 -5
- package/esm2022/layout/col.component.mjs +15 -19
- package/esm2022/layout/layout.module.mjs +6 -9
- package/esm2022/layout/layout.property.mjs +7 -7
- package/esm2022/layout/row.component.mjs +13 -13
- package/esm2022/link/link.component.mjs +17 -19
- package/esm2022/link/link.module.mjs +6 -12
- package/esm2022/link/link.property.mjs +3 -3
- package/esm2022/list/list-drop-group.directive.mjs +5 -4
- package/esm2022/list/list-option.component.mjs +16 -17
- package/esm2022/list/list.component.mjs +36 -33
- package/esm2022/list/list.module.mjs +6 -54
- package/esm2022/list/list.property.mjs +6 -6
- package/esm2022/loading/loading.component.mjs +19 -22
- package/esm2022/loading/loading.module.mjs +6 -12
- package/esm2022/loading/loading.property.mjs +3 -3
- package/esm2022/menu/menu-node.component.mjs +17 -18
- package/esm2022/menu/menu.component.mjs +21 -27
- package/esm2022/menu/menu.module.mjs +6 -13
- package/esm2022/menu/menu.property.mjs +6 -6
- package/esm2022/message/message.component.mjs +10 -16
- package/esm2022/message/message.module.mjs +7 -14
- package/esm2022/message/message.service.mjs +13 -13
- package/esm2022/message-box/message-box.component.mjs +21 -12
- package/esm2022/message-box/message-box.module.mjs +7 -49
- package/esm2022/message-box/message-box.service.mjs +13 -12
- package/esm2022/notification/notification.component.mjs +10 -16
- package/esm2022/notification/notification.module.mjs +7 -14
- package/esm2022/notification/notification.service.mjs +15 -11
- package/esm2022/outlet/outlet.directive.mjs +10 -10
- package/esm2022/outlet/outlet.module.mjs +6 -8
- package/esm2022/page-header/page-header.component.mjs +18 -19
- package/esm2022/page-header/page-header.module.mjs +6 -10
- package/esm2022/page-header/page-header.property.mjs +3 -3
- package/esm2022/pagination/pagination.component.mjs +37 -33
- package/esm2022/pagination/pagination.module.mjs +6 -15
- package/esm2022/pagination/pagination.property.mjs +3 -3
- package/esm2022/pattern/pattern.component.mjs +12 -10
- package/esm2022/pattern/pattern.module.mjs +6 -8
- package/esm2022/popconfirm/popconfirm.component.mjs +23 -26
- package/esm2022/popconfirm/popconfirm.module.mjs +6 -13
- package/esm2022/popconfirm/popconfirm.property.mjs +3 -3
- package/esm2022/popover/popover-portal.component.mjs +16 -16
- package/esm2022/popover/popover.directive.mjs +17 -19
- package/esm2022/popover/popover.module.mjs +7 -13
- package/esm2022/popover/popover.property.mjs +3 -3
- package/esm2022/portal/portal.module.mjs +8 -11
- package/esm2022/portal/portal.service.mjs +13 -12
- package/esm2022/progress/progress.component.mjs +16 -19
- package/esm2022/progress/progress.module.mjs +6 -11
- package/esm2022/progress/progress.property.mjs +3 -3
- package/esm2022/radio/radio.component.mjs +21 -25
- package/esm2022/radio/radio.module.mjs +6 -14
- package/esm2022/radio/radio.property.mjs +3 -3
- package/esm2022/rate/rate.component.mjs +22 -22
- package/esm2022/rate/rate.module.mjs +6 -13
- package/esm2022/rate/rate.property.mjs +3 -3
- package/esm2022/resizable/resizable.directive.mjs +57 -46
- package/esm2022/resizable/resizable.module.mjs +7 -9
- package/esm2022/resizable/resizable.property.mjs +5 -5
- package/esm2022/result/result.component.mjs +15 -19
- package/esm2022/result/result.module.mjs +6 -11
- package/esm2022/result/result.property.mjs +3 -3
- package/esm2022/ripple/ripple.directive.mjs +12 -11
- package/esm2022/ripple/ripple.module.mjs +7 -10
- package/esm2022/ripple/ripple.property.mjs +3 -3
- package/esm2022/select/select-portal.component.mjs +7 -6
- package/esm2022/select/select.component.mjs +51 -50
- package/esm2022/select/select.module.mjs +7 -48
- package/esm2022/select/select.property.mjs +3 -3
- package/esm2022/skeleton/skeleton.component.mjs +14 -17
- package/esm2022/skeleton/skeleton.module.mjs +6 -10
- package/esm2022/skeleton/skeleton.property.mjs +3 -3
- package/esm2022/slider/slider.component.mjs +38 -39
- package/esm2022/slider/slider.module.mjs +7 -13
- package/esm2022/slider/slider.property.mjs +3 -3
- package/esm2022/slider-select/slider-select.component.mjs +46 -38
- package/esm2022/slider-select/slider-select.module.mjs +6 -38
- package/esm2022/slider-select/slider-select.property.mjs +3 -3
- package/esm2022/statistic/countdown.component.mjs +15 -16
- package/esm2022/statistic/statistic.component.mjs +13 -14
- package/esm2022/statistic/statistic.module.mjs +6 -11
- package/esm2022/statistic/statistic.property.mjs +6 -6
- package/esm2022/steps/steps.component.mjs +17 -22
- package/esm2022/steps/steps.module.mjs +6 -11
- package/esm2022/steps/steps.property.mjs +3 -3
- package/esm2022/switch/switch.component.mjs +18 -18
- package/esm2022/switch/switch.module.mjs +6 -13
- package/esm2022/switch/switch.property.mjs +3 -3
- package/esm2022/table/table-body.component.mjs +23 -13
- package/esm2022/table/table-foot.component.mjs +12 -16
- package/esm2022/table/table-head.component.mjs +35 -31
- package/esm2022/table/table.component.mjs +22 -13
- package/esm2022/table/table.module.mjs +6 -71
- package/esm2022/table/table.property.mjs +12 -12
- package/esm2022/tabs/tab-content.component.mjs +13 -11
- package/esm2022/tabs/tab-link.directive.mjs +11 -9
- package/esm2022/tabs/tab.component.mjs +11 -11
- package/esm2022/tabs/tabs.component.mjs +28 -27
- package/esm2022/tabs/tabs.module.mjs +7 -28
- package/esm2022/tabs/tabs.property.mjs +6 -6
- package/esm2022/tag/tag.component.mjs +16 -20
- package/esm2022/tag/tag.module.mjs +6 -11
- package/esm2022/tag/tag.property.mjs +3 -3
- package/esm2022/text-retract/text-retract.component.mjs +16 -19
- package/esm2022/text-retract/text-retract.module.mjs +6 -12
- package/esm2022/text-retract/text-retract.property.mjs +3 -3
- package/esm2022/textarea/textarea.component.mjs +24 -25
- package/esm2022/textarea/textarea.module.mjs +6 -12
- package/esm2022/textarea/textarea.property.mjs +3 -3
- package/esm2022/theme/theme.component.mjs +42 -31
- package/esm2022/theme/theme.module.mjs +6 -42
- package/esm2022/theme/theme.property.mjs +3 -3
- package/esm2022/time-ago/time-ago.module.mjs +6 -8
- package/esm2022/time-ago/time-ago.pipe.mjs +21 -21
- package/esm2022/time-picker/time-picker-frame.component.mjs +30 -30
- package/esm2022/time-picker/time-picker-portal.component.mjs +18 -20
- package/esm2022/time-picker/time-picker.component.mjs +40 -41
- package/esm2022/time-picker/time-picker.module.mjs +7 -48
- package/esm2022/time-picker/time-picker.property.mjs +3 -3
- package/esm2022/time-range/time-range.module.mjs +7 -7
- package/esm2022/time-range/time-range.pipe.mjs +5 -5
- package/esm2022/timeline/timeline.component.mjs +17 -20
- package/esm2022/timeline/timeline.module.mjs +6 -13
- package/esm2022/timeline/timeline.property.mjs +3 -3
- package/esm2022/tooltip/tooltip-portal.component.mjs +16 -16
- package/esm2022/tooltip/tooltip.directive.mjs +16 -19
- package/esm2022/tooltip/tooltip.module.mjs +7 -13
- package/esm2022/tooltip/tooltip.property.mjs +3 -3
- package/esm2022/transfer/transfer.component.mjs +70 -55
- package/esm2022/transfer/transfer.module.mjs +6 -59
- package/esm2022/transfer/transfer.property.mjs +3 -3
- package/esm2022/tree/tree-node.component.mjs +36 -30
- package/esm2022/tree/tree.component.mjs +12 -16
- package/esm2022/tree/tree.module.mjs +6 -43
- package/esm2022/tree/tree.property.mjs +6 -6
- package/esm2022/tree/tree.service.mjs +6 -5
- package/esm2022/tree-file/tree-file.component.mjs +34 -31
- package/esm2022/tree-file/tree-file.module.mjs +6 -15
- package/esm2022/tree-file/tree-file.property.mjs +3 -3
- package/esm2022/tree-select/tree-select-portal.component.mjs +24 -26
- package/esm2022/tree-select/tree-select.component.mjs +52 -51
- package/esm2022/tree-select/tree-select.module.mjs +8 -56
- package/esm2022/tree-select/tree-select.property.mjs +3 -3
- package/esm2022/typography/typography.component.mjs +12 -12
- package/esm2022/typography/typography.module.mjs +6 -9
- package/esm2022/typography/typography.property.mjs +3 -3
- package/esm2022/upload/upload-portal.component.mjs +11 -12
- package/esm2022/upload/upload.component.mjs +42 -43
- package/esm2022/upload/upload.module.mjs +6 -55
- package/esm2022/upload/upload.property.mjs +3 -3
- package/examples/examples.component.d.ts +6 -6
- package/examples/examples.module.d.ts +1 -2
- package/fesm2022/ng-nest-ui-affix.mjs +18 -21
- package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-alert.mjs +25 -32
- package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-anchor.mjs +32 -37
- package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-api.mjs +18 -18
- package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-auto-complete.mjs +65 -57
- package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-avatar.mjs +33 -38
- package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-back-top.mjs +30 -39
- package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-badge.mjs +25 -32
- package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-base-form.mjs +19 -14
- package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-border.mjs +18 -16
- package/fesm2022/ng-nest-ui-border.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-button.mjs +40 -49
- package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-calendar.mjs +44 -44
- package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-card.mjs +21 -28
- package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-carousel.mjs +62 -68
- package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-cascade.mjs +58 -58
- package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-checkbox.mjs +37 -39
- package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-collapse.mjs +36 -47
- package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color-picker.mjs +84 -106
- package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color.mjs +22 -28
- package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-comment.mjs +51 -83
- package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-container.mjs +80 -114
- package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-core.mjs +24 -18
- package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-crumb.mjs +22 -30
- package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-date-picker.mjs +277 -326
- package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-description.mjs +28 -35
- package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dialog.mjs +193 -242
- package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-doc.mjs +16 -16
- package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-drag.mjs +19 -20
- package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-drawer.mjs +128 -149
- package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dropdown.mjs +33 -38
- package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-empty.mjs +26 -31
- package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-examples.mjs +16 -16
- package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-find.mjs +55 -86
- package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-form.mjs +98 -126
- package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-highlight.mjs +33 -33
- package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-i18n.mjs +29 -29
- package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-icon.mjs +62 -64
- package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-image.mjs +69 -75
- package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-inner.mjs +21 -24
- package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input-number.mjs +31 -38
- package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input.mjs +51 -60
- package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-keyword.mjs +22 -24
- package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-layout.mjs +35 -41
- package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-link.mjs +24 -31
- package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-list.mjs +63 -100
- package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-loading.mjs +26 -34
- package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-menu.mjs +42 -54
- package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message-box.mjs +38 -66
- package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message.mjs +26 -37
- package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-notification.mjs +28 -35
- package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-outlet.mjs +14 -16
- package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-page-header.mjs +25 -30
- package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pagination.mjs +43 -47
- package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pattern.mjs +16 -16
- package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popconfirm.mjs +30 -40
- package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popover.mjs +39 -44
- package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-portal.mjs +26 -26
- package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-progress.mjs +22 -29
- package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-radio.mjs +28 -38
- package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-rate.mjs +29 -34
- package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-resizable.mjs +67 -57
- package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-result.mjs +22 -30
- package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-ripple.mjs +20 -21
- package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-select.mjs +66 -100
- package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-skeleton.mjs +21 -27
- package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider-select.mjs +53 -73
- package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider.mjs +46 -52
- package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-statistic.mjs +34 -40
- package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-steps.mjs +24 -33
- package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-switch.mjs +25 -30
- package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-table.mjs +111 -154
- package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tabs.mjs +67 -79
- package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tag.mjs +23 -31
- package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-text-retract.mjs +22 -30
- package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-textarea.mjs +31 -36
- package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-theme.mjs +49 -71
- package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-ago.mjs +24 -26
- package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-picker.mjs +89 -127
- package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-range.mjs +10 -10
- package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-timeline.mjs +24 -33
- package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tooltip.mjs +38 -44
- package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-transfer.mjs +76 -111
- package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-file.mjs +41 -46
- package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-select.mjs +83 -126
- package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree.mjs +60 -89
- package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-typography.mjs +19 -21
- package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-upload.mjs +58 -106
- package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
- package/find/find.component.d.ts +6 -8
- package/find/find.module.d.ts +1 -13
- package/form/control.component.d.ts +6 -7
- package/form/form.component.d.ts +5 -8
- package/form/form.module.d.ts +1 -24
- package/highlight/highlight.component.d.ts +12 -10
- package/highlight/highlight.module.d.ts +1 -4
- package/i18n/i18n.directive.d.ts +6 -7
- package/i18n/i18n.module.d.ts +1 -1
- package/i18n/i18n.pipe.d.ts +1 -1
- package/i18n/i18n.service.d.ts +3 -2
- package/icon/icon.component.d.ts +7 -9
- package/icon/icon.module.d.ts +1 -3
- package/icon/icon.property.d.ts +1 -1
- package/icon/icon.service.d.ts +6 -7
- package/image/image-group.component.d.ts +3 -1
- package/image/image-preview.component.d.ts +5 -10
- package/image/image.component.d.ts +9 -14
- package/image/image.module.d.ts +3 -11
- package/inner/inner.component.d.ts +2 -3
- package/inner/inner.module.d.ts +1 -3
- package/input/input-group.component.d.ts +3 -6
- package/input/input.component.d.ts +8 -10
- package/input/input.module.d.ts +2 -8
- package/input-number/input-number.component.d.ts +5 -6
- package/input-number/input-number.module.d.ts +1 -7
- package/keyword/keyword.directive.d.ts +3 -4
- package/keyword/keyword.module.d.ts +1 -3
- package/keyword/keyword.property.d.ts +1 -1
- package/layout/col.component.d.ts +5 -7
- package/layout/layout.module.d.ts +1 -3
- package/layout/row.component.d.ts +3 -4
- package/link/link.component.d.ts +5 -7
- package/link/link.module.d.ts +1 -6
- package/list/list-drop-group.directive.d.ts +1 -1
- package/list/list-option.component.d.ts +6 -7
- package/list/list.component.d.ts +9 -12
- package/list/list.module.d.ts +1 -13
- package/loading/loading.component.d.ts +7 -10
- package/loading/loading.module.d.ts +1 -6
- package/menu/menu-node.component.d.ts +6 -7
- package/menu/menu.component.d.ts +4 -8
- package/menu/menu.module.d.ts +1 -7
- package/message/message.component.d.ts +3 -7
- package/message/message.module.d.ts +1 -5
- package/message/message.service.d.ts +4 -5
- package/message-box/message-box.component.d.ts +1 -1
- package/message-box/message-box.module.d.ts +1 -11
- package/message-box/message-box.service.d.ts +2 -5
- package/notification/notification.component.d.ts +3 -7
- package/notification/notification.module.d.ts +1 -5
- package/notification/notification.service.d.ts +1 -3
- package/outlet/outlet.directive.d.ts +4 -5
- package/outlet/outlet.module.d.ts +1 -2
- package/package.json +36 -36
- package/page-header/page-header.component.d.ts +5 -7
- package/page-header/page-header.module.d.ts +1 -4
- package/pagination/pagination.component.d.ts +8 -11
- package/pagination/pagination.module.d.ts +1 -9
- package/pattern/pattern.component.d.ts +4 -4
- package/pattern/pattern.module.d.ts +1 -2
- package/popconfirm/popconfirm.component.d.ts +6 -9
- package/popconfirm/popconfirm.module.d.ts +1 -7
- package/popover/popover-portal.component.d.ts +4 -5
- package/popover/popover.directive.d.ts +9 -10
- package/popover/popover.module.d.ts +1 -6
- package/portal/portal.module.d.ts +1 -3
- package/portal/portal.service.d.ts +3 -4
- package/progress/progress.component.d.ts +3 -7
- package/progress/progress.module.d.ts +1 -5
- package/radio/radio.component.d.ts +6 -9
- package/radio/radio.module.d.ts +1 -8
- package/rate/rate.component.d.ts +6 -8
- package/rate/rate.module.d.ts +1 -7
- package/resizable/resizable.directive.d.ts +5 -7
- package/resizable/resizable.module.d.ts +1 -2
- package/resizable/resizable.property.d.ts +1 -1
- package/result/result.component.d.ts +3 -7
- package/result/result.module.d.ts +1 -5
- package/ripple/ripple.directive.d.ts +4 -5
- package/ripple/ripple.module.d.ts +1 -3
- package/select/select-portal.component.d.ts +1 -1
- package/select/select.component.d.ts +14 -15
- package/select/select.module.d.ts +1 -12
- package/skeleton/skeleton.component.d.ts +3 -6
- package/skeleton/skeleton.module.d.ts +1 -4
- package/slider/slider.component.d.ts +5 -8
- package/slider/slider.module.d.ts +1 -7
- package/slider-select/slider-select.component.d.ts +6 -7
- package/slider-select/slider-select.module.d.ts +1 -9
- package/statistic/countdown.component.d.ts +6 -7
- package/statistic/statistic.component.d.ts +2 -3
- package/statistic/statistic.module.d.ts +1 -5
- package/steps/steps.component.d.ts +4 -8
- package/steps/steps.module.d.ts +1 -5
- package/style/core/index.css +1 -1
- package/style/params/colors.scss +1 -1
- package/switch/switch.component.d.ts +6 -7
- package/switch/switch.module.d.ts +1 -7
- package/table/table-body.component.d.ts +1 -1
- package/table/table-foot.component.d.ts +3 -6
- package/table/table-head.component.d.ts +5 -8
- package/table/table.component.d.ts +1 -1
- package/table/table.module.d.ts +4 -17
- package/tabs/tab-content.component.d.ts +6 -6
- package/tabs/tab-link.directive.d.ts +2 -2
- package/tabs/tab.component.d.ts +2 -3
- package/tabs/tabs.component.d.ts +8 -9
- package/tabs/tabs.module.d.ts +3 -9
- package/tag/tag.component.d.ts +4 -8
- package/tag/tag.module.d.ts +1 -5
- package/text-retract/text-retract.component.d.ts +6 -10
- package/text-retract/text-retract.module.d.ts +1 -6
- package/textarea/textarea.component.d.ts +5 -7
- package/textarea/textarea.module.d.ts +1 -6
- package/theme/theme.component.d.ts +8 -9
- package/theme/theme.module.d.ts +1 -10
- package/time-ago/time-ago.module.d.ts +1 -1
- package/time-ago/time-ago.pipe.d.ts +6 -9
- package/time-picker/time-picker-frame.component.d.ts +5 -6
- package/time-picker/time-picker-portal.component.d.ts +5 -7
- package/time-picker/time-picker.component.d.ts +14 -16
- package/time-picker/time-picker.module.d.ts +2 -13
- package/time-range/time-range.module.d.ts +1 -1
- package/time-range/time-range.pipe.d.ts +1 -1
- package/timeline/timeline.component.d.ts +5 -8
- package/timeline/timeline.module.d.ts +1 -7
- package/tooltip/tooltip-portal.component.d.ts +4 -5
- package/tooltip/tooltip.directive.d.ts +8 -9
- package/tooltip/tooltip.module.d.ts +1 -6
- package/transfer/transfer.component.d.ts +6 -9
- package/transfer/transfer.module.d.ts +1 -15
- package/tree/tree-node.component.d.ts +6 -10
- package/tree/tree.component.d.ts +1 -1
- package/tree/tree.module.d.ts +1 -11
- package/tree-file/tree-file.component.d.ts +5 -10
- package/tree-file/tree-file.module.d.ts +1 -9
- package/tree-select/tree-select-portal.component.d.ts +5 -7
- package/tree-select/tree-select.component.d.ts +14 -15
- package/tree-select/tree-select.module.d.ts +1 -14
- package/typography/typography.component.d.ts +3 -4
- package/typography/typography.module.d.ts +1 -3
- package/upload/upload-portal.component.d.ts +5 -7
- package/upload/upload.component.d.ts +12 -16
- package/upload/upload.module.d.ts +1 -14
|
@@ -1,21 +1,30 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, HostListener, ViewChild } from '@angular/core';
|
|
1
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, HostBinding, HostListener, ViewChild, inject } from '@angular/core';
|
|
2
2
|
import { XDatePickerPortalPrefix } from './date-picker.property';
|
|
3
3
|
import { XIsEmpty, XConnectBaseAnimation, XAddDays, XIsUndefined } from '@ng-nest/ui/core';
|
|
4
4
|
import { Subject } from 'rxjs';
|
|
5
5
|
import { takeUntil, map } from 'rxjs/operators';
|
|
6
|
-
import { DatePipe, LowerCasePipe } from '@angular/common';
|
|
6
|
+
import { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';
|
|
7
|
+
import { XI18nService } from '@ng-nest/ui/i18n';
|
|
8
|
+
import { XTimePickerModule } from '@ng-nest/ui/time-picker';
|
|
9
|
+
import { XPickerDateComponent } from './picker-date.component';
|
|
10
|
+
import { XPickerMonthComponent } from './picker-month.component';
|
|
11
|
+
import { XPickerQuarterComponent } from './picker-quarter.component';
|
|
12
|
+
import { XPickerYearComponent } from './picker-year.component';
|
|
13
|
+
import { XButtonComponent } from '@ng-nest/ui/button';
|
|
14
|
+
import { XLinkComponent } from '@ng-nest/ui/link';
|
|
15
|
+
import { XOutletDirective } from '@ng-nest/ui/outlet';
|
|
7
16
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@
|
|
9
|
-
import * as i2 from "@ng-nest/ui/i18n";
|
|
10
|
-
import * as i3 from "@ng-nest/ui/time-picker";
|
|
11
|
-
import * as i4 from "@ng-nest/ui/link";
|
|
12
|
-
import * as i5 from "@ng-nest/ui/button";
|
|
13
|
-
import * as i6 from "@ng-nest/ui/outlet";
|
|
14
|
-
import * as i7 from "./picker-date.component";
|
|
15
|
-
import * as i8 from "./picker-month.component";
|
|
16
|
-
import * as i9 from "./picker-quarter.component";
|
|
17
|
-
import * as i10 from "./picker-year.component";
|
|
17
|
+
import * as i1 from "@ng-nest/ui/time-picker";
|
|
18
18
|
export class XDatePickerPortalComponent {
|
|
19
|
+
constructor() {
|
|
20
|
+
this.type = 'date';
|
|
21
|
+
this.display = new Date();
|
|
22
|
+
this.locale = {};
|
|
23
|
+
this.preset = [];
|
|
24
|
+
this._unSubject = new Subject();
|
|
25
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
26
|
+
this.i18n = inject(XI18nService);
|
|
27
|
+
}
|
|
19
28
|
done(event) {
|
|
20
29
|
this.animating(false);
|
|
21
30
|
event.toState === 'void' && this.destroyPortal();
|
|
@@ -39,17 +48,6 @@ export class XDatePickerPortalComponent {
|
|
|
39
48
|
}
|
|
40
49
|
return res;
|
|
41
50
|
}
|
|
42
|
-
constructor(datePipe, lowerCasePipe, cdr, i18n) {
|
|
43
|
-
this.datePipe = datePipe;
|
|
44
|
-
this.lowerCasePipe = lowerCasePipe;
|
|
45
|
-
this.cdr = cdr;
|
|
46
|
-
this.i18n = i18n;
|
|
47
|
-
this.type = 'date';
|
|
48
|
-
this.display = new Date();
|
|
49
|
-
this.locale = {};
|
|
50
|
-
this.preset = [];
|
|
51
|
-
this._unSubject = new Subject();
|
|
52
|
-
}
|
|
53
51
|
ngOnInit() {
|
|
54
52
|
this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {
|
|
55
53
|
this.value = x;
|
|
@@ -170,13 +168,24 @@ export class XDatePickerPortalComponent {
|
|
|
170
168
|
this.model = new Date(date.getFullYear(), date.getMonth(), date.getDate(), time.getHours(), time.getMinutes(), time.getSeconds());
|
|
171
169
|
return this.model;
|
|
172
170
|
}
|
|
173
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
174
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
171
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XDatePickerPortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
172
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.7", type: XDatePickerPortalComponent, isStandalone: true, selector: "x-date-picker-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, providers: [DatePipe, LowerCasePipe], viewQueries: [{ propertyName: "timePickerFrame", first: true, predicate: ["timePickerFrame"], descendants: true }], ngImport: i0, template: "<div class=\"x-date-picker-portal {{ type }}\" (click)=\"inputCom.inputFocus()\">\r\n @switch (type) {\r\n @case ('date') {\r\n <x-picker-date\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n }\r\n @case ('week') {\r\n <x-picker-date\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n }\r\n @case ('month') {\r\n <x-picker-month\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"monthChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-month>\r\n }\r\n @case ('quarter') {\r\n <x-picker-quarter\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"quarterChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-quarter>\r\n }\r\n @case ('year') {\r\n <x-picker-year\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"yearChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-year>\r\n }\r\n @case ('date-time') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-hour') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-minute') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"\r\n ></ng-container>\r\n }\r\n @case ('month') {}\r\n }\r\n @if (isDatePicker) {\r\n @if (extraFooter) {\r\n <div class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-picker-portal-content\">\r\n <div class=\"x-date-picker-portal-date\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [(type)]=\"type\"\r\n [model]=\"model\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-picker-portal-time\">\r\n <div class=\"x-date-picker-portal-time-label\">\r\n {{ time | date: timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrame\r\n [type]=\"timeType\"\r\n [value]=\"time\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTime]=\"disabledTime\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n @if (!isDatePicker && extraFooter) {\r\n <div class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-date-picker-portal-footer\">\r\n <div class=\"x-date-picker-portal-footer-left\">\r\n @if (!isDatePicker && preset) {\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n </div>\r\n <x-button type=\"primary\" (click)=\"!sureDisabled && nodeEmit(model)\" size=\"small\" [disabled]=\"sureDisabled\">{{\r\n locale.sure\r\n }}</x-button>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n @if (preset) {\r\n <div class=\"x-date-picker-portal-preset\">\r\n @for (item of preset; track item.id) {\r\n @switch (item.id) {\r\n @case ('yesterday') {\r\n <x-link (click)=\"onYesterday()\">{{ locale.yesterday }}</x-link>\r\n }\r\n @case ('today') {\r\n <x-link (click)=\"onToday()\">{{ locale.today }}</x-link>\r\n }\r\n @case ('tomorrow') {\r\n <x-link (click)=\"onTomorrow()\">{{ locale.tomorrow }}</x-link>\r\n }\r\n }\r\n @if (!!item.func) {\r\n <x-link (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n }\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:16rem;display:flex;flex-direction:column}.x-date-picker-portal.week{width:18.125rem}.x-date-picker-portal.week .x-picker-date-body .x-picker-date-item:not(.x-date-in-range):not(.x-date-active) .x-date-text{background-color:transparent}.x-date-picker-portal.week .x-picker-date-body tbody tr:not(.x-date-week-active):hover .x-picker-date-item:not(.x-date-in-range){background-color:var(--x-background-a200);border-radius:var(--x-border-radius)}.x-date-picker-portal.date-time{width:27rem}.x-date-picker-portal.date-hour{width:19.75rem}.x-date-picker-portal.date-minute{width:23.375rem}.x-date-picker-portal-preset{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;border-top:var(--x-border-width) solid var(--x-border)}.x-date-picker-portal-preset>x-link{padding:.25rem}.x-date-picker-portal-preset>x-link:not(:first-child){margin-left:1rem}.x-date-picker-portal-body{padding:.4rem}.x-date-picker-portal-content{display:flex}.x-date-picker-portal-footer{display:flex;align-items:center;justify-content:space-between;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-picker-portal-footer .x-date-picker-portal-preset{border-top:none}.x-date-picker-portal-footer .x-date-picker-portal-preset>x-link{padding:0 .25rem}.x-date-picker-portal-extra-footer{display:flex;align-items:center;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-picker-portal-date{flex:1}.x-date-picker-portal-time{display:flex;flex-direction:column;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-picker-portal-time-label{display:flex;align-items:center;justify-content:center;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-picker-portal-time .x-time-picker-frame{border-width:0;box-shadow:none;margin:0}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "component", type: XPickerDateComponent, selector: "x-picker-date" }, { kind: "component", type: XPickerMonthComponent, selector: "x-picker-month" }, { kind: "component", type: XPickerQuarterComponent, selector: "x-picker-quarter" }, { kind: "component", type: XPickerYearComponent, selector: "x-picker-year" }, { kind: "ngmodule", type: XTimePickerModule }, { kind: "component", type: i1.XTimePickerFrameComponent, selector: "x-time-picker-frame", inputs: ["type", "value", "use12Hours", "hourStep", "minuteStep", "secondStep", "defaultNow", "disabledTime", "disabledTimeParam"], outputs: ["nodeEmit"] }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "component", type: XLinkComponent, selector: "x-link" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
175
173
|
}
|
|
176
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
174
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XDatePickerPortalComponent, decorators: [{
|
|
177
175
|
type: Component,
|
|
178
|
-
args: [{ selector: `${XDatePickerPortalPrefix}`,
|
|
179
|
-
|
|
176
|
+
args: [{ selector: `${XDatePickerPortalPrefix}`, standalone: true, imports: [
|
|
177
|
+
NgTemplateOutlet,
|
|
178
|
+
DatePipe,
|
|
179
|
+
XPickerDateComponent,
|
|
180
|
+
XPickerMonthComponent,
|
|
181
|
+
XPickerQuarterComponent,
|
|
182
|
+
XPickerYearComponent,
|
|
183
|
+
XTimePickerModule,
|
|
184
|
+
XButtonComponent,
|
|
185
|
+
XLinkComponent,
|
|
186
|
+
XOutletDirective
|
|
187
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], providers: [DatePipe, LowerCasePipe], template: "<div class=\"x-date-picker-portal {{ type }}\" (click)=\"inputCom.inputFocus()\">\r\n @switch (type) {\r\n @case ('date') {\r\n <x-picker-date\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n }\r\n @case ('week') {\r\n <x-picker-date\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n }\r\n @case ('month') {\r\n <x-picker-month\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"monthChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-month>\r\n }\r\n @case ('quarter') {\r\n <x-picker-quarter\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"quarterChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-quarter>\r\n }\r\n @case ('year') {\r\n <x-picker-year\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"yearChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-year>\r\n }\r\n @case ('date-time') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-hour') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"\r\n ></ng-container>\r\n }\r\n @case ('date-minute') {\r\n <ng-container\r\n *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"\r\n ></ng-container>\r\n }\r\n @case ('month') {}\r\n }\r\n @if (isDatePicker) {\r\n @if (extraFooter) {\r\n <div class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-picker-portal-content\">\r\n <div class=\"x-date-picker-portal-date\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [(type)]=\"type\"\r\n [model]=\"model\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-picker-portal-time\">\r\n <div class=\"x-date-picker-portal-time-label\">\r\n {{ time | date: timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrame\r\n [type]=\"timeType\"\r\n [value]=\"time\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTime]=\"disabledTime\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n @if (!isDatePicker && extraFooter) {\r\n <div class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-date-picker-portal-footer\">\r\n <div class=\"x-date-picker-portal-footer-left\">\r\n @if (!isDatePicker && preset) {\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n }\r\n </div>\r\n <x-button type=\"primary\" (click)=\"!sureDisabled && nodeEmit(model)\" size=\"small\" [disabled]=\"sureDisabled\">{{\r\n locale.sure\r\n }}</x-button>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n @if (preset) {\r\n <div class=\"x-date-picker-portal-preset\">\r\n @for (item of preset; track item.id) {\r\n @switch (item.id) {\r\n @case ('yesterday') {\r\n <x-link (click)=\"onYesterday()\">{{ locale.yesterday }}</x-link>\r\n }\r\n @case ('today') {\r\n <x-link (click)=\"onToday()\">{{ locale.today }}</x-link>\r\n }\r\n @case ('tomorrow') {\r\n <x-link (click)=\"onTomorrow()\">{{ locale.tomorrow }}</x-link>\r\n }\r\n }\r\n @if (!!item.func) {\r\n <x-link (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n }\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:16rem;display:flex;flex-direction:column}.x-date-picker-portal.week{width:18.125rem}.x-date-picker-portal.week .x-picker-date-body .x-picker-date-item:not(.x-date-in-range):not(.x-date-active) .x-date-text{background-color:transparent}.x-date-picker-portal.week .x-picker-date-body tbody tr:not(.x-date-week-active):hover .x-picker-date-item:not(.x-date-in-range){background-color:var(--x-background-a200);border-radius:var(--x-border-radius)}.x-date-picker-portal.date-time{width:27rem}.x-date-picker-portal.date-hour{width:19.75rem}.x-date-picker-portal.date-minute{width:23.375rem}.x-date-picker-portal-preset{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;border-top:var(--x-border-width) solid var(--x-border)}.x-date-picker-portal-preset>x-link{padding:.25rem}.x-date-picker-portal-preset>x-link:not(:first-child){margin-left:1rem}.x-date-picker-portal-body{padding:.4rem}.x-date-picker-portal-content{display:flex}.x-date-picker-portal-footer{display:flex;align-items:center;justify-content:space-between;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-picker-portal-footer .x-date-picker-portal-preset{border-top:none}.x-date-picker-portal-footer .x-date-picker-portal-preset>x-link{padding:0 .25rem}.x-date-picker-portal-extra-footer{display:flex;align-items:center;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-picker-portal-date{flex:1}.x-date-picker-portal-time{display:flex;flex-direction:column;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-picker-portal-time-label{display:flex;align-items:center;justify-content:center;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-picker-portal-time .x-time-picker-frame{border-width:0;box-shadow:none;margin:0}\n"] }]
|
|
188
|
+
}], propDecorators: { placement: [{
|
|
180
189
|
type: HostBinding,
|
|
181
190
|
args: ['@x-connect-base-animation']
|
|
182
191
|
}], done: [{
|
|
@@ -189,4 +198,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
|
|
|
189
198
|
type: ViewChild,
|
|
190
199
|
args: ['timePickerFrame']
|
|
191
200
|
}] } });
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3ZCLFdBQVcsRUFDWCxZQUFZLEVBQ1osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCx1QkFBdUIsRUFHeEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFzQixRQUFRLEVBQWEsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7OztBQWMxRCxNQUFNLE9BQU8sMEJBQTBCO0lBRXVCLElBQUksQ0FBQyxLQUF1QjtRQUN0RixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLEtBQUssQ0FBQyxPQUFPLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBQzRELEtBQUs7UUFDaEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBd0JELElBQUksWUFBWTtRQUNkLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FB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LGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgWERhdGVQaWNrZXJEaXNhYmxlZERhdGUsXHJcbiAgWERhdGVQaWNrZXJEaXNhYmxlZFRpbWUsXHJcbiAgWERhdGVQaWNrZXJQb3J0YWxQcmVmaXgsXHJcbiAgWERhdGVQaWNrZXJQcmVzZXQsXHJcbiAgWERhdGVQaWNrZXJUeXBlXHJcbn0gZnJvbSAnLi9kYXRlLXBpY2tlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYQ29ubmVjdEJhc2VBbmltYXRpb24sIFhQb3NpdGlvblRvcEJvdHRvbSwgWEFkZERheXMsIFhUZW1wbGF0ZSwgWElzVW5kZWZpbmVkIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IERhdGVQaXBlLCBMb3dlckNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWEkxOG5TZXJ2aWNlLCBYSTE4bkRhdGVQaWNrZXIgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBYVGltZVBpY2tlckZyYW1lQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvdGltZS1waWNrZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hEYXRlUGlja2VyUG9ydGFsUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBhbmltYXRpb25zOiBbWENvbm5lY3RCYXNlQW5pbWF0aW9uXSxcclxuICBwcm92aWRlcnM6IFtEYXRlUGlwZSwgTG93ZXJDYXNlUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhEYXRlUGlja2VyUG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIEBIb3N0QmluZGluZygnQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbicpIHB1YmxpYyBwbGFjZW1lbnQhOiBYUG9zaXRpb25Ub3BCb3R0b207XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5kb25lJywgWyckZXZlbnQnXSkgZG9uZShldmVudDogeyB0b1N0YXRlOiBhbnkgfSkge1xyXG4gICAgdGhpcy5hbmltYXRpbmcoZmFsc2UpO1xyXG4gICAgZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIHRoaXMuZGVzdHJveVBvcnRhbCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLnN0YXJ0JywgWyckZXZlbnQnXSkgc3RhcnQoKSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyh0cnVlKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3RpbWVQaWNrZXJGcmFtZScpIHRpbWVQaWNrZXJGcmFtZT86IFhUaW1lUGlja2VyRnJhbWVDb21wb25lbnQ7XHJcblxyXG4gIHR5cGU6IFhEYXRlUGlja2VyVHlwZSA9ICdkYXRlJztcclxuICBkaXNwbGF5ID0gbmV3IERhdGUoKTtcclxuICBtb2RlbCE6IERhdGU7XHJcbiAgdmFsdWU6IGFueTtcclxuICB2YWx1ZUNoYW5nZSE6IFN1YmplY3Q8YW55PjtcclxuICBwb3NpdGlvbkNoYW5nZSE6IFN1YmplY3Q8YW55PjtcclxuICBhbmltYXRpbmchOiBGdW5jdGlvbjtcclxuICBjbG9zZVBvcnRhbCE6IEZ1bmN0aW9uO1xyXG4gIGRlc3Ryb3lQb3J0YWwhOiBGdW5jdGlvbjtcclxuICBub2RlRW1pdCE6IChkYXRlOiBEYXRlLCBzdXJlPzogYm9vbGVhbikgPT4gdm9pZDtcclxuICBsb2NhbGU6IFhJMThuRGF0ZVBpY2tlciA9IHt9O1xyXG4gIHRpbWUhOiBudW1iZXIgfCBudWxsO1xyXG4gIHByZXNldDogWERhdGVQaWNrZXJQcmVzZXRbXSA9IFtdO1xyXG4gIGV4dHJhRm9vdGVyPzogWFRlbXBsYXRlO1xyXG4gIGlucHV0Q29tITogWElucHV0Q29tcG9uZW50O1xyXG4gIGRpc2FibGVkRGF0ZSE6IFhEYXRlUGlja2VyRGlzYWJsZWREYXRlO1xyXG4gIGRpc2FibGVkVGltZSE6IFhEYXRlUGlja2VyRGlzYWJsZWRUaW1lO1xyXG4gIHByaXZhdGUgX3R5cGUhOiBYRGF0ZVBpY2tlclR5cGU7XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgZ2V0IGlzRGF0ZVBpY2tlcigpIHtcclxuICAgIHJldHVybiBbJ2RhdGUnLCAnbW9udGgnLCAneWVhciddLmluY2x1ZGVzKHRoaXMudHlwZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgc3VyZURpc2FibGVkKCkge1xyXG4gICAgbGV0IHJlcyA9IFhJc1VuZGVmaW5lZCh0aGlzLnRpbWUpO1xyXG4gICAgaWYgKHRoaXMudGltZVBpY2tlckZyYW1lICYmICFYSXNVbmRlZmluZWQodGhpcy50aW1lKSkge1xyXG4gICAgICBjb25zdCBkdCA9IG5ldyBEYXRlKHRoaXMudGltZSEpO1xyXG4gICAgICBjb25zdCBob3VycyA9IGR0LmdldEhvdXJzKCk7XHJcbiAgICAgIGNvbnN0IG1pbnV0ZXMgPSBkdC5nZXRNaW51dGVzKCk7XHJcbiAgICAgIGNvbnN0IHNlY29uZHMgPSBkdC5nZXRTZWNvbmRzKCk7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgdGhpcy50aW1lUGlja2VyRnJhbWUuc2V0RGlzYWJsZWQoJ2hvdXJzJywgaG91cnMpIHx8XHJcbiAgICAgICAgdGhpcy50aW1lUGlja2VyRnJhbWUuc2V0RGlzYWJsZWQoJ21pbnV0ZXMnLCBtaW51dGVzKSB8fFxyXG4gICAgICAgIHRoaXMudGltZVBpY2tlckZyYW1lLnNldERpc2FibGVkKCdzZWNvbmRzJywgc2Vjb25kcylcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXM7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0ZVBpcGU6IERhdGVQaXBlLCBwdWJsaWMgbG93ZXJDYXNlUGlwZTogTG93ZXJDYXNlUGlwZSwgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyBpMThuOiBYSTE4blNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHg7XHJcbiAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnBsYWNlbWVudCA9IHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pMThuLmxvY2FsZUNoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+IHguZGF0ZVBpY2tlciBhcyBYSTE4bkRhdGVQaWNrZXIpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9jYWxlID0geDtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdCgpIHtcclxuICAgIGlmICghWElzRW1wdHkodGhpcy52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5zZXREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl90eXBlID0gdGhpcy50eXBlO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0KCkge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5tb2RlbCA9IGRhdGU7XHJcbiAgICB0aGlzLnRpbWUgPSB0aGlzLm1vZGVsLmdldFRpbWUoKTtcclxuICAgIHRoaXMuc2V0RGlzcGxheSh0aGlzLm1vZGVsKTtcclxuICB9XHJcblxyXG4gIHNldERpc3BsYXkoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIDEpO1xyXG4gIH1cclxuXHJcbiAgZGF0ZUNoYW5nZShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLnNldERpc3BsYXkoZGF0ZSk7XHJcbiAgICB0aGlzLm1vZGVsID0gZGF0ZTtcclxuICAgIGlmIChbJ2RhdGUtdGltZScsICdkYXRlLWhvdXInLCAnZGF0ZS1taW51dGUnXS5pbmNsdWRlcyh0aGlzLl90eXBlKSkge1xyXG4gICAgICBsZXQgdGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGlmIChbJ2RhdGUtaG91cicsICdkYXRlLW1pbnV0ZSddLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgICB0aW1lLnNldFNlY29uZHMoMCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGUtaG91cicpIHtcclxuICAgICAgICB0aW1lLnNldE1pbnV0ZXMoMCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnRpbWUpIHtcclxuICAgICAgICB0aGlzLnRpbWUgPSB0aW1lLmdldFRpbWUoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldE1vZGVsVGltZSh0aGlzLm1vZGVsLCBuZXcgRGF0ZSh0aGlzLnRpbWUhKSk7XHJcbiAgICAgIHRoaXMubm9kZUVtaXQodGhpcy5tb2RlbCwgZmFsc2UpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5ub2RlRW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1vbnRoQ2hhbmdlKGRhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBkYXRlO1xyXG4gICAgICB0aGlzLm5vZGVFbWl0KGRhdGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50eXBlID0gdGhpcy5fdHlwZTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHF1YXJ0ZXJDaGFuZ2UoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KGRhdGUpO1xyXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09ICdxdWFydGVyJykge1xyXG4gICAgICB0aGlzLm1vZGVsID0gZGF0ZTtcclxuICAgICAgdGhpcy5ub2RlRW1pdChkYXRlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHlwZSA9IHRoaXMuX3R5cGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB5ZWFyQ2hhbmdlKGRhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSAneWVhcicpIHtcclxuICAgICAgdGhpcy5tb2RlbCA9IGRhdGU7XHJcbiAgICAgIHRoaXMubm9kZUVtaXQoZGF0ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnR5cGUgPSAnbW9udGgnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb25Ub2RheSgpIHtcclxuICAgIHRoaXMuZGF0ZUNoYW5nZShuZXcgRGF0ZSgpKTtcclxuICB9XHJcblxyXG4gIG9uWWVzdGVyZGF5KCkge1xyXG4gICAgdGhpcy5kYXRlQ2hhbmdlKFhBZGREYXlzKG5ldyBEYXRlKCksIC0xKSk7XHJcbiAgfVxyXG5cclxuICBvblRvbW9ycm93KCkge1xyXG4gICAgdGhpcy5kYXRlQ2hhbmdlKFhBZGREYXlzKG5ldyBEYXRlKCksIDEpKTtcclxuICB9XHJcblxyXG4gIG9uUHJlc2V0RnVuYyhpdGVtOiBYRGF0ZVBpY2tlclByZXNldCkge1xyXG4gICAgdGhpcy5kYXRlQ2hhbmdlKGl0ZW0uZnVuYygpKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFRpbWUodGltZTogRGF0ZSkge1xyXG4gICAgaWYgKCF0aGlzLm1vZGVsKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBuZXcgRGF0ZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy50aW1lID0gdGltZS5nZXRUaW1lKCk7XHJcbiAgICB0aGlzLm5vZGVFbWl0KHRoaXMuc2V0TW9kZWxUaW1lKHRoaXMubW9kZWwsIHRpbWUpLCBmYWxzZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRNb2RlbFRpbWUoZGF0ZTogRGF0ZSwgdGltZTogRGF0ZSkge1xyXG4gICAgdGhpcy5tb2RlbCA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSwgdGltZS5nZXRIb3VycygpLCB0aW1lLmdldE1pbnV0ZXMoKSwgdGltZS5nZXRTZWNvbmRzKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbCB7eyB0eXBlIH19XCIgW25nU3dpdGNoXT1cInR5cGVcIiAoY2xpY2spPVwiaW5wdXRDb20uaW5wdXRGb2N1cygpXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCI+XHJcbiAgICA8eC1waWNrZXItZGF0ZVxyXG4gICAgICBbZGlzcGxheV09XCJkaXNwbGF5XCJcclxuICAgICAgW21vZGVsXT1cIm1vZGVsXCJcclxuICAgICAgWyh0eXBlKV09XCJ0eXBlXCJcclxuICAgICAgKG1vZGVsQ2hhbmdlKT1cImRhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlXCJcclxuICAgID48L3gtcGlja2VyLWRhdGU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3dlZWsnXCI+XHJcbiAgICA8eC1waWNrZXItZGF0ZVxyXG4gICAgICBbZGlzcGxheV09XCJkaXNwbGF5XCJcclxuICAgICAgW21vZGVsXT1cIm1vZGVsXCJcclxuICAgICAgWyh0eXBlKV09XCJ0eXBlXCJcclxuICAgICAgKG1vZGVsQ2hhbmdlKT1cImRhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlXCJcclxuICAgID48L3gtcGlja2VyLWRhdGU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21vbnRoJ1wiPlxyXG4gICAgPHgtcGlja2VyLW1vbnRoXHJcbiAgICAgIFtkaXNwbGF5XT1cImRpc3BsYXlcIlxyXG4gICAgICBbbW9kZWxdPVwibW9kZWxcIlxyXG4gICAgICBbKHR5cGUpXT1cInR5cGVcIlxyXG4gICAgICAobW9kZWxDaGFuZ2UpPVwibW9udGhDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlXCJcclxuICAgID48L3gtcGlja2VyLW1vbnRoPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidxdWFydGVyJ1wiPlxyXG4gICAgPHgtcGlja2VyLXF1YXJ0ZXJcclxuICAgICAgW2Rpc3BsYXldPVwiZGlzcGxheVwiXHJcbiAgICAgIFttb2RlbF09XCJtb2RlbFwiXHJcbiAgICAgIFsodHlwZSldPVwidHlwZVwiXHJcbiAgICAgIChtb2RlbENoYW5nZSk9XCJxdWFydGVyQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZVwiXHJcbiAgICA+PC94LXBpY2tlci1xdWFydGVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid5ZWFyJ1wiPlxyXG4gICAgPHgtcGlja2VyLXllYXJcclxuICAgICAgW2Rpc3BsYXldPVwiZGlzcGxheVwiXHJcbiAgICAgIFttb2RlbF09XCJtb2RlbFwiXHJcbiAgICAgIFsodHlwZSldPVwidHlwZVwiXHJcbiAgICAgIChtb2RlbENoYW5nZSk9XCJ5ZWFyQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZVwiXHJcbiAgICA+PC94LXBpY2tlci15ZWFyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlLXRpbWUnXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZVRpbWVIb3VyTWludXRlVHBsOyBjb250ZXh0OiB7IHRpbWVGb3JtYXQ6ICdISDptbTpzcycsIHRpbWVUeXBlOiAndGltZScgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlLWhvdXInXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZVRpbWVIb3VyTWludXRlVHBsOyBjb250ZXh0OiB7IHRpbWVGb3JtYXQ6ICdISCcsIHRpbWVUeXBlOiAnaG91cicgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlLW1pbnV0ZSdcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlVGltZUhvdXJNaW51dGVUcGw7IGNvbnRleHQ6IHsgdGltZUZvcm1hdDogJ0hIOm1tJywgdGltZVR5cGU6ICdtaW51dGUnIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEYXRlUGlja2VyXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZXh0cmFGb290ZXJcIiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLWV4dHJhLWZvb3RlclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZXh0cmFGb290ZXJcIj57eyBleHRyYUZvb3RlciB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJlc2V0VHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNkYXRlVGltZUhvdXJNaW51dGVUcGwgbGV0LXRpbWVGb3JtYXQ9XCJ0aW1lRm9ybWF0XCIgbGV0LXRpbWVUeXBlPVwidGltZVR5cGVcIj5cclxuICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLWRhdGVcIj5cclxuICAgICAgPHgtcGlja2VyLWRhdGVcclxuICAgICAgICBbZGlzcGxheV09XCJkaXNwbGF5XCJcclxuICAgICAgICBbKHR5cGUpXT1cInR5cGVcIlxyXG4gICAgICAgIFttb2RlbF09XCJtb2RlbFwiXHJcbiAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImRhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGVcIlxyXG4gICAgICA+PC94LXBpY2tlci1kYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtdGltZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtdGltZS1sYWJlbFwiPlxyXG4gICAgICAgIHt7IHRpbWUgfCBkYXRlIDogdGltZUZvcm1hdCB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHgtdGltZS1waWNrZXItZnJhbWVcclxuICAgICAgICAjdGltZVBpY2tlckZyYW1lXHJcbiAgICAgICAgW3R5cGVdPVwidGltZVR5cGVcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJ0aW1lXCJcclxuICAgICAgICAobm9kZUVtaXQpPVwic2VsZWN0VGltZSgkZXZlbnQpXCJcclxuICAgICAgICBbZGlzYWJsZWRUaW1lXT1cImRpc2FibGVkVGltZVwiXHJcbiAgICAgICAgW2RlZmF1bHROb3ddPVwiZmFsc2VcIlxyXG4gICAgICA+PC94LXRpbWUtcGlja2VyLWZyYW1lPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0RhdGVQaWNrZXJcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJleHRyYUZvb3RlclwiIGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtZXh0cmEtZm9vdGVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJleHRyYUZvb3RlclwiPnt7IGV4dHJhRm9vdGVyIH19PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtZm9vdGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtZm9vdGVyLWxlZnRcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0RhdGVQaWNrZXJcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJlc2V0VHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8eC1idXR0b24gdHlwZT1cInByaW1hcnlcIiAoY2xpY2spPVwiIXN1cmVEaXNhYmxlZCAmJiBub2RlRW1pdChtb2RlbClcIiBzaXplPVwic21hbGxcIiBbZGlzYWJsZWRdPVwic3VyZURpc2FibGVkXCI+e3sgbG9jYWxlLnN1cmUgfX08L3gtYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNwcmVzZXRUcGw+XHJcbiAgPGRpdiAqbmdJZj1cInByZXNldFwiIGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtcHJlc2V0XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHByZXNldFwiPlxyXG4gICAgICA8eC1saW5rICpuZ0lmPVwiaXRlbS5pZCA9PT0gJ3llc3RlcmRheSdcIiAoY2xpY2spPVwib25ZZXN0ZXJkYXkoKVwiPnt7IGxvY2FsZS55ZXN0ZXJkYXkgfX08L3gtbGluaz5cclxuICAgICAgPHgtbGluayAqbmdJZj1cIml0ZW0uaWQgPT09ICd0b2RheSdcIiAoY2xpY2spPVwib25Ub2RheSgpXCI+e3sgbG9jYWxlLnRvZGF5IH19PC94LWxpbms+XHJcbiAgICAgIDx4LWxpbmsgKm5nSWY9XCJpdGVtLmlkID09PSAndG9tb3Jyb3cnXCIgKGNsaWNrKT1cIm9uVG9tb3Jyb3coKVwiPnt7IGxvY2FsZS50b21vcnJvdyB9fTwveC1saW5rPlxyXG4gICAgICA8eC1saW5rICpuZ0lmPVwiaXRlbS5mdW5jXCIgKGNsaWNrKT1cIm9uUHJlc2V0RnVuYyhpdGVtKVwiPnt7IGl0ZW0ubGFiZWwgfX08L3gtbGluaz5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUlqQixXQUFXLEVBQ1gsWUFBWSxFQUNaLFNBQVMsRUFDVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLHVCQUF1QixFQUd4QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDTCxRQUFRLEVBQ1IscUJBQXFCLEVBRXJCLFFBQVEsRUFFUixZQUFZLEVBQ2IsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsWUFBWSxFQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBRWpFLE9BQU8sRUFBNkIsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQXdCdEQsTUFBTSxPQUFPLDBCQUEwQjtJQXRCdkM7UUFrQ0UsU0FBSSxHQUFvQixNQUFNLENBQUM7UUFDL0IsWUFBTyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFTckIsV0FBTSxHQUFvQixFQUFFLENBQUM7UUFFN0IsV0FBTSxHQUF3QixFQUFFLENBQUM7UUFNekIsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFzQmpDLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0tBZ0pyQztJQW5NNkQsSUFBSSxDQUFDLEtBQXVCO1FBQ3RGLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsS0FBSyxDQUFDLE9BQU8sS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFDNEQsS0FBSztRQUNoRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUF3QkQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsSUFBSSxHQUFHLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3BELE1BQU0sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFLLENBQUMsQ0FBQztZQUNoQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQyxPQUFPLENBQ0wsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztnQkFDaEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQztnQkFDcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUNyRCxDQUFDO1NBQ0g7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFLRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2hFLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDbkUsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7WUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWTthQUNuQixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBNkIsQ0FBQyxFQUMzQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUMzQjthQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQVk7UUFDMUIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxVQUFVO1FBQ1IsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVU7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBVTtRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEUsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDcEI7WUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO2dCQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3BCO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDNUI7WUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUssQ0FBQyxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ2xDO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsSUFBVTtRQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxPQUFPLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNyQjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVU7UUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckI7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUN4QjtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFVO1FBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLE1BQU0sRUFBRTtZQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JCO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztTQUNyQjtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBdUI7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVU7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7U0FDekI7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBVSxFQUFFLElBQVU7UUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksQ0FDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUNsQixJQUFJLENBQUMsUUFBUSxFQUFFLEVBQ2YsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUNkLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDZixJQUFJLENBQUMsVUFBVSxFQUFFLEVBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FDbEIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO2lJQXBNVSwwQkFBMEI7cUhBQTFCLDBCQUEwQixpUUFGMUIsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLDhJQzlEdEMsa2tKQTBJQSw4c0VENUZJLGdCQUFnQiwrSUFDaEIsUUFBUSw2Q0FDUixvQkFBb0IsMERBQ3BCLHFCQUFxQiwyREFDckIsdUJBQXVCLDZEQUN2QixvQkFBb0IseURBQ3BCLGlCQUFpQixzUkFDakIsZ0JBQWdCLHFEQUNoQixjQUFjLG1EQUNkLGdCQUFnQiwrRUFNTixDQUFDLHFCQUFxQixDQUFDOzsyRkFHeEIsMEJBQTBCO2tCQXRCdEMsU0FBUzsrQkFDRSxHQUFHLHVCQUF1QixFQUFFLGNBQzFCLElBQUksV0FDUDt3QkFDUCxnQkFBZ0I7d0JBQ2hCLFFBQVE7d0JBQ1Isb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsb0JBQW9CO3dCQUNwQixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxnQkFBZ0I7cUJBQ2pCLGlCQUdjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsQ0FBQyxxQkFBcUIsQ0FBQyxhQUN4QixDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUM7OEJBR2EsU0FBUztzQkFBekQsV0FBVzt1QkFBQywyQkFBMkI7Z0JBQ29CLElBQUk7c0JBQS9ELFlBQVk7dUJBQUMsZ0NBQWdDLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSUcsS0FBSztzQkFBakUsWUFBWTt1QkFBQyxpQ0FBaUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJN0IsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBPbkluaXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIFZpZXdDaGlsZCxcclxuICBpbmplY3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBYRGF0ZVBpY2tlckRpc2FibGVkRGF0ZSxcclxuICBYRGF0ZVBpY2tlckRpc2FibGVkVGltZSxcclxuICBYRGF0ZVBpY2tlclBvcnRhbFByZWZpeCxcclxuICBYRGF0ZVBpY2tlclByZXNldCxcclxuICBYRGF0ZVBpY2tlclR5cGVcclxufSBmcm9tICcuL2RhdGUtcGlja2VyLnByb3BlcnR5JztcclxuaW1wb3J0IHtcclxuICBYSXNFbXB0eSxcclxuICBYQ29ubmVjdEJhc2VBbmltYXRpb24sXHJcbiAgWFBvc2l0aW9uVG9wQm90dG9tLFxyXG4gIFhBZGREYXlzLFxyXG4gIFhUZW1wbGF0ZSxcclxuICBYSXNVbmRlZmluZWRcclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUsIExvd2VyQ2FzZVBpcGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBYSTE4blNlcnZpY2UsIFhJMThuRGF0ZVBpY2tlciB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5pbXBvcnQgeyBYSW5wdXRDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9pbnB1dCc7XHJcbmltcG9ydCB7IFhUaW1lUGlja2VyRnJhbWVDb21wb25lbnQsIFhUaW1lUGlja2VyTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvdGltZS1waWNrZXInO1xyXG5pbXBvcnQgeyBYUGlja2VyRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vcGlja2VyLWRhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWFBpY2tlck1vbnRoQ29tcG9uZW50IH0gZnJvbSAnLi9waWNrZXItbW9udGguY29tcG9uZW50JztcclxuaW1wb3J0IHsgWFBpY2tlclF1YXJ0ZXJDb21wb25lbnQgfSBmcm9tICcuL3BpY2tlci1xdWFydGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhQaWNrZXJZZWFyQ29tcG9uZW50IH0gZnJvbSAnLi9waWNrZXIteWVhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvYnV0dG9uJztcclxuaW1wb3J0IHsgWExpbmtDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9saW5rJztcclxuaW1wb3J0IHsgWE91dGxldERpcmVjdGl2ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL291dGxldCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WERhdGVQaWNrZXJQb3J0YWxQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXHJcbiAgICBEYXRlUGlwZSxcclxuICAgIFhQaWNrZXJEYXRlQ29tcG9uZW50LFxyXG4gICAgWFBpY2tlck1vbnRoQ29tcG9uZW50LFxyXG4gICAgWFBpY2tlclF1YXJ0ZXJDb21wb25lbnQsXHJcbiAgICBYUGlja2VyWWVhckNvbXBvbmVudCxcclxuICAgIFhUaW1lUGlja2VyTW9kdWxlLFxyXG4gICAgWEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFhMaW5rQ29tcG9uZW50LFxyXG4gICAgWE91dGxldERpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBhbmltYXRpb25zOiBbWENvbm5lY3RCYXNlQW5pbWF0aW9uXSxcclxuICBwcm92aWRlcnM6IFtEYXRlUGlwZSwgTG93ZXJDYXNlUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhEYXRlUGlja2VyUG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIEBIb3N0QmluZGluZygnQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbicpIHB1YmxpYyBwbGFjZW1lbnQhOiBYUG9zaXRpb25Ub3BCb3R0b207XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5kb25lJywgWyckZXZlbnQnXSkgZG9uZShldmVudDogeyB0b1N0YXRlOiBhbnkgfSkge1xyXG4gICAgdGhpcy5hbmltYXRpbmcoZmFsc2UpO1xyXG4gICAgZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIHRoaXMuZGVzdHJveVBvcnRhbCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLnN0YXJ0JywgWyckZXZlbnQnXSkgc3RhcnQoKSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyh0cnVlKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3RpbWVQaWNrZXJGcmFtZScpIHRpbWVQaWNrZXJGcmFtZT86IFhUaW1lUGlja2VyRnJhbWVDb21wb25lbnQ7XHJcblxyXG4gIHR5cGU6IFhEYXRlUGlja2VyVHlwZSA9ICdkYXRlJztcclxuICBkaXNwbGF5ID0gbmV3IERhdGUoKTtcclxuICBtb2RlbCE6IERhdGU7XHJcbiAgdmFsdWU6IGFueTtcclxuICB2YWx1ZUNoYW5nZSE6IFN1YmplY3Q8YW55PjtcclxuICBwb3NpdGlvbkNoYW5nZSE6IFN1YmplY3Q8YW55PjtcclxuICBhbmltYXRpbmchOiBGdW5jdGlvbjtcclxuICBjbG9zZVBvcnRhbCE6IEZ1bmN0aW9uO1xyXG4gIGRlc3Ryb3lQb3J0YWwhOiBGdW5jdGlvbjtcclxuICBub2RlRW1pdCE6IChkYXRlOiBEYXRlLCBzdXJlPzogYm9vbGVhbikgPT4gdm9pZDtcclxuICBsb2NhbGU6IFhJMThuRGF0ZVBpY2tlciA9IHt9O1xyXG4gIHRpbWUhOiBudW1iZXIgfCBudWxsO1xyXG4gIHByZXNldDogWERhdGVQaWNrZXJQcmVzZXRbXSA9IFtdO1xyXG4gIGV4dHJhRm9vdGVyPzogWFRlbXBsYXRlO1xyXG4gIGlucHV0Q29tITogWElucHV0Q29tcG9uZW50O1xyXG4gIGRpc2FibGVkRGF0ZSE6IFhEYXRlUGlja2VyRGlzYWJsZWREYXRlO1xyXG4gIGRpc2FibGVkVGltZSE6IFhEYXRlUGlja2VyRGlzYWJsZWRUaW1lO1xyXG4gIHByaXZhdGUgX3R5cGUhOiBYRGF0ZVBpY2tlclR5cGU7XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgZ2V0IGlzRGF0ZVBpY2tlcigpIHtcclxuICAgIHJldHVybiBbJ2RhdGUnLCAnbW9udGgnLCAneWVhciddLmluY2x1ZGVzKHRoaXMudHlwZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgc3VyZURpc2FibGVkKCkge1xyXG4gICAgbGV0IHJlcyA9IFhJc1VuZGVmaW5lZCh0aGlzLnRpbWUpO1xyXG4gICAgaWYgKHRoaXMudGltZVBpY2tlckZyYW1lICYmICFYSXNVbmRlZmluZWQodGhpcy50aW1lKSkge1xyXG4gICAgICBjb25zdCBkdCA9IG5ldyBEYXRlKHRoaXMudGltZSEpO1xyXG4gICAgICBjb25zdCBob3VycyA9IGR0LmdldEhvdXJzKCk7XHJcbiAgICAgIGNvbnN0IG1pbnV0ZXMgPSBkdC5nZXRNaW51dGVzKCk7XHJcbiAgICAgIGNvbnN0IHNlY29uZHMgPSBkdC5nZXRTZWNvbmRzKCk7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgdGhpcy50aW1lUGlja2VyRnJhbWUuc2V0RGlzYWJsZWQoJ2hvdXJzJywgaG91cnMpIHx8XHJcbiAgICAgICAgdGhpcy50aW1lUGlja2VyRnJhbWUuc2V0RGlzYWJsZWQoJ21pbnV0ZXMnLCBtaW51dGVzKSB8fFxyXG4gICAgICAgIHRoaXMudGltZVBpY2tlckZyYW1lLnNldERpc2FibGVkKCdzZWNvbmRzJywgc2Vjb25kcylcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KFhJMThuU2VydmljZSk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHg7XHJcbiAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnBsYWNlbWVudCA9IHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pMThuLmxvY2FsZUNoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+IHguZGF0ZVBpY2tlciBhcyBYSTE4bkRhdGVQaWNrZXIpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9jYWxlID0geDtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdCgpIHtcclxuICAgIGlmICghWElzRW1wdHkodGhpcy52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5zZXREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl90eXBlID0gdGhpcy50eXBlO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0KCkge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5tb2RlbCA9IGRhdGU7XHJcbiAgICB0aGlzLnRpbWUgPSB0aGlzLm1vZGVsLmdldFRpbWUoKTtcclxuICAgIHRoaXMuc2V0RGlzcGxheSh0aGlzLm1vZGVsKTtcclxuICB9XHJcblxyXG4gIHNldERpc3BsYXkoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIDEpO1xyXG4gIH1cclxuXHJcbiAgZGF0ZUNoYW5nZShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLnNldERpc3BsYXkoZGF0ZSk7XHJcbiAgICB0aGlzLm1vZGVsID0gZGF0ZTtcclxuICAgIGlmIChbJ2RhdGUtdGltZScsICdkYXRlLWhvdXInLCAnZGF0ZS1taW51dGUnXS5pbmNsdWRlcyh0aGlzLl90eXBlKSkge1xyXG4gICAgICBsZXQgdGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGlmIChbJ2RhdGUtaG91cicsICdkYXRlLW1pbnV0ZSddLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgICB0aW1lLnNldFNlY29uZHMoMCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGUtaG91cicpIHtcclxuICAgICAgICB0aW1lLnNldE1pbnV0ZXMoMCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnRpbWUpIHtcclxuICAgICAgICB0aGlzLnRpbWUgPSB0aW1lLmdldFRpbWUoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldE1vZGVsVGltZSh0aGlzLm1vZGVsLCBuZXcgRGF0ZSh0aGlzLnRpbWUhKSk7XHJcbiAgICAgIHRoaXMubm9kZUVtaXQodGhpcy5tb2RlbCwgZmFsc2UpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5ub2RlRW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1vbnRoQ2hhbmdlKGRhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBkYXRlO1xyXG4gICAgICB0aGlzLm5vZGVFbWl0KGRhdGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50eXBlID0gdGhpcy5fdHlwZTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHF1YXJ0ZXJDaGFuZ2UoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KGRhdGUpO1xyXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09ICdxdWFydGVyJykge1xyXG4gICAgICB0aGlzLm1vZGVsID0gZGF0ZTtcclxuICAgICAgdGhpcy5ub2RlRW1pdChkYXRlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHlwZSA9IHRoaXMuX3R5cGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB5ZWFyQ2hhbmdlKGRhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSAneWVhcicpIHtcclxuICAgICAgdGhpcy5tb2RlbCA9IGRhdGU7XHJcbiAgICAgIHRoaXMubm9kZUVtaXQoZGF0ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnR5cGUgPSAnbW9udGgnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb25Ub2RheSgpIHtcclxuICAgIHRoaXMuZGF0ZUNoYW5nZShuZXcgRGF0ZSgpKTtcclxuICB9XHJcblxyXG4gIG9uWWVzdGVyZGF5KCkge1xyXG4gICAgdGhpcy5kYXRlQ2hhbmdlKFhBZGREYXlzKG5ldyBEYXRlKCksIC0xKSk7XHJcbiAgfVxyXG5cclxuICBvblRvbW9ycm93KCkge1xyXG4gICAgdGhpcy5kYXRlQ2hhbmdlKFhBZGREYXlzKG5ldyBEYXRlKCksIDEpKTtcclxuICB9XHJcblxyXG4gIG9uUHJlc2V0RnVuYyhpdGVtOiBYRGF0ZVBpY2tlclByZXNldCkge1xyXG4gICAgdGhpcy5kYXRlQ2hhbmdlKGl0ZW0uZnVuYygpKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFRpbWUodGltZTogRGF0ZSkge1xyXG4gICAgaWYgKCF0aGlzLm1vZGVsKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBuZXcgRGF0ZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy50aW1lID0gdGltZS5nZXRUaW1lKCk7XHJcbiAgICB0aGlzLm5vZGVFbWl0KHRoaXMuc2V0TW9kZWxUaW1lKHRoaXMubW9kZWwsIHRpbWUpLCBmYWxzZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRNb2RlbFRpbWUoZGF0ZTogRGF0ZSwgdGltZTogRGF0ZSkge1xyXG4gICAgdGhpcy5tb2RlbCA9IG5ldyBEYXRlKFxyXG4gICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgZGF0ZS5nZXREYXRlKCksXHJcbiAgICAgIHRpbWUuZ2V0SG91cnMoKSxcclxuICAgICAgdGltZS5nZXRNaW51dGVzKCksXHJcbiAgICAgIHRpbWUuZ2V0U2Vjb25kcygpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbCB7eyB0eXBlIH19XCIgKGNsaWNrKT1cImlucHV0Q29tLmlucHV0Rm9jdXMoKVwiPlxyXG4gIEBzd2l0Y2ggKHR5cGUpIHtcclxuICAgIEBjYXNlICgnZGF0ZScpIHtcclxuICAgICAgPHgtcGlja2VyLWRhdGVcclxuICAgICAgICBbZGlzcGxheV09XCJkaXNwbGF5XCJcclxuICAgICAgICBbbW9kZWxdPVwibW9kZWxcIlxyXG4gICAgICAgIFsodHlwZSldPVwidHlwZVwiXHJcbiAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImRhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGVcIlxyXG4gICAgICA+PC94LXBpY2tlci1kYXRlPlxyXG4gICAgfVxyXG4gICAgQGNhc2UgKCd3ZWVrJykge1xyXG4gICAgICA8eC1waWNrZXItZGF0ZVxyXG4gICAgICAgIFtkaXNwbGF5XT1cImRpc3BsYXlcIlxyXG4gICAgICAgIFttb2RlbF09XCJtb2RlbFwiXHJcbiAgICAgICAgWyh0eXBlKV09XCJ0eXBlXCJcclxuICAgICAgICAobW9kZWxDaGFuZ2UpPVwiZGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZVwiXHJcbiAgICAgID48L3gtcGlja2VyLWRhdGU+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ21vbnRoJykge1xyXG4gICAgICA8eC1waWNrZXItbW9udGhcclxuICAgICAgICBbZGlzcGxheV09XCJkaXNwbGF5XCJcclxuICAgICAgICBbbW9kZWxdPVwibW9kZWxcIlxyXG4gICAgICAgIFsodHlwZSldPVwidHlwZVwiXHJcbiAgICAgICAgKG1vZGVsQ2hhbmdlKT1cIm1vbnRoQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlXCJcclxuICAgICAgPjwveC1waWNrZXItbW9udGg+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ3F1YXJ0ZXInKSB7XHJcbiAgICAgIDx4LXBpY2tlci1xdWFydGVyXHJcbiAgICAgICAgW2Rpc3BsYXldPVwiZGlzcGxheVwiXHJcbiAgICAgICAgW21vZGVsXT1cIm1vZGVsXCJcclxuICAgICAgICBbKHR5cGUpXT1cInR5cGVcIlxyXG4gICAgICAgIChtb2RlbENoYW5nZSk9XCJxdWFydGVyQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlXCJcclxuICAgICAgPjwveC1waWNrZXItcXVhcnRlcj5cclxuICAgIH1cclxuICAgIEBjYXNlICgneWVhcicpIHtcclxuICAgICAgPHgtcGlja2VyLXllYXJcclxuICAgICAgICBbZGlzcGxheV09XCJkaXNwbGF5XCJcclxuICAgICAgICBbbW9kZWxdPVwibW9kZWxcIlxyXG4gICAgICAgIFsodHlwZSldPVwidHlwZVwiXHJcbiAgICAgICAgKG1vZGVsQ2hhbmdlKT1cInllYXJDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGVcIlxyXG4gICAgICA+PC94LXBpY2tlci15ZWFyPlxyXG4gICAgfVxyXG4gICAgQGNhc2UgKCdkYXRlLXRpbWUnKSB7XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGVUaW1lSG91ck1pbnV0ZVRwbDsgY29udGV4dDogeyB0aW1lRm9ybWF0OiAnSEg6bW06c3MnLCB0aW1lVHlwZTogJ3RpbWUnIH1cIlxyXG4gICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ2RhdGUtaG91cicpIHtcclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZVRpbWVIb3VyTWludXRlVHBsOyBjb250ZXh0OiB7IHRpbWVGb3JtYXQ6ICdISCcsIHRpbWVUeXBlOiAnaG91cicgfVwiXHJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIH1cclxuICAgIEBjYXNlICgnZGF0ZS1taW51dGUnKSB7XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGVUaW1lSG91ck1pbnV0ZVRwbDsgY29udGV4dDogeyB0aW1lRm9ybWF0OiAnSEg6bW0nLCB0aW1lVHlwZTogJ21pbnV0ZScgfVwiXHJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIH1cclxuICAgIEBjYXNlICgnbW9udGgnKSB7fVxyXG4gIH1cclxuICBAaWYgKGlzRGF0ZVBpY2tlcikge1xyXG4gICAgQGlmIChleHRyYUZvb3Rlcikge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtZXh0cmEtZm9vdGVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImV4dHJhRm9vdGVyXCI+e3sgZXh0cmFGb290ZXIgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJlc2V0VHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgfVxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGF0ZVRpbWVIb3VyTWludXRlVHBsIGxldC10aW1lRm9ybWF0PVwidGltZUZvcm1hdFwiIGxldC10aW1lVHlwZT1cInRpbWVUeXBlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLWNvbnRlbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC1kYXRlXCI+XHJcbiAgICAgIDx4LXBpY2tlci1kYXRlXHJcbiAgICAgICAgW2Rpc3BsYXldPVwiZGlzcGxheVwiXHJcbiAgICAgICAgWyh0eXBlKV09XCJ0eXBlXCJcclxuICAgICAgICBbbW9kZWxdPVwibW9kZWxcIlxyXG4gICAgICAgIChtb2RlbENoYW5nZSk9XCJkYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlXCJcclxuICAgICAgPjwveC1waWNrZXItZGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLXRpbWVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLXRpbWUtbGFiZWxcIj5cclxuICAgICAgICB7eyB0aW1lIHwgZGF0ZTogdGltZUZvcm1hdCB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHgtdGltZS1waWNrZXItZnJhbWVcclxuICAgICAgICAjdGltZVBpY2tlckZyYW1lXHJcbiAgICAgICAgW3R5cGVdPVwidGltZVR5cGVcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJ0aW1lXCJcclxuICAgICAgICAobm9kZUVtaXQpPVwic2VsZWN0VGltZSgkZXZlbnQpXCJcclxuICAgICAgICBbZGlzYWJsZWRUaW1lXT1cImRpc2FibGVkVGltZVwiXHJcbiAgICAgICAgW2RlZmF1bHROb3ddPVwiZmFsc2VcIlxyXG4gICAgICA+PC94LXRpbWUtcGlja2VyLWZyYW1lPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgQGlmICghaXNEYXRlUGlja2VyICYmIGV4dHJhRm9vdGVyKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtZXh0cmEtZm9vdGVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJleHRyYUZvb3RlclwiPnt7IGV4dHJhRm9vdGVyIH19PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbiAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLWZvb3RlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLWZvb3Rlci1sZWZ0XCI+XHJcbiAgICAgIEBpZiAoIWlzRGF0ZVBpY2tlciAmJiBwcmVzZXQpIHtcclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJlc2V0VHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgPHgtYnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIiFzdXJlRGlzYWJsZWQgJiYgbm9kZUVtaXQobW9kZWwpXCIgc2l6ZT1cInNtYWxsXCIgW2Rpc2FibGVkXT1cInN1cmVEaXNhYmxlZFwiPnt7XHJcbiAgICAgIGxvY2FsZS5zdXJlXHJcbiAgICB9fTwveC1idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3ByZXNldFRwbD5cclxuICBAaWYgKHByZXNldCkge1xyXG4gICAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLXByZXNldFwiPlxyXG4gICAgICBAZm9yIChpdGVtIG9mIHByZXNldDsgdHJhY2sgaXRlbS5pZCkge1xyXG4gICAgICAgIEBzd2l0Y2ggKGl0ZW0uaWQpIHtcclxuICAgICAgICAgIEBjYXNlICgneWVzdGVyZGF5Jykge1xyXG4gICAgICAgICAgICA8eC1saW5rIChjbGljayk9XCJvblllc3RlcmRheSgpXCI+e3sgbG9jYWxlLnllc3RlcmRheSB9fTwveC1saW5rPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGNhc2UgKCd0b2RheScpIHtcclxuICAgICAgICAgICAgPHgtbGluayAoY2xpY2spPVwib25Ub2RheSgpXCI+e3sgbG9jYWxlLnRvZGF5IH19PC94LWxpbms+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAY2FzZSAoJ3RvbW9ycm93Jykge1xyXG4gICAgICAgICAgICA8eC1saW5rIChjbGljayk9XCJvblRvbW9ycm93KClcIj57eyBsb2NhbGUudG9tb3Jyb3cgfX08L3gtbGluaz5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmICghIWl0ZW0uZnVuYykge1xyXG4gICAgICAgICAgPHgtbGluayAoY2xpY2spPVwib25QcmVzZXRGdW5jKGl0ZW0pXCI+e3sgaXRlbS5sYWJlbCB9fTwveC1saW5rPlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|