ngx-tethys 18.1.0-next.0 → 18.1.0
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/CHANGELOG.md +13 -0
- package/action/action.component.d.ts +1 -2
- package/affix/affix.component.d.ts +2 -4
- package/anchor/anchor-link.component.d.ts +2 -4
- package/anchor/anchor.component.d.ts +1 -4
- package/arrow-switcher/arrow-switcher.component.d.ts +1 -2
- package/autocomplete/autocomplete.component.d.ts +1 -2
- package/autocomplete/autocomplete.trigger.directive.d.ts +3 -5
- package/autocomplete/overlay/autocomplete-container.component.d.ts +4 -4
- package/autocomplete/overlay/autocomplete.service.d.ts +3 -5
- package/avatar/avatar.component.d.ts +1 -3
- package/avatar/avatar.pipe.d.ts +0 -2
- package/back-top/back-top.component.d.ts +2 -4
- package/badge/badge.component.d.ts +5 -14
- package/breadcrumb/breadcrumb-item.component.d.ts +1 -2
- package/breadcrumb/breadcrumb.component.d.ts +1 -2
- package/button/button.component.d.ts +1 -2
- package/calendar/calendar-header.component.d.ts +1 -2
- package/calendar/calendar.component.d.ts +1 -2
- package/carousel/carousel-item.directive.d.ts +1 -2
- package/carousel/carousel.component.d.ts +1 -4
- package/carousel/carousel.service.d.ts +1 -2
- package/cascader/cascader.component.d.ts +4 -4
- package/checkbox/checkbox.component.d.ts +0 -2
- package/collapse/collapse-item.component.d.ts +2 -4
- package/color-picker/color-picker-panel.component.d.ts +2 -3
- package/color-picker/color-picker.component.d.ts +2 -4
- package/color-picker/coordinates.directive.d.ts +1 -2
- package/color-picker/parts/alpha/alpha.component.d.ts +1 -2
- package/color-picker/parts/hue/hue.component.d.ts +1 -2
- package/color-picker/parts/saturation/saturation.component.d.ts +1 -2
- package/copy/copy.directive.d.ts +0 -2
- package/core/click-positioner.d.ts +0 -2
- package/core/scroll.d.ts +1 -2
- package/core/update-host-class.service.d.ts +1 -2
- package/date-picker/abstract-picker.component.d.ts +1 -1
- package/date-picker/abstract-picker.directive.d.ts +2 -3
- package/date-picker/base-picker.component.d.ts +2 -3
- package/date-picker/date-picker.component.d.ts +2 -2
- package/date-picker/date-picker.directive.d.ts +1 -3
- package/date-picker/date-picker.service.d.ts +2 -2
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -2
- package/date-picker/lib/calendar/calendar-header.component.d.ts +0 -1
- package/date-picker/lib/date/date-header.component.d.ts +0 -3
- package/date-picker/lib/date/date-table.component.d.ts +1 -3
- package/date-picker/lib/date-carousel/date-carousel.component.d.ts +1 -2
- package/date-picker/lib/decade/decade-header.component.d.ts +1 -1
- package/date-picker/lib/month/month-header.component.d.ts +0 -3
- package/date-picker/lib/month/month-table.component.d.ts +1 -2
- package/date-picker/lib/popups/date-popup.component.d.ts +1 -3
- package/date-picker/lib/popups/inner-popup.component.d.ts +1 -4
- package/date-picker/lib/quarter/quarter-table.component.d.ts +1 -2
- package/date-picker/lib/year/year-header.component.d.ts +0 -1
- package/date-picker/month-picker.component.d.ts +2 -2
- package/date-picker/picker.component.d.ts +1 -3
- package/date-picker/picker.pipes.d.ts +0 -3
- package/date-picker/quarter-picker.component.d.ts +2 -2
- package/date-picker/range-picker.component.d.ts +2 -2
- package/date-picker/range-picker.directive.d.ts +2 -3
- package/date-picker/week-picker.component.d.ts +2 -2
- package/date-picker/year-picker.component.d.ts +2 -2
- package/date-range/date-range.component.d.ts +1 -3
- package/date-range/optional-dates/optional-dates.component.d.ts +0 -2
- package/dialog/body/dialog-body.component.d.ts +0 -2
- package/dialog/confirm/confirm.component.d.ts +2 -3
- package/dialog/dialog-container.component.d.ts +4 -5
- package/dialog/dialog.service.d.ts +4 -4
- package/dialog/footer/dialog-footer.component.d.ts +2 -2
- package/dialog/header/dialog-header.component.d.ts +2 -6
- package/dot/dot.component.d.ts +1 -2
- package/drag-drop/drag-content.directive.d.ts +2 -3
- package/drag-drop/drag-handle.directive.d.ts +2 -3
- package/drag-drop/drag.directive.d.ts +4 -5
- package/drag-drop/drop-container.directive.d.ts +6 -3
- package/dropdown/dropdown-active.directive.d.ts +3 -4
- package/dropdown/dropdown-menu-item.directive.d.ts +1 -2
- package/dropdown/dropdown-submenu.component.d.ts +1 -3
- package/dropdown/dropdown.directive.d.ts +3 -5
- package/empty/empty.component.d.ts +6 -6
- package/esm2022/action/action.component.mjs +18 -18
- package/esm2022/affix/affix.component.mjs +11 -14
- package/esm2022/anchor/anchor-link.component.mjs +9 -10
- package/esm2022/anchor/anchor.component.mjs +11 -16
- package/esm2022/arrow-switcher/arrow-switcher.component.mjs +22 -22
- package/esm2022/autocomplete/autocomplete.component.mjs +7 -7
- package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +30 -37
- package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +11 -15
- package/esm2022/autocomplete/overlay/autocomplete.service.mjs +14 -21
- package/esm2022/avatar/avatar.component.mjs +24 -25
- package/esm2022/avatar/avatar.pipe.mjs +6 -7
- package/esm2022/back-top/back-top.component.mjs +11 -15
- package/esm2022/badge/badge.component.mjs +6 -6
- package/esm2022/breadcrumb/breadcrumb-item.component.mjs +7 -7
- package/esm2022/breadcrumb/breadcrumb.component.mjs +12 -12
- package/esm2022/button/button.component.mjs +12 -12
- package/esm2022/calendar/calendar-header.component.mjs +12 -12
- package/esm2022/calendar/calendar.component.mjs +12 -12
- package/esm2022/carousel/carousel-item.directive.mjs +7 -6
- package/esm2022/carousel/carousel.component.mjs +10 -12
- package/esm2022/carousel/carousel.service.mjs +7 -9
- package/esm2022/cascader/cascader.component.mjs +11 -16
- package/esm2022/checkbox/checkbox.component.mjs +7 -9
- package/esm2022/collapse/collapse-item.component.mjs +18 -21
- package/esm2022/color-picker/color-picker-panel.component.mjs +11 -12
- package/esm2022/color-picker/color-picker.component.mjs +10 -11
- package/esm2022/color-picker/coordinates.directive.mjs +10 -10
- package/esm2022/color-picker/parts/alpha/alpha.component.mjs +6 -6
- package/esm2022/color-picker/parts/hue/hue.component.mjs +6 -6
- package/esm2022/color-picker/parts/saturation/saturation.component.mjs +9 -9
- package/esm2022/copy/copy.directive.mjs +8 -12
- package/esm2022/core/click-positioner.mjs +6 -7
- package/esm2022/core/scroll.mjs +7 -9
- package/esm2022/core/store/store.mjs +1 -1
- package/esm2022/core/update-host-class.service.mjs +6 -6
- package/esm2022/date-picker/abstract-picker.component.mjs +5 -5
- package/esm2022/date-picker/abstract-picker.directive.mjs +42 -44
- package/esm2022/date-picker/base-picker.component.mjs +26 -26
- package/esm2022/date-picker/date-picker.component.mjs +6 -6
- package/esm2022/date-picker/date-picker.directive.mjs +6 -8
- package/esm2022/date-picker/date-picker.service.mjs +6 -10
- package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -5
- package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +6 -7
- package/esm2022/date-picker/lib/date/date-header.component.mjs +3 -9
- package/esm2022/date-picker/lib/date/date-table.component.mjs +7 -9
- package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +12 -12
- package/esm2022/date-picker/lib/decade/decade-header.component.mjs +5 -8
- package/esm2022/date-picker/lib/month/month-header.component.mjs +3 -9
- package/esm2022/date-picker/lib/month/month-table.component.mjs +6 -7
- package/esm2022/date-picker/lib/popups/date-popup.component.mjs +12 -13
- package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +12 -13
- package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +6 -7
- package/esm2022/date-picker/lib/year/year-header.component.mjs +3 -9
- package/esm2022/date-picker/month-picker.component.mjs +6 -7
- package/esm2022/date-picker/picker.component.mjs +21 -22
- package/esm2022/date-picker/picker.pipes.mjs +10 -11
- package/esm2022/date-picker/quarter-picker.component.mjs +6 -7
- package/esm2022/date-picker/range-picker.component.mjs +6 -7
- package/esm2022/date-picker/range-picker.directive.mjs +6 -8
- package/esm2022/date-picker/week-picker.component.mjs +6 -7
- package/esm2022/date-picker/year-picker.component.mjs +6 -7
- package/esm2022/date-range/date-range.component.mjs +14 -15
- package/esm2022/date-range/optional-dates/optional-dates.component.mjs +8 -9
- package/esm2022/dialog/body/dialog-body.component.mjs +11 -12
- package/esm2022/dialog/confirm/confirm.component.mjs +10 -14
- package/esm2022/dialog/dialog-container.component.mjs +13 -18
- package/esm2022/dialog/dialog.service.mjs +10 -17
- package/esm2022/dialog/footer/dialog-footer.component.mjs +7 -11
- package/esm2022/dialog/header/dialog-header.component.mjs +14 -19
- package/esm2022/dot/dot.component.mjs +7 -7
- package/esm2022/drag-drop/drag-content.directive.mjs +7 -9
- package/esm2022/drag-drop/drag-handle.directive.mjs +7 -9
- package/esm2022/drag-drop/drag.directive.mjs +13 -16
- package/esm2022/drag-drop/drop-container.directive.mjs +13 -13
- package/esm2022/dropdown/dropdown-active.directive.mjs +9 -12
- package/esm2022/dropdown/dropdown-menu-item.directive.mjs +12 -12
- package/esm2022/dropdown/dropdown-submenu.component.mjs +9 -10
- package/esm2022/dropdown/dropdown.directive.mjs +12 -10
- package/esm2022/empty/empty.component.mjs +14 -17
- package/esm2022/flexible-text/flexible-text.component.mjs +16 -17
- package/esm2022/form/form-group-error/form-group-error.component.mjs +9 -12
- package/esm2022/form/form-group-label.directive.mjs +9 -10
- package/esm2022/form/form-group.component.mjs +15 -19
- package/esm2022/form/form-submit.directive.mjs +6 -7
- package/esm2022/form/form-validator-loader.mjs +1 -1
- package/esm2022/form/form-validator.service.mjs +12 -13
- package/esm2022/form/form.directive.mjs +11 -16
- package/esm2022/form/from-group-footer/form-group-footer.component.mjs +10 -16
- package/esm2022/form/validator/unique-validator.directive.mjs +7 -10
- package/esm2022/fullscreen/fullscreen.component.mjs +10 -11
- package/esm2022/fullscreen/fullscreen.service.mjs +7 -10
- package/esm2022/grid/thy-col.directive.mjs +9 -14
- package/esm2022/grid/thy-grid-item.component.mjs +8 -14
- package/esm2022/grid/thy-grid.component.mjs +7 -8
- package/esm2022/guider/guider.directive.mjs +8 -9
- package/esm2022/guider/guider.service.mjs +12 -19
- package/esm2022/icon/icon-registry.mjs +11 -16
- package/esm2022/icon/icon.component.mjs +8 -9
- package/esm2022/image/image-group.component.mjs +7 -7
- package/esm2022/image/image.directive.mjs +11 -12
- package/esm2022/image/image.service.mjs +8 -14
- package/esm2022/image/preview/image-preview.component.mjs +34 -38
- package/esm2022/input/input-count.component.mjs +7 -10
- package/esm2022/input/input-group.component.mjs +12 -13
- package/esm2022/input/input-search.component.mjs +7 -7
- package/esm2022/input/input.component.mjs +14 -14
- package/esm2022/input/input.directive.mjs +12 -17
- package/esm2022/input-number/input-number.component.mjs +6 -6
- package/esm2022/layout/sidebar.component.mjs +45 -51
- package/esm2022/list/selection/selection-list.mjs +25 -25
- package/esm2022/loading/loading.component.mjs +8 -8
- package/esm2022/mention/mention.directive.mjs +9 -14
- package/esm2022/mention/suggestions/suggestions.component.mjs +8 -9
- package/esm2022/menu/group/menu-group.component.mjs +34 -35
- package/esm2022/menu/item/action/menu-item-action.component.mjs +15 -16
- package/esm2022/menu/item/menu-item.component.mjs +6 -6
- package/esm2022/message/abstract/abstract-message-container.component.mjs +5 -5
- package/esm2022/message/abstract/abstract-message.component.mjs +6 -6
- package/esm2022/message/message-container.component.mjs +9 -11
- package/esm2022/message/message-queue.service.mjs +6 -8
- package/esm2022/message/message.component.mjs +7 -7
- package/esm2022/message/message.service.mjs +10 -11
- package/esm2022/nav/icon-nav/icon-nav.component.mjs +6 -6
- package/esm2022/nav/nav-ink-bar.directive.mjs +9 -14
- package/esm2022/nav/nav-item.directive.mjs +8 -11
- package/esm2022/nav/nav.component.mjs +32 -33
- package/esm2022/nav/nav.pipe.mjs +6 -7
- package/esm2022/notify/notify-container.component.mjs +8 -11
- package/esm2022/notify/notify-queue.service.mjs +6 -8
- package/esm2022/notify/notify.component.mjs +7 -7
- package/esm2022/notify/notify.service.mjs +11 -12
- package/esm2022/pagination/pagination.component.mjs +38 -43
- package/esm2022/pagination/pagination.pipe.mjs +6 -7
- package/esm2022/popover/header/popover-header.component.mjs +12 -14
- package/esm2022/popover/popover-container.component.mjs +11 -13
- package/esm2022/popover/popover.directive.mjs +13 -12
- package/esm2022/popover/popover.service.mjs +14 -26
- package/esm2022/progress/progress-strip.component.mjs +10 -13
- package/esm2022/property/property-item.component.mjs +10 -13
- package/esm2022/property-operation/property-operation.component.mjs +24 -25
- package/esm2022/radio/button/radio-button.component.mjs +9 -15
- package/esm2022/radio/group/radio-group.component.mjs +17 -17
- package/esm2022/radio/radio.component.mjs +8 -14
- package/esm2022/rate/rate.component.mjs +6 -6
- package/esm2022/resizable/resizable.directive.mjs +10 -12
- package/esm2022/resizable/resizable.service.mjs +7 -9
- package/esm2022/resizable/resize-handle.component.mjs +7 -8
- package/esm2022/segment/segment-item.component.mjs +12 -15
- package/esm2022/segment/segment.component.mjs +26 -26
- package/esm2022/select/custom-select/custom-select.component.mjs +14 -28
- package/esm2022/select/native-select/native-select.component.mjs +6 -6
- package/esm2022/shared/base-form-check.component.mjs +7 -8
- package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +7 -7
- package/esm2022/shared/directives/thy-autofocus.directive.mjs +10 -10
- package/esm2022/shared/directives/thy-contextmenu.directive.mjs +8 -8
- package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +8 -8
- package/esm2022/shared/directives/thy-enter.directive.mjs +8 -8
- package/esm2022/shared/directives/thy-scroll.directive.mjs +21 -21
- package/esm2022/shared/directives/thy-show.mjs +11 -11
- package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +7 -5
- package/esm2022/shared/directives/view-outlet.directive.mjs +7 -7
- package/esm2022/shared/ng-transclude.directive.mjs +6 -5
- package/esm2022/shared/option/group/option-group.component.mjs +10 -10
- package/esm2022/shared/option/list-option/list-option.component.mjs +12 -19
- package/esm2022/shared/option/option.component.mjs +9 -19
- package/esm2022/shared/select/select-control/select-control.component.mjs +23 -23
- package/esm2022/skeleton/skeleton-circle.component.mjs +7 -15
- package/esm2022/skeleton/skeleton-rectangle.component.mjs +7 -15
- package/esm2022/slide/drawer/drawer-container.directive.mjs +6 -6
- package/esm2022/slide/slide-container.component.mjs +12 -16
- package/esm2022/slide/slide-header/slide-header.component.mjs +10 -11
- package/esm2022/slide/slide-ref.service.mjs +1 -1
- package/esm2022/slide/slide.service.mjs +8 -12
- package/esm2022/slider/slider.component.mjs +8 -8
- package/esm2022/space/space.component.mjs +13 -13
- package/esm2022/statistic/statistic.component.mjs +20 -20
- package/esm2022/stepper/step.component.mjs +6 -11
- package/esm2022/stepper/stepper-button.directive.mjs +10 -11
- package/esm2022/strength/strength.component.mjs +11 -12
- package/esm2022/switch/switch.component.mjs +6 -6
- package/esm2022/table/table-column.component.mjs +58 -63
- package/esm2022/table/table-skeleton.component.mjs +32 -32
- package/esm2022/table/table.component.mjs +16 -24
- package/esm2022/tabs/tabs.component.mjs +19 -19
- package/esm2022/tag/tag.component.mjs +22 -22
- package/esm2022/time-picker/inner/inner-time-picker.component.mjs +10 -9
- package/esm2022/time-picker/time-picker-panel.component.mjs +27 -27
- package/esm2022/time-picker/time-picker.component.mjs +29 -29
- package/esm2022/timeline/timeline-item.component.mjs +12 -13
- package/esm2022/timeline/timeline.component.mjs +7 -8
- package/esm2022/tooltip/tooltip.component.mjs +14 -14
- package/esm2022/tooltip/tooltip.directive.mjs +11 -10
- package/esm2022/tooltip/tooltip.service.mjs +9 -13
- package/esm2022/transfer/transfer-list.component.mjs +6 -6
- package/esm2022/tree/tree-node.component.mjs +13 -17
- package/esm2022/tree/tree.component.mjs +86 -90
- package/esm2022/tree-select/tree-select.component.mjs +22 -27
- package/esm2022/typography/bg-color.directive.mjs +9 -9
- package/esm2022/typography/text-color.directive.mjs +9 -9
- package/esm2022/upload/file-drop.directive.mjs +1 -1
- package/esm2022/upload/file-select-base.mjs +5 -6
- package/esm2022/upload/file-select.component.mjs +4 -3
- package/esm2022/upload/upload.service.mjs +6 -7
- package/esm2022/version.mjs +2 -2
- package/esm2022/watermark/watermark.directive.mjs +12 -12
- package/fesm2022/ngx-tethys-action.mjs +17 -17
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +12 -14
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-anchor.mjs +19 -22
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +21 -21
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +59 -71
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +27 -27
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +12 -15
- package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
- package/fesm2022/ngx-tethys-badge.mjs +5 -5
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +16 -16
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +11 -11
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +21 -21
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +20 -21
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +11 -15
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +6 -7
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-collapse.mjs +17 -19
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +44 -42
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +8 -12
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +14 -16
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +192 -216
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +20 -20
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +56 -72
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dot.mjs +6 -6
- package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
- package/fesm2022/ngx-tethys-drag-drop.mjs +33 -37
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +39 -37
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +15 -15
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-flexible-text.mjs +16 -17
- package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +67 -82
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +14 -17
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +20 -29
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +17 -23
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +18 -22
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +57 -62
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +5 -5
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +46 -53
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +45 -50
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +24 -24
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +7 -7
- package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
- package/fesm2022/ngx-tethys-mention.mjs +16 -21
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +51 -52
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +33 -35
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +55 -64
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +26 -29
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +44 -49
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +48 -54
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +9 -12
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property-operation.mjs +24 -24
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +11 -11
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +29 -35
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +5 -5
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +22 -25
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +35 -38
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +20 -34
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +128 -143
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +11 -25
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +30 -34
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +7 -7
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +13 -13
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-statistic.mjs +19 -19
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +13 -18
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +11 -11
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +5 -5
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +103 -115
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +19 -19
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +21 -21
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +61 -58
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +16 -16
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +32 -33
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +5 -5
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +23 -28
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +96 -102
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +15 -15
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +11 -12
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-watermark.mjs +12 -12
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/flexible-text/flexible-text.component.d.ts +1 -3
- package/form/form-group-error/form-group-error.component.d.ts +1 -3
- package/form/form-group-label.directive.d.ts +0 -2
- package/form/form-group.component.d.ts +1 -4
- package/form/form-submit.directive.d.ts +0 -2
- package/form/form-validator.service.d.ts +0 -2
- package/form/form.directive.d.ts +4 -4
- package/form/from-group-footer/form-group-footer.component.d.ts +2 -4
- package/form/validator/unique-validator.directive.d.ts +1 -4
- package/fullscreen/fullscreen.component.d.ts +0 -2
- package/fullscreen/fullscreen.service.d.ts +0 -2
- package/grid/thy-col.directive.d.ts +1 -2
- package/grid/thy-grid-item.component.d.ts +2 -4
- package/grid/thy-grid.component.d.ts +1 -3
- package/guider/guider.directive.d.ts +1 -3
- package/guider/guider.service.d.ts +0 -7
- package/icon/icon-registry.d.ts +1 -3
- package/icon/icon.component.d.ts +1 -3
- package/image/image-group.component.d.ts +1 -2
- package/image/image.directive.d.ts +1 -3
- package/image/image.service.d.ts +2 -2
- package/image/preview/image-preview.component.d.ts +1 -4
- package/input/input-count.component.d.ts +3 -4
- package/input/input-group.component.d.ts +1 -3
- package/input/input-search.component.d.ts +2 -2
- package/input/input.component.d.ts +1 -2
- package/input/input.directive.d.ts +2 -3
- package/input-number/input-number.component.d.ts +2 -2
- package/layout/sidebar.component.d.ts +44 -13
- package/list/selection/selection-list.d.ts +1 -2
- package/loading/loading.component.d.ts +0 -2
- package/loading/styles/loading.scss +3 -1
- package/mention/mention.directive.d.ts +4 -5
- package/mention/suggestions/suggestions.component.d.ts +2 -3
- package/menu/group/menu-group.component.d.ts +12 -26
- package/menu/item/action/menu-item-action.component.d.ts +2 -3
- package/menu/item/menu-item.component.d.ts +1 -2
- package/message/abstract/abstract-message-container.component.d.ts +1 -2
- package/message/abstract/abstract-message.component.d.ts +2 -2
- package/message/message-container.component.d.ts +1 -3
- package/message/message-queue.service.d.ts +1 -2
- package/message/message.component.d.ts +1 -3
- package/message/message.service.d.ts +3 -5
- package/nav/icon-nav/icon-nav.component.d.ts +2 -2
- package/nav/nav-ink-bar.directive.d.ts +2 -4
- package/nav/nav-item.directive.d.ts +3 -4
- package/nav/nav.component.d.ts +1 -3
- package/nav/nav.pipe.d.ts +0 -2
- package/notify/notify-container.component.d.ts +1 -3
- package/notify/notify-queue.service.d.ts +1 -2
- package/notify/notify.component.d.ts +2 -3
- package/notify/notify.service.d.ts +1 -4
- package/package.json +1 -1
- package/pagination/pagination.component.d.ts +7 -19
- package/pagination/pagination.pipe.d.ts +0 -2
- package/popover/header/popover-header.component.d.ts +0 -3
- package/popover/popover-container.component.d.ts +3 -4
- package/popover/popover.directive.d.ts +2 -5
- package/popover/popover.service.d.ts +4 -6
- package/progress/progress-strip.component.d.ts +0 -1
- package/property/property-item.component.d.ts +6 -6
- package/property-operation/property-operation.component.d.ts +1 -3
- package/radio/button/radio-button.component.d.ts +2 -5
- package/radio/group/radio-group.component.d.ts +1 -2
- package/radio/radio.component.d.ts +2 -3
- package/rate/rate.component.d.ts +2 -2
- package/resizable/resizable.directive.d.ts +2 -4
- package/resizable/resizable.service.d.ts +2 -2
- package/resizable/resize-handle.component.d.ts +1 -3
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/segment-item.component.d.ts +4 -5
- package/segment/segment.component.d.ts +1 -2
- package/select/custom-select/custom-select.component.d.ts +5 -5
- package/select/native-select/native-select.component.d.ts +1 -1
- package/shared/base-form-check.component.d.ts +1 -1
- package/shared/directives/string-or-template-outlet.directive.d.ts +1 -2
- package/shared/directives/thy-autofocus.directive.d.ts +0 -2
- package/shared/directives/thy-contextmenu.directive.d.ts +1 -2
- package/shared/directives/thy-ctrl-enter.directive.d.ts +1 -2
- package/shared/directives/thy-enter.directive.d.ts +1 -2
- package/shared/directives/thy-scroll.directive.d.ts +1 -2
- package/shared/directives/thy-show.d.ts +1 -2
- package/shared/directives/thy-stop-propagation.directive.d.ts +2 -2
- package/shared/directives/view-outlet.directive.d.ts +1 -2
- package/shared/ng-transclude.directive.d.ts +1 -1
- package/shared/option/group/option-group.component.d.ts +1 -2
- package/shared/option/list-option/list-option.component.d.ts +5 -10
- package/shared/option/option.component.d.ts +5 -5
- package/shared/select/select-control/select-control.component.d.ts +1 -2
- package/skeleton/skeleton-circle.component.d.ts +1 -4
- package/skeleton/skeleton-rectangle.component.d.ts +5 -5
- package/slide/drawer/drawer-container.directive.d.ts +1 -2
- package/slide/slide-container.component.d.ts +3 -4
- package/slide/slide-header/slide-header.component.d.ts +0 -2
- package/slide/slide.service.d.ts +3 -3
- package/slider/slider.component.d.ts +2 -2
- package/space/space.component.d.ts +1 -2
- package/statistic/statistic.component.d.ts +1 -2
- package/stepper/step.component.d.ts +1 -2
- package/stepper/stepper-button.directive.d.ts +0 -3
- package/strength/strength.component.d.ts +0 -1
- package/switch/switch.component.d.ts +1 -1
- package/table/table-column.component.d.ts +32 -8
- package/table/table-skeleton.component.d.ts +3 -12
- package/table/table.component.d.ts +3 -5
- package/tabs/tabs.component.d.ts +1 -2
- package/tag/tag.component.d.ts +7 -3
- package/time-picker/inner/inner-time-picker.component.d.ts +2 -4
- package/time-picker/time-picker-panel.component.d.ts +1 -2
- package/time-picker/time-picker.component.d.ts +1 -2
- package/timeline/timeline-item.component.d.ts +1 -3
- package/timeline/timeline.component.d.ts +1 -3
- package/tooltip/tooltip.component.d.ts +1 -2
- package/tooltip/tooltip.directive.d.ts +6 -9
- package/tooltip/tooltip.service.d.ts +2 -4
- package/transfer/transfer-list.component.d.ts +1 -2
- package/tree/tree-node.component.d.ts +5 -21
- package/tree/tree.component.d.ts +1 -2
- package/tree-select/tree-select.component.d.ts +5 -6
- package/typography/bg-color.directive.d.ts +0 -2
- package/typography/text-color.directive.d.ts +1 -2
- package/upload/file-select-base.d.ts +2 -3
- package/upload/file-select.component.d.ts +1 -0
- package/upload/upload.service.d.ts +0 -2
- package/watermark/watermark.directive.d.ts +1 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, NgZone, Output, ViewChild } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, NgZone, Output, ViewChild, inject } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { isValid } from 'date-fns';
|
|
4
4
|
import { reqAnimFrame } from 'ngx-tethys/core';
|
|
@@ -11,29 +11,9 @@ import * as i0 from "@angular/core";
|
|
|
11
11
|
* @name thy-time-picker-panel
|
|
12
12
|
*/
|
|
13
13
|
export class ThyTimePanel {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
* @default HH:mm:ss
|
|
18
|
-
*/
|
|
19
|
-
set thyFormat(value) {
|
|
20
|
-
if (value) {
|
|
21
|
-
const formatSet = new Set(value);
|
|
22
|
-
this.showHourColumn = formatSet.has('H') || formatSet.has('h');
|
|
23
|
-
this.showMinuteColumn = formatSet.has('m');
|
|
24
|
-
this.showSecondColumn = formatSet.has('s');
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
this.showHourColumn = true;
|
|
28
|
-
this.showMinuteColumn = true;
|
|
29
|
-
this.showSecondColumn = true;
|
|
30
|
-
}
|
|
31
|
-
this.showColumnCount = [this.showHourColumn, this.showMinuteColumn, this.showSecondColumn].filter(m => m).length;
|
|
32
|
-
this.cdr.markForCheck();
|
|
33
|
-
}
|
|
34
|
-
constructor(cdr, ngZone) {
|
|
35
|
-
this.cdr = cdr;
|
|
36
|
-
this.ngZone = ngZone;
|
|
14
|
+
constructor() {
|
|
15
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
16
|
+
this.ngZone = inject(NgZone);
|
|
37
17
|
/**
|
|
38
18
|
* 小时间隔步长
|
|
39
19
|
* @type number
|
|
@@ -83,6 +63,26 @@ export class ThyTimePanel {
|
|
|
83
63
|
this.onValueChangeFn = () => void 0;
|
|
84
64
|
this.onTouchedFn = () => void 0;
|
|
85
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* 展示的日期格式,支持 'HH:mm:ss' | 'HH:mm' | 'mm:ss'
|
|
68
|
+
* @type string
|
|
69
|
+
* @default HH:mm:ss
|
|
70
|
+
*/
|
|
71
|
+
set thyFormat(value) {
|
|
72
|
+
if (value) {
|
|
73
|
+
const formatSet = new Set(value);
|
|
74
|
+
this.showHourColumn = formatSet.has('H') || formatSet.has('h');
|
|
75
|
+
this.showMinuteColumn = formatSet.has('m');
|
|
76
|
+
this.showSecondColumn = formatSet.has('s');
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this.showHourColumn = true;
|
|
80
|
+
this.showMinuteColumn = true;
|
|
81
|
+
this.showSecondColumn = true;
|
|
82
|
+
}
|
|
83
|
+
this.showColumnCount = [this.showHourColumn, this.showMinuteColumn, this.showSecondColumn].filter(m => m).length;
|
|
84
|
+
this.cdr.markForCheck();
|
|
85
|
+
}
|
|
86
86
|
ngOnInit() {
|
|
87
87
|
this.generateTimeRange();
|
|
88
88
|
this.initialValue();
|
|
@@ -210,7 +210,7 @@ export class ThyTimePanel {
|
|
|
210
210
|
this.resetScrollPosition();
|
|
211
211
|
}, 200);
|
|
212
212
|
}
|
|
213
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimePanel, deps: [
|
|
213
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimePanel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
214
214
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyTimePanel, isStandalone: true, selector: "thy-time-picker-panel", inputs: { thyFormat: "thyFormat", thyHourStep: "thyHourStep", thyMinuteStep: "thyMinuteStep", thySecondStep: "thySecondStep", thyShowSelectNow: ["thyShowSelectNow", "thyShowSelectNow", coerceBooleanProperty], thyShowOperations: ["thyShowOperations", "thyShowOperations", coerceBooleanProperty] }, outputs: { thyPickChange: "thyPickChange", thyClosePanel: "thyClosePanel" }, host: { properties: { "class.thy-time-picker-panel-has-bottom-operation": "thyShowOperations", "class.thy-time-picker-panel-columns-2": "showColumnCount === 2", "class.thy-time-picker-panel-columns-3": "showColumnCount === 3" }, classAttribute: "thy-time-picker-panel" }, providers: [
|
|
215
215
|
{
|
|
216
216
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -233,7 +233,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
233
233
|
'[class.thy-time-picker-panel-columns-2]': `showColumnCount === 2`,
|
|
234
234
|
'[class.thy-time-picker-panel-columns-3]': `showColumnCount === 3`
|
|
235
235
|
}, standalone: true, imports: [ThyButton, DecimalPipe], template: "<div class=\"{{ prefixCls }}-content\">\n @if (showHourColumn) {\n <ul #hourListElement class=\"{{ prefixCls }}-time-column {{ prefixCls }}-hour-column\">\n @for (time of hourRange; track $index; let i = $index) {\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"hour === time.value\"\n (click)=\"pickHours(time, i)\">\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n }\n </ul>\n }\n @if (showMinuteColumn) {\n <ul #minuteListElement class=\"{{ prefixCls }}-time-column {{ prefixCls }}-minute-column\">\n @for (time of minuteRange; track $index; let i = $index) {\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"minute === time.value\"\n (click)=\"pickMinutes(time, i)\">\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n }\n </ul>\n }\n @if (showSecondColumn) {\n <ul #secondListElement class=\"{{ prefixCls }}-time-column {{ prefixCls }}-second-column\">\n @for (time of secondRange; track $index; let i = $index) {\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"second === time.value\"\n (click)=\"pickSeconds(time, i)\">\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n }\n </ul>\n }\n</div>\n\n@if (thyShowOperations) {\n <div class=\"{{ prefixCls }}-bottom-operation\">\n @if (thyShowSelectNow) {\n <a href=\"javascript:;\" class=\"{{ prefixCls }}-time-now\" (click)=\"selectNow()\">\u6B64\u523B</a>\n }\n <button class=\"{{ prefixCls }}-time-confirm\" thyButton=\"primary\" thySize=\"xs\" class=\"confirm\" (click)=\"confirmPickTime()\">\u786E\u5B9A</button>\n </div>\n}\n" }]
|
|
236
|
-
}],
|
|
236
|
+
}], propDecorators: { hourListRef: [{
|
|
237
237
|
type: ViewChild,
|
|
238
238
|
args: ['hourListElement', { static: false }]
|
|
239
239
|
}], minuteListRef: [{
|
|
@@ -261,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
261
261
|
}], thyClosePanel: [{
|
|
262
262
|
type: Output
|
|
263
263
|
}] } });
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90aW1lLXBpY2tlci90aW1lLXBpY2tlci1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFHTixNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFOUM7OztHQUdHO0FBcUJILE1BQU0sT0FBTyxZQUFZO0lBT3JCOzs7O09BSUc7SUFDSCxJQUFhLFNBQVMsQ0FBQyxLQUFhO1FBQ2hDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsZ0JB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dGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpc1ZhbGlkIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgcmVxQW5pbUZyYW1lIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgVGlueURhdGUgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgVGh5QnV0dG9uIH0gZnJvbSAnbmd4LXRldGh5cy9idXR0b24nO1xuaW1wb3J0IHsgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqIOaXtumXtOmAieaLqemdouadv+e7hOS7tlxuICogQG5hbWUgdGh5LXRpbWUtcGlja2VyLXBhbmVsXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXRpbWUtcGlja2VyLXBhbmVsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGltZS1waWNrZXItcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5VGltZVBhbmVsKVxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGh5LXRpbWUtcGlja2VyLXBhbmVsJyxcbiAgICAgICAgJ1tjbGFzcy50aHktdGltZS1waWNrZXItcGFuZWwtaGFzLWJvdHRvbS1vcGVyYXRpb25dJzogYHRoeVNob3dPcGVyYXRpb25zYCxcbiAgICAgICAgJ1tjbGFzcy50aHktdGltZS1waWNrZXItcGFuZWwtY29sdW1ucy0yXSc6IGBzaG93Q29sdW1uQ291bnQgPT09IDJgLFxuICAgICAgICAnW2NsYXNzLnRoeS10aW1lLXBpY2tlci1wYW5lbC1jb2x1bW5zLTNdJzogYHNob3dDb2x1bW5Db3VudCA9PT0gM2BcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RoeUJ1dHRvbiwgRGVjaW1hbFBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVRpbWVQYW5lbCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgQFZpZXdDaGlsZCgnaG91ckxpc3RFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIGhvdXJMaXN0UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ21pbnV0ZUxpc3RFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIG1pbnV0ZUxpc3RSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnc2Vjb25kTGlzdEVsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgc2Vjb25kTGlzdFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiDlsZXnpLrnmoTml6XmnJ/moLzlvI/vvIzmlK/mjIEgJ0hIOm1tOnNzJyB8ICdISDptbScgfCAnbW06c3MnXG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICogQGRlZmF1bHQgSEg6bW06c3NcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5Rm9ybWF0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXRTZXQgPSBuZXcgU2V0KHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd0hvdXJDb2x1bW4gPSBmb3JtYXRTZXQuaGFzKCdIJykgfHwgZm9ybWF0U2V0LmhhcygnaCcpO1xuICAgICAgICAgICAgdGhpcy5zaG93TWludXRlQ29sdW1uID0gZm9ybWF0U2V0LmhhcygnbScpO1xuICAgICAgICAgICAgdGhpcy5zaG93U2Vjb25kQ29sdW1uID0gZm9ybWF0U2V0LmhhcygncycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zaG93SG91ckNvbHVtbiA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNob3dNaW51dGVDb2x1bW4gPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zaG93U2Vjb25kQ29sdW1uID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNob3dDb2x1bW5Db3VudCA9IFt0aGlzLnNob3dIb3VyQ29sdW1uLCB0aGlzLnNob3dNaW51dGVDb2x1bW4sIHRoaXMuc2hvd1NlY29uZENvbHVtbl0uZmlsdGVyKG0gPT4gbSkubGVuZ3RoO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlsI/ml7bpl7TpmpTmraXplb9cbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlIb3VyU3RlcDogbnVtYmVyID0gMTtcblxuICAgIC8qKlxuICAgICAqIOWIhumSn+mXtOmalOatpemVv1xuICAgICAqIEB0eXBlIG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeU1pbnV0ZVN0ZXA6IG51bWJlciA9IDE7XG5cbiAgICAvKipcbiAgICAgKiDnp5Lpl7TpmpTmraXplb9cbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTZWNvbmRTdGVwOiBudW1iZXIgPSAxO1xuXG4gICAgLyoqXG4gICAgICog5bGV56S66YCJ5oup5q2k5Yi7XG4gICAgICogQHR5cGUgYm9vbGVhblxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeVNob3dTZWxlY3ROb3cgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog5bGV56S65bqV6YOo5pON5L2cXG4gICAgICogQHR5cGUgYm9vbGVhblxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeVNob3dPcGVyYXRpb25zID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOmAieaLqeaXtumXtOinpuWPkeeahOS6i+S7tlxuICAgICAqIEB0eXBlIEV2ZW50RW1pdHRlcjxEYXRlPlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlQaWNrQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gICAgLyoqXG4gICAgICog5YWz6Zet6Z2i5p2/5LqL5Lu2XG4gICAgICogQHR5cGUgRXZlbnRFbWl0dGVyPHZvaWQ+XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeUNsb3NlUGFuZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvLyBtYXJnaW4tdG9wICsgMXB4IGJvcmRlclxuICAgIFNDUk9MTF9PRkZTRVRfU1BBQ0lORyA9IDU7XG5cbiAgICBTQ1JPTExfREVGQVVMVF9EVVJBVElPTiA9IDEyMDtcblxuICAgIHByZWZpeENscyA9ICd0aHktdGltZS1waWNrZXItcGFuZWwnO1xuXG4gICAgaG91clJhbmdlOiBSZWFkb25seUFycmF5PHsgdmFsdWU6IG51bWJlcjsgZGlzYWJsZWQ6IGJvb2xlYW4gfT4gPSBbXTtcblxuICAgIG1pbnV0ZVJhbmdlOiBSZWFkb25seUFycmF5PHsgdmFsdWU6IG51bWJlcjsgZGlzYWJsZWQ6IGJvb2xlYW4gfT4gPSBbXTtcblxuICAgIHNlY29uZFJhbmdlOiBSZWFkb25seUFycmF5PHsgdmFsdWU6IG51bWJlcjsgZGlzYWJsZWQ6IGJvb2xlYW4gfT4gPSBbXTtcblxuICAgIHNob3dIb3VyQ29sdW1uID0gdHJ1ZTtcblxuICAgIHNob3dNaW51dGVDb2x1bW4gPSB0cnVlO1xuXG4gICAgc2hvd1NlY29uZENvbHVtbiA9IHRydWU7XG5cbiAgICBzaG93Q29sdW1uQ291bnQ6IG51bWJlciA9IDM7XG5cbiAgICB2YWx1ZTogRGF0ZTtcblxuICAgIGhvdXI6IG51bWJlcjtcblxuICAgIG1pbnV0ZTogbnVtYmVyO1xuXG4gICAgc2Vjb25kOiBudW1iZXI7XG5cbiAgICBpbml0aWFsU2Nyb2xsUG9zaXRpb246IGJvb2xlYW47XG5cbiAgICBvblZhbHVlQ2hhbmdlRm46ICh2YWw6IERhdGUpID0+IHZvaWQgPSAoKSA9PiB2b2lkIDA7XG5cbiAgICBvblRvdWNoZWRGbjogKCkgPT4gdm9pZCA9ICgpID0+IHZvaWQgMDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZW5lcmF0ZVRpbWVSYW5nZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxWYWx1ZSgpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbFNjcm9sbFBvc2l0aW9uID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2VuZXJhdGVUaW1lUmFuZ2UoKSB7XG4gICAgICAgIHRoaXMuaG91clJhbmdlID0gdGhpcy5idWlsZFRpbWVSYW5nZSgyNCwgdGhpcy50aHlIb3VyU3RlcCk7XG4gICAgICAgIHRoaXMubWludXRlUmFuZ2UgPSB0aGlzLmJ1aWxkVGltZVJhbmdlKDYwLCB0aGlzLnRoeU1pbnV0ZVN0ZXApO1xuICAgICAgICB0aGlzLnNlY29uZFJhbmdlID0gdGhpcy5idWlsZFRpbWVSYW5nZSg2MCwgdGhpcy50aHlTZWNvbmRTdGVwKTtcbiAgICB9XG5cbiAgICBwaWNrSG91cnMoaG91cnM6IHsgdmFsdWU6IG51bWJlcjsgZGlzYWJsZWQ6IGJvb2xlYW4gfSwgaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnZhbHVlLnNldEhvdXJzKGhvdXJzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5ob3VyID0gaG91cnMudmFsdWU7XG4gICAgICAgIHRoaXMudGh5UGlja0NoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvKHRoaXMuaG91ckxpc3RSZWYubmF0aXZlRWxlbWVudCwgaW5kZXgpO1xuICAgIH1cblxuICAgIHBpY2tNaW51dGVzKG1pbnV0ZXM6IHsgdmFsdWU6IG51bWJlcjsgZGlzYWJsZWQ6IGJvb2xlYW4gfSwgaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnZhbHVlLnNldE1pbnV0ZXMobWludXRlcy52YWx1ZSk7XG4gICAgICAgIHRoaXMubWludXRlID0gbWludXRlcy52YWx1ZTtcbiAgICAgICAgdGhpcy50aHlQaWNrQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG8odGhpcy5taW51dGVMaXN0UmVmLm5hdGl2ZUVsZW1lbnQsIGluZGV4KTtcbiAgICB9XG5cbiAgICBwaWNrU2Vjb25kcyhzZWNvbmRzOiB7IHZhbHVlOiBudW1iZXI7IGRpc2FibGVkOiBib29sZWFuIH0sIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy52YWx1ZS5zZXRTZWNvbmRzKHNlY29uZHMudmFsdWUpO1xuICAgICAgICB0aGlzLnNlY29uZCA9IHNlY29uZHMudmFsdWU7XG4gICAgICAgIHRoaXMudGh5UGlja0NoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvKHRoaXMuc2Vjb25kTGlzdFJlZi5uYXRpdmVFbGVtZW50LCBpbmRleCk7XG4gICAgfVxuXG4gICAgc2VsZWN0Tm93KCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gbmV3IERhdGUoKTtcbiAgICAgICAgdGhpcy5zZXRITVNQcm9wZXJ0eSgpO1xuICAgICAgICB0aGlzLnRoeVBpY2tDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy50aHlDbG9zZVBhbmVsLmVtaXQoKTtcbiAgICB9XG5cbiAgICBjb25maXJtUGlja1RpbWUoKSB7XG4gICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZUZuKHRoaXMudmFsdWUgfHwgbmV3IERhdGUoKSk7XG4gICAgICAgIHRoaXMudGh5Q2xvc2VQYW5lbC5lbWl0KCk7XG4gICAgfVxuXG4gICAgc2Nyb2xsVG8oY29udGFpbmVyOiBIVE1MRWxlbWVudCwgaW5kZXg6IG51bWJlciA9IDAsIGR1cmF0aW9uOiBudW1iZXIgPSB0aGlzLlNDUk9MTF9ERUZBVUxUX0RVUkFUSU9OKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldFRvcCA9IChjb250YWluZXIuY2hpbGRyZW5baW5kZXhdIGFzIEhUTUxFbGVtZW50KS5vZmZzZXRUb3AgLSB0aGlzLlNDUk9MTF9PRkZTRVRfU1BBQ0lORztcbiAgICAgICAgdGhpcy5ydW5TY3JvbGxBbmltYXRpb25GcmFtZShjb250YWluZXIsIG9mZnNldFRvcCwgZHVyYXRpb24pO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IERhdGUgfCBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlICYmIGlzVmFsaWQodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbmV3IERhdGUodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5zZXRITVNQcm9wZXJ0eSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsVmFsdWUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmF1dG9TY3JvbGwodGhpcy5pbml0aWFsU2Nyb2xsUG9zaXRpb24gPyB0aGlzLlNDUk9MTF9ERUZBVUxUX0RVUkFUSU9OIDogMCk7XG5cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBEYXRlKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZUZuID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdGlhbFZhbHVlKCkge1xuICAgICAgICB0aGlzLmhvdXIgPSAwO1xuICAgICAgICB0aGlzLm1pbnV0ZSA9IDA7XG4gICAgICAgIHRoaXMuc2Vjb25kID0gMDtcbiAgICAgICAgdGhpcy52YWx1ZSA9IG5ldyBUaW55RGF0ZSgpLnNldEhtcygwLCAwLCAwKS5uYXRpdmVEYXRlO1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRUaW1lUmFuZ2UobGVuZ3RoOiBudW1iZXIsIHN0ZXA6IG51bWJlciA9IDEsIHN0YXJ0OiBudW1iZXIgPSAwLCBkaXNhYmxlczogbnVtYmVyW10gPSBbXSkge1xuICAgICAgICByZXR1cm4gbmV3IEFycmF5KE1hdGguY2VpbChsZW5ndGggLyBzdGVwKSkuZmlsbCgwKS5tYXAoKF8sIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gKGkgKyBzdGFydCkgKiBzdGVwO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGRpc2FibGVzLmluZGV4T2YodmFsdWUpID4gLTFcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SE1TUHJvcGVydHkoKSB7XG4gICAgICAgIHRoaXMuaG91ciA9IHRoaXMudmFsdWUuZ2V0SG91cnMoKTtcbiAgICAgICAgdGhpcy5taW51dGUgPSB0aGlzLnZhbHVlLmdldE1pbnV0ZXMoKTtcbiAgICAgICAgdGhpcy5zZWNvbmQgPSB0aGlzLnZhbHVlLmdldFNlY29uZHMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0U2Nyb2xsUG9zaXRpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLmhvdXJMaXN0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmhvdXJMaXN0UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5taW51dGVMaXN0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLm1pbnV0ZUxpc3RSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAwO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnNlY29uZExpc3RSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuc2Vjb25kTGlzdFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0aWFsU2Nyb2xsUG9zaXRpb24gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJ1blNjcm9sbEFuaW1hdGlvbkZyYW1lKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsIHRvOiBudW1iZXIsIGR1cmF0aW9uOiBudW1iZXIgPSB0aGlzLlNDUk9MTF9ERUZBVUxUX0RVUkFUSU9OKSB7XG4gICAgICAgIGlmIChkdXJhdGlvbiA8PSAwKSB7XG4gICAgICAgICAgICBjb250YWluZXIuc2Nyb2xsVG9wID0gdG87XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdG8gLSBjb250YWluZXIuc2Nyb2xsVG9wO1xuICAgICAgICBjb25zdCBmcmFtZSA9IChvZmZzZXQgLyBkdXJhdGlvbikgKiAxMDtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgcmVxQW5pbUZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuc2Nyb2xsVG9wICs9IGZyYW1lO1xuICAgICAgICAgICAgICAgIGlmIChjb250YWluZXIuc2Nyb2xsVG9wID09PSB0bykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMucnVuU2Nyb2xsQW5pbWF0aW9uRnJhbWUoY29udGFpbmVyLCB0bywgZHVyYXRpb24gLSAxMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhdXRvU2Nyb2xsKGR1cmF0aW9uOiBudW1iZXIgPSB0aGlzLlNDUk9MTF9ERUZBVUxUX0RVUkFUSU9OKSB7XG4gICAgICAgIGlmICh0aGlzLmhvdXJMaXN0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvKFxuICAgICAgICAgICAgICAgIHRoaXMuaG91ckxpc3RSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICB0aGlzLmhvdXJSYW5nZS5maW5kSW5kZXgobSA9PiBtLnZhbHVlID09PSB0aGlzLmhvdXIpLFxuICAgICAgICAgICAgICAgIGR1cmF0aW9uXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1pbnV0ZUxpc3RSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG8oXG4gICAgICAgICAgICAgICAgdGhpcy5taW51dGVMaXN0UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgdGhpcy5taW51dGVSYW5nZS5maW5kSW5kZXgobSA9PiBtLnZhbHVlID09PSB0aGlzLm1pbnV0ZSksXG4gICAgICAgICAgICAgICAgZHVyYXRpb25cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc2Vjb25kTGlzdFJlZikge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxUbyhcbiAgICAgICAgICAgICAgICB0aGlzLnNlY29uZExpc3RSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICB0aGlzLnNlY29uZFJhbmdlLmZpbmRJbmRleChtID0+IG0udmFsdWUgPT09IHRoaXMuc2Vjb25kKSxcbiAgICAgICAgICAgICAgICBkdXJhdGlvblxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICAvLyDlhbPpl63pnaLmnb/ml7bmnIkgMC4ycyDnmoTliqjnlLvvvIzmiYDku6Xlu7bov58gMjAwbXMg5YaN6YeN572u5rua5Yqo5L2N572uXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZXNldFNjcm9sbFBvc2l0aW9uKCk7XG4gICAgICAgIH0sIDIwMCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1jb250ZW50XCI+XG4gIEBpZiAoc2hvd0hvdXJDb2x1bW4pIHtcbiAgICA8dWwgI2hvdXJMaXN0RWxlbWVudCBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLWNvbHVtbiB7eyBwcmVmaXhDbHMgfX0taG91ci1jb2x1bW5cIj5cbiAgICAgIEBmb3IgKHRpbWUgb2YgaG91clJhbmdlOyB0cmFjayAkaW5kZXg7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgIDxsaVxuICAgICAgICAgIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29sdW1uLWNlbGxcIlxuICAgICAgICAgIFtjbGFzcy50aHktdGltZS1waWNrZXItcGFuZWwtdGltZS1jb2x1bW4tY2VsbC1zZWxlY3RlZF09XCJob3VyID09PSB0aW1lLnZhbHVlXCJcbiAgICAgICAgICAoY2xpY2spPVwicGlja0hvdXJzKHRpbWUsIGkpXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tdGltZS1jb2x1bW4tY2VsbC1pbm5lclwiPnt7IHRpbWUudmFsdWUgfCBudW1iZXI6ICcyLjAtMCcgfX08L3NwYW4+XG4gICAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgPC91bD5cbiAgfVxuICBAaWYgKHNob3dNaW51dGVDb2x1bW4pIHtcbiAgICA8dWwgI21pbnV0ZUxpc3RFbGVtZW50IGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29sdW1uIHt7IHByZWZpeENscyB9fS1taW51dGUtY29sdW1uXCI+XG4gICAgICBAZm9yICh0aW1lIG9mIG1pbnV0ZVJhbmdlOyB0cmFjayAkaW5kZXg7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgIDxsaVxuICAgICAgICAgIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29sdW1uLWNlbGxcIlxuICAgICAgICAgIFtjbGFzcy50aHktdGltZS1waWNrZXItcGFuZWwtdGltZS1jb2x1bW4tY2VsbC1zZWxlY3RlZF09XCJtaW51dGUgPT09IHRpbWUudmFsdWVcIlxuICAgICAgICAgIChjbGljayk9XCJwaWNrTWludXRlcyh0aW1lLCBpKVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29sdW1uLWNlbGwtaW5uZXJcIj57eyB0aW1lLnZhbHVlIHwgbnVtYmVyOiAnMi4wLTAnIH19PC9zcGFuPlxuICAgICAgICA8L2xpPlxuICAgICAgfVxuICAgIDwvdWw+XG4gIH1cbiAgQGlmIChzaG93U2Vjb25kQ29sdW1uKSB7XG4gICAgPHVsICNzZWNvbmRMaXN0RWxlbWVudCBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLWNvbHVtbiB7eyBwcmVmaXhDbHMgfX0tc2Vjb25kLWNvbHVtblwiPlxuICAgICAgQGZvciAodGltZSBvZiBzZWNvbmRSYW5nZTsgdHJhY2sgJGluZGV4OyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICA8bGlcbiAgICAgICAgICBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLWNvbHVtbi1jZWxsXCJcbiAgICAgICAgICBbY2xhc3MudGh5LXRpbWUtcGlja2VyLXBhbmVsLXRpbWUtY29sdW1uLWNlbGwtc2VsZWN0ZWRdPVwic2Vjb25kID09PSB0aW1lLnZhbHVlXCJcbiAgICAgICAgICAoY2xpY2spPVwicGlja1NlY29uZHModGltZSwgaSlcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLWNvbHVtbi1jZWxsLWlubmVyXCI+e3sgdGltZS52YWx1ZSB8IG51bWJlcjogJzIuMC0wJyB9fTwvc3Bhbj5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICA8L3VsPlxuICB9XG48L2Rpdj5cblxuQGlmICh0aHlTaG93T3BlcmF0aW9ucykge1xuICA8ZGl2IGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWJvdHRvbS1vcGVyYXRpb25cIj5cbiAgICBAaWYgKHRoeVNob3dTZWxlY3ROb3cpIHtcbiAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLW5vd1wiIChjbGljayk9XCJzZWxlY3ROb3coKVwiPuatpOWIuzwvYT5cbiAgICB9XG4gICAgPGJ1dHRvbiBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLWNvbmZpcm1cIiB0aHlCdXR0b249XCJwcmltYXJ5XCIgdGh5U2l6ZT1cInhzXCIgY2xhc3M9XCJjb25maXJtXCIgKGNsaWNrKT1cImNvbmZpcm1QaWNrVGltZSgpXCI+56Gu5a6aPC9idXR0b24+XG4gIDwvZGl2PlxufVxuIl19
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90aW1lLXBpY2tlci90aW1lLXBpY2tlci1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFHTixNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRTlDOzs7R0FHRztBQXFCSCxNQUFNLE9BQU8sWUFBWTtJQXBCekI7UUFxQlksUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUE0QmhDOzs7V0FHRztRQUNNLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBRWpDOzs7V0FHRztRQUNNLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBRW5DOzs7V0FHRztRQUNNLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBRW5DOzs7V0FH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cnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNWYWxpZCB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IHJlcUFuaW1GcmFtZSB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIFRpbnlEYXRlIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IFRoeUJ1dHRvbiB9IGZyb20gJ25neC10ZXRoeXMvYnV0dG9uJztcbmltcG9ydCB7IERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiDml7bpl7TpgInmi6npnaLmnb/nu4Tku7ZcbiAqIEBuYW1lIHRoeS10aW1lLXBpY2tlci1wYW5lbFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS10aW1lLXBpY2tlci1wYW5lbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtcGlja2VyLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoeVRpbWVQYW5lbClcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS10aW1lLXBpY2tlci1wYW5lbCcsXG4gICAgICAgICdbY2xhc3MudGh5LXRpbWUtcGlja2VyLXBhbmVsLWhhcy1ib3R0b20tb3BlcmF0aW9uXSc6IGB0aHlTaG93T3BlcmF0aW9uc2AsXG4gICAgICAgICdbY2xhc3MudGh5LXRpbWUtcGlja2VyLXBhbmVsLWNvbHVtbnMtMl0nOiBgc2hvd0NvbHVtbkNvdW50ID09PSAyYCxcbiAgICAgICAgJ1tjbGFzcy50aHktdGltZS1waWNrZXItcGFuZWwtY29sdW1ucy0zXSc6IGBzaG93Q29sdW1uQ291bnQgPT09IDNgXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUaHlCdXR0b24sIERlY2ltYWxQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlUaW1lUGFuZWwgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgICBwcml2YXRlIG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gICAgQFZpZXdDaGlsZCgnaG91ckxpc3RFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIGhvdXJMaXN0UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ21pbnV0ZUxpc3RFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIG1pbnV0ZUxpc3RSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnc2Vjb25kTGlzdEVsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgc2Vjb25kTGlzdFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiDlsZXnpLrnmoTml6XmnJ/moLzlvI/vvIzmlK/mjIEgJ0hIOm1tOnNzJyB8ICdISDptbScgfCAnbW06c3MnXG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICogQGRlZmF1bHQgSEg6bW06c3NcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5Rm9ybWF0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXRTZXQgPSBuZXcgU2V0KHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd0hvdXJDb2x1bW4gPSBmb3JtYXRTZXQuaGFzKCdIJykgfHwgZm9ybWF0U2V0LmhhcygnaCcpO1xuICAgICAgICAgICAgdGhpcy5zaG93TWludXRlQ29sdW1uID0gZm9ybWF0U2V0LmhhcygnbScpO1xuICAgICAgICAgICAgdGhpcy5zaG93U2Vjb25kQ29sdW1uID0gZm9ybWF0U2V0LmhhcygncycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zaG93SG91ckNvbHVtbiA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNob3dNaW51dGVDb2x1bW4gPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zaG93U2Vjb25kQ29sdW1uID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNob3dDb2x1bW5Db3VudCA9IFt0aGlzLnNob3dIb3VyQ29sdW1uLCB0aGlzLnNob3dNaW51dGVDb2x1bW4sIHRoaXMuc2hvd1NlY29uZENvbHVtbl0uZmlsdGVyKG0gPT4gbSkubGVuZ3RoO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlsI/ml7bpl7TpmpTmraXplb9cbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlIb3VyU3RlcDogbnVtYmVyID0gMTtcblxuICAgIC8qKlxuICAgICAqIOWIhumSn+mXtOmalOatpemVv1xuICAgICAqIEB0eXBlIG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeU1pbnV0ZVN0ZXA6IG51bWJlciA9IDE7XG5cbiAgICAvKipcbiAgICAgKiDnp5Lpl7TpmpTmraXplb9cbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTZWNvbmRTdGVwOiBudW1iZXIgPSAxO1xuXG4gICAgLyoqXG4gICAgICog5bGV56S66YCJ5oup5q2k5Yi7XG4gICAgICogQHR5cGUgYm9vbGVhblxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeVNob3dTZWxlY3ROb3cgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog5bGV56S65bqV6YOo5pON5L2cXG4gICAgICogQHR5cGUgYm9vbGVhblxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeVNob3dPcGVyYXRpb25zID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOmAieaLqeaXtumXtOinpuWPkeeahOS6i+S7tlxuICAgICAqIEB0eXBlIEV2ZW50RW1pdHRlcjxEYXRlPlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlQaWNrQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gICAgLyoqXG4gICAgICog5YWz6Zet6Z2i5p2/5LqL5Lu2XG4gICAgICogQHR5cGUgRXZlbnRFbWl0dGVyPHZvaWQ+XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeUNsb3NlUGFuZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvLyBtYXJnaW4tdG9wICsgMXB4IGJvcmRlclxuICAgIFNDUk9MTF9PRkZTRVRfU1BBQ0lORyA9IDU7XG5cbiAgICBTQ1JPTExfREVGQVVMVF9EVVJBVElPTiA9IDEyMDtcblxuICAgIHByZWZpeENscyA9ICd0aHktdGltZS1waWNrZXItcGFuZWwnO1xuXG4gICAgaG91clJhbmdlOiBSZWFkb25seUFycmF5PHsgdmFsdWU6IG51bWJlcjsgZGlzYWJsZWQ6IGJvb2xlYW4gfT4gPSBbXTtcblxuICAgIG1pbnV0ZVJhbmdlOiBSZWFkb25seUFycmF5PHsgdmFsdWU6IG51bWJlcjsgZGlzYWJsZWQ6IGJvb2xlYW4gfT4gPSBbXTtcblxuICAgIHNlY29uZFJhbmdlOiBSZWFkb25seUFycmF5PHsgdmFsdWU6IG51bWJlcjsgZGlzYWJsZWQ6IGJvb2xlYW4gfT4gPSBbXTtcblxuICAgIHNob3dIb3VyQ29sdW1uID0gdHJ1ZTtcblxuICAgIHNob3dNaW51dGVDb2x1bW4gPSB0cnVlO1xuXG4gICAgc2hvd1NlY29uZENvbHVtbiA9IHRydWU7XG5cbiAgICBzaG93Q29sdW1uQ291bnQ6IG51bWJlciA9IDM7XG5cbiAgICB2YWx1ZTogRGF0ZTtcblxuICAgIGhvdXI6IG51bWJlcjtcblxuICAgIG1pbnV0ZTogbnVtYmVyO1xuXG4gICAgc2Vjb25kOiBudW1iZXI7XG5cbiAgICBpbml0aWFsU2Nyb2xsUG9zaXRpb246IGJvb2xlYW47XG5cbiAgICBvblZhbHVlQ2hhbmdlRm46ICh2YWw6IERhdGUpID0+IHZvaWQgPSAoKSA9PiB2b2lkIDA7XG5cbiAgICBvblRvdWNoZWRGbjogKCkgPT4gdm9pZCA9ICgpID0+IHZvaWQgMDtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdlbmVyYXRlVGltZVJhbmdlKCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbFZhbHVlKCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsU2Nyb2xsUG9zaXRpb24gPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZW5lcmF0ZVRpbWVSYW5nZSgpIHtcbiAgICAgICAgdGhpcy5ob3VyUmFuZ2UgPSB0aGlzLmJ1aWxkVGltZVJhbmdlKDI0LCB0aGlzLnRoeUhvdXJTdGVwKTtcbiAgICAgICAgdGhpcy5taW51dGVSYW5nZSA9IHRoaXMuYnVpbGRUaW1lUmFuZ2UoNjAsIHRoaXMudGh5TWludXRlU3RlcCk7XG4gICAgICAgIHRoaXMuc2Vjb25kUmFuZ2UgPSB0aGlzLmJ1aWxkVGltZVJhbmdlKDYwLCB0aGlzLnRoeVNlY29uZFN0ZXApO1xuICAgIH1cblxuICAgIHBpY2tIb3Vycyhob3VyczogeyB2YWx1ZTogbnVtYmVyOyBkaXNhYmxlZDogYm9vbGVhbiB9LCBpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudmFsdWUuc2V0SG91cnMoaG91cnMudmFsdWUpO1xuICAgICAgICB0aGlzLmhvdXIgPSBob3Vycy52YWx1ZTtcbiAgICAgICAgdGhpcy50aHlQaWNrQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG8odGhpcy5ob3VyTGlzdFJlZi5uYXRpdmVFbGVtZW50LCBpbmRleCk7XG4gICAgfVxuXG4gICAgcGlja01pbnV0ZXMobWludXRlczogeyB2YWx1ZTogbnVtYmVyOyBkaXNhYmxlZDogYm9vbGVhbiB9LCBpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudmFsdWUuc2V0TWludXRlcyhtaW51dGVzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5taW51dGUgPSBtaW51dGVzLnZhbHVlO1xuICAgICAgICB0aGlzLnRoeVBpY2tDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5zY3JvbGxUbyh0aGlzLm1pbnV0ZUxpc3RSZWYubmF0aXZlRWxlbWVudCwgaW5kZXgpO1xuICAgIH1cblxuICAgIHBpY2tTZWNvbmRzKHNlY29uZHM6IHsgdmFsdWU6IG51bWJlcjsgZGlzYWJsZWQ6IGJvb2xlYW4gfSwgaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnZhbHVlLnNldFNlY29uZHMoc2Vjb25kcy52YWx1ZSk7XG4gICAgICAgIHRoaXMuc2Vjb25kID0gc2Vjb25kcy52YWx1ZTtcbiAgICAgICAgdGhpcy50aHlQaWNrQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG8odGhpcy5zZWNvbmRMaXN0UmVmLm5hdGl2ZUVsZW1lbnQsIGluZGV4KTtcbiAgICB9XG5cbiAgICBzZWxlY3ROb3coKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICB0aGlzLnNldEhNU1Byb3BlcnR5KCk7XG4gICAgICAgIHRoaXMudGh5UGlja0NoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLnRoeUNsb3NlUGFuZWwuZW1pdCgpO1xuICAgIH1cblxuICAgIGNvbmZpcm1QaWNrVGltZSgpIHtcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlRm4odGhpcy52YWx1ZSB8fCBuZXcgRGF0ZSgpKTtcbiAgICAgICAgdGhpcy50aHlDbG9zZVBhbmVsLmVtaXQoKTtcbiAgICB9XG5cbiAgICBzY3JvbGxUbyhjb250YWluZXI6IEhUTUxFbGVtZW50LCBpbmRleDogbnVtYmVyID0gMCwgZHVyYXRpb246IG51bWJlciA9IHRoaXMuU0NST0xMX0RFRkFVTFRfRFVSQVRJT04pIHtcbiAgICAgICAgY29uc3Qgb2Zmc2V0VG9wID0gKGNvbnRhaW5lci5jaGlsZHJlbltpbmRleF0gYXMgSFRNTEVsZW1lbnQpLm9mZnNldFRvcCAtIHRoaXMuU0NST0xMX09GRlNFVF9TUEFDSU5HO1xuICAgICAgICB0aGlzLnJ1blNjcm9sbEFuaW1hdGlvbkZyYW1lKGNvbnRhaW5lciwgb2Zmc2V0VG9wLCBkdXJhdGlvbik7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUgJiYgaXNWYWxpZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnNldEhNU1Byb3BlcnR5KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxWYWx1ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXV0b1Njcm9sbCh0aGlzLmluaXRpYWxTY3JvbGxQb3NpdGlvbiA/IHRoaXMuU0NST0xMX0RFRkFVTFRfRFVSQVRJT04gOiAwKTtcblxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IERhdGUpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlRm4gPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZEZuID0gZm47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsVmFsdWUoKSB7XG4gICAgICAgIHRoaXMuaG91ciA9IDA7XG4gICAgICAgIHRoaXMubWludXRlID0gMDtcbiAgICAgICAgdGhpcy5zZWNvbmQgPSAwO1xuICAgICAgICB0aGlzLnZhbHVlID0gbmV3IFRpbnlEYXRlKCkuc2V0SG1zKDAsIDAsIDApLm5hdGl2ZURhdGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidWlsZFRpbWVSYW5nZShsZW5ndGg6IG51bWJlciwgc3RlcDogbnVtYmVyID0gMSwgc3RhcnQ6IG51bWJlciA9IDAsIGRpc2FibGVzOiBudW1iZXJbXSA9IFtdKSB7XG4gICAgICAgIHJldHVybiBuZXcgQXJyYXkoTWF0aC5jZWlsKGxlbmd0aCAvIHN0ZXApKS5maWxsKDApLm1hcCgoXywgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAoaSArIHN0YXJ0KSAqIHN0ZXA7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogZGlzYWJsZXMuaW5kZXhPZih2YWx1ZSkgPiAtMVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRITVNQcm9wZXJ0eSgpIHtcbiAgICAgICAgdGhpcy5ob3VyID0gdGhpcy52YWx1ZS5nZXRIb3VycygpO1xuICAgICAgICB0aGlzLm1pbnV0ZSA9IHRoaXMudmFsdWUuZ2V0TWludXRlcygpO1xuICAgICAgICB0aGlzLnNlY29uZCA9IHRoaXMudmFsdWUuZ2V0U2Vjb25kcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRTY3JvbGxQb3NpdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuaG91ckxpc3RSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuaG91ckxpc3RSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAwO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1pbnV0ZUxpc3RSZWYpIHtcbiAgICAgICAgICAgIHRoaXMubWludXRlTGlzdFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc2Vjb25kTGlzdFJlZikge1xuICAgICAgICAgICAgdGhpcy5zZWNvbmRMaXN0UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gMDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluaXRpYWxTY3JvbGxQb3NpdGlvbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgcnVuU2Nyb2xsQW5pbWF0aW9uRnJhbWUoY29udGFpbmVyOiBIVE1MRWxlbWVudCwgdG86IG51bWJlciwgZHVyYXRpb246IG51bWJlciA9IHRoaXMuU0NST0xMX0RFRkFVTFRfRFVSQVRJT04pIHtcbiAgICAgICAgaWYgKGR1cmF0aW9uIDw9IDApIHtcbiAgICAgICAgICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgPSB0bztcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvZmZzZXQgPSB0byAtIGNvbnRhaW5lci5zY3JvbGxUb3A7XG4gICAgICAgIGNvbnN0IGZyYW1lID0gKG9mZnNldCAvIGR1cmF0aW9uKSAqIDEwO1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICByZXFBbmltRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgKz0gZnJhbWU7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5zY3JvbGxUb3AgPT09IHRvKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5ydW5TY3JvbGxBbmltYXRpb25GcmFtZShjb250YWluZXIsIHRvLCBkdXJhdGlvbiAtIDEwKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGF1dG9TY3JvbGwoZHVyYXRpb246IG51bWJlciA9IHRoaXMuU0NST0xMX0RFRkFVTFRfRFVSQVRJT04pIHtcbiAgICAgICAgaWYgKHRoaXMuaG91ckxpc3RSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG8oXG4gICAgICAgICAgICAgICAgdGhpcy5ob3VyTGlzdFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgIHRoaXMuaG91clJhbmdlLmZpbmRJbmRleChtID0+IG0udmFsdWUgPT09IHRoaXMuaG91ciksXG4gICAgICAgICAgICAgICAgZHVyYXRpb25cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubWludXRlTGlzdFJlZikge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxUbyhcbiAgICAgICAgICAgICAgICB0aGlzLm1pbnV0ZUxpc3RSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICB0aGlzLm1pbnV0ZVJhbmdlLmZpbmRJbmRleChtID0+IG0udmFsdWUgPT09IHRoaXMubWludXRlKSxcbiAgICAgICAgICAgICAgICBkdXJhdGlvblxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zZWNvbmRMaXN0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvKFxuICAgICAgICAgICAgICAgIHRoaXMuc2Vjb25kTGlzdFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgIHRoaXMuc2Vjb25kUmFuZ2UuZmluZEluZGV4KG0gPT4gbS52YWx1ZSA9PT0gdGhpcy5zZWNvbmQpLFxuICAgICAgICAgICAgICAgIGR1cmF0aW9uXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIC8vIOWFs+mXremdouadv+aXtuaciSAwLjJzIOeahOWKqOeUu++8jOaJgOS7peW7tui/nyAyMDBtcyDlho3ph43nva7mu5rliqjkvY3nva5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0U2Nyb2xsUG9zaXRpb24oKTtcbiAgICAgICAgfSwgMjAwKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWNvbnRlbnRcIj5cbiAgQGlmIChzaG93SG91ckNvbHVtbikge1xuICAgIDx1bCAjaG91ckxpc3RFbGVtZW50IGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29sdW1uIHt7IHByZWZpeENscyB9fS1ob3VyLWNvbHVtblwiPlxuICAgICAgQGZvciAodGltZSBvZiBob3VyUmFuZ2U7IHRyYWNrICRpbmRleDsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgPGxpXG4gICAgICAgICAgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tdGltZS1jb2x1bW4tY2VsbFwiXG4gICAgICAgICAgW2NsYXNzLnRoeS10aW1lLXBpY2tlci1wYW5lbC10aW1lLWNvbHVtbi1jZWxsLXNlbGVjdGVkXT1cImhvdXIgPT09IHRpbWUudmFsdWVcIlxuICAgICAgICAgIChjbGljayk9XCJwaWNrSG91cnModGltZSwgaSlcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLWNvbHVtbi1jZWxsLWlubmVyXCI+e3sgdGltZS52YWx1ZSB8IG51bWJlcjogJzIuMC0wJyB9fTwvc3Bhbj5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICA8L3VsPlxuICB9XG4gIEBpZiAoc2hvd01pbnV0ZUNvbHVtbikge1xuICAgIDx1bCAjbWludXRlTGlzdEVsZW1lbnQgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tdGltZS1jb2x1bW4ge3sgcHJlZml4Q2xzIH19LW1pbnV0ZS1jb2x1bW5cIj5cbiAgICAgIEBmb3IgKHRpbWUgb2YgbWludXRlUmFuZ2U7IHRyYWNrICRpbmRleDsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgPGxpXG4gICAgICAgICAgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tdGltZS1jb2x1bW4tY2VsbFwiXG4gICAgICAgICAgW2NsYXNzLnRoeS10aW1lLXBpY2tlci1wYW5lbC10aW1lLWNvbHVtbi1jZWxsLXNlbGVjdGVkXT1cIm1pbnV0ZSA9PT0gdGltZS52YWx1ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInBpY2tNaW51dGVzKHRpbWUsIGkpXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tdGltZS1jb2x1bW4tY2VsbC1pbm5lclwiPnt7IHRpbWUudmFsdWUgfCBudW1iZXI6ICcyLjAtMCcgfX08L3NwYW4+XG4gICAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgPC91bD5cbiAgfVxuICBAaWYgKHNob3dTZWNvbmRDb2x1bW4pIHtcbiAgICA8dWwgI3NlY29uZExpc3RFbGVtZW50IGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29sdW1uIHt7IHByZWZpeENscyB9fS1zZWNvbmQtY29sdW1uXCI+XG4gICAgICBAZm9yICh0aW1lIG9mIHNlY29uZFJhbmdlOyB0cmFjayAkaW5kZXg7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgIDxsaVxuICAgICAgICAgIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29sdW1uLWNlbGxcIlxuICAgICAgICAgIFtjbGFzcy50aHktdGltZS1waWNrZXItcGFuZWwtdGltZS1jb2x1bW4tY2VsbC1zZWxlY3RlZF09XCJzZWNvbmQgPT09IHRpbWUudmFsdWVcIlxuICAgICAgICAgIChjbGljayk9XCJwaWNrU2Vjb25kcyh0aW1lLCBpKVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29sdW1uLWNlbGwtaW5uZXJcIj57eyB0aW1lLnZhbHVlIHwgbnVtYmVyOiAnMi4wLTAnIH19PC9zcGFuPlxuICAgICAgICA8L2xpPlxuICAgICAgfVxuICAgIDwvdWw+XG4gIH1cbjwvZGl2PlxuXG5AaWYgKHRoeVNob3dPcGVyYXRpb25zKSB7XG4gIDxkaXYgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tYm90dG9tLW9wZXJhdGlvblwiPlxuICAgIEBpZiAodGh5U2hvd1NlbGVjdE5vdykge1xuICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtbm93XCIgKGNsaWNrKT1cInNlbGVjdE5vdygpXCI+5q2k5Yi7PC9hPlxuICAgIH1cbiAgICA8YnV0dG9uIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29uZmlybVwiIHRoeUJ1dHRvbj1cInByaW1hcnlcIiB0aHlTaXplPVwieHNcIiBjbGFzcz1cImNvbmZpcm1cIiAoY2xpY2spPVwiY29uZmlybVBpY2tUaW1lKClcIj7noa7lrpo8L2J1dHRvbj5cbiAgPC9kaXY+XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
|
|
2
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild, inject } from '@angular/core';
|
|
3
3
|
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
|
4
4
|
import { isValid } from 'date-fns';
|
|
5
5
|
import { getFlexiblePositions } from 'ngx-tethys/core';
|
|
@@ -16,31 +16,9 @@ import * as i1 from "@angular/forms";
|
|
|
16
16
|
* @name thy-time-picker
|
|
17
17
|
*/
|
|
18
18
|
export class ThyTimePicker {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
* @default HH:mm:ss
|
|
23
|
-
*/
|
|
24
|
-
set thyFormat(value) {
|
|
25
|
-
this.format = value || 'HH:mm:ss';
|
|
26
|
-
if (this.value && isValid(this.value)) {
|
|
27
|
-
this.showText = new TinyDate(this.value).format(this.format);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* 禁用
|
|
32
|
-
* @type boolean
|
|
33
|
-
* @default false
|
|
34
|
-
*/
|
|
35
|
-
set thyDisabled(value) {
|
|
36
|
-
this.disabled = value;
|
|
37
|
-
}
|
|
38
|
-
get thyDisabled() {
|
|
39
|
-
return this.disabled;
|
|
40
|
-
}
|
|
41
|
-
constructor(cdr, elementRef) {
|
|
42
|
-
this.cdr = cdr;
|
|
43
|
-
this.elementRef = elementRef;
|
|
19
|
+
constructor() {
|
|
20
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
21
|
+
this.elementRef = inject(ElementRef);
|
|
44
22
|
/**
|
|
45
23
|
* 输入框大小
|
|
46
24
|
* @type 'xs' | 'sm' | 'md' | 'lg' | 'default'
|
|
@@ -95,6 +73,28 @@ export class ThyTimePicker {
|
|
|
95
73
|
this.onValueChangeFn = () => void 0;
|
|
96
74
|
this.onTouchedFn = () => void 0;
|
|
97
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* 展示的日期格式,支持 'HH:mm:ss' | 'HH:mm' | 'mm:ss'
|
|
78
|
+
* @type string
|
|
79
|
+
* @default HH:mm:ss
|
|
80
|
+
*/
|
|
81
|
+
set thyFormat(value) {
|
|
82
|
+
this.format = value || 'HH:mm:ss';
|
|
83
|
+
if (this.value && isValid(this.value)) {
|
|
84
|
+
this.showText = new TinyDate(this.value).format(this.format);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* 禁用
|
|
89
|
+
* @type boolean
|
|
90
|
+
* @default false
|
|
91
|
+
*/
|
|
92
|
+
set thyDisabled(value) {
|
|
93
|
+
this.disabled = value;
|
|
94
|
+
}
|
|
95
|
+
get thyDisabled() {
|
|
96
|
+
return this.disabled;
|
|
97
|
+
}
|
|
98
98
|
ngOnInit() { }
|
|
99
99
|
ngAfterViewInit() {
|
|
100
100
|
this.overlayPositions = getFlexiblePositions(this.thyPlacement, 4);
|
|
@@ -292,7 +292,7 @@ export class ThyTimePicker {
|
|
|
292
292
|
disabledUserOperation() {
|
|
293
293
|
return this.disabled || this.thyReadonly;
|
|
294
294
|
}
|
|
295
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimePicker, deps: [
|
|
295
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimePicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
296
296
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyTimePicker, isStandalone: true, selector: "thy-time-picker", inputs: { thySize: "thySize", thyPlaceholder: "thyPlaceholder", thyPlacement: "thyPlacement", thyFormat: "thyFormat", thyHourStep: "thyHourStep", thyMinuteStep: "thyMinuteStep", thySecondStep: "thySecondStep", thyPopupClass: "thyPopupClass", thyBackdrop: ["thyBackdrop", "thyBackdrop", coerceBooleanProperty], thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty], thyReadonly: ["thyReadonly", "thyReadonly", coerceBooleanProperty], thyShowSelectNow: ["thyShowSelectNow", "thyShowSelectNow", coerceBooleanProperty], thyAllowClear: ["thyAllowClear", "thyAllowClear", coerceBooleanProperty] }, outputs: { thyOpenChange: "thyOpenChange" }, host: { properties: { "class.thy-time-picker-disabled": "disabled", "class.thy-time-picker-readonly": "thyReadonly" }, classAttribute: "thy-time-picker" }, providers: [
|
|
297
297
|
{
|
|
298
298
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -314,7 +314,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
314
314
|
'[class.thy-time-picker-disabled]': `disabled`,
|
|
315
315
|
'[class.thy-time-picker-readonly]': `thyReadonly`
|
|
316
316
|
}, standalone: true, imports: [CdkOverlayOrigin, ThyInputDirective, FormsModule, NgTemplateOutlet, ThyIcon, NgClass, CdkConnectedOverlay, ThyTimePanel], animations: [scaleXMotion, scaleYMotion, scaleMotion], template: "<span cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" (click)=\"onInputPickerClick()\" class=\"{{ prefixCls }}-wrapper\">\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control {{ prefixCls }}-input\"\n [class.thy-input-disabled]=\"disabled\"\n [class.thy-input-readonly]=\"thyReadonly\"\n [class.thy-time-picker-panel-opened]=\"openState\"\n [(ngModel)]=\"showText\"\n [thySize]=\"thySize\"\n [disabled]=\"disabled\"\n [readonly]=\"thyReadonly\"\n [placeholder]=\"thyPlaceholder\"\n (blur)=\"onInputPickerBlur()\"\n (keyup.enter)=\"onKeyupEnter()\"\n (keyup.escape)=\"onKeyupEsc()\"\n (ngModelChange)=\"onCustomizeInput($event)\" />\n <ng-container *ngTemplateOutlet=\"rightIcon\"></ng-container>\n </ng-container>\n</span>\n\n<ng-template #rightIcon>\n @if (!disabled && thyAllowClear && !thyReadonly && showText) {\n <span class=\"{{ prefixCls }}-clear\">\n <thy-icon thyIconName=\"close-circle-bold-fill\" (click)=\"onClearTime($event)\" ngClass=\"remove-link remove-link-{{ thySize }}\"></thy-icon>\n </span>\n }\n <span class=\"{{ prefixCls }}-icon\">\n <thy-icon [thyIconName]=\"'clock-circle-moment'\" ngClass=\"remove-link-{{ thySize }}\"></thy-icon>\n </span>\n</ng-template>\n\n<!-- Overlay -->\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"openState\"\n [cdkConnectedOverlayHasBackdrop]=\"thyBackdrop\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n cdkConnectedOverlayTransformOriginOn=\".thy-time-picker-container\"\n (positionChange)=\"onPositionChange($event)\"\n (backdropClick)=\"onClickBackdrop()\"\n (overlayOutsideClick)=\"onOutsideClick($event)\"\n (detach)=\"onOverlayDetach()\"\n (attach)=\"onOverlayAttach()\">\n <div\n #overlayContainer\n style=\"position: relative\"\n [@scaleXMotion]=\"thyPlacement === 'left' || thyPlacement === 'right' ? 'enter' : 'void'\"\n [@scaleYMotion]=\"thyPlacement === 'top' || thyPlacement === 'bottom' ? 'enter' : 'void'\"\n [@scaleMotion]=\"\n thyPlacement !== 'left' && thyPlacement !== 'right' && thyPlacement !== 'top' && thyPlacement !== 'bottom' ? 'enter' : 'void'\n \"\n class=\"thy-time-picker-container\">\n <!-- Compatible for overlay that not support offset dynamically and immediately -->\n <thy-time-picker-panel\n [ngClass]=\"thyPopupClass\"\n [(ngModel)]=\"value\"\n [thyFormat]=\"format\"\n [thyHourStep]=\"thyHourStep\"\n [thyMinuteStep]=\"thyMinuteStep\"\n [thySecondStep]=\"thySecondStep\"\n [thyShowSelectNow]=\"thyShowSelectNow\"\n (ngModelChange)=\"onPickTimeConfirm($event)\"\n (thyPickChange)=\"onPickTime($event)\"\n (thyClosePanel)=\"closeOverlay()\"></thy-time-picker-panel>\n </div>\n</ng-template>\n" }]
|
|
317
|
-
}],
|
|
317
|
+
}], propDecorators: { cdkConnectedOverlay: [{
|
|
318
318
|
type: ViewChild,
|
|
319
319
|
args: [CdkConnectedOverlay, { static: true }]
|
|
320
320
|
}], origin: [{
|
|
@@ -360,4 +360,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
360
360
|
}], thyOpenChange: [{
|
|
361
361
|
type: Output
|
|
362
362
|
}] } });
|
|
363
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90aW1lLXBpY2tlci90aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxvQkFBb0IsRUFBZ0IsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUkxRTs7O0dBR0c7QUFxQkgsTUFBTSxPQUFPLGFBQWE7SUEyQnRCOzs7O09BSUc7SUFDSCxJQUFh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QUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFNdkMsT0FBTztzQkFBZixLQUFLO2dCQU1HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBTUcsWUFBWTtzQkFBcEIsS0FBSztnQkFPTyxTQUFTO3NCQUFyQixLQUFLO2dCQVdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBTUcsYUFBYTtzQkFBckIsS0FBSztnQkFNRyxhQUFhO3NCQUFyQixLQUFLO2dCQU1HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBT3VDLFdBQVc7c0JBQXZELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBT00sV0FBVztzQkFBM0QsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFhRSxXQUFXO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQU1FLGdCQUFnQjtzQkFBNUQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFNRSxhQUFhO3NCQUF6RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQU1qQyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrQ29ubmVjdGVkT3ZlcmxheSwgQ2RrT3ZlcmxheU9yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpc1ZhbGlkIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgZ2V0RmxleGlibGVQb3NpdGlvbnMsIFRoeVBsYWNlbWVudCB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBUaW55RGF0ZSwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IFRoeVRpbWVQYW5lbCB9IGZyb20gJy4vdGltZS1waWNrZXItcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUaHlJbnB1dERpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvaW5wdXQnO1xuaW1wb3J0IHsgc2NhbGVNb3Rpb24sIHNjYWxlWE1vdGlvbiwgc2NhbGVZTW90aW9uIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcblxuZXhwb3J0IHR5cGUgVGltZVBpY2tlclNpemUgPSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ2RlZmF1bHQnO1xuXG4vKipcbiAqIOaXtumXtOmAieaLqee7hOS7tlxuICogQG5hbWUgdGh5LXRpbWUtcGlja2VyXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXRpbWUtcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5VGltZVBpY2tlcilcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS10aW1lLXBpY2tlcicsXG4gICAgICAgICdbY2xhc3MudGh5LXRpbWUtcGlja2VyLWRpc2FibGVkXSc6IGBkaXNhYmxlZGAsXG4gICAgICAgICdbY2xhc3MudGh5LXRpbWUtcGlja2VyLXJlYWRvbmx5XSc6IGB0aHlSZWFkb25seWBcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0Nka092ZXJsYXlPcmlnaW4sIFRoeUlucHV0RGlyZWN0aXZlLCBGb3Jtc01vZHVsZSwgTmdUZW1wbGF0ZU91dGxldCwgVGh5SWNvbiwgTmdDbGFzcywgQ2RrQ29ubmVjdGVkT3ZlcmxheSwgVGh5VGltZVBhbmVsXSxcbiAgICBhbmltYXRpb25zOiBbc2NhbGVYTW90aW9uLCBzY2FsZVlNb3Rpb24sIHNjYWxlTW90aW9uXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlUaW1lUGlja2VyIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgQFZpZXdDaGlsZChDZGtDb25uZWN0ZWRPdmVybGF5LCB7IHN0YXRpYzogdHJ1ZSB9KSBjZGtDb25uZWN0ZWRPdmVybGF5OiBDZGtDb25uZWN0ZWRPdmVybGF5O1xuXG4gICAgQFZpZXdDaGlsZCgnb3JpZ2luJywgeyBzdGF0aWM6IHRydWUgfSkgb3JpZ2luOiBDZGtPdmVybGF5T3JpZ2luO1xuXG4gICAgQFZpZXdDaGlsZCgncGlja2VySW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ292ZXJsYXlDb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgb3ZlcmxheUNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiDovpPlhaXmoYblpKflsI9cbiAgICAgKiBAdHlwZSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ2RlZmF1bHQnXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U2l6ZTogVGltZVBpY2tlclNpemUgPSAnZGVmYXVsdCc7XG5cbiAgICAvKipcbiAgICAgKiDovpPlhaXmoYbmj5DnpLrmloflrZdcbiAgICAgKiBAdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQbGFjZWhvbGRlcjogc3RyaW5nID0gJ+mAieaLqeaXtumXtCc7XG5cbiAgICAvKipcbiAgICAgKiDlvLnlh7rkvY3nva5cbiAgICAgKiBAdHlwZSAndG9wJyB8ICd0b3BMZWZ0J3wgJ3RvcFJpZ2h0JyB8ICdib3R0b20nIHwgJ2JvdHRvbUxlZnQnIHwgJ2JvdHRvbVJpZ2h0JyB8ICdsZWZ0JyB8ICdsZWZ0VG9wJyB8ICdsZWZ0Qm90dG9tJyB8ICdyaWdodCcgfCAncmlnaHRUb3AnIHwgJ3JpZ2h0Qm90dG9tJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVBsYWNlbWVudDogVGh5UGxhY2VtZW50ID0gJ2JvdHRvbUxlZnQnO1xuXG4gICAgLyoqXG4gICAgICog5bGV56S655qE5pel5pyf5qC85byP77yM5pSv5oyBICdISDptbTpzcycgfCAnSEg6bW0nIHwgJ21tOnNzJ1xuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqIEBkZWZhdWx0IEhIOm1tOnNzXG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeUZvcm1hdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZm9ybWF0ID0gdmFsdWUgfHwgJ0hIOm1tOnNzJztcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgJiYgaXNWYWxpZCh0aGlzLnZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5zaG93VGV4dCA9IG5ldyBUaW55RGF0ZSh0aGlzLnZhbHVlKS5mb3JtYXQodGhpcy5mb3JtYXQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bCP5pe26Ze06ZqU5q2l6ZW/XG4gICAgICogQHR5cGUgbnVtYmVyXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5SG91clN0ZXA6IG51bWJlciA9IDE7XG5cbiAgICAvKipcbiAgICAgKiDliIbpkp/pl7TpmpTmraXplb9cbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlNaW51dGVTdGVwOiBudW1iZXIgPSAxO1xuXG4gICAgLyoqXG4gICAgICog56eS6Ze06ZqU5q2l6ZW/XG4gICAgICogQHR5cGUgbnVtYmVyXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U2Vjb25kU3RlcDogbnVtYmVyID0gMTtcblxuICAgIC8qKlxuICAgICAqIOW8ueWHuuWxgue7hOS7tiBjbGFzc1xuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVBvcHVwQ2xhc3M6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuaYvuekuuW8ueWHuuWxgumBrue9qVxuICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUJhY2tkcm9wOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog56aB55SoXG4gICAgICogQHR5cGUgYm9vbGVhblxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgc2V0IHRoeURpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgdGh5RGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWPquivu1xuICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeVJlYWRvbmx5OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5bGV56S66YCJ5oup5q2k5Yi7XG4gICAgICogQHR5cGUgYm9vbGVhblxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeVNob3dTZWxlY3ROb3cgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog5Y+v5riF56m65YC8XG4gICAgICogQHR5cGUgYm9vbGVhblxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUFsbG93Q2xlYXIgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog5omT5byAL+WFs+mXreW8ueeql+S6i+S7tlxuICAgICAqIEB0eXBlIEV2ZW50RW1pdHRlcjxib29sZWFuPlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlPcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgcHJlZml4Q2xzID0gJ3RoeS10aW1lLXBpY2tlcic7XG5cbiAgICBvdmVybGF5UG9zaXRpb25zID0gZ2V0RmxleGlibGVQb3NpdGlvbnModGhpcy50aHlQbGFjZW1lbnQsIDQpO1xuXG4gICAgZm9ybWF0OiBzdHJpbmcgPSAnSEg6bW06c3MnO1xuXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBzaG93VGV4dDogc3RyaW5nID0gJyc7XG5cbiAgICBvcGVuU3RhdGU6IGJvb2xlYW47XG5cbiAgICB2YWx1ZTogRGF0ZSA9IG5ldyBUaW55RGF0ZSgpLnNldEhtcygwLCAwLCAwKS5uYXRpdmVEYXRlO1xuXG4gICAgb3JpZ2luVmFsdWU6IERhdGU7XG5cbiAgICBrZWVwRm9jdXM6IGJvb2xlYW47XG5cbiAgICBwcml2YXRlIGlzRGlzYWJsZWRGaXJzdENoYW5nZSA9IHRydWU7XG5cbiAgICBvblZhbHVlQ2hhbmdlRm46ICh2YWw6IG51bWJlciB8IERhdGUpID0+IHZvaWQgPSAoKSA9PiB2b2lkIDA7XG5cbiAgICBvblRvdWNoZWRGbjogKCkgPT4gdm9pZCA9ICgpID0+IHZvaWQgMDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICAgICkge31cblxuICAgIG5nT25Jbml0KCkge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UG9zaXRpb25zID0gZ2V0RmxleGlibGVQb3NpdGlvbnModGhpcy50aHlQbGFjZW1lbnQsIDQpO1xuICAgIH1cblxuICAgIG9uSW5wdXRQaWNrZXJDbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWRVc2VyT3BlcmF0aW9uKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wZW5PdmVybGF5KCk7XG4gICAgfVxuXG4gICAgb25JbnB1dFBpY2tlckJsdXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmtlZXBGb2N1cykge1xuICAgICAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMub3BlblN0YXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZU92ZXJsYXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUGlja1RpbWUodmFsdWU6IERhdGUpIHtcbiAgICAgICAgdGhpcy5vcmlnaW5WYWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gICAgfVxuXG4gICAgb25QaWNrVGltZUNvbmZpcm0odmFsdWU6IERhdGUpIHtcbiAgICAgICAgdGhpcy5vcmlnaW5WYWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5jb25maXJtVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIG9uQ2xlYXJUaW1lKGU6IEV2ZW50KSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMub3JpZ2luVmFsdWUgPSBudWxsO1xuICAgICAgICB0aGlzLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIG9uQ3VzdG9taXplSW5wdXQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLmZvcm1hdElucHV0VmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgb25LZXl1cEVudGVyKCkge1xuICAgICAgICB0aGlzLmNvbmZpcm1WYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5jbG9zZU92ZXJsYXkoKTtcbiAgICB9XG5cbiAgICBvbktleXVwRXNjKCkge1xuICAgICAgICB0aGlzLmNsb3NlT3ZlcmxheSgpO1xuICAgIH1cblxuICAgIG9uUG9zaXRpb25DaGFuZ2UoZTogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG9uQ2xpY2tCYWNrZHJvcCgpIHtcbiAgICAgICAgdGhpcy5jbG9zZU92ZXJsYXkoKTtcbiAgICB9XG5cbiAgICBvbk92ZXJsYXlEZXRhY2goKSB7XG4gICAgICAgIHRoaXMuY2xvc2VPdmVybGF5KCk7XG4gICAgfVxuXG4gICAgb25PdXRzaWRlQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMub3BlblN0YXRlICYmXG4gICAgICAgICAgICAhdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJlxuICAgICAgICAgICAgIXRoaXMub3ZlcmxheUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VPdmVybGF5KCk7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk92ZXJsYXlBdHRhY2goKSB7XG4gICAgICAgIGlmICh0aGlzLmNka0Nvbm5lY3RlZE92ZXJsYXkgJiYgdGhpcy5jZGtDb25uZWN0ZWRPdmVybGF5Lm92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuY2RrQ29ubmVjdGVkT3ZlcmxheS5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvcGVuT3ZlcmxheSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWRVc2VyT3BlcmF0aW9uKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmtlZXBGb2N1cyA9IHRydWU7XG4gICAgICAgIHRoaXMub3BlblN0YXRlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy50aHlPcGVuQ2hhbmdlLmVtaXQodGhpcy5vcGVuU3RhdGUpO1xuICAgIH1cblxuICAgIGNsb3NlT3ZlcmxheSgpIHtcbiAgICAgICAgaWYgKHRoaXMub3BlblN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLmtlZXBGb2N1cyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5vcGVuU3RhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuYmx1cigpO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2hvd1RleHQ/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy52YWxpZGF0ZUN1c3RvbWl6ZUlucHV0KHRoaXMuc2hvd1RleHQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5vcmlnaW5WYWx1ZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93VGV4dCA9IG5ldyBUaW55RGF0ZSh0aGlzLnZhbHVlKS5mb3JtYXQodGhpcy5mb3JtYXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRoeUFsbG93Q2xlYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLm9yaWdpblZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnRoeU9wZW5DaGFuZ2UuZW1pdCh0aGlzLm9wZW5TdGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1cygpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYmx1cigpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiBpc1ZhbGlkKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5WYWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUobmV3IFRpbnlEYXRlKHZhbHVlKS5uYXRpdmVEYXRlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBuZXcgVGlueURhdGUoKS5zZXRIbXMoMCwgMCwgMCkubmF0aXZlRGF0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VGbiA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9ICh0aGlzLmlzRGlzYWJsZWRGaXJzdENoYW5nZSAmJiB0aGlzLnRoeURpc2FibGVkKSB8fCBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLmlzRGlzYWJsZWRGaXJzdENoYW5nZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWUodmFsdWU6IERhdGUsIGZvcm1hdFRleHQ6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiBpc1ZhbGlkKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChmb3JtYXRUZXh0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93VGV4dCA9IG5ldyBUaW55RGF0ZSh0aGlzLnZhbHVlKS5mb3JtYXQodGhpcy5mb3JtYXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnNob3dUZXh0ID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb25maXJtVmFsdWUodmFsdWU6IERhdGUpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW1pdFZhbHVlKCkge1xuICAgICAgICBpZiAodGhpcy5vblZhbHVlQ2hhbmdlRm4pIHtcbiAgICAgICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZUZuKHRoaXMudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9uVG91Y2hlZEZuKSB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZEZuKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZvcm1hdElucHV0VmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMub3BlblN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5PdmVybGF5KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnZhbGlkYXRlQ3VzdG9taXplSW5wdXQodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVyID0gdmFsdWUuc3BsaXQoJzonKTtcbiAgICAgICAgICAgICAgICBjb25zdCBob3VyID0gZm9ybWF0dGVyWzBdIHx8IDA7XG4gICAgICAgICAgICAgICAgY29uc3QgbWludXRlID0gZm9ybWF0dGVyWzFdIHx8IDA7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2Vjb25kID0gZm9ybWF0dGVyWzJdIHx8IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZShuZXcgVGlueURhdGUoKS5zZXRIbXMoK2hvdXIsICttaW51dGUsICtzZWNvbmQpLm5hdGl2ZURhdGUsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpblZhbHVlID0gbmV3IERhdGUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoeUFsbG93Q2xlYXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpblZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKG51bGwpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBuZXcgRGF0ZSh0aGlzLm9yaWdpblZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dUZXh0ID0gYGA7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlQ3VzdG9taXplSW5wdXQodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgdmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IHRoaXMuZm9ybWF0Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbGlkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvcm1hdFJ1bGUgPSB0aGlzLmZvcm1hdC5zcGxpdCgnOicpO1xuICAgICAgICBjb25zdCBmb3JtYXR0ZXIgPSB2YWx1ZS5zcGxpdCgnOicpO1xuICAgICAgICB2YWxpZCA9ICFmb3JtYXRSdWxlXG4gICAgICAgICAgICAubWFwKChtLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhZm9ybWF0dGVyW2ldO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5pbmNsdWRlcyhmYWxzZSk7XG4gICAgICAgIHJldHVybiB2YWxpZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc2FibGVkVXNlck9wZXJhdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy50aHlSZWFkb25seTtcbiAgICB9XG59XG4iLCI8c3BhbiBjZGtPdmVybGF5T3JpZ2luICNvcmlnaW49XCJjZGtPdmVybGF5T3JpZ2luXCIgKGNsaWNrKT1cIm9uSW5wdXRQaWNrZXJDbGljaygpXCIgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0td3JhcHBlclwiPlxuICA8bmctY29udGFpbmVyPlxuICAgIDxpbnB1dFxuICAgICAgI3BpY2tlcklucHV0XG4gICAgICB0aHlJbnB1dFxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wge3sgcHJlZml4Q2xzIH19LWlucHV0XCJcbiAgICAgIFtjbGFzcy50aHktaW5wdXQtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2NsYXNzLnRoeS1pbnB1dC1yZWFkb25seV09XCJ0aHlSZWFkb25seVwiXG4gICAgICBbY2xhc3MudGh5LXRpbWUtcGlja2VyLXBhbmVsLW9wZW5lZF09XCJvcGVuU3RhdGVcIlxuICAgICAgWyhuZ01vZGVsKV09XCJzaG93VGV4dFwiXG4gICAgICBbdGh5U2l6ZV09XCJ0aHlTaXplXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmVhZG9ubHldPVwidGh5UmVhZG9ubHlcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInRoeVBsYWNlaG9sZGVyXCJcbiAgICAgIChibHVyKT1cIm9uSW5wdXRQaWNrZXJCbHVyKClcIlxuICAgICAgKGtleXVwLmVudGVyKT1cIm9uS2V5dXBFbnRlcigpXCJcbiAgICAgIChrZXl1cC5lc2NhcGUpPVwib25LZXl1cEVzYygpXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ3VzdG9taXplSW5wdXQoJGV2ZW50KVwiIC8+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJpZ2h0SWNvblwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvc3Bhbj5cblxuPG5nLXRlbXBsYXRlICNyaWdodEljb24+XG4gIEBpZiAoIWRpc2FibGVkICYmIHRoeUFsbG93Q2xlYXIgJiYgIXRoeVJlYWRvbmx5ICYmIHNob3dUZXh0KSB7XG4gICAgPHNwYW4gY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tY2xlYXJcIj5cbiAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImNsb3NlLWNpcmNsZS1ib2xkLWZpbGxcIiAoY2xpY2spPVwib25DbGVhclRpbWUoJGV2ZW50KVwiIG5nQ2xhc3M9XCJyZW1vdmUtbGluayByZW1vdmUtbGluay17eyB0aHlTaXplIH19XCI+PC90aHktaWNvbj5cbiAgICA8L3NwYW4+XG4gIH1cbiAgPHNwYW4gY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0taWNvblwiPlxuICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiJ2Nsb2NrLWNpcmNsZS1tb21lbnQnXCIgbmdDbGFzcz1cInJlbW92ZS1saW5rLXt7IHRoeVNpemUgfX1cIj48L3RoeS1pY29uPlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIE92ZXJsYXkgLS0+XG48bmctdGVtcGxhdGVcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJvcmlnaW5cIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwib3BlblN0YXRlXCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcF09XCJ0aHlCYWNrZHJvcFwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25zXT1cIm92ZXJsYXlQb3NpdGlvbnNcIlxuICBjZGtDb25uZWN0ZWRPdmVybGF5QmFja2Ryb3BDbGFzcz1cImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCJcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVRyYW5zZm9ybU9yaWdpbk9uPVwiLnRoeS10aW1lLXBpY2tlci1jb250YWluZXJcIlxuICAocG9zaXRpb25DaGFuZ2UpPVwib25Qb3NpdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgKGJhY2tkcm9wQ2xpY2spPVwib25DbGlja0JhY2tkcm9wKClcIlxuICAob3ZlcmxheU91dHNpZGVDbGljayk9XCJvbk91dHNpZGVDbGljaygkZXZlbnQpXCJcbiAgKGRldGFjaCk9XCJvbk92ZXJsYXlEZXRhY2goKVwiXG4gIChhdHRhY2gpPVwib25PdmVybGF5QXR0YWNoKClcIj5cbiAgPGRpdlxuICAgICNvdmVybGF5Q29udGFpbmVyXG4gICAgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIlxuICAgIFtAc2NhbGVYTW90aW9uXT1cInRoeVBsYWNlbWVudCA9PT0gJ2xlZnQnIHx8IHRoeVBsYWNlbWVudCA9PT0gJ3JpZ2h0JyA/ICdlbnRlcicgOiAndm9pZCdcIlxuICAgIFtAc2NhbGVZTW90aW9uXT1cInRoeVBsYWNlbWVudCA9PT0gJ3RvcCcgfHwgdGh5UGxhY2VtZW50ID09PSAnYm90dG9tJyA/ICdlbnRlcicgOiAndm9pZCdcIlxuICAgIFtAc2NhbGVNb3Rpb25dPVwiXG4gICAgICB0aHlQbGFjZW1lbnQgIT09ICdsZWZ0JyAmJiB0aHlQbGFjZW1lbnQgIT09ICdyaWdodCcgJiYgdGh5UGxhY2VtZW50ICE9PSAndG9wJyAmJiB0aHlQbGFjZW1lbnQgIT09ICdib3R0b20nID8gJ2VudGVyJyA6ICd2b2lkJ1xuICAgIFwiXG4gICAgY2xhc3M9XCJ0aHktdGltZS1waWNrZXItY29udGFpbmVyXCI+XG4gICAgPCEtLSBDb21wYXRpYmxlIGZvciBvdmVybGF5IHRoYXQgbm90IHN1cHBvcnQgb2Zmc2V0IGR5bmFtaWNhbGx5IGFuZCBpbW1lZGlhdGVseSAtLT5cbiAgICA8dGh5LXRpbWUtcGlja2VyLXBhbmVsXG4gICAgICBbbmdDbGFzc109XCJ0aHlQb3B1cENsYXNzXCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgW3RoeUZvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgW3RoeUhvdXJTdGVwXT1cInRoeUhvdXJTdGVwXCJcbiAgICAgIFt0aHlNaW51dGVTdGVwXT1cInRoeU1pbnV0ZVN0ZXBcIlxuICAgICAgW3RoeVNlY29uZFN0ZXBdPVwidGh5U2Vjb25kU3RlcFwiXG4gICAgICBbdGh5U2hvd1NlbGVjdE5vd109XCJ0aHlTaG93U2VsZWN0Tm93XCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uUGlja1RpbWVDb25maXJtKCRldmVudClcIlxuICAgICAgKHRoeVBpY2tDaGFuZ2UpPVwib25QaWNrVGltZSgkZXZlbnQpXCJcbiAgICAodGh5Q2xvc2VQYW5lbCk9XCJjbG9zZU92ZXJsYXkoKVwiPjwvdGh5LXRpbWUtcGlja2VyLXBhbmVsPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
363
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90aW1lLXBpY2tlci90aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsb0JBQW9CLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFJMUU7OztHQUdHO0FBcUJILE1BQU0sT0FBTyxhQUFhO0lBcEIxQjtRQXFCWSxR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QkFBZ0I7c0JBQWpFLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQU12QyxPQUFPO3NCQUFmLEtBQUs7Z0JBTUcsY0FBYztzQkFBdEIsS0FBSztnQkFNRyxZQUFZO3NCQUFwQixLQUFLO2dCQU9PLFNBQVM7c0JBQXJCLEtBQUs7Z0JBV0csV0FBVztzQkFBbkIsS0FBSztnQkFNRyxhQUFhO3NCQUFyQixLQUFLO2dCQU1HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBTUcsYUFBYTtzQkFBckIsS0FBSztnQkFPdUMsV0FBVztzQkFBdkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFPTSxXQUFXO3NCQUEzRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQWFFLFdBQVc7c0JBQXZELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBTUUsZ0JBQWdCO3NCQUE1RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQU1FLGFBQWE7c0JBQXpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBTWpDLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtDb25uZWN0ZWRPdmVybGF5LCBDZGtPdmVybGF5T3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpc1ZhbGlkIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgZ2V0RmxleGlibGVQb3NpdGlvbnMsIFRoeVBsYWNlbWVudCB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBUaW55RGF0ZSwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IFRoeVRpbWVQYW5lbCB9IGZyb20gJy4vdGltZS1waWNrZXItcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUaHlJbnB1dERpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvaW5wdXQnO1xuaW1wb3J0IHsgc2NhbGVNb3Rpb24sIHNjYWxlWE1vdGlvbiwgc2NhbGVZTW90aW9uIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcblxuZXhwb3J0IHR5cGUgVGltZVBpY2tlclNpemUgPSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ2RlZmF1bHQnO1xuXG4vKipcbiAqIOaXtumXtOmAieaLqee7hOS7tlxuICogQG5hbWUgdGh5LXRpbWUtcGlja2VyXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXRpbWUtcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5VGltZVBpY2tlcilcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS10aW1lLXBpY2tlcicsXG4gICAgICAgICdbY2xhc3MudGh5LXRpbWUtcGlja2VyLWRpc2FibGVkXSc6IGBkaXNhYmxlZGAsXG4gICAgICAgICdbY2xhc3MudGh5LXRpbWUtcGlja2VyLXJlYWRvbmx5XSc6IGB0aHlSZWFkb25seWBcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0Nka092ZXJsYXlPcmlnaW4sIFRoeUlucHV0RGlyZWN0aXZlLCBGb3Jtc01vZHVsZSwgTmdUZW1wbGF0ZU91dGxldCwgVGh5SWNvbiwgTmdDbGFzcywgQ2RrQ29ubmVjdGVkT3ZlcmxheSwgVGh5VGltZVBhbmVsXSxcbiAgICBhbmltYXRpb25zOiBbc2NhbGVYTW90aW9uLCBzY2FsZVlNb3Rpb24sIHNjYWxlTW90aW9uXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlUaW1lUGlja2VyIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICAgIEBWaWV3Q2hpbGQoQ2RrQ29ubmVjdGVkT3ZlcmxheSwgeyBzdGF0aWM6IHRydWUgfSkgY2RrQ29ubmVjdGVkT3ZlcmxheTogQ2RrQ29ubmVjdGVkT3ZlcmxheTtcblxuICAgIEBWaWV3Q2hpbGQoJ29yaWdpbicsIHsgc3RhdGljOiB0cnVlIH0pIG9yaWdpbjogQ2RrT3ZlcmxheU9yaWdpbjtcblxuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcklucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdvdmVybGF5Q29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIG92ZXJsYXlDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICog6L6T5YWl5qGG5aSn5bCPXG4gICAgICogQHR5cGUgJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICdkZWZhdWx0J1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVNpemU6IFRpbWVQaWNrZXJTaXplID0gJ2RlZmF1bHQnO1xuXG4gICAgLyoqXG4gICAgICog6L6T5YWl5qGG5o+Q56S65paH5a2XXG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UGxhY2Vob2xkZXI6IHN0cmluZyA9ICfpgInmi6nml7bpl7QnO1xuXG4gICAgLyoqXG4gICAgICog5by55Ye65L2N572uXG4gICAgICogQHR5cGUgJ3RvcCcgfCAndG9wTGVmdCd8ICd0b3BSaWdodCcgfCAnYm90dG9tJyB8ICdib3R0b21MZWZ0JyB8ICdib3R0b21SaWdodCcgfCAnbGVmdCcgfCAnbGVmdFRvcCcgfCAnbGVmdEJvdHRvbScgfCAncmlnaHQnIHwgJ3JpZ2h0VG9wJyB8ICdyaWdodEJvdHRvbSdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQbGFjZW1lbnQ6IFRoeVBsYWNlbWVudCA9ICdib3R0b21MZWZ0JztcblxuICAgIC8qKlxuICAgICAqIOWxleekuueahOaXpeacn+agvOW8j++8jOaUr+aMgSAnSEg6bW06c3MnIHwgJ0hIOm1tJyB8ICdtbTpzcydcbiAgICAgKiBAdHlwZSBzdHJpbmdcbiAgICAgKiBAZGVmYXVsdCBISDptbTpzc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlGb3JtYXQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLmZvcm1hdCA9IHZhbHVlIHx8ICdISDptbTpzcyc7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlICYmIGlzVmFsaWQodGhpcy52YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1RleHQgPSBuZXcgVGlueURhdGUodGhpcy52YWx1ZSkuZm9ybWF0KHRoaXMuZm9ybWF0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWwj+aXtumXtOmalOatpemVv1xuICAgICAqIEB0eXBlIG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUhvdXJTdGVwOiBudW1iZXIgPSAxO1xuXG4gICAgLyoqXG4gICAgICog5YiG6ZKf6Ze06ZqU5q2l6ZW/XG4gICAgICogQHR5cGUgbnVtYmVyXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5TWludXRlU3RlcDogbnVtYmVyID0gMTtcblxuICAgIC8qKlxuICAgICAqIOenkumXtOmalOatpemVv1xuICAgICAqIEB0eXBlIG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVNlY29uZFN0ZXA6IG51bWJlciA9IDE7XG5cbiAgICAvKipcbiAgICAgKiDlvLnlh7rlsYLnu4Tku7YgY2xhc3NcbiAgICAgKiBAdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQb3B1cENsYXNzOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbmmL7npLrlvLnlh7rlsYLpga7nvalcbiAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlCYWNrZHJvcDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOemgeeUqFxuICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHNldCB0aHlEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IHRoeURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlj6ror7tcbiAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlSZWFkb25seTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOWxleekuumAieaLqeatpOWIu1xuICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlTaG93U2VsZWN0Tm93ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOWPr+a4heepuuWAvFxuICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlBbGxvd0NsZWFyID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOaJk+W8gC/lhbPpl63lvLnnqpfkuovku7ZcbiAgICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8Ym9vbGVhbj5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5T3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIHByZWZpeENscyA9ICd0aHktdGltZS1waWNrZXInO1xuXG4gICAgb3ZlcmxheVBvc2l0aW9ucyA9IGdldEZsZXhpYmxlUG9zaXRpb25zKHRoaXMudGh5UGxhY2VtZW50LCA0KTtcblxuICAgIGZvcm1hdDogc3RyaW5nID0gJ0hIOm1tOnNzJztcblxuICAgIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgc2hvd1RleHQ6IHN0cmluZyA9ICcnO1xuXG4gICAgb3BlblN0YXRlOiBib29sZWFuO1xuXG4gICAgdmFsdWU6IERhdGUgPSBuZXcgVGlueURhdGUoKS5zZXRIbXMoMCwgMCwgMCkubmF0aXZlRGF0ZTtcblxuICAgIG9yaWdpblZhbHVlOiBEYXRlO1xuXG4gICAga2VlcEZvY3VzOiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBpc0Rpc2FibGVkRmlyc3RDaGFuZ2UgPSB0cnVlO1xuXG4gICAgb25WYWx1ZUNoYW5nZUZuOiAodmFsOiBudW1iZXIgfCBEYXRlKSA9PiB2b2lkID0gKCkgPT4gdm9pZCAwO1xuXG4gICAgb25Ub3VjaGVkRm46ICgpID0+IHZvaWQgPSAoKSA9PiB2b2lkIDA7XG5cbiAgICBuZ09uSW5pdCgpIHt9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMub3ZlcmxheVBvc2l0aW9ucyA9IGdldEZsZXhpYmxlUG9zaXRpb25zKHRoaXMudGh5UGxhY2VtZW50LCA0KTtcbiAgICB9XG5cbiAgICBvbklucHV0UGlja2VyQ2xpY2soKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkVXNlck9wZXJhdGlvbigpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vcGVuT3ZlcmxheSgpO1xuICAgIH1cblxuICAgIG9uSW5wdXRQaWNrZXJCbHVyKCkge1xuICAgICAgICBpZiAodGhpcy5rZWVwRm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wZW5TdGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VPdmVybGF5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblBpY2tUaW1lKHZhbHVlOiBEYXRlKSB7XG4gICAgICAgIHRoaXMub3JpZ2luVmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIG9uUGlja1RpbWVDb25maXJtKHZhbHVlOiBEYXRlKSB7XG4gICAgICAgIHRoaXMub3JpZ2luVmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuY29uZmlybVZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBvbkNsZWFyVGltZShlOiBFdmVudCkge1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLm9yaWdpblZhbHVlID0gbnVsbDtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBvbkN1c3RvbWl6ZUlucHV0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5mb3JtYXRJbnB1dFZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG9uS2V5dXBFbnRlcigpIHtcbiAgICAgICAgdGhpcy5jb25maXJtVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMuY2xvc2VPdmVybGF5KCk7XG4gICAgfVxuXG4gICAgb25LZXl1cEVzYygpIHtcbiAgICAgICAgdGhpcy5jbG9zZU92ZXJsYXkoKTtcbiAgICB9XG5cbiAgICBvblBvc2l0aW9uQ2hhbmdlKGU6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBvbkNsaWNrQmFja2Ryb3AoKSB7XG4gICAgICAgIHRoaXMuY2xvc2VPdmVybGF5KCk7XG4gICAgfVxuXG4gICAgb25PdmVybGF5RGV0YWNoKCkge1xuICAgICAgICB0aGlzLmNsb3NlT3ZlcmxheSgpO1xuICAgIH1cblxuICAgIG9uT3V0c2lkZUNsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLm9wZW5TdGF0ZSAmJlxuICAgICAgICAgICAgIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiZcbiAgICAgICAgICAgICF0aGlzLm92ZXJsYXlDb250YWluZXIubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlT3ZlcmxheSgpO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25PdmVybGF5QXR0YWNoKCkge1xuICAgICAgICBpZiAodGhpcy5jZGtDb25uZWN0ZWRPdmVybGF5ICYmIHRoaXMuY2RrQ29ubmVjdGVkT3ZlcmxheS5vdmVybGF5UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmNka0Nvbm5lY3RlZE92ZXJsYXkub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3Blbk92ZXJsYXkoKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkVXNlck9wZXJhdGlvbigpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5rZWVwRm9jdXMgPSB0cnVlO1xuICAgICAgICB0aGlzLm9wZW5TdGF0ZSA9IHRydWU7XG4gICAgICAgIHRoaXMudGh5T3BlbkNoYW5nZS5lbWl0KHRoaXMub3BlblN0YXRlKTtcbiAgICB9XG5cbiAgICBjbG9zZU92ZXJsYXkoKSB7XG4gICAgICAgIGlmICh0aGlzLm9wZW5TdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5rZWVwRm9jdXMgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMub3BlblN0YXRlID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmJsdXIoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNob3dUZXh0Py5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudmFsaWRhdGVDdXN0b21pemVJbnB1dCh0aGlzLnNob3dUZXh0KSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKHRoaXMub3JpZ2luVmFsdWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1RleHQgPSBuZXcgVGlueURhdGUodGhpcy52YWx1ZSkuZm9ybWF0KHRoaXMuZm9ybWF0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy50aHlBbGxvd0NsZWFyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5vcmlnaW5WYWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy50aHlPcGVuQ2hhbmdlLmVtaXQodGhpcy5vcGVuU3RhdGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJsdXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUgJiYgaXNWYWxpZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luVmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlKG5ldyBUaW55RGF0ZSh2YWx1ZSkubmF0aXZlRGF0ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbmV3IFRpbnlEYXRlKCkuc2V0SG1zKDAsIDAsIDApLm5hdGl2ZURhdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlRm4gPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkRm4gPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSAodGhpcy5pc0Rpc2FibGVkRmlyc3RDaGFuZ2UgJiYgdGhpcy50aHlEaXNhYmxlZCkgfHwgaXNEaXNhYmxlZDtcbiAgICAgICAgdGhpcy5pc0Rpc2FibGVkRmlyc3RDaGFuZ2UgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFZhbHVlKHZhbHVlOiBEYXRlLCBmb3JtYXRUZXh0OiBib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICBpZiAodmFsdWUgJiYgaXNWYWxpZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICBpZiAoZm9ybWF0VGV4dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1RleHQgPSBuZXcgVGlueURhdGUodGhpcy52YWx1ZSkuZm9ybWF0KHRoaXMuZm9ybWF0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5zaG93VGV4dCA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29uZmlybVZhbHVlKHZhbHVlOiBEYXRlKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRWYWx1ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMub25WYWx1ZUNoYW5nZUZuKSB7XG4gICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VGbih0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vblRvdWNoZWRGbikge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWRGbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXRJbnB1dFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLm9wZW5TdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuT3ZlcmxheSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy52YWxpZGF0ZUN1c3RvbWl6ZUlucHV0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlciA9IHZhbHVlLnNwbGl0KCc6Jyk7XG4gICAgICAgICAgICAgICAgY29uc3QgaG91ciA9IGZvcm1hdHRlclswXSB8fCAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1pbnV0ZSA9IGZvcm1hdHRlclsxXSB8fCAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlY29uZCA9IGZvcm1hdHRlclsyXSB8fCAwO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUobmV3IFRpbnlEYXRlKCkuc2V0SG1zKCtob3VyLCArbWludXRlLCArc2Vjb25kKS5uYXRpdmVEYXRlLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5vcmlnaW5WYWx1ZSA9IG5ldyBEYXRlKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy50aHlBbGxvd0NsZWFyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcmlnaW5WYWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gbmV3IERhdGUodGhpcy5vcmlnaW5WYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93VGV4dCA9IGBgO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUN1c3RvbWl6ZUlucHV0KHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IHZhbGlkOiBib29sZWFuID0gZmFsc2U7XG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiB0aGlzLmZvcm1hdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWxpZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmb3JtYXRSdWxlID0gdGhpcy5mb3JtYXQuc3BsaXQoJzonKTtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVyID0gdmFsdWUuc3BsaXQoJzonKTtcbiAgICAgICAgdmFsaWQgPSAhZm9ybWF0UnVsZVxuICAgICAgICAgICAgLm1hcCgobSwgaSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAhIWZvcm1hdHRlcltpXTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuaW5jbHVkZXMoZmFsc2UpO1xuICAgICAgICByZXR1cm4gdmFsaWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNhYmxlZFVzZXJPcGVyYXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkIHx8IHRoaXMudGh5UmVhZG9ubHk7XG4gICAgfVxufVxuIiwiPHNwYW4gY2RrT3ZlcmxheU9yaWdpbiAjb3JpZ2luPVwiY2RrT3ZlcmxheU9yaWdpblwiIChjbGljayk9XCJvbklucHV0UGlja2VyQ2xpY2soKVwiIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXdyYXBwZXJcIj5cbiAgPG5nLWNvbnRhaW5lcj5cbiAgICA8aW5wdXRcbiAgICAgICNwaWNrZXJJbnB1dFxuICAgICAgdGh5SW5wdXRcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIHt7IHByZWZpeENscyB9fS1pbnB1dFwiXG4gICAgICBbY2xhc3MudGh5LWlucHV0LWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtjbGFzcy50aHktaW5wdXQtcmVhZG9ubHldPVwidGh5UmVhZG9ubHlcIlxuICAgICAgW2NsYXNzLnRoeS10aW1lLXBpY2tlci1wYW5lbC1vcGVuZWRdPVwib3BlblN0YXRlXCJcbiAgICAgIFsobmdNb2RlbCldPVwic2hvd1RleHRcIlxuICAgICAgW3RoeVNpemVdPVwidGh5U2l6ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3JlYWRvbmx5XT1cInRoeVJlYWRvbmx5XCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJ0aHlQbGFjZWhvbGRlclwiXG4gICAgICAoYmx1cik9XCJvbklucHV0UGlja2VyQmx1cigpXCJcbiAgICAgIChrZXl1cC5lbnRlcik9XCJvbktleXVwRW50ZXIoKVwiXG4gICAgICAoa2V5dXAuZXNjYXBlKT1cIm9uS2V5dXBFc2MoKVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkN1c3RvbWl6ZUlucHV0KCRldmVudClcIiAvPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyaWdodEljb25cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L3NwYW4+XG5cbjxuZy10ZW1wbGF0ZSAjcmlnaHRJY29uPlxuICBAaWYgKCFkaXNhYmxlZCAmJiB0aHlBbGxvd0NsZWFyICYmICF0aHlSZWFkb25seSAmJiBzaG93VGV4dCkge1xuICAgIDxzcGFuIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWNsZWFyXCI+XG4gICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJjbG9zZS1jaXJjbGUtYm9sZC1maWxsXCIgKGNsaWNrKT1cIm9uQ2xlYXJUaW1lKCRldmVudClcIiBuZ0NsYXNzPVwicmVtb3ZlLWxpbmsgcmVtb3ZlLWxpbmste3sgdGh5U2l6ZSB9fVwiPjwvdGh5LWljb24+XG4gICAgPC9zcGFuPlxuICB9XG4gIDxzcGFuIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWljb25cIj5cbiAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cIidjbG9jay1jaXJjbGUtbW9tZW50J1wiIG5nQ2xhc3M9XCJyZW1vdmUtbGluay17eyB0aHlTaXplIH19XCI+PC90aHktaWNvbj5cbiAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBPdmVybGF5IC0tPlxuPG5nLXRlbXBsYXRlXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwib3JpZ2luXCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cIm9wZW5TdGF0ZVwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3BdPVwidGh5QmFja2Ryb3BcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJvdmVybGF5UG9zaXRpb25zXCJcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3M9XCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlUcmFuc2Zvcm1PcmlnaW5Pbj1cIi50aHktdGltZS1waWNrZXItY29udGFpbmVyXCJcbiAgKHBvc2l0aW9uQ2hhbmdlKT1cIm9uUG9zaXRpb25DaGFuZ2UoJGV2ZW50KVwiXG4gIChiYWNrZHJvcENsaWNrKT1cIm9uQ2xpY2tCYWNrZHJvcCgpXCJcbiAgKG92ZXJsYXlPdXRzaWRlQ2xpY2spPVwib25PdXRzaWRlQ2xpY2soJGV2ZW50KVwiXG4gIChkZXRhY2gpPVwib25PdmVybGF5RGV0YWNoKClcIlxuICAoYXR0YWNoKT1cIm9uT3ZlcmxheUF0dGFjaCgpXCI+XG4gIDxkaXZcbiAgICAjb3ZlcmxheUNvbnRhaW5lclxuICAgIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlXCJcbiAgICBbQHNjYWxlWE1vdGlvbl09XCJ0aHlQbGFjZW1lbnQgPT09ICdsZWZ0JyB8fCB0aHlQbGFjZW1lbnQgPT09ICdyaWdodCcgPyAnZW50ZXInIDogJ3ZvaWQnXCJcbiAgICBbQHNjYWxlWU1vdGlvbl09XCJ0aHlQbGFjZW1lbnQgPT09ICd0b3AnIHx8IHRoeVBsYWNlbWVudCA9PT0gJ2JvdHRvbScgPyAnZW50ZXInIDogJ3ZvaWQnXCJcbiAgICBbQHNjYWxlTW90aW9uXT1cIlxuICAgICAgdGh5UGxhY2VtZW50ICE9PSAnbGVmdCcgJiYgdGh5UGxhY2VtZW50ICE9PSAncmlnaHQnICYmIHRoeVBsYWNlbWVudCAhPT0gJ3RvcCcgJiYgdGh5UGxhY2VtZW50ICE9PSAnYm90dG9tJyA/ICdlbnRlcicgOiAndm9pZCdcbiAgICBcIlxuICAgIGNsYXNzPVwidGh5LXRpbWUtcGlja2VyLWNvbnRhaW5lclwiPlxuICAgIDwhLS0gQ29tcGF0aWJsZSBmb3Igb3ZlcmxheSB0aGF0IG5vdCBzdXBwb3J0IG9mZnNldCBkeW5hbWljYWxseSBhbmQgaW1tZWRpYXRlbHkgLS0+XG4gICAgPHRoeS10aW1lLXBpY2tlci1wYW5lbFxuICAgICAgW25nQ2xhc3NdPVwidGh5UG9wdXBDbGFzc1wiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgIFt0aHlGb3JtYXRdPVwiZm9ybWF0XCJcbiAgICAgIFt0aHlIb3VyU3RlcF09XCJ0aHlIb3VyU3RlcFwiXG4gICAgICBbdGh5TWludXRlU3RlcF09XCJ0aHlNaW51dGVTdGVwXCJcbiAgICAgIFt0aHlTZWNvbmRTdGVwXT1cInRoeVNlY29uZFN0ZXBcIlxuICAgICAgW3RoeVNob3dTZWxlY3ROb3ddPVwidGh5U2hvd1NlbGVjdE5vd1wiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvblBpY2tUaW1lQ29uZmlybSgkZXZlbnQpXCJcbiAgICAgICh0aHlQaWNrQ2hhbmdlKT1cIm9uUGlja1RpbWUoJGV2ZW50KVwiXG4gICAgKHRoeUNsb3NlUGFuZWwpPVwiY2xvc2VPdmVybGF5KClcIj48L3RoeS10aW1lLXBpY2tlci1wYW5lbD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,14 +1,21 @@
|
|
|
1
|
-
import { Component, Input, HostBinding, ContentChild, TemplateRef, ViewChild, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';
|
|
1
|
+
import { Component, Input, HostBinding, ContentChild, TemplateRef, ViewChild, ChangeDetectorRef, ChangeDetectionStrategy, inject } from '@angular/core';
|
|
2
2
|
import { ThyTimelineService } from './timeline.service';
|
|
3
3
|
import { NgTemplateOutlet } from '@angular/common';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "./timeline.service";
|
|
6
5
|
/**
|
|
7
6
|
* 时间轴节点组件
|
|
8
7
|
* @name thy-timeline-item
|
|
9
8
|
* @order 20
|
|
10
9
|
*/
|
|
11
10
|
export class ThyTimelineItem {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
13
|
+
this.timelineService = inject(ThyTimelineService);
|
|
14
|
+
this.color = 'primary';
|
|
15
|
+
this.isLast = false;
|
|
16
|
+
this.isFirst = false;
|
|
17
|
+
this.reverse = false;
|
|
18
|
+
}
|
|
12
19
|
/**
|
|
13
20
|
* 指定圆圈颜色
|
|
14
21
|
* @type primary | success | warning | danger | info
|
|
@@ -19,14 +26,6 @@ export class ThyTimelineItem {
|
|
|
19
26
|
this.color = value;
|
|
20
27
|
}
|
|
21
28
|
}
|
|
22
|
-
constructor(cdr, timelineService) {
|
|
23
|
-
this.cdr = cdr;
|
|
24
|
-
this.timelineService = timelineService;
|
|
25
|
-
this.color = 'primary';
|
|
26
|
-
this.isLast = false;
|
|
27
|
-
this.isFirst = false;
|
|
28
|
-
this.reverse = false;
|
|
29
|
-
}
|
|
30
29
|
detectChanges() {
|
|
31
30
|
this.cdr.detectChanges();
|
|
32
31
|
}
|
|
@@ -34,13 +33,13 @@ export class ThyTimelineItem {
|
|
|
34
33
|
this.timelineService.markForCheck();
|
|
35
34
|
}
|
|
36
35
|
ngOnInit() { }
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimelineItem, deps: [
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimelineItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
37
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyTimelineItem, isStandalone: true, selector: "thy-timeline-item", inputs: { thyColor: "thyColor", thyPosition: "thyPosition" }, host: { properties: { "class": "this.className" } }, queries: [{ propertyName: "dot", first: true, predicate: ["dot"], descendants: true }, { propertyName: "description", first: true, predicate: ["description"], descendants: true }], viewQueries: [{ propertyName: "template", first: true, predicate: ["timelineItem"], descendants: true }], exportAs: ["ThyTimelineItem"], usesOnChanges: true, ngImport: i0, template: "<ng-template #timelineItem>\n <div\n class=\"thy-timeline-item\"\n [class.thy-timeline-item-reverse-last]=\"isLast && reverse\"\n [class.thy-timeline-item-last]=\"isLast\"\n [class.thy-timeline-item-reverse-first]=\"isFirst && reverse\"\n [class.thy-timeline-item-right]=\"(thyPosition || position) === 'right'\"\n [class.thy-timeline-item-left]=\"(thyPosition || position) === 'left'\"\n >\n <div class=\"thy-timeline-item-tail\"></div>\n <div\n class=\"thy-timeline-item-dot\"\n [class.thy-timeline-item-dot-primary]=\"color === 'primary'\"\n [class.thy-timeline-item-dot-success]=\"color === 'success'\"\n [class.thy-timeline-item-dot-warning]=\"color === 'warning'\"\n [class.thy-timeline-item-dot-danger]=\"color === 'danger'\"\n [class.thy-timeline-item-dot-info]=\"color === 'info'\"\n [class.thy-timeline-item-dot-custom]=\"!!dot\"\n >\n @if (dot) {\n <ng-template [ngTemplateOutlet]=\"dot\"></ng-template>\n }\n </div>\n <div class=\"thy-timeline-item-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"thy-timeline-item-content-other-side\">\n @if (description) {\n <ng-template [ngTemplateOutlet]=\"description\"></ng-template>\n }\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39
38
|
}
|
|
40
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTimelineItem, decorators: [{
|
|
41
40
|
type: Component,
|
|
42
41
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'thy-timeline-item', exportAs: 'ThyTimelineItem', standalone: true, imports: [NgTemplateOutlet], template: "<ng-template #timelineItem>\n <div\n class=\"thy-timeline-item\"\n [class.thy-timeline-item-reverse-last]=\"isLast && reverse\"\n [class.thy-timeline-item-last]=\"isLast\"\n [class.thy-timeline-item-reverse-first]=\"isFirst && reverse\"\n [class.thy-timeline-item-right]=\"(thyPosition || position) === 'right'\"\n [class.thy-timeline-item-left]=\"(thyPosition || position) === 'left'\"\n >\n <div class=\"thy-timeline-item-tail\"></div>\n <div\n class=\"thy-timeline-item-dot\"\n [class.thy-timeline-item-dot-primary]=\"color === 'primary'\"\n [class.thy-timeline-item-dot-success]=\"color === 'success'\"\n [class.thy-timeline-item-dot-warning]=\"color === 'warning'\"\n [class.thy-timeline-item-dot-danger]=\"color === 'danger'\"\n [class.thy-timeline-item-dot-info]=\"color === 'info'\"\n [class.thy-timeline-item-dot-custom]=\"!!dot\"\n >\n @if (dot) {\n <ng-template [ngTemplateOutlet]=\"dot\"></ng-template>\n }\n </div>\n <div class=\"thy-timeline-item-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"thy-timeline-item-content-other-side\">\n @if (description) {\n <ng-template [ngTemplateOutlet]=\"description\"></ng-template>\n }\n </div>\n </div>\n</ng-template>\n" }]
|
|
43
|
-
}],
|
|
42
|
+
}], propDecorators: { template: [{
|
|
44
43
|
type: ViewChild,
|
|
45
44
|
args: ['timelineItem', { static: false }]
|
|
46
45
|
}], className: [{
|
|
@@ -57,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
57
56
|
type: ContentChild,
|
|
58
57
|
args: ['description', { static: false }]
|
|
59
58
|
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGltZWxpbmUvdGltZWxpbmUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvdGltZWxpbmUvdGltZWxpbmUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEVBR1gsWUFBWSxFQUNaLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUV2QixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSW5EOzs7O0dBSUc7QUFTSCxNQUFNLE9BQU8sZUFBZTtJQVI1QjtRQVNZLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBTTlDLFVBQUssR0FBYSxTQUFTLENBQUM7UUFFNUIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVmLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFJaEIsWUFBTyxHQUFZLEtBQUssQ0FBQztLQXlDbkM7SUF2Q0c7Ozs7T0FJRztJQUNILElBQ0ksUUFBUSxDQUFDLEtBQWU7UUFDeEIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7SUFDTCxDQUFDO0lBb0JELGFBQWE7UUFDVCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsUUFBUSxLQUFJLENBQUM7OEdBeERKLGVBQWU7a0dBQWYsZUFBZSxtaEJDbEM1QixteUNBaUNBLDRDRERjLGdCQUFnQjs7MkZBRWpCLGVBQWU7a0JBUjNCLFNBQVM7c0NBQ1csdUJBQXVCLENBQUMsTUFBTSxZQUNyQyxtQkFBbUIsWUFFbkIsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLENBQUM7OEJBTW1CLFFBQVE7c0JBQXJELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFdEIsU0FBUztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPO2dCQWtCaEIsUUFBUTtzQkFEWCxLQUFLO2dCQVdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBTWtDLEdBQUc7c0JBQTFDLFlBQVk7dUJBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFNVSxXQUFXO3NCQUExRCxZQUFZO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBPbkluaXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWZlQW55IH0gZnJvbSAnbmd4LXRldGh5cy90eXBlcyc7XG5pbXBvcnQgeyBUaHlUaW1lTW9kZSB9IGZyb20gJy4vdGltZWxpbmUuY29tcG9uZW50JztcbmltcG9ydCB7IFRoeVRpbWVsaW5lU2VydmljZSB9IGZyb20gJy4vdGltZWxpbmUuc2VydmljZSc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IHR5cGUgdGh5Q29sb3IgPSAncHJpbWFyeScgfCAnc3VjY2VzcycgfCAnd2FybmluZycgfCAnZGFuZ2VyJyB8ICdpbmZvJztcblxuLyoqXG4gKiDml7bpl7TovbToioLngrnnu4Tku7ZcbiAqIEBuYW1lIHRoeS10aW1lbGluZS1pdGVtXG4gKiBAb3JkZXIgMjBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICd0aHktdGltZWxpbmUtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWVsaW5lLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGV4cG9ydEFzOiAnVGh5VGltZWxpbmVJdGVtJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XVxufSlcbmV4cG9ydCBjbGFzcyBUaHlUaW1lbGluZUl0ZW0gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgdGltZWxpbmVTZXJ2aWNlID0gaW5qZWN0KFRoeVRpbWVsaW5lU2VydmljZSk7XG5cbiAgICBAVmlld0NoaWxkKCd0aW1lbGluZUl0ZW0nLCB7IHN0YXRpYzogZmFsc2UgfSkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzTmFtZTogc3RyaW5nO1xuXG4gICAgcHVibGljIGNvbG9yOiB0aHlDb2xvciA9ICdwcmltYXJ5JztcblxuICAgIHB1YmxpYyBpc0xhc3QgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBpc0ZpcnN0ID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgcG9zaXRpb246IFRoeVRpbWVNb2RlO1xuXG4gICAgcHVibGljIHJldmVyc2U6IEJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOaMh+WumuWchuWciOminOiJslxuICAgICAqIEB0eXBlIHByaW1hcnkgfCBzdWNjZXNzIHwgd2FybmluZyB8IGRhbmdlciB8IGluZm9cbiAgICAgKiBAZGVmYXVsdCBwcmltYXJ5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5Q29sb3IodmFsdWU6IHRoeUNvbG9yKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jb2xvciA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6Ieq5a6a5LmJ6IqC54K55L2N572uXG4gICAgICogQHR5cGUgbGVmdCB8IHJpZ2h0IHwgY2VudGVyXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UG9zaXRpb246IFRoeVRpbWVNb2RlO1xuXG4gICAgLyoqXG4gICAgICog6Ieq5a6a5LmJ5pe26Ze06L2054K55qih5p2/XG4gICAgICogQHR5cGUgVGVtcGxhdGVSZWZcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdkb3QnLCB7IHN0YXRpYzogZmFsc2UgfSkgZG90OiBUZW1wbGF0ZVJlZjxTYWZlQW55PjtcblxuICAgIC8qKlxuICAgICAqIOiHquWumuS5ieWPpuS4gOS+p+eahOaooeadv1xuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZGVzY3JpcHRpb24nLCB7IHN0YXRpYzogZmFsc2UgfSkgZGVzY3JpcHRpb246IFRlbXBsYXRlUmVmPFNhZmVBbnk+O1xuXG4gICAgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aW1lbGluZVNlcnZpY2UubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7fVxufVxuIiwiPG5nLXRlbXBsYXRlICN0aW1lbGluZUl0ZW0+XG4gIDxkaXZcbiAgICBjbGFzcz1cInRoeS10aW1lbGluZS1pdGVtXCJcbiAgICBbY2xhc3MudGh5LXRpbWVsaW5lLWl0ZW0tcmV2ZXJzZS1sYXN0XT1cImlzTGFzdCAmJiByZXZlcnNlXCJcbiAgICBbY2xhc3MudGh5LXRpbWVsaW5lLWl0ZW0tbGFzdF09XCJpc0xhc3RcIlxuICAgIFtjbGFzcy50aHktdGltZWxpbmUtaXRlbS1yZXZlcnNlLWZpcnN0XT1cImlzRmlyc3QgJiYgcmV2ZXJzZVwiXG4gICAgW2NsYXNzLnRoeS10aW1lbGluZS1pdGVtLXJpZ2h0XT1cIih0aHlQb3NpdGlvbiB8fCBwb3NpdGlvbikgPT09ICdyaWdodCdcIlxuICAgIFtjbGFzcy50aHktdGltZWxpbmUtaXRlbS1sZWZ0XT1cIih0aHlQb3NpdGlvbiB8fCBwb3NpdGlvbikgPT09ICdsZWZ0J1wiXG4gICAgPlxuICAgIDxkaXYgY2xhc3M9XCJ0aHktdGltZWxpbmUtaXRlbS10YWlsXCI+PC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ0aHktdGltZWxpbmUtaXRlbS1kb3RcIlxuICAgICAgW2NsYXNzLnRoeS10aW1lbGluZS1pdGVtLWRvdC1wcmltYXJ5XT1cImNvbG9yID09PSAncHJpbWFyeSdcIlxuICAgICAgW2NsYXNzLnRoeS10aW1lbGluZS1pdGVtLWRvdC1zdWNjZXNzXT1cImNvbG9yID09PSAnc3VjY2VzcydcIlxuICAgICAgW2NsYXNzLnRoeS10aW1lbGluZS1pdGVtLWRvdC13YXJuaW5nXT1cImNvbG9yID09PSAnd2FybmluZydcIlxuICAgICAgW2NsYXNzLnRoeS10aW1lbGluZS1pdGVtLWRvdC1kYW5nZXJdPVwiY29sb3IgPT09ICdkYW5nZXInXCJcbiAgICAgIFtjbGFzcy50aHktdGltZWxpbmUtaXRlbS1kb3QtaW5mb109XCJjb2xvciA9PT0gJ2luZm8nXCJcbiAgICAgIFtjbGFzcy50aHktdGltZWxpbmUtaXRlbS1kb3QtY3VzdG9tXT1cIiEhZG90XCJcbiAgICAgID5cbiAgICAgIEBpZiAoZG90KSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJkb3RcIj48L25nLXRlbXBsYXRlPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ0aHktdGltZWxpbmUtaXRlbS1jb250ZW50XCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRoeS10aW1lbGluZS1pdGVtLWNvbnRlbnQtb3RoZXItc2lkZVwiPlxuICAgICAgQGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGVzY3JpcHRpb25cIj48L25nLXRlbXBsYXRlPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|