ngx-tethys 18.0.0-next.0 → 18.0.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +161 -1
- package/action/action.component.d.ts +3 -3
- package/alert/alert.component.d.ts +1 -1
- package/anchor/anchor.component.d.ts +3 -1
- package/autocomplete/autocomplete.component.d.ts +1 -1
- package/autocomplete/autocomplete.trigger.directive.d.ts +1 -1
- package/avatar/avatar.component.d.ts +4 -4
- package/badge/badge.component.d.ts +3 -3
- package/breadcrumb/breadcrumb.component.d.ts +30 -2
- package/breadcrumb/module.d.ts +3 -1
- package/breadcrumb/styles/breadcrumb.scss +8 -0
- package/button/button-icon.component.d.ts +2 -2
- package/button/button.component.d.ts +2 -2
- package/button/styles/button.scss +5 -5
- package/card/card.component.d.ts +3 -3
- package/card/content.component.d.ts +1 -1
- package/carousel/carousel.component.d.ts +4 -4
- package/cascader/cascader-li.component.d.ts +5 -5
- package/cascader/cascader-search-option.component.d.ts +3 -3
- package/cascader/cascader.component.d.ts +8 -8
- package/checkbox/checkbox.component.d.ts +1 -1
- package/collapse/collapse-item.component.d.ts +2 -2
- package/collapse/collapse.component.d.ts +1 -1
- package/color-picker/color-picker-panel.component.d.ts +1 -1
- package/color-picker/color-picker.component.d.ts +3 -3
- package/copy/copy.directive.d.ts +1 -1
- package/core/behaviors/decorators.d.ts +1 -1
- package/core/overlay/abstract-overlay.config.d.ts +6 -0
- package/date-picker/abstract-picker.component.d.ts +15 -8
- package/date-picker/abstract-picker.directive.d.ts +3 -3
- package/date-picker/base-picker.component.d.ts +2 -2
- package/date-picker/date-picker.config.d.ts +1 -0
- package/date-picker/date-picker.service.d.ts +1 -0
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -1
- package/date-picker/lib/popups/date-popup.component.d.ts +2 -1
- package/date-picker/lib/popups/inner-popup.component.d.ts +1 -1
- package/date-picker/picker.component.d.ts +1 -1
- package/date-picker/picker.util.d.ts +2 -0
- package/date-range/date-range.component.d.ts +8 -2
- package/dialog/body/dialog-body.component.d.ts +1 -1
- package/dialog/footer/dialog-footer.component.d.ts +1 -1
- package/dialog/header/dialog-header.component.d.ts +1 -1
- package/divider/divider.component.d.ts +2 -2
- package/drag-drop/drag-handle.directive.d.ts +1 -1
- package/drag-drop/drag.directive.d.ts +1 -1
- package/drag-drop/drop-container.directive.d.ts +1 -1
- package/dropdown/dropdown-menu-item.directive.d.ts +2 -2
- package/dropdown/dropdown-menu.component.d.ts +1 -1
- package/dropdown/dropdown.directive.d.ts +1 -1
- package/empty/empty.component.d.ts +1 -1
- package/esm2022/action/action.component.mjs +7 -6
- package/esm2022/alert/alert.component.mjs +5 -5
- package/esm2022/anchor/anchor.component.mjs +5 -5
- package/esm2022/autocomplete/autocomplete.component.mjs +5 -4
- package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +5 -5
- package/esm2022/avatar/avatar.component.mjs +8 -8
- package/esm2022/badge/badge.component.mjs +7 -6
- package/esm2022/breadcrumb/breadcrumb.component.mjs +73 -32
- package/esm2022/breadcrumb/module.mjs +6 -4
- package/esm2022/button/button-icon.component.mjs +6 -5
- package/esm2022/button/button.component.mjs +6 -6
- package/esm2022/card/card.component.mjs +7 -6
- package/esm2022/card/content.component.mjs +5 -4
- package/esm2022/carousel/carousel.component.mjs +8 -7
- package/esm2022/cascader/cascader-li.component.mjs +9 -8
- package/esm2022/cascader/cascader-search-option.component.mjs +7 -6
- package/esm2022/cascader/cascader.component.mjs +19 -12
- package/esm2022/checkbox/checkbox.component.mjs +5 -4
- package/esm2022/collapse/collapse-item.component.mjs +6 -6
- package/esm2022/collapse/collapse.component.mjs +5 -4
- package/esm2022/color-picker/color-picker-panel.component.mjs +5 -4
- package/esm2022/color-picker/color-picker.component.mjs +7 -6
- package/esm2022/color-picker/parts/inputs/inputs.component.mjs +1 -1
- package/esm2022/copy/copy.directive.mjs +5 -4
- package/esm2022/core/behaviors/decorators.mjs +2 -2
- package/esm2022/core/overlay/abstract-overlay.config.mjs +7 -1
- package/esm2022/date-picker/abstract-picker.component.mjs +28 -17
- package/esm2022/date-picker/abstract-picker.directive.mjs +8 -7
- package/esm2022/date-picker/base-picker.component.mjs +5 -5
- package/esm2022/date-picker/date-picker.component.mjs +3 -3
- package/esm2022/date-picker/date-picker.config.mjs +2 -1
- package/esm2022/date-picker/date-picker.service.mjs +4 -1
- package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -5
- package/esm2022/date-picker/lib/date/date-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/decade/decade-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/month/month-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/popups/date-popup.component.mjs +7 -4
- package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +5 -5
- package/esm2022/date-picker/lib/year/year-header.component.mjs +4 -4
- package/esm2022/date-picker/month-picker.component.mjs +3 -3
- package/esm2022/date-picker/picker.component.mjs +5 -5
- package/esm2022/date-picker/picker.util.mjs +14 -2
- package/esm2022/date-picker/quarter-picker.component.mjs +3 -3
- package/esm2022/date-picker/range-picker.component.mjs +3 -3
- package/esm2022/date-picker/week-picker.component.mjs +3 -3
- package/esm2022/date-picker/year-picker.component.mjs +3 -3
- package/esm2022/date-range/date-range.component.mjs +6 -5
- package/esm2022/dialog/body/dialog-body.component.mjs +5 -4
- package/esm2022/dialog/footer/dialog-footer.component.mjs +5 -4
- package/esm2022/dialog/header/dialog-header.component.mjs +5 -4
- package/esm2022/divider/divider.component.mjs +6 -5
- package/esm2022/drag-drop/drag-handle.directive.mjs +5 -4
- package/esm2022/drag-drop/drag.directive.mjs +5 -4
- package/esm2022/drag-drop/drop-container.directive.mjs +5 -4
- package/esm2022/dropdown/dropdown-menu-item.directive.mjs +7 -6
- package/esm2022/dropdown/dropdown-menu.component.mjs +5 -4
- package/esm2022/dropdown/dropdown.directive.mjs +5 -5
- package/esm2022/empty/empty.component.mjs +5 -4
- package/esm2022/form/form-group-error/form-group-error.component.mjs +5 -4
- package/esm2022/form/form-group-label.directive.mjs +5 -4
- package/esm2022/form/form-group.component.mjs +7 -6
- package/esm2022/icon/icon.component.mjs +6 -5
- package/esm2022/image/image.class.mjs +1 -1
- package/esm2022/image/image.directive.mjs +6 -5
- package/esm2022/image/index.mjs +6 -5
- package/esm2022/image/preview/image-preview.component.mjs +21 -13
- package/esm2022/input/input-search.component.mjs +5 -4
- package/esm2022/input/input.component.mjs +6 -5
- package/esm2022/input-number/input-number.component.mjs +14 -7
- package/esm2022/layout/header.component.mjs +7 -6
- package/esm2022/layout/sidebar-header.component.mjs +5 -4
- package/esm2022/layout/sidebar.component.mjs +12 -11
- package/esm2022/list/list.component.mjs +5 -4
- package/esm2022/list/selection/selection-list.mjs +7 -7
- package/esm2022/loading/loading.component.mjs +6 -5
- package/esm2022/mention/mention.directive.mjs +3 -3
- package/esm2022/menu/group/menu-group.component.mjs +10 -9
- package/esm2022/menu/item/action/menu-item-action.component.mjs +17 -7
- package/esm2022/menu/item/name/menu-item-name.component.mjs +5 -4
- package/esm2022/menu/menu.component.mjs +5 -4
- package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +5 -4
- package/esm2022/nav/nav-ink-bar.directive.mjs +6 -5
- package/esm2022/nav/nav-item.directive.mjs +7 -6
- package/esm2022/nav/nav.component.mjs +18 -7
- package/esm2022/pagination/pagination.class.mjs +1 -1
- package/esm2022/pagination/pagination.component.mjs +22 -10
- package/esm2022/pagination/pagination.config.mjs +3 -2
- package/esm2022/popover/popover.directive.mjs +6 -5
- package/esm2022/popover/popover.service.mjs +2 -1
- package/esm2022/property/property-item.component.mjs +6 -5
- package/esm2022/property-operation/property-operation.component.mjs +9 -9
- package/esm2022/radio/group/radio-group.component.mjs +5 -4
- package/esm2022/rate/rate-item.component.mjs +5 -4
- package/esm2022/rate/rate.component.mjs +7 -7
- package/esm2022/resizable/resizable.directive.mjs +7 -6
- package/esm2022/resizable/resize-handle.component.mjs +5 -4
- package/esm2022/resizable/resize-handles.component.mjs +5 -4
- package/esm2022/segment/segment-item.component.mjs +5 -5
- package/esm2022/segment/segment.component.mjs +5 -4
- package/esm2022/select/custom-select/custom-select.component.mjs +14 -14
- package/esm2022/select/native-select/native-select.component.mjs +5 -5
- package/esm2022/shared/base-form-check.component.mjs +6 -5
- package/esm2022/shared/directives/thy-autofocus.directive.mjs +6 -5
- package/esm2022/shared/directives/thy-scroll.directive.mjs +5 -4
- package/esm2022/shared/directives/thy-show.mjs +5 -4
- package/esm2022/shared/option/group/option-group.component.mjs +5 -4
- package/esm2022/shared/option/list-option/list-option.component.mjs +5 -4
- package/esm2022/shared/option/option.component.mjs +5 -5
- package/esm2022/shared/select/select-control/select-control.component.mjs +10 -10
- package/esm2022/skeleton/skeleton-circle.component.mjs +5 -5
- package/esm2022/skeleton/skeleton-rectangle.component.mjs +5 -5
- package/esm2022/skeleton/skeleton.component.mjs +5 -4
- package/esm2022/skeleton/stylized/bullet-list.component.mjs +5 -4
- package/esm2022/skeleton/stylized/list.component.mjs +5 -4
- package/esm2022/skeleton/stylized/paragraph.component.mjs +5 -4
- package/esm2022/slide/slide-body/slide-body-section.component.mjs +5 -4
- package/esm2022/slider/slider.component.mjs +6 -6
- package/esm2022/space/space.component.mjs +5 -4
- package/esm2022/stepper/step-header.component.mjs +6 -5
- package/esm2022/stepper/stepper.component.mjs +5 -4
- package/esm2022/switch/switch.component.mjs +6 -5
- package/esm2022/table/table-column.component.mjs +9 -9
- package/esm2022/table/table-skeleton.component.mjs +8 -7
- package/esm2022/table/table.component.mjs +19 -17
- package/esm2022/tabs/tab.component.mjs +5 -4
- package/esm2022/tabs/tabs.component.mjs +6 -6
- package/esm2022/tag/tag.component.mjs +5 -5
- package/esm2022/time-picker/time-picker-panel.component.mjs +6 -6
- package/esm2022/time-picker/time-picker.component.mjs +9 -9
- package/esm2022/timeline/timeline.component.mjs +5 -4
- package/esm2022/tooltip/tooltip.directive.mjs +6 -6
- package/esm2022/tree/tree-node.component.mjs +9 -8
- package/esm2022/tree/tree.component.mjs +32 -11
- package/esm2022/tree/tree.service.mjs +3 -3
- package/esm2022/tree-select/tree-select.component.mjs +20 -18
- package/esm2022/upload/file-select.component.mjs +24 -27
- package/esm2022/version.mjs +2 -2
- package/esm2022/vote/vote.component.mjs +7 -6
- package/esm2022/watermark/watermark.directive.mjs +5 -4
- package/fesm2022/ngx-tethys-action.mjs +6 -5
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +4 -4
- package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
- package/fesm2022/ngx-tethys-anchor.mjs +4 -4
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +6 -6
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +7 -7
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-badge.mjs +6 -5
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +117 -77
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +8 -8
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +8 -7
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +7 -6
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +28 -21
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +4 -3
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-collapse.mjs +7 -7
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +9 -8
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +4 -3
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +7 -1
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +86 -57
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +5 -4
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +8 -7
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +5 -4
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-drag-drop.mjs +8 -8
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +10 -10
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +4 -3
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +10 -10
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +5 -5
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +24 -16
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +13 -6
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +7 -6
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +17 -16
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +8 -8
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +5 -4
- package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
- package/fesm2022/ngx-tethys-mention.mjs +2 -2
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +26 -16
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +26 -16
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +23 -10
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +6 -5
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property-operation.mjs +8 -8
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +5 -4
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +7 -6
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +8 -8
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +10 -10
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +6 -6
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +15 -15
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +25 -25
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +14 -14
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +4 -4
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +5 -5
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +4 -3
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +7 -6
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +5 -4
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +29 -27
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +7 -7
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +4 -4
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +11 -11
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +4 -3
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +5 -5
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +14 -11
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +39 -18
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +23 -27
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +6 -5
- package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
- package/fesm2022/ngx-tethys-watermark.mjs +4 -3
- 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/form/form-group-error/form-group-error.component.d.ts +1 -1
- package/form/form-group-label.directive.d.ts +1 -1
- package/form/form-group.component.d.ts +3 -3
- package/icon/icon.component.d.ts +2 -2
- package/image/image.class.d.ts +1 -1
- package/image/image.directive.d.ts +2 -2
- package/image/index.d.ts +5 -4
- package/image/preview/image-preview.component.d.ts +5 -5
- package/input/input-search.component.d.ts +1 -1
- package/input/input.component.d.ts +2 -2
- package/input/styles/input-group.scss +3 -0
- package/input-number/input-number.component.d.ts +10 -3
- package/layout/header.component.d.ts +3 -3
- package/layout/sidebar-header.component.d.ts +1 -1
- package/layout/sidebar.component.d.ts +7 -7
- package/list/list.component.d.ts +1 -1
- package/list/selection/selection-list.d.ts +3 -3
- package/loading/loading.component.d.ts +2 -2
- package/menu/group/menu-group.component.d.ts +6 -6
- package/menu/item/action/menu-item-action.component.d.ts +8 -3
- package/menu/item/name/menu-item-name.component.d.ts +1 -1
- package/menu/menu.component.d.ts +1 -1
- package/menu/styles/menu.scss +8 -0
- package/nav/icon-nav/icon-nav-link.directive.d.ts +1 -1
- package/nav/nav-ink-bar.directive.d.ts +2 -2
- package/nav/nav-item.directive.d.ts +3 -3
- package/nav/nav.component.d.ts +7 -5
- package/package.json +2 -2
- package/pagination/pagination.class.d.ts +4 -0
- package/pagination/pagination.component.d.ts +11 -6
- package/popover/popover.directive.d.ts +2 -2
- package/property/property-item.component.d.ts +4 -1
- package/property/styles/properties.scss +2 -0
- package/property-operation/property-operation.component.d.ts +5 -5
- package/radio/group/radio-group.component.d.ts +1 -1
- package/rate/rate-item.component.d.ts +1 -1
- package/rate/rate.component.d.ts +3 -3
- package/resizable/resizable.directive.d.ts +3 -3
- package/resizable/resize-handle.component.d.ts +1 -1
- package/resizable/resize-handles.component.d.ts +1 -1
- package/schematics/ng-update/update-18/complete.js +0 -10
- package/schematics/ng-update/update-18/index.spec.js +0 -73
- package/schematics/ng-update/update-18/update-data.js +4 -860
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/segment-item.component.d.ts +1 -1
- package/segment/segment.component.d.ts +5 -1
- package/select/custom-select/custom-select.component.d.ts +10 -10
- package/select/native-select/native-select.component.d.ts +1 -1
- package/shared/base-form-check.component.d.ts +2 -2
- package/shared/directives/thy-autofocus.directive.d.ts +2 -2
- package/shared/directives/thy-scroll.directive.d.ts +1 -1
- package/shared/directives/thy-show.d.ts +1 -1
- package/shared/option/group/option-group.component.d.ts +1 -1
- package/shared/option/list-option/list-option.component.d.ts +1 -1
- package/shared/option/option.component.d.ts +1 -1
- package/shared/option/styles/select-dropdown.scss +1 -0
- package/shared/select/select-control/select-control.component.d.ts +6 -6
- package/skeleton/skeleton-circle.component.d.ts +1 -1
- package/skeleton/skeleton-rectangle.component.d.ts +1 -1
- package/skeleton/skeleton.component.d.ts +1 -1
- package/skeleton/stylized/bullet-list.component.d.ts +1 -1
- package/skeleton/stylized/list.component.d.ts +1 -1
- package/skeleton/stylized/paragraph.component.d.ts +1 -1
- package/slide/slide-body/slide-body-section.component.d.ts +1 -1
- package/slider/slider.component.d.ts +2 -2
- package/slider/slider.scss +12 -20
- package/space/space.component.d.ts +1 -1
- package/stepper/step-header.component.d.ts +2 -2
- package/stepper/stepper.component.d.ts +1 -1
- package/styles/modules/tables.scss +20 -0
- package/styles/variables.scss +2 -2
- package/switch/switch.component.d.ts +2 -2
- package/table/styles/skeleton.scss +5 -0
- package/table/table-column.component.d.ts +5 -5
- package/table/table-skeleton.component.d.ts +2 -2
- package/table/table.component.d.ts +13 -11
- package/tabs/tab.component.d.ts +1 -1
- package/tabs/tabs.component.d.ts +2 -2
- package/tag/tag.component.d.ts +1 -1
- package/time-picker/time-picker-panel.component.d.ts +2 -2
- package/time-picker/time-picker.component.d.ts +5 -5
- package/timeline/timeline.component.d.ts +1 -1
- package/tooltip/tooltip.directive.d.ts +10 -2
- package/tree/tree-node.component.d.ts +20 -5
- package/tree/tree.component.d.ts +17 -7
- package/tree/tree.service.d.ts +1 -1
- package/tree-select/tree-select.component.d.ts +7 -7
- package/upload/file-select.component.d.ts +7 -8
- package/vote/vote.component.d.ts +3 -3
- package/watermark/watermark.directive.d.ts +1 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Platform } from '@angular/cdk/platform';
|
|
2
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Inject, Input, NgZone, Output, Renderer2, ViewChild, ViewEncapsulation,
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Inject, Input, NgZone, Output, Renderer2, ViewChild, ViewEncapsulation, numberAttribute } from '@angular/core';
|
|
3
3
|
import { Subject, fromEvent } from 'rxjs';
|
|
4
4
|
import { takeUntil, throttleTime } from 'rxjs/operators';
|
|
5
5
|
import { DOCUMENT, NgClass, NgIf, NgStyle, NgTemplateOutlet } from '@angular/common';
|
|
6
6
|
import { ThyAffix } from 'ngx-tethys/affix';
|
|
7
7
|
import { ThyScrollService } from 'ngx-tethys/core';
|
|
8
|
-
import { getOffset } from 'ngx-tethys/util';
|
|
8
|
+
import { coerceBooleanProperty, getOffset } from 'ngx-tethys/util';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "@angular/cdk/platform";
|
|
11
11
|
import * as i2 from "ngx-tethys/core";
|
|
@@ -189,7 +189,7 @@ export class ThyAnchor {
|
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
191
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyAnchor, deps: [{ token: DOCUMENT }, { token: i0.ChangeDetectorRef }, { token: i1.Platform }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i2.ThyScrollService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
192
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyAnchor, isStandalone: true, selector: "thy-anchor", inputs: { thyAffix: ["thyAffix", "thyAffix",
|
|
192
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyAnchor, isStandalone: true, selector: "thy-anchor", inputs: { thyAffix: ["thyAffix", "thyAffix", coerceBooleanProperty], thyBounds: ["thyBounds", "thyBounds", numberAttribute], thyOffsetTop: ["thyOffsetTop", "thyOffsetTop", numberAttribute], thyContainer: "thyContainer", thyDirection: "thyDirection" }, outputs: { thyClick: "thyClick", thyScroll: "thyScroll" }, viewQueries: [{ propertyName: "ink", first: true, predicate: ["ink"], descendants: true }], exportAs: ["thyAnchor"], usesOnChanges: true, ngImport: i0, template: `
|
|
193
193
|
<thy-affix *ngIf="thyAffix; else content" [thyOffsetTop]="thyOffsetTop" [thyContainer]="container">
|
|
194
194
|
<ng-template [ngTemplateOutlet]="content"></ng-template>
|
|
195
195
|
</thy-affix>
|
|
@@ -245,7 +245,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
245
245
|
args: ['ink']
|
|
246
246
|
}], thyAffix: [{
|
|
247
247
|
type: Input,
|
|
248
|
-
args: [{ transform:
|
|
248
|
+
args: [{ transform: coerceBooleanProperty }]
|
|
249
249
|
}], thyBounds: [{
|
|
250
250
|
type: Input,
|
|
251
251
|
args: [{ transform: numberAttribute }]
|
|
@@ -261,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
261
261
|
}], thyScroll: [{
|
|
262
262
|
type: Output
|
|
263
263
|
}] } });
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hbmNob3IvYW5jaG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBR04sTUFBTSxFQUNOLFNBQVMsRUFFVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFRNUMsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUM7QUFFckM7OztHQUdHO0FBNEJILE1BQU0sT0FBTyxTQUFTO0lBd0RsQixZQUM4QixRQUFhLEVBQy9CLEdBQXNCLEVBQ3RCLFFBQWtCLEVBQ2xCLElBQVksRUFDWixRQUFtQixFQUNuQixhQUErQixFQUMvQixVQUFzQjtRQU5KLGFBQVEsR0FBUixRQUFRLENBQUs7UUFDL0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIs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QU8sQ0FBQztpQkFDaEU7OzBCQTBEUSxNQUFNOzJCQUFDLFFBQVE7cU1BeERNLEdBQUc7c0JBQTVCLFNBQVM7dUJBQUMsS0FBSztnQkFLd0IsUUFBUTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNdEMsU0FBUztzQkFEUixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFPckMsWUFBWTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFPNUIsWUFBWTtzQkFBcEIsS0FBSztnQkFNRyxZQUFZO3NCQUFwQixLQUFLO2dCQUthLFFBQVE7c0JBQTFCLE1BQU07Z0JBS1ksU0FBUztzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCwgdGhyb3R0bGVUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBET0NVTUVOVCwgTmdDbGFzcywgTmdJZiwgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUaHlBZmZpeCB9IGZyb20gJ25neC10ZXRoeXMvYWZmaXgnO1xuaW1wb3J0IHsgVGh5U2Nyb2xsU2VydmljZSB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBnZXRPZmZzZXQgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgVGh5QW5jaG9yTGluayB9IGZyb20gJy4vYW5jaG9yLWxpbmsuY29tcG9uZW50JztcblxuaW50ZXJmYWNlIFNlY3Rpb24ge1xuICAgIGxpbmtDb21wb25lbnQ6IFRoeUFuY2hvckxpbms7XG4gICAgdG9wOiBudW1iZXI7XG59XG5cbmNvbnN0IHNoYXJwTWF0Y2hlclJlZ3ggPSAvIyhbXiNdKykkLztcblxuLyoqXG4gKiDplJrngrnnu4Tku7ZcbiAqIEBuYW1lIHRoeS1hbmNob3JcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktYW5jaG9yJyxcbiAgICBleHBvcnRBczogJ3RoeUFuY2hvcicsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHRoeS1hZmZpeCAqbmdJZj1cInRoeUFmZml4OyBlbHNlIGNvbnRlbnRcIiBbdGh5T2Zmc2V0VG9wXT1cInRoeU9mZnNldFRvcFwiIFt0aHlDb250YWluZXJdPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdGh5LWFmZml4PlxuICAgICAgICA8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0aHktYW5jaG9yLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3RoeS1hbmNob3Itd3JhcHBlci1ob3Jpem9udGFsJzogdGh5RGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcgfVwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwid3JhcHBlclN0eWxlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRoeS1hbmNob3JcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRoeS1hbmNob3ItaW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGh5LWFuY2hvci1pbmstZnVsbFwiICNpbms+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICBgLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgVGh5QWZmaXgsIE5nVGVtcGxhdGVPdXRsZXQsIE5nU3R5bGUsIE5nQ2xhc3NdXG59KVxuZXhwb3J0IGNsYXNzIFRoeUFuY2hvciBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgICBAVmlld0NoaWxkKCdpbmsnKSBwcml2YXRlIGluayE6IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiDlm7rlrprmqKHlvI9cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdGh5QWZmaXggPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog6ZSa54K55Yy65Z+f6L6555WM77yM5Y2V5L2N77yacHhcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHRoeUJvdW5kcyA9IDU7XG5cbiAgICAvKipcbiAgICAgKiDnvJPlhrLnmoTlgY/np7vph4/pmIjlgLxcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHRoeU9mZnNldFRvcD86IG51bWJlciA9IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIOaMh+Wumua7muWKqOeahOWuueWZqFxuICAgICAqIEB0eXBlIHN0cmluZyB8IEhUTUxFbGVtZW50XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5Q29udGFpbmVyPzogc3RyaW5nIHwgSFRNTEVsZW1lbnQ7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7lr7zoiKrmlrnlkJFcbiAgICAgKiBAdHlwZSAndmVydGljYWwnIHwgJ2hvcml6b250YWwnXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5RGlyZWN0aW9uOiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnID0gJ3ZlcnRpY2FsJztcblxuICAgIC8qKlxuICAgICAqIOeCueWHu+mhueinpuWPkVxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5QW5jaG9yTGluaz4oKTtcblxuICAgIC8qKlxuICAgICAqIOa7muWKqOWIsOafkOmUmueCueaXtuinpuWPkVxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlTY3JvbGwgPSBuZXcgRXZlbnRFbWl0dGVyPFRoeUFuY2hvckxpbms+KCk7XG5cbiAgICB2aXNpYmxlID0gZmFsc2U7XG5cbiAgICB3cmFwcGVyU3R5bGUgPSB7ICdtYXgtaGVpZ2h0JzogJzEwMHZoJyB9O1xuXG4gICAgY29udGFpbmVyPzogSFRNTEVsZW1lbnQgfCBXaW5kb3c7XG5cbiAgICBwcml2YXRlIGxpbmtzOiBUaHlBbmNob3JMaW5rW10gPSBbXTtcblxuICAgIHByaXZhdGUgYW5pbWF0aW5nID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHByaXZhdGUgaGFuZGxlU2Nyb2xsVGltZW91dElEID0gLTE7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55LFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgICAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIHNjcm9sbFNlcnZpY2U6IFRoeVNjcm9sbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICAgICkge31cblxuICAgIHJlZ2lzdGVyTGluayhsaW5rOiBUaHlBbmNob3JMaW5rKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGlua3MucHVzaChsaW5rKTtcbiAgICB9XG5cbiAgICB1bnJlZ2lzdGVyTGluayhsaW5rOiBUaHlBbmNob3JMaW5rKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGlua3Muc3BsaWNlKHRoaXMubGlua3MuaW5kZXhPZihsaW5rKSwgMSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb250YWluZXIoKTogSFRNTEVsZW1lbnQgfCBXaW5kb3cge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWluZXIgfHwgd2luZG93O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53YXJuaW5nUHJvbXB0KCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJTY3JvbGxFdmVudCgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5oYW5kbGVTY3JvbGxUaW1lb3V0SUQpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgd2FybmluZ1Byb21wdCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5RGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gdGhpcy5saW5rcy5zb21lKGxpbmsgPT5cbiAgICAgICAgICAgICAgICBBcnJheS5mcm9tKGxpbms/LmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmNoaWxkTm9kZXMpPy5zb21lKChpdGVtOiBIVE1MRWxlbWVudCkgPT5cbiAgICAgICAgICAgICAgICAgICAgaXRlbT8uY2xhc3NOYW1lLmluY2x1ZGVzKCd0aHktYW5jaG9yLWxpbmsnKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoaGFzQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJBbmNob3IgbGluayBuZXN0aW5nIGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiAnQW5jaG9yJyBkaXJlY3Rpb24gaXMgaG9yaXpvbnRhbC5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyU2Nyb2xsRXZlbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLmdldENvbnRhaW5lcigpLCAnc2Nyb2xsJywgeyBwYXNzaXZlOiB0cnVlIH0pXG4gICAgICAgICAgICAgICAgLnBpcGUodGhyb3R0bGVUaW1lKDUwKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5oYW5kbGVTY3JvbGwoKSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBCcm93c2VyIHdvdWxkIG1haW50YWluIHRoZSBzY3JvbGxpbmcgcG9zaXRpb24gd2hlbiByZWZyZXNoaW5nLlxuICAgICAgICAvLyBTbyB3ZSBoYXZlIHRvIGRlbGF5IGNhbGN1bGF0aW9uIGluIGF2b2lkIG9mIGdldHRpbmcgYSBpbmNvcnJlY3QgcmVzdWx0LlxuICAgICAgICB0aGlzLmhhbmRsZVNjcm9sbFRpbWVvdXRJRCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5oYW5kbGVTY3JvbGwoKSk7XG4gICAgfVxuXG4gICAgaGFuZGxlU2Nyb2xsKCk6IHZvaWQge1xuICAgICAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJyB8fCB0aGlzLmFuaW1hdGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcjogSFRNTEVsZW1lbnQgPSB0aGlzLmNvbnRhaW5lciBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gdGhpcy5jb250YWluZXIgOiB0aGlzLmRvY3VtZW50O1xuXG4gICAgICAgIGNvbnN0IHNlY3Rpb25zOiBTZWN0aW9uW10gPSBbXTtcbiAgICAgICAgY29uc3Qgc2NvcGUgPSAodGhpcy50aHlPZmZzZXRUb3AgfHwgMCkgKyB0aGlzLnRoeUJvdW5kcztcbiAgICAgICAgdGhpcy5saW5rcy5mb3JFYWNoKGxpbmtDb21wb25lbnQgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2hhcnBMaW5rTWF0Y2ggPSBzaGFycE1hdGNoZXJSZWd4LmV4ZWMobGlua0NvbXBvbmVudC50aHlIcmVmLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgaWYgKCFzaGFycExpbmtNYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKGAjJHtzaGFycExpbmtNYXRjaFsxXX1gKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b3AgPSBnZXRPZmZzZXQodGFyZ2V0LCB0aGlzLmdldENvbnRhaW5lcigpKS50b3A7XG4gICAgICAgICAgICAgICAgaWYgKHRvcCA8IHNjb3BlKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlua0NvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudmlzaWJsZSA9ICEhc2VjdGlvbnMubGVuZ3RoO1xuICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbWF4U2VjdGlvbiA9IHNlY3Rpb25zLnJlZHVjZSgocHJldiwgY3VycikgPT4gKGN1cnIudG9wID4gcHJldi50b3AgPyBjdXJyIDogcHJldikpO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVBY3RpdmUobWF4U2VjdGlvbi5saW5rQ29tcG9uZW50KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFZpc2libGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyQWN0aXZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxpbmtzLmZvckVhY2goaSA9PiB7XG4gICAgICAgICAgICBpLnVuc2V0QWN0aXZlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQWN0aXZlKGxpbmtDb21wb25lbnQ6IFRoeUFuY2hvckxpbmspOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xuICAgICAgICBsaW5rQ29tcG9uZW50LnNldEFjdGl2ZSgpO1xuICAgICAgICBjb25zdCBsaW5rTm9kZSA9IGxpbmtDb21wb25lbnQuZ2V0TGlua1RpdGxlRWxlbWVudCgpO1xuICAgICAgICBjb25zdCBob3Jpem9udGFsQW5jaG9yID0gdGhpcy50aHlEaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJztcblxuICAgICAgICB0aGlzLmluay5uYXRpdmVFbGVtZW50LnN0eWxlLnRvcCA9IGhvcml6b250YWxBbmNob3IgPyAnJyA6IGAke2xpbmtOb2RlLm9mZnNldFRvcH1weGA7XG4gICAgICAgIHRoaXMuaW5rLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gaG9yaXpvbnRhbEFuY2hvciA/ICcnIDogYCR7bGlua05vZGUuY2xpZW50SGVpZ2h0fXB4YDtcbiAgICAgICAgdGhpcy5pbmsubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gaG9yaXpvbnRhbEFuY2hvciA/IGAke2xpbmtOb2RlLm9mZnNldExlZnR9cHhgIDogJyc7XG4gICAgICAgIHRoaXMuaW5rLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSBob3Jpem9udGFsQW5jaG9yID8gYCR7bGlua05vZGUuY2xpZW50V2lkdGh9cHhgIDogJyc7XG4gICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZSgpO1xuICAgICAgICB0aGlzLnRoeVNjcm9sbC5lbWl0KGxpbmtDb21wb25lbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmlzaWJsZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmlzaWJsZSA9IHRoaXMudmlzaWJsZTtcbiAgICAgICAgY29uc3QgdmlzaWJsZUNsYXNzbmFtZSA9ICd2aXNpYmxlJztcbiAgICAgICAgaWYgKHRoaXMuaW5rKSB7XG4gICAgICAgICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5pbmsubmF0aXZlRWxlbWVudCwgdmlzaWJsZUNsYXNzbmFtZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5pbmsubmF0aXZlRWxlbWVudCwgdmlzaWJsZUNsYXNzbmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVTY3JvbGxUbyhsaW5rQ29tcG9uZW50OiBUaHlBbmNob3JMaW5rKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcjogSFRNTEVsZW1lbnQgPSB0aGlzLmNvbnRhaW5lciBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gdGhpcy5jb250YWluZXIgOiB0aGlzLmRvY3VtZW50O1xuICAgICAgICBjb25zdCBsaW5rRWxlbWVudDogSFRNTEVsZW1lbnQgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcihsaW5rQ29tcG9uZW50LnRoeUhyZWYpO1xuICAgICAgICBpZiAoIWxpbmtFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFuaW1hdGluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNjcm9sbFRvcCA9IHRoaXMuc2Nyb2xsU2VydmljZS5nZXRTY3JvbGwodGhpcy5nZXRDb250YWluZXIoKSk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRPZmZzZXRUb3AgPSBnZXRPZmZzZXQobGlua0VsZW1lbnQsIHRoaXMuZ2V0Q29udGFpbmVyKCkpLnRvcDtcbiAgICAgICAgY29uc3QgdGFyZ2V0U2Nyb2xsVG9wID0gY29udGFpbmVyU2Nyb2xsVG9wICsgZWxlbWVudE9mZnNldFRvcCAtICh0aGlzLnRoeU9mZnNldFRvcCB8fCAwKTtcbiAgICAgICAgdGhpcy5zY3JvbGxTZXJ2aWNlLnNjcm9sbFRvKHRoaXMuZ2V0Q29udGFpbmVyKCksIHRhcmdldFNjcm9sbFRvcCwgdW5kZWZpbmVkLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGluZyA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5oYW5kbGVBY3RpdmUobGlua0NvbXBvbmVudCk7XG4gICAgICAgIHRoaXMudGh5Q2xpY2suZW1pdChsaW5rQ29tcG9uZW50KTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgdGh5T2Zmc2V0VG9wLCB0aHlDb250YWluZXIgfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmICh0aHlPZmZzZXRUb3ApIHtcbiAgICAgICAgICAgIHRoaXMud3JhcHBlclN0eWxlID0ge1xuICAgICAgICAgICAgICAgICdtYXgtaGVpZ2h0JzogYGNhbGMoMTAwdmggLSAke3RoaXMudGh5T2Zmc2V0VG9wfXB4KWBcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoeUNvbnRhaW5lciAmJiB0aGlzLnRoeUNvbnRhaW5lcikge1xuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy50aHlDb250YWluZXI7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lciA9IHR5cGVvZiBjb250YWluZXIgPT09ICdzdHJpbmcnID8gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGNvbnRhaW5lcikgOiBjb250YWluZXI7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyU2Nyb2xsRXZlbnQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hbmNob3IvYW5jaG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBR04sTUFBTSxFQUNOLFNBQVMsRUFFVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVFuRSxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQztBQUVyQzs7O0dBR0c7QUE0QkgsTUFBTSxPQUFPLFNBQVM7SUF3RGxCLFlBQzhCLFFBQWEsRUFDL0IsR0FBc0IsRUFDdEIsUUFBa0IsRUFDbEIsSUFBWSxFQUNaLFFBQW1CLEVBQ25CLGFBQStCLEVBQy9CLFVBQXNCO1FBTkosYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUMvQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0Qixh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TyxDQUFDO2lCQUNoRTs7MEJBMERRLE1BQU07MkJBQUMsUUFBUTtxTUF4RE0sR0FBRztzQkFBNUIsU0FBUzt1QkFBQyxLQUFLO2dCQUs2QixRQUFRO3NCQUFwRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQU0zQyxTQUFTO3NCQURSLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQU9yQyxZQUFZO3NCQURYLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQU81QixZQUFZO3NCQUFwQixLQUFLO2dCQU1HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS2EsUUFBUTtzQkFBMUIsTUFBTTtnQkFLWSxTQUFTO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCwgdGhyb3R0bGVUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBET0NVTUVOVCwgTmdDbGFzcywgTmdJZiwgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUaHlBZmZpeCB9IGZyb20gJ25neC10ZXRoeXMvYWZmaXgnO1xuaW1wb3J0IHsgVGh5U2Nyb2xsU2VydmljZSB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIGdldE9mZnNldCB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBUaHlBbmNob3JMaW5rIH0gZnJvbSAnLi9hbmNob3ItbGluay5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgU2VjdGlvbiB7XG4gICAgbGlua0NvbXBvbmVudDogVGh5QW5jaG9yTGluaztcbiAgICB0b3A6IG51bWJlcjtcbn1cblxuY29uc3Qgc2hhcnBNYXRjaGVyUmVneCA9IC8jKFteI10rKSQvO1xuXG4vKipcbiAqIOmUmueCuee7hOS7tlxuICogQG5hbWUgdGh5LWFuY2hvclxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1hbmNob3InLFxuICAgIGV4cG9ydEFzOiAndGh5QW5jaG9yJyxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8dGh5LWFmZml4ICpuZ0lmPVwidGh5QWZmaXg7IGVsc2UgY29udGVudFwiIFt0aHlPZmZzZXRUb3BdPVwidGh5T2Zmc2V0VG9wXCIgW3RoeUNvbnRhaW5lcl09XCJjb250YWluZXJcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC90aHktYWZmaXg+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRoeS1hbmNob3Itd3JhcHBlclwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAndGh5LWFuY2hvci13cmFwcGVyLWhvcml6b250YWwnOiB0aHlEaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyB9XCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ3cmFwcGVyU3R5bGVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGh5LWFuY2hvclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGh5LWFuY2hvci1pbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aHktYW5jaG9yLWluay1mdWxsXCIgI2luaz48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIGAsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBUaHlBZmZpeCwgTmdUZW1wbGF0ZU91dGxldCwgTmdTdHlsZSwgTmdDbGFzc11cbn0pXG5leHBvcnQgY2xhc3MgVGh5QW5jaG9yIGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICAgIEBWaWV3Q2hpbGQoJ2luaycpIHByaXZhdGUgaW5rITogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIOWbuuWumuaooeW8j1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUFmZml4ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOmUmueCueWMuuWfn+i+ueeVjO+8jOWNleS9je+8mnB4XG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgICB0aHlCb3VuZHMgPSA1O1xuXG4gICAgLyoqXG4gICAgICog57yT5Yay55qE5YGP56e76YeP6ZiI5YC8XG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgICB0aHlPZmZzZXRUb3A/OiBudW1iZXIgPSB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiDmjIflrprmu5rliqjnmoTlrrnlmahcbiAgICAgKiBAdHlwZSBzdHJpbmcgfCBIVE1MRWxlbWVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUNvbnRhaW5lcj86IHN0cmluZyB8IEhUTUxFbGVtZW50O1xuXG4gICAgLyoqXG4gICAgICog6K6+572u5a+86Iiq5pa55ZCRXG4gICAgICogQHR5cGUgJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeURpcmVjdGlvbjogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJyA9ICd2ZXJ0aWNhbCc7XG5cbiAgICAvKipcbiAgICAgKiDngrnlh7vpobnop6blj5FcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFRoeUFuY2hvckxpbms+KCk7XG5cbiAgICAvKipcbiAgICAgKiDmu5rliqjliLDmn5DplJrngrnml7bop6blj5FcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5U2Nyb2xsID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlBbmNob3JMaW5rPigpO1xuXG4gICAgdmlzaWJsZSA9IGZhbHNlO1xuXG4gICAgd3JhcHBlclN0eWxlID0geyAnbWF4LWhlaWdodCc6ICcxMDB2aCcgfTtcblxuICAgIGNvbnRhaW5lcj86IEhUTUxFbGVtZW50IHwgV2luZG93O1xuXG4gICAgcHJpdmF0ZSBsaW5rczogVGh5QW5jaG9yTGlua1tdID0gW107XG5cbiAgICBwcml2YXRlIGFuaW1hdGluZyA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcml2YXRlIGhhbmRsZVNjcm9sbFRpbWVvdXRJRCA9IC0xO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHBsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAgICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBzY3JvbGxTZXJ2aWNlOiBUaHlTY3JvbGxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgICApIHt9XG5cbiAgICByZWdpc3RlckxpbmsobGluazogVGh5QW5jaG9yTGluayk6IHZvaWQge1xuICAgICAgICB0aGlzLmxpbmtzLnB1c2gobGluayk7XG4gICAgfVxuXG4gICAgdW5yZWdpc3RlckxpbmsobGluazogVGh5QW5jaG9yTGluayk6IHZvaWQge1xuICAgICAgICB0aGlzLmxpbmtzLnNwbGljZSh0aGlzLmxpbmtzLmluZGV4T2YobGluayksIDEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29udGFpbmVyKCk6IEhUTUxFbGVtZW50IHwgV2luZG93IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFpbmVyIHx8IHdpbmRvdztcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2FybmluZ1Byb21wdCgpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyU2Nyb2xsRXZlbnQoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaGFuZGxlU2Nyb2xsVGltZW91dElEKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdhcm5pbmdQcm9tcHQoKSB7XG4gICAgICAgIGlmICh0aGlzLnRoeURpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNDaGlsZHJlbiA9IHRoaXMubGlua3Muc29tZShsaW5rID0+XG4gICAgICAgICAgICAgICAgQXJyYXkuZnJvbShsaW5rPy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5jaGlsZE5vZGVzKT8uc29tZSgoaXRlbTogSFRNTEVsZW1lbnQpID0+XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0/LmNsYXNzTmFtZS5pbmNsdWRlcygndGh5LWFuY2hvci1saW5rJylcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiQW5jaG9yIGxpbmsgbmVzdGluZyBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gJ0FuY2hvcicgZGlyZWN0aW9uIGlzIGhvcml6b250YWwuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlclNjcm9sbEV2ZW50KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMucGxhdGZvcm0uaXNCcm93c2VyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5nZXRDb250YWluZXIoKSwgJ3Njcm9sbCcsIHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICAgICAgICAgICAgICAgIC5waXBlKHRocm90dGxlVGltZSg1MCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuaGFuZGxlU2Nyb2xsKCkpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gQnJvd3NlciB3b3VsZCBtYWludGFpbiB0aGUgc2Nyb2xsaW5nIHBvc2l0aW9uIHdoZW4gcmVmcmVzaGluZy5cbiAgICAgICAgLy8gU28gd2UgaGF2ZSB0byBkZWxheSBjYWxjdWxhdGlvbiBpbiBhdm9pZCBvZiBnZXR0aW5nIGEgaW5jb3JyZWN0IHJlc3VsdC5cbiAgICAgICAgdGhpcy5oYW5kbGVTY3JvbGxUaW1lb3V0SUQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaGFuZGxlU2Nyb2xsKCkpO1xuICAgIH1cblxuICAgIGhhbmRsZVNjcm9sbCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgdGhpcy5hbmltYXRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250YWluZXI6IEhUTUxFbGVtZW50ID0gdGhpcy5jb250YWluZXIgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCA/IHRoaXMuY29udGFpbmVyIDogdGhpcy5kb2N1bWVudDtcblxuICAgICAgICBjb25zdCBzZWN0aW9uczogU2VjdGlvbltdID0gW107XG4gICAgICAgIGNvbnN0IHNjb3BlID0gKHRoaXMudGh5T2Zmc2V0VG9wIHx8IDApICsgdGhpcy50aHlCb3VuZHM7XG4gICAgICAgIHRoaXMubGlua3MuZm9yRWFjaChsaW5rQ29tcG9uZW50ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNoYXJwTGlua01hdGNoID0gc2hhcnBNYXRjaGVyUmVneC5leGVjKGxpbmtDb21wb25lbnQudGh5SHJlZi50b1N0cmluZygpKTtcbiAgICAgICAgICAgIGlmICghc2hhcnBMaW5rTWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcihgIyR7c2hhcnBMaW5rTWF0Y2hbMV19YCkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAodGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9wID0gZ2V0T2Zmc2V0KHRhcmdldCwgdGhpcy5nZXRDb250YWluZXIoKSkudG9wO1xuICAgICAgICAgICAgICAgIGlmICh0b3AgPCBzY29wZSkge1xuICAgICAgICAgICAgICAgICAgICBzZWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnZpc2libGUgPSAhIXNlY3Rpb25zLmxlbmd0aDtcbiAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJBY3RpdmUoKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG1heFNlY3Rpb24gPSBzZWN0aW9ucy5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IChjdXJyLnRvcCA+IHByZXYudG9wID8gY3VyciA6IHByZXYpKTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQWN0aXZlKG1heFNlY3Rpb24ubGlua0NvbXBvbmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRWaXNpYmxlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhckFjdGl2ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5saW5rcy5mb3JFYWNoKGkgPT4ge1xuICAgICAgICAgICAgaS51bnNldEFjdGl2ZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUFjdGl2ZShsaW5rQ29tcG9uZW50OiBUaHlBbmNob3JMaW5rKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xlYXJBY3RpdmUoKTtcbiAgICAgICAgbGlua0NvbXBvbmVudC5zZXRBY3RpdmUoKTtcbiAgICAgICAgY29uc3QgbGlua05vZGUgPSBsaW5rQ29tcG9uZW50LmdldExpbmtUaXRsZUVsZW1lbnQoKTtcbiAgICAgICAgY29uc3QgaG9yaXpvbnRhbEFuY2hvciA9IHRoaXMudGh5RGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCc7XG5cbiAgICAgICAgdGhpcy5pbmsubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSBob3Jpem9udGFsQW5jaG9yID8gJycgOiBgJHtsaW5rTm9kZS5vZmZzZXRUb3B9cHhgO1xuICAgICAgICB0aGlzLmluay5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9IGhvcml6b250YWxBbmNob3IgPyAnJyA6IGAke2xpbmtOb2RlLmNsaWVudEhlaWdodH1weGA7XG4gICAgICAgIHRoaXMuaW5rLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IGhvcml6b250YWxBbmNob3IgPyBgJHtsaW5rTm9kZS5vZmZzZXRMZWZ0fXB4YCA6ICcnO1xuICAgICAgICB0aGlzLmluay5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gaG9yaXpvbnRhbEFuY2hvciA/IGAke2xpbmtOb2RlLmNsaWVudFdpZHRofXB4YCA6ICcnO1xuICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgICAgICB0aGlzLnNldFZpc2libGUoKTtcbiAgICAgICAgdGhpcy50aHlTY3JvbGwuZW1pdChsaW5rQ29tcG9uZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFZpc2libGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZpc2libGUgPSB0aGlzLnZpc2libGU7XG4gICAgICAgIGNvbnN0IHZpc2libGVDbGFzc25hbWUgPSAndmlzaWJsZSc7XG4gICAgICAgIGlmICh0aGlzLmluaykge1xuICAgICAgICAgICAgaWYgKHZpc2libGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaW5rLm5hdGl2ZUVsZW1lbnQsIHZpc2libGVDbGFzc25hbWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaW5rLm5hdGl2ZUVsZW1lbnQsIHZpc2libGVDbGFzc25hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlU2Nyb2xsVG8obGlua0NvbXBvbmVudDogVGh5QW5jaG9yTGluayk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250YWluZXI6IEhUTUxFbGVtZW50ID0gdGhpcy5jb250YWluZXIgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCA/IHRoaXMuY29udGFpbmVyIDogdGhpcy5kb2N1bWVudDtcbiAgICAgICAgY29uc3QgbGlua0VsZW1lbnQ6IEhUTUxFbGVtZW50ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IobGlua0NvbXBvbmVudC50aHlIcmVmKTtcbiAgICAgICAgaWYgKCFsaW5rRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hbmltYXRpbmcgPSB0cnVlO1xuICAgICAgICBjb25zdCBjb250YWluZXJTY3JvbGxUb3AgPSB0aGlzLnNjcm9sbFNlcnZpY2UuZ2V0U2Nyb2xsKHRoaXMuZ2V0Q29udGFpbmVyKCkpO1xuICAgICAgICBjb25zdCBlbGVtZW50T2Zmc2V0VG9wID0gZ2V0T2Zmc2V0KGxpbmtFbGVtZW50LCB0aGlzLmdldENvbnRhaW5lcigpKS50b3A7XG4gICAgICAgIGNvbnN0IHRhcmdldFNjcm9sbFRvcCA9IGNvbnRhaW5lclNjcm9sbFRvcCArIGVsZW1lbnRPZmZzZXRUb3AgLSAodGhpcy50aHlPZmZzZXRUb3AgfHwgMCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsU2VydmljZS5zY3JvbGxUbyh0aGlzLmdldENvbnRhaW5lcigpLCB0YXJnZXRTY3JvbGxUb3AsIHVuZGVmaW5lZCwgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuaGFuZGxlQWN0aXZlKGxpbmtDb21wb25lbnQpO1xuICAgICAgICB0aGlzLnRoeUNsaWNrLmVtaXQobGlua0NvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IHRoeU9mZnNldFRvcCwgdGh5Q29udGFpbmVyIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAodGh5T2Zmc2V0VG9wKSB7XG4gICAgICAgICAgICB0aGlzLndyYXBwZXJTdHlsZSA9IHtcbiAgICAgICAgICAgICAgICAnbWF4LWhlaWdodCc6IGBjYWxjKDEwMHZoIC0gJHt0aGlzLnRoeU9mZnNldFRvcH1weClgXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aHlDb250YWluZXIgJiYgdGhpcy50aHlDb250YWluZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMudGh5Q29udGFpbmVyO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIgPSB0eXBlb2YgY29udGFpbmVyID09PSAnc3RyaW5nJyA/IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihjb250YWluZXIpIDogY29udGFpbmVyO1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlclNjcm9sbEV2ZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, TemplateRef, ViewChild, ChangeDetectionStrategy, ContentChildren, QueryList, Output, EventEmitter, NgZone, ChangeDetectorRef, Input, ElementRef
|
|
1
|
+
import { Component, TemplateRef, ViewChild, ChangeDetectionStrategy, ContentChildren, QueryList, Output, EventEmitter, NgZone, ChangeDetectorRef, Input, ElementRef } from '@angular/core';
|
|
2
2
|
import { defer, merge, Subject, timer } from 'rxjs';
|
|
3
3
|
import { take, switchMap, takeUntil, startWith } from 'rxjs/operators';
|
|
4
4
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
@@ -6,6 +6,7 @@ import { THY_OPTION_PARENT_COMPONENT, ThyOption, ThyOptionSelectionChangeEvent,
|
|
|
6
6
|
import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
|
|
7
7
|
import { ThyEmpty } from 'ngx-tethys/empty';
|
|
8
8
|
import { NgClass, NgIf } from '@angular/common';
|
|
9
|
+
import { coerceBooleanProperty } from 'ngx-tethys/util';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
/**
|
|
11
12
|
* 自动完成组件
|
|
@@ -136,7 +137,7 @@ export class ThyAutocomplete {
|
|
|
136
137
|
this.ngUnsubscribe$.complete();
|
|
137
138
|
}
|
|
138
139
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyAutocomplete, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
139
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyAutocomplete, isStandalone: true, selector: "thy-autocomplete", inputs: { thyEmptyText: "thyEmptyText", thyAutoActiveFirstOption: ["thyAutoActiveFirstOption", "thyAutoActiveFirstOption",
|
|
140
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyAutocomplete, isStandalone: true, selector: "thy-autocomplete", inputs: { thyEmptyText: "thyEmptyText", thyAutoActiveFirstOption: ["thyAutoActiveFirstOption", "thyAutoActiveFirstOption", coerceBooleanProperty] }, outputs: { thyOptionSelected: "thyOptionSelected", thyOpened: "thyOpened", thyClosed: "thyClosed", thyOptionActivated: "thyOptionActivated" }, providers: [
|
|
140
141
|
{
|
|
141
142
|
provide: THY_OPTION_PARENT_COMPONENT,
|
|
142
143
|
useExisting: ThyAutocomplete
|
|
@@ -164,7 +165,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
164
165
|
type: Input
|
|
165
166
|
}], thyAutoActiveFirstOption: [{
|
|
166
167
|
type: Input,
|
|
167
|
-
args: [{ transform:
|
|
168
|
+
args: [{ transform: coerceBooleanProperty }]
|
|
168
169
|
}], thyOptionSelected: [{
|
|
169
170
|
type: Output
|
|
170
171
|
}], thyOpened: [{
|
|
@@ -174,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
174
175
|
}], thyOptionActivated: [{
|
|
175
176
|
type: Output
|
|
176
177
|
}] } });
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsZUFBZSxFQUNmLFNBQVMsRUFFVCxNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sRUFHTixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLFVBQVUsRUFDVixnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFDSCwyQkFBMkIsRUFFM0IsU0FBUyxFQUNULDZCQUE2QixFQUM3QiwyQkFBMkIsRUFDOUIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFXaEQ7OztHQUdHO0FBY0gsTUFBTSxPQUFPLGVBQWU7SUErRXhCLFlBQW9CLE1BQWMsRUFBVSxpQkFBb0M7UUFBNUQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLHNCQUFpQixHQUFq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QkFRa0Msd0JBQXdCO3NCQUEvRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQU01QixpQkFBaUI7c0JBQTFCLE1BQU07Z0JBTVksU0FBUztzQkFBM0IsTUFBTTtnQkFNWSxTQUFTO3NCQUEzQixNQUFNO2dCQU9ZLGtCQUFrQjtzQkFBcEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgUXVlcnlMaXN0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBJbnB1dCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWZlciwgbWVyZ2UsIE9ic2VydmFibGUsIFN1YmplY3QsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHtcbiAgICBUSFlfT1BUSU9OX1BBUkVOVF9DT01QT05FTlQsXG4gICAgSVRoeU9wdGlvblBhcmVudENvbXBvbmVudCxcbiAgICBUaHlPcHRpb24sXG4gICAgVGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQsXG4gICAgVGh5U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlXG59IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgVGh5RW1wdHkgfSBmcm9tICduZ3gtdGV0aHlzL2VtcHR5JztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKiogRXZlbnQgb2JqZWN0IHRoYXQgaXMgZW1pdHRlZCB3aGVuIGFuIGF1dG9jb21wbGV0ZSBvcHRpb24gaXMgYWN0aXZhdGVkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaHlBdXRvY29tcGxldGVBY3RpdmF0ZWRFdmVudCB7XG4gICAgLyoqIFJlZmVyZW5jZSB0byB0aGUgYXV0b2NvbXBsZXRlIHBhbmVsIHRoYXQgZW1pdHRlZCB0aGUgZXZlbnQuICovXG4gICAgc291cmNlOiBUaHlBdXRvY29tcGxldGU7XG5cbiAgICAvKiogT3B0aW9uIHRoYXQgd2FzIHNlbGVjdGVkLiAqL1xuICAgIG9wdGlvbjogVGh5T3B0aW9uIHwgbnVsbDtcbn1cblxuLyoqXG4gKiDoh6rliqjlrozmiJDnu4Tku7ZcbiAqIEBuYW1lIHRoeS1hdXRvY29tcGxldGVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktYXV0b2NvbXBsZXRlJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRIWV9PUFRJT05fUEFSRU5UX0NPTVBPTkVOVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBUaHlBdXRvY29tcGxldGVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGh5U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLCBOZ0NsYXNzLCBOZ0lmLCBUaHlFbXB0eV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5QXV0b2NvbXBsZXRlIGltcGxlbWVudHMgSVRoeU9wdGlvblBhcmVudENvbXBvbmVudCwgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgbmdVbnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZHJvcERvd25DbGFzczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH07XG5cbiAgICBpc011bHRpcGxlID0gZmFsc2U7XG5cbiAgICBtb2RlID0gJyc7XG5cbiAgICBpc0VtcHR5T3B0aW9ucyA9IGZhbHNlO1xuXG4gICAgc2VsZWN0aW9uTW9kZWw6IFNlbGVjdGlvbk1vZGVsPFRoeU9wdGlvbj47XG5cbiAgICBpc09wZW5lZCA9IGZhbHNlO1xuXG4gICAgLyoqIE1hbmFnZXMgYWN0aXZlIGl0ZW0gaW4gb3B0aW9uIGxpc3QgYmFzZWQgb24ga2V5IGV2ZW50cy4gKi9cbiAgICBrZXlNYW5hZ2VyOiBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjxUaHlPcHRpb24+O1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGVudFRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBjb250ZW50VGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvLyBzY3JvbGwgZWxlbWVudCBjb250YWluZXJcbiAgICBAVmlld0NoaWxkKCdwYW5lbCcpXG4gICAgb3B0aW9uc0NvbnRhaW5lcjogRWxlbWVudFJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKFRoeU9wdGlvbiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBvcHRpb25zOiBRdWVyeUxpc3Q8VGh5T3B0aW9uPjtcblxuICAgIHJlYWRvbmx5IG9wdGlvblNlbGVjdGlvbkNoYW5nZXM6IE9ic2VydmFibGU8VGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+ID0gZGVmZXIoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zKSB7XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2UoLi4udGhpcy5vcHRpb25zLm1hcChvcHRpb24gPT4gb3B0aW9uLnNlbGVjdGlvbkNoYW5nZSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLm5nWm9uZS5vblN0YWJsZS5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLm9wdGlvblNlbGVjdGlvbkNoYW5nZXMpXG4gICAgICAgICk7XG4gICAgfSkgYXMgT2JzZXJ2YWJsZTxUaHlPcHRpb25TZWxlY3Rpb25DaGFuZ2VFdmVudD47XG5cbiAgICAvKipcbiAgICAgKiDnqbrpgInpobnml7bnmoTmlofmnKxcbiAgICAgKiBAdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRoeUVtcHR5VGV4dCA9ICfmsqHmnInku7vkvZXmlbDmja4nO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm6buY6K6k6auY5Lqu56ys5LiA5Liq6YCJ6aG5XG4gICAgICogQHR5cGUgYm9vbGVhblxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeUF1dG9BY3RpdmVGaXJzdE9wdGlvbjogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOiiq+mAieS4reaXtuiwg+eUqO+8jOWPguaVsOWMheWQq+mAieS4remhueeahCB2YWx1ZSDlgLxcbiAgICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8VGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeU9wdGlvblNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8VGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlPcHRpb25TZWxlY3Rpb25DaGFuZ2VFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIOWPquivu++8jOWxleW8gOS4i+aLieiPnOWNleeahOWbnuiwg1xuICAgICAqIEB0eXBlIEV2ZW50RW1pdHRlcjx2b2lkPlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlPcGVuZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIOWPquivu++8jOWFs+mXreS4i+aLieiPnOWNleeahOWbnuiwg1xuICAgICAqIEB0eXBlIEV2ZW50RW1pdHRlcjx2b2lkPlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlDbG9zZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFbWl0cyB3aGVuZXZlciBhbiBvcHRpb24gaXMgYWN0aXZhdGVkIHVzaW5nIHRoZSBrZXlib2FyZC4gKi9cbiAgICAvKipcbiAgICAgKiDlj6ror7vvvIxvcHRpb24g5r+A5rS754q25oCB5Y+Y5YyW5pe277yM6LCD55So5q2k5Ye95pWwXG4gICAgICogQHR5cGUgRXZlbnRFbWl0dGVyPFRoeUF1dG9jb21wbGV0ZUFjdGl2YXRlZEV2ZW50PlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlPcHRpb25BY3RpdmF0ZWQ6IEV2ZW50RW1pdHRlcjxUaHlBdXRvY29tcGxldGVBY3RpdmF0ZWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRoeUF1dG9jb21wbGV0ZUFjdGl2YXRlZEV2ZW50PigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXREcm9wRG93bkNsYXNzKCk7XG4gICAgICAgIHRoaXMuaW5zdGFuY2VTZWxlY3Rpb25Nb2RlbCgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLmNoYW5nZXMucGlwZShzdGFydFdpdGgobnVsbCksIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRPcHRpb25zKCk7XG4gICAgICAgICAgICB0aW1lcigwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNFbXB0eU9wdGlvbnMgPSB0aGlzLm9wdGlvbnMubGVuZ3RoIDw9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuaW5pdEtleU1hbmFnZXIoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaW5pdEtleU1hbmFnZXIoKSB7XG4gICAgICAgIGNvbnN0IGNoYW5nZWRPckRlc3Ryb3llZCQgPSBtZXJnZSh0aGlzLm9wdGlvbnMuY2hhbmdlcywgdGhpcy5uZ1Vuc3Vic2NyaWJlJCk7XG4gICAgICAgIHRoaXMua2V5TWFuYWdlciA9IG5ldyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjxUaHlPcHRpb24+KHRoaXMub3B0aW9ucykud2l0aFdyYXAoKTtcbiAgICAgICAgdGhpcy5rZXlNYW5hZ2VyLmNoYW5nZS5waXBlKHRha2VVbnRpbChjaGFuZ2VkT3JEZXN0cm95ZWQkKSkuc3Vic2NyaWJlKGluZGV4ID0+IHtcbiAgICAgICAgICAgIHRoaXMudGh5T3B0aW9uQWN0aXZhdGVkLmVtaXQoeyBzb3VyY2U6IHRoaXMsIG9wdGlvbjogdGhpcy5vcHRpb25zLnRvQXJyYXkoKVtpbmRleF0gfHwgbnVsbCB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3BlbigpIHtcbiAgICAgICAgdGhpcy5pc09wZW5lZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIHRoaXMudGh5T3BlbmVkLmVtaXQoKTtcbiAgICB9XG5cbiAgICBjbG9zZSgpIHtcbiAgICAgICAgdGhpcy5pc09wZW5lZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRoeUNsb3NlZC5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldE9wdGlvbnMoKSB7XG4gICAgICAgIGNvbnN0IGNoYW5nZWRPckRlc3Ryb3llZCQgPSBtZXJnZSh0aGlzLm9wdGlvbnMuY2hhbmdlcywgdGhpcy5uZ1Vuc3Vic2NyaWJlJCk7XG5cbiAgICAgICAgdGhpcy5vcHRpb25TZWxlY3Rpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKGNoYW5nZWRPckRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKGV2ZW50OiBUaHlPcHRpb25TZWxlY3Rpb25DaGFuZ2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblNlbGVjdChldmVudC5vcHRpb24sIGV2ZW50LmlzVXNlcklucHV0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbnN0YW5jZVNlbGVjdGlvbk1vZGVsKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwgPSBuZXcgU2VsZWN0aW9uTW9kZWw8VGh5T3B0aW9uPih0aGlzLmlzTXVsdGlwbGUpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmNoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlJCkpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBldmVudC5hZGRlZC5mb3JFYWNoKG9wdGlvbiA9PiBvcHRpb24uc2VsZWN0KCkpO1xuICAgICAgICAgICAgZXZlbnQucmVtb3ZlZC5mb3JFYWNoKG9wdGlvbiA9PiBvcHRpb24uZGVzZWxlY3QoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25TZWxlY3Qob3B0aW9uOiBUaHlPcHRpb24sIGlzVXNlcklucHV0OiBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IHdhc1NlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKG9wdGlvbik7XG5cbiAgICAgICAgaWYgKG9wdGlvbi50aHlWYWx1ZSA9PSBudWxsICYmICF0aGlzLmlzTXVsdGlwbGUpIHtcbiAgICAgICAgICAgIG9wdGlvbi5kZXNlbGVjdCgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHdhc1NlbGVjdGVkICE9PSBvcHRpb24uc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBvcHRpb24uc2VsZWN0ZWQgPyB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdChvcHRpb24pIDogdGhpcy5zZWxlY3Rpb25Nb2RlbC5kZXNlbGVjdChvcHRpb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaXNVc2VySW5wdXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmtleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShvcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHdhc1NlbGVjdGVkICE9PSB0aGlzLnNlbGVjdGlvbk1vZGVsLmlzU2VsZWN0ZWQob3B0aW9uKSkge1xuICAgICAgICAgICAgdGhpcy50aHlPcHRpb25TZWxlY3RlZC5lbWl0KG5ldyBUaHlPcHRpb25TZWxlY3Rpb25DaGFuZ2VFdmVudChvcHRpb24sIGZhbHNlKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERyb3BEb3duQ2xhc3MoKSB7XG4gICAgICAgIGxldCBtb2RlQ2xhc3MgPSAnJztcbiAgICAgICAgaWYgKHRoaXMuaXNNdWx0aXBsZSkge1xuICAgICAgICAgICAgbW9kZUNsYXNzID0gYHRoeS1zZWxlY3QtZHJvcGRvd24tJHt0aGlzLm1vZGV9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1vZGVDbGFzcyA9IGB0aHktc2VsZWN0LWRyb3Bkb3duLXNpbmdsZWA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kcm9wRG93bkNsYXNzID0ge1xuICAgICAgICAgICAgW2B0aHktc2VsZWN0LWRyb3Bkb3duYF06IHRydWUsXG4gICAgICAgICAgICBbbW9kZUNsYXNzXTogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlPlxuICA8ZGl2IHRoeVN0b3BQcm9wYWdhdGlvbiBbbmdDbGFzc109XCJkcm9wRG93bkNsYXNzXCI+XG4gICAgPGRpdiAjcGFuZWwgY2xhc3M9XCJ0aHktc2VsZWN0LWRyb3Bkb3duLW9wdGlvbnNcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDx0aHktZW1wdHkgKm5nSWY9XCJpc0VtcHR5T3B0aW9uc1wiIFt0aHlNZXNzYWdlXT1cInRoeUVtcHR5VGV4dFwiPjwvdGh5LWVtcHR5PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsZUFBZSxFQUNmLFNBQVMsRUFFVCxNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sRUFHTixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLFVBQVUsRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBYyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUNILDJCQUEyQixFQUUzQixTQUFTLEVBQ1QsNkJBQTZCLEVBQzdCLDJCQUEyQixFQUM5QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVd4RDs7O0dBR0c7QUFjSCxNQUFNLE9BQU8sZUFBZTtJQStFeEIsWUFBb0IsTUFBYyxFQUFVLGlCQUFvQztRQUE1RCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQTlFeEUsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBSTdDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUVWLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBSXZCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFpQlIsMkJBQXNCLEdBQThDLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDcEYsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FDM0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FDL0MsQ0FBQztRQUNOLENBQUMsQ0FBOEMsQ0FBQztRQUVoRDs7O1dBR0c7UUFFSCxpQkFBWSxHQUFHLFFBQVEsQ0FBQztRQVN4Qjs7O1dBR0c7UUFDTyxzQkFBaUIsR0FBZ0QsSUFBSSxZQUFZLEVBQWlDLENBQUM7UUFFN0g7OztXQUdHO1FBQ2dCLGNBQVMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU1RTs7O1dBR0c7UUFDZ0IsY0FBUyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTVFLGdFQUFnRTtRQUNoRTs7O1dBR0c7UUFDZ0IsdUJBQWtCLEdBQWdELElBQUksWUFBWSxFQUFpQyxDQUFDO0lBRXBELENBQUM7SUFFcEYsUUFBUTtRQUNKLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3RGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzQyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxjQUFjO1FBQ1YsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSwwQkFBMEIsQ0FBWSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbEcsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFBSTtRQUNBLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sWUFBWTtRQUNoQixNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFN0UsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQW9DLEVBQUUsRUFBRTtZQUNoSCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLHNCQUFzQjtRQUMxQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hDLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFZLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvRSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQy9DLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sUUFBUSxDQUFDLE1BQWlCLEVBQUUsV0FBb0I7UUFDcEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0QsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM5QyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksV0FBVyxLQUFLLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hHLENBQUM7WUFFRCxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxXQUFXLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksNkJBQTZCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEYsQ0FBQztRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixTQUFTLEdBQUcsdUJBQXVCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuRCxDQUFDO2FBQU0sQ0FBQztZQUNKLFNBQVMsR0FBRyw0QkFBNEIsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNqQixDQUFDLHFCQUFxQixDQUFDLEVBQUUsSUFBSTtZQUM3QixDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUk7U0FDcEIsQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7OEdBN0tRLGVBQWU7a0dBQWYsZUFBZSwrS0FvREoscUJBQXFCLCtKQTdEOUI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsMkJBQTJCO2dCQUNwQyxXQUFXLEVBQUUsZUFBZTthQUMvQjtTQUNKLGtEQWdDZ0IsU0FBUyxpUkN0RjlCLCtTQVFBLDRDRGdEYywyQkFBMkIsaUdBQUUsT0FBTyxvRkFBRSxJQUFJLDZGQUFFLFFBQVE7OzJGQUVyRCxlQUFlO2tCQWIzQixTQUFTOytCQUNJLGtCQUFrQixtQkFFWCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSwyQkFBMkI7NEJBQ3BDLFdBQVcsaUJBQWlCO3lCQUMvQjtxQkFDSixjQUNXLElBQUksV0FDUCxDQUFDLDJCQUEyQixFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDOzJHQXFCL0Qsa0JBQWtCO3NCQURqQixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFLOUMsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsT0FBTztnQkFNaUMsT0FBTztzQkFBekQsZUFBZTt1QkFBQyxTQUFTLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQWlCakQsWUFBWTtzQkFEWCxLQUFLO2dCQVF1Qyx3QkFBd0I7c0JBQXBFLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBTWpDLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFNWSxTQUFTO3NCQUEzQixNQUFNO2dCQU1ZLFNBQVM7c0JBQTNCLE1BQU07Z0JBT1ksa0JBQWtCO3NCQUFwQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIElucHV0LFxuICAgIEVsZW1lbnRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWZlciwgbWVyZ2UsIE9ic2VydmFibGUsIFN1YmplY3QsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHtcbiAgICBUSFlfT1BUSU9OX1BBUkVOVF9DT01QT05FTlQsXG4gICAgSVRoeU9wdGlvblBhcmVudENvbXBvbmVudCxcbiAgICBUaHlPcHRpb24sXG4gICAgVGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQsXG4gICAgVGh5U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlXG59IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgVGh5RW1wdHkgfSBmcm9tICduZ3gtdGV0aHlzL2VtcHR5JztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuLyoqIEV2ZW50IG9iamVjdCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiBhbiBhdXRvY29tcGxldGUgb3B0aW9uIGlzIGFjdGl2YXRlZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGh5QXV0b2NvbXBsZXRlQWN0aXZhdGVkRXZlbnQge1xuICAgIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGF1dG9jb21wbGV0ZSBwYW5lbCB0aGF0IGVtaXR0ZWQgdGhlIGV2ZW50LiAqL1xuICAgIHNvdXJjZTogVGh5QXV0b2NvbXBsZXRlO1xuXG4gICAgLyoqIE9wdGlvbiB0aGF0IHdhcyBzZWxlY3RlZC4gKi9cbiAgICBvcHRpb246IFRoeU9wdGlvbiB8IG51bGw7XG59XG5cbi8qKlxuICog6Ieq5Yqo5a6M5oiQ57uE5Lu2XG4gKiBAbmFtZSB0aHktYXV0b2NvbXBsZXRlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWF1dG9jb21wbGV0ZScsXG4gICAgdGVtcGxhdGVVcmw6ICdhdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUSFlfT1BUSU9OX1BBUkVOVF9DT01QT05FTlQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVGh5QXV0b2NvbXBsZXRlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RoeVN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSwgTmdDbGFzcywgTmdJZiwgVGh5RW1wdHldXG59KVxuZXhwb3J0IGNsYXNzIFRoeUF1dG9jb21wbGV0ZSBpbXBsZW1lbnRzIElUaHlPcHRpb25QYXJlbnRDb21wb25lbnQsIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIG5nVW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGRyb3BEb3duQ2xhc3M6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9O1xuXG4gICAgaXNNdWx0aXBsZSA9IGZhbHNlO1xuXG4gICAgbW9kZSA9ICcnO1xuXG4gICAgaXNFbXB0eU9wdGlvbnMgPSBmYWxzZTtcblxuICAgIHNlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxUaHlPcHRpb24+O1xuXG4gICAgaXNPcGVuZWQgPSBmYWxzZTtcblxuICAgIC8qKiBNYW5hZ2VzIGFjdGl2ZSBpdGVtIGluIG9wdGlvbiBsaXN0IGJhc2VkIG9uIGtleSBldmVudHMuICovXG4gICAga2V5TWFuYWdlcjogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8VGh5T3B0aW9uPjtcblxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRlbnRUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgY29udGVudFRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLy8gc2Nyb2xsIGVsZW1lbnQgY29udGFpbmVyXG4gICAgQFZpZXdDaGlsZCgncGFuZWwnKVxuICAgIG9wdGlvbnNDb250YWluZXI6IEVsZW1lbnRSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihUaHlPcHRpb24sIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgb3B0aW9uczogUXVlcnlMaXN0PFRoeU9wdGlvbj47XG5cbiAgICByZWFkb25seSBvcHRpb25TZWxlY3Rpb25DaGFuZ2VzOiBPYnNlcnZhYmxlPFRoeU9wdGlvblNlbGVjdGlvbkNoYW5nZUV2ZW50PiA9IGRlZmVyKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucykge1xuICAgICAgICAgICAgcmV0dXJuIG1lcmdlKC4uLnRoaXMub3B0aW9ucy5tYXAob3B0aW9uID0+IG9wdGlvbi5zZWxlY3Rpb25DaGFuZ2UpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5uZ1pvbmUub25TdGFibGUuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5vcHRpb25TZWxlY3Rpb25DaGFuZ2VzKVxuICAgICAgICApO1xuICAgIH0pIGFzIE9ic2VydmFibGU8VGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+O1xuXG4gICAgLyoqXG4gICAgICog56m66YCJ6aG55pe255qE5paH5pysXG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0aHlFbXB0eVRleHQgPSAn5rKh5pyJ5Lu75L2V5pWw5o2uJztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpum7mOiupOmrmOS6ruesrOS4gOS4qumAiemhuVxuICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUF1dG9BY3RpdmVGaXJzdE9wdGlvbjogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOiiq+mAieS4reaXtuiwg+eUqO+8jOWPguaVsOWMheWQq+mAieS4remhueeahCB2YWx1ZSDlgLxcbiAgICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8VGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeU9wdGlvblNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8VGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlPcHRpb25TZWxlY3Rpb25DaGFuZ2VFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIOWPquivu++8jOWxleW8gOS4i+aLieiPnOWNleeahOWbnuiwg1xuICAgICAqIEB0eXBlIEV2ZW50RW1pdHRlcjx2b2lkPlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlPcGVuZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIOWPquivu++8jOWFs+mXreS4i+aLieiPnOWNleeahOWbnuiwg1xuICAgICAqIEB0eXBlIEV2ZW50RW1pdHRlcjx2b2lkPlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlDbG9zZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFbWl0cyB3aGVuZXZlciBhbiBvcHRpb24gaXMgYWN0aXZhdGVkIHVzaW5nIHRoZSBrZXlib2FyZC4gKi9cbiAgICAvKipcbiAgICAgKiDlj6ror7vvvIxvcHRpb24g5r+A5rS754q25oCB5Y+Y5YyW5pe277yM6LCD55So5q2k5Ye95pWwXG4gICAgICogQHR5cGUgRXZlbnRFbWl0dGVyPFRoeUF1dG9jb21wbGV0ZUFjdGl2YXRlZEV2ZW50PlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlPcHRpb25BY3RpdmF0ZWQ6IEV2ZW50RW1pdHRlcjxUaHlBdXRvY29tcGxldGVBY3RpdmF0ZWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRoeUF1dG9jb21wbGV0ZUFjdGl2YXRlZEV2ZW50PigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXREcm9wRG93bkNsYXNzKCk7XG4gICAgICAgIHRoaXMuaW5zdGFuY2VTZWxlY3Rpb25Nb2RlbCgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLmNoYW5nZXMucGlwZShzdGFydFdpdGgobnVsbCksIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRPcHRpb25zKCk7XG4gICAgICAgICAgICB0aW1lcigwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNFbXB0eU9wdGlvbnMgPSB0aGlzLm9wdGlvbnMubGVuZ3RoIDw9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuaW5pdEtleU1hbmFnZXIoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaW5pdEtleU1hbmFnZXIoKSB7XG4gICAgICAgIGNvbnN0IGNoYW5nZWRPckRlc3Ryb3llZCQgPSBtZXJnZSh0aGlzLm9wdGlvbnMuY2hhbmdlcywgdGhpcy5uZ1Vuc3Vic2NyaWJlJCk7XG4gICAgICAgIHRoaXMua2V5TWFuYWdlciA9IG5ldyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjxUaHlPcHRpb24+KHRoaXMub3B0aW9ucykud2l0aFdyYXAoKTtcbiAgICAgICAgdGhpcy5rZXlNYW5hZ2VyLmNoYW5nZS5waXBlKHRha2VVbnRpbChjaGFuZ2VkT3JEZXN0cm95ZWQkKSkuc3Vic2NyaWJlKGluZGV4ID0+IHtcbiAgICAgICAgICAgIHRoaXMudGh5T3B0aW9uQWN0aXZhdGVkLmVtaXQoeyBzb3VyY2U6IHRoaXMsIG9wdGlvbjogdGhpcy5vcHRpb25zLnRvQXJyYXkoKVtpbmRleF0gfHwgbnVsbCB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3BlbigpIHtcbiAgICAgICAgdGhpcy5pc09wZW5lZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIHRoaXMudGh5T3BlbmVkLmVtaXQoKTtcbiAgICB9XG5cbiAgICBjbG9zZSgpIHtcbiAgICAgICAgdGhpcy5pc09wZW5lZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRoeUNsb3NlZC5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldE9wdGlvbnMoKSB7XG4gICAgICAgIGNvbnN0IGNoYW5nZWRPckRlc3Ryb3llZCQgPSBtZXJnZSh0aGlzLm9wdGlvbnMuY2hhbmdlcywgdGhpcy5uZ1Vuc3Vic2NyaWJlJCk7XG5cbiAgICAgICAgdGhpcy5vcHRpb25TZWxlY3Rpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKGNoYW5nZWRPckRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKGV2ZW50OiBUaHlPcHRpb25TZWxlY3Rpb25DaGFuZ2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblNlbGVjdChldmVudC5vcHRpb24sIGV2ZW50LmlzVXNlcklucHV0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbnN0YW5jZVNlbGVjdGlvbk1vZGVsKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwgPSBuZXcgU2VsZWN0aW9uTW9kZWw8VGh5T3B0aW9uPih0aGlzLmlzTXVsdGlwbGUpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmNoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlJCkpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBldmVudC5hZGRlZC5mb3JFYWNoKG9wdGlvbiA9PiBvcHRpb24uc2VsZWN0KCkpO1xuICAgICAgICAgICAgZXZlbnQucmVtb3ZlZC5mb3JFYWNoKG9wdGlvbiA9PiBvcHRpb24uZGVzZWxlY3QoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25TZWxlY3Qob3B0aW9uOiBUaHlPcHRpb24sIGlzVXNlcklucHV0OiBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IHdhc1NlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKG9wdGlvbik7XG5cbiAgICAgICAgaWYgKG9wdGlvbi50aHlWYWx1ZSA9PSBudWxsICYmICF0aGlzLmlzTXVsdGlwbGUpIHtcbiAgICAgICAgICAgIG9wdGlvbi5kZXNlbGVjdCgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHdhc1NlbGVjdGVkICE9PSBvcHRpb24uc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBvcHRpb24uc2VsZWN0ZWQgPyB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdChvcHRpb24pIDogdGhpcy5zZWxlY3Rpb25Nb2RlbC5kZXNlbGVjdChvcHRpb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaXNVc2VySW5wdXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmtleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShvcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHdhc1NlbGVjdGVkICE9PSB0aGlzLnNlbGVjdGlvbk1vZGVsLmlzU2VsZWN0ZWQob3B0aW9uKSkge1xuICAgICAgICAgICAgdGhpcy50aHlPcHRpb25TZWxlY3RlZC5lbWl0KG5ldyBUaHlPcHRpb25TZWxlY3Rpb25DaGFuZ2VFdmVudChvcHRpb24sIGZhbHNlKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERyb3BEb3duQ2xhc3MoKSB7XG4gICAgICAgIGxldCBtb2RlQ2xhc3MgPSAnJztcbiAgICAgICAgaWYgKHRoaXMuaXNNdWx0aXBsZSkge1xuICAgICAgICAgICAgbW9kZUNsYXNzID0gYHRoeS1zZWxlY3QtZHJvcGRvd24tJHt0aGlzLm1vZGV9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1vZGVDbGFzcyA9IGB0aHktc2VsZWN0LWRyb3Bkb3duLXNpbmdsZWA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kcm9wRG93bkNsYXNzID0ge1xuICAgICAgICAgICAgW2B0aHktc2VsZWN0LWRyb3Bkb3duYF06IHRydWUsXG4gICAgICAgICAgICBbbW9kZUNsYXNzXTogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlPlxuICA8ZGl2IHRoeVN0b3BQcm9wYWdhdGlvbiBbbmdDbGFzc109XCJkcm9wRG93bkNsYXNzXCI+XG4gICAgPGRpdiAjcGFuZWwgY2xhc3M9XCJ0aHktc2VsZWN0LWRyb3Bkb3duLW9wdGlvbnNcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDx0aHktZW1wdHkgKm5nSWY9XCJpc0VtcHR5T3B0aW9uc1wiIFt0aHlNZXNzYWdlXT1cInRoeUVtcHR5VGV4dFwiPjwvdGh5LWVtcHR5PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Directive, ElementRef, NgZone, Input, ViewContainerRef, HostBinding, Optional, Inject, ChangeDetectorRef,
|
|
1
|
+
import { Directive, ElementRef, NgZone, Input, ViewContainerRef, HostBinding, Optional, Inject, ChangeDetectorRef, numberAttribute } from '@angular/core';
|
|
2
2
|
import { Overlay } from '@angular/cdk/overlay';
|
|
3
3
|
import { ThyAutocompleteService } from './overlay/autocomplete.service';
|
|
4
4
|
import { ThyAutocomplete } from './autocomplete.component';
|
|
5
5
|
import { ThyOptionSelectionChangeEvent } from 'ngx-tethys/shared';
|
|
6
6
|
import { DOCUMENT } from '@angular/common';
|
|
7
7
|
import { Subject, merge, fromEvent, of } from 'rxjs';
|
|
8
|
-
import { ESCAPE, UP_ARROW, ENTER, DOWN_ARROW, TAB } from 'ngx-tethys/util';
|
|
8
|
+
import { ESCAPE, UP_ARROW, ENTER, DOWN_ARROW, TAB, coerceBooleanProperty } from 'ngx-tethys/util';
|
|
9
9
|
import { filter, map, take, delay, switchMap } from 'rxjs/operators';
|
|
10
10
|
import { ScrollToService } from 'ngx-tethys/core';
|
|
11
11
|
import { warnDeprecation } from 'ngx-tethys/util';
|
|
@@ -239,7 +239,7 @@ export class ThyAutocompleteTriggerDirective {
|
|
|
239
239
|
this.destroyPanel();
|
|
240
240
|
}
|
|
241
241
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyAutocompleteTriggerDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.Overlay }, { token: i2.ThyAutocompleteService }, { token: i0.ViewContainerRef }, { token: DOCUMENT, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
242
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.0", type: ThyAutocompleteTriggerDirective, isStandalone: true, selector: "input[thyAutocompleteTrigger], textarea[thyAutocompleteTrigger], thy-input[thyAutocompleteTrigger], thy-input-search[thyAutocompleteTrigger], input[thyAutocomplete], textarea[thyAutocomplete], thy-input[thyAutocomplete], thy-input-search[thyAutocomplete]", inputs: { autocompleteComponent: ["thyAutocompleteComponent", "autocompleteComponent"], autocomplete: ["thyAutocomplete", "autocomplete"], thyOffset: ["thyOffset", "thyOffset", numberAttribute], thyAutocompleteWidth: ["thyAutocompleteWidth", "thyAutocompleteWidth", numberAttribute], thyPlacement: "thyPlacement", thyIsFocusOpen: ["thyIsFocusOpen", "thyIsFocusOpen",
|
|
242
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.0", type: ThyAutocompleteTriggerDirective, isStandalone: true, selector: "input[thyAutocompleteTrigger], textarea[thyAutocompleteTrigger], thy-input[thyAutocompleteTrigger], thy-input-search[thyAutocompleteTrigger], input[thyAutocomplete], textarea[thyAutocomplete], thy-input[thyAutocomplete], thy-input-search[thyAutocomplete]", inputs: { autocompleteComponent: ["thyAutocompleteComponent", "autocompleteComponent"], autocomplete: ["thyAutocomplete", "autocomplete"], thyOffset: ["thyOffset", "thyOffset", numberAttribute], thyAutocompleteWidth: ["thyAutocompleteWidth", "thyAutocompleteWidth", numberAttribute], thyPlacement: "thyPlacement", thyIsFocusOpen: ["thyIsFocusOpen", "thyIsFocusOpen", coerceBooleanProperty] }, host: { listeners: { "input": "handleInput($event)", "focusin": "onFocus()", "keydown": "onKeydown($event)" }, properties: { "class.thy-autocomplete-opened": "this.panelOpened" } }, exportAs: ["thyAutocompleteTrigger", "thyAutocomplete"], ngImport: i0 }); }
|
|
243
243
|
}
|
|
244
244
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyAutocompleteTriggerDirective, decorators: [{
|
|
245
245
|
type: Directive,
|
|
@@ -277,6 +277,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
277
277
|
type: Input
|
|
278
278
|
}], thyIsFocusOpen: [{
|
|
279
279
|
type: Input,
|
|
280
|
-
args: [{ transform:
|
|
280
|
+
args: [{ transform: coerceBooleanProperty }]
|
|
281
281
|
}] } });
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLnRyaWdnZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUudHJpZ2dlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBRVYsTUFBTSxFQUVOLEtBQUssRUFFTCxnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLFFBQVEsRUFDUixNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFhLDZCQUE2QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBRWxEOzs7R0FHRztBQVlILE1BQU0sT0FBTywrQkFB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USxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFFBQVE7eUVBL0VjLFdBQVc7c0JBQXhELFdBQVc7dUJBQUMsK0JBQStCO2dCQVF4QyxxQkFBcUI7c0JBRHhCLEtBQUs7dUJBQUMsMEJBQTBCO2dCQWE3QixZQUFZO3NCQURmLEtBQUs7dUJBQUMsaUJBQWlCO2dCQWFlLFNBQVM7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQU1FLG9CQUFvQjtzQkFBMUQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBTTVCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBTWtDLGNBQWM7c0JBQXJELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdGFibGUsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBPcHRpb25hbCxcbiAgICBJbmplY3QsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5UmVmLCBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGh5UGxhY2VtZW50IH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeUF1dG9jb21wbGV0ZVNlcnZpY2UgfSBmcm9tICcuL292ZXJsYXkvYXV0b2NvbXBsZXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGh5QXV0b2NvbXBsZXRlUmVmIH0gZnJvbSAnLi9vdmVybGF5L2F1dG9jb21wbGV0ZS1yZWYnO1xuaW1wb3J0IHsgVGh5QXV0b2NvbXBsZXRlIH0gZnJvbSAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRoeU9wdGlvbiwgVGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlLCBtZXJnZSwgZnJvbUV2ZW50LCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFU0NBUEUsIFVQX0FSUk9XLCBFTlRFUiwgRE9XTl9BUlJPVywgVEFCIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0YWtlLCB0YXAsIGRlbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTY3JvbGxUb1NlcnZpY2UgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgd2FybkRlcHJlY2F0aW9uIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuLyoqXG4gKiDoh6rliqjlrozmiJDop6blj5HmjIfku6RcbiAqIEBuYW1lIHRoeUF1dG9jb21wbGV0ZVxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjpcbiAgICAgICAgJ2lucHV0W3RoeUF1dG9jb21wbGV0ZVRyaWdnZXJdLCB0ZXh0YXJlYVt0aHlBdXRvY29tcGxldGVUcmlnZ2VyXSwgdGh5LWlucHV0W3RoeUF1dG9jb21wbGV0ZVRyaWdnZXJdLCB0aHktaW5wdXQtc2VhcmNoW3RoeUF1dG9jb21wbGV0ZVRyaWdnZXJdLCBpbnB1dFt0aHlBdXRvY29tcGxldGVdLCB0ZXh0YXJlYVt0aHlBdXRvY29tcGxldGVdLCB0aHktaW5wdXRbdGh5QXV0b2NvbXBsZXRlXSwgdGh5LWlucHV0LXNlYXJjaFt0aHlBdXRvY29tcGxldGVdJyxcbiAgICBleHBvcnRBczogJ3RoeUF1dG9jb21wbGV0ZVRyaWdnZXIsIHRoeUF1dG9jb21wbGV0ZScsXG4gICAgaG9zdDoge1xuICAgICAgICAnKGlucHV0KSc6ICdoYW5kbGVJbnB1dCgkZXZlbnQpJyxcbiAgICAgICAgJyhmb2N1c2luKSc6ICdvbkZvY3VzKCknLFxuICAgICAgICAnKGtleWRvd24pJzogJ29uS2V5ZG93bigkZXZlbnQpJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlBdXRvY29tcGxldGVUcmlnZ2VyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByb3RlY3RlZCBvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuXG4gICAgcHJpdmF0ZSBhdXRvY29tcGxldGVSZWY6IFRoeUF1dG9jb21wbGV0ZVJlZjxUaHlBdXRvY29tcGxldGU+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBjbG9zZUtleUV2ZW50U3RyZWFtID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHByaXZhdGUgY2xvc2luZ0FjdGlvbnNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIHByaXZhdGUgX2F1dG9jb21wbGV0ZUNvbXBvbmVudDogVGh5QXV0b2NvbXBsZXRlO1xuXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy50aHktYXV0b2NvbXBsZXRlLW9wZW5lZGApIHBhbmVsT3BlbmVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDkuIvmi4noj5zljZXnu4Tku7blrp7kvovjgILlt7Llup/lvIPvvIzor7fkvb/nlKggdGh5QXV0b2NvbXBsZXRlXG4gICAgICogQHR5cGUgdGh5QXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBASW5wdXQoJ3RoeUF1dG9jb21wbGV0ZUNvbXBvbmVudCcpXG4gICAgc2V0IGF1dG9jb21wbGV0ZUNvbXBvbmVudChkYXRhOiBUaHlBdXRvY29tcGxldGUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgICAgICAgd2FybkRlcHJlY2F0aW9uKGBUaGUgcHJvcGVydHkgdGh5QXV0b2NvbXBsZXRlQ29tcG9uZW50IHdpbGwgYmUgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSB0aHlBdXRvY29tcGxldGUgaW5zdGVhZC5gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9hdXRvY29tcGxldGVDb21wb25lbnQgPSBkYXRhO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOS4i+aLieiPnOWNlee7hOS7tuWunuS+i1xuICAgICAqIEB0eXBlIHRoeUF1dG9jb21wbGV0ZUNvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgndGh5QXV0b2NvbXBsZXRlJylcbiAgICBzZXQgYXV0b2NvbXBsZXRlKGRhdGE6IFRoeUF1dG9jb21wbGV0ZSkge1xuICAgICAgICB0aGlzLl9hdXRvY29tcGxldGVDb21wb25lbnQgPSBkYXRhO1xuICAgIH1cblxuICAgIGdldCBhdXRvY29tcGxldGVDb21wb25lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRvY29tcGxldGVDb21wb25lbnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5by55Ye65qGG6buY6K6kIG9mZnNldFxuICAgICAqIEB0eXBlIG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeU9mZnNldCA9IDQ7XG5cbiAgICAvKipcbiAgICAgKiDkuIvmi4noj5zljZXnmoTlrr3luqbvvIzkuI3orr7nva7pu5jorqTkuI7ovpPlhaXmoYblkIzlrr1cbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlBdXRvY29tcGxldGVXaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog5LiL5ouJ6I+c5Y2V55qE5pi+56S65L2N572u77yMJ3RvcCcgfCAndG9wTGVmdCcgfCAndG9wUmlnaHQnIHwgJ2JvdHRvbScgfCAnYm90dG9tTGVmdCcgfCAnYm90dG9tUmlnaHQnIHwgJ2xlZnQnIHwgJ2xlZnRUb3AnIHwgJ2xlZnRCb3R0b20nIHwgJ3JpZ2h0JyB8ICdyaWdodFRvcCcgfCAncmlnaHRCb3R0b20nXG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UGxhY2VtZW50OiBUaHlQbGFjZW1lbnQgPSAnYm90dG9tTGVmdCc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblhYHorrjogZrnhKbml7bmiZPlvIDkuIvmi4noj5zljZVcbiAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeUlzRm9jdXNPcGVuID0gdHJ1ZTtcblxuICAgIGdldCBhY3RpdmVPcHRpb24oKTogVGh5T3B0aW9uIHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudCAmJiB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQua2V5TWFuYWdlci5hY3RpdmVJdGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IHBhbmVsQ2xvc2luZ0FjdGlvbnMoKTogT2JzZXJ2YWJsZTxUaHlPcHRpb25TZWxlY3Rpb25DaGFuZ2VFdmVudCB8IG51bGw+IHtcbiAgICAgICAgcmV0dXJuIG1lcmdlKFxuICAgICAgICAgICAgdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQudGh5T3B0aW9uU2VsZWN0ZWQsXG4gICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyLnRhYk91dC5waXBlKGZpbHRlcigoKSA9PiB0aGlzLnBhbmVsT3BlbmVkKSksXG4gICAgICAgICAgICB0aGlzLmNsb3NlS2V5RXZlbnRTdHJlYW0sXG4gICAgICAgICAgICB0aGlzLmdldE91dHNpZGVDbGlja1N0cmVhbSgpLFxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmID8gdGhpcy5vdmVybGF5UmVmLmRldGFjaG1lbnRzKCkucGlwZShmaWx0ZXIoKCkgPT4gdGhpcy5wYW5lbE9wZW5lZCkpIDogb2YoKVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICAvLyBOb3JtYWxpemUgdGhlIG91dHB1dCBzbyB3ZSByZXR1cm4gYSBjb25zaXN0ZW50IHR5cGUuXG4gICAgICAgICAgICBtYXAoZXZlbnQgPT4gKGV2ZW50IGluc3RhbmNlb2YgVGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQgPyBldmVudCA6IG51bGwpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgcHJpdmF0ZSBhdXRvY29tcGxldGVTZXJ2aWNlOiBUaHlBdXRvY29tcGxldGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgb25Gb2N1cygpIHtcbiAgICAgICAgaWYgKHRoaXMuY2FuT3BlbigpICYmIHRoaXMudGh5SXNGb2N1c09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMub3BlblBhbmVsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3Qga2V5Q29kZSA9IGV2ZW50LmtleUNvZGU7XG4gICAgICAgIC8vIFByZXZlbnQgdGhlIGRlZmF1bHQgYWN0aW9uIG9uIGFsbCBlc2NhcGUga2V5IHByZXNzZXMuIFRoaXMgaXMgaGVyZSBwcmltYXJpbHkgdG8gYnJpbmcgSUVcbiAgICAgICAgLy8gaW4gbGluZSB3aXRoIG90aGVyIGJyb3dzZXJzLiBCeSBkZWZhdWx0LCBwcmVzc2luZyBlc2NhcGUgb24gSUUgd2lsbCBjYXVzZSBpdCB0byByZXZlcnRcbiAgICAgICAgLy8gdGhlIGlucHV0IHZhbHVlIHRvIHRoZSBvbmUgdGhhdCBpdCBoYWQgb24gZm9jdXMsIGhvd2V2ZXIgaXQgd29uJ3QgZGlzcGF0Y2ggYW55IGV2ZW50c1xuICAgICAgICAvLyB3aGljaCBtZWFucyB0aGF0IHRoZSBtb2RlbCB2YWx1ZSB3aWxsIGJlIG91dCBvZiBzeW5jIHdpdGggdGhlIHZpZXcuXG4gICAgICAgIGlmIChrZXlDb2RlID09PSBFU0NBUEUpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlT3B0aW9uICYmIGtleUNvZGUgPT09IEVOVEVSICYmIHRoaXMucGFuZWxPcGVuZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlT3B0aW9uLnNlbGVjdFZpYUludGVyYWN0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLnJlc2V0QWN0aXZlSXRlbSgpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudCkge1xuICAgICAgICAgICAgY29uc3QgcHJldkFjdGl2ZUl0ZW0gPSB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW07XG4gICAgICAgICAgICBjb25zdCBpc0Fycm93S2V5ID0ga2V5Q29kZSA9PT0gVVBfQVJST1cgfHwga2V5Q29kZSA9PT0gRE9XTl9BUlJPVztcbiAgICAgICAgICAgIGlmICh0aGlzLnBhbmVsT3BlbmVkIHx8IGtleUNvZGUgPT09IFRBQikge1xuICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmtleU1hbmFnZXIub25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNBcnJvd0tleSAmJiB0aGlzLmNhbk9wZW4oKSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlblBhbmVsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKGlzQXJyb3dLZXkgfHwgdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQua2V5TWFuYWdlci5hY3RpdmVJdGVtICE9PSBwcmV2QWN0aXZlSXRlbSkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1cbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIFNjcm9sbFRvU2VydmljZS5zY3JvbGxUb0VsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmtleU1hbmFnZXIuYWN0aXZlSXRlbS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50Lm9wdGlvbnNDb250YWluZXIubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVJbnB1dChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5jYW5PcGVuKCkgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZXZlbnQudGFyZ2V0KSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5QYW5lbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3BlblBhbmVsKCkge1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5UmVmICYmIHRoaXMub3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuY3JlYXRlT3ZlcmxheSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSBvdmVybGF5UmVmO1xuICAgICAgICBvdmVybGF5UmVmLmtleWRvd25FdmVudHMoKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgLy8gQ2xvc2Ugd2hlbiBwcmVzc2luZyBFU0NBUEUgb3IgQUxUICsgVVBfQVJST1csIGJhc2VkIG9uIHRoZSBhMTF5IGd1aWRlbGluZXMuXG4gICAgICAgICAgICAvLyBTZWU6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS1wcmFjdGljZXMtMS4xLyN0ZXh0Ym94LWtleWJvYXJkLWludGVyYWN0aW9uXG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFIHx8IChldmVudC5rZXlDb2RlID09PSBVUF9BUlJPVyAmJiBldmVudC5hbHRLZXkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldEFjdGl2ZUl0ZW0oKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlS2V5RXZlbnRTdHJlYW0ubmV4dCgpO1xuICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gc3RvcCBwcm9wYWdhdGlvbiwgb3RoZXJ3aXNlIHRoZSBldmVudCB3aWxsIGV2ZW50dWFsbHlcbiAgICAgICAgICAgICAgICAvLyByZWFjaCB0aGUgaW5wdXQgaXRzZWxmIGFuZCBjYXVzZSB0aGUgb3ZlcmxheSB0byBiZSByZW9wZW5lZC5cbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wYW5lbE9wZW5lZCA9IHRydWU7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50Lm9wZW4oKTtcbiAgICB9XG5cbiAgICBjbG9zZVBhbmVsKCkge1xuICAgICAgICBpZiAodGhpcy5hdXRvY29tcGxldGVSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlUmVmLmNsb3NlKCk7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLmNsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjcmVhdGVPdmVybGF5KCk6IE92ZXJsYXlSZWYge1xuICAgICAgICBjb25zdCBjb25maWcgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIG9yaWdpbjogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICBwbGFjZW1lbnQ6IHRoaXMudGh5UGxhY2VtZW50LFxuICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLnRoeU9mZnNldCxcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICAgICAgICB3aWR0aDogdGhpcy50aHlBdXRvY29tcGxldGVXaWR0aCB8fCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVSZWYgPSB0aGlzLmF1dG9jb21wbGV0ZVNlcnZpY2Uub3Blbih0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5jb250ZW50VGVtcGxhdGVSZWYsIGNvbmZpZyk7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGFuZWxPcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBkZWxheSAyMDBtcyB0byBwcmV2ZW50IGVtaXQgZG9jdW1lbnQgY2xpY2sgcmlnaHRub3dcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVSZWZcbiAgICAgICAgICAgIC5hZnRlck9wZW5lZCgpXG4gICAgICAgICAgICAucGlwZShkZWxheSgyMDApKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zaW5nQWN0aW9uc1N1YnNjcmlwdGlvbiA9IHRoaXMuc3Vic2NyaWJlVG9DbG9zaW5nQWN0aW9ucygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZVJlZi5nZXRPdmVybGF5UmVmKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgbGlzdGVucyB0byBhIHN0cmVhbSBvZiBwYW5lbCBjbG9zaW5nIGFjdGlvbnMgYW5kIHJlc2V0cyB0aGVcbiAgICAgKiBzdHJlYW0gZXZlcnkgdGltZSB0aGUgb3B0aW9uIGxpc3QgY2hhbmdlcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHN1YnNjcmliZVRvQ2xvc2luZ0FjdGlvbnMoKTogU3Vic2NyaXB0aW9uIHtcbiAgICAgICAgY29uc3QgZmlyc3RTdGFibGUgPSB0aGlzLm5nWm9uZS5vblN0YWJsZS5hc09ic2VydmFibGUoKS5waXBlKHRha2UoMSkpO1xuICAgICAgICBjb25zdCBvcHRpb25DaGFuZ2VzID0gdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQub3B0aW9ucy5jaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAvLyBEZWZlciBlbWl0dGluZyB0byB0aGUgc3RyZWFtIHVudGlsIHRoZSBuZXh0IHRpY2ssIGJlY2F1c2UgY2hhbmdpbmdcbiAgICAgICAgICAgIC8vIGJpbmRpbmdzIGluIGhlcmUgd2lsbCBjYXVzZSBcImNoYW5nZWQgYWZ0ZXIgY2hlY2tlZFwiIGVycm9ycy5cbiAgICAgICAgICAgIGRlbGF5KDApXG4gICAgICAgICk7XG4gICAgICAgIC8vIFdoZW4gdGhlIHpvbmUgaXMgc3RhYmxlIGluaXRpYWxseSwgYW5kIHdoZW4gdGhlIG9wdGlvbiBsaXN0IGNoYW5nZXMuLi5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIG1lcmdlKGZpcnN0U3RhYmxlLCBvcHRpb25DaGFuZ2VzKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBuZXcgc3RyZWFtIG9mIHBhbmVsQ2xvc2luZ0FjdGlvbnMsIHJlcGxhY2luZyBhbnkgcHJldmlvdXMgc3RyZWFtc1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IHdlcmUgY3JlYXRlZCwgYW5kIGZsYXR0ZW4gaXQgc28gb3VyIHN0cmVhbSBvbmx5IGVtaXRzIGNsb3NpbmcgZXZlbnRzLi4uXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0QWN0aXZlSXRlbSgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wYW5lbE9wZW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFuZWxDbG9zaW5nQWN0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gdGhlIGZpcnN0IGNsb3NpbmcgZXZlbnQgb2NjdXJzLi4uXG4gICAgICAgICAgICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLy8gc2V0IHRoZSB2YWx1ZSwgY2xvc2UgdGhlIHBhbmVsLCBhbmQgY29tcGxldGUuXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShldmVudCA9PiB0aGlzLnNldFZhbHVlQW5kQ2xvc2UoZXZlbnQpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWVBbmRDbG9zZShldmVudDogVGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudCAmJiBldmVudC5vcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQub3B0aW9uLnRoeUxhYmVsVGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jbG9zZVBhbmVsKCk7XG4gICAgfVxuXG4gICAgLyoqIFN0cmVhbSBvZiBjbGlja3Mgb3V0c2lkZSBvZiB0aGUgYXV0b2NvbXBsZXRlIHBhbmVsLiAqL1xuICAgIHByaXZhdGUgZ2V0T3V0c2lkZUNsaWNrU3RyZWFtKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLmRvY3VtZW50LCAnY2xpY2snKSBhcyBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+LFxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuZG9jdW1lbnQsICd0b3VjaGVuZCcpIGFzIE9ic2VydmFibGU8VG91Y2hFdmVudD5cbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBpbiB0aGUgU2hhZG93IERPTSwgdGhlIGV2ZW50IHRhcmdldCB3aWxsIGJlIHRoZSBzaGFkb3cgcm9vdCwgc28gd2UgaGF2ZSB0b1xuICAgICAgICAgICAgICAgIC8vIGZhbGwgYmFjayB0byBjaGVjayB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgcGF0aCBvZiB0aGUgY2xpY2sgZXZlbnQuXG4gICAgICAgICAgICAgICAgY29uc3QgY2xpY2tUYXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybUZpZWxkOiBhbnkgPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbE9wZW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICBjbGlja1RhcmdldCAhPT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGNsaWNrVGFyZ2V0KSAmJlxuICAgICAgICAgICAgICAgICAgICAoIWZvcm1GaWVsZCB8fCAhZm9ybUZpZWxkLmNvbnRhaW5zKGNsaWNrVGFyZ2V0KSkgJiZcbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLm92ZXJsYXlSZWYgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5jb250YWlucyhjbGlja1RhcmdldClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gaW5wdXQgPyBpbnB1dCA6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBlbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbk9wZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgcmV0dXJuICFlbGVtZW50LnJlYWRPbmx5ICYmICFlbGVtZW50LmRpc2FibGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRBY3RpdmVJdGVtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0odGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQudGh5QXV0b0FjdGl2ZUZpcnN0T3B0aW9uID8gMCA6IC0xKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3lQYW5lbCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVBhbmVsKCk7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNsb3NlS2V5RXZlbnRTdHJlYW0uY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95UGFuZWwoKTtcbiAgICB9XG59XG4iXX0=
|
|
282
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLnRyaWdnZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUudHJpZ2dlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUVOLEtBQUssRUFFTCxnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLFFBQVEsRUFDUixNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLGVBQWUsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQWEsNkJBQTZCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFFbEQ7OztHQUdHO0FBWUgsTUFBTSxPQUFPLCtCQUEr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LFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsUUFBUTt5RUEvRWMsV0FBVztzQkFBeEQsV0FBVzt1QkFBQywrQkFBK0I7Z0JBUXhDLHFCQUFxQjtzQkFEeEIsS0FBSzt1QkFBQywwQkFBMEI7Z0JBYTdCLFlBQVk7c0JBRGYsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBYWUsU0FBUztzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBTUUsb0JBQW9CO3NCQUExRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFNNUIsWUFBWTtzQkFBcEIsS0FBSztnQkFNdUMsY0FBYztzQkFBMUQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBPcHRpb25hbCxcbiAgICBJbmplY3QsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgbnVtYmVyQXR0cmlidXRlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheVJlZiwgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRoeVBsYWNlbWVudCB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBUaHlBdXRvY29tcGxldGVTZXJ2aWNlIH0gZnJvbSAnLi9vdmVybGF5L2F1dG9jb21wbGV0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFRoeUF1dG9jb21wbGV0ZVJlZiB9IGZyb20gJy4vb3ZlcmxheS9hdXRvY29tcGxldGUtcmVmJztcbmltcG9ydCB7IFRoeUF1dG9jb21wbGV0ZSB9IGZyb20gJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHlPcHRpb24sIFRoeU9wdGlvblNlbGVjdGlvbkNoYW5nZUV2ZW50IH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSwgbWVyZ2UsIGZyb21FdmVudCwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRVNDQVBFLCBVUF9BUlJPVywgRU5URVIsIERPV05fQVJST1csIFRBQiwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0YWtlLCBkZWxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2Nyb2xsVG9TZXJ2aWNlIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IHdhcm5EZXByZWNhdGlvbiB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbi8qKlxuICog6Ieq5Yqo5a6M5oiQ6Kem5Y+R5oyH5LukXG4gKiBAbmFtZSB0aHlBdXRvY29tcGxldGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6XG4gICAgICAgICdpbnB1dFt0aHlBdXRvY29tcGxldGVUcmlnZ2VyXSwgdGV4dGFyZWFbdGh5QXV0b2NvbXBsZXRlVHJpZ2dlcl0sIHRoeS1pbnB1dFt0aHlBdXRvY29tcGxldGVUcmlnZ2VyXSwgdGh5LWlucHV0LXNlYXJjaFt0aHlBdXRvY29tcGxldGVUcmlnZ2VyXSwgaW5wdXRbdGh5QXV0b2NvbXBsZXRlXSwgdGV4dGFyZWFbdGh5QXV0b2NvbXBsZXRlXSwgdGh5LWlucHV0W3RoeUF1dG9jb21wbGV0ZV0sIHRoeS1pbnB1dC1zZWFyY2hbdGh5QXV0b2NvbXBsZXRlXScsXG4gICAgZXhwb3J0QXM6ICd0aHlBdXRvY29tcGxldGVUcmlnZ2VyLCB0aHlBdXRvY29tcGxldGUnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhpbnB1dCknOiAnaGFuZGxlSW5wdXQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXNpbiknOiAnb25Gb2N1cygpJyxcbiAgICAgICAgJyhrZXlkb3duKSc6ICdvbktleWRvd24oJGV2ZW50KSdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5QXV0b2NvbXBsZXRlVHJpZ2dlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBwcm90ZWN0ZWQgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcblxuICAgIHByaXZhdGUgYXV0b2NvbXBsZXRlUmVmOiBUaHlBdXRvY29tcGxldGVSZWY8VGh5QXV0b2NvbXBsZXRlPjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2xvc2VLZXlFdmVudFN0cmVhbSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcml2YXRlIGNsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBwcml2YXRlIF9hdXRvY29tcGxldGVDb21wb25lbnQ6IFRoeUF1dG9jb21wbGV0ZTtcblxuICAgIEBIb3N0QmluZGluZyhgY2xhc3MudGh5LWF1dG9jb21wbGV0ZS1vcGVuZWRgKSBwYW5lbE9wZW5lZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog5LiL5ouJ6I+c5Y2V57uE5Lu25a6e5L6L44CC5bey5bqf5byD77yM6K+35L2/55SoIHRoeUF1dG9jb21wbGV0ZVxuICAgICAqIEB0eXBlIHRoeUF1dG9jb21wbGV0ZUNvbXBvbmVudFxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgQElucHV0KCd0aHlBdXRvY29tcGxldGVDb21wb25lbnQnKVxuICAgIHNldCBhdXRvY29tcGxldGVDb21wb25lbnQoZGF0YTogVGh5QXV0b2NvbXBsZXRlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgICAgICAgIHdhcm5EZXByZWNhdGlvbihgVGhlIHByb3BlcnR5IHRoeUF1dG9jb21wbGV0ZUNvbXBvbmVudCB3aWxsIGJlIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgdGh5QXV0b2NvbXBsZXRlIGluc3RlYWQuYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYXV0b2NvbXBsZXRlQ29tcG9uZW50ID0gZGF0YTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDkuIvmi4noj5zljZXnu4Tku7blrp7kvotcbiAgICAgKiBAdHlwZSB0aHlBdXRvY29tcGxldGVDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoJ3RoeUF1dG9jb21wbGV0ZScpXG4gICAgc2V0IGF1dG9jb21wbGV0ZShkYXRhOiBUaHlBdXRvY29tcGxldGUpIHtcbiAgICAgICAgdGhpcy5fYXV0b2NvbXBsZXRlQ29tcG9uZW50ID0gZGF0YTtcbiAgICB9XG5cbiAgICBnZXQgYXV0b2NvbXBsZXRlQ29tcG9uZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXV0b2NvbXBsZXRlQ29tcG9uZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW8ueWHuuahhum7mOiupCBvZmZzZXRcbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlPZmZzZXQgPSA0O1xuXG4gICAgLyoqXG4gICAgICog5LiL5ouJ6I+c5Y2V55qE5a695bqm77yM5LiN6K6+572u6buY6K6k5LiO6L6T5YWl5qGG5ZCM5a69XG4gICAgICogQHR5cGUgbnVtYmVyXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGh5QXV0b2NvbXBsZXRlV2lkdGg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOS4i+aLieiPnOWNleeahOaYvuekuuS9jee9ru+8jCd0b3AnIHwgJ3RvcExlZnQnIHwgJ3RvcFJpZ2h0JyB8ICdib3R0b20nIHwgJ2JvdHRvbUxlZnQnIHwgJ2JvdHRvbVJpZ2h0JyB8ICdsZWZ0JyB8ICdsZWZ0VG9wJyB8ICdsZWZ0Qm90dG9tJyB8ICdyaWdodCcgfCAncmlnaHRUb3AnIHwgJ3JpZ2h0Qm90dG9tJ1xuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVBsYWNlbWVudDogVGh5UGxhY2VtZW50ID0gJ2JvdHRvbUxlZnQnO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5YWB6K646IGa54Sm5pe25omT5byA5LiL5ouJ6I+c5Y2VXG4gICAgICogQHR5cGUgYm9vbGVhblxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUlzRm9jdXNPcGVuID0gdHJ1ZTtcblxuICAgIGdldCBhY3RpdmVPcHRpb24oKTogVGh5T3B0aW9uIHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudCAmJiB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQua2V5TWFuYWdlci5hY3RpdmVJdGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IHBhbmVsQ2xvc2luZ0FjdGlvbnMoKTogT2JzZXJ2YWJsZTxUaHlPcHRpb25TZWxlY3Rpb25DaGFuZ2VFdmVudCB8IG51bGw+IHtcbiAgICAgICAgcmV0dXJuIG1lcmdlKFxuICAgICAgICAgICAgdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQudGh5T3B0aW9uU2VsZWN0ZWQsXG4gICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyLnRhYk91dC5waXBlKGZpbHRlcigoKSA9PiB0aGlzLnBhbmVsT3BlbmVkKSksXG4gICAgICAgICAgICB0aGlzLmNsb3NlS2V5RXZlbnRTdHJlYW0sXG4gICAgICAgICAgICB0aGlzLmdldE91dHNpZGVDbGlja1N0cmVhbSgpLFxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmID8gdGhpcy5vdmVybGF5UmVmLmRldGFjaG1lbnRzKCkucGlwZShmaWx0ZXIoKCkgPT4gdGhpcy5wYW5lbE9wZW5lZCkpIDogb2YoKVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICAvLyBOb3JtYWxpemUgdGhlIG91dHB1dCBzbyB3ZSByZXR1cm4gYSBjb25zaXN0ZW50IHR5cGUuXG4gICAgICAgICAgICBtYXAoZXZlbnQgPT4gKGV2ZW50IGluc3RhbmNlb2YgVGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQgPyBldmVudCA6IG51bGwpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgcHJpdmF0ZSBhdXRvY29tcGxldGVTZXJ2aWNlOiBUaHlBdXRvY29tcGxldGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgb25Gb2N1cygpIHtcbiAgICAgICAgaWYgKHRoaXMuY2FuT3BlbigpICYmIHRoaXMudGh5SXNGb2N1c09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMub3BlblBhbmVsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3Qga2V5Q29kZSA9IGV2ZW50LmtleUNvZGU7XG4gICAgICAgIC8vIFByZXZlbnQgdGhlIGRlZmF1bHQgYWN0aW9uIG9uIGFsbCBlc2NhcGUga2V5IHByZXNzZXMuIFRoaXMgaXMgaGVyZSBwcmltYXJpbHkgdG8gYnJpbmcgSUVcbiAgICAgICAgLy8gaW4gbGluZSB3aXRoIG90aGVyIGJyb3dzZXJzLiBCeSBkZWZhdWx0LCBwcmVzc2luZyBlc2NhcGUgb24gSUUgd2lsbCBjYXVzZSBpdCB0byByZXZlcnRcbiAgICAgICAgLy8gdGhlIGlucHV0IHZhbHVlIHRvIHRoZSBvbmUgdGhhdCBpdCBoYWQgb24gZm9jdXMsIGhvd2V2ZXIgaXQgd29uJ3QgZGlzcGF0Y2ggYW55IGV2ZW50c1xuICAgICAgICAvLyB3aGljaCBtZWFucyB0aGF0IHRoZSBtb2RlbCB2YWx1ZSB3aWxsIGJlIG91dCBvZiBzeW5jIHdpdGggdGhlIHZpZXcuXG4gICAgICAgIGlmIChrZXlDb2RlID09PSBFU0NBUEUpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlT3B0aW9uICYmIGtleUNvZGUgPT09IEVOVEVSICYmIHRoaXMucGFuZWxPcGVuZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlT3B0aW9uLnNlbGVjdFZpYUludGVyYWN0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLnJlc2V0QWN0aXZlSXRlbSgpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudCkge1xuICAgICAgICAgICAgY29uc3QgcHJldkFjdGl2ZUl0ZW0gPSB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW07XG4gICAgICAgICAgICBjb25zdCBpc0Fycm93S2V5ID0ga2V5Q29kZSA9PT0gVVBfQVJST1cgfHwga2V5Q29kZSA9PT0gRE9XTl9BUlJPVztcbiAgICAgICAgICAgIGlmICh0aGlzLnBhbmVsT3BlbmVkIHx8IGtleUNvZGUgPT09IFRBQikge1xuICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmtleU1hbmFnZXIub25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNBcnJvd0tleSAmJiB0aGlzLmNhbk9wZW4oKSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlblBhbmVsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKGlzQXJyb3dLZXkgfHwgdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQua2V5TWFuYWdlci5hY3RpdmVJdGVtICE9PSBwcmV2QWN0aXZlSXRlbSkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1cbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIFNjcm9sbFRvU2VydmljZS5zY3JvbGxUb0VsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmtleU1hbmFnZXIuYWN0aXZlSXRlbS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50Lm9wdGlvbnNDb250YWluZXIubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVJbnB1dChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5jYW5PcGVuKCkgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZXZlbnQudGFyZ2V0KSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5QYW5lbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3BlblBhbmVsKCkge1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5UmVmICYmIHRoaXMub3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuY3JlYXRlT3ZlcmxheSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSBvdmVybGF5UmVmO1xuICAgICAgICBvdmVybGF5UmVmLmtleWRvd25FdmVudHMoKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgLy8gQ2xvc2Ugd2hlbiBwcmVzc2luZyBFU0NBUEUgb3IgQUxUICsgVVBfQVJST1csIGJhc2VkIG9uIHRoZSBhMTF5IGd1aWRlbGluZXMuXG4gICAgICAgICAgICAvLyBTZWU6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS1wcmFjdGljZXMtMS4xLyN0ZXh0Ym94LWtleWJvYXJkLWludGVyYWN0aW9uXG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFIHx8IChldmVudC5rZXlDb2RlID09PSBVUF9BUlJPVyAmJiBldmVudC5hbHRLZXkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldEFjdGl2ZUl0ZW0oKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlS2V5RXZlbnRTdHJlYW0ubmV4dCgpO1xuICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gc3RvcCBwcm9wYWdhdGlvbiwgb3RoZXJ3aXNlIHRoZSBldmVudCB3aWxsIGV2ZW50dWFsbHlcbiAgICAgICAgICAgICAgICAvLyByZWFjaCB0aGUgaW5wdXQgaXRzZWxmIGFuZCBjYXVzZSB0aGUgb3ZlcmxheSB0byBiZSByZW9wZW5lZC5cbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wYW5lbE9wZW5lZCA9IHRydWU7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50Lm9wZW4oKTtcbiAgICB9XG5cbiAgICBjbG9zZVBhbmVsKCkge1xuICAgICAgICBpZiAodGhpcy5hdXRvY29tcGxldGVSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlUmVmLmNsb3NlKCk7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLmNsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjcmVhdGVPdmVybGF5KCk6IE92ZXJsYXlSZWYge1xuICAgICAgICBjb25zdCBjb25maWcgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIG9yaWdpbjogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICBwbGFjZW1lbnQ6IHRoaXMudGh5UGxhY2VtZW50LFxuICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLnRoeU9mZnNldCxcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICAgICAgICB3aWR0aDogdGhpcy50aHlBdXRvY29tcGxldGVXaWR0aCB8fCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVSZWYgPSB0aGlzLmF1dG9jb21wbGV0ZVNlcnZpY2Uub3Blbih0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5jb250ZW50VGVtcGxhdGVSZWYsIGNvbmZpZyk7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGFuZWxPcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBkZWxheSAyMDBtcyB0byBwcmV2ZW50IGVtaXQgZG9jdW1lbnQgY2xpY2sgcmlnaHRub3dcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVSZWZcbiAgICAgICAgICAgIC5hZnRlck9wZW5lZCgpXG4gICAgICAgICAgICAucGlwZShkZWxheSgyMDApKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zaW5nQWN0aW9uc1N1YnNjcmlwdGlvbiA9IHRoaXMuc3Vic2NyaWJlVG9DbG9zaW5nQWN0aW9ucygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZVJlZi5nZXRPdmVybGF5UmVmKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgbGlzdGVucyB0byBhIHN0cmVhbSBvZiBwYW5lbCBjbG9zaW5nIGFjdGlvbnMgYW5kIHJlc2V0cyB0aGVcbiAgICAgKiBzdHJlYW0gZXZlcnkgdGltZSB0aGUgb3B0aW9uIGxpc3QgY2hhbmdlcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHN1YnNjcmliZVRvQ2xvc2luZ0FjdGlvbnMoKTogU3Vic2NyaXB0aW9uIHtcbiAgICAgICAgY29uc3QgZmlyc3RTdGFibGUgPSB0aGlzLm5nWm9uZS5vblN0YWJsZS5hc09ic2VydmFibGUoKS5waXBlKHRha2UoMSkpO1xuICAgICAgICBjb25zdCBvcHRpb25DaGFuZ2VzID0gdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQub3B0aW9ucy5jaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAvLyBEZWZlciBlbWl0dGluZyB0byB0aGUgc3RyZWFtIHVudGlsIHRoZSBuZXh0IHRpY2ssIGJlY2F1c2UgY2hhbmdpbmdcbiAgICAgICAgICAgIC8vIGJpbmRpbmdzIGluIGhlcmUgd2lsbCBjYXVzZSBcImNoYW5nZWQgYWZ0ZXIgY2hlY2tlZFwiIGVycm9ycy5cbiAgICAgICAgICAgIGRlbGF5KDApXG4gICAgICAgICk7XG4gICAgICAgIC8vIFdoZW4gdGhlIHpvbmUgaXMgc3RhYmxlIGluaXRpYWxseSwgYW5kIHdoZW4gdGhlIG9wdGlvbiBsaXN0IGNoYW5nZXMuLi5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIG1lcmdlKGZpcnN0U3RhYmxlLCBvcHRpb25DaGFuZ2VzKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBuZXcgc3RyZWFtIG9mIHBhbmVsQ2xvc2luZ0FjdGlvbnMsIHJlcGxhY2luZyBhbnkgcHJldmlvdXMgc3RyZWFtc1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IHdlcmUgY3JlYXRlZCwgYW5kIGZsYXR0ZW4gaXQgc28gb3VyIHN0cmVhbSBvbmx5IGVtaXRzIGNsb3NpbmcgZXZlbnRzLi4uXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0QWN0aXZlSXRlbSgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wYW5lbE9wZW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFuZWxDbG9zaW5nQWN0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gdGhlIGZpcnN0IGNsb3NpbmcgZXZlbnQgb2NjdXJzLi4uXG4gICAgICAgICAgICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLy8gc2V0IHRoZSB2YWx1ZSwgY2xvc2UgdGhlIHBhbmVsLCBhbmQgY29tcGxldGUuXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShldmVudCA9PiB0aGlzLnNldFZhbHVlQW5kQ2xvc2UoZXZlbnQpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWVBbmRDbG9zZShldmVudDogVGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudCAmJiBldmVudC5vcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQub3B0aW9uLnRoeUxhYmVsVGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jbG9zZVBhbmVsKCk7XG4gICAgfVxuXG4gICAgLyoqIFN0cmVhbSBvZiBjbGlja3Mgb3V0c2lkZSBvZiB0aGUgYXV0b2NvbXBsZXRlIHBhbmVsLiAqL1xuICAgIHByaXZhdGUgZ2V0T3V0c2lkZUNsaWNrU3RyZWFtKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLmRvY3VtZW50LCAnY2xpY2snKSBhcyBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+LFxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuZG9jdW1lbnQsICd0b3VjaGVuZCcpIGFzIE9ic2VydmFibGU8VG91Y2hFdmVudD5cbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBpbiB0aGUgU2hhZG93IERPTSwgdGhlIGV2ZW50IHRhcmdldCB3aWxsIGJlIHRoZSBzaGFkb3cgcm9vdCwgc28gd2UgaGF2ZSB0b1xuICAgICAgICAgICAgICAgIC8vIGZhbGwgYmFjayB0byBjaGVjayB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgcGF0aCBvZiB0aGUgY2xpY2sgZXZlbnQuXG4gICAgICAgICAgICAgICAgY29uc3QgY2xpY2tUYXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybUZpZWxkOiBhbnkgPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbE9wZW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICBjbGlja1RhcmdldCAhPT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGNsaWNrVGFyZ2V0KSAmJlxuICAgICAgICAgICAgICAgICAgICAoIWZvcm1GaWVsZCB8fCAhZm9ybUZpZWxkLmNvbnRhaW5zKGNsaWNrVGFyZ2V0KSkgJiZcbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLm92ZXJsYXlSZWYgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5jb250YWlucyhjbGlja1RhcmdldClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gaW5wdXQgPyBpbnB1dCA6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBlbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbk9wZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgcmV0dXJuICFlbGVtZW50LnJlYWRPbmx5ICYmICFlbGVtZW50LmRpc2FibGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRBY3RpdmVJdGVtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0odGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQudGh5QXV0b0FjdGl2ZUZpcnN0T3B0aW9uID8gMCA6IC0xKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3lQYW5lbCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVBhbmVsKCk7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNsb3NlS2V5RXZlbnRTdHJlYW0uY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95UGFuZWwoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, Input, Output
|
|
2
|
-
import { isString } from 'ngx-tethys/util';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, Input, Output } from '@angular/core';
|
|
2
|
+
import { isString, coerceBooleanProperty } from 'ngx-tethys/util';
|
|
3
3
|
import { useHostRenderer } from '@tethys/cdk/dom';
|
|
4
4
|
import { ThyAvatarService } from './avatar.service';
|
|
5
5
|
import { AvatarShortNamePipe, AvatarBgColorPipe, AvatarSrcPipe } from './avatar.pipe';
|
|
@@ -138,7 +138,7 @@ export class ThyAvatar {
|
|
|
138
138
|
this.thyError.emit($event);
|
|
139
139
|
}
|
|
140
140
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyAvatar, deps: [{ token: i1.ThyAvatarService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
141
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyAvatar, isStandalone: true, selector: "thy-avatar", inputs: { thyShowName: ["thyShowName", "thyShowName",
|
|
141
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyAvatar, isStandalone: true, selector: "thy-avatar", inputs: { thyShowName: ["thyShowName", "thyShowName", coerceBooleanProperty], thySrc: "thySrc", thyName: "thyName", thySize: "thySize", thyShowRemove: ["thyShowRemove", "thyShowRemove", coerceBooleanProperty], thyRemovable: ["thyRemovable", "thyRemovable", coerceBooleanProperty], thyImgClass: "thyImgClass", thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty], thyLoading: "thyLoading", thyFetchPriority: "thyFetchPriority" }, outputs: { thyOnRemove: "thyOnRemove", thyRemove: "thyRemove", thyError: "thyError" }, host: { properties: { "class.thy-avatar": "this._isAvatar" } }, ngImport: i0, template: "<img\n *ngIf=\"_src; else noSrc\"\n [src]=\"_src | thyAvatarSrc: _size\"\n class=\"avatar-avatar\"\n [ngClass]=\"thyImgClass\"\n alt=\"{{ avatarName || '' }}\"\n [attr.loading]=\"thyLoading\"\n [attr.fetchpriority]=\"thyFetchPriority\"\n (error)=\"avatarImgError($event)\"\n/>\n\n<ng-template #noSrc>\n <span class=\"avatar-default\" [ngStyle]=\"avatarName | avatarBgColor\">\n <div>{{ avatarName | avatarShortName }}</div>\n </span>\n</ng-template>\n\n<ng-template [ngIf]=\"thyShowName\">\n <div *ngIf=\"avatarNameSafeHtml; else noAvatarNameSafeHtml\" class=\"avatar-name\" [innerHtml]=\"avatarNameSafeHtml\"></div>\n <ng-template #noAvatarNameSafeHtml>\n <div class=\"avatar-name\">{{ avatarName }}</div>\n </ng-template>\n</ng-template>\n\n<a *ngIf=\"_showRemove\" (click)=\"remove($event)\" href=\"javascript:;\" class=\"remove-link avatar-remove\">\n <thy-icon class=\"remove-link-icon\" thyIconName=\"close-circle-bold-fill\"></thy-icon>\n</a>\n<div *ngIf=\"thyDisabled\" class=\"thy-avatar-disabled\">\n <thy-icon class=\"thy-avatar-disabled-icon\" thyIconName=\"ban\"></thy-icon>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "pipe", type: AvatarShortNamePipe, name: "avatarShortName" }, { kind: "pipe", type: AvatarBgColorPipe, name: "avatarBgColor" }, { kind: "pipe", type: AvatarSrcPipe, name: "thyAvatarSrc" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
142
142
|
}
|
|
143
143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyAvatar, decorators: [{
|
|
144
144
|
type: Component,
|
|
@@ -154,7 +154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
154
154
|
type: Output
|
|
155
155
|
}], thyShowName: [{
|
|
156
156
|
type: Input,
|
|
157
|
-
args: [{ transform:
|
|
157
|
+
args: [{ transform: coerceBooleanProperty }]
|
|
158
158
|
}], thySrc: [{
|
|
159
159
|
type: Input
|
|
160
160
|
}], thyName: [{
|
|
@@ -163,18 +163,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
163
163
|
type: Input
|
|
164
164
|
}], thyShowRemove: [{
|
|
165
165
|
type: Input,
|
|
166
|
-
args: [{ transform:
|
|
166
|
+
args: [{ transform: coerceBooleanProperty }]
|
|
167
167
|
}], thyRemovable: [{
|
|
168
168
|
type: Input,
|
|
169
|
-
args: [{ transform:
|
|
169
|
+
args: [{ transform: coerceBooleanProperty }]
|
|
170
170
|
}], thyImgClass: [{
|
|
171
171
|
type: Input
|
|
172
172
|
}], thyDisabled: [{
|
|
173
173
|
type: Input,
|
|
174
|
-
args: [{ transform:
|
|
174
|
+
args: [{ transform: coerceBooleanProperty }]
|
|
175
175
|
}], thyLoading: [{
|
|
176
176
|
type: Input
|
|
177
177
|
}], thyFetchPriority: [{
|
|
178
178
|
type: Input
|
|
179
179
|
}] } });
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBQ04sZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUV6RCxNQUFNLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUVqRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBRS9CLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzVCLEdBQUcsRUFBRSxFQUFFO0lBQ1AsRUFBRSxFQUFFLEVBQUU7SUFDTixFQUFFLEVBQUUsRUFBRTtJQUNOLEVBQUUsRUFBRSxFQUFFO0lBQ04sRUFBRSxFQUFFLEVBQUU7Q0FDVCxDQUFDO0FBUUY7Ozs7R0FJRztBQVFILE1BQU0sT0FBTyxTQUFTO0lBa0NsQjs7O09BR0c7SUFDSCxJQUNJLE1BQU0sQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDSSxPQUFPLENBQUMsS0FBYTtRQUNyQixzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQ0ksT0FBTyxDQUFDLEtBQXNCO1FBQzlCLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsY0FBYyxDQUFFLEtBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFDSSxhQUFhLENBQUMsS0FBYztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFDSSxZQUFZLENBQUMsS0FBYztRQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBeUJPLGNBQWMsQ0FBQyxJQUFZO1FBQy9CLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxjQUFjLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVPLGVBQWUsQ0FBQyxTQUFtQixFQUFFLFdBQW1CO1FBQzVELElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLGlCQUFpQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBRTdELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDeEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQztZQUMvRCxJQUFJLGlCQUFpQixJQUFJLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3pDLFlBQVksR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1lBQzFDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxHQUFXO1FBQzdCLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckUsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDcEIsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNyQixDQUFDO0lBQ0wsQ0FBQztJQUVPLGNBQWMsQ0FBQyxLQUFhO1FBQ2hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEQsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQWMsQ0FBQztRQUNyQyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFJRCxZQUFvQixnQkFBa0MsRUFBUyxVQUFzQjtRQUFqRSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQXBKckYsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFNYSxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRWxEOzs7V0FHRztRQUNPLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUzQzs7V0FFRztRQUNPLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXpDOztXQUVHO1FBQ08sYUFBUSxHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO1FBNEg1RCxpQkFBWSxHQUFHLGVBQWUsRUFBRSxDQUFDO0lBRStDLENBQUM7SUFFekYsUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGNBQWMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQWE7UUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFhO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs4R0F6S1EsU0FBUztrR0FBVCxTQUFTLG9HQWdDRSxnQkFBZ0IsK0dBdUNoQixnQkFBZ0Isa0RBU2hCLGdCQUFnQiwyRUFjaEIsZ0JBQWdCLG9QQy9JeEMsZ21DQThCQSw0Q0RpQmMsSUFBSSw2RkFBRSxPQUFPLG9GQUFFLE9BQU8sMkVBQUUsT0FBTyxpTUFBRSxtQkFBbUIsbURBQUUsaUJBQWlCLGlEQUFFLGFBQWE7OzJGQUV2RixTQUFTO2tCQVByQixTQUFTOytCQUNJLFlBQVksbUJBRUwsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxDQUFDOzhHQVloRSxTQUFTO3NCQUF6QyxXQUFXO3VCQUFDLGtCQUFrQjtnQkFNckIsV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxTQUFTO3NCQUFsQixNQUFNO2dCQUtHLFFBQVE7c0JBQWpCLE1BQU07Z0JBTWlDLFdBQVc7c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBT2xDLE1BQU07c0JBRFQsS0FBSztnQkFTRixPQUFPO3NCQURWLEtBQUs7Z0JBWUYsT0FBTztzQkFEVixLQUFLO2dCQWVGLGFBQWE7c0JBRGhCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBVWxDLFlBQVk7c0JBRGYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRN0IsV0FBVztzQkFBbkIsS0FBSztnQkFNa0MsV0FBVztzQkFBbEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNN0IsVUFBVTtzQkFBbEIsS0FBSztnQkFNRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgdXNlSG9zdFJlbmRlcmVyIH0gZnJvbSAnQHRldGh5cy9jZGsvZG9tJztcbmltcG9ydCB7IFRoeUF2YXRhclNlcnZpY2UgfSBmcm9tICcuL2F2YXRhci5zZXJ2aWNlJztcbmltcG9ydCB7IEF2YXRhclNob3J0TmFtZVBpcGUsIEF2YXRhckJnQ29sb3JQaXBlLCBBdmF0YXJTcmNQaXBlIH0gZnJvbSAnLi9hdmF0YXIucGlwZSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IE5nSWYsIE5nQ2xhc3MsIE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5jb25zdCBzaXplQXJyYXkgPSBbMTYsIDIyLCAyNCwgMjgsIDMyLCAzNiwgNDQsIDQ4LCA2OCwgMTEwLCAxNjBdO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9TSVpFID0gMzY7XG5cbmV4cG9ydCBjb25zdCB0aHlBdmF0YXJTaXplTWFwID0ge1xuICAgIHh4czogMjIsXG4gICAgeHM6IDI0LFxuICAgIHNtOiAzMixcbiAgICBtZDogMzYsXG4gICAgbGc6IDQ4XG59O1xuXG4vKiogaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZW1iZWRkZWQtY29udGVudC5odG1sI2F0dHItaW1nLWxvYWRpbmcgKi9cbmV4cG9ydCB0eXBlIFRoeUF2YXRhckxvYWRpbmcgPSAnZWFnZXInIHwgJ2xhenknO1xuXG4vKiogaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9wcmlvcml0eS1oaW50cy8jaWRsLWluZGV4ICovXG5leHBvcnQgdHlwZSBUaHlBdmF0YXJGZXRjaFByaW9yaXR5ID0gJ2hpZ2gnIHwgJ2xvdycgfCAnYXV0byc7XG5cbi8qKlxuICog5aS05YOP57uE5Lu2XG4gKiBAbmFtZSB0aHktYXZhdGFyXG4gKiBAb3JkZXIgMTBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktYXZhdGFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBOZ0NsYXNzLCBOZ1N0eWxlLCBUaHlJY29uLCBBdmF0YXJTaG9ydE5hbWVQaXBlLCBBdmF0YXJCZ0NvbG9yUGlwZSwgQXZhdGFyU3JjUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5QXZhdGFyIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBfc3JjOiBzdHJpbmc7XG4gICAgX25hbWU6IHN0cmluZztcbiAgICBfc2l6ZTogbnVtYmVyO1xuICAgIF9zaG93UmVtb3ZlID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgYXZhdGFyU3JjOiBzdHJpbmc7XG4gICAgcHVibGljIGF2YXRhck5hbWU/OiBzdHJpbmc7XG4gICAgcHVibGljIGF2YXRhck5hbWVTYWZlSHRtbD86IFNhZmVIdG1sO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aHktYXZhdGFyJykgX2lzQXZhdGFyID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqICog5bey5bqf5byD77yM6K+35L2/55SoIHRoeVJlbW92ZVxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeU9uUmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICogIOenu+mZpOaMiemSrueahOS6i+S7tiwg5b2TIHRoeVJlbW92YWJsZSDkuLogdHJ1ZSDml7botbfkvZznlKhcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5UmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICogIOWktOWDjyBpbWcg5Yqg6L29IGVycm9yIOaXtuinpuWPkVxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlFcnJvcjogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblsZXnpLrkurrlkZjlkI3np7BcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB0aHlTaG93TmFtZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOWktOWDj+i3r+W+hOWcsOWdgCwg6buY6K6k5Li65YWo6Lev5b6E77yM5aaC5p6c5LiN5piv5YWo6Lev5b6E77yM5Y+v5Lul6YCa6L+H6Ieq5a6a5LmJ5pyN5YqhIFRoeUF2YXRhclNlcnZpY2XvvIzph43lhpkgc3JjVHJhbnNmb3JtIOaWueazleWunueOsOi9rOaNolxuICAgICAqXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U3JjKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc2V0QXZhdGFyU3JjKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDkurrlkZjlkI3np7DvvIjlj6/orr7nva7oh6rlrprkuYnlkI3np7DvvIzpnIDpgJrov4foh6rlrprkuYnmnI3liqEgVGh5QXZhdGFyU2VydmljZe+8jOmHjeWGmSBuYW1lVHJhbnNmb3JtIOaWueazleWOu+WunueOsOi9rOaNou+8iVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeU5hbWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICAvLyB0aGlzLl9uYW1lID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3NldEF2YXRhck5hbWUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWktOWDj+Wkp+Wwj1xuICAgICAqIEB0eXBlIDE2IHwgMjIgfCAyNCB8IDI4IHwgMzIgfCAzNiB8IDQ0IHwgNDggfCA2OCB8IDExMCB8IDE2MCB8IHh4cygyMnB4KSB8IHhzKDI0cHgpIHwgc20oMzJweCkgfCBtZCgzNnB4KSB8IGxnKDQ4cHgpXG4gICAgICogQGRlZmF1bHQgbWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlTaXplKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoeUF2YXRhclNpemVNYXBbdmFsdWVdKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRBdmF0YXJTaXplKHRoeUF2YXRhclNpemVNYXBbdmFsdWVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEF2YXRhclNpemUoKHZhbHVlIGFzIG51bWJlcikgKiAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW3suW6n+W8g++8jOivt+S9v+eUqCB0aHlSZW1vdmFibGVcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeVNob3dSZW1vdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2hvd1JlbW92ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuWxleekuuenu+mZpOaMiemSrlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeVJlbW92YWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zaG93UmVtb3ZlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Zu+54mH6Ieq5a6a5LmJ57G7XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5SW1nQ2xhc3M6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuemgeeUqFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeURpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5Zu+54mH5Yqg6L29562W55WlXG4gICAgICogQHR5cGUgZWFnZXIo56uL5Y2z5Yqg6L29KSB8IGxhenko5bu26L+f5Yqg6L29KVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUxvYWRpbmc/OiBUaHlBdmF0YXJMb2FkaW5nO1xuXG4gICAgLyoqXG4gICAgICog5Zu+54mH5Yqg6L295LyY5YWI57qnXG4gICAgICogQHR5cGUgYXV0byjpu5jorqQpIHwgaGlnaCjpq5gpIHwgbG93KOS9jilcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlGZXRjaFByaW9yaXR5PzogVGh5QXZhdGFyRmV0Y2hQcmlvcml0eTtcblxuICAgIHByaXZhdGUgX3NldEF2YXRhclNpemUoc2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmIChzaXplQXJyYXkuaW5kZXhPZihzaXplKSA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLl9zaXplID0gc2l6ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NpemUgPSB0aGlzLmZpbmRDbG9zZXN0U2l6ZShzaXplQXJyYXksIHNpemUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKFtgdGh5LWF2YXRhci0ke3RoaXMuX3NpemV9YF0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluZENsb3Nlc3RTaXplKHNpemVBcnJheTogbnVtYmVyW10sIGN1cnJlbnRTaXplOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBsZXQgY2xvc2VzdFZhbHVlID0gc2l6ZUFycmF5WzBdO1xuICAgICAgICBsZXQgY2xvc2VzdERpZmZlcmVuY2UgPSBNYXRoLmFicyhjbG9zZXN0VmFsdWUgLSBjdXJyZW50U2l6ZSk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBzaXplQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREaWZmZXJlbmNlID0gTWF0aC5hYnMoc2l6ZUFycmF5W2ldIC0gY3VycmVudFNpemUpO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnREaWZmZXJlbmNlIDw9IGNsb3Nlc3REaWZmZXJlbmNlKSB7XG4gICAgICAgICAgICAgICAgY2xvc2VzdFZhbHVlID0gc2l6ZUFycmF5W2ldO1xuICAgICAgICAgICAgICAgIGNsb3Nlc3REaWZmZXJlbmNlID0gY3VycmVudERpZmZlcmVuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2xvc2VzdFZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEF2YXRhclNyYyhzcmM6IHN0cmluZykge1xuICAgICAgICBpZiAoc3JjICYmIHRoaXMudGh5QXZhdGFyU2VydmljZS5pZ25vcmVBdmF0YXJTcmNQYXRocy5pbmRleE9mKHNyYykgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLl9zcmMgPSBzcmM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zcmMgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0QXZhdGFyTmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLnRoeUF2YXRhclNlcnZpY2UubmFtZVRyYW5zZm9ybSh2YWx1ZSk7XG4gICAgICAgIGlmIChpc1N0cmluZyhuYW1lKSkge1xuICAgICAgICAgICAgdGhpcy5hdmF0YXJOYW1lID0gbmFtZSBhcyBzdHJpbmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmF2YXRhck5hbWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuYXZhdGFyTmFtZVNhZmVIdG1sID0gbmFtZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRoeUF2YXRhclNlcnZpY2U6IFRoeUF2YXRhclNlcnZpY2UsIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5fc2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0QXZhdGFyU2l6ZShERUZBVUxUX1NJWkUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKFtgdGh5LWF2YXRhci0ke3RoaXMuX3NpemV9YF0pO1xuICAgIH1cblxuICAgIHJlbW92ZSgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMudGh5T25SZW1vdmUuZW1pdCgkZXZlbnQpO1xuICAgICAgICB0aGlzLnRoeVJlbW92ZS5lbWl0KCRldmVudCk7XG4gICAgfVxuXG4gICAgYXZhdGFySW1nRXJyb3IoJGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLl9zZXRBdmF0YXJTcmMobnVsbCk7XG4gICAgICAgIHRoaXMudGh5RXJyb3IuZW1pdCgkZXZlbnQpO1xuICAgIH1cbn1cbiIsIjxpbWdcbiAgKm5nSWY9XCJfc3JjOyBlbHNlIG5vU3JjXCJcbiAgW3NyY109XCJfc3JjIHwgdGh5QXZhdGFyU3JjOiBfc2l6ZVwiXG4gIGNsYXNzPVwiYXZhdGFyLWF2YXRhclwiXG4gIFtuZ0NsYXNzXT1cInRoeUltZ0NsYXNzXCJcbiAgYWx0PVwie3sgYXZhdGFyTmFtZSB8fCAnJyB9fVwiXG4gIFthdHRyLmxvYWRpbmddPVwidGh5TG9hZGluZ1wiXG4gIFthdHRyLmZldGNocHJpb3JpdHldPVwidGh5RmV0Y2hQcmlvcml0eVwiXG4gIChlcnJvcik9XCJhdmF0YXJJbWdFcnJvcigkZXZlbnQpXCJcbi8+XG5cbjxuZy10ZW1wbGF0ZSAjbm9TcmM+XG4gIDxzcGFuIGNsYXNzPVwiYXZhdGFyLWRlZmF1bHRcIiBbbmdTdHlsZV09XCJhdmF0YXJOYW1lIHwgYXZhdGFyQmdDb2xvclwiPlxuICAgIDxkaXY+e3sgYXZhdGFyTmFtZSB8IGF2YXRhclNob3J0TmFtZSB9fTwvZGl2PlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgW25nSWZdPVwidGh5U2hvd05hbWVcIj5cbiAgPGRpdiAqbmdJZj1cImF2YXRhck5hbWVTYWZlSHRtbDsgZWxzZSBub0F2YXRhck5hbWVTYWZlSHRtbFwiIGNsYXNzPVwiYXZhdGFyLW5hbWVcIiBbaW5uZXJIdG1sXT1cImF2YXRhck5hbWVTYWZlSHRtbFwiPjwvZGl2PlxuICA8bmctdGVtcGxhdGUgI25vQXZhdGFyTmFtZVNhZmVIdG1sPlxuICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItbmFtZVwiPnt7IGF2YXRhck5hbWUgfX08L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxhICpuZ0lmPVwiX3Nob3dSZW1vdmVcIiAoY2xpY2spPVwicmVtb3ZlKCRldmVudClcIiBocmVmPVwiamF2YXNjcmlwdDo7XCIgY2xhc3M9XCJyZW1vdmUtbGluayBhdmF0YXItcmVtb3ZlXCI+XG4gIDx0aHktaWNvbiBjbGFzcz1cInJlbW92ZS1saW5rLWljb25cIiB0aHlJY29uTmFtZT1cImNsb3NlLWNpcmNsZS1ib2xkLWZpbGxcIj48L3RoeS1pY29uPlxuPC9hPlxuPGRpdiAqbmdJZj1cInRoeURpc2FibGVkXCIgY2xhc3M9XCJ0aHktYXZhdGFyLWRpc2FibGVkXCI+XG4gIDx0aHktaWNvbiBjbGFzcz1cInRoeS1hdmF0YXItZGlzYWJsZWQtaWNvblwiIHRoeUljb25OYW1lPVwiYmFuXCI+PC90aHktaWNvbj5cbjwvZGl2PlxuIl19
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqSSxPQUFPLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFekQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFFakUsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztBQUUvQixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM1QixHQUFHLEVBQUUsRUFBRTtJQUNQLEVBQUUsRUFBRSxFQUFFO0lBQ04sRUFBRSxFQUFFLEVBQUU7SUFDTixFQUFFLEVBQUUsRUFBRTtJ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ZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBpc1N0cmluZywgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBUaHlBdmF0YXJTZXJ2aWNlIH0gZnJvbSAnLi9hdmF0YXIuc2VydmljZSc7XG5pbXBvcnQgeyBBdmF0YXJTaG9ydE5hbWVQaXBlLCBBdmF0YXJCZ0NvbG9yUGlwZSwgQXZhdGFyU3JjUGlwZSB9IGZyb20gJy4vYXZhdGFyLnBpcGUnO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBOZ0lmLCBOZ0NsYXNzLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuY29uc3Qgc2l6ZUFycmF5ID0gWzE2LCAyMiwgMjQsIDI4LCAzMiwgMzYsIDQ0LCA0OCwgNjgsIDExMCwgMTYwXTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0laRSA9IDM2O1xuXG5leHBvcnQgY29uc3QgdGh5QXZhdGFyU2l6ZU1hcCA9IHtcbiAgICB4eHM6IDIyLFxuICAgIHhzOiAyNCxcbiAgICBzbTogMzIsXG4gICAgbWQ6IDM2LFxuICAgIGxnOiA0OFxufTtcblxuLyoqIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2VtYmVkZGVkLWNvbnRlbnQuaHRtbCNhdHRyLWltZy1sb2FkaW5nICovXG5leHBvcnQgdHlwZSBUaHlBdmF0YXJMb2FkaW5nID0gJ2VhZ2VyJyB8ICdsYXp5JztcblxuLyoqIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vcHJpb3JpdHktaGludHMvI2lkbC1pbmRleCAqL1xuZXhwb3J0IHR5cGUgVGh5QXZhdGFyRmV0Y2hQcmlvcml0eSA9ICdoaWdoJyB8ICdsb3cnIHwgJ2F1dG8nO1xuXG4vKipcbiAqIOWktOWDj+e7hOS7tlxuICogQG5hbWUgdGh5LWF2YXRhclxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWF2YXRhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2F2YXRhci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgTmdDbGFzcywgTmdTdHlsZSwgVGh5SWNvbiwgQXZhdGFyU2hvcnROYW1lUGlwZSwgQXZhdGFyQmdDb2xvclBpcGUsIEF2YXRhclNyY1BpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeUF2YXRhciBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgX3NyYzogc3RyaW5nO1xuICAgIF9uYW1lOiBzdHJpbmc7XG4gICAgX3NpemU6IG51bWJlcjtcbiAgICBfc2hvd1JlbW92ZSA9IGZhbHNlO1xuXG4gICAgcHVibGljIGF2YXRhclNyYzogc3RyaW5nO1xuICAgIHB1YmxpYyBhdmF0YXJOYW1lPzogc3RyaW5nO1xuICAgIHB1YmxpYyBhdmF0YXJOYW1lU2FmZUh0bWw/OiBTYWZlSHRtbDtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGh5LWF2YXRhcicpIF9pc0F2YXRhciA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiAqIOW3suW6n+W8g++8jOivt+S9v+eUqCB0aHlSZW1vdmVcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlPblJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKlxuICAgICAqICDnp7vpmaTmjInpkq7nmoTkuovku7YsIOW9kyB0aHlSZW1vdmFibGUg5Li6IHRydWUg5pe26LW35L2c55SoXG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeVJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKlxuICAgICAqICDlpLTlg48gaW1nIOWKoOi9vSBlcnJvciDml7bop6blj5FcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5RXJyb3I6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5bGV56S65Lq65ZGY5ZCN56ewXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlTaG93TmFtZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOWktOWDj+i3r+W+hOWcsOWdgCwg6buY6K6k5Li65YWo6Lev5b6E77yM5aaC5p6c5LiN5piv5YWo6Lev5b6E77yM5Y+v5Lul6YCa6L+H6Ieq5a6a5LmJ5pyN5YqhIFRoeUF2YXRhclNlcnZpY2XvvIzph43lhpkgc3JjVHJhbnNmb3JtIOaWueazleWunueOsOi9rOaNolxuICAgICAqXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U3JjKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc2V0QXZhdGFyU3JjKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDkurrlkZjlkI3np7DvvIjlj6/orr7nva7oh6rlrprkuYnlkI3np7DvvIzpnIDpgJrov4foh6rlrprkuYnmnI3liqEgVGh5QXZhdGFyU2VydmljZe+8jOmHjeWGmSBuYW1lVHJhbnNmb3JtIOaWueazleWOu+WunueOsOi9rOaNou+8iVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeU5hbWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICAvLyB0aGlzLl9uYW1lID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3NldEF2YXRhck5hbWUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWktOWDj+Wkp+Wwj1xuICAgICAqIEB0eXBlIDE2IHwgMjIgfCAyNCB8IDI4IHwgMzIgfCAzNiB8IDQ0IHwgNDggfCA2OCB8IDExMCB8IDE2MCB8IHh4cygyMnB4KSB8IHhzKDI0cHgpIHwgc20oMzJweCkgfCBtZCgzNnB4KSB8IGxnKDQ4cHgpXG4gICAgICogQGRlZmF1bHQgbWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlTaXplKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoeUF2YXRhclNpemVNYXBbdmFsdWVdKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRBdmF0YXJTaXplKHRoeUF2YXRhclNpemVNYXBbdmFsdWVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEF2YXRhclNpemUoKHZhbHVlIGFzIG51bWJlcikgKiAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW3suW6n+W8g++8jOivt+S9v+eUqCB0aHlSZW1vdmFibGVcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgdGh5U2hvd1JlbW92ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zaG93UmVtb3ZlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5bGV56S656e76Zmk5oyJ6ZKuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCB0aHlSZW1vdmFibGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2hvd1JlbW92ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWbvueJh+iHquWumuS5ieexu1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUltZ0NsYXNzOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbnpoHnlKhcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeURpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5Zu+54mH5Yqg6L29562W55WlXG4gICAgICogQHR5cGUgZWFnZXIo56uL5Y2z5Yqg6L29KSB8IGxhenko5bu26L+f5Yqg6L29KVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUxvYWRpbmc/OiBUaHlBdmF0YXJMb2FkaW5nO1xuXG4gICAgLyoqXG4gICAgICog5Zu+54mH5Yqg6L295LyY5YWI57qnXG4gICAgICogQHR5cGUgYXV0byjpu5jorqQpIHwgaGlnaCjpq5gpIHwgbG93KOS9jilcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlGZXRjaFByaW9yaXR5PzogVGh5QXZhdGFyRmV0Y2hQcmlvcml0eTtcblxuICAgIHByaXZhdGUgX3NldEF2YXRhclNpemUoc2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmIChzaXplQXJyYXkuaW5kZXhPZihzaXplKSA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLl9zaXplID0gc2l6ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NpemUgPSB0aGlzLmZpbmRDbG9zZXN0U2l6ZShzaXplQXJyYXksIHNpemUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKFtgdGh5LWF2YXRhci0ke3RoaXMuX3NpemV9YF0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluZENsb3Nlc3RTaXplKHNpemVBcnJheTogbnVtYmVyW10sIGN1cnJlbnRTaXplOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBsZXQgY2xvc2VzdFZhbHVlID0gc2l6ZUFycmF5WzBdO1xuICAgICAgICBsZXQgY2xvc2VzdERpZmZlcmVuY2UgPSBNYXRoLmFicyhjbG9zZXN0VmFsdWUgLSBjdXJyZW50U2l6ZSk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBzaXplQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREaWZmZXJlbmNlID0gTWF0aC5hYnMoc2l6ZUFycmF5W2ldIC0gY3VycmVudFNpemUpO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnREaWZmZXJlbmNlIDw9IGNsb3Nlc3REaWZmZXJlbmNlKSB7XG4gICAgICAgICAgICAgICAgY2xvc2VzdFZhbHVlID0gc2l6ZUFycmF5W2ldO1xuICAgICAgICAgICAgICAgIGNsb3Nlc3REaWZmZXJlbmNlID0gY3VycmVudERpZmZlcmVuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2xvc2VzdFZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEF2YXRhclNyYyhzcmM6IHN0cmluZykge1xuICAgICAgICBpZiAoc3JjICYmIHRoaXMudGh5QXZhdGFyU2VydmljZS5pZ25vcmVBdmF0YXJTcmNQYXRocy5pbmRleE9mKHNyYykgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLl9zcmMgPSBzcmM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zcmMgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0QXZhdGFyTmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLnRoeUF2YXRhclNlcnZpY2UubmFtZVRyYW5zZm9ybSh2YWx1ZSk7XG4gICAgICAgIGlmIChpc1N0cmluZyhuYW1lKSkge1xuICAgICAgICAgICAgdGhpcy5hdmF0YXJOYW1lID0gbmFtZSBhcyBzdHJpbmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmF2YXRhck5hbWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuYXZhdGFyTmFtZVNhZmVIdG1sID0gbmFtZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRoeUF2YXRhclNlcnZpY2U6IFRoeUF2YXRhclNlcnZpY2UsIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5fc2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0QXZhdGFyU2l6ZShERUZBVUxUX1NJWkUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKFtgdGh5LWF2YXRhci0ke3RoaXMuX3NpemV9YF0pO1xuICAgIH1cblxuICAgIHJlbW92ZSgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMudGh5T25SZW1vdmUuZW1pdCgkZXZlbnQpO1xuICAgICAgICB0aGlzLnRoeVJlbW92ZS5lbWl0KCRldmVudCk7XG4gICAgfVxuXG4gICAgYXZhdGFySW1nRXJyb3IoJGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLl9zZXRBdmF0YXJTcmMobnVsbCk7XG4gICAgICAgIHRoaXMudGh5RXJyb3IuZW1pdCgkZXZlbnQpO1xuICAgIH1cbn1cbiIsIjxpbWdcbiAgKm5nSWY9XCJfc3JjOyBlbHNlIG5vU3JjXCJcbiAgW3NyY109XCJfc3JjIHwgdGh5QXZhdGFyU3JjOiBfc2l6ZVwiXG4gIGNsYXNzPVwiYXZhdGFyLWF2YXRhclwiXG4gIFtuZ0NsYXNzXT1cInRoeUltZ0NsYXNzXCJcbiAgYWx0PVwie3sgYXZhdGFyTmFtZSB8fCAnJyB9fVwiXG4gIFthdHRyLmxvYWRpbmddPVwidGh5TG9hZGluZ1wiXG4gIFthdHRyLmZldGNocHJpb3JpdHldPVwidGh5RmV0Y2hQcmlvcml0eVwiXG4gIChlcnJvcik9XCJhdmF0YXJJbWdFcnJvcigkZXZlbnQpXCJcbi8+XG5cbjxuZy10ZW1wbGF0ZSAjbm9TcmM+XG4gIDxzcGFuIGNsYXNzPVwiYXZhdGFyLWRlZmF1bHRcIiBbbmdTdHlsZV09XCJhdmF0YXJOYW1lIHwgYXZhdGFyQmdDb2xvclwiPlxuICAgIDxkaXY+e3sgYXZhdGFyTmFtZSB8IGF2YXRhclNob3J0TmFtZSB9fTwvZGl2PlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgW25nSWZdPVwidGh5U2hvd05hbWVcIj5cbiAgPGRpdiAqbmdJZj1cImF2YXRhck5hbWVTYWZlSHRtbDsgZWxzZSBub0F2YXRhck5hbWVTYWZlSHRtbFwiIGNsYXNzPVwiYXZhdGFyLW5hbWVcIiBbaW5uZXJIdG1sXT1cImF2YXRhck5hbWVTYWZlSHRtbFwiPjwvZGl2PlxuICA8bmctdGVtcGxhdGUgI25vQXZhdGFyTmFtZVNhZmVIdG1sPlxuICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItbmFtZVwiPnt7IGF2YXRhck5hbWUgfX08L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxhICpuZ0lmPVwiX3Nob3dSZW1vdmVcIiAoY2xpY2spPVwicmVtb3ZlKCRldmVudClcIiBocmVmPVwiamF2YXNjcmlwdDo7XCIgY2xhc3M9XCJyZW1vdmUtbGluayBhdmF0YXItcmVtb3ZlXCI+XG4gIDx0aHktaWNvbiBjbGFzcz1cInJlbW92ZS1saW5rLWljb25cIiB0aHlJY29uTmFtZT1cImNsb3NlLWNpcmNsZS1ib2xkLWZpbGxcIj48L3RoeS1pY29uPlxuPC9hPlxuPGRpdiAqbmdJZj1cInRoeURpc2FibGVkXCIgY2xhc3M9XCJ0aHktYXZhdGFyLWRpc2FibGVkXCI+XG4gIDx0aHktaWNvbiBjbGFzcz1cInRoeS1hdmF0YXItZGlzYWJsZWQtaWNvblwiIHRoeUljb25OYW1lPVwiYmFuXCI+PC90aHktaWNvbj5cbjwvZGl2PlxuIl19
|