ngx-tethys 18.2.5 → 18.2.6
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 +14 -0
- package/carousel/carousel.component.d.ts +2 -2
- package/date-picker/date-picker.config.d.ts +1 -1
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +2 -2
- package/date-picker/lib/date/date-table.component.d.ts +2 -2
- package/date-picker/lib/popups/date-popup.component.d.ts +3 -2
- package/date-picker/lib/popups/inner-popup.component.d.ts +1 -1
- package/date-picker/picker.util.d.ts +3 -3
- package/date-range/date-range.component.d.ts +1 -1
- package/esm2022/action/action.component.mjs +4 -4
- package/esm2022/action/action.module.mjs +5 -5
- package/esm2022/action/actions.component.mjs +4 -4
- package/esm2022/affix/affix.component.mjs +4 -4
- package/esm2022/affix/affix.module.mjs +5 -5
- package/esm2022/alert/alert.component.mjs +4 -4
- package/esm2022/alert/alert.directive.mjs +4 -4
- package/esm2022/alert/alert.module.mjs +5 -5
- package/esm2022/anchor/anchor-link.component.mjs +4 -4
- package/esm2022/anchor/anchor.component.mjs +4 -4
- package/esm2022/anchor/anchor.module.mjs +5 -5
- package/esm2022/arrow-switcher/arrow-switcher.component.mjs +4 -4
- package/esm2022/arrow-switcher/module.mjs +5 -5
- package/esm2022/autocomplete/autocomplete.component.mjs +4 -4
- package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +4 -4
- package/esm2022/autocomplete/module.mjs +5 -5
- package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +4 -4
- package/esm2022/autocomplete/overlay/autocomplete.service.mjs +4 -4
- package/esm2022/avatar/avatar-list/avatar-list.component.mjs +4 -4
- package/esm2022/avatar/avatar.component.mjs +4 -4
- package/esm2022/avatar/avatar.module.mjs +5 -5
- package/esm2022/avatar/avatar.pipe.mjs +10 -10
- package/esm2022/avatar/avatar.service.mjs +4 -4
- package/esm2022/back-top/back-top.component.mjs +4 -4
- package/esm2022/back-top/back-top.module.mjs +5 -5
- package/esm2022/badge/badge.component.mjs +4 -4
- package/esm2022/badge/badge.module.mjs +5 -5
- package/esm2022/breadcrumb/breadcrumb-item.component.mjs +4 -4
- package/esm2022/breadcrumb/breadcrumb.component.mjs +4 -4
- package/esm2022/breadcrumb/module.mjs +5 -5
- package/esm2022/button/button-group.component.mjs +4 -4
- package/esm2022/button/button-icon.component.mjs +4 -4
- package/esm2022/button/button.component.mjs +4 -4
- package/esm2022/button/button.module.mjs +5 -5
- package/esm2022/calendar/calendar-cells.mjs +7 -7
- package/esm2022/calendar/calendar-header.component.mjs +17 -17
- package/esm2022/calendar/calendar.component.mjs +6 -6
- package/esm2022/calendar/module.mjs +5 -5
- package/esm2022/card/card.component.mjs +4 -4
- package/esm2022/card/card.module.mjs +5 -5
- package/esm2022/card/content.component.mjs +4 -4
- package/esm2022/card/header.component.mjs +4 -4
- package/esm2022/carousel/carousel-item.directive.mjs +4 -4
- package/esm2022/carousel/carousel.component.mjs +13 -13
- package/esm2022/carousel/carousel.service.mjs +4 -4
- package/esm2022/carousel/module.mjs +5 -5
- package/esm2022/cascader/cascader-li.component.mjs +4 -4
- package/esm2022/cascader/cascader-search-option.component.mjs +4 -4
- package/esm2022/cascader/cascader.component.mjs +4 -4
- package/esm2022/cascader/cascader.service.mjs +4 -4
- package/esm2022/cascader/module.mjs +5 -5
- package/esm2022/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/checkbox/module.mjs +5 -5
- package/esm2022/collapse/collapse-item.component.mjs +4 -4
- package/esm2022/collapse/collapse.component.mjs +4 -4
- package/esm2022/collapse/module.mjs +5 -5
- package/esm2022/color-picker/color-picker-custom-panel.component.mjs +4 -4
- package/esm2022/color-picker/color-picker-panel.component.mjs +4 -4
- package/esm2022/color-picker/color-picker.component.mjs +4 -4
- package/esm2022/color-picker/coordinates.directive.mjs +4 -4
- package/esm2022/color-picker/module.mjs +5 -5
- package/esm2022/color-picker/parts/alpha/alpha.component.mjs +4 -4
- package/esm2022/color-picker/parts/hue/hue.component.mjs +4 -4
- package/esm2022/color-picker/parts/indicator/indicator.component.mjs +4 -4
- package/esm2022/color-picker/parts/inputs/inputs.component.mjs +4 -4
- package/esm2022/color-picker/parts/saturation/saturation.component.mjs +4 -4
- package/esm2022/comment/comment-actions.directive.mjs +4 -4
- package/esm2022/comment/comment-content.directive.mjs +4 -4
- package/esm2022/comment/comment.component.mjs +4 -4
- package/esm2022/comment/comment.module.mjs +5 -5
- package/esm2022/copy/copy.directive.mjs +4 -4
- package/esm2022/copy/module.mjs +5 -5
- package/esm2022/core/click-positioner.mjs +4 -4
- package/esm2022/core/overlay/portal-directives.mjs +4 -4
- package/esm2022/core/request-animation.mjs +3 -2
- package/esm2022/core/scroll.mjs +4 -4
- package/esm2022/core/store/store.mjs +4 -4
- package/esm2022/core/theme/store.mjs +4 -4
- package/esm2022/core/translate.mjs +4 -4
- package/esm2022/core/update-host-class.service.mjs +4 -4
- package/esm2022/date-picker/abstract-picker.component.mjs +4 -4
- package/esm2022/date-picker/abstract-picker.directive.mjs +4 -4
- package/esm2022/date-picker/base-picker.component.mjs +4 -4
- package/esm2022/date-picker/date-helper.service.mjs +4 -4
- package/esm2022/date-picker/date-picker.component.mjs +4 -4
- package/esm2022/date-picker/date-picker.config.mjs +12 -13
- package/esm2022/date-picker/date-picker.directive.mjs +4 -4
- package/esm2022/date-picker/date-picker.module.mjs +5 -5
- package/esm2022/date-picker/date-picker.service.mjs +4 -4
- package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +9 -9
- package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/calendar/calendar-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/date/date-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +4 -4
- package/esm2022/date-picker/lib/date/date-table.component.mjs +10 -9
- package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +4 -4
- package/esm2022/date-picker/lib/decade/decade-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/decade/decade-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/lib-packer.module.mjs +5 -5
- package/esm2022/date-picker/lib/month/month-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/month/month-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/popups/date-popup.component.mjs +21 -18
- package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +6 -6
- package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/year/year-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/year/year-table.component.mjs +4 -4
- package/esm2022/date-picker/month-picker.component.mjs +4 -4
- package/esm2022/date-picker/picker.component.mjs +8 -8
- package/esm2022/date-picker/picker.pipes.mjs +13 -13
- package/esm2022/date-picker/picker.util.mjs +8 -6
- package/esm2022/date-picker/picker.validators.mjs +7 -7
- package/esm2022/date-picker/quarter-picker.component.mjs +4 -4
- package/esm2022/date-picker/range-picker.component.mjs +4 -4
- package/esm2022/date-picker/range-picker.directive.mjs +4 -4
- package/esm2022/date-picker/week-picker.component.mjs +4 -4
- package/esm2022/date-picker/year-picker.component.mjs +4 -4
- package/esm2022/date-range/date-range.component.mjs +15 -16
- package/esm2022/date-range/module.mjs +5 -5
- package/esm2022/date-range/optional-dates/optional-dates.component.mjs +4 -4
- package/esm2022/dialog/body/dialog-body.component.mjs +4 -4
- package/esm2022/dialog/confirm/confirm.component.mjs +4 -4
- package/esm2022/dialog/dialog-container.component.mjs +4 -4
- package/esm2022/dialog/dialog.module.mjs +5 -5
- package/esm2022/dialog/dialog.service.mjs +4 -4
- package/esm2022/dialog/footer/dialog-footer.component.mjs +4 -4
- package/esm2022/dialog/header/dialog-header.component.mjs +4 -4
- package/esm2022/divider/divider.component.mjs +4 -4
- package/esm2022/divider/divider.module.mjs +5 -5
- package/esm2022/dot/dot.component.mjs +4 -4
- package/esm2022/dot/dot.module.mjs +5 -5
- package/esm2022/drag-drop/drag-content.directive.mjs +4 -4
- package/esm2022/drag-drop/drag-drop.service.mjs +4 -4
- package/esm2022/drag-drop/drag-handle.directive.mjs +4 -4
- package/esm2022/drag-drop/drag.directive.mjs +4 -4
- package/esm2022/drag-drop/drop-container.directive.mjs +4 -4
- package/esm2022/drag-drop/module.mjs +5 -5
- package/esm2022/dropdown/dropdown-active.directive.mjs +4 -4
- package/esm2022/dropdown/dropdown-menu-item.directive.mjs +22 -22
- package/esm2022/dropdown/dropdown-menu.component.mjs +13 -13
- package/esm2022/dropdown/dropdown-submenu.component.mjs +4 -4
- package/esm2022/dropdown/dropdown.directive.mjs +4 -4
- package/esm2022/dropdown/module.mjs +5 -5
- package/esm2022/empty/empty.component.mjs +4 -4
- package/esm2022/empty/empty.config.mjs +4 -4
- package/esm2022/empty/empty.module.mjs +5 -5
- package/esm2022/flexible-text/flexible-text.component.mjs +4 -4
- package/esm2022/flexible-text/flexible-text.module.mjs +5 -5
- package/esm2022/form/form-group-error/form-group-error.component.mjs +4 -4
- package/esm2022/form/form-group-label.directive.mjs +4 -4
- package/esm2022/form/form-group.component.mjs +4 -4
- package/esm2022/form/form-submit.directive.mjs +4 -4
- package/esm2022/form/form-validator-loader.mjs +4 -4
- package/esm2022/form/form-validator.service.mjs +4 -4
- package/esm2022/form/form.directive.mjs +4 -4
- package/esm2022/form/from-group-footer/form-group-footer.component.mjs +4 -4
- package/esm2022/form/module.mjs +5 -5
- package/esm2022/form/validator/confirm-validator.directive.mjs +4 -4
- package/esm2022/form/validator/max-validator.directive.mjs +4 -4
- package/esm2022/form/validator/min-validator.directive.mjs +4 -4
- package/esm2022/form/validator/unique-validator.directive.mjs +4 -4
- package/esm2022/fullscreen/fullscreen-launch.directive.mjs +4 -4
- package/esm2022/fullscreen/fullscreen.component.mjs +4 -4
- package/esm2022/fullscreen/fullscreen.module.mjs +5 -5
- package/esm2022/fullscreen/fullscreen.service.mjs +4 -4
- package/esm2022/grid/flex.mjs +13 -13
- package/esm2022/grid/module.mjs +5 -5
- package/esm2022/grid/thy-col.directive.mjs +4 -4
- package/esm2022/grid/thy-grid-item.component.mjs +4 -4
- package/esm2022/grid/thy-grid.component.mjs +7 -7
- package/esm2022/grid/thy-row.directive.mjs +4 -4
- package/esm2022/guider/guider-hint/guider-hint.component.mjs +4 -4
- package/esm2022/guider/guider-manager.mjs +4 -4
- package/esm2022/guider/guider.directive.mjs +4 -4
- package/esm2022/guider/guider.module.mjs +5 -5
- package/esm2022/guider/guider.service.mjs +4 -4
- package/esm2022/i18n/i18n.service.mjs +4 -4
- package/esm2022/icon/icon-registry.mjs +5 -5
- package/esm2022/icon/icon.component.mjs +4 -4
- package/esm2022/icon/icon.module.mjs +6 -7
- package/esm2022/image/image-group.component.mjs +4 -4
- package/esm2022/image/image.directive.mjs +4 -4
- package/esm2022/image/image.service.mjs +4 -4
- package/esm2022/image/module.mjs +5 -5
- package/esm2022/image/preview/image-preview.component.mjs +4 -4
- package/esm2022/input/input-count.component.mjs +4 -4
- package/esm2022/input/input-group.component.mjs +4 -4
- package/esm2022/input/input-search.component.mjs +4 -4
- package/esm2022/input/input.component.mjs +4 -4
- package/esm2022/input/input.directive.mjs +4 -4
- package/esm2022/input/module.mjs +5 -5
- package/esm2022/input-number/input-number.component.mjs +4 -4
- package/esm2022/input-number/module.mjs +5 -5
- package/esm2022/layout/content-main.component.mjs +7 -7
- package/esm2022/layout/content-section.component.mjs +7 -7
- package/esm2022/layout/content.component.mjs +7 -7
- package/esm2022/layout/header.component.mjs +7 -7
- package/esm2022/layout/layout.component.mjs +7 -7
- package/esm2022/layout/layout.module.mjs +5 -5
- package/esm2022/layout/sidebar-content.component.mjs +7 -7
- package/esm2022/layout/sidebar-footer.component.mjs +7 -7
- package/esm2022/layout/sidebar-header.component.mjs +7 -7
- package/esm2022/layout/sidebar.component.mjs +7 -7
- package/esm2022/list/list-item-meta.component.mjs +4 -4
- package/esm2022/list/list-item.component.mjs +4 -4
- package/esm2022/list/list.component.mjs +4 -4
- package/esm2022/list/list.module.mjs +5 -5
- package/esm2022/list/selection/selection-list.mjs +4 -4
- package/esm2022/loading/loading.component.mjs +4 -4
- package/esm2022/loading/loading.module.mjs +5 -5
- package/esm2022/mention/mention.directive.mjs +4 -4
- package/esm2022/mention/mention.module.mjs +5 -5
- package/esm2022/mention/suggestions/suggestions.component.mjs +4 -4
- package/esm2022/menu/divider/menu-divider.component.mjs +4 -4
- package/esm2022/menu/group/menu-group.component.mjs +4 -4
- package/esm2022/menu/item/action/menu-item-action.component.mjs +4 -4
- package/esm2022/menu/item/icon/menu-item-icon.component.mjs +4 -4
- package/esm2022/menu/item/menu-item.component.mjs +4 -4
- package/esm2022/menu/item/name/menu-item-name.component.mjs +4 -4
- package/esm2022/menu/menu.component.mjs +4 -4
- package/esm2022/menu/menu.module.mjs +5 -5
- package/esm2022/message/abstract/abstract-message-container.component.mjs +4 -4
- package/esm2022/message/abstract/abstract-message.component.mjs +4 -4
- package/esm2022/message/message-container.component.mjs +4 -4
- package/esm2022/message/message-queue.service.mjs +4 -4
- package/esm2022/message/message.component.mjs +4 -4
- package/esm2022/message/message.service.mjs +4 -4
- package/esm2022/message/module.mjs +5 -5
- package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +4 -4
- package/esm2022/nav/icon-nav/icon-nav.component.mjs +4 -4
- package/esm2022/nav/nav-ink-bar.directive.mjs +4 -4
- package/esm2022/nav/nav-item.directive.mjs +4 -4
- package/esm2022/nav/nav.component.mjs +4 -4
- package/esm2022/nav/nav.module.mjs +5 -5
- package/esm2022/nav/nav.pipe.mjs +4 -4
- package/esm2022/notify/module.mjs +5 -5
- package/esm2022/notify/notify-container.component.mjs +4 -4
- package/esm2022/notify/notify-queue.service.mjs +4 -4
- package/esm2022/notify/notify.component.mjs +4 -4
- package/esm2022/notify/notify.service.mjs +4 -4
- package/esm2022/pagination/pagination.component.mjs +4 -4
- package/esm2022/pagination/pagination.module.mjs +5 -5
- package/esm2022/pagination/pagination.pipe.mjs +7 -7
- package/esm2022/popover/body/popover-body.component.mjs +4 -4
- package/esm2022/popover/header/popover-header.component.mjs +4 -4
- package/esm2022/popover/module.mjs +5 -5
- package/esm2022/popover/popover-container.component.mjs +4 -4
- package/esm2022/popover/popover.directive.mjs +4 -4
- package/esm2022/popover/popover.service.mjs +4 -4
- package/esm2022/progress/progress-circle.component.mjs +4 -4
- package/esm2022/progress/progress-strip.component.mjs +4 -4
- package/esm2022/progress/progress.component.mjs +4 -4
- package/esm2022/progress/progress.module.mjs +5 -5
- package/esm2022/property/module.mjs +5 -5
- package/esm2022/property/properties.component.mjs +4 -4
- package/esm2022/property/property-item.component.mjs +4 -4
- package/esm2022/property-operation/group/property-operation-group.component.mjs +4 -4
- package/esm2022/property-operation/module.mjs +5 -5
- package/esm2022/property-operation/property-operation.component.mjs +4 -4
- package/esm2022/radio/button/radio-button.component.mjs +4 -4
- package/esm2022/radio/group/radio-group.component.mjs +4 -4
- package/esm2022/radio/module.mjs +5 -5
- package/esm2022/radio/radio.component.mjs +4 -4
- package/esm2022/rate/module.mjs +5 -5
- package/esm2022/rate/rate-item.component.mjs +4 -4
- package/esm2022/rate/rate.component.mjs +4 -4
- package/esm2022/resizable/module.mjs +5 -5
- package/esm2022/resizable/resizable.directive.mjs +4 -4
- package/esm2022/resizable/resizable.service.mjs +4 -4
- package/esm2022/resizable/resize-handle.component.mjs +4 -4
- package/esm2022/resizable/resize-handles.component.mjs +4 -4
- package/esm2022/result/result.component.mjs +4 -4
- package/esm2022/result/result.module.mjs +5 -5
- package/esm2022/segment/segment-item.component.mjs +4 -4
- package/esm2022/segment/segment.component.mjs +4 -4
- package/esm2022/segment/segment.module.mjs +5 -5
- package/esm2022/select/custom-select/custom-select.component.mjs +4 -4
- package/esm2022/select/module.mjs +5 -5
- package/esm2022/select/native-select/native-select.component.mjs +4 -4
- package/esm2022/shared/base-form-check.component.mjs +4 -4
- package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-autofocus.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-contextmenu.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-drag-drop.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-enter.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-scroll.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-show.mjs +4 -4
- package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +4 -4
- package/esm2022/shared/directives/view-outlet.directive.mjs +4 -4
- package/esm2022/shared/ng-transclude.directive.mjs +4 -4
- package/esm2022/shared/option/group/option-group.component.mjs +4 -4
- package/esm2022/shared/option/list-option/list-option.component.mjs +4 -4
- package/esm2022/shared/option/module.mjs +5 -5
- package/esm2022/shared/option/option-group.component.mjs +4 -4
- package/esm2022/shared/option/option.component.mjs +4 -4
- package/esm2022/shared/option/options-container.component.mjs +4 -4
- package/esm2022/shared/select/module.mjs +5 -5
- package/esm2022/shared/select/select-control/select-control.component.mjs +4 -4
- package/esm2022/shared/shared.module.mjs +5 -5
- package/esm2022/skeleton/module.mjs +5 -5
- package/esm2022/skeleton/skeleton-circle.component.mjs +4 -4
- package/esm2022/skeleton/skeleton-rectangle.component.mjs +4 -4
- package/esm2022/skeleton/skeleton.component.mjs +4 -4
- package/esm2022/skeleton/stylized/bullet-list.component.mjs +4 -4
- package/esm2022/skeleton/stylized/list.component.mjs +4 -4
- package/esm2022/skeleton/stylized/paragraph.component.mjs +4 -4
- package/esm2022/slide/drawer/drawer-container.directive.mjs +4 -4
- package/esm2022/slide/slide-body/slide-body-section.component.mjs +4 -4
- package/esm2022/slide/slide-body/slide-body.component.mjs +4 -4
- package/esm2022/slide/slide-container.component.mjs +4 -4
- package/esm2022/slide/slide-footer/slide-footer.component.mjs +4 -4
- package/esm2022/slide/slide-header/slide-header.component.mjs +4 -4
- package/esm2022/slide/slide-layout/slide-layout.component.mjs +4 -4
- package/esm2022/slide/slide-ref.service.mjs +4 -4
- package/esm2022/slide/slide.module.mjs +5 -5
- package/esm2022/slide/slide.service.mjs +4 -4
- package/esm2022/slider/slider.component.mjs +4 -4
- package/esm2022/slider/slider.module.mjs +5 -5
- package/esm2022/space/space.component.mjs +7 -7
- package/esm2022/space/space.module.mjs +5 -5
- package/esm2022/statistic/statistic.component.mjs +4 -4
- package/esm2022/statistic/statistic.module.mjs +5 -5
- package/esm2022/stepper/step-header.component.mjs +4 -4
- package/esm2022/stepper/step.component.mjs +4 -4
- package/esm2022/stepper/stepper-button.directive.mjs +7 -7
- package/esm2022/stepper/stepper.component.mjs +4 -4
- package/esm2022/stepper/stepper.module.mjs +5 -5
- package/esm2022/strength/strength.component.mjs +4 -4
- package/esm2022/strength/strength.module.mjs +5 -5
- package/esm2022/switch/switch.component.mjs +4 -4
- package/esm2022/switch/switch.module.mjs +5 -5
- package/esm2022/table/pipes/drag.pipe.mjs +4 -4
- package/esm2022/table/pipes/table.pipe.mjs +4 -4
- package/esm2022/table/table-column.component.mjs +4 -4
- package/esm2022/table/table-skeleton.component.mjs +4 -4
- package/esm2022/table/table.component.mjs +4 -4
- package/esm2022/table/table.module.mjs +5 -5
- package/esm2022/tabs/tab-content.component.mjs +4 -4
- package/esm2022/tabs/tab.component.mjs +4 -4
- package/esm2022/tabs/tabs.component.mjs +4 -4
- package/esm2022/tabs/tabs.module.mjs +5 -5
- package/esm2022/tag/tag.component.mjs +4 -4
- package/esm2022/tag/tag.module.mjs +5 -5
- package/esm2022/tag/tags.component.mjs +4 -4
- package/esm2022/time-picker/inner/inner-time-picker.component.mjs +5 -5
- package/esm2022/time-picker/inner/inner-time-picker.config.mjs +4 -4
- package/esm2022/time-picker/inner/inner-time-picker.store.mjs +12 -9
- package/esm2022/time-picker/time-picker-panel.component.mjs +11 -12
- package/esm2022/time-picker/time-picker.component.mjs +17 -19
- package/esm2022/time-picker/time-picker.module.mjs +5 -5
- package/esm2022/time-picker/time-picker.utils.mjs +14 -8
- package/esm2022/timeline/timeline-item.component.mjs +4 -4
- package/esm2022/timeline/timeline.component.mjs +4 -4
- package/esm2022/timeline/timeline.module.mjs +5 -5
- package/esm2022/timeline/timeline.service.mjs +4 -4
- package/esm2022/tooltip/tooltip.component.mjs +4 -4
- package/esm2022/tooltip/tooltip.directive.mjs +4 -4
- package/esm2022/tooltip/tooltip.module.mjs +5 -5
- package/esm2022/tooltip/tooltip.service.mjs +4 -4
- package/esm2022/transfer/transfer-list.component.mjs +4 -4
- package/esm2022/transfer/transfer.component.mjs +4 -4
- package/esm2022/transfer/transfer.module.mjs +5 -5
- package/esm2022/tree/tree-node.component.mjs +4 -4
- package/esm2022/tree/tree.component.mjs +4 -4
- package/esm2022/tree/tree.module.mjs +5 -5
- package/esm2022/tree/tree.pipe.mjs +4 -4
- package/esm2022/tree/tree.service.mjs +4 -4
- package/esm2022/tree-select/module.mjs +5 -5
- package/esm2022/tree-select/tree-select.component.mjs +7 -7
- package/esm2022/typography/bg-color.directive.mjs +4 -4
- package/esm2022/typography/module.mjs +5 -5
- package/esm2022/typography/text/text.component.mjs +4 -4
- package/esm2022/typography/text-color.directive.mjs +4 -4
- package/esm2022/upload/file-drop.directive.mjs +4 -4
- package/esm2022/upload/file-select-base.mjs +4 -4
- package/esm2022/upload/file-select.component.mjs +4 -4
- package/esm2022/upload/module.mjs +6 -7
- package/esm2022/upload/upload.service.mjs +11 -11
- package/esm2022/util/date/functions.mjs +26 -1
- package/esm2022/util/date/tiny-date.mjs +78 -34
- package/esm2022/util/index.mjs +9 -9
- package/esm2022/version.mjs +2 -2
- package/esm2022/vote/vote.component.mjs +4 -4
- package/esm2022/vote/vote.module.mjs +5 -5
- package/esm2022/watermark/watermark.directive.mjs +4 -4
- package/esm2022/watermark/watermark.module.mjs +5 -5
- package/fesm2022/ngx-tethys-action.mjs +10 -10
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +7 -7
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +10 -10
- package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
- package/fesm2022/ngx-tethys-anchor.mjs +10 -10
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +16 -16
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +22 -22
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +7 -7
- package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
- package/fesm2022/ngx-tethys-badge.mjs +7 -7
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +13 -13
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +26 -26
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +13 -13
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +84 -84
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +16 -16
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-collapse.mjs +10 -10
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +31 -31
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +13 -13
- package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +7 -7
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +23 -23
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +242 -235
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +17 -18
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +22 -22
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +7 -7
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dot.mjs +7 -7
- package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
- package/fesm2022/ngx-tethys-drag-drop.mjs +19 -19
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +46 -46
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +10 -10
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-flexible-text.mjs +7 -7
- package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +40 -40
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +13 -13
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +31 -31
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +16 -16
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +3 -3
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +13 -13
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +16 -16
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +7 -7
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +19 -19
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +58 -58
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +16 -16
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +7 -7
- package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
- package/fesm2022/ngx-tethys-mention.mjs +10 -10
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +25 -25
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +22 -22
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +22 -22
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +16 -16
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +13 -13
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +19 -19
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +13 -13
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property-operation.mjs +10 -10
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +10 -10
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +13 -13
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +10 -10
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +16 -16
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +7 -7
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +10 -10
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +10 -10
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +66 -66
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +22 -22
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +31 -31
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +7 -7
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +10 -10
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-statistic.mjs +7 -7
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +19 -19
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +7 -7
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +7 -7
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +19 -19
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +13 -13
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +10 -10
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +46 -40
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +13 -13
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +13 -13
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +10 -10
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +10 -10
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +16 -16
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +13 -13
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +23 -24
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs +107 -38
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +7 -7
- package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
- package/fesm2022/ngx-tethys-watermark.mjs +7 -7
- 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/package.json +3 -2
- package/schematics/ng-add/index.js +2 -3
- package/schematics/ng-add/index.spec.js +21 -22
- package/schematics/ng-update/update-18/index.spec.js +7 -8
- package/schematics/testing/test-app.js +2 -5
- package/schematics/testing/test-project.js +7 -10
- package/schematics/testing/test-workspace.d.ts +1 -0
- package/schematics/testing/test-workspace.js +14 -15
- package/schematics/tsconfig.json +1 -1
- package/schematics/utils/get-workspace-tsconfig.js +8 -9
- package/schematics/utils/package-config.js +1 -2
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/time-picker/inner/inner-time-picker.store.d.ts +1 -1
- package/util/date/functions.d.ts +25 -0
- package/util/date/tiny-date.d.ts +20 -4
- package/util/index.d.ts +8 -8
|
@@ -549,10 +549,10 @@ export class ThyCascaderService {
|
|
|
549
549
|
}
|
|
550
550
|
return array1.every((element, index) => element === array2[index]);
|
|
551
551
|
}
|
|
552
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
553
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
552
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyCascaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
553
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyCascaderService }); }
|
|
554
554
|
}
|
|
555
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
555
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyCascaderService, decorators: [{
|
|
556
556
|
type: Injectable
|
|
557
557
|
}] });
|
|
558
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzY2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jYXNjYWRlci9jYXNjYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUVuRCxNQUFNLG9CQUFvQixHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRS9EOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUlXLFlBQU8sR0FBMEIsRUFBRSxDQUFDO1FBYXBDLG9CQUFlLEdBQXdCLEVBQUUsQ0FBQztRQUUxQyxxQkFBZ0IsR0FBd0IsRUFBRSxDQUFDO1FBSTNDLG1CQUFjLEdBQThCLEVBQUUsQ0FBQztRQUUvQyxjQUFTLEdBQThCLEVBQUUsQ0FBQztRQUUxQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLHFCQUFnQixHQUE4QixFQUFFLENBQUM7UUFNaEQsd0JBQW1CLEdBQTJCLElBQUksR0FBRyxFQUFxQixDQUFDO1FBRTVFLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztLQXduQjdDO0lBdG5CVSxtQkFBbUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDekIsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNMLE1BQU0s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SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFJLE1BQVcsRUFBRSxNQUFXO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0RixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7OEdBM3BCUSxrQkFBa0I7a0hBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElkIH0gZnJvbSAnQHRldGh5cy9jZGsvaW1tdXRhYmxlJztcbmltcG9ydCB7IFNlbGVjdE9wdGlvbkJhc2UgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBoZWxwZXJzLCBpc0FycmF5LCBpc0VtcHR5LCBpc1VuZGVmaW5lZE9yTnVsbCwgc2V0LCBnZXQgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUaHlDYXNjYWRlck9wdGlvbiwgVGh5Q2FzY2FkZXJTZWFyY2hPcHRpb24gfSBmcm9tICcuL3R5cGVzJztcbmNvbnN0IGRlZmF1bHREaXNwbGF5UmVuZGVyID0gKGxhYmVsOiBhbnkpID0+IGxhYmVsLmpvaW4oJyAvICcpO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGh5Q2FzY2FkZXJTZXJ2aWNlIHtcbiAgICBwdWJsaWMgc2VsZWN0aW9uTW9kZWw6IFNlbGVjdGlvbk1vZGVsPFNlbGVjdE9wdGlvbkJhc2U+O1xuXG4gICAgcHVibGljIGNvbHVtbnM6IFRoeUNhc2NhZGVyT3B0aW9uW11bXSA9IFtdO1xuXG4gICAgcHVibGljIGN1c3RvbU9wdGlvbnM6IFRoeUNhc2NhZGVyT3B0aW9uW107XG5cbiAgICBwdWJsaWMgY2FzY2FkZXJPcHRpb25zOiB7XG4gICAgICAgIGxhYmVsUHJvcGVydHk/OiBzdHJpbmc7XG4gICAgICAgIHZhbHVlUHJvcGVydHk/OiBzdHJpbmc7XG4gICAgICAgIGlzTXVsdGlwbGU/OiBib29sZWFuO1xuICAgICAgICBpc09ubHlTZWxlY3RMZWFmPzogYm9vbGVhbjtcbiAgICAgICAgaXNMYWJlbFJlbmRlclRlbXBsYXRlPzogYm9vbGVhbjtcbiAgICAgICAgbG9hZERhdGE/OiAobm9kZTogVGh5Q2FzY2FkZXJPcHRpb24sIGluZGV4PzogbnVtYmVyKSA9PiBQcm9taXNlTGlrZTxhbnk+O1xuICAgIH07XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWRPcHRpb25zOiBUaHlDYXNjYWRlck9wdGlvbltdID0gW107XG5cbiAgICBwdWJsaWMgYWN0aXZhdGVkT3B0aW9uczogVGh5Q2FzY2FkZXJPcHRpb25bXSA9IFtdO1xuXG4gICAgcHVibGljIGxhYmVsUmVuZGVyVGV4dDogc3RyaW5nO1xuXG4gICAgcHVibGljIGZsYXR0ZW5PcHRpb25zOiBUaHlDYXNjYWRlclNlYXJjaE9wdGlvbltdID0gW107XG5cbiAgICBwdWJsaWMgbGVhZk5vZGVzOiBUaHlDYXNjYWRlclNlYXJjaE9wdGlvbltdID0gW107XG5cbiAgICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgc2VhcmNoUmVzdWx0TGlzdDogVGh5Q2FzY2FkZXJTZWFyY2hPcHRpb25bXSA9IFtdO1xuXG4gICAgcHVibGljIGRlZmF1bHRWYWx1ZTogYW55W107XG5cbiAgICBwdWJsaWMgdmFsdWU6IGFueVtdO1xuXG4gICAgcHJpdmF0ZSBwcmV2U2VsZWN0ZWRPcHRpb25zOiBTZXQ8VGh5Q2FzY2FkZXJPcHRpb24+ID0gbmV3IFNldDxUaHlDYXNjYWRlck9wdGlvbj4oKTtcblxuICAgIHB1YmxpYyB2YWx1ZUNoYW5nZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHVibGljIGNhc2NhZGVyVmFsdWVDaGFuZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlQ2hhbmdlJC5waXBlKFxuICAgICAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZUNoYW5nZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmdldFZhbHVlcygpLFxuICAgICAgICAgICAgICAgICAgICBpc1ZhbHVlRXF1YWw6IHRoaXMuYXJyYXlFcXVhbHModGhpcy52YWx1ZSwgdGhpcy5nZXRWYWx1ZXMoKSksXG4gICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0aW9uTW9kZWxFbXB0eTogdGhpcy5zZWxlY3Rpb25Nb2RlbC5pc0VtcHR5KClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5nZXRWYWx1ZXMoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVDaGFuZ2VPcHRpb25zO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoMTAwKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRDYXNjYWRlck9wdGlvbnMob3B0aW9uczoge1xuICAgICAgICBsYWJlbFByb3BlcnR5Pzogc3RyaW5nO1xuICAgICAgICB2YWx1ZVByb3BlcnR5Pzogc3RyaW5nO1xuICAgICAgICBpc011bHRpcGxlPzogYm9vbGVhbjtcbiAgICAgICAgaXNPbmx5U2VsZWN0TGVhZj86IGJvb2xlYW47XG4gICAgICAgIGlzTGFiZWxSZW5kZXJUZW1wbGF0ZT86IGJvb2xlYW47XG4gICAgICAgIGxvYWREYXRhPzogKG5vZGU6IFRoeUNhc2NhZGVyT3B0aW9uLCBpbmRleD86IG51bWJlcikgPT4gUHJvbWlzZUxpa2U8YW55PjtcbiAgICB9KSB7XG4gICAgICAgIHRoaXMuY2FzY2FkZXJPcHRpb25zID0geyAuLi50aGlzLmNhc2NhZGVyT3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuICAgICAgICBpZiAodGhpcy5jYXNjYWRlck9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2lzTXVsdGlwbGUnKSkge1xuICAgICAgICAgICAgdGhpcy5pbml0U2VsZWN0aW9uTW9kZWwodGhpcy5jYXNjYWRlck9wdGlvbnMuaXNNdWx0aXBsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdFNlbGVjdGlvbk1vZGVsKGlzTXVsdGlwbGU/OiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsID0gbmV3IFNlbGVjdGlvbk1vZGVsKGlzTXVsdGlwbGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRDb2x1bW5zKGNvbHVtbnM6IFRoeUNhc2NhZGVyT3B0aW9uW11bXSkge1xuICAgICAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0QWN0aXZhdGVkT3B0aW9ucyhtZW51VmlzaWJsZTogYm9vbGVhbikge1xuICAgICAgICBpZiAoaXNFbXB0eSh0aGlzLnNlbGVjdGVkT3B0aW9ucykgfHwgIW1lbnVWaXNpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY3RpdmF0ZWRPcHRpb25zID0gWy4uLnRoaXMuc2VsZWN0ZWRPcHRpb25zXTtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWRPcHRpb25zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzRW1wdHkoaXRlbS5jaGlsZHJlbikgJiYgIWl0ZW0uaXNMZWFmKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5zW2luZGV4ICsgMV0gPSBpdGVtLmNoaWxkcmVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdE9wdGlvbnMoaW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCB2cyA9IHRoaXMuZGVmYXVsdFZhbHVlO1xuICAgICAgICBjb25zdCBsb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZU9uSW5pdChpbmRleCwgdnNbaW5kZXhdKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA8IHZzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRPcHRpb25zKGluZGV4ICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IHZzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyV3JpdGVWYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0aGlzLmNvbHVtbnNbaW5kZXhdPy5sZW5ndGggfHwgIXRoaXMuY2FzY2FkZXJPcHRpb25zLmxvYWREYXRhKSB7XG4gICAgICAgICAgICBsb2FkKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5hY3RpdmF0ZWRPcHRpb25zW2luZGV4IC0gMV0gfHwge307XG4gICAgICAgICAgICB0aGlzLmxvYWRDaGlsZHJlbihub2RlLCBpbmRleCAtIDEsIGxvYWQsIHRoaXMuYWZ0ZXJXcml0ZVZhbHVlLmJpbmQodGhpcykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWNrT3B0aW9uKFxuICAgICAgICBvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLFxuICAgICAgICBpbmRleDogbnVtYmVyLFxuICAgICAgICBldmVudDogRXZlbnQgfCBib29sZWFuLFxuICAgICAgICBzZWxlY3RGbj86IChvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLCBpbmRleDogbnVtYmVyKSA9PiB2b2lkXG4gICAgKSB7XG4gICAgICAgIGlmIChvcHRpb24/LmRpc2FibGVkICYmICF0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc011bHRpcGxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc1NlbGVjdCA9IGV2ZW50IGluc3RhbmNlb2YgRXZlbnQgPyAhdGhpcy5jYXNjYWRlck9wdGlvbnMuaXNNdWx0aXBsZSAmJiBvcHRpb24uaXNMZWFmIDogdHJ1ZTtcblxuICAgICAgICBpZiAodGhpcy5jYXNjYWRlck9wdGlvbnMuaXNNdWx0aXBsZSAmJiAhb3B0aW9uLmlzTGVhZiAmJiB0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc09ubHlTZWxlY3RMZWFmICYmIGlzU2VsZWN0KSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUFsbENoaWxkcmVuKG9wdGlvbiwgaW5kZXgsIGV2ZW50IGFzIGJvb2xlYW4sIHNlbGVjdEZuKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0QWN0aXZlT3B0aW9uKG9wdGlvbiwgaW5kZXgsIGlzU2VsZWN0LCB0cnVlLCBzZWxlY3RGbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QWN0aXZlT3B0aW9uKFxuICAgICAgICBvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLFxuICAgICAgICBpbmRleDogbnVtYmVyLFxuICAgICAgICBzZWxlY3Q6IGJvb2xlYW4sXG4gICAgICAgIGxvYWRDaGlsZHJlbjogYm9vbGVhbiA9IHRydWUsXG4gICAgICAgIHNlbGVjdEZuPzogKG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb24sIGluZGV4OiBudW1iZXIpID0+IHZvaWRcbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWRPcHRpb25zW2luZGV4XSA9IG9wdGlvbjtcbiAgICAgICAgZm9yIChsZXQgaSA9IGluZGV4IC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbk9wdGlvbiA9IHRoaXMuYWN0aXZhdGVkT3B0aW9uc1tpICsgMV0/LnBhcmVudDtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAhdGhpcy5hY3RpdmF0ZWRPcHRpb25zW2ldIHx8XG4gICAgICAgICAgICAgICAgb3JpZ2luT3B0aW9uPy5bdGhpcy5jYXNjYWRlck9wdGlvbnMudmFsdWVQcm9wZXJ0eV0gIT09IHRoaXMuYWN0aXZhdGVkT3B0aW9uc1tpXT8uW3RoaXMuY2FzY2FkZXJPcHRpb25zLnZhbHVlUHJvcGVydHldXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlZE9wdGlvbnNbaV0gPSBvcmlnaW5PcHRpb24gPz8gdGhpcy5hY3RpdmF0ZWRPcHRpb25zW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleCA8IHRoaXMuYWN0aXZhdGVkT3B0aW9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2YXRlZE9wdGlvbnMgPSB0aGlzLmFjdGl2YXRlZE9wdGlvbnMuc2xpY2UoMCwgaW5kZXggKyAxKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNBcnJheShvcHRpb24uY2hpbGRyZW4pICYmIG9wdGlvbi5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIG9wdGlvbi5pc0xlYWYgPSBmYWxzZTtcbiAgICAgICAgICAgIG9wdGlvbi5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IChjaGlsZC5wYXJlbnQgPSBvcHRpb24pKTtcbiAgICAgICAgICAgIHRoaXMuc2V0Q29sdW1uRGF0YShvcHRpb24uY2hpbGRyZW4sIGluZGV4ICsgMSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbi5pc0xlYWYgJiYgbG9hZENoaWxkcmVuKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRDaGlsZHJlbihvcHRpb24sIGluZGV4KTtcbiAgICAgICAgfSBlbHNlIGlmIChpbmRleCA8IHRoaXMuY29sdW1ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLmNvbHVtbnMuc2xpY2UoMCwgaW5kZXggKyAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZWxlY3QpIHtcbiAgICAgICAgICAgIHNlbGVjdEZuKG9wdGlvbiwgaW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkQ2hpbGRyZW4ob3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbiwgaW5kZXg6IG51bWJlciwgc3VjY2Vzcz86ICgpID0+IHZvaWQsIGZhaWx1cmU/OiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jYXNjYWRlck9wdGlvbnM/LmxvYWREYXRhKSB7XG4gICAgICAgICAgICB0aGlzLnNldENvbHVtbkRhdGEob3B0aW9uLmNoaWxkcmVuIHx8IFtdLCBpbmRleCArIDEpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuY2FzY2FkZXJPcHRpb25zLmxvYWREYXRhKG9wdGlvbiwgaW5kZXgpLnRoZW4oXG4gICAgICAgICAgICAoKSA9PiB0aGlzLmhhbmRsZUxvYWREYXRhU3VjY2VzcyhvcHRpb24sIGluZGV4LCBzdWNjZXNzKSxcbiAgICAgICAgICAgICgpID0+IHRoaXMuaGFuZGxlTG9hZERhdGFGYWlsdXJlKG9wdGlvbiwgaW5kZXgsIGZhaWx1cmUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVMb2FkRGF0YVN1Y2Nlc3Mob3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbiwgaW5kZXg6IG51bWJlciwgc3VjY2Vzcz86ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgb3B0aW9uLmxvYWRpbmcgPSB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChvcHRpb24uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIG9wdGlvbi5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IChjaGlsZC5wYXJlbnQgPSBpbmRleCA8IDAgPyB1bmRlZmluZWQgOiBvcHRpb24pKTtcbiAgICAgICAgICAgIHRoaXMuc2V0Q29sdW1uRGF0YShvcHRpb24uY2hpbGRyZW4sIGluZGV4ICsgMSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICAgICAgc3VjY2VzcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVMb2FkRGF0YUZhaWx1cmUob3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbiwgaW5kZXg6IG51bWJlciwgZmFpbHVyZT86ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgb3B0aW9uLmxvYWRpbmcgPSB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBvcHRpb24uaXNMZWFmID0gdHJ1ZTtcblxuICAgICAgICBpZiAoZmFpbHVyZSkge1xuICAgICAgICAgICAgZmFpbHVyZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZU9uSW5pdChpbmRleDogbnVtYmVyLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGxldCBvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uO1xuICAgICAgICBpZiAoaXNBcnJheSh0aGlzLmN1c3RvbU9wdGlvbnMpICYmIHRoaXMuY3VzdG9tT3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBvcHRpb24gPSB0aGlzLmN1c3RvbU9wdGlvbnMuZmluZChpdGVtID0+IGdldChpdGVtLCB0aGlzLmNhc2NhZGVyT3B0aW9ucy52YWx1ZVByb3BlcnR5KSA9PT0gdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1VuZGVmaW5lZE9yTnVsbChvcHRpb24pKSB7XG4gICAgICAgICAgICBvcHRpb24gPSB0aGlzLmZpbmRPcHRpb24odmFsdWUsIGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdGlvbikge1xuICAgICAgICAgICAgb3B0aW9uID1cbiAgICAgICAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnXG4gICAgICAgICAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtgJHt0aGlzLmNhc2NhZGVyT3B0aW9ucy52YWx1ZVByb3BlcnR5IHx8ICd2YWx1ZSd9YF06IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYCR7dGhpcy5jYXNjYWRlck9wdGlvbnMubGFiZWxQcm9wZXJ0eSB8fCAnbGFiZWwnfWBdOiB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVQcmV2U2VsZWN0ZWRPcHRpb25zKG9wdGlvbiwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuc2V0QWN0aXZlT3B0aW9uKG9wdGlvbiwgaW5kZXgsIGZhbHNlLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzU2VsZWN0ZWRPcHRpb24ob3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbiwgaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5jYXNjYWRlck9wdGlvbnM/LmlzT25seVNlbGVjdExlYWYpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb24uaXNMZWFmKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi5zZWxlY3RlZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tTZWxlY3RlZFN0YXR1cyhvcHRpb24sIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRzID0gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZDtcbiAgICAgICAgICAgIGNvbnN0IGFwcGVhckluZGV4ID0gc2VsZWN0ZWRPcHRzLmZpbmRJbmRleChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS50aHlSYXdWYWx1ZS52YWx1ZS5sZW5ndGggLSAxID09PSBpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBoZWxwZXJzLmdldChpdGVtLCBgdGh5UmF3VmFsdWUudmFsdWUuJHtpbmRleH1gKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGhlbHBlcnMuc2hhbGxvd0VxdWFsKHNlbGVjdGVkSXRlbSwgb3B0aW9uKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gYXBwZWFySW5kZXggPj0gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdG9nZ2xlQWxsQ2hpbGRyZW4oXG4gICAgICAgIG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb24sXG4gICAgICAgIGluZGV4OiBudW1iZXIsXG4gICAgICAgIHNlbGVjdGVkOiBib29sZWFuLFxuICAgICAgICBzZWxlY3RGbj86IChvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLCBpbmRleDogbnVtYmVyKSA9PiB2b2lkXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFsbExlYWZzOiB7XG4gICAgICAgICAgICBvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uO1xuICAgICAgICAgICAgaW5kZXg6IG51bWJlcjtcbiAgICAgICAgfVtdID0gdGhpcy5nZXRBbGxMZWFmcyhvcHRpb24sIGluZGV4LCBzZWxlY3RlZCk7XG4gICAgICAgIG9wdGlvbi5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuXG4gICAgICAgIHdoaWxlIChhbGxMZWFmcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgb3B0aW9uLCBpbmRleCB9ID0gYWxsTGVhZnMuc2hpZnQoKTtcbiAgICAgICAgICAgIG9wdGlvbi5zZWxlY3RlZCA9ICFzZWxlY3RlZDtcbiAgICAgICAgICAgIHRoaXMuc2V0QWN0aXZlT3B0aW9uKG9wdGlvbiwgaW5kZXgsIHRydWUsIG51bGwsIHNlbGVjdEZuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5hY3RpdmF0ZWRPcHRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSB0aGlzLmFjdGl2YXRlZE9wdGlvbnNbaV07XG4gICAgICAgICAgICBpZiAoaXNBcnJheShvcHRpb24uY2hpbGRyZW4pICYmIG9wdGlvbi5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldENvbHVtbkRhdGEob3B0aW9uLmNoaWxkcmVuLCBpICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFsbExlYWZzKFxuICAgICAgICBvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLFxuICAgICAgICBpbmRleDogbnVtYmVyLFxuICAgICAgICBzZWxlY3RlZDogYm9vbGVhblxuICAgICk6IHtcbiAgICAgICAgb3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbjtcbiAgICAgICAgaW5kZXg6IG51bWJlcjtcbiAgICB9W10ge1xuICAgICAgICBsZXQgYWxsTGVhZnM6IHtcbiAgICAgICAgICAgIG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb247XG4gICAgICAgICAgICBpbmRleDogbnVtYmVyO1xuICAgICAgICB9W10gPSBbXTtcbiAgICAgICAgaWYgKG9wdGlvbi5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkT3B0aW9uIG9mIG9wdGlvbi5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIGNoaWxkT3B0aW9uLnBhcmVudCA9IG9wdGlvbjtcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGRPcHRpb24uaXNMZWFmICYmICFjaGlsZE9wdGlvbi5zZWxlY3RlZCA9PT0gc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxsTGVhZnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb246IGNoaWxkT3B0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4ICsgMVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFjaGlsZE9wdGlvbi5pc0xlYWYpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxsTGVhZnMgPSBhbGxMZWFmcy5jb25jYXQodGhpcy5nZXRBbGxMZWFmcyhjaGlsZE9wdGlvbiwgaW5kZXggKyAxLCBzZWxlY3RlZCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWxsTGVhZnM7XG4gICAgfVxuXG4gICAgcHVibGljIHNlYXJjaEluTG9jYWwoc2VhcmNoVGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9yRWFjaENvbHVtbnMoKTtcblxuICAgICAgICB0aGlzLnNldFNlYXJjaFJlc3VsdExpc3QodGhpcy5jYXNjYWRlck9wdGlvbnMuaXNPbmx5U2VsZWN0TGVhZiA/IHRoaXMubGVhZk5vZGVzIDogdGhpcy5mbGF0dGVuT3B0aW9ucywgc2VhcmNoVGV4dCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JFYWNoQ29sdW1ucyhcbiAgICAgICAgY3VycmVudExhYmVsPzogc3RyaW5nW10sXG4gICAgICAgIGN1cnJlbnRWYWx1ZTogSWRbXSA9IFtdLFxuICAgICAgICBjdXJyZW50Um93VmFsdWU6IFRoeUNhc2NhZGVyT3B0aW9uW10gPSBbXSxcbiAgICAgICAgbGlzdCA9IHRoaXMuY29sdW1uc1swXVxuICAgICkge1xuICAgICAgICBsaXN0LmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJPcHRpb25MYWJlbCA9IHRoaXMuZ2V0T3B0aW9uTGFiZWwoaXRlbSk7XG4gICAgICAgICAgICBjb25zdCBjdXJPcHRpb25WYWx1ZSA9IHRoaXMuZ2V0T3B0aW9uVmFsdWUoaXRlbSk7XG4gICAgICAgICAgICBjb25zdCBsYWJlbDogc3RyaW5nW10gPSBjdXJyZW50TGFiZWwgPyBbLi4uY3VycmVudExhYmVsLCBjdXJPcHRpb25MYWJlbF0gOiBbY3VyT3B0aW9uTGFiZWxdO1xuICAgICAgICAgICAgY29uc3QgdmFsdWVMaXN0OiBJZFtdID0gWy4uLmN1cnJlbnRWYWx1ZSwgY3VyT3B0aW9uVmFsdWVdO1xuICAgICAgICAgICAgY29uc3Qgcm93VmFsdWVMaXN0OiBUaHlDYXNjYWRlck9wdGlvbltdID0gWy4uLmN1cnJlbnRSb3dWYWx1ZSwgaXRlbV07XG4gICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gdGhpcy5pc1NlbGVjdGVkT3B0aW9uKGl0ZW0sIHZhbHVlTGlzdC5sZW5ndGggLSAxKTtcblxuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHtcbiAgICAgICAgICAgICAgICBsYWJlbExpc3Q6IGxhYmVsLFxuICAgICAgICAgICAgICAgIHZhbHVlTGlzdCxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogaXNTZWxlY3RlZCxcbiAgICAgICAgICAgICAgICB0aHlSb3dWYWx1ZTogcm93VmFsdWVMaXN0LFxuICAgICAgICAgICAgICAgIGlzTGVhZjogaXRlbS5pc0xlYWYsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWRcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuZmxhdHRlbk9wdGlvbnMucHVzaChub2RlKTtcbiAgICAgICAgICAgIGlmIChpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JFYWNoQ29sdW1ucyhsYWJlbCwgdmFsdWVMaXN0LCByb3dWYWx1ZUxpc3QsIGl0ZW0uY2hpbGRyZW4pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxlYWZOb2Rlcy5wdXNoKG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFNlYXJjaFJlc3VsdExpc3QobGlzdE9mT3B0aW9uOiBUaHlDYXNjYWRlclNlYXJjaE9wdGlvbltdLCBzZWFyY2hUZXh0OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHRMaXN0ID0gW107XG4gICAgICAgIGxpc3RPZk9wdGlvbi5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKCFpdGVtLmRpc2FibGVkICYmIGl0ZW0uaXNMZWFmICYmIGl0ZW0ubGFiZWxMaXN0LmpvaW4oKS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFJlc3VsdExpc3QucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5qOA5p+l5omA5pyJ5omA5pyJ5a2Q6aG555qE6YCJ5oup54q25oCBLCDmnInkuIDkuKrkuI3nrKblkIjpooTmnJ/vvIzlsLHnm7TmjqXov5Tlm54gZmFsc2VcbiAgICAgKiBAcGFyYW0gb3B0aW9uXG4gICAgICogQHBhcmFtIHRydWVPckZhbHNlXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNoZWNrU2VsZWN0ZWRTdGF0dXMob3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbiwgaXNTZWxlY3RlZDogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAob3B0aW9uLmlzTGVhZikge1xuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi5zZWxlY3RlZCA9PT0gaXNTZWxlY3RlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaGVscGVycy5pc0VtcHR5KG9wdGlvbi5jaGlsZHJlbikgJiYgdGhpcy5jYXNjYWRlck9wdGlvbnM/LmlzT25seVNlbGVjdExlYWYpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkT3B0aW9uIG9mIG9wdGlvbi5jaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKGlzQXJyYXkoY2hpbGRPcHRpb24uY2hpbGRyZW4pICYmIGNoaWxkT3B0aW9uLmNoaWxkcmVuLmxlbmd0aCAmJiAhdGhpcy5jaGVja1NlbGVjdGVkU3RhdHVzKGNoaWxkT3B0aW9uLCBpc1NlbGVjdGVkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghY2hpbGRPcHRpb24uc2VsZWN0ZWQgPT09IGlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kT3B0aW9uKG9wdGlvbjogYW55LCBpbmRleDogbnVtYmVyKTogVGh5Q2FzY2FkZXJPcHRpb24ge1xuICAgICAgICBjb25zdCBvcHRpb25zOiBUaHlDYXNjYWRlck9wdGlvbltdID0gdGhpcy5jb2x1bW5zW2luZGV4XTtcbiAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcgPyB0aGlzLmdldE9wdGlvblZhbHVlKG9wdGlvbikgOiBvcHRpb247XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5maW5kKG8gPT4gdmFsdWUgPT09IHRoaXMuZ2V0T3B0aW9uVmFsdWUobykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q29sdW1uRGF0YShvcHRpb25zOiBUaHlDYXNjYWRlck9wdGlvbltdLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5hcnJheUVxdWFscyh0aGlzLmNvbHVtbnNbaW5kZXhdLCBvcHRpb25zKSkge1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5zW2luZGV4XSA9IG9wdGlvbnM7XG4gICAgICAgICAgICBpZiAoaW5kZXggPCB0aGlzLmNvbHVtbnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuY29sdW1ucy5zbGljZSgwLCBpbmRleCArIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTdWJtaXRWYWx1ZShvcmlnaW5PcHRpb25zOiBUaHlDYXNjYWRlck9wdGlvbltdKTogYW55W10ge1xuICAgICAgICBjb25zdCB2YWx1ZXM6IGFueVtdID0gW107XG4gICAgICAgIChvcmlnaW5PcHRpb25zIHx8IFtdKS5mb3JFYWNoKG9wdGlvbiA9PiB7XG4gICAgICAgICAgICB2YWx1ZXMucHVzaCh0aGlzLmdldE9wdGlvblZhbHVlKG9wdGlvbikpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlU2VsZWN0ZWRJdGVtKGl0ZW06IFNlbGVjdE9wdGlvbkJhc2UpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQ7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gc2VsZWN0ZWRJdGVtcy5maW5kKGkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGhlbHBlcnMuc2hhbGxvd0VxdWFsKGkudGh5VmFsdWUsIGl0ZW0udGh5VmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5kZXNlbGVjdE9wdGlvbihjdXJyZW50SXRlbSk7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3QoY3VycmVudEl0ZW0pO1xuICAgICAgICAvLyB1cGRhdGUgc2VsZWN0ZWRPcHRpb25zXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRTZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZDtcbiAgICAgICAgaWYgKGlzQXJyYXkodXBkYXRlZFNlbGVjdGVkSXRlbXMpICYmIHVwZGF0ZWRTZWxlY3RlZEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSB1cGRhdGVkU2VsZWN0ZWRJdGVtc1t1cGRhdGVkU2VsZWN0ZWRJdGVtcy5sZW5ndGggLSAxXS50aHlSYXdWYWx1ZS52YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UkLm5leHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRTZWFyY2goKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoUmVzdWx0TGlzdCA9IFtdO1xuICAgICAgICB0aGlzLmxlYWZOb2RlcyA9IFtdO1xuICAgICAgICB0aGlzLmZsYXR0ZW5PcHRpb25zID0gW107XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyU2VsZWN0aW9uKCkge1xuICAgICAgICB0aGlzLmxhYmVsUmVuZGVyVGV4dCA9ICcnO1xuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLmFjdGl2YXRlZE9wdGlvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5kZXNlbGVjdEFsbFNlbGVjdGVkKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXNlbGVjdEFsbFNlbGVjdGVkKCkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkO1xuICAgICAgICBzZWxlY3RlZE9wdGlvbnMuZm9yRWFjaChpdGVtID0+IHRoaXMuZGVzZWxlY3RPcHRpb24oaXRlbSkpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UkLm5leHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc2VsZWN0T3B0aW9uKG9wdGlvbjogU2VsZWN0T3B0aW9uQmFzZSkge1xuICAgICAgICBjb25zdCB2YWx1ZTogVGh5Q2FzY2FkZXJPcHRpb25bXSA9IG9wdGlvbi50aHlSYXdWYWx1ZS52YWx1ZTtcbiAgICAgICAgdmFsdWUuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLmlzTGVhZiAmJiBpdGVtLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgc2V0KGl0ZW0sICdzZWxlY3RlZCcsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdE9wdGlvbihvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5hY3RpdmF0ZWRPcHRpb25zO1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXZTZWxlY3RlZE9wdGlvbnMob3B0aW9uLCBmYWxzZSwgaW5kZXgpO1xuICAgICAgICBpZiAob3B0aW9uLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLmJ1aWxkRGlzcGxheUxhYmVsKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZDtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gc2VsZWN0ZWRJdGVtcy5maW5kKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLnRoeVJhd1ZhbHVlLnZhbHVlLmxlbmd0aCAtIDEgPT09IGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IGhlbHBlcnMuZ2V0KGl0ZW0sIGB0aHlSYXdWYWx1ZS52YWx1ZS4ke2luZGV4fWApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGVscGVycy5zaGFsbG93RXF1YWwoc2VsZWN0ZWRJdGVtLCBvcHRpb24pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3QoY3VycmVudEl0ZW0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UkLm5leHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFNlbGVjdGVkU3RhdGUoc2VsZWN0T3B0aW9uczogVGh5Q2FzY2FkZXJPcHRpb25bXSkge1xuICAgICAgICBpZiAodGhpcy5jYXNjYWRlck9wdGlvbnMuaXNNdWx0aXBsZSAmJiB0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc09ubHlTZWxlY3RMZWFmKSB7XG4gICAgICAgICAgICBzZWxlY3RPcHRpb25zLmZvckVhY2gob3B0ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAob3B0LmlzTGVhZikge1xuICAgICAgICAgICAgICAgICAgICBvcHQuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBzZXQob3B0LCAnc2VsZWN0ZWQnLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuYWRkUGFyZW50U2VsZWN0ZWRTdGF0ZShzZWxlY3RPcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYWRkUGFyZW50U2VsZWN0ZWRTdGF0ZShzZWxlY3RPcHRpb25zOiBUaHlDYXNjYWRlck9wdGlvbltdKSB7XG4gICAgICAgIHNlbGVjdE9wdGlvbnMuZm9yRWFjaChvcHQgPT4ge1xuICAgICAgICAgICAgaWYgKG9wdD8uY2hpbGRyZW4/Lmxlbmd0aCAmJiBvcHQuY2hpbGRyZW4uZXZlcnkoaSA9PiBpLnNlbGVjdGVkKSkge1xuICAgICAgICAgICAgICAgIG9wdC5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgc2V0KG9wdCwgJ3NlbGVjdGVkJywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKG9wdC5wYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRQYXJlbnRTZWxlY3RlZFN0YXRlKFtvcHQucGFyZW50XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkRGlzcGxheUxhYmVsKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSBbLi4udGhpcy5zZWxlY3RlZE9wdGlvbnNdO1xuICAgICAgICBjb25zdCBsYWJlbHM6IHN0cmluZ1tdID0gc2VsZWN0ZWRPcHRpb25zLm1hcChvID0+IHRoaXMuZ2V0T3B0aW9uTGFiZWwobykpO1xuXG4gICAgICAgIGlmIChsYWJlbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGFiZWxSZW5kZXJDb250ZXh0O1xuICAgICAgICBsZXQgbGFiZWxSZW5kZXJUZXh0O1xuXG4gICAgICAgIGlmICh0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc0xhYmVsUmVuZGVyVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIGxhYmVsUmVuZGVyQ29udGV4dCA9IHsgbGFiZWxzLCBzZWxlY3RlZE9wdGlvbnMgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhYmVsUmVuZGVyVGV4dCA9IGRlZmF1bHREaXNwbGF5UmVuZGVyLmNhbGwodGhpcywgbGFiZWxzLCBzZWxlY3RlZE9wdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy5sYWJlbFJlbmRlclRleHQgPSBsYWJlbFJlbmRlclRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5sYWJlbFJlbmRlclRleHQgfHwgdGhpcy5jYXNjYWRlck9wdGlvbnMuaXNMYWJlbFJlbmRlclRlbXBsYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZERhdGE6IFNlbGVjdE9wdGlvbkJhc2UgPSB7XG4gICAgICAgICAgICAgICAgdGh5UmF3VmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHNlbGVjdGVkT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxUZXh0OiBsYWJlbFJlbmRlclRleHQsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsUmVuZGVyQ29udGV4dDogbGFiZWxSZW5kZXJDb250ZXh0XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0aHlWYWx1ZTogbGFiZWxzLFxuICAgICAgICAgICAgICAgIHRoeUxhYmVsVGV4dDogbGFiZWxSZW5kZXJUZXh0XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3Qoc2VsZWN0ZWREYXRhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZUNhc2NhZGVyVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0aW9uTW9kZWwpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdFNlbGVjdGlvbk1vZGVsKHRoaXMuY2FzY2FkZXJPcHRpb25zLmlzTXVsdGlwbGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5jYXNjYWRlck9wdGlvbnMuaXNNdWx0aXBsZSkge1xuICAgICAgICAgICAgY29uc3QgdnMgPSAodGhpcy5kZWZhdWx0VmFsdWUgPSB0aGlzLnRvQXJyYXkodmFsdWUpKTtcbiAgICAgICAgICAgIGlmICh2cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRPcHRpb25zKDApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdnM7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZWRPcHRpb25zID0gW107XG4gICAgICAgICAgICAgICAgdGhpcy5hZnRlcldyaXRlVmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMudG9BcnJheSh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgICAgICB2YWx1ZXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2cyA9ICh0aGlzLmRlZmF1bHRWYWx1ZSA9IHRoaXMudG9BcnJheShpdGVtKSk7XG4gICAgICAgICAgICAgICAgaWYgKHZzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRPcHRpb25zKDApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2cztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZWRPcHRpb25zID0gW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJXcml0ZVZhbHVlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFmdGVyV3JpdGVWYWx1ZSgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSB0aGlzLmFjdGl2YXRlZE9wdGlvbnM7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmdldFN1Ym1pdFZhbHVlKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcbiAgICAgICAgdGhpcy5hZGRTZWxlY3RlZFN0YXRlKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcbiAgICAgICAgdGhpcy5idWlsZERpc3BsYXlMYWJlbCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0FjdGl2YXRlZE9wdGlvbihvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLCBpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZU9wdCA9IHRoaXMuYWN0aXZhdGVkT3B0aW9uc1tpbmRleF07XG4gICAgICAgIHJldHVybiBhY3RpdmVPcHQgPT09IG9wdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNIYWxmU2VsZWN0ZWRPcHRpb24ob3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbiwgaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc011bHRpcGxlICYmXG4gICAgICAgICAgICAhb3B0aW9uLnNlbGVjdGVkICYmXG4gICAgICAgICAgICB0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc09ubHlTZWxlY3RMZWFmICYmXG4gICAgICAgICAgICAhb3B0aW9uLmlzTGVhZiAmJlxuICAgICAgICAgICAgIXRoaXMuY2hlY2tTZWxlY3RlZFN0YXR1cyhvcHRpb24sIGZhbHNlKSAmJlxuICAgICAgICAgICAgIWhlbHBlcnMuaXNFbXB0eShvcHRpb24uY2hpbGRyZW4pXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWYWx1ZXMoKSB7XG4gICAgICAgIGxldCBzZWxlY3RlZEl0ZW1zOiBhbnlbXTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkO1xuICAgICAgICBzZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWQubWFwKGl0ZW0gPT4gdGhpcy5nZXRTdWJtaXRWYWx1ZShpdGVtLnRoeVJhd1ZhbHVlLnZhbHVlKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmNhc2NhZGVyT3B0aW9ucz8uaXNNdWx0aXBsZSA/IHNlbGVjdGVkSXRlbXMgOiAoc2VsZWN0ZWRJdGVtc1swXSA/PyBzZWxlY3RlZEl0ZW1zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVByZXZTZWxlY3RlZE9wdGlvbnMob3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbiwgaXNBY3RpdmF0ZUluaXQ6IGJvb2xlYW4sIGluZGV4PzogbnVtYmVyKSB7XG4gICAgICAgIGlmIChpc0FjdGl2YXRlSW5pdCkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVBY3RpdmF0ZUluaXQob3B0aW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jYXNjYWRlck9wdGlvbnMuaXNNdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJQcmV2U2VsZWN0ZWRPcHRpb25zKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNldChvcHRpb24sICdzZWxlY3RlZCcsIHRoaXMuaXNTZWxlY3RlZChvcHRpb24sIGluZGV4KSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc09ubHlTZWxlY3RMZWFmICYmIHRoaXMuY2FzY2FkZXJPcHRpb25zLmlzTXVsdGlwbGUgJiYgb3B0aW9uLnBhcmVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUHJldlNlbGVjdGVkT3B0aW9ucyhvcHRpb24ucGFyZW50LCBmYWxzZSwgaW5kZXggLSAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJldlNlbGVjdGVkT3B0aW9ucy5hZGQob3B0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUFjdGl2YXRlSW5pdChvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmIChpc0FycmF5KHRoaXMuY3VzdG9tT3B0aW9ucykgJiYgdGhpcy5jdXN0b21PcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlS2V5ID0gdGhpcy5jYXNjYWRlck9wdGlvbnMudmFsdWVQcm9wZXJ0eTtcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tT3B0aW9ucy5zb21lKGl0ZW0gPT4gZ2V0KGl0ZW0sIHZhbHVlS2V5KSA9PSBnZXQob3B0aW9uLCB2YWx1ZUtleSkpICYmIHNldChvcHRpb24sICdzZWxlY3RlZCcsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc09ubHlTZWxlY3RMZWFmICYmIG9wdGlvbi5pc0xlYWYpIHtcbiAgICAgICAgICAgIHNldChvcHRpb24sICdzZWxlY3RlZCcsIHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1NlbGVjdGVkKG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb24sIGluZGV4PzogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc09ubHlTZWxlY3RMZWFmICYmICFvcHRpb24uaXNMZWFmICYmIHRoaXMuY2FzY2FkZXJPcHRpb25zLmlzTXVsdGlwbGVcbiAgICAgICAgICAgID8gdGhpcy5pc1NlbGVjdGVkT3B0aW9uKG9wdGlvbiwgaW5kZXgpXG4gICAgICAgICAgICA6ICF0aGlzLmlzU2VsZWN0ZWRPcHRpb24ob3B0aW9uLCBpbmRleCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhclByZXZTZWxlY3RlZE9wdGlvbnMoKSB7XG4gICAgICAgIGNvbnN0IHByZXZTZWxlY3RlZE9wdGlvbnMgPSBBcnJheS5mcm9tKHRoaXMucHJldlNlbGVjdGVkT3B0aW9ucyk7XG4gICAgICAgIHdoaWxlIChwcmV2U2VsZWN0ZWRPcHRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgc2V0KHByZXZTZWxlY3RlZE9wdGlvbnMucG9wKCksICdzZWxlY3RlZCcsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZXZTZWxlY3RlZE9wdGlvbnMgPSBuZXcgU2V0KFtdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9wdGlvbkxhYmVsKG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb24pOiBhbnkge1xuICAgICAgICByZXR1cm4gb3B0aW9uW3RoaXMuY2FzY2FkZXJPcHRpb25zLmxhYmVsUHJvcGVydHkgfHwgJ2xhYmVsJ107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPcHRpb25WYWx1ZShvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uKTogYW55IHtcbiAgICAgICAgcmV0dXJuIG9wdGlvblt0aGlzLmNhc2NhZGVyT3B0aW9ucy52YWx1ZVByb3BlcnR5IHx8ICd2YWx1ZSddO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVDdXN0b21PcHRpb24oKSB7XG4gICAgICAgIGlmICghaXNBcnJheSh0aGlzLmN1c3RvbU9wdGlvbnMpIHx8IHRoaXMuY3VzdG9tT3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBzZWxlY3RlZEN1c3RvbU9wdGlvbnMgPSB0aGlzLmdldFNlbGVjdGVkQ3VzdG9tT3B0aW9ucygpO1xuICAgICAgICBzZWxlY3RlZEN1c3RvbU9wdGlvbnMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlU2VsZWN0ZWRJdGVtKGl0ZW0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlbGVjdGVkQ3VzdG9tT3B0aW9ucygpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc011bHRpcGxlID8gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZCA6IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWRbMF07XG4gICAgICAgIGlmICghaXNBcnJheShzZWxlY3RlZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWx1ZUtleSA9IHRoaXMuY2FzY2FkZXJPcHRpb25zLnZhbHVlUHJvcGVydHk7XG4gICAgICAgIHJldHVybiBzZWxlY3RlZC5maWx0ZXIoaXRlbSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZElkID0gZ2V0KGl0ZW0sIGB0aHlSYXdWYWx1ZS52YWx1ZS4wLiR7dmFsdWVLZXl9YCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21PcHRpb25zLnNvbWUob3B0aW9uID0+IGdldChvcHRpb24sIHZhbHVlS2V5KSA9PT0gc2VsZWN0ZWRJZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRvQXJyYXk8VD4odmFsdWU6IFQgfCBUW10pOiBUW10ge1xuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9IGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIFt2YWx1ZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhcnJheUVxdWFsczxUPihhcnJheTE6IFRbXSwgYXJyYXkyOiBUW10pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGFycmF5MSkgfHwgIUFycmF5LmlzQXJyYXkoYXJyYXkyKSB8fCBhcnJheTEubGVuZ3RoICE9PSBhcnJheTIubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXJyYXkxLmV2ZXJ5KChlbGVtZW50LCBpbmRleCkgPT4gZWxlbWVudCA9PT0gYXJyYXkyW2luZGV4XSk7XG4gICAgfVxufVxuIl19
|
|
558
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzY2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jYXNjYWRlci9jYXNjYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUVuRCxNQUFNLG9CQUFvQixHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRS9EOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUlXLFlBQU8sR0FBMEIsRUFBRSxDQUFDO1FBYXBDLG9CQUFlLEdBQXdCLEVBQUUsQ0FBQztRQUUxQyxxQkFBZ0IsR0FBd0IsRUFBRSxDQUFDO1FBSTNDLG1CQUFjLEdBQThCLEVBQUUsQ0FBQztRQUUvQyxjQUFTLEdBQThCLEVBQUUsQ0FBQztRQUUxQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLHFCQUFnQixHQUE4QixFQUFFLENBQUM7UUFNaEQsd0JBQW1CLEdBQTJCLElBQUksR0FBRyxFQUFxQixDQUFDO1FBRTVFLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztLQXduQjdDO0lBdG5CVSxtQkFBbUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDekIsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNMLE1BQU0s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SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFJLE1BQVcsRUFBRSxNQUFXO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0RixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7K0dBM3BCUSxrQkFBa0I7bUhBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElkIH0gZnJvbSAnQHRldGh5cy9jZGsvaW1tdXRhYmxlJztcbmltcG9ydCB7IFNlbGVjdE9wdGlvbkJhc2UgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBoZWxwZXJzLCBpc0FycmF5LCBpc0VtcHR5LCBpc1VuZGVmaW5lZE9yTnVsbCwgc2V0LCBnZXQgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUaHlDYXNjYWRlck9wdGlvbiwgVGh5Q2FzY2FkZXJTZWFyY2hPcHRpb24gfSBmcm9tICcuL3R5cGVzJztcbmNvbnN0IGRlZmF1bHREaXNwbGF5UmVuZGVyID0gKGxhYmVsOiBhbnkpID0+IGxhYmVsLmpvaW4oJyAvICcpO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGh5Q2FzY2FkZXJTZXJ2aWNlIHtcbiAgICBwdWJsaWMgc2VsZWN0aW9uTW9kZWw6IFNlbGVjdGlvbk1vZGVsPFNlbGVjdE9wdGlvbkJhc2U+O1xuXG4gICAgcHVibGljIGNvbHVtbnM6IFRoeUNhc2NhZGVyT3B0aW9uW11bXSA9IFtdO1xuXG4gICAgcHVibGljIGN1c3RvbU9wdGlvbnM6IFRoeUNhc2NhZGVyT3B0aW9uW107XG5cbiAgICBwdWJsaWMgY2FzY2FkZXJPcHRpb25zOiB7XG4gICAgICAgIGxhYmVsUHJvcGVydHk/OiBzdHJpbmc7XG4gICAgICAgIHZhbHVlUHJvcGVydHk/OiBzdHJpbmc7XG4gICAgICAgIGlzTXVsdGlwbGU/OiBib29sZWFuO1xuICAgICAgICBpc09ubHlTZWxlY3RMZWFmPzogYm9vbGVhbjtcbiAgICAgICAgaXNMYWJlbFJlbmRlclRlbXBsYXRlPzogYm9vbGVhbjtcbiAgICAgICAgbG9hZERhdGE/OiAobm9kZTogVGh5Q2FzY2FkZXJPcHRpb24sIGluZGV4PzogbnVtYmVyKSA9PiBQcm9taXNlTGlrZTxhbnk+O1xuICAgIH07XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWRPcHRpb25zOiBUaHlDYXNjYWRlck9wdGlvbltdID0gW107XG5cbiAgICBwdWJsaWMgYWN0aXZhdGVkT3B0aW9uczogVGh5Q2FzY2FkZXJPcHRpb25bXSA9IFtdO1xuXG4gICAgcHVibGljIGxhYmVsUmVuZGVyVGV4dDogc3RyaW5nO1xuXG4gICAgcHVibGljIGZsYXR0ZW5PcHRpb25zOiBUaHlDYXNjYWRlclNlYXJjaE9wdGlvbltdID0gW107XG5cbiAgICBwdWJsaWMgbGVhZk5vZGVzOiBUaHlDYXNjYWRlclNlYXJjaE9wdGlvbltdID0gW107XG5cbiAgICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgc2VhcmNoUmVzdWx0TGlzdDogVGh5Q2FzY2FkZXJTZWFyY2hPcHRpb25bXSA9IFtdO1xuXG4gICAgcHVibGljIGRlZmF1bHRWYWx1ZTogYW55W107XG5cbiAgICBwdWJsaWMgdmFsdWU6IGFueVtdO1xuXG4gICAgcHJpdmF0ZSBwcmV2U2VsZWN0ZWRPcHRpb25zOiBTZXQ8VGh5Q2FzY2FkZXJPcHRpb24+ID0gbmV3IFNldDxUaHlDYXNjYWRlck9wdGlvbj4oKTtcblxuICAgIHB1YmxpYyB2YWx1ZUNoYW5nZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHVibGljIGNhc2NhZGVyVmFsdWVDaGFuZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlQ2hhbmdlJC5waXBlKFxuICAgICAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZUNoYW5nZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmdldFZhbHVlcygpLFxuICAgICAgICAgICAgICAgICAgICBpc1ZhbHVlRXF1YWw6IHRoaXMuYXJyYXlFcXVhbHModGhpcy52YWx1ZSwgdGhpcy5nZXRWYWx1ZXMoKSksXG4gICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0aW9uTW9kZWxFbXB0eTogdGhpcy5zZWxlY3Rpb25Nb2RlbC5pc0VtcHR5KClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5nZXRWYWx1ZXMoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVDaGFuZ2VPcHRpb25zO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoMTAwKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRDYXNjYWRlck9wdGlvbnMob3B0aW9uczoge1xuICAgICAgICBsYWJlbFByb3BlcnR5Pzogc3RyaW5nO1xuICAgICAgICB2YWx1ZVByb3BlcnR5Pzogc3RyaW5nO1xuICAgICAgICBpc011bHRpcGxlPzogYm9vbGVhbjtcbiAgICAgICAgaXNPbmx5U2VsZWN0TGVhZj86IGJvb2xlYW47XG4gICAgICAgIGlzTGFiZWxSZW5kZXJUZW1wbGF0ZT86IGJvb2xlYW47XG4gICAgICAgIGxvYWREYXRhPzogKG5vZGU6IFRoeUNhc2NhZGVyT3B0aW9uLCBpbmRleD86IG51bWJlcikgPT4gUHJvbWlzZUxpa2U8YW55PjtcbiAgICB9KSB7XG4gICAgICAgIHRoaXMuY2FzY2FkZXJPcHRpb25zID0geyAuLi50aGlzLmNhc2NhZGVyT3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuICAgICAgICBpZiAodGhpcy5jYXNjYWRlck9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2lzTXVsdGlwbGUnKSkge1xuICAgICAgICAgICAgdGhpcy5pbml0U2VsZWN0aW9uTW9kZWwodGhpcy5jYXNjYWRlck9wdGlvbnMuaXNNdWx0aXBsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdFNlbGVjdGlvbk1vZGVsKGlzTXVsdGlwbGU/OiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsID0gbmV3IFNlbGVjdGlvbk1vZGVsKGlzTXVsdGlwbGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRDb2x1bW5zKGNvbHVtbnM6IFRoeUNhc2NhZGVyT3B0aW9uW11bXSkge1xuICAgICAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0QWN0aXZhdGVkT3B0aW9ucyhtZW51VmlzaWJsZTogYm9vbGVhbikge1xuICAgICAgICBpZiAoaXNFbXB0eSh0aGlzLnNlbGVjdGVkT3B0aW9ucykgfHwgIW1lbnVWaXNpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY3RpdmF0ZWRPcHRpb25zID0gWy4uLnRoaXMuc2VsZWN0ZWRPcHRpb25zXTtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWRPcHRpb25zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzRW1wdHkoaXRlbS5jaGlsZHJlbikgJiYgIWl0ZW0uaXNMZWFmKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5zW2luZGV4ICsgMV0gPSBpdGVtLmNoaWxkcmVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdE9wdGlvbnMoaW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCB2cyA9IHRoaXMuZGVmYXVsdFZhbHVlO1xuICAgICAgICBjb25zdCBsb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZU9uSW5pdChpbmRleCwgdnNbaW5kZXhdKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA8IHZzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRPcHRpb25zKGluZGV4ICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IHZzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyV3JpdGVWYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0aGlzLmNvbHVtbnNbaW5kZXhdPy5sZW5ndGggfHwgIXRoaXMuY2FzY2FkZXJPcHRpb25zLmxvYWREYXRhKSB7XG4gICAgICAgICAgICBsb2FkKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5hY3RpdmF0ZWRPcHRpb25zW2luZGV4IC0gMV0gfHwge307XG4gICAgICAgICAgICB0aGlzLmxvYWRDaGlsZHJlbihub2RlLCBpbmRleCAtIDEsIGxvYWQsIHRoaXMuYWZ0ZXJXcml0ZVZhbHVlLmJpbmQodGhpcykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWNrT3B0aW9uKFxuICAgICAgICBvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLFxuICAgICAgICBpbmRleDogbnVtYmVyLFxuICAgICAgICBldmVudDogRXZlbnQgfCBib29sZWFuLFxuICAgICAgICBzZWxlY3RGbj86IChvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLCBpbmRleDogbnVtYmVyKSA9PiB2b2lkXG4gICAgKSB7XG4gICAgICAgIGlmIChvcHRpb24/LmRpc2FibGVkICYmICF0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc011bHRpcGxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc1NlbGVjdCA9IGV2ZW50IGluc3RhbmNlb2YgRXZlbnQgPyAhdGhpcy5jYXNjYWRlck9wdGlvbnMuaXNNdWx0aXBsZSAmJiBvcHRpb24uaXNMZWFmIDogdHJ1ZTtcblxuICAgICAgICBpZiAodGhpcy5jYXNjYWRlck9wdGlvbnMuaXNNdWx0aXBsZSAmJiAhb3B0aW9uLmlzTGVhZiAmJiB0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc09ubHlTZWxlY3RMZWFmICYmIGlzU2VsZWN0KSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUFsbENoaWxkcmVuKG9wdGlvbiwgaW5kZXgsIGV2ZW50IGFzIGJvb2xlYW4sIHNlbGVjdEZuKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0QWN0aXZlT3B0aW9uKG9wdGlvbiwgaW5kZXgsIGlzU2VsZWN0LCB0cnVlLCBzZWxlY3RGbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QWN0aXZlT3B0aW9uKFxuICAgICAgICBvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLFxuICAgICAgICBpbmRleDogbnVtYmVyLFxuICAgICAgICBzZWxlY3Q6IGJvb2xlYW4sXG4gICAgICAgIGxvYWRDaGlsZHJlbjogYm9vbGVhbiA9IHRydWUsXG4gICAgICAgIHNlbGVjdEZuPzogKG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb24sIGluZGV4OiBudW1iZXIpID0+IHZvaWRcbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWRPcHRpb25zW2luZGV4XSA9IG9wdGlvbjtcbiAgICAgICAgZm9yIChsZXQgaSA9IGluZGV4IC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbk9wdGlvbiA9IHRoaXMuYWN0aXZhdGVkT3B0aW9uc1tpICsgMV0/LnBhcmVudDtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAhdGhpcy5hY3RpdmF0ZWRPcHRpb25zW2ldIHx8XG4gICAgICAgICAgICAgICAgb3JpZ2luT3B0aW9uPy5bdGhpcy5jYXNjYWRlck9wdGlvbnMudmFsdWVQcm9wZXJ0eV0gIT09IHRoaXMuYWN0aXZhdGVkT3B0aW9uc1tpXT8uW3RoaXMuY2FzY2FkZXJPcHRpb25zLnZhbHVlUHJvcGVydHldXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlZE9wdGlvbnNbaV0gPSBvcmlnaW5PcHRpb24gPz8gdGhpcy5hY3RpdmF0ZWRPcHRpb25zW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleCA8IHRoaXMuYWN0aXZhdGVkT3B0aW9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2YXRlZE9wdGlvbnMgPSB0aGlzLmFjdGl2YXRlZE9wdGlvbnMuc2xpY2UoMCwgaW5kZXggKyAxKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNBcnJheShvcHRpb24uY2hpbGRyZW4pICYmIG9wdGlvbi5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIG9wdGlvbi5pc0xlYWYgPSBmYWxzZTtcbiAgICAgICAgICAgIG9wdGlvbi5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IChjaGlsZC5wYXJlbnQgPSBvcHRpb24pKTtcbiAgICAgICAgICAgIHRoaXMuc2V0Q29sdW1uRGF0YShvcHRpb24uY2hpbGRyZW4sIGluZGV4ICsgMSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbi5pc0xlYWYgJiYgbG9hZENoaWxkcmVuKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRDaGlsZHJlbihvcHRpb24sIGluZGV4KTtcbiAgICAgICAgfSBlbHNlIGlmIChpbmRleCA8IHRoaXMuY29sdW1ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLmNvbHVtbnMuc2xpY2UoMCwgaW5kZXggKyAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZWxlY3QpIHtcbiAgICAgICAgICAgIHNlbGVjdEZuKG9wdGlvbiwgaW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkQ2hpbGRyZW4ob3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbiwgaW5kZXg6IG51bWJlciwgc3VjY2Vzcz86ICgpID0+IHZvaWQsIGZhaWx1cmU/OiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jYXNjYWRlck9wdGlvbnM/LmxvYWREYXRhKSB7XG4gICAgICAgICAgICB0aGlzLnNldENvbHVtbkRhdGEob3B0aW9uLmNoaWxkcmVuIHx8IFtdLCBpbmRleCArIDEpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuY2FzY2FkZXJPcHRpb25zLmxvYWREYXRhKG9wdGlvbiwgaW5kZXgpLnRoZW4oXG4gICAgICAgICAgICAoKSA9PiB0aGlzLmhhbmRsZUxvYWREYXRhU3VjY2VzcyhvcHRpb24sIGluZGV4LCBzdWNjZXNzKSxcbiAgICAgICAgICAgICgpID0+IHRoaXMuaGFuZGxlTG9hZERhdGFGYWlsdXJlKG9wdGlvbiwgaW5kZXgsIGZhaWx1cmUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVMb2FkRGF0YVN1Y2Nlc3Mob3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbiwgaW5kZXg6IG51bWJlciwgc3VjY2Vzcz86ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgb3B0aW9uLmxvYWRpbmcgPSB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChvcHRpb24uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIG9wdGlvbi5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IChjaGlsZC5wYXJlbnQgPSBpbmRleCA8IDAgPyB1bmRlZmluZWQgOiBvcHRpb24pKTtcbiAgICAgICAgICAgIHRoaXMuc2V0Q29sdW1uRGF0YShvcHRpb24uY2hpbGRyZW4sIGluZGV4ICsgMSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICAgICAgc3VjY2VzcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVMb2FkRGF0YUZhaWx1cmUob3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbiwgaW5kZXg6IG51bWJlciwgZmFpbHVyZT86ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgb3B0aW9uLmxvYWRpbmcgPSB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBvcHRpb24uaXNMZWFmID0gdHJ1ZTtcblxuICAgICAgICBpZiAoZmFpbHVyZSkge1xuICAgICAgICAgICAgZmFpbHVyZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZU9uSW5pdChpbmRleDogbnVtYmVyLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGxldCBvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uO1xuICAgICAgICBpZiAoaXNBcnJheSh0aGlzLmN1c3RvbU9wdGlvbnMpICYmIHRoaXMuY3VzdG9tT3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBvcHRpb24gPSB0aGlzLmN1c3RvbU9wdGlvbnMuZmluZChpdGVtID0+IGdldChpdGVtLCB0aGlzLmNhc2NhZGVyT3B0aW9ucy52YWx1ZVByb3BlcnR5KSA9PT0gdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1VuZGVmaW5lZE9yTnVsbChvcHRpb24pKSB7XG4gICAgICAgICAgICBvcHRpb24gPSB0aGlzLmZpbmRPcHRpb24odmFsdWUsIGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdGlvbikge1xuICAgICAgICAgICAgb3B0aW9uID1cbiAgICAgICAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnXG4gICAgICAgICAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtgJHt0aGlzLmNhc2NhZGVyT3B0aW9ucy52YWx1ZVByb3BlcnR5IHx8ICd2YWx1ZSd9YF06IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYCR7dGhpcy5jYXNjYWRlck9wdGlvbnMubGFiZWxQcm9wZXJ0eSB8fCAnbGFiZWwnfWBdOiB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVQcmV2U2VsZWN0ZWRPcHRpb25zKG9wdGlvbiwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuc2V0QWN0aXZlT3B0aW9uKG9wdGlvbiwgaW5kZXgsIGZhbHNlLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzU2VsZWN0ZWRPcHRpb24ob3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbiwgaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5jYXNjYWRlck9wdGlvbnM/LmlzT25seVNlbGVjdExlYWYpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb24uaXNMZWFmKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi5zZWxlY3RlZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tTZWxlY3RlZFN0YXR1cyhvcHRpb24sIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRzID0gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZDtcbiAgICAgICAgICAgIGNvbnN0IGFwcGVhckluZGV4ID0gc2VsZWN0ZWRPcHRzLmZpbmRJbmRleChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS50aHlSYXdWYWx1ZS52YWx1ZS5sZW5ndGggLSAxID09PSBpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBoZWxwZXJzLmdldChpdGVtLCBgdGh5UmF3VmFsdWUudmFsdWUuJHtpbmRleH1gKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGhlbHBlcnMuc2hhbGxvd0VxdWFsKHNlbGVjdGVkSXRlbSwgb3B0aW9uKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gYXBwZWFySW5kZXggPj0gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdG9nZ2xlQWxsQ2hpbGRyZW4oXG4gICAgICAgIG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb24sXG4gICAgICAgIGluZGV4OiBudW1iZXIsXG4gICAgICAgIHNlbGVjdGVkOiBib29sZWFuLFxuICAgICAgICBzZWxlY3RGbj86IChvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLCBpbmRleDogbnVtYmVyKSA9PiB2b2lkXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFsbExlYWZzOiB7XG4gICAgICAgICAgICBvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uO1xuICAgICAgICAgICAgaW5kZXg6IG51bWJlcjtcbiAgICAgICAgfVtdID0gdGhpcy5nZXRBbGxMZWFmcyhvcHRpb24sIGluZGV4LCBzZWxlY3RlZCk7XG4gICAgICAgIG9wdGlvbi5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuXG4gICAgICAgIHdoaWxlIChhbGxMZWFmcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgb3B0aW9uLCBpbmRleCB9ID0gYWxsTGVhZnMuc2hpZnQoKTtcbiAgICAgICAgICAgIG9wdGlvbi5zZWxlY3RlZCA9ICFzZWxlY3RlZDtcbiAgICAgICAgICAgIHRoaXMuc2V0QWN0aXZlT3B0aW9uKG9wdGlvbiwgaW5kZXgsIHRydWUsIG51bGwsIHNlbGVjdEZuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5hY3RpdmF0ZWRPcHRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSB0aGlzLmFjdGl2YXRlZE9wdGlvbnNbaV07XG4gICAgICAgICAgICBpZiAoaXNBcnJheShvcHRpb24uY2hpbGRyZW4pICYmIG9wdGlvbi5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldENvbHVtbkRhdGEob3B0aW9uLmNoaWxkcmVuLCBpICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFsbExlYWZzKFxuICAgICAgICBvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLFxuICAgICAgICBpbmRleDogbnVtYmVyLFxuICAgICAgICBzZWxlY3RlZDogYm9vbGVhblxuICAgICk6IHtcbiAgICAgICAgb3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbjtcbiAgICAgICAgaW5kZXg6IG51bWJlcjtcbiAgICB9W10ge1xuICAgICAgICBsZXQgYWxsTGVhZnM6IHtcbiAgICAgICAgICAgIG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb247XG4gICAgICAgICAgICBpbmRleDogbnVtYmVyO1xuICAgICAgICB9W10gPSBbXTtcbiAgICAgICAgaWYgKG9wdGlvbi5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkT3B0aW9uIG9mIG9wdGlvbi5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIGNoaWxkT3B0aW9uLnBhcmVudCA9IG9wdGlvbjtcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGRPcHRpb24uaXNMZWFmICYmICFjaGlsZE9wdGlvbi5zZWxlY3RlZCA9PT0gc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxsTGVhZnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb246IGNoaWxkT3B0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4ICsgMVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFjaGlsZE9wdGlvbi5pc0xlYWYpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxsTGVhZnMgPSBhbGxMZWFmcy5jb25jYXQodGhpcy5nZXRBbGxMZWFmcyhjaGlsZE9wdGlvbiwgaW5kZXggKyAxLCBzZWxlY3RlZCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWxsTGVhZnM7XG4gICAgfVxuXG4gICAgcHVibGljIHNlYXJjaEluTG9jYWwoc2VhcmNoVGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9yRWFjaENvbHVtbnMoKTtcblxuICAgICAgICB0aGlzLnNldFNlYXJjaFJlc3VsdExpc3QodGhpcy5jYXNjYWRlck9wdGlvbnMuaXNPbmx5U2VsZWN0TGVhZiA/IHRoaXMubGVhZk5vZGVzIDogdGhpcy5mbGF0dGVuT3B0aW9ucywgc2VhcmNoVGV4dCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JFYWNoQ29sdW1ucyhcbiAgICAgICAgY3VycmVudExhYmVsPzogc3RyaW5nW10sXG4gICAgICAgIGN1cnJlbnRWYWx1ZTogSWRbXSA9IFtdLFxuICAgICAgICBjdXJyZW50Um93VmFsdWU6IFRoeUNhc2NhZGVyT3B0aW9uW10gPSBbXSxcbiAgICAgICAgbGlzdCA9IHRoaXMuY29sdW1uc1swXVxuICAgICkge1xuICAgICAgICBsaXN0LmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJPcHRpb25MYWJlbCA9IHRoaXMuZ2V0T3B0aW9uTGFiZWwoaXRlbSk7XG4gICAgICAgICAgICBjb25zdCBjdXJPcHRpb25WYWx1ZSA9IHRoaXMuZ2V0T3B0aW9uVmFsdWUoaXRlbSk7XG4gICAgICAgICAgICBjb25zdCBsYWJlbDogc3RyaW5nW10gPSBjdXJyZW50TGFiZWwgPyBbLi4uY3VycmVudExhYmVsLCBjdXJPcHRpb25MYWJlbF0gOiBbY3VyT3B0aW9uTGFiZWxdO1xuICAgICAgICAgICAgY29uc3QgdmFsdWVMaXN0OiBJZFtdID0gWy4uLmN1cnJlbnRWYWx1ZSwgY3VyT3B0aW9uVmFsdWVdO1xuICAgICAgICAgICAgY29uc3Qgcm93VmFsdWVMaXN0OiBUaHlDYXNjYWRlck9wdGlvbltdID0gWy4uLmN1cnJlbnRSb3dWYWx1ZSwgaXRlbV07XG4gICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gdGhpcy5pc1NlbGVjdGVkT3B0aW9uKGl0ZW0sIHZhbHVlTGlzdC5sZW5ndGggLSAxKTtcblxuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHtcbiAgICAgICAgICAgICAgICBsYWJlbExpc3Q6IGxhYmVsLFxuICAgICAgICAgICAgICAgIHZhbHVlTGlzdCxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogaXNTZWxlY3RlZCxcbiAgICAgICAgICAgICAgICB0aHlSb3dWYWx1ZTogcm93VmFsdWVMaXN0LFxuICAgICAgICAgICAgICAgIGlzTGVhZjogaXRlbS5pc0xlYWYsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWRcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuZmxhdHRlbk9wdGlvbnMucHVzaChub2RlKTtcbiAgICAgICAgICAgIGlmIChpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JFYWNoQ29sdW1ucyhsYWJlbCwgdmFsdWVMaXN0LCByb3dWYWx1ZUxpc3QsIGl0ZW0uY2hpbGRyZW4pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxlYWZOb2Rlcy5wdXNoKG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFNlYXJjaFJlc3VsdExpc3QobGlzdE9mT3B0aW9uOiBUaHlDYXNjYWRlclNlYXJjaE9wdGlvbltdLCBzZWFyY2hUZXh0OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHRMaXN0ID0gW107XG4gICAgICAgIGxpc3RPZk9wdGlvbi5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKCFpdGVtLmRpc2FibGVkICYmIGl0ZW0uaXNMZWFmICYmIGl0ZW0ubGFiZWxMaXN0LmpvaW4oKS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFJlc3VsdExpc3QucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5qOA5p+l5omA5pyJ5omA5pyJ5a2Q6aG555qE6YCJ5oup54q25oCBLCDmnInkuIDkuKrkuI3nrKblkIjpooTmnJ/vvIzlsLHnm7TmjqXov5Tlm54gZmFsc2VcbiAgICAgKiBAcGFyYW0gb3B0aW9uXG4gICAgICogQHBhcmFtIHRydWVPckZhbHNlXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNoZWNrU2VsZWN0ZWRTdGF0dXMob3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbiwgaXNTZWxlY3RlZDogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAob3B0aW9uLmlzTGVhZikge1xuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi5zZWxlY3RlZCA9PT0gaXNTZWxlY3RlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaGVscGVycy5pc0VtcHR5KG9wdGlvbi5jaGlsZHJlbikgJiYgdGhpcy5jYXNjYWRlck9wdGlvbnM/LmlzT25seVNlbGVjdExlYWYpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkT3B0aW9uIG9mIG9wdGlvbi5jaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKGlzQXJyYXkoY2hpbGRPcHRpb24uY2hpbGRyZW4pICYmIGNoaWxkT3B0aW9uLmNoaWxkcmVuLmxlbmd0aCAmJiAhdGhpcy5jaGVja1NlbGVjdGVkU3RhdHVzKGNoaWxkT3B0aW9uLCBpc1NlbGVjdGVkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghY2hpbGRPcHRpb24uc2VsZWN0ZWQgPT09IGlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kT3B0aW9uKG9wdGlvbjogYW55LCBpbmRleDogbnVtYmVyKTogVGh5Q2FzY2FkZXJPcHRpb24ge1xuICAgICAgICBjb25zdCBvcHRpb25zOiBUaHlDYXNjYWRlck9wdGlvbltdID0gdGhpcy5jb2x1bW5zW2luZGV4XTtcbiAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcgPyB0aGlzLmdldE9wdGlvblZhbHVlKG9wdGlvbikgOiBvcHRpb247XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5maW5kKG8gPT4gdmFsdWUgPT09IHRoaXMuZ2V0T3B0aW9uVmFsdWUobykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q29sdW1uRGF0YShvcHRpb25zOiBUaHlDYXNjYWRlck9wdGlvbltdLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5hcnJheUVxdWFscyh0aGlzLmNvbHVtbnNbaW5kZXhdLCBvcHRpb25zKSkge1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5zW2luZGV4XSA9IG9wdGlvbnM7XG4gICAgICAgICAgICBpZiAoaW5kZXggPCB0aGlzLmNvbHVtbnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuY29sdW1ucy5zbGljZSgwLCBpbmRleCArIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTdWJtaXRWYWx1ZShvcmlnaW5PcHRpb25zOiBUaHlDYXNjYWRlck9wdGlvbltdKTogYW55W10ge1xuICAgICAgICBjb25zdCB2YWx1ZXM6IGFueVtdID0gW107XG4gICAgICAgIChvcmlnaW5PcHRpb25zIHx8IFtdKS5mb3JFYWNoKG9wdGlvbiA9PiB7XG4gICAgICAgICAgICB2YWx1ZXMucHVzaCh0aGlzLmdldE9wdGlvblZhbHVlKG9wdGlvbikpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlU2VsZWN0ZWRJdGVtKGl0ZW06IFNlbGVjdE9wdGlvbkJhc2UpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQ7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gc2VsZWN0ZWRJdGVtcy5maW5kKGkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGhlbHBlcnMuc2hhbGxvd0VxdWFsKGkudGh5VmFsdWUsIGl0ZW0udGh5VmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5kZXNlbGVjdE9wdGlvbihjdXJyZW50SXRlbSk7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3QoY3VycmVudEl0ZW0pO1xuICAgICAgICAvLyB1cGRhdGUgc2VsZWN0ZWRPcHRpb25zXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRTZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZDtcbiAgICAgICAgaWYgKGlzQXJyYXkodXBkYXRlZFNlbGVjdGVkSXRlbXMpICYmIHVwZGF0ZWRTZWxlY3RlZEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSB1cGRhdGVkU2VsZWN0ZWRJdGVtc1t1cGRhdGVkU2VsZWN0ZWRJdGVtcy5sZW5ndGggLSAxXS50aHlSYXdWYWx1ZS52YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UkLm5leHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRTZWFyY2goKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoUmVzdWx0TGlzdCA9IFtdO1xuICAgICAgICB0aGlzLmxlYWZOb2RlcyA9IFtdO1xuICAgICAgICB0aGlzLmZsYXR0ZW5PcHRpb25zID0gW107XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyU2VsZWN0aW9uKCkge1xuICAgICAgICB0aGlzLmxhYmVsUmVuZGVyVGV4dCA9ICcnO1xuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLmFjdGl2YXRlZE9wdGlvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5kZXNlbGVjdEFsbFNlbGVjdGVkKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXNlbGVjdEFsbFNlbGVjdGVkKCkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkO1xuICAgICAgICBzZWxlY3RlZE9wdGlvbnMuZm9yRWFjaChpdGVtID0+IHRoaXMuZGVzZWxlY3RPcHRpb24oaXRlbSkpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UkLm5leHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc2VsZWN0T3B0aW9uKG9wdGlvbjogU2VsZWN0T3B0aW9uQmFzZSkge1xuICAgICAgICBjb25zdCB2YWx1ZTogVGh5Q2FzY2FkZXJPcHRpb25bXSA9IG9wdGlvbi50aHlSYXdWYWx1ZS52YWx1ZTtcbiAgICAgICAgdmFsdWUuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLmlzTGVhZiAmJiBpdGVtLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgc2V0KGl0ZW0sICdzZWxlY3RlZCcsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdE9wdGlvbihvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5hY3RpdmF0ZWRPcHRpb25zO1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXZTZWxlY3RlZE9wdGlvbnMob3B0aW9uLCBmYWxzZSwgaW5kZXgpO1xuICAgICAgICBpZiAob3B0aW9uLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLmJ1aWxkRGlzcGxheUxhYmVsKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZDtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gc2VsZWN0ZWRJdGVtcy5maW5kKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLnRoeVJhd1ZhbHVlLnZhbHVlLmxlbmd0aCAtIDEgPT09IGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IGhlbHBlcnMuZ2V0KGl0ZW0sIGB0aHlSYXdWYWx1ZS52YWx1ZS4ke2luZGV4fWApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGVscGVycy5zaGFsbG93RXF1YWwoc2VsZWN0ZWRJdGVtLCBvcHRpb24pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3QoY3VycmVudEl0ZW0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UkLm5leHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFNlbGVjdGVkU3RhdGUoc2VsZWN0T3B0aW9uczogVGh5Q2FzY2FkZXJPcHRpb25bXSkge1xuICAgICAgICBpZiAodGhpcy5jYXNjYWRlck9wdGlvbnMuaXNNdWx0aXBsZSAmJiB0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc09ubHlTZWxlY3RMZWFmKSB7XG4gICAgICAgICAgICBzZWxlY3RPcHRpb25zLmZvckVhY2gob3B0ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAob3B0LmlzTGVhZikge1xuICAgICAgICAgICAgICAgICAgICBvcHQuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBzZXQob3B0LCAnc2VsZWN0ZWQnLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuYWRkUGFyZW50U2VsZWN0ZWRTdGF0ZShzZWxlY3RPcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYWRkUGFyZW50U2VsZWN0ZWRTdGF0ZShzZWxlY3RPcHRpb25zOiBUaHlDYXNjYWRlck9wdGlvbltdKSB7XG4gICAgICAgIHNlbGVjdE9wdGlvbnMuZm9yRWFjaChvcHQgPT4ge1xuICAgICAgICAgICAgaWYgKG9wdD8uY2hpbGRyZW4/Lmxlbmd0aCAmJiBvcHQuY2hpbGRyZW4uZXZlcnkoaSA9PiBpLnNlbGVjdGVkKSkge1xuICAgICAgICAgICAgICAgIG9wdC5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgc2V0KG9wdCwgJ3NlbGVjdGVkJywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKG9wdC5wYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRQYXJlbnRTZWxlY3RlZFN0YXRlKFtvcHQucGFyZW50XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkRGlzcGxheUxhYmVsKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSBbLi4udGhpcy5zZWxlY3RlZE9wdGlvbnNdO1xuICAgICAgICBjb25zdCBsYWJlbHM6IHN0cmluZ1tdID0gc2VsZWN0ZWRPcHRpb25zLm1hcChvID0+IHRoaXMuZ2V0T3B0aW9uTGFiZWwobykpO1xuXG4gICAgICAgIGlmIChsYWJlbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGFiZWxSZW5kZXJDb250ZXh0O1xuICAgICAgICBsZXQgbGFiZWxSZW5kZXJUZXh0O1xuXG4gICAgICAgIGlmICh0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc0xhYmVsUmVuZGVyVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIGxhYmVsUmVuZGVyQ29udGV4dCA9IHsgbGFiZWxzLCBzZWxlY3RlZE9wdGlvbnMgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhYmVsUmVuZGVyVGV4dCA9IGRlZmF1bHREaXNwbGF5UmVuZGVyLmNhbGwodGhpcywgbGFiZWxzLCBzZWxlY3RlZE9wdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy5sYWJlbFJlbmRlclRleHQgPSBsYWJlbFJlbmRlclRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5sYWJlbFJlbmRlclRleHQgfHwgdGhpcy5jYXNjYWRlck9wdGlvbnMuaXNMYWJlbFJlbmRlclRlbXBsYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZERhdGE6IFNlbGVjdE9wdGlvbkJhc2UgPSB7XG4gICAgICAgICAgICAgICAgdGh5UmF3VmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHNlbGVjdGVkT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxUZXh0OiBsYWJlbFJlbmRlclRleHQsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsUmVuZGVyQ29udGV4dDogbGFiZWxSZW5kZXJDb250ZXh0XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0aHlWYWx1ZTogbGFiZWxzLFxuICAgICAgICAgICAgICAgIHRoeUxhYmVsVGV4dDogbGFiZWxSZW5kZXJUZXh0XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3Qoc2VsZWN0ZWREYXRhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZUNhc2NhZGVyVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0aW9uTW9kZWwpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdFNlbGVjdGlvbk1vZGVsKHRoaXMuY2FzY2FkZXJPcHRpb25zLmlzTXVsdGlwbGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5jYXNjYWRlck9wdGlvbnMuaXNNdWx0aXBsZSkge1xuICAgICAgICAgICAgY29uc3QgdnMgPSAodGhpcy5kZWZhdWx0VmFsdWUgPSB0aGlzLnRvQXJyYXkodmFsdWUpKTtcbiAgICAgICAgICAgIGlmICh2cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRPcHRpb25zKDApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdnM7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZWRPcHRpb25zID0gW107XG4gICAgICAgICAgICAgICAgdGhpcy5hZnRlcldyaXRlVmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMudG9BcnJheSh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgICAgICB2YWx1ZXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2cyA9ICh0aGlzLmRlZmF1bHRWYWx1ZSA9IHRoaXMudG9BcnJheShpdGVtKSk7XG4gICAgICAgICAgICAgICAgaWYgKHZzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRPcHRpb25zKDApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2cztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZWRPcHRpb25zID0gW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJXcml0ZVZhbHVlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFmdGVyV3JpdGVWYWx1ZSgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSB0aGlzLmFjdGl2YXRlZE9wdGlvbnM7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmdldFN1Ym1pdFZhbHVlKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcbiAgICAgICAgdGhpcy5hZGRTZWxlY3RlZFN0YXRlKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcbiAgICAgICAgdGhpcy5idWlsZERpc3BsYXlMYWJlbCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0FjdGl2YXRlZE9wdGlvbihvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLCBpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZU9wdCA9IHRoaXMuYWN0aXZhdGVkT3B0aW9uc1tpbmRleF07XG4gICAgICAgIHJldHVybiBhY3RpdmVPcHQgPT09IG9wdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNIYWxmU2VsZWN0ZWRPcHRpb24ob3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbiwgaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc011bHRpcGxlICYmXG4gICAgICAgICAgICAhb3B0aW9uLnNlbGVjdGVkICYmXG4gICAgICAgICAgICB0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc09ubHlTZWxlY3RMZWFmICYmXG4gICAgICAgICAgICAhb3B0aW9uLmlzTGVhZiAmJlxuICAgICAgICAgICAgIXRoaXMuY2hlY2tTZWxlY3RlZFN0YXR1cyhvcHRpb24sIGZhbHNlKSAmJlxuICAgICAgICAgICAgIWhlbHBlcnMuaXNFbXB0eShvcHRpb24uY2hpbGRyZW4pXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWYWx1ZXMoKSB7XG4gICAgICAgIGxldCBzZWxlY3RlZEl0ZW1zOiBhbnlbXTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkO1xuICAgICAgICBzZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWQubWFwKGl0ZW0gPT4gdGhpcy5nZXRTdWJtaXRWYWx1ZShpdGVtLnRoeVJhd1ZhbHVlLnZhbHVlKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmNhc2NhZGVyT3B0aW9ucz8uaXNNdWx0aXBsZSA/IHNlbGVjdGVkSXRlbXMgOiAoc2VsZWN0ZWRJdGVtc1swXSA/PyBzZWxlY3RlZEl0ZW1zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVByZXZTZWxlY3RlZE9wdGlvbnMob3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbiwgaXNBY3RpdmF0ZUluaXQ6IGJvb2xlYW4sIGluZGV4PzogbnVtYmVyKSB7XG4gICAgICAgIGlmIChpc0FjdGl2YXRlSW5pdCkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVBY3RpdmF0ZUluaXQob3B0aW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jYXNjYWRlck9wdGlvbnMuaXNNdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJQcmV2U2VsZWN0ZWRPcHRpb25zKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNldChvcHRpb24sICdzZWxlY3RlZCcsIHRoaXMuaXNTZWxlY3RlZChvcHRpb24sIGluZGV4KSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc09ubHlTZWxlY3RMZWFmICYmIHRoaXMuY2FzY2FkZXJPcHRpb25zLmlzTXVsdGlwbGUgJiYgb3B0aW9uLnBhcmVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUHJldlNlbGVjdGVkT3B0aW9ucyhvcHRpb24ucGFyZW50LCBmYWxzZSwgaW5kZXggLSAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJldlNlbGVjdGVkT3B0aW9ucy5hZGQob3B0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUFjdGl2YXRlSW5pdChvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmIChpc0FycmF5KHRoaXMuY3VzdG9tT3B0aW9ucykgJiYgdGhpcy5jdXN0b21PcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlS2V5ID0gdGhpcy5jYXNjYWRlck9wdGlvbnMudmFsdWVQcm9wZXJ0eTtcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tT3B0aW9ucy5zb21lKGl0ZW0gPT4gZ2V0KGl0ZW0sIHZhbHVlS2V5KSA9PSBnZXQob3B0aW9uLCB2YWx1ZUtleSkpICYmIHNldChvcHRpb24sICdzZWxlY3RlZCcsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc09ubHlTZWxlY3RMZWFmICYmIG9wdGlvbi5pc0xlYWYpIHtcbiAgICAgICAgICAgIHNldChvcHRpb24sICdzZWxlY3RlZCcsIHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1NlbGVjdGVkKG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb24sIGluZGV4PzogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc09ubHlTZWxlY3RMZWFmICYmICFvcHRpb24uaXNMZWFmICYmIHRoaXMuY2FzY2FkZXJPcHRpb25zLmlzTXVsdGlwbGVcbiAgICAgICAgICAgID8gdGhpcy5pc1NlbGVjdGVkT3B0aW9uKG9wdGlvbiwgaW5kZXgpXG4gICAgICAgICAgICA6ICF0aGlzLmlzU2VsZWN0ZWRPcHRpb24ob3B0aW9uLCBpbmRleCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhclByZXZTZWxlY3RlZE9wdGlvbnMoKSB7XG4gICAgICAgIGNvbnN0IHByZXZTZWxlY3RlZE9wdGlvbnMgPSBBcnJheS5mcm9tKHRoaXMucHJldlNlbGVjdGVkT3B0aW9ucyk7XG4gICAgICAgIHdoaWxlIChwcmV2U2VsZWN0ZWRPcHRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgc2V0KHByZXZTZWxlY3RlZE9wdGlvbnMucG9wKCksICdzZWxlY3RlZCcsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZXZTZWxlY3RlZE9wdGlvbnMgPSBuZXcgU2V0KFtdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9wdGlvbkxhYmVsKG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb24pOiBhbnkge1xuICAgICAgICByZXR1cm4gb3B0aW9uW3RoaXMuY2FzY2FkZXJPcHRpb25zLmxhYmVsUHJvcGVydHkgfHwgJ2xhYmVsJ107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPcHRpb25WYWx1ZShvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uKTogYW55IHtcbiAgICAgICAgcmV0dXJuIG9wdGlvblt0aGlzLmNhc2NhZGVyT3B0aW9ucy52YWx1ZVByb3BlcnR5IHx8ICd2YWx1ZSddO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVDdXN0b21PcHRpb24oKSB7XG4gICAgICAgIGlmICghaXNBcnJheSh0aGlzLmN1c3RvbU9wdGlvbnMpIHx8IHRoaXMuY3VzdG9tT3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBzZWxlY3RlZEN1c3RvbU9wdGlvbnMgPSB0aGlzLmdldFNlbGVjdGVkQ3VzdG9tT3B0aW9ucygpO1xuICAgICAgICBzZWxlY3RlZEN1c3RvbU9wdGlvbnMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlU2VsZWN0ZWRJdGVtKGl0ZW0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlbGVjdGVkQ3VzdG9tT3B0aW9ucygpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc011bHRpcGxlID8gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZCA6IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWRbMF07XG4gICAgICAgIGlmICghaXNBcnJheShzZWxlY3RlZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWx1ZUtleSA9IHRoaXMuY2FzY2FkZXJPcHRpb25zLnZhbHVlUHJvcGVydHk7XG4gICAgICAgIHJldHVybiBzZWxlY3RlZC5maWx0ZXIoaXRlbSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZElkID0gZ2V0KGl0ZW0sIGB0aHlSYXdWYWx1ZS52YWx1ZS4wLiR7dmFsdWVLZXl9YCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21PcHRpb25zLnNvbWUob3B0aW9uID0+IGdldChvcHRpb24sIHZhbHVlS2V5KSA9PT0gc2VsZWN0ZWRJZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRvQXJyYXk8VD4odmFsdWU6IFQgfCBUW10pOiBUW10ge1xuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9IGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIFt2YWx1ZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhcnJheUVxdWFsczxUPihhcnJheTE6IFRbXSwgYXJyYXkyOiBUW10pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGFycmF5MSkgfHwgIUFycmF5LmlzQXJyYXkoYXJyYXkyKSB8fCBhcnJheTEubGVuZ3RoICE9PSBhcnJheTIubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXJyYXkxLmV2ZXJ5KChlbGVtZW50LCBpbmRleCkgPT4gZWxlbWVudCA9PT0gYXJyYXkyW2luZGV4XSk7XG4gICAgfVxufVxuIl19
|
|
@@ -13,8 +13,8 @@ import { ThyCascaderSearchOptionComponent } from './cascader-search-option.compo
|
|
|
13
13
|
import { ThyCascader } from './cascader.component';
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
15
15
|
export class ThyCascaderModule {
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
17
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyCascaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
17
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ThyCascaderModule, imports: [CommonModule,
|
|
18
18
|
FormsModule,
|
|
19
19
|
OverlayModule,
|
|
20
20
|
ThyInputModule,
|
|
@@ -26,7 +26,7 @@ export class ThyCascaderModule {
|
|
|
26
26
|
ThyCascader,
|
|
27
27
|
ThyCascaderOptionComponent,
|
|
28
28
|
ThyCascaderSearchOptionComponent], exports: [ThyCascader] }); }
|
|
29
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
29
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyCascaderModule, imports: [CommonModule,
|
|
30
30
|
FormsModule,
|
|
31
31
|
OverlayModule,
|
|
32
32
|
ThyInputModule,
|
|
@@ -39,7 +39,7 @@ export class ThyCascaderModule {
|
|
|
39
39
|
ThyCascaderOptionComponent,
|
|
40
40
|
ThyCascaderSearchOptionComponent] }); }
|
|
41
41
|
}
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyCascaderModule, decorators: [{
|
|
43
43
|
type: NgModule,
|
|
44
44
|
args: [{
|
|
45
45
|
imports: [
|
|
@@ -59,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
59
59
|
exports: [ThyCascader]
|
|
60
60
|
}]
|
|
61
61
|
}] });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Nhc2NhZGVyL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFtQm5ELE1BQU0sT0FBTyxpQkFBaUI7K0dBQWpCLGlCQUFpQjtnSEFBakIsaUJBQWlCLFlBZnRCLFlBQVk7WUFDWixXQUFXO1lBQ1gsYUFBYTtZQUNiLGNBQWM7WUFDZCxhQUFhO1lBQ2IsY0FBYztZQUNkLHFCQUFxQjtZQUNyQixpQkFBaUI7WUFDakIscUJBQXFCO1lBQ3JCLFdBQVc7WUFDWCwwQkFBMEI7WUFDMUIsZ0NBQWdDLGFBRTFCLFdBQVc7Z0hBRVosaUJBQWlCLFlBZnRCLFlBQVk7WUFDWixXQUFXO1lBQ1gsYUFBYTtZQUNiLGNBQWM7WUFDZCxhQUFhO1lBQ2IsY0FBYztZQUNkLHFCQUFxQjtZQUNyQixpQkFBaUI7WUFDakIscUJBQXFCO1lBQ3JCLFdBQVc7WUFDWCwwQkFBMEI7WUFDMUIsZ0NBQWdDOzs0RkFJM0IsaUJBQWlCO2tCQWpCN0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsV0FBVzt3QkFDWCwwQkFBMEI7d0JBQzFCLGdDQUFnQztxQkFDbkM7b0JBQ0QsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGh5Q2hlY2tib3hNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2NoZWNrYm94JztcbmltcG9ydCB7IFRoeUVtcHR5TW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9lbXB0eSc7XG5pbXBvcnQgeyBUaHlGbGV4aWJsZVRleHRNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2ZsZXhpYmxlLXRleHQnO1xuaW1wb3J0IHsgVGh5SWNvbk1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlJbnB1dE1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvaW5wdXQnO1xuaW1wb3J0IHsgVGh5U2VsZWN0Q29tbW9uTW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgVGh5Q2FzY2FkZXJPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL2Nhc2NhZGVyLWxpLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHlDYXNjYWRlclNlYXJjaE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY2FzY2FkZXItc2VhcmNoLW9wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGh5Q2FzY2FkZXIgfSBmcm9tICcuL2Nhc2NhZGVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBPdmVybGF5TW9kdWxlLFxuICAgICAgICBUaHlJbnB1dE1vZHVsZSxcbiAgICAgICAgVGh5SWNvbk1vZHVsZSxcbiAgICAgICAgVGh5RW1wdHlNb2R1bGUsXG4gICAgICAgIFRoeVNlbGVjdENvbW1vbk1vZHVsZSxcbiAgICAgICAgVGh5Q2hlY2tib3hNb2R1bGUsXG4gICAgICAgIFRoeUZsZXhpYmxlVGV4dE1vZHVsZSxcbiAgICAgICAgVGh5Q2FzY2FkZXIsXG4gICAgICAgIFRoeUNhc2NhZGVyT3B0aW9uQ29tcG9uZW50LFxuICAgICAgICBUaHlDYXNjYWRlclNlYXJjaE9wdGlvbkNvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0czogW1RoeUNhc2NhZGVyXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlDYXNjYWRlck1vZHVsZSB7fVxuIl19
|
|
@@ -22,8 +22,8 @@ export class ThyCheckbox extends ThyFormCheckBaseComponent {
|
|
|
22
22
|
set thyIndeterminate(value) {
|
|
23
23
|
this.isIndeterminate = value;
|
|
24
24
|
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ThyCheckbox, isStandalone: true, selector: "thy-checkbox,[thy-checkbox],[thyCheckbox]", inputs: { thyIndeterminate: ["thyIndeterminate", "thyIndeterminate", coerceBooleanProperty] }, host: { properties: { "attr.tabindex": "-1", "class.disabled": "_disabled" }, classAttribute: "thy-checkbox" }, providers: [
|
|
27
27
|
{
|
|
28
28
|
provide: NG_VALUE_ACCESSOR,
|
|
29
29
|
useExisting: forwardRef(() => ThyCheckbox),
|
|
@@ -31,7 +31,7 @@ export class ThyCheckbox extends ThyFormCheckBaseComponent {
|
|
|
31
31
|
}
|
|
32
32
|
], usesInheritance: true, ngImport: i0, template: "<input\n class=\"form-check-input\"\n [ngClass]=\"{ 'form-check-indeterminate': isIndeterminate, 'form-check-no-label-text': !_labelText }\"\n [checked]=\"_innerValue\"\n (change)=\"change()\"\n type=\"checkbox\"\n [attr.tabindex]=\"tabIndex\"\n [disabled]=\"_disabled\" />\n@if (_labelText) {\n <span class=\"form-check-label\">{{ _labelText }}</span>\n}\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
33
33
|
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyCheckbox, decorators: [{
|
|
35
35
|
type: Component,
|
|
36
36
|
args: [{ selector: 'thy-checkbox,[thy-checkbox],[thyCheckbox]', providers: [
|
|
37
37
|
{
|
|
@@ -48,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
48
48
|
type: Input,
|
|
49
49
|
args: [{ transform: coerceBooleanProperty }]
|
|
50
50
|
}] } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUV4RDs7OztHQUlHO0FBbUJILE1BQU0sT0FBTyxXQUFZLFNBQVEseUJBQXlCO0lBbEIxRDs7UUFtQkksb0JBQWUsR0FBRyxLQUFLLENBQUM7S0FXM0I7SUFURzs7OztPQUlHO0lBQ0gsSUFDSSxnQkFBZ0IsQ0FBQyxLQUFjO1FBQy9CLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7K0dBWFEsV0FBVzttR0FBWCxXQUFXLGtKQVFBLHFCQUFxQixnSUF2QjlCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7Z0JBQzFDLEtBQUssRUFBRSxJQUFJO2FBQ2Q7U0FDSixpRENwQkwsMFlBWUEsNENEZWMsT0FBTzs7NEZBRVIsV0FBVztrQkFsQnZCLFNBQVM7K0JBQ0ksMkNBQTJDLGFBRTFDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQzs0QkFDMUMsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0osUUFDSzt3QkFDRixpQkFBaUIsRUFBRSxJQUFJO3dCQUN2QixLQUFLLEVBQUUsY0FBYzt3QkFDckIsa0JBQWtCLEVBQUUsV0FBVztxQkFDbEMsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxPQUFPLENBQUM7OEJBV2QsZ0JBQWdCO3NCQURuQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUaHlGb3JtQ2hlY2tCYXNlQ29tcG9uZW50IH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuXG4vKipcbiAqIOWkmumAieahhue7hOS7tlxuICogQG5hbWUgdGh5LWNoZWNrYm94LFt0aHktY2hlY2tib3hdLFt0aHlDaGVja2JveF1cbiAqIEBvcmRlciAxMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1jaGVja2JveCxbdGh5LWNoZWNrYm94XSxbdGh5Q2hlY2tib3hdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoeUNoZWNrYm94KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6ICctMScsXG4gICAgICAgIGNsYXNzOiAndGh5LWNoZWNrYm94JyxcbiAgICAgICAgJ1tjbGFzcy5kaXNhYmxlZF0nOiAnX2Rpc2FibGVkJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdDbGFzc11cbn0pXG5leHBvcnQgY2xhc3MgVGh5Q2hlY2tib3ggZXh0ZW5kcyBUaHlGb3JtQ2hlY2tCYXNlQ29tcG9uZW50IHtcbiAgICBpc0luZGV0ZXJtaW5hdGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOiuvue9riBpbmRldGVybWluYXRlIOeKtuaAge+8jOWPqui0n+i0o+agt+W8j+aOp+WItlxuICAgICAqIEBkZXNjcmlwdGlvbi5lbi11cyBTZXQgdGhlIGluZGV0ZXJtaW5hdGUgc3RhdGUsIHJlc3BvbnNpYmxlIG9ubHkgZm9yIHN0eWxlIGNvbnRyb2xcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgc2V0IHRoeUluZGV0ZXJtaW5hdGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUgPSB2YWx1ZTtcbiAgICB9XG59XG4iLCI8aW5wdXRcbiAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcbiAgW25nQ2xhc3NdPVwieyAnZm9ybS1jaGVjay1pbmRldGVybWluYXRlJzogaXNJbmRldGVybWluYXRlLCAnZm9ybS1jaGVjay1uby1sYWJlbC10ZXh0JzogIV9sYWJlbFRleHQgfVwiXG4gIFtjaGVja2VkXT1cIl9pbm5lclZhbHVlXCJcbiAgKGNoYW5nZSk9XCJjaGFuZ2UoKVwiXG4gIHR5cGU9XCJjaGVja2JveFwiXG4gIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4XCJcbiAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiIC8+XG5AaWYgKF9sYWJlbFRleHQpIHtcbiAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+e3sgX2xhYmVsVGV4dCB9fTwvc3Bhbj5cbn1cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
|
|
@@ -4,15 +4,15 @@ import { FormsModule } from '@angular/forms';
|
|
|
4
4
|
import { ThyCheckbox } from './checkbox.component';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class ThyCheckboxModule {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
8
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
9
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ThyCheckboxModule, imports: [CommonModule, FormsModule, ThyCheckbox], exports: [ThyCheckbox] }); }
|
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyCheckboxModule, imports: [CommonModule, FormsModule] }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyCheckboxModule, decorators: [{
|
|
12
12
|
type: NgModule,
|
|
13
13
|
args: [{
|
|
14
14
|
imports: [CommonModule, FormsModule, ThyCheckbox],
|
|
15
15
|
exports: [ThyCheckbox]
|
|
16
16
|
}]
|
|
17
17
|
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoZWNrYm94L21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQU1uRCxNQUFNLE9BQU8saUJBQWlCOytHQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQixZQUhoQixZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsYUFDdEMsV0FBVztnSEFFWixpQkFBaUIsWUFIaEIsWUFBWSxFQUFFLFdBQVc7OzRGQUcxQixpQkFBaUI7a0JBSjdCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUM7b0JBQ2pELE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGh5Q2hlY2tib3ggfSBmcm9tICcuL2NoZWNrYm94LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFRoeUNoZWNrYm94XSxcbiAgICBleHBvcnRzOiBbVGh5Q2hlY2tib3hdXG59KVxuZXhwb3J0IGNsYXNzIFRoeUNoZWNrYm94TW9kdWxlIHt9XG4iXX0=
|
|
@@ -57,10 +57,10 @@ export class ThyCollapseItem {
|
|
|
57
57
|
ngOnDestroy() {
|
|
58
58
|
this.thyCollapseComponent.removePanel(this);
|
|
59
59
|
}
|
|
60
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
61
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
60
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyCollapseItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
61
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ThyCollapseItem, isStandalone: true, selector: "thy-collapse-panel, thy-collapse-item", inputs: { thyTitle: "thyTitle", thyActive: ["thyActive", "thyActive", coerceBooleanProperty], thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty], thyHeaderTemplate: "thyHeaderTemplate", thyArrowIcon: "thyArrowIcon", thyExtra: "thyExtra" }, outputs: { thyActiveChange: "thyActiveChange" }, host: { properties: { "class.thy-collapse-item": "true", "class.thy-collapse-no-arrow": "!showArrow", "class.thy-collapse-item-active": "thyActive", "class.thy-collapse-item-disabled": "thyDisabled" } }, exportAs: ["ThyCollapseComponent"], ngImport: i0, template: "<div class=\"thy-collapse-header\" (click)=\"activeChange($event)\">\n @if (showArrow) {\n @if (arrowIconTemplate) {\n <ng-template [ngTemplateOutlet]=\"arrowIconTemplate\"></ng-template>\n } @else {\n <thy-icon [thyIconName]=\"arrowIcon || 'angle-right'\" class=\"thy-collapse-icon\" [thyIconRotate]=\"thyActive ? -90 : 0\"></thy-icon>\n }\n }\n\n @if (thyHeaderTemplate) {\n <ng-template [ngTemplateOutlet]=\"thyHeaderTemplate\"></ng-template>\n } @else {\n <ng-container>\n <span class=\"d-flex thy-collapse-title\"> {{ thyTitle }}</span></ng-container\n >\n }\n\n @if (thyExtra) {\n <div class=\"thy-collapse-extra\">\n <ng-template [ngTemplateOutlet]=\"thyExtra\"></ng-template>\n </div>\n }\n </div>\n <div class=\"thy-collapse-content\" [@collapseMotion]=\"thyActive ? 'expanded' : 'hidden'\">\n <div class=\"thy-collapse-content-box\">\n <ng-content></ng-content>\n </div>\n </div>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], animations: [collapseMotion], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
62
62
|
}
|
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyCollapseItem, decorators: [{
|
|
64
64
|
type: Component,
|
|
65
65
|
args: [{ selector: 'thy-collapse-panel, thy-collapse-item', exportAs: 'ThyCollapseComponent', animations: [collapseMotion], host: {
|
|
66
66
|
'[class.thy-collapse-item]': 'true',
|
|
@@ -85,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
85
85
|
}], thyActiveChange: [{
|
|
86
86
|
type: Output
|
|
87
87
|
}] } });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2UtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29sbGFwc2UvY29sbGFwc2UtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29sbGFwc2UvY29sbGFwc2UtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLHVCQUF1QixFQUN2QixLQUFLLEVBR0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRW5ELE1BQU0sa0JBQWtCLEdBQUcsYUFBYSxDQUFDO0FBRXpDOzs7O0dBSUc7QUFnQkgsTUFBTSxPQUFPLGVBQWU7SUFmNUI7UUFnQlksUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU1RCxjQUFTLEdBQVksSUFBSSxDQUFDO1FBSTFCLGNBQVMsR0FBVyxrQkFBa0IsQ0FBQztRQU85Qzs7V0FFRztRQUMwQyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBcUN4RTs7V0FFRztRQUNPLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQXFDLENBQUM7S0FtQnJGO0lBN0NHOzs7T0FHRztJQUNILElBQ0ksWUFBWSxDQUFDLEtBQThDO1FBQzNELElBQUksS0FBSyxZQUFZLFdBQVcsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUE2QixDQUFDO1FBQzNELENBQUM7YUFBTSxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBZSxDQUFDO1FBQ3JDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztZQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLGtCQUFrQixDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDO0lBYUQsUUFBUTtRQUNKLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBWTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pELENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQzsrR0E1RVEsZUFBZTttR0FBZixlQUFlLCtJQWtCSixxQkFBcUIsK0NBTXJCLHFCQUFxQiwwWkNuRTdDLDQ4QkE0QkEsNENEYWMsZ0JBQWdCLG9KQUFFLE9BQU8sd0xBVHZCLENBQUMsY0FBYyxDQUFDOzs0RkFXbkIsZUFBZTtrQkFmM0IsU0FBUzsrQkFDSSx1Q0FBdUMsWUFFdkMsc0JBQXNCLGNBQ3BCLENBQUMsY0FBYyxDQUFDLFFBQ3RCO3dCQUNGLDJCQUEyQixFQUFFLE1BQU07d0JBQ25DLCtCQUErQixFQUFFLFlBQVk7d0JBQzdDLGtDQUFrQyxFQUFFLFdBQVc7d0JBQy9DLG9DQUFvQyxFQUFFLGFBQWE7cUJBQ3RELG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQzs4QkFlM0IsUUFBUTtzQkFBaEIsS0FBSztnQkFLdUMsU0FBUztzQkFBckQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFNRSxXQUFXO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQU1sQyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBT0YsWUFBWTtzQkFEZixLQUFLO2dCQWlCRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2xsYXBzZU1vdGlvbiB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFRoeUNvbGxhcHNlIH0gZnJvbSAnLi9jb2xsYXBzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2FmZUFueSB9IGZyb20gJ25neC10ZXRoeXMvdHlwZXMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBpc1N0cmluZyB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5jb25zdCBERUZBVUxUX0FSUk9XX0lDT04gPSAnYW5nbGUtcmlnaHQnO1xuXG4vKipcbiAqIOaKmOWPoOmdouadv+mhuee7hOS7tlxuICogQG5hbWUgdGh5LWNvbGxhcHNlLXBhbmVsLHRoeS1jb2xsYXBzZS1pdGVtXG4gKiBAb3JkZXIgMjBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktY29sbGFwc2UtcGFuZWwsIHRoeS1jb2xsYXBzZS1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sbGFwc2UtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgZXhwb3J0QXM6ICdUaHlDb2xsYXBzZUNvbXBvbmVudCcsXG4gICAgYW5pbWF0aW9uczogW2NvbGxhcHNlTW90aW9uXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MudGh5LWNvbGxhcHNlLWl0ZW1dJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLnRoeS1jb2xsYXBzZS1uby1hcnJvd10nOiAnIXNob3dBcnJvdycsXG4gICAgICAgICdbY2xhc3MudGh5LWNvbGxhcHNlLWl0ZW0tYWN0aXZlXSc6ICd0aHlBY3RpdmUnLFxuICAgICAgICAnW2NsYXNzLnRoeS1jb2xsYXBzZS1pdGVtLWRpc2FibGVkXSc6ICd0aHlEaXNhYmxlZCdcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIFRoeUljb25dXG59KVxuZXhwb3J0IGNsYXNzIFRoeUNvbGxhcHNlSXRlbSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJpdmF0ZSB0aHlDb2xsYXBzZUNvbXBvbmVudCA9IGluamVjdChUaHlDb2xsYXBzZSwgeyBob3N0OiB0cnVlIH0pO1xuXG4gICAgcHVibGljIHNob3dBcnJvdzogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBwdWJsaWMgYXJyb3dJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPFNhZmVBbnk+O1xuXG4gICAgcHVibGljIGFycm93SWNvbjogc3RyaW5nID0gREVGQVVMVF9BUlJPV19JQ09OO1xuXG4gICAgLyoqXG4gICAgICog5qCH6aKYXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5VGl0bGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuWkhOS6jua/gOa0u+WxleW8gOeKtuaAgVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm56aB55So5b2T5YmN6Z2i5p2/XG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlEaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOiHquWumuS5iemdouadv+WktFxuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5SGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPFNhZmVBbnk+O1xuXG4gICAgLyoqXG4gICAgICog6Ieq5a6a5LmJ566t5aS0KOWxleW8gOaUtui1tynlm77moIfvvIzorr7nva7kuLogZmFsc2Ug6KGo56S66ZqQ6JeP5Zu+5qCHXG4gICAgICogQHR5cGUge3N0cmluZyB8IFRlbXBsYXRlUmVmPFNhZmVBbnk+IHwgZmFsc2V9XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5QXJyb3dJY29uKHZhbHVlOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxTYWZlQW55PiB8IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuYXJyb3dJY29uVGVtcGxhdGUgPSB2YWx1ZSBhcyBUZW1wbGF0ZVJlZjxTYWZlQW55PjtcbiAgICAgICAgfSBlbHNlIGlmIChpc1N0cmluZyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuYXJyb3dJY29uID0gdmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zaG93QXJyb3cgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuYXJyb3dJY29uVGVtcGxhdGUgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5hcnJvd0ljb24gPSBERUZBVUxUX0FSUk9XX0lDT047XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDpop3lpJbpmYTliqDmqKHmnb9cbiAgICAgKiBAdHlwZSBUZW1wbGF0ZVJlZlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUV4dHJhOiBUZW1wbGF0ZVJlZjxTYWZlQW55PjtcblxuICAgIC8qKlxuICAgICAqIOWxleW8gOaUtui1t+S6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlBY3RpdmVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgYWN0aXZlOiBib29sZWFuOyBldmVudDogRXZlbnQgfT4oKTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnRoeUNvbGxhcHNlQ29tcG9uZW50LmFkZFBhbmVsKHRoaXMpO1xuICAgIH1cblxuICAgIG1hcmtGb3JDaGVjaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgYWN0aXZlQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAoIXRoaXMudGh5RGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMudGh5Q29sbGFwc2VDb21wb25lbnQuY2xpY2sodGhpcywgZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGh5Q29sbGFwc2VDb21wb25lbnQucmVtb3ZlUGFuZWwodGhpcyk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRoeS1jb2xsYXBzZS1oZWFkZXJcIiAoY2xpY2spPVwiYWN0aXZlQ2hhbmdlKCRldmVudClcIj5cbiAgQGlmIChzaG93QXJyb3cpIHtcbiAgICBAaWYgKGFycm93SWNvblRlbXBsYXRlKSB7XG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYXJyb3dJY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJhcnJvd0ljb24gfHwgJ2FuZ2xlLXJpZ2h0J1wiIGNsYXNzPVwidGh5LWNvbGxhcHNlLWljb25cIiBbdGh5SWNvblJvdGF0ZV09XCJ0aHlBY3RpdmUgPyAtOTAgOiAwXCI+PC90aHktaWNvbj5cbiAgICB9XG4gIH1cblxuICBAaWYgKHRoeUhlYWRlclRlbXBsYXRlKSB7XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRoeUhlYWRlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgfSBAZWxzZSB7XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZC1mbGV4IHRoeS1jb2xsYXBzZS10aXRsZVwiPiB7eyB0aHlUaXRsZSB9fTwvc3Bhbj48L25nLWNvbnRhaW5lclxuICAgICAgPlxuICAgIH1cblxuICAgIEBpZiAodGh5RXh0cmEpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJ0aHktY29sbGFwc2UtZXh0cmFcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRoeUV4dHJhXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ0aHktY29sbGFwc2UtY29udGVudFwiIFtAY29sbGFwc2VNb3Rpb25dPVwidGh5QWN0aXZlID8gJ2V4cGFuZGVkJyA6ICdoaWRkZW4nXCI+XG4gICAgPGRpdiBjbGFzcz1cInRoeS1jb2xsYXBzZS1jb250ZW50LWJveFwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiJdfQ==
|
|
@@ -41,14 +41,14 @@ export class ThyCollapse {
|
|
|
41
41
|
collapseItem.thyActive = !collapseItem.thyActive;
|
|
42
42
|
collapseItem.thyActiveChange.emit({ active: collapseItem.thyActive, event });
|
|
43
43
|
}
|
|
44
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
45
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.
|
|
44
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyCollapse, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: ThyCollapse, isStandalone: true, selector: "thy-collapse", inputs: { thyTheme: "thyTheme", thyAccordion: ["thyAccordion", "thyAccordion", coerceBooleanProperty], thyArrowIconPosition: "thyArrowIconPosition" }, host: { properties: { "class.thy-collapse-divided": "thyTheme === 'divided'", "class.thy-collapse-bordered": "thyTheme === 'bordered'", "class.thy-collapse-ghost": "thyTheme === 'ghost'", "class.thy-collapse-icon-position-right": "thyArrowIconPosition === 'right'", "class.thy-collapse-icon-position-left": "thyArrowIconPosition === 'left'" }, classAttribute: "thy-collapse" }, ngImport: i0, template: `
|
|
46
46
|
<ng-container>
|
|
47
47
|
<ng-content></ng-content>
|
|
48
48
|
</ng-container>
|
|
49
49
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
50
50
|
}
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyCollapse, decorators: [{
|
|
52
52
|
type: Component,
|
|
53
53
|
args: [{
|
|
54
54
|
selector: 'thy-collapse',
|
|
@@ -76,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
76
76
|
}], thyArrowIconPosition: [{
|
|
77
77
|
type: Input
|
|
78
78
|
}] } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbGxhcHNlL2NvbGxhcHNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUdsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFNeEQ7Ozs7R0FJRztBQW1CSCxNQUFNLE9BQU8sV0FBVztJQW9CcEI7UUFuQkE7O1dBRUc7UUFDTSxhQUFRLEdBQXFCLFNBQVMsQ0FBQztRQVFoRDs7O1dBR0c7UUFDTSx5QkFBb0IsR0FBNkIsTUFBTSxDQUFDO1FBRXpELGlDQUE0QixHQUFzQixFQUFFLENBQUM7SUFFOUMsQ0FBQztJQUVoQixRQUFRLEtBQUksQ0FBQztJQUViLFFBQVEsQ0FBQyxLQUFzQjtRQUMzQixJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxXQUFXLENBQUMsS0FBc0I7UUFDOUIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBNkIsRUFBRSxLQUFZO1FBQzdDLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsNEJBQTRCO2lCQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDO2lCQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ1osSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO29CQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7b0JBQ3JFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDeEIsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQztRQUNELFlBQVksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQ2pELFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDOytHQTlDUSxXQUFXO21HQUFYLFdBQVcsK0hBVUEscUJBQXFCLHFjQTFCL0I7Ozs7S0FJVDs7NEZBWVEsV0FBVztrQkFsQnZCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFFBQVEsRUFBRTs7OztLQUlUO29CQUNELElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsY0FBYzt3QkFDckIsOEJBQThCLEVBQUUsd0JBQXdCO3dCQUN4RCwrQkFBK0IsRUFBRSx5QkFBeUI7d0JBQzFELDRCQUE0QixFQUFFLHNCQUFzQjt3QkFDcEQsMENBQTBDLEVBQUUsa0NBQWtDO3dCQUM5RSx5Q0FBeUMsRUFBRSxpQ0FBaUM7cUJBQy9FO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7d0RBS1ksUUFBUTtzQkFBaEIsS0FBSztnQkFNdUMsWUFBWTtzQkFBeEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFNbEMsb0JBQW9CO3NCQUE1QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUaHlDb2xsYXBzZUl0ZW0gfSBmcm9tICcuL2NvbGxhcHNlLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmV4cG9ydCB0eXBlIFRoeUNvbGxhcHNlVGhlbWUgPSAnZGl2aWRlZCcgfCAnYm9yZGVyZWQnIHwgJ2dob3N0JztcblxuZXhwb3J0IHR5cGUgVGh5Q29sbGFwc2VkSWNvblBvc2l0aW9uID0gJ2xlZnQnIHwgJ3JpZ2h0JztcblxuLyoqXG4gKiDmipjlj6DpnaLmnb/nu4Tku7ZcbiAqIEBuYW1lIHRoeS1jb2xsYXBzZVxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWNvbGxhcHNlJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICBgLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktY29sbGFwc2UnLFxuICAgICAgICAnW2NsYXNzLnRoeS1jb2xsYXBzZS1kaXZpZGVkXSc6IGB0aHlUaGVtZSA9PT0gJ2RpdmlkZWQnYCxcbiAgICAgICAgJ1tjbGFzcy50aHktY29sbGFwc2UtYm9yZGVyZWRdJzogYHRoeVRoZW1lID09PSAnYm9yZGVyZWQnYCxcbiAgICAgICAgJ1tjbGFzcy50aHktY29sbGFwc2UtZ2hvc3RdJzogYHRoeVRoZW1lID09PSAnZ2hvc3QnYCxcbiAgICAgICAgJ1tjbGFzcy50aHktY29sbGFwc2UtaWNvbi1wb3NpdGlvbi1yaWdodF0nOiBgdGh5QXJyb3dJY29uUG9zaXRpb24gPT09ICdyaWdodCdgLFxuICAgICAgICAnW2NsYXNzLnRoeS1jb2xsYXBzZS1pY29uLXBvc2l0aW9uLWxlZnRdJzogYHRoeUFycm93SWNvblBvc2l0aW9uID09PSAnbGVmdCdgXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeUNvbGxhcHNlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiDmipjlj6DpnaLmnb/kuLvpopjvvIzmlK/mjIEgYGRpdmlkZWRgIHwgYGJvcmRlcmVkYCB8IGBnaG9zdGBcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUaGVtZTogVGh5Q29sbGFwc2VUaGVtZSA9ICdkaXZpZGVkJztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuS4uuaJi+mjjueQtOaooeW8j++8jOaJi+mjjueQtOaooeW8j+S4i++8jOWPquiDveWxleW8gOS4gOS4qumdouadv1xuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5QWNjb3JkaW9uOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5bGV5byA5pS26LW35Zu+5qCH55qE5L2N572uXG4gICAgICogQHR5cGUgbGVmdCB8IHJpZ2h0XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5QXJyb3dJY29uUG9zaXRpb246IFRoeUNvbGxhcHNlZEljb25Qb3NpdGlvbiA9ICdsZWZ0JztcblxuICAgIHByaXZhdGUgbGlzdE9mQ29sbGFwc2VQYW5lbENvbXBvbmVudDogVGh5Q29sbGFwc2VJdGVtW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIG5nT25Jbml0KCkge31cblxuICAgIGFkZFBhbmVsKHZhbHVlOiBUaHlDb2xsYXBzZUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5saXN0T2ZDb2xsYXBzZVBhbmVsQ29tcG9uZW50LnB1c2godmFsdWUpO1xuICAgIH1cblxuICAgIHJlbW92ZVBhbmVsKHZhbHVlOiBUaHlDb2xsYXBzZUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5saXN0T2ZDb2xsYXBzZVBhbmVsQ29tcG9uZW50LnNwbGljZSh0aGlzLmxpc3RPZkNvbGxhcHNlUGFuZWxDb21wb25lbnQuaW5kZXhPZih2YWx1ZSksIDEpO1xuICAgIH1cblxuICAgIGNsaWNrKGNvbGxhcHNlSXRlbTogVGh5Q29sbGFwc2VJdGVtLCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudGh5QWNjb3JkaW9uICYmICFjb2xsYXBzZUl0ZW0udGh5QWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RPZkNvbGxhcHNlUGFuZWxDb21wb25lbnRcbiAgICAgICAgICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gY29sbGFwc2VJdGVtKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS50aHlBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0udGh5QWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnRoeUFjdGl2ZUNoYW5nZS5lbWl0KHsgYWN0aXZlOiBjb2xsYXBzZUl0ZW0udGh5QWN0aXZlLCBldmVudCB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb2xsYXBzZUl0ZW0udGh5QWN0aXZlID0gIWNvbGxhcHNlSXRlbS50aHlBY3RpdmU7XG4gICAgICAgIGNvbGxhcHNlSXRlbS50aHlBY3RpdmVDaGFuZ2UuZW1pdCh7IGFjdGl2ZTogY29sbGFwc2VJdGVtLnRoeUFjdGl2ZSwgZXZlbnQgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -8,15 +8,15 @@ import { ThyCollapseItem } from './collapse-item.component';
|
|
|
8
8
|
import { ThyCollapse } from './collapse.component';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
export class ThyCollapseModule {
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
12
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
13
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyCollapseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ThyCollapseModule, imports: [CommonModule, FormsModule, OverlayModule, ThyInputModule, ThyIconModule, ThyCollapse, ThyCollapseItem], exports: [ThyCollapse, ThyCollapseItem] }); }
|
|
13
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyCollapseModule, imports: [CommonModule, FormsModule, OverlayModule, ThyInputModule, ThyIconModule, ThyCollapseItem] }); }
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyCollapseModule, decorators: [{
|
|
16
16
|
type: NgModule,
|
|
17
17
|
args: [{
|
|
18
18
|
imports: [CommonModule, FormsModule, OverlayModule, ThyInputModule, ThyIconModule, ThyCollapse, ThyCollapseItem],
|
|
19
19
|
exports: [ThyCollapse, ThyCollapseItem]
|
|
20
20
|
}]
|
|
21
21
|
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbGxhcHNlL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFNbkQsTUFBTSxPQUFPLGlCQUFpQjsrR0FBakIsaUJBQWlCO2dIQUFqQixpQkFBaUIsWUFIaEIsWUFBWSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsZUFBZSxhQUNyRyxXQUFXLEVBQUUsZUFBZTtnSEFFN0IsaUJBQWlCLFlBSGhCLFlBQVksRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQWUsZUFBZTs7NEZBR3RHLGlCQUFpQjtrQkFKN0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxlQUFlLENBQUM7b0JBQ2hILE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUM7aUJBQzFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGh5SWNvbk1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlJbnB1dE1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvaW5wdXQnO1xuXG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgVGh5Q29sbGFwc2VJdGVtIH0gZnJvbSAnLi9jb2xsYXBzZS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHlDb2xsYXBzZSB9IGZyb20gJy4vY29sbGFwc2UuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgT3ZlcmxheU1vZHVsZSwgVGh5SW5wdXRNb2R1bGUsIFRoeUljb25Nb2R1bGUsIFRoeUNvbGxhcHNlLCBUaHlDb2xsYXBzZUl0ZW1dLFxuICAgIGV4cG9ydHM6IFtUaHlDb2xsYXBzZSwgVGh5Q29sbGFwc2VJdGVtXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlDb2xsYXBzZU1vZHVsZSB7fVxuIl19
|