ngx-tethys 18.0.0-next.2 → 18.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -5
- package/cascader/cascader.component.d.ts +6 -6
- package/dropdown/dropdown.directive.d.ts +3 -3
- package/esm2022/action/action.component.mjs +3 -3
- package/esm2022/action/action.module.mjs +4 -4
- package/esm2022/action/actions.component.mjs +3 -3
- package/esm2022/affix/affix.component.mjs +3 -3
- package/esm2022/affix/affix.module.mjs +4 -4
- package/esm2022/alert/alert.component.mjs +3 -3
- package/esm2022/alert/alert.directive.mjs +3 -3
- package/esm2022/alert/alert.module.mjs +4 -4
- package/esm2022/anchor/anchor-link.component.mjs +3 -3
- package/esm2022/anchor/anchor.component.mjs +3 -3
- package/esm2022/anchor/anchor.module.mjs +4 -4
- package/esm2022/arrow-switcher/arrow-switcher.component.mjs +3 -3
- package/esm2022/arrow-switcher/module.mjs +4 -4
- package/esm2022/autocomplete/autocomplete.component.mjs +3 -3
- package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +3 -3
- package/esm2022/autocomplete/module.mjs +4 -4
- package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +3 -3
- package/esm2022/autocomplete/overlay/autocomplete.service.mjs +3 -3
- package/esm2022/avatar/avatar-list/avatar-list.component.mjs +3 -3
- package/esm2022/avatar/avatar.component.mjs +3 -3
- package/esm2022/avatar/avatar.module.mjs +4 -4
- package/esm2022/avatar/avatar.pipe.mjs +9 -9
- package/esm2022/avatar/avatar.service.mjs +3 -3
- package/esm2022/back-top/back-top.component.mjs +3 -3
- package/esm2022/back-top/back-top.module.mjs +4 -4
- package/esm2022/badge/badge.component.mjs +3 -3
- package/esm2022/badge/badge.module.mjs +4 -4
- package/esm2022/breadcrumb/breadcrumb-item.component.mjs +3 -3
- package/esm2022/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/breadcrumb/module.mjs +4 -4
- package/esm2022/button/button-group.component.mjs +3 -3
- package/esm2022/button/button-icon.component.mjs +3 -3
- package/esm2022/button/button.component.mjs +3 -3
- package/esm2022/button/button.module.mjs +4 -4
- package/esm2022/calendar/calendar-cells.mjs +6 -6
- package/esm2022/calendar/calendar-header.component.mjs +3 -3
- package/esm2022/calendar/calendar.component.mjs +3 -3
- package/esm2022/calendar/module.mjs +4 -4
- package/esm2022/card/card.component.mjs +3 -3
- package/esm2022/card/card.module.mjs +4 -4
- package/esm2022/card/content.component.mjs +3 -3
- package/esm2022/card/header.component.mjs +3 -3
- package/esm2022/carousel/carousel-item.directive.mjs +3 -3
- package/esm2022/carousel/carousel.component.mjs +3 -3
- package/esm2022/carousel/carousel.service.mjs +3 -3
- package/esm2022/carousel/module.mjs +4 -4
- package/esm2022/cascader/cascader-li.component.mjs +3 -3
- package/esm2022/cascader/cascader-search-option.component.mjs +3 -3
- package/esm2022/cascader/cascader.component.mjs +13 -13
- package/esm2022/cascader/cascader.service.mjs +3 -3
- package/esm2022/cascader/module.mjs +4 -4
- package/esm2022/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/checkbox/module.mjs +4 -4
- package/esm2022/collapse/collapse-item.component.mjs +3 -3
- package/esm2022/collapse/collapse.component.mjs +3 -3
- package/esm2022/collapse/module.mjs +4 -4
- package/esm2022/color-picker/color-picker-custom-panel.component.mjs +3 -3
- package/esm2022/color-picker/color-picker-panel.component.mjs +3 -3
- package/esm2022/color-picker/color-picker.component.mjs +3 -3
- package/esm2022/color-picker/coordinates.directive.mjs +3 -3
- package/esm2022/color-picker/module.mjs +4 -4
- package/esm2022/color-picker/parts/alpha/alpha.component.mjs +3 -3
- package/esm2022/color-picker/parts/hue/hue.component.mjs +3 -3
- package/esm2022/color-picker/parts/indicator/indicator.component.mjs +3 -3
- package/esm2022/color-picker/parts/inputs/inputs.component.mjs +3 -3
- package/esm2022/color-picker/parts/saturation/saturation.component.mjs +3 -3
- package/esm2022/comment/comment-actions.directive.mjs +3 -3
- package/esm2022/comment/comment-content.directive.mjs +3 -3
- package/esm2022/comment/comment.component.mjs +3 -3
- package/esm2022/comment/comment.module.mjs +4 -4
- package/esm2022/copy/copy.directive.mjs +3 -3
- package/esm2022/copy/module.mjs +4 -4
- package/esm2022/core/click-positioner.mjs +3 -3
- package/esm2022/core/overlay/portal-directives.mjs +3 -3
- package/esm2022/core/scroll.mjs +3 -3
- package/esm2022/core/store/store.mjs +3 -3
- package/esm2022/core/translate.mjs +3 -3
- package/esm2022/core/update-host-class.service.mjs +3 -3
- package/esm2022/date-picker/abstract-picker.component.mjs +3 -3
- package/esm2022/date-picker/abstract-picker.directive.mjs +3 -3
- package/esm2022/date-picker/base-picker.component.mjs +3 -3
- package/esm2022/date-picker/date-helper.service.mjs +3 -3
- package/esm2022/date-picker/date-picker.component.mjs +3 -3
- package/esm2022/date-picker/date-picker.directive.mjs +3 -3
- package/esm2022/date-picker/date-picker.module.mjs +4 -4
- package/esm2022/date-picker/date-picker.service.mjs +3 -3
- package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +3 -3
- package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +3 -3
- package/esm2022/date-picker/lib/calendar/calendar-table.component.mjs +3 -3
- package/esm2022/date-picker/lib/date/date-header.component.mjs +3 -3
- package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +3 -3
- package/esm2022/date-picker/lib/date/date-table.component.mjs +3 -3
- package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +3 -3
- package/esm2022/date-picker/lib/decade/decade-header.component.mjs +3 -3
- package/esm2022/date-picker/lib/decade/decade-table.component.mjs +3 -3
- package/esm2022/date-picker/lib/lib-packer.module.mjs +4 -4
- package/esm2022/date-picker/lib/month/month-header.component.mjs +3 -3
- package/esm2022/date-picker/lib/month/month-table.component.mjs +3 -3
- package/esm2022/date-picker/lib/popups/date-popup.component.mjs +3 -3
- package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +3 -3
- package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +3 -3
- package/esm2022/date-picker/lib/year/year-header.component.mjs +3 -3
- package/esm2022/date-picker/lib/year/year-table.component.mjs +3 -3
- package/esm2022/date-picker/month-picker.component.mjs +3 -3
- package/esm2022/date-picker/picker.component.mjs +3 -3
- package/esm2022/date-picker/picker.pipes.mjs +12 -12
- package/esm2022/date-picker/picker.validators.mjs +6 -6
- package/esm2022/date-picker/quarter-picker.component.mjs +3 -3
- package/esm2022/date-picker/range-picker.component.mjs +3 -3
- package/esm2022/date-picker/range-picker.directive.mjs +3 -3
- package/esm2022/date-picker/week-picker.component.mjs +3 -3
- package/esm2022/date-picker/year-picker.component.mjs +3 -3
- package/esm2022/date-range/date-range.component.mjs +3 -3
- package/esm2022/date-range/module.mjs +4 -4
- package/esm2022/date-range/optional-dates/optional-dates.component.mjs +3 -3
- package/esm2022/dialog/body/dialog-body.component.mjs +3 -3
- package/esm2022/dialog/confirm/confirm.component.mjs +3 -3
- package/esm2022/dialog/dialog-container.component.mjs +3 -3
- package/esm2022/dialog/dialog.module.mjs +4 -4
- package/esm2022/dialog/dialog.service.mjs +3 -3
- package/esm2022/dialog/footer/dialog-footer.component.mjs +3 -3
- package/esm2022/dialog/header/dialog-header.component.mjs +3 -3
- package/esm2022/divider/divider.component.mjs +3 -3
- package/esm2022/divider/divider.module.mjs +4 -4
- package/esm2022/dot/dot.component.mjs +3 -3
- package/esm2022/dot/dot.module.mjs +4 -4
- package/esm2022/drag-drop/drag-content.directive.mjs +3 -3
- package/esm2022/drag-drop/drag-drop.service.mjs +3 -3
- package/esm2022/drag-drop/drag-handle.directive.mjs +3 -3
- package/esm2022/drag-drop/drag.directive.mjs +3 -3
- package/esm2022/drag-drop/drop-container.directive.mjs +3 -3
- package/esm2022/drag-drop/module.mjs +4 -4
- package/esm2022/dropdown/dropdown-active.directive.mjs +3 -3
- package/esm2022/dropdown/dropdown-menu-item.directive.mjs +21 -21
- package/esm2022/dropdown/dropdown-menu.component.mjs +12 -12
- package/esm2022/dropdown/dropdown-submenu.component.mjs +3 -3
- package/esm2022/dropdown/dropdown.directive.mjs +6 -6
- package/esm2022/dropdown/module.mjs +4 -4
- package/esm2022/empty/empty.component.mjs +3 -3
- package/esm2022/empty/empty.config.mjs +3 -3
- package/esm2022/empty/empty.module.mjs +4 -4
- package/esm2022/flexible-text/flexible-text.component.mjs +3 -3
- package/esm2022/flexible-text/flexible-text.module.mjs +4 -4
- package/esm2022/form/form-group-error/form-group-error.component.mjs +3 -3
- package/esm2022/form/form-group-label.directive.mjs +3 -3
- package/esm2022/form/form-group.component.mjs +3 -3
- package/esm2022/form/form-submit.directive.mjs +3 -3
- package/esm2022/form/form-validator-loader.mjs +3 -3
- package/esm2022/form/form-validator.service.mjs +3 -3
- package/esm2022/form/form.directive.mjs +3 -3
- package/esm2022/form/from-group-footer/form-group-footer.component.mjs +3 -3
- package/esm2022/form/module.mjs +4 -4
- package/esm2022/form/validator/confirm-validator.directive.mjs +3 -3
- package/esm2022/form/validator/max-validator.directive.mjs +3 -3
- package/esm2022/form/validator/min-validator.directive.mjs +3 -3
- package/esm2022/form/validator/unique-validator.directive.mjs +3 -3
- package/esm2022/fullscreen/fullscreen-launch.directive.mjs +3 -3
- package/esm2022/fullscreen/fullscreen.component.mjs +3 -3
- package/esm2022/fullscreen/fullscreen.module.mjs +4 -4
- package/esm2022/fullscreen/fullscreen.service.mjs +3 -3
- package/esm2022/grid/flex.mjs +12 -12
- package/esm2022/grid/module.mjs +4 -4
- package/esm2022/grid/thy-col.directive.mjs +3 -3
- package/esm2022/grid/thy-grid-item.component.mjs +3 -3
- package/esm2022/grid/thy-grid.component.mjs +6 -6
- package/esm2022/grid/thy-row.directive.mjs +3 -3
- package/esm2022/guider/guider-hint/guider-hint.component.mjs +3 -3
- package/esm2022/guider/guider-manager.mjs +3 -3
- package/esm2022/guider/guider.directive.mjs +3 -3
- package/esm2022/guider/guider.module.mjs +4 -4
- package/esm2022/guider/guider.service.mjs +3 -3
- package/esm2022/icon/icon-registry.mjs +3 -3
- package/esm2022/icon/icon.component.mjs +3 -3
- package/esm2022/icon/icon.module.mjs +4 -4
- package/esm2022/image/image-group.component.mjs +3 -3
- package/esm2022/image/image.directive.mjs +3 -3
- package/esm2022/image/image.service.mjs +3 -3
- package/esm2022/image/module.mjs +4 -4
- package/esm2022/image/preview/image-preview.component.mjs +3 -3
- package/esm2022/input/input-count.component.mjs +3 -3
- package/esm2022/input/input-group.component.mjs +3 -3
- package/esm2022/input/input-search.component.mjs +3 -3
- package/esm2022/input/input.component.mjs +3 -3
- package/esm2022/input/input.directive.mjs +3 -3
- package/esm2022/input/module.mjs +4 -4
- package/esm2022/input-number/input-number.component.mjs +3 -3
- package/esm2022/input-number/module.mjs +4 -4
- package/esm2022/layout/content-main.component.mjs +6 -6
- package/esm2022/layout/content-section.component.mjs +6 -6
- package/esm2022/layout/content.component.mjs +6 -6
- package/esm2022/layout/header.component.mjs +6 -6
- package/esm2022/layout/layout.component.mjs +6 -6
- package/esm2022/layout/layout.module.mjs +4 -4
- package/esm2022/layout/sidebar-content.component.mjs +6 -6
- package/esm2022/layout/sidebar-footer.component.mjs +6 -6
- package/esm2022/layout/sidebar-header.component.mjs +6 -6
- package/esm2022/layout/sidebar.component.mjs +6 -6
- package/esm2022/list/list-item-meta.component.mjs +3 -3
- package/esm2022/list/list-item.component.mjs +3 -3
- package/esm2022/list/list.component.mjs +3 -3
- package/esm2022/list/list.module.mjs +4 -4
- package/esm2022/list/selection/selection-list.mjs +3 -3
- package/esm2022/loading/loading.component.mjs +3 -3
- package/esm2022/loading/loading.module.mjs +4 -4
- package/esm2022/mention/mention.directive.mjs +3 -3
- package/esm2022/mention/mention.module.mjs +4 -4
- package/esm2022/mention/suggestions/suggestions.component.mjs +3 -3
- package/esm2022/menu/divider/menu-divider.component.mjs +3 -3
- package/esm2022/menu/group/menu-group.component.mjs +3 -3
- package/esm2022/menu/item/action/menu-item-action.component.mjs +3 -3
- package/esm2022/menu/item/icon/menu-item-icon.component.mjs +3 -3
- package/esm2022/menu/item/menu-item.component.mjs +3 -3
- package/esm2022/menu/item/name/menu-item-name.component.mjs +3 -3
- package/esm2022/menu/menu.component.mjs +3 -3
- package/esm2022/menu/menu.module.mjs +4 -4
- package/esm2022/message/abstract/abstract-message-container.component.mjs +3 -3
- package/esm2022/message/abstract/abstract-message.component.mjs +3 -3
- package/esm2022/message/message-container.component.mjs +3 -3
- package/esm2022/message/message-queue.service.mjs +3 -3
- package/esm2022/message/message.component.mjs +3 -3
- package/esm2022/message/message.service.mjs +3 -3
- package/esm2022/message/module.mjs +4 -4
- package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +3 -3
- package/esm2022/nav/icon-nav/icon-nav.component.mjs +3 -3
- package/esm2022/nav/nav-ink-bar.directive.mjs +3 -3
- package/esm2022/nav/nav-item.directive.mjs +3 -3
- package/esm2022/nav/nav.component.mjs +3 -3
- package/esm2022/nav/nav.module.mjs +4 -4
- package/esm2022/nav/nav.pipe.mjs +3 -3
- package/esm2022/notify/module.mjs +4 -4
- package/esm2022/notify/notify-container.component.mjs +3 -3
- package/esm2022/notify/notify-queue.service.mjs +3 -3
- package/esm2022/notify/notify.component.mjs +3 -3
- package/esm2022/notify/notify.service.mjs +3 -3
- package/esm2022/pagination/pagination.component.mjs +3 -3
- package/esm2022/pagination/pagination.module.mjs +4 -4
- package/esm2022/pagination/pagination.pipe.mjs +3 -3
- package/esm2022/popover/body/popover-body.component.mjs +3 -3
- package/esm2022/popover/header/popover-header.component.mjs +3 -3
- package/esm2022/popover/module.mjs +4 -4
- package/esm2022/popover/popover-container.component.mjs +3 -3
- package/esm2022/popover/popover.directive.mjs +3 -3
- package/esm2022/popover/popover.service.mjs +3 -3
- package/esm2022/progress/progress-circle.component.mjs +3 -3
- package/esm2022/progress/progress-strip.component.mjs +3 -3
- package/esm2022/progress/progress.component.mjs +3 -3
- package/esm2022/progress/progress.module.mjs +4 -4
- package/esm2022/property/module.mjs +4 -4
- package/esm2022/property/properties.component.mjs +3 -3
- package/esm2022/property/property-item.component.mjs +3 -3
- package/esm2022/property-operation/group/property-operation-group.component.mjs +3 -3
- package/esm2022/property-operation/module.mjs +4 -4
- package/esm2022/property-operation/property-operation.component.mjs +3 -3
- package/esm2022/radio/button/radio-button.component.mjs +3 -3
- package/esm2022/radio/group/radio-group.component.mjs +3 -3
- package/esm2022/radio/module.mjs +4 -4
- package/esm2022/radio/radio.component.mjs +3 -3
- package/esm2022/rate/module.mjs +4 -4
- package/esm2022/rate/rate-item.component.mjs +3 -3
- package/esm2022/rate/rate.component.mjs +3 -3
- package/esm2022/resizable/module.mjs +4 -4
- package/esm2022/resizable/resizable.directive.mjs +3 -3
- package/esm2022/resizable/resizable.service.mjs +3 -3
- package/esm2022/resizable/resize-handle.component.mjs +3 -3
- package/esm2022/resizable/resize-handles.component.mjs +3 -3
- package/esm2022/result/result.component.mjs +3 -3
- package/esm2022/result/result.module.mjs +4 -4
- package/esm2022/segment/segment-item.component.mjs +3 -3
- package/esm2022/segment/segment.component.mjs +3 -3
- package/esm2022/segment/segment.module.mjs +4 -4
- package/esm2022/select/custom-select/custom-select.component.mjs +3 -3
- package/esm2022/select/module.mjs +4 -4
- package/esm2022/select/native-select/native-select.component.mjs +3 -3
- package/esm2022/shared/base-form-check.component.mjs +3 -3
- package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +3 -3
- package/esm2022/shared/directives/thy-autofocus.directive.mjs +3 -3
- package/esm2022/shared/directives/thy-contextmenu.directive.mjs +3 -3
- package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +3 -3
- package/esm2022/shared/directives/thy-drag-drop.directive.mjs +3 -3
- package/esm2022/shared/directives/thy-enter.directive.mjs +3 -3
- package/esm2022/shared/directives/thy-scroll.directive.mjs +3 -3
- package/esm2022/shared/directives/thy-show.mjs +3 -3
- package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +3 -3
- package/esm2022/shared/directives/view-outlet.directive.mjs +3 -3
- package/esm2022/shared/ng-transclude.directive.mjs +3 -3
- package/esm2022/shared/option/group/option-group.component.mjs +3 -3
- package/esm2022/shared/option/list-option/list-option.component.mjs +3 -3
- package/esm2022/shared/option/module.mjs +4 -4
- package/esm2022/shared/option/option-group.component.mjs +3 -3
- package/esm2022/shared/option/option.component.mjs +3 -3
- package/esm2022/shared/option/options-container.component.mjs +3 -3
- package/esm2022/shared/select/module.mjs +4 -4
- package/esm2022/shared/select/select-control/select-control.component.mjs +6 -6
- package/esm2022/shared/shared.module.mjs +4 -4
- package/esm2022/skeleton/module.mjs +4 -4
- package/esm2022/skeleton/skeleton-circle.component.mjs +3 -3
- package/esm2022/skeleton/skeleton-rectangle.component.mjs +3 -3
- package/esm2022/skeleton/skeleton.component.mjs +3 -3
- package/esm2022/skeleton/stylized/bullet-list.component.mjs +3 -3
- package/esm2022/skeleton/stylized/list.component.mjs +3 -3
- package/esm2022/skeleton/stylized/paragraph.component.mjs +3 -3
- package/esm2022/slide/drawer/drawer-container.directive.mjs +3 -3
- package/esm2022/slide/slide-body/slide-body-section.component.mjs +3 -3
- package/esm2022/slide/slide-body/slide-body.component.mjs +3 -3
- package/esm2022/slide/slide-container.component.mjs +3 -3
- package/esm2022/slide/slide-footer/slide-footer.component.mjs +3 -3
- package/esm2022/slide/slide-header/slide-header.component.mjs +3 -3
- package/esm2022/slide/slide-layout/slide-layout.component.mjs +3 -3
- package/esm2022/slide/slide-ref.service.mjs +3 -3
- package/esm2022/slide/slide.module.mjs +4 -4
- package/esm2022/slide/slide.service.mjs +3 -3
- package/esm2022/slider/slider.component.mjs +3 -3
- package/esm2022/slider/slider.module.mjs +4 -4
- package/esm2022/space/space.component.mjs +6 -6
- package/esm2022/space/space.module.mjs +4 -4
- package/esm2022/statistic/statistic.component.mjs +3 -3
- package/esm2022/statistic/statistic.module.mjs +4 -4
- package/esm2022/stepper/step-header.component.mjs +9 -6
- package/esm2022/stepper/step.component.mjs +7 -5
- package/esm2022/stepper/stepper-button.directive.mjs +6 -6
- package/esm2022/stepper/stepper.component.mjs +6 -6
- package/esm2022/stepper/stepper.module.mjs +5 -5
- package/esm2022/strength/strength.component.mjs +3 -3
- package/esm2022/strength/strength.module.mjs +4 -4
- package/esm2022/switch/switch.component.mjs +3 -3
- package/esm2022/switch/switch.module.mjs +4 -4
- package/esm2022/table/pipes/drag.pipe.mjs +3 -3
- package/esm2022/table/pipes/table.pipe.mjs +3 -3
- package/esm2022/table/table-column.component.mjs +3 -3
- package/esm2022/table/table-skeleton.component.mjs +3 -3
- package/esm2022/table/table.component.mjs +5 -5
- package/esm2022/table/table.module.mjs +4 -4
- package/esm2022/tabs/tab-content.component.mjs +3 -3
- package/esm2022/tabs/tab.component.mjs +3 -3
- package/esm2022/tabs/tabs.component.mjs +3 -3
- package/esm2022/tabs/tabs.module.mjs +4 -4
- package/esm2022/tag/tag.component.mjs +3 -3
- package/esm2022/tag/tag.module.mjs +4 -4
- package/esm2022/tag/tags.component.mjs +3 -3
- package/esm2022/time-picker/inner/inner-time-picker.component.mjs +3 -3
- package/esm2022/time-picker/inner/inner-time-picker.config.mjs +3 -3
- package/esm2022/time-picker/inner/inner-time-picker.store.mjs +3 -3
- package/esm2022/time-picker/time-picker-panel.component.mjs +3 -3
- package/esm2022/time-picker/time-picker.component.mjs +3 -3
- package/esm2022/time-picker/time-picker.module.mjs +4 -4
- package/esm2022/timeline/timeline-item.component.mjs +3 -3
- package/esm2022/timeline/timeline.component.mjs +3 -3
- package/esm2022/timeline/timeline.module.mjs +4 -4
- package/esm2022/timeline/timeline.service.mjs +3 -3
- package/esm2022/tooltip/tooltip.component.mjs +3 -3
- package/esm2022/tooltip/tooltip.directive.mjs +3 -3
- package/esm2022/tooltip/tooltip.module.mjs +4 -4
- package/esm2022/tooltip/tooltip.service.mjs +3 -3
- package/esm2022/transfer/transfer-list.component.mjs +4 -4
- package/esm2022/transfer/transfer.component.mjs +3 -3
- package/esm2022/transfer/transfer.module.mjs +4 -4
- package/esm2022/tree/tree-node.component.mjs +3 -3
- package/esm2022/tree/tree.component.mjs +5 -5
- package/esm2022/tree/tree.module.mjs +4 -4
- package/esm2022/tree/tree.pipe.mjs +3 -3
- package/esm2022/tree/tree.service.mjs +3 -3
- package/esm2022/tree-select/module.mjs +4 -4
- package/esm2022/tree-select/tree-select.component.mjs +6 -6
- package/esm2022/typography/bg-color.directive.mjs +3 -3
- package/esm2022/typography/module.mjs +4 -4
- package/esm2022/typography/text/text.component.mjs +3 -3
- package/esm2022/typography/text-color.directive.mjs +3 -3
- package/esm2022/upload/constant.mjs +3 -1
- package/esm2022/upload/file-drop.directive.mjs +18 -6
- package/esm2022/upload/file-select-base.mjs +3 -3
- package/esm2022/upload/file-select.component.mjs +3 -3
- package/esm2022/upload/module.mjs +4 -4
- package/esm2022/upload/upload.service.mjs +3 -3
- package/esm2022/version.mjs +2 -2
- package/esm2022/vote/vote.component.mjs +3 -3
- package/esm2022/vote/vote.module.mjs +4 -4
- package/esm2022/watermark/watermark.directive.mjs +3 -3
- package/esm2022/watermark/watermark.module.mjs +4 -4
- package/fesm2022/ngx-tethys-action.mjs +10 -10
- package/fesm2022/ngx-tethys-affix.mjs +7 -7
- package/fesm2022/ngx-tethys-alert.mjs +10 -10
- package/fesm2022/ngx-tethys-anchor.mjs +10 -10
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
- package/fesm2022/ngx-tethys-autocomplete.mjs +16 -16
- package/fesm2022/ngx-tethys-avatar.mjs +22 -22
- package/fesm2022/ngx-tethys-back-top.mjs +7 -7
- package/fesm2022/ngx-tethys-badge.mjs +7 -7
- package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
- package/fesm2022/ngx-tethys-button.mjs +13 -13
- package/fesm2022/ngx-tethys-calendar.mjs +16 -16
- package/fesm2022/ngx-tethys-card.mjs +13 -13
- package/fesm2022/ngx-tethys-carousel.mjs +13 -13
- package/fesm2022/ngx-tethys-cascader.mjs +20 -20
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
- package/fesm2022/ngx-tethys-collapse.mjs +10 -10
- package/fesm2022/ngx-tethys-color-picker.mjs +31 -31
- package/fesm2022/ngx-tethys-comment.mjs +13 -13
- package/fesm2022/ngx-tethys-copy.mjs +7 -7
- package/fesm2022/ngx-tethys-core.mjs +18 -18
- package/fesm2022/ngx-tethys-date-picker.mjs +116 -116
- package/fesm2022/ngx-tethys-date-range.mjs +10 -10
- package/fesm2022/ngx-tethys-dialog.mjs +22 -22
- package/fesm2022/ngx-tethys-divider.mjs +7 -7
- package/fesm2022/ngx-tethys-dot.mjs +7 -7
- package/fesm2022/ngx-tethys-drag-drop.mjs +19 -19
- package/fesm2022/ngx-tethys-dropdown.mjs +48 -48
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +10 -10
- package/fesm2022/ngx-tethys-flexible-text.mjs +7 -7
- package/fesm2022/ngx-tethys-form.mjs +40 -40
- package/fesm2022/ngx-tethys-fullscreen.mjs +13 -13
- package/fesm2022/ngx-tethys-grid.mjs +31 -31
- package/fesm2022/ngx-tethys-guider.mjs +16 -16
- package/fesm2022/ngx-tethys-icon.mjs +10 -10
- package/fesm2022/ngx-tethys-image.mjs +16 -16
- package/fesm2022/ngx-tethys-input-number.mjs +7 -7
- package/fesm2022/ngx-tethys-input.mjs +19 -19
- package/fesm2022/ngx-tethys-layout.mjs +58 -58
- package/fesm2022/ngx-tethys-list.mjs +16 -16
- package/fesm2022/ngx-tethys-loading.mjs +7 -7
- package/fesm2022/ngx-tethys-mention.mjs +10 -10
- package/fesm2022/ngx-tethys-menu.mjs +25 -25
- package/fesm2022/ngx-tethys-message.mjs +22 -22
- package/fesm2022/ngx-tethys-nav.mjs +22 -22
- package/fesm2022/ngx-tethys-notify.mjs +16 -16
- package/fesm2022/ngx-tethys-pagination.mjs +10 -10
- package/fesm2022/ngx-tethys-popover.mjs +19 -19
- package/fesm2022/ngx-tethys-progress.mjs +13 -13
- package/fesm2022/ngx-tethys-property-operation.mjs +10 -10
- package/fesm2022/ngx-tethys-property.mjs +10 -10
- package/fesm2022/ngx-tethys-radio.mjs +13 -13
- package/fesm2022/ngx-tethys-rate.mjs +10 -10
- package/fesm2022/ngx-tethys-resizable.mjs +16 -16
- package/fesm2022/ngx-tethys-result.mjs +7 -7
- package/fesm2022/ngx-tethys-segment.mjs +10 -10
- package/fesm2022/ngx-tethys-select.mjs +10 -10
- package/fesm2022/ngx-tethys-shared.mjs +67 -67
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +22 -22
- package/fesm2022/ngx-tethys-slide.mjs +31 -31
- package/fesm2022/ngx-tethys-slider.mjs +7 -7
- package/fesm2022/ngx-tethys-space.mjs +10 -10
- package/fesm2022/ngx-tethys-statistic.mjs +7 -7
- package/fesm2022/ngx-tethys-stepper.mjs +27 -22
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +7 -7
- package/fesm2022/ngx-tethys-switch.mjs +7 -7
- package/fesm2022/ngx-tethys-table.mjs +20 -20
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +13 -13
- package/fesm2022/ngx-tethys-tag.mjs +10 -10
- package/fesm2022/ngx-tethys-time-picker.mjs +19 -19
- package/fesm2022/ngx-tethys-timeline.mjs +13 -13
- package/fesm2022/ngx-tethys-tooltip.mjs +13 -13
- 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.mjs +17 -17
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +13 -13
- package/fesm2022/ngx-tethys-upload.mjs +32 -18
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +7 -7
- package/fesm2022/ngx-tethys-watermark.mjs +7 -7
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/notify/styles/notify.scss +3 -0
- package/package.json +1 -1
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/shared/select/select-control/select-control.component.d.ts +1 -1
- package/shared/select/select-control/select-control.scss +8 -0
- package/stepper/examples/icon/icon.component.scss +8 -0
- package/stepper/step-header.component.d.ts +2 -1
- package/stepper/step.component.d.ts +7 -2
- package/stepper/styles/stepper.scss +16 -2
- package/styles/variables.scss +2 -0
- package/upload/constant.d.ts +2 -0
- package/upload/file-drop.directive.d.ts +6 -1
|
@@ -561,10 +561,10 @@ export class ThyCascaderService {
|
|
|
561
561
|
}
|
|
562
562
|
return array1.every((element, index) => element === array2[index]);
|
|
563
563
|
}
|
|
564
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
565
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
564
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCascaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
565
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCascaderService }); }
|
|
566
566
|
}
|
|
567
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
567
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCascaderService, decorators: [{
|
|
568
568
|
type: Injectable
|
|
569
569
|
}] });
|
|
570
570
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzY2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jYXNjYWRlci9jYXNjYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUVuRCxNQUFNLG9CQUFvQixHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRS9EOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUlXLFlBQU8sR0FBMEIsRUFBRSxDQUFDO1FBYXBDLG9CQUFlLEdBQXdCLEVBQUUsQ0FBQztRQUUxQyxxQkFBZ0IsR0FBd0IsRUFBRSxDQUFDO1FBSTNDLG1CQUFjLEdBQThCLEVBQUUsQ0FBQztRQUUvQyxjQUFTLEdBQThCLEVBQUUsQ0FBQztRQUUxQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLHFCQUFnQixHQUE4QixFQUFFLENBQUM7UUFNaEQsd0JBQW1CLEdBQTJCLElBQUksR0FBRyxFQUFxQixDQUFDO1FBRTVFLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztLQWtvQnZDO0lBaG9CVSxtQkFBbUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDekIsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNMLE1BQU0s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QUMsRUFBRTtZQUMxQixNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLHVCQUF1QixRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ2hFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxDQUFDO1FBQ25GLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE9BQU8sQ0FBSSxLQUFjO1FBQ3JCLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQzthQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25CLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUksTUFBVyxFQUFFLE1BQVc7UUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RGLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQzs4R0FycUJRLGtCQUFrQjtrSEFBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWQgfSBmcm9tICdAdGV0aHlzL2Nkay9pbW11dGFibGUnO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uQmFzZSB9IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IGhlbHBlcnMsIGlzQXJyYXksIGlzRW1wdHksIGlzVW5kZWZpbmVkT3JOdWxsLCBzZXQsIGdldCB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRoeUNhc2NhZGVyT3B0aW9uLCBUaHlDYXNjYWRlclNlYXJjaE9wdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuY29uc3QgZGVmYXVsdERpc3BsYXlSZW5kZXIgPSAobGFiZWw6IGFueSkgPT4gbGFiZWwuam9pbignIC8gJyk7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUaHlDYXNjYWRlclNlcnZpY2Uge1xuICAgIHB1YmxpYyBzZWxlY3Rpb25Nb2RlbDogU2VsZWN0aW9uTW9kZWw8U2VsZWN0T3B0aW9uQmFzZT47XG5cbiAgICBwdWJsaWMgY29sdW1uczogVGh5Q2FzY2FkZXJPcHRpb25bXVtdID0gW107XG5cbiAgICBwdWJsaWMgY3VzdG9tT3B0aW9uczogVGh5Q2FzY2FkZXJPcHRpb25bXTtcblxuICAgIHB1YmxpYyBjYXNjYWRlck9wdGlvbnM6IHtcbiAgICAgICAgbGFiZWxQcm9wZXJ0eT86IHN0cmluZztcbiAgICAgICAgdmFsdWVQcm9wZXJ0eT86IHN0cmluZztcbiAgICAgICAgaXNNdWx0aXBsZT86IGJvb2xlYW47XG4gICAgICAgIGlzT25seVNlbGVjdExlYWY/OiBib29sZWFuO1xuICAgICAgICBpc0xhYmVsUmVuZGVyVGVtcGxhdGU/OiBib29sZWFuO1xuICAgICAgICBsb2FkRGF0YT86IChub2RlOiBUaHlDYXNjYWRlck9wdGlvbiwgaW5kZXg/OiBudW1iZXIpID0+IFByb21pc2VMaWtlPGFueT47XG4gICAgfTtcblxuICAgIHB1YmxpYyBzZWxlY3RlZE9wdGlvbnM6IFRoeUNhc2NhZGVyT3B0aW9uW10gPSBbXTtcblxuICAgIHB1YmxpYyBhY3RpdmF0ZWRPcHRpb25zOiBUaHlDYXNjYWRlck9wdGlvbltdID0gW107XG5cbiAgICBwdWJsaWMgbGFiZWxSZW5kZXJUZXh0OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgZmxhdHRlbk9wdGlvbnM6IFRoeUNhc2NhZGVyU2VhcmNoT3B0aW9uW10gPSBbXTtcblxuICAgIHB1YmxpYyBsZWFmTm9kZXM6IFRoeUNhc2NhZGVyU2VhcmNoT3B0aW9uW10gPSBbXTtcblxuICAgIHB1YmxpYyBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBzZWFyY2hSZXN1bHRMaXN0OiBUaHlDYXNjYWRlclNlYXJjaE9wdGlvbltdID0gW107XG5cbiAgICBwdWJsaWMgZGVmYXVsdFZhbHVlOiBhbnlbXTtcblxuICAgIHB1YmxpYyB2YWx1ZTogYW55W107XG5cbiAgICBwcml2YXRlIHByZXZTZWxlY3RlZE9wdGlvbnM6IFNldDxUaHlDYXNjYWRlck9wdGlvbj4gPSBuZXcgU2V0PFRoeUNhc2NhZGVyT3B0aW9uPigpO1xuXG4gICAgcHVibGljIHZhbHVlQ2hhbmdlJCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBwdWJsaWMgY2FzY2FkZXJWYWx1ZUNoYW5nZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVDaGFuZ2UkLnBpcGUoXG4gICAgICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlQ2hhbmdlT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuZ2V0VmFsdWVzKCksXG4gICAgICAgICAgICAgICAgICAgIGlzVmFsdWVFcXVhbDogdGhpcy5hcnJheUVxdWFscyh0aGlzLnZhbHVlLCB0aGlzLmdldFZhbHVlcygpKSxcbiAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3Rpb25Nb2RlbEVtcHR5OiB0aGlzLnNlbGVjdGlvbk1vZGVsLmlzRW1wdHkoKVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0VmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmdldFZhbHVlcygpO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZUNoYW5nZU9wdGlvbnM7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSgxMDApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldENhc2NhZGVyT3B0aW9ucyhvcHRpb25zOiB7XG4gICAgICAgIGxhYmVsUHJvcGVydHk/OiBzdHJpbmc7XG4gICAgICAgIHZhbHVlUHJvcGVydHk/OiBzdHJpbmc7XG4gICAgICAgIGlzTXVsdGlwbGU/OiBib29sZWFuO1xuICAgICAgICBpc09ubHlTZWxlY3RMZWFmPzogYm9vbGVhbjtcbiAgICAgICAgaXNMYWJlbFJlbmRlclRlbXBsYXRlPzogYm9vbGVhbjtcbiAgICAgICAgbG9hZERhdGE/OiAobm9kZTogVGh5Q2FzY2FkZXJPcHRpb24sIGluZGV4PzogbnVtYmVyKSA9PiBQcm9taXNlTGlrZTxhbnk+O1xuICAgIH0pIHtcbiAgICAgICAgdGhpcy5jYXNjYWRlck9wdGlvbnMgPSB7IC4uLnRoaXMuY2FzY2FkZXJPcHRpb25zLCAuLi5vcHRpb25zIH07XG4gICAgICAgIGlmICh0aGlzLmNhc2NhZGVyT3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnaXNNdWx0aXBsZScpKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRTZWxlY3Rpb25Nb2RlbCh0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc011bHRpcGxlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpbml0U2VsZWN0aW9uTW9kZWwoaXNNdWx0aXBsZT86IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZWwpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuY2xlYXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwgPSBuZXcgU2VsZWN0aW9uTW9kZWwoaXNNdWx0aXBsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdENvbHVtbnMoY29sdW1uczogVGh5Q2FzY2FkZXJPcHRpb25bXVtdKSB7XG4gICAgICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRBY3RpdmF0ZWRPcHRpb25zKG1lbnVWaXNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChpc0VtcHR5KHRoaXMuc2VsZWN0ZWRPcHRpb25zKSB8fCAhbWVudVZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFjdGl2YXRlZE9wdGlvbnMgPSBbLi4udGhpcy5zZWxlY3RlZE9wdGlvbnNdO1xuICAgICAgICB0aGlzLmFjdGl2YXRlZE9wdGlvbnMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmICghaXNFbXB0eShpdGVtLmNoaWxkcmVuKSAmJiAhaXRlbS5pc0xlYWYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbnNbaW5kZXggKyAxXSA9IGl0ZW0uY2hpbGRyZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0T3B0aW9ucyhpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHZzID0gdGhpcy5kZWZhdWx0VmFsdWU7XG4gICAgICAgIGNvbnN0IGxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2YXRlT25Jbml0KGluZGV4LCB2c1tpbmRleF0pO1xuICAgICAgICAgICAgaWYgKGluZGV4IDwgdnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdE9wdGlvbnMoaW5kZXggKyAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gdnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJXcml0ZVZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRoaXMuY29sdW1uc1tpbmRleF0/Lmxlbmd0aCB8fCAhdGhpcy5jYXNjYWRlck9wdGlvbnMubG9hZERhdGEpIHtcbiAgICAgICAgICAgIGxvYWQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmFjdGl2YXRlZE9wdGlvbnNbaW5kZXggLSAxXSB8fCB7fTtcbiAgICAgICAgICAgIHRoaXMubG9hZENoaWxkcmVuKG5vZGUsIGluZGV4IC0gMSwgbG9hZCwgdGhpcy5hZnRlcldyaXRlVmFsdWUuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xpY2tPcHRpb24oXG4gICAgICAgIG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb24sXG4gICAgICAgIGluZGV4OiBudW1iZXIsXG4gICAgICAgIGV2ZW50OiBFdmVudCB8IGJvb2xlYW4sXG4gICAgICAgIHNlbGVjdEZuPzogKG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb24sIGluZGV4OiBudW1iZXIpID0+IHZvaWRcbiAgICApIHtcbiAgICAgICAgaWYgKG9wdGlvbj8uZGlzYWJsZWQgJiYgIXRoaXMuY2FzY2FkZXJPcHRpb25zLmlzTXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlzU2VsZWN0ID0gZXZlbnQgaW5zdGFuY2VvZiBFdmVudCA/ICF0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc011bHRpcGxlICYmIG9wdGlvbi5pc0xlYWYgOiB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc011bHRpcGxlICYmICFvcHRpb24uaXNMZWFmICYmIHRoaXMuY2FzY2FkZXJPcHRpb25zLmlzT25seVNlbGVjdExlYWYgJiYgaXNTZWxlY3QpIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlQWxsQ2hpbGRyZW4ob3B0aW9uLCBpbmRleCwgZXZlbnQgYXMgYm9vbGVhbiwgc2VsZWN0Rm4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRBY3RpdmVPcHRpb24ob3B0aW9uLCBpbmRleCwgaXNTZWxlY3QsIHRydWUsIHNlbGVjdEZuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBY3RpdmVPcHRpb24oXG4gICAgICAgIG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb24sXG4gICAgICAgIGluZGV4OiBudW1iZXIsXG4gICAgICAgIHNlbGVjdDogYm9vbGVhbixcbiAgICAgICAgbG9hZENoaWxkcmVuOiBib29sZWFuID0gdHJ1ZSxcbiAgICAgICAgc2VsZWN0Rm4/OiAob3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbiwgaW5kZXg6IG51bWJlcikgPT4gdm9pZFxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2YXRlZE9wdGlvbnNbaW5kZXhdID0gb3B0aW9uO1xuICAgICAgICBmb3IgKGxldCBpID0gaW5kZXggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luT3B0aW9uID0gdGhpcy5hY3RpdmF0ZWRPcHRpb25zW2kgKyAxXT8ucGFyZW50O1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICF0aGlzLmFjdGl2YXRlZE9wdGlvbnNbaV0gfHxcbiAgICAgICAgICAgICAgICBvcmlnaW5PcHRpb24/Llt0aGlzLmNhc2NhZGVyT3B0aW9ucy52YWx1ZVByb3BlcnR5XSAhPT0gdGhpcy5hY3RpdmF0ZWRPcHRpb25zW2ldPy5bdGhpcy5jYXNjYWRlck9wdGlvbnMudmFsdWVQcm9wZXJ0eV1cbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVkT3B0aW9uc1tpXSA9IG9yaWdpbk9wdGlvbiA/PyB0aGlzLmFjdGl2YXRlZE9wdGlvbnNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZGV4IDwgdGhpcy5hY3RpdmF0ZWRPcHRpb25zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVkT3B0aW9ucyA9IHRoaXMuYWN0aXZhdGVkT3B0aW9ucy5zbGljZSgwLCBpbmRleCArIDEpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0FycmF5KG9wdGlvbi5jaGlsZHJlbikgJiYgb3B0aW9uLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgb3B0aW9uLmlzTGVhZiA9IGZhbHNlO1xuICAgICAgICAgICAgb3B0aW9uLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4gKGNoaWxkLnBhcmVudCA9IG9wdGlvbikpO1xuICAgICAgICAgICAgdGhpcy5zZXRDb2x1bW5EYXRhKG9wdGlvbi5jaGlsZHJlbiwgaW5kZXggKyAxKTtcbiAgICAgICAgfSBlbHNlIGlmICghb3B0aW9uLmlzTGVhZiAmJiBsb2FkQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHRoaXMubG9hZENoaWxkcmVuKG9wdGlvbiwgaW5kZXgpO1xuICAgICAgICB9IGVsc2UgaWYgKGluZGV4IDwgdGhpcy5jb2x1bW5zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuY29sdW1ucy5zbGljZSgwLCBpbmRleCArIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNlbGVjdCkge1xuICAgICAgICAgICAgc2VsZWN0Rm4ob3B0aW9uLCBpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRDaGlsZHJlbihvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLCBpbmRleDogbnVtYmVyLCBzdWNjZXNzPzogKCkgPT4gdm9pZCwgZmFpbHVyZT86ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmNhc2NhZGVyT3B0aW9ucz8ubG9hZERhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q29sdW1uRGF0YShvcHRpb24uY2hpbGRyZW4gfHwgW10sIGluZGV4ICsgMSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5jYXNjYWRlck9wdGlvbnMubG9hZERhdGEob3B0aW9uLCBpbmRleCkudGhlbihcbiAgICAgICAgICAgICgpID0+IHRoaXMuaGFuZGxlTG9hZERhdGFTdWNjZXNzKG9wdGlvbiwgaW5kZXgsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgKCkgPT4gdGhpcy5oYW5kbGVMb2FkRGF0YUZhaWx1cmUob3B0aW9uLCBpbmRleCwgZmFpbHVyZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUxvYWREYXRhU3VjY2VzcyhvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLCBpbmRleDogbnVtYmVyLCBzdWNjZXNzPzogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICBvcHRpb24ubG9hZGluZyA9IHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKG9wdGlvbi5jaGlsZHJlbikge1xuICAgICAgICAgICAgb3B0aW9uLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4gKGNoaWxkLnBhcmVudCA9IGluZGV4IDwgMCA/IHVuZGVmaW5lZCA6IG9wdGlvbikpO1xuICAgICAgICAgICAgdGhpcy5zZXRDb2x1bW5EYXRhKG9wdGlvbi5jaGlsZHJlbiwgaW5kZXggKyAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgICAgICBzdWNjZXNzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUxvYWREYXRhRmFpbHVyZShvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLCBpbmRleDogbnVtYmVyLCBmYWlsdXJlPzogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICBvcHRpb24ubG9hZGluZyA9IHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIG9wdGlvbi5pc0xlYWYgPSB0cnVlO1xuXG4gICAgICAgIGlmIChmYWlsdXJlKSB7XG4gICAgICAgICAgICBmYWlsdXJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFjdGl2YXRlT25Jbml0KGluZGV4OiBudW1iZXIsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgbGV0IG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb247XG4gICAgICAgIGlmIChpc0FycmF5KHRoaXMuY3VzdG9tT3B0aW9ucykgJiYgdGhpcy5jdXN0b21PcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIG9wdGlvbiA9IHRoaXMuY3VzdG9tT3B0aW9ucy5maW5kKGl0ZW0gPT4gZ2V0KGl0ZW0sIHRoaXMuY2FzY2FkZXJPcHRpb25zLnZhbHVlUHJvcGVydHkpID09PSB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzVW5kZWZpbmVkT3JOdWxsKG9wdGlvbikpIHtcbiAgICAgICAgICAgIG9wdGlvbiA9IHRoaXMuZmluZE9wdGlvbih2YWx1ZSwgaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghb3B0aW9uKSB7XG4gICAgICAgICAgICBvcHRpb24gPVxuICAgICAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Ake3RoaXMuY2FzY2FkZXJPcHRpb25zLnZhbHVlUHJvcGVydHkgfHwgJ3ZhbHVlJ31gXTogdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtgJHt0aGlzLmNhc2NhZGVyT3B0aW9ucy5sYWJlbFByb3BlcnR5IHx8ICdsYWJlbCd9YF06IHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZVByZXZTZWxlY3RlZE9wdGlvbnMob3B0aW9uLCB0cnVlKTtcbiAgICAgICAgdGhpcy5zZXRBY3RpdmVPcHRpb24ob3B0aW9uLCBpbmRleCwgZmFsc2UsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNTZWxlY3RlZE9wdGlvbihvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLCBpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmNhc2NhZGVyT3B0aW9ucz8uaXNPbmx5U2VsZWN0TGVhZikge1xuICAgICAgICAgICAgaWYgKG9wdGlvbi5pc0xlYWYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnNlbGVjdGVkO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jaGVja1NlbGVjdGVkU3RhdHVzKG9wdGlvbiwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZE9wdHMgPSB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkO1xuICAgICAgICAgICAgY29uc3QgYXBwZWFySW5kZXggPSBzZWxlY3RlZE9wdHMuZmluZEluZGV4KGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLnRoeVJhd1ZhbHVlLnZhbHVlLmxlbmd0aCAtIDEgPT09IGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IGhlbHBlcnMuZ2V0KGl0ZW0sIGB0aHlSYXdWYWx1ZS52YWx1ZS4ke2luZGV4fWApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGVscGVycy5zaGFsbG93RXF1YWwoc2VsZWN0ZWRJdGVtLCBvcHRpb24pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBhcHBlYXJJbmRleCA+PSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b2dnbGVBbGxDaGlsZHJlbihcbiAgICAgICAgb3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbixcbiAgICAgICAgaW5kZXg6IG51bWJlcixcbiAgICAgICAgc2VsZWN0ZWQ6IGJvb2xlYW4sXG4gICAgICAgIHNlbGVjdEZuPzogKG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb24sIGluZGV4OiBudW1iZXIpID0+IHZvaWRcbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYWxsTGVhZnM6IHtcbiAgICAgICAgICAgIG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb247XG4gICAgICAgICAgICBpbmRleDogbnVtYmVyO1xuICAgICAgICB9W10gPSB0aGlzLmdldEFsbExlYWZzKG9wdGlvbiwgaW5kZXgsIHNlbGVjdGVkKTtcbiAgICAgICAgb3B0aW9uLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG5cbiAgICAgICAgd2hpbGUgKGFsbExlYWZzLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgeyBvcHRpb24sIGluZGV4IH0gPSBhbGxMZWFmcy5zaGlmdCgpO1xuICAgICAgICAgICAgb3B0aW9uLnNlbGVjdGVkID0gIXNlbGVjdGVkO1xuICAgICAgICAgICAgdGhpcy5zZXRBY3RpdmVPcHRpb24ob3B0aW9uLCBpbmRleCwgdHJ1ZSwgbnVsbCwgc2VsZWN0Rm4pO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmFjdGl2YXRlZE9wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IHRoaXMuYWN0aXZhdGVkT3B0aW9uc1tpXTtcbiAgICAgICAgICAgIGlmIChpc0FycmF5KG9wdGlvbi5jaGlsZHJlbikgJiYgb3B0aW9uLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Q29sdW1uRGF0YShvcHRpb24uY2hpbGRyZW4sIGkgKyAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWxsTGVhZnMoXG4gICAgICAgIG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb24sXG4gICAgICAgIGluZGV4OiBudW1iZXIsXG4gICAgICAgIHNlbGVjdGVkOiBib29sZWFuXG4gICAgKToge1xuICAgICAgICBvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uO1xuICAgICAgICBpbmRleDogbnVtYmVyO1xuICAgIH1bXSB7XG4gICAgICAgIGxldCBhbGxMZWFmczoge1xuICAgICAgICAgICAgb3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbjtcbiAgICAgICAgICAgIGluZGV4OiBudW1iZXI7XG4gICAgICAgIH1bXSA9IFtdO1xuICAgICAgICBpZiAob3B0aW9uLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2hpbGRPcHRpb24gb2Ygb3B0aW9uLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgY2hpbGRPcHRpb24ucGFyZW50ID0gb3B0aW9uO1xuICAgICAgICAgICAgICAgIGlmIChjaGlsZE9wdGlvbi5pc0xlYWYgJiYgIWNoaWxkT3B0aW9uLnNlbGVjdGVkID09PSBzZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICBhbGxMZWFmcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbjogY2hpbGRPcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXggKyAxXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWNoaWxkT3B0aW9uLmlzTGVhZikge1xuICAgICAgICAgICAgICAgICAgICBhbGxMZWFmcyA9IGFsbExlYWZzLmNvbmNhdCh0aGlzLmdldEFsbExlYWZzKGNoaWxkT3B0aW9uLCBpbmRleCArIDEsIHNlbGVjdGVkKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhbGxMZWFmcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VhcmNoSW5Mb2NhbChzZWFyY2hUZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JFYWNoQ29sdW1ucygpO1xuXG4gICAgICAgIHRoaXMuc2V0U2VhcmNoUmVzdWx0TGlzdCh0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc09ubHlTZWxlY3RMZWFmID8gdGhpcy5sZWFmTm9kZXMgOiB0aGlzLmZsYXR0ZW5PcHRpb25zLCBzZWFyY2hUZXh0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvckVhY2hDb2x1bW5zKFxuICAgICAgICBjdXJyZW50TGFiZWw/OiBzdHJpbmdbXSxcbiAgICAgICAgY3VycmVudFZhbHVlOiBJZFtdID0gW10sXG4gICAgICAgIGN1cnJlbnRSb3dWYWx1ZTogVGh5Q2FzY2FkZXJPcHRpb25bXSA9IFtdLFxuICAgICAgICBsaXN0ID0gdGhpcy5jb2x1bW5zWzBdXG4gICAgKSB7XG4gICAgICAgIGxpc3QuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1ck9wdGlvbkxhYmVsID0gdGhpcy5nZXRPcHRpb25MYWJlbChpdGVtKTtcbiAgICAgICAgICAgIGNvbnN0IGN1ck9wdGlvblZhbHVlID0gdGhpcy5nZXRPcHRpb25WYWx1ZShpdGVtKTtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsOiBzdHJpbmdbXSA9IGN1cnJlbnRMYWJlbCA/IFsuLi5jdXJyZW50TGFiZWwsIGN1ck9wdGlvbkxhYmVsXSA6IFtjdXJPcHRpb25MYWJlbF07XG4gICAgICAgICAgICBjb25zdCB2YWx1ZUxpc3Q6IElkW10gPSBbLi4uY3VycmVudFZhbHVlLCBjdXJPcHRpb25WYWx1ZV07XG4gICAgICAgICAgICBjb25zdCByb3dWYWx1ZUxpc3Q6IFRoeUNhc2NhZGVyT3B0aW9uW10gPSBbLi4uY3VycmVudFJvd1ZhbHVlLCBpdGVtXTtcbiAgICAgICAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSB0aGlzLmlzU2VsZWN0ZWRPcHRpb24oaXRlbSwgdmFsdWVMaXN0Lmxlbmd0aCAtIDEpO1xuXG4gICAgICAgICAgICBjb25zdCBub2RlID0ge1xuICAgICAgICAgICAgICAgIGxhYmVsTGlzdDogbGFiZWwsXG4gICAgICAgICAgICAgICAgdmFsdWVMaXN0LFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBpc1NlbGVjdGVkLFxuICAgICAgICAgICAgICAgIHRoeVJvd1ZhbHVlOiByb3dWYWx1ZUxpc3QsXG4gICAgICAgICAgICAgICAgaXNMZWFmOiBpdGVtLmlzTGVhZixcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5mbGF0dGVuT3B0aW9ucy5wdXNoKG5vZGUpO1xuICAgICAgICAgICAgaWYgKGl0ZW0/LmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvckVhY2hDb2x1bW5zKGxhYmVsLCB2YWx1ZUxpc3QsIHJvd1ZhbHVlTGlzdCwgaXRlbS5jaGlsZHJlbik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGVhZk5vZGVzLnB1c2gobm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2VhcmNoUmVzdWx0TGlzdChsaXN0T2ZPcHRpb246IFRoeUNhc2NhZGVyU2VhcmNoT3B0aW9uW10sIHNlYXJjaFRleHQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNlYXJjaFJlc3VsdExpc3QgPSBbXTtcbiAgICAgICAgbGlzdE9mT3B0aW9uLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpZiAoIWl0ZW0uZGlzYWJsZWQgJiYgaXRlbS5pc0xlYWYgJiYgaXRlbS5sYWJlbExpc3Quam9pbigpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoUmVzdWx0TGlzdC5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmo4Dmn6XmiYDmnInmiYDmnInlrZDpobnnmoTpgInmi6nnirbmgIEsIOacieS4gOS4quS4jeespuWQiOmihOacn++8jOWwseebtOaOpei/lOWbniBmYWxzZVxuICAgICAqIEBwYXJhbSBvcHRpb25cbiAgICAgKiBAcGFyYW0gdHJ1ZU9yRmFsc2VcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY2hlY2tTZWxlY3RlZFN0YXR1cyhvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLCBpc1NlbGVjdGVkOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChvcHRpb24uaXNMZWFmKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uLnNlbGVjdGVkID09PSBpc1NlbGVjdGVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChoZWxwZXJzLmlzRW1wdHkob3B0aW9uLmNoaWxkcmVuKSAmJiB0aGlzLmNhc2NhZGVyT3B0aW9ucz8uaXNPbmx5U2VsZWN0TGVhZikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGRPcHRpb24gb2Ygb3B0aW9uLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICBpZiAoaXNBcnJheShjaGlsZE9wdGlvbi5jaGlsZHJlbikgJiYgY2hpbGRPcHRpb24uY2hpbGRyZW4ubGVuZ3RoICYmICF0aGlzLmNoZWNrU2VsZWN0ZWRTdGF0dXMoY2hpbGRPcHRpb24sIGlzU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFjaGlsZE9wdGlvbi5zZWxlY3RlZCA9PT0gaXNTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRPcHRpb24ob3B0aW9uOiBhbnksIGluZGV4OiBudW1iZXIpOiBUaHlDYXNjYWRlck9wdGlvbiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnM6IFRoeUNhc2NhZGVyT3B0aW9uW10gPSB0aGlzLmNvbHVtbnNbaW5kZXhdO1xuICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0JyA/IHRoaXMuZ2V0T3B0aW9uVmFsdWUob3B0aW9uKSA6IG9wdGlvbjtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmZpbmQobyA9PiB2YWx1ZSA9PT0gdGhpcy5nZXRPcHRpb25WYWx1ZShvKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDb2x1bW5EYXRhKG9wdGlvbnM6IFRoeUNhc2NhZGVyT3B0aW9uW10sIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmFycmF5RXF1YWxzKHRoaXMuY29sdW1uc1tpbmRleF0sIG9wdGlvbnMpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbnNbaW5kZXhdID0gb3B0aW9ucztcbiAgICAgICAgICAgIGlmIChpbmRleCA8IHRoaXMuY29sdW1ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5zID0gdGhpcy5jb2x1bW5zLnNsaWNlKDAsIGluZGV4ICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFN1Ym1pdFZhbHVlKG9yaWdpbk9wdGlvbnM6IFRoeUNhc2NhZGVyT3B0aW9uW10pOiBhbnlbXSB7XG4gICAgICAgIGNvbnN0IHZhbHVlczogYW55W10gPSBbXTtcbiAgICAgICAgKG9yaWdpbk9wdGlvbnMgfHwgW10pLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgICAgICAgIHZhbHVlcy5wdXNoKHRoaXMuZ2V0T3B0aW9uVmFsdWUob3B0aW9uKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVTZWxlY3RlZEl0ZW0oaXRlbTogU2VsZWN0T3B0aW9uQmFzZSkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZDtcbiAgICAgICAgY29uc3QgY3VycmVudEl0ZW0gPSBzZWxlY3RlZEl0ZW1zLmZpbmQoaSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaGVscGVycy5zaGFsbG93RXF1YWwoaS50aHlWYWx1ZSwgaXRlbS50aHlWYWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmRlc2VsZWN0T3B0aW9uKGN1cnJlbnRJdGVtKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5kZXNlbGVjdChjdXJyZW50SXRlbSk7XG4gICAgICAgIC8vIHVwZGF0ZSBzZWxlY3RlZE9wdGlvbnNcbiAgICAgICAgY29uc3QgdXBkYXRlZFNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkO1xuICAgICAgICBpZiAoaXNBcnJheSh1cGRhdGVkU2VsZWN0ZWRJdGVtcykgJiYgdXBkYXRlZFNlbGVjdGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IHVwZGF0ZWRTZWxlY3RlZEl0ZW1zW3VwZGF0ZWRTZWxlY3RlZEl0ZW1zLmxlbmd0aCAtIDFdLnRoeVJhd1ZhbHVlLnZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZSQubmV4dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldFNlYXJjaCgpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHRMaXN0ID0gW107XG4gICAgICAgIHRoaXMubGVhZk5vZGVzID0gW107XG4gICAgICAgIHRoaXMuZmxhdHRlbk9wdGlvbnMgPSBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJTZWxlY3Rpb24oKSB7XG4gICAgICAgIHRoaXMubGFiZWxSZW5kZXJUZXh0ID0gJyc7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gW107XG4gICAgICAgIHRoaXMuYWN0aXZhdGVkT3B0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLmRlc2VsZWN0QWxsU2VsZWN0ZWQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc2VsZWN0QWxsU2VsZWN0ZWQoKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQ7XG4gICAgICAgIHNlbGVjdGVkT3B0aW9ucy5mb3JFYWNoKGl0ZW0gPT4gdGhpcy5kZXNlbGVjdE9wdGlvbihpdGVtKSk7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuY2xlYXIoKTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZSQubmV4dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzZWxlY3RPcHRpb24ob3B0aW9uOiBTZWxlY3RPcHRpb25CYXNlKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlOiBUaHlDYXNjYWRlck9wdGlvbltdID0gb3B0aW9uLnRoeVJhd1ZhbHVlLnZhbHVlO1xuICAgICAgICB2YWx1ZS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0uaXNMZWFmICYmIGl0ZW0uc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBzZXQoaXRlbSwgJ3NlbGVjdGVkJywgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0T3B0aW9uKG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb24sIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSB0aGlzLmFjdGl2YXRlZE9wdGlvbnM7XG4gICAgICAgIHRoaXMudXBkYXRlUHJldlNlbGVjdGVkT3B0aW9ucyhvcHRpb24sIGZhbHNlLCBpbmRleCk7XG4gICAgICAgIGlmIChvcHRpb24uc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYnVpbGREaXNwbGF5TGFiZWwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEl0ZW0gPSBzZWxlY3RlZEl0ZW1zLmZpbmQoaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0udGh5UmF3VmFsdWUudmFsdWUubGVuZ3RoIC0gMSA9PT0gaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gaGVscGVycy5nZXQoaXRlbSwgYHRoeVJhd1ZhbHVlLnZhbHVlLiR7aW5kZXh9YCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBoZWxwZXJzLnNoYWxsb3dFcXVhbChzZWxlY3RlZEl0ZW0sIG9wdGlvbik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5kZXNlbGVjdChjdXJyZW50SXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZSQubmV4dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkU2VsZWN0ZWRTdGF0ZShzZWxlY3RPcHRpb25zOiBUaHlDYXNjYWRlck9wdGlvbltdKSB7XG4gICAgICAgIGlmICh0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc011bHRpcGxlICYmIHRoaXMuY2FzY2FkZXJPcHRpb25zLmlzT25seVNlbGVjdExlYWYpIHtcbiAgICAgICAgICAgIHNlbGVjdE9wdGlvbnMuZm9yRWFjaChvcHQgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChvcHQuaXNMZWFmKSB7XG4gICAgICAgICAgICAgICAgICAgIG9wdC5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHNldChvcHQsICdzZWxlY3RlZCcsIHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5hZGRQYXJlbnRTZWxlY3RlZFN0YXRlKHNlbGVjdE9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRQYXJlbnRTZWxlY3RlZFN0YXRlKHNlbGVjdE9wdGlvbnM6IFRoeUNhc2NhZGVyT3B0aW9uW10pIHtcbiAgICAgICAgc2VsZWN0T3B0aW9ucy5mb3JFYWNoKG9wdCA9PiB7XG4gICAgICAgICAgICBpZiAob3B0Py5jaGlsZHJlbj8ubGVuZ3RoICYmIG9wdC5jaGlsZHJlbi5ldmVyeShpID0+IGkuc2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgb3B0LnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBzZXQob3B0LCAnc2VsZWN0ZWQnLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBpZiAob3B0LnBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFBhcmVudFNlbGVjdGVkU3RhdGUoW29wdC5wYXJlbnRdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGREaXNwbGF5TGFiZWwoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IFsuLi50aGlzLnNlbGVjdGVkT3B0aW9uc107XG4gICAgICAgIGNvbnN0IGxhYmVsczogc3RyaW5nW10gPSBzZWxlY3RlZE9wdGlvbnMubWFwKG8gPT4gdGhpcy5nZXRPcHRpb25MYWJlbChvKSk7XG5cbiAgICAgICAgaWYgKGxhYmVscy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsYWJlbFJlbmRlckNvbnRleHQ7XG4gICAgICAgIGxldCBsYWJlbFJlbmRlclRleHQ7XG5cbiAgICAgICAgaWYgKHRoaXMuY2FzY2FkZXJPcHRpb25zLmlzTGFiZWxSZW5kZXJUZW1wbGF0ZSkge1xuICAgICAgICAgICAgbGFiZWxSZW5kZXJDb250ZXh0ID0geyBsYWJlbHMsIHNlbGVjdGVkT3B0aW9ucyB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGFiZWxSZW5kZXJUZXh0ID0gZGVmYXVsdERpc3BsYXlSZW5kZXIuY2FsbCh0aGlzLCBsYWJlbHMsIHNlbGVjdGVkT3B0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLmxhYmVsUmVuZGVyVGV4dCA9IGxhYmVsUmVuZGVyVGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmxhYmVsUmVuZGVyVGV4dCB8fCB0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc0xhYmVsUmVuZGVyVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRGF0YTogU2VsZWN0T3B0aW9uQmFzZSA9IHtcbiAgICAgICAgICAgICAgICB0aHlSYXdWYWx1ZToge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc2VsZWN0ZWRPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbFRleHQ6IGxhYmVsUmVuZGVyVGV4dCxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxSZW5kZXJDb250ZXh0OiBsYWJlbFJlbmRlckNvbnRleHRcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRoeVZhbHVlOiBsYWJlbHMsXG4gICAgICAgICAgICAgICAgdGh5TGFiZWxUZXh0OiBsYWJlbFJlbmRlclRleHRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdChzZWxlY3RlZERhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlQ2FzY2FkZXJWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3Rpb25Nb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5pbml0U2VsZWN0aW9uTW9kZWwodGhpcy5jYXNjYWRlck9wdGlvbnMuaXNNdWx0aXBsZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc011bHRpcGxlKSB7XG4gICAgICAgICAgICBjb25zdCB2cyA9ICh0aGlzLmRlZmF1bHRWYWx1ZSA9IHRoaXMudG9BcnJheSh2YWx1ZSkpO1xuICAgICAgICAgICAgaWYgKHZzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdE9wdGlvbnMoMCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2cztcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlZE9wdGlvbnMgPSBbXTtcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyV3JpdGVWYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy50b0FycmF5KHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuY2xlYXIoKTtcbiAgICAgICAgICAgIHZhbHVlcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZzID0gKHRoaXMuZGVmYXVsdFZhbHVlID0gdGhpcy50b0FycmF5KGl0ZW0pKTtcbiAgICAgICAgICAgICAgICBpZiAodnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdE9wdGlvbnMoMCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZzO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlZE9wdGlvbnMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZnRlcldyaXRlVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYWZ0ZXJXcml0ZVZhbHVlKCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IHRoaXMuYWN0aXZhdGVkT3B0aW9ucztcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0U3VibWl0VmFsdWUodGhpcy5zZWxlY3RlZE9wdGlvbnMpO1xuICAgICAgICB0aGlzLmFkZFNlbGVjdGVkU3RhdGUodGhpcy5zZWxlY3RlZE9wdGlvbnMpO1xuICAgICAgICB0aGlzLmJ1aWxkRGlzcGxheUxhYmVsKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQWN0aXZhdGVkT3B0aW9uKG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb24sIGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmNhc2NhZGVyT3B0aW9ucz8uaXNNdWx0aXBsZSB8fCB0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc09ubHlTZWxlY3RMZWFmKSB7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmVPcHQgPSB0aGlzLmFjdGl2YXRlZE9wdGlvbnNbaW5kZXhdO1xuICAgICAgICAgICAgcmV0dXJuIGFjdGl2ZU9wdCA9PT0gb3B0aW9uO1xuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbi5pc0xlYWYpIHtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb24uc2VsZWN0ZWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZE9wdHMgPSB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkO1xuICAgICAgICAgICAgY29uc3QgYXBwZWFySW5kZXggPSBzZWxlY3RlZE9wdHMuZmluZEluZGV4KGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IGhlbHBlcnMuZ2V0KGl0ZW0sIGB0aHlSYXdWYWx1ZS52YWx1ZS4ke2luZGV4fWApO1xuICAgICAgICAgICAgICAgIHJldHVybiBoZWxwZXJzLnNoYWxsb3dFcXVhbChzZWxlY3RlZEl0ZW0sIG9wdGlvbik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBhcHBlYXJJbmRleCA+PSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzSGFsZlNlbGVjdGVkT3B0aW9uKG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb24sIGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIW9wdGlvbi5zZWxlY3RlZCAmJlxuICAgICAgICAgICAgdGhpcy5jYXNjYWRlck9wdGlvbnMuaXNPbmx5U2VsZWN0TGVhZiAmJlxuICAgICAgICAgICAgIW9wdGlvbi5pc0xlYWYgJiZcbiAgICAgICAgICAgICF0aGlzLmNoZWNrU2VsZWN0ZWRTdGF0dXMob3B0aW9uLCBmYWxzZSkgJiZcbiAgICAgICAgICAgICFoZWxwZXJzLmlzRW1wdHkob3B0aW9uLmNoaWxkcmVuKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VmFsdWVzKCkge1xuICAgICAgICBsZXQgc2VsZWN0ZWRJdGVtczogYW55W107XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZDtcbiAgICAgICAgc2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkLm1hcChpdGVtID0+IHRoaXMuZ2V0U3VibWl0VmFsdWUoaXRlbS50aHlSYXdWYWx1ZS52YWx1ZSkpO1xuICAgICAgICByZXR1cm4gdGhpcy5jYXNjYWRlck9wdGlvbnM/LmlzTXVsdGlwbGUgPyBzZWxlY3RlZEl0ZW1zIDogc2VsZWN0ZWRJdGVtc1swXSA/PyBzZWxlY3RlZEl0ZW1zO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUHJldlNlbGVjdGVkT3B0aW9ucyhvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uLCBpc0FjdGl2YXRlSW5pdDogYm9vbGVhbiwgaW5kZXg/OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGlzQWN0aXZhdGVJbml0KSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUFjdGl2YXRlSW5pdChvcHRpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmNhc2NhZGVyT3B0aW9ucy5pc011bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhclByZXZTZWxlY3RlZE9wdGlvbnMoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0KG9wdGlvbiwgJ3NlbGVjdGVkJywgdGhpcy5pc1NlbGVjdGVkKG9wdGlvbiwgaW5kZXgpKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuY2FzY2FkZXJPcHRpb25zLmlzT25seVNlbGVjdExlYWYgJiYgdGhpcy5jYXNjYWRlck9wdGlvbnMuaXNNdWx0aXBsZSAmJiBvcHRpb24ucGFyZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVQcmV2U2VsZWN0ZWRPcHRpb25zKG9wdGlvbi5wYXJlbnQsIGZhbHNlLCBpbmRleCAtIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcmV2U2VsZWN0ZWRPcHRpb25zLmFkZChvcHRpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQWN0aXZhdGVJbml0KG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzQXJyYXkodGhpcy5jdXN0b21PcHRpb25zKSAmJiB0aGlzLmN1c3RvbU9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVLZXkgPSB0aGlzLmNhc2NhZGVyT3B0aW9ucy52YWx1ZVByb3BlcnR5O1xuICAgICAgICAgICAgdGhpcy5jdXN0b21PcHRpb25zLnNvbWUoaXRlbSA9PiBnZXQoaXRlbSwgdmFsdWVLZXkpID09IGdldChvcHRpb24sIHZhbHVlS2V5KSkgJiYgc2V0KG9wdGlvbiwgJ3NlbGVjdGVkJywgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY2FzY2FkZXJPcHRpb25zLmlzT25seVNlbGVjdExlYWYgJiYgb3B0aW9uLmlzTGVhZikge1xuICAgICAgICAgICAgc2V0KG9wdGlvbiwgJ3NlbGVjdGVkJywgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzU2VsZWN0ZWQob3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbiwgaW5kZXg/OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FzY2FkZXJPcHRpb25zLmlzT25seVNlbGVjdExlYWYgJiYgIW9wdGlvbi5pc0xlYWYgJiYgdGhpcy5jYXNjYWRlck9wdGlvbnMuaXNNdWx0aXBsZVxuICAgICAgICAgICAgPyB0aGlzLmlzU2VsZWN0ZWRPcHRpb24ob3B0aW9uLCBpbmRleClcbiAgICAgICAgICAgIDogIXRoaXMuaXNTZWxlY3RlZE9wdGlvbihvcHRpb24sIGluZGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyUHJldlNlbGVjdGVkT3B0aW9ucygpIHtcbiAgICAgICAgY29uc3QgcHJldlNlbGVjdGVkT3B0aW9ucyA9IEFycmF5LmZyb20odGhpcy5wcmV2U2VsZWN0ZWRPcHRpb25zKTtcbiAgICAgICAgd2hpbGUgKHByZXZTZWxlY3RlZE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICBzZXQocHJldlNlbGVjdGVkT3B0aW9ucy5wb3AoKSwgJ3NlbGVjdGVkJywgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJldlNlbGVjdGVkT3B0aW9ucyA9IG5ldyBTZXQoW10pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0T3B0aW9uTGFiZWwob3B0aW9uOiBUaHlDYXNjYWRlck9wdGlvbik6IGFueSB7XG4gICAgICAgIHJldHVybiBvcHRpb25bdGhpcy5jYXNjYWRlck9wdGlvbnMubGFiZWxQcm9wZXJ0eSB8fCAnbGFiZWwnXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9wdGlvblZhbHVlKG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb24pOiBhbnkge1xuICAgICAgICByZXR1cm4gb3B0aW9uW3RoaXMuY2FzY2FkZXJPcHRpb25zLnZhbHVlUHJvcGVydHkgfHwgJ3ZhbHVlJ107XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZUN1c3RvbU9wdGlvbigpIHtcbiAgICAgICAgaWYgKCFpc0FycmF5KHRoaXMuY3VzdG9tT3B0aW9ucykgfHwgdGhpcy5jdXN0b21PcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHNlbGVjdGVkQ3VzdG9tT3B0aW9ucyA9IHRoaXMuZ2V0U2VsZWN0ZWRDdXN0b21PcHRpb25zKCk7XG4gICAgICAgIHNlbGVjdGVkQ3VzdG9tT3B0aW9ucy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVTZWxlY3RlZEl0ZW0oaXRlbSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0ZWRDdXN0b21PcHRpb25zKCkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuY2FzY2FkZXJPcHRpb25zLmlzTXVsdGlwbGUgPyB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkIDogdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZFswXTtcbiAgICAgICAgaWYgKCFpc0FycmF5KHNlbGVjdGVkKSkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlS2V5ID0gdGhpcy5jYXNjYWRlck9wdGlvbnMudmFsdWVQcm9wZXJ0eTtcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkLmZpbHRlcihpdGVtID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWQgPSBnZXQoaXRlbSwgYHRoeVJhd1ZhbHVlLnZhbHVlLjAuJHt2YWx1ZUtleX1gKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmN1c3RvbU9wdGlvbnMuc29tZShvcHRpb24gPT4gZ2V0KG9wdGlvbiwgdmFsdWVLZXkpID09PSBzZWxlY3RlZElkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdG9BcnJheTxUPih2YWx1ZTogVCB8IFRbXSk6IFRbXSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH0gZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gW3ZhbHVlXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFycmF5RXF1YWxzPFQ+KGFycmF5MTogVFtdLCBhcnJheTI6IFRbXSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyYXkxKSB8fCAhQXJyYXkuaXNBcnJheShhcnJheTIpIHx8IGFycmF5MS5sZW5ndGggIT09IGFycmF5Mi5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhcnJheTEuZXZlcnkoKGVsZW1lbnQsIGluZGV4KSA9PiBlbGVtZW50ID09PSBhcnJheTJbaW5kZXhdKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -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.
|
|
17
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCascaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
17
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", 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.
|
|
29
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", 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.
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCascaderModule, decorators: [{
|
|
43
43
|
type: NgModule,
|
|
44
44
|
args: [{
|
|
45
45
|
imports: [
|
|
@@ -24,8 +24,8 @@ export class ThyCheckbox extends ThyFormCheckBaseComponent {
|
|
|
24
24
|
super(thyTranslate);
|
|
25
25
|
this.isIndeterminate = false;
|
|
26
26
|
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCheckbox, deps: [{ token: i1.ThyTranslate }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.1.4", 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: [
|
|
29
29
|
{
|
|
30
30
|
provide: NG_VALUE_ACCESSOR,
|
|
31
31
|
useExisting: forwardRef(() => ThyCheckbox),
|
|
@@ -33,7 +33,7 @@ export class ThyCheckbox extends ThyFormCheckBaseComponent {
|
|
|
33
33
|
}
|
|
34
34
|
], 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<span class=\"form-check-label\" *ngIf=\"_labelText\">{{ _labelText }}</span>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
35
35
|
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCheckbox, decorators: [{
|
|
37
37
|
type: Component,
|
|
38
38
|
args: [{ selector: 'thy-checkbox,[thy-checkbox],[thyCheckbox]', providers: [
|
|
39
39
|
{
|
|
@@ -4,11 +4,11 @@ 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.
|
|
8
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.
|
|
9
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: ThyCheckboxModule, imports: [CommonModule, FormsModule, ThyCheckbox], exports: [ThyCheckbox] }); }
|
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCheckboxModule, imports: [CommonModule, FormsModule] }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCheckboxModule, decorators: [{
|
|
12
12
|
type: NgModule,
|
|
13
13
|
args: [{
|
|
14
14
|
imports: [CommonModule, FormsModule, ThyCheckbox],
|
|
@@ -58,10 +58,10 @@ export class ThyCollapseItem {
|
|
|
58
58
|
ngOnDestroy() {
|
|
59
59
|
this.thyCollapseComponent.removePanel(this);
|
|
60
60
|
}
|
|
61
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
62
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCollapseItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ThyCollapse, host: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.1.4", 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 <ng-container *ngIf=\"showArrow\">\n <ng-container *ngIf=\"arrowIconTemplate; else defaultIcon\">\n <ng-template [ngTemplateOutlet]=\"arrowIconTemplate\"></ng-template>\n </ng-container>\n <ng-template #defaultIcon>\n <thy-icon [thyIconName]=\"arrowIcon || 'angle-right'\" class=\"thy-collapse-icon\" [thyIconRotate]=\"thyActive ? -90 : 0\"></thy-icon>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"thyHeaderTemplate; else defaultHeader\">\n <ng-template [ngTemplateOutlet]=\"thyHeaderTemplate\"></ng-template>\n </ng-container>\n <ng-template #defaultHeader>\n <ng-container>\n <span class=\"d-flex thy-collapse-title\"> {{ thyTitle }}</span></ng-container\n >\n </ng-template>\n\n <div class=\"thy-collapse-extra\" *ngIf=\"thyExtra\">\n <ng-template [ngTemplateOutlet]=\"thyExtra\"></ng-template>\n </div>\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: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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 }); }
|
|
63
63
|
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCollapseItem, decorators: [{
|
|
65
65
|
type: Component,
|
|
66
66
|
args: [{ selector: 'thy-collapse-panel, thy-collapse-item', exportAs: 'ThyCollapseComponent', animations: [collapseMotion], host: {
|
|
67
67
|
'[class.thy-collapse-item]': 'true',
|
|
@@ -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.
|
|
45
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.
|
|
44
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCollapse, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.1.4", 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.
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCollapse, decorators: [{
|
|
52
52
|
type: Component,
|
|
53
53
|
args: [{
|
|
54
54
|
selector: 'thy-collapse',
|
|
@@ -8,11 +8,11 @@ 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.
|
|
12
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.
|
|
13
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCollapseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", 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.1.4", ngImport: i0, type: ThyCollapseModule, imports: [CommonModule, FormsModule, OverlayModule, ThyInputModule, ThyIconModule, ThyCollapseItem] }); }
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCollapseModule, decorators: [{
|
|
16
16
|
type: NgModule,
|
|
17
17
|
args: [{
|
|
18
18
|
imports: [CommonModule, FormsModule, OverlayModule, ThyInputModule, ThyIconModule, ThyCollapse, ThyCollapseItem],
|
|
@@ -21,10 +21,10 @@ export class ThyColorPickerCustomPanel {
|
|
|
21
21
|
this.color = this.colorInstance.displayValue;
|
|
22
22
|
this.pickerColorChange(this.color);
|
|
23
23
|
}
|
|
24
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
25
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyColorPickerCustomPanel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ThyColorPickerCustomPanel, isStandalone: true, selector: "thy-color-picker-custom-panel", inputs: { color: "color", pickerColorChange: "pickerColorChange" }, host: { properties: { "class.thy-color-picker-custom-panel": "this.className" } }, ngImport: i0, template: "<thy-saturation [color]=\"colorInstance\" (colorChange)=\"colorChangeEvent($event)\"></thy-saturation>\n<div class=\"controls\">\n <div class=\"indicator-hue-alp\">\n <div class=\"rows\">\n <thy-hue [color]=\"colorInstance\" (colorChange)=\"colorChangeEvent($event)\"></thy-hue>\n <thy-alpha [color]=\"colorInstance\" (colorChange)=\"colorChangeEvent($event)\"></thy-alpha>\n </div>\n <thy-indicator [color]=\"colorInstance\" (colorChange)=\"colorChangeEvent($event)\"></thy-indicator>\n </div>\n</div>\n<thy-color-inputs [color]=\"colorInstance\" (colorChange)=\"colorChangeEvent($event)\"></thy-color-inputs>\n", dependencies: [{ kind: "component", type: ThySaturation, selector: "thy-saturation", inputs: ["color"], outputs: ["colorChange"] }, { kind: "component", type: ThyHue, selector: "thy-hue", inputs: ["color"], outputs: ["colorChange"] }, { kind: "component", type: ThyAlpha, selector: "thy-alpha", inputs: ["color"], outputs: ["colorChange"] }, { kind: "component", type: ThyIndicator, selector: "thy-indicator", inputs: ["color"] }, { kind: "component", type: ThyColorInputs, selector: "thy-color-inputs", inputs: ["color"], outputs: ["colorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26
26
|
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyColorPickerCustomPanel, decorators: [{
|
|
28
28
|
type: Component,
|
|
29
29
|
args: [{ selector: 'thy-color-picker-custom-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ThySaturation, ThyHue, ThyAlpha, ThyIndicator, ThyColorInputs], template: "<thy-saturation [color]=\"colorInstance\" (colorChange)=\"colorChangeEvent($event)\"></thy-saturation>\n<div class=\"controls\">\n <div class=\"indicator-hue-alp\">\n <div class=\"rows\">\n <thy-hue [color]=\"colorInstance\" (colorChange)=\"colorChangeEvent($event)\"></thy-hue>\n <thy-alpha [color]=\"colorInstance\" (colorChange)=\"colorChangeEvent($event)\"></thy-alpha>\n </div>\n <thy-indicator [color]=\"colorInstance\" (colorChange)=\"colorChangeEvent($event)\"></thy-indicator>\n </div>\n</div>\n<thy-color-inputs [color]=\"colorInstance\" (colorChange)=\"colorChangeEvent($event)\"></thy-color-inputs>\n" }]
|
|
30
30
|
}], ctorParameters: () => [], propDecorators: { className: [{
|
|
@@ -73,10 +73,10 @@ export class ThyColorPickerPanel {
|
|
|
73
73
|
const hsp = 0.299 * rgba.red + 0.587 * rgba.green + 0.114 * rgba.blue;
|
|
74
74
|
return hsp > 192 ? 'black' : 'white';
|
|
75
75
|
}
|
|
76
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
77
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.
|
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyColorPickerPanel, deps: [{ token: i1.ThyPopover }, { token: i0.ViewContainerRef }, { token: i1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.1.4", type: ThyColorPickerPanel, isStandalone: true, selector: "thy-color-picker-panel", inputs: { color: "color", colorChange: "colorChange", defaultColor: "defaultColor", transparentColorSelectable: ["transparentColorSelectable", "transparentColorSelectable", coerceBooleanProperty], defaultColors: "defaultColors" }, host: { properties: { "class.pt-4": "!transparentColorSelectable", "class.thy-color-picker-panel": "this.className" } }, ngImport: i0, template: "<ng-container *ngIf=\"customDefaultColor\">\n <div class=\"quick-color\" [ngClass]=\"transparentColorSelectable ? ' mb-0 pb-0' : ''\" (click)=\"selectColor(defaultColor)\">\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: defaultColor }\"></ng-template>\n <span class=\"ml-2 font-size-sm text-secondary\">\u9ED8\u8BA4\u989C\u8272</span>\n </div>\n</ng-container>\n<div\n *ngIf=\"transparentColorSelectable\"\n class=\"quick-color\"\n [ngClass]=\"customDefaultColor ? 'mt-0 pt-0' : ''\"\n (click)=\"selectColor('transparent')\"\n>\n <div class=\"color-block\"></div>\n <span class=\"ml-2 font-size-sm text-secondary\">\u65E0\u586B\u5145\u8272</span>\n</div>\n<div class=\"main-content\">\n <div class=\"default-color\">\n <ng-container *ngFor=\"let item of defaultColors\">\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </ng-container>\n </div>\n <p class=\"font-size-sm text-secondary recent-text\">\u6700\u8FD1\u4F7F\u7528\u81EA\u5B9A\u4E49\u989C\u8272</p>\n <div class=\"recent-color-container\">\n <ng-container *ngFor=\"let item of recentColors\">\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </ng-container>\n <div class=\"font-size-sm px-1 text-muted\" *ngIf=\"recentColors.length === 0\">\n \u6682\u65E0\n </div>\n </div>\n</div>\n<div class=\"more-color\" (click)=\"showMoreColor($event)\">\n <thy-icon thyIconName=\"palette\" class=\"mr-2\"></thy-icon>\n <span class=\"font-size-sm custom-text\">\u81EA\u5B9A\u4E49\u989C\u8272</span>\n <thy-icon thyDropdownMenuItemExtendIcon thyIconName=\"angle-right\"></thy-icon>\n</div>\n\n<ng-template #checkIconTpl let-colorItem>\n <div\n class=\"color-item\"\n [ngStyle]=\"{ background: colorItem }\"\n [ngClass]=\"colorItem === '#FFFFFF' ? 'item-border' : ''\"\n (click)=\"selectColor(colorItem)\"\n >\n <thy-icon\n thyIconName=\"check-thick\"\n class=\"check-icon\"\n [ngClass]=\"color === colorItem ? (getIconColor(colorItem) === 'white' ? 'checked white-check' : 'checked black-check') : ''\"\n ></thy-icon>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
78
78
|
}
|
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyColorPickerPanel, decorators: [{
|
|
80
80
|
type: Component,
|
|
81
81
|
args: [{ selector: 'thy-color-picker-panel', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
82
82
|
'[class.pt-4]': '!transparentColorSelectable'
|
|
@@ -229,8 +229,8 @@ export class ThyColorPickerDirective extends _BaseMixin {
|
|
|
229
229
|
this.dispose();
|
|
230
230
|
this.popoverRef = null;
|
|
231
231
|
}
|
|
232
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
233
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.
|
|
232
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyColorPickerDirective, deps: [{ token: i1.ThyPopover }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: i2.Platform }, { token: i3.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
233
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.1.4", type: ThyColorPickerDirective, isStandalone: true, selector: "[thyColorPicker]", inputs: { thyOffset: ["thyOffset", "thyOffset", numberAttribute], thyHasBackdrop: ["thyHasBackdrop", "thyHasBackdrop", coerceBooleanProperty], thyDefaultColor: "thyDefaultColor", thyTransparentColorSelectable: ["thyTransparentColorSelectable", "thyTransparentColorSelectable", coerceBooleanProperty], thyPresetColors: "thyPresetColors", thyPlacement: "thyPlacement", thyTrigger: "thyTrigger", thyShowDelay: ["thyShowDelay", "thyShowDelay", numberAttribute], thyHideDelay: ["thyHideDelay", "thyHideDelay", numberAttribute], thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty] }, outputs: { thyPanelOpen: "thyPanelOpen", thyPanelClose: "thyPanelClose" }, host: { properties: { "attr.tabindex": "tabIndex", "class.thy-color-picker-disabled": "disabled" }, classAttribute: "thy-color-picker" }, providers: [
|
|
234
234
|
{
|
|
235
235
|
provide: NG_VALUE_ACCESSOR,
|
|
236
236
|
multi: true,
|
|
@@ -238,7 +238,7 @@ export class ThyColorPickerDirective extends _BaseMixin {
|
|
|
238
238
|
}
|
|
239
239
|
], usesInheritance: true, ngImport: i0 }); }
|
|
240
240
|
}
|
|
241
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
241
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyColorPickerDirective, decorators: [{
|
|
242
242
|
type: Directive,
|
|
243
243
|
args: [{
|
|
244
244
|
selector: '[thyColorPicker]',
|
|
@@ -49,10 +49,10 @@ export class ThyCoordinatesDirective {
|
|
|
49
49
|
ngOnDestroy() {
|
|
50
50
|
this.sub?.unsubscribe();
|
|
51
51
|
}
|
|
52
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
53
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCoordinatesDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
53
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: ThyCoordinatesDirective, isStandalone: true, selector: "[thyColorCoordinates]", outputs: { coordinatesChange: "coordinatesChange" }, host: { listeners: { "mousedown": "mousedown($event,$event.pageX,$event.pageY)", "window:mousemove": "mousemove($event,$event.pageX,$event.pageY)", "window:mouseup": "mouseup()" } }, ngImport: i0 }); }
|
|
54
54
|
}
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCoordinatesDirective, decorators: [{
|
|
56
56
|
type: Directive,
|
|
57
57
|
args: [{
|
|
58
58
|
selector: '[thyColorCoordinates]',
|
|
@@ -17,8 +17,8 @@ import { ThyInputNumberModule } from 'ngx-tethys/input-number';
|
|
|
17
17
|
import { ThySharedModule } from 'ngx-tethys/shared';
|
|
18
18
|
import * as i0 from "@angular/core";
|
|
19
19
|
export class ThyColorPickerModule {
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
21
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyColorPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
21
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: ThyColorPickerModule, imports: [CommonModule,
|
|
22
22
|
ThyDialogModule,
|
|
23
23
|
ThyInputModule,
|
|
24
24
|
ThyIconModule,
|
|
@@ -34,7 +34,7 @@ export class ThyColorPickerModule {
|
|
|
34
34
|
ThyCoordinatesDirective,
|
|
35
35
|
ThyColorPickerPanel,
|
|
36
36
|
ThyColorInputs], exports: [ThyColorPickerDirective] }); }
|
|
37
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.
|
|
37
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyColorPickerModule, imports: [CommonModule,
|
|
38
38
|
ThyDialogModule,
|
|
39
39
|
ThyInputModule,
|
|
40
40
|
ThyIconModule,
|
|
@@ -45,7 +45,7 @@ export class ThyColorPickerModule {
|
|
|
45
45
|
ThyColorPickerPanel,
|
|
46
46
|
ThyColorInputs] }); }
|
|
47
47
|
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyColorPickerModule, decorators: [{
|
|
49
49
|
type: NgModule,
|
|
50
50
|
args: [{
|
|
51
51
|
imports: [
|
|
@@ -41,10 +41,10 @@ export class ThyAlpha {
|
|
|
41
41
|
this.changePointerPosition(x);
|
|
42
42
|
this.colorChange.emit(new ThyColor({ h: this.color.hue, s: this.color.saturation, v: this.color.value, alpha: x }));
|
|
43
43
|
}
|
|
44
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
45
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.
|
|
44
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyAlpha, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ThyAlpha, isStandalone: true, selector: "thy-alpha", inputs: { color: "color" }, outputs: { colorChange: "colorChange" }, host: { properties: { "class.thy-alpha": "this.className" } }, viewQueries: [{ propertyName: "pointer", first: true, predicate: ["pointer"], descendants: true, static: true }, { propertyName: "gradient", first: true, predicate: ["gradient"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"gradient-container\" thyColorCoordinates (coordinatesChange)=\"handleChange($event)\">\n <div class=\"gradient-color\" #gradient>\n <div class=\"pointer-container\">\n <div class=\"pointer\" #pointer></div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: ThyCoordinatesDirective, selector: "[thyColorCoordinates]", outputs: ["coordinatesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
46
46
|
}
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyAlpha, decorators: [{
|
|
48
48
|
type: Component,
|
|
49
49
|
args: [{ selector: 'thy-alpha', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ThyCoordinatesDirective], template: "<div class=\"gradient-container\" thyColorCoordinates (coordinatesChange)=\"handleChange($event)\">\n <div class=\"gradient-color\" #gradient>\n <div class=\"pointer-container\">\n <div class=\"pointer\" #pointer></div>\n </div>\n </div>\n</div>\n" }]
|
|
50
50
|
}], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { className: [{
|
|
@@ -34,10 +34,10 @@ export class ThyHue {
|
|
|
34
34
|
this.changePointerPosition(x * 360);
|
|
35
35
|
this.colorChange.emit(new ThyColor({ h: x * 360, s: this.color.saturation, v: this.color.value, alpha: this.color.alpha }));
|
|
36
36
|
}
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
38
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyHue, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ThyHue, isStandalone: true, selector: "thy-hue", inputs: { color: "color" }, outputs: { colorChange: "colorChange" }, host: { properties: { "class.thy-hue": "this.className" } }, viewQueries: [{ propertyName: "pointer", first: true, predicate: ["pointer"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"hue-contianer\">\n <div class=\"pointer-container\" thyColorCoordinates (coordinatesChange)=\"handleChange($event)\">\n <div class=\"pointer\" #pointer></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: ThyCoordinatesDirective, selector: "[thyColorCoordinates]", outputs: ["coordinatesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39
39
|
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyHue, decorators: [{
|
|
41
41
|
type: Component,
|
|
42
42
|
args: [{ selector: 'thy-hue', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ThyCoordinatesDirective], template: "<div class=\"hue-contianer\">\n <div class=\"pointer-container\" thyColorCoordinates (coordinatesChange)=\"handleChange($event)\">\n <div class=\"pointer\" #pointer></div>\n </div>\n</div>\n" }]
|
|
43
43
|
}], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { className: [{
|
|
@@ -11,10 +11,10 @@ export class ThyIndicator {
|
|
|
11
11
|
get backgroundColor() {
|
|
12
12
|
return this.color.rgba.toString();
|
|
13
13
|
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyIndicator, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ThyIndicator, isStandalone: true, selector: "thy-indicator", inputs: { color: "color" }, host: { properties: { "class.thy-indicator": "this.className" } }, ngImport: i0, template: "<div [style.backgroundColor]=\"backgroundColor\" class=\"icon-container\"></div>\n" }); }
|
|
16
16
|
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyIndicator, decorators: [{
|
|
18
18
|
type: Component,
|
|
19
19
|
args: [{ selector: 'thy-indicator', standalone: true, template: "<div [style.backgroundColor]=\"backgroundColor\" class=\"icon-container\"></div>\n" }]
|
|
20
20
|
}], propDecorators: { className: [{
|
|
@@ -34,10 +34,10 @@ export class ThyColorInputs {
|
|
|
34
34
|
}
|
|
35
35
|
this.colorChange.emit(newColor);
|
|
36
36
|
}
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
38
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyColorInputs, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ThyColorInputs, isStandalone: true, selector: "thy-color-inputs", inputs: { color: "color" }, outputs: { colorChange: "colorChange" }, host: { properties: { "class.thy-color-inputs": "this.className" } }, ngImport: i0, template: "<div class=\"hex-column\">\n <input\n #elRef\n thySize=\"xs\"\n class=\"px-0 text-center\"\n thyInput\n [(ngModel)]=\"color.displayValue\"\n (blur)=\"onInputChange($event, 'hex')\"\n (thyEnter)=\"onInputChange($event, 'hex')\"\n />\n <span>HEX</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n thySize=\"xs\"\n [thyMin]=\"0\"\n [thyMax]=\"255\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"color.rgba.red\"\n (thyBlur)=\"onInputChange($event, 'R')\"\n (thyEnter)=\"onInputChange($event, 'R')\"\n ></thy-input-number>\n <span>R</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n thySize=\"xs\"\n [thyMin]=\"0\"\n [thyMax]=\"255\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"color.rgba.green\"\n (thyBlur)=\"onInputChange($event, 'G')\"\n (thyEnter)=\"onInputChange($event, 'G')\"\n ></thy-input-number>\n <span>G</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n thySize=\"xs\"\n [thyMin]=\"0\"\n [thyMax]=\"255\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"color.rgba.blue\"\n (thyBlur)=\"onInputChange($event, 'B')\"\n (thyEnter)=\"onInputChange($event, 'B')\"\n ></thy-input-number>\n <span>B</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n [thyMin]=\"0\"\n [thyMax]=\"100\"\n thySize=\"xs\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"alpha\"\n (thyBlur)=\"onInputChange($event, 'A')\"\n (thyEnter)=\"onInputChange($event, 'A')\"\n ></thy-input-number>\n <span>A</span>\n</div>\n", dependencies: [{ kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "component", type: ThyInputNumber, selector: "thy-input-number", inputs: ["thyAutoFocus", "thyPlaceholder", "thyDisabled", "thyMax", "thyMin", "thyStep", "thyStepDelay", "thySize", "thyPrecision", "thySuffix"], outputs: ["thyBlur", "thyFocus", "thyStepChange"] }] }); }
|
|
39
39
|
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyColorInputs, decorators: [{
|
|
41
41
|
type: Component,
|
|
42
42
|
args: [{ selector: 'thy-color-inputs', standalone: true, imports: [ThyInputDirective, FormsModule, ThyEnterDirective, ThyInputNumber], template: "<div class=\"hex-column\">\n <input\n #elRef\n thySize=\"xs\"\n class=\"px-0 text-center\"\n thyInput\n [(ngModel)]=\"color.displayValue\"\n (blur)=\"onInputChange($event, 'hex')\"\n (thyEnter)=\"onInputChange($event, 'hex')\"\n />\n <span>HEX</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n thySize=\"xs\"\n [thyMin]=\"0\"\n [thyMax]=\"255\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"color.rgba.red\"\n (thyBlur)=\"onInputChange($event, 'R')\"\n (thyEnter)=\"onInputChange($event, 'R')\"\n ></thy-input-number>\n <span>R</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n thySize=\"xs\"\n [thyMin]=\"0\"\n [thyMax]=\"255\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"color.rgba.green\"\n (thyBlur)=\"onInputChange($event, 'G')\"\n (thyEnter)=\"onInputChange($event, 'G')\"\n ></thy-input-number>\n <span>G</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n thySize=\"xs\"\n [thyMin]=\"0\"\n [thyMax]=\"255\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"color.rgba.blue\"\n (thyBlur)=\"onInputChange($event, 'B')\"\n (thyEnter)=\"onInputChange($event, 'B')\"\n ></thy-input-number>\n <span>B</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n [thyMin]=\"0\"\n [thyMax]=\"100\"\n thySize=\"xs\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"alpha\"\n (thyBlur)=\"onInputChange($event, 'A')\"\n (thyEnter)=\"onInputChange($event, 'A')\"\n ></thy-input-number>\n <span>A</span>\n</div>\n" }]
|
|
43
43
|
}], propDecorators: { className: [{
|
|
@@ -45,10 +45,10 @@ export class ThySaturation {
|
|
|
45
45
|
this.changePointerPosition(s * 100, v * 100);
|
|
46
46
|
this.colorChange.emit(new ThyColor({ h: this.color.hue, s: s * 100, v: v * 100, alpha: this.color.alpha }));
|
|
47
47
|
}
|
|
48
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
49
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.
|
|
48
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThySaturation, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
49
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ThySaturation, isStandalone: true, selector: "thy-saturation", inputs: { color: "color" }, outputs: { colorChange: "colorChange" }, host: { properties: { "class.thy-saturation": "this.className" } }, viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true, static: true }, { propertyName: "pointer", first: true, predicate: ["pointer"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"color-panel\" #panel thyColorCoordinates (coordinatesChange)=\"handleChange($event)\">\n <div class=\"color-panel-white\"></div>\n <div class=\"color-panel-black\"></div>\n <div class=\"color-panel-pointer\" #pointer></div>\n</div>\n", dependencies: [{ kind: "directive", type: ThyCoordinatesDirective, selector: "[thyColorCoordinates]", outputs: ["coordinatesChange"] }] }); }
|
|
50
50
|
}
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThySaturation, decorators: [{
|
|
52
52
|
type: Component,
|
|
53
53
|
args: [{ selector: 'thy-saturation', standalone: true, imports: [ThyCoordinatesDirective], template: "<div class=\"color-panel\" #panel thyColorCoordinates (coordinatesChange)=\"handleChange($event)\">\n <div class=\"color-panel-white\"></div>\n <div class=\"color-panel-black\"></div>\n <div class=\"color-panel-pointer\" #pointer></div>\n</div>\n" }]
|
|
54
54
|
}], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { className: [{
|
|
@@ -4,10 +4,10 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
* @private
|
|
5
5
|
*/
|
|
6
6
|
export class ThyCommentActionsDirective {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
8
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCommentActionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: ThyCommentActionsDirective, isStandalone: true, selector: "[thyCommentActions]", host: { classAttribute: "thy-comment-actions" }, exportAs: ["thyCommentActions"], ngImport: i0 }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyCommentActionsDirective, decorators: [{
|
|
11
11
|
type: Directive,
|
|
12
12
|
args: [{
|
|
13
13
|
selector: '[thyCommentActions]',
|