ngx-tethys 18.0.8 → 18.1.0-next.1
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 +19 -1
- package/action/action.component.d.ts +1 -2
- package/affix/affix.component.d.ts +2 -4
- package/alert/alert.component.d.ts +11 -19
- package/anchor/anchor-link.component.d.ts +2 -4
- package/anchor/anchor.component.d.ts +2 -7
- package/arrow-switcher/arrow-switcher.component.d.ts +1 -2
- package/autocomplete/autocomplete.component.d.ts +1 -2
- package/autocomplete/autocomplete.trigger.directive.d.ts +3 -5
- package/autocomplete/overlay/autocomplete-container.component.d.ts +4 -4
- package/autocomplete/overlay/autocomplete.service.d.ts +3 -5
- package/avatar/avatar.component.d.ts +1 -3
- package/avatar/avatar.pipe.d.ts +0 -2
- package/back-top/back-top.component.d.ts +2 -4
- package/badge/badge.component.d.ts +2 -2
- package/breadcrumb/breadcrumb-item.component.d.ts +1 -2
- package/breadcrumb/breadcrumb.component.d.ts +1 -2
- package/button/button.component.d.ts +1 -2
- package/calendar/calendar-header.component.d.ts +1 -2
- package/calendar/calendar.component.d.ts +1 -2
- package/carousel/carousel-item.directive.d.ts +1 -2
- package/carousel/carousel.component.d.ts +1 -4
- package/carousel/carousel.service.d.ts +1 -2
- package/cascader/cascader.component.d.ts +4 -4
- package/checkbox/checkbox.component.d.ts +0 -2
- package/collapse/collapse-item.component.d.ts +2 -4
- package/color-picker/color-picker-panel.component.d.ts +2 -3
- package/color-picker/color-picker.component.d.ts +2 -4
- package/color-picker/coordinates.directive.d.ts +1 -2
- package/color-picker/parts/alpha/alpha.component.d.ts +1 -2
- package/color-picker/parts/hue/hue.component.d.ts +1 -2
- package/color-picker/parts/saturation/saturation.component.d.ts +1 -2
- package/copy/copy.directive.d.ts +0 -2
- package/core/click-positioner.d.ts +0 -2
- package/core/scroll.d.ts +1 -2
- package/core/update-host-class.service.d.ts +1 -2
- package/date-picker/abstract-picker.component.d.ts +1 -1
- package/date-picker/abstract-picker.directive.d.ts +2 -3
- package/date-picker/base-picker.component.d.ts +2 -3
- package/date-picker/date-picker.component.d.ts +2 -2
- package/date-picker/date-picker.directive.d.ts +1 -3
- package/date-picker/date-picker.service.d.ts +2 -2
- package/date-picker/index.d.ts +26 -27
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -2
- package/date-picker/lib/calendar/calendar-header.component.d.ts +0 -1
- package/date-picker/lib/date/date-header.component.d.ts +0 -3
- package/date-picker/lib/date/date-table-cell.component.d.ts +1 -1
- package/date-picker/lib/date/date-table.component.d.ts +1 -3
- package/date-picker/lib/date-carousel/date-carousel.component.d.ts +1 -2
- package/date-picker/lib/decade/decade-header.component.d.ts +1 -1
- package/date-picker/lib/month/month-header.component.d.ts +0 -3
- package/date-picker/lib/month/month-table.component.d.ts +1 -2
- package/date-picker/lib/popups/date-popup.component.d.ts +1 -4
- package/date-picker/lib/popups/inner-popup.component.d.ts +0 -2
- package/date-picker/lib/quarter/quarter-table.component.d.ts +1 -2
- package/date-picker/lib/year/year-header.component.d.ts +0 -1
- package/date-picker/month-picker.component.d.ts +2 -2
- package/date-picker/picker.component.d.ts +1 -3
- package/date-picker/picker.pipes.d.ts +0 -3
- package/date-picker/quarter-picker.component.d.ts +2 -2
- package/date-picker/range-picker.component.d.ts +2 -2
- package/date-picker/range-picker.directive.d.ts +2 -3
- package/date-picker/week-picker.component.d.ts +2 -2
- package/date-picker/year-picker.component.d.ts +2 -2
- package/date-range/date-range.component.d.ts +3 -11
- package/date-range/optional-dates/optional-dates.component.d.ts +0 -2
- package/dialog/body/dialog-body.component.d.ts +0 -2
- package/dialog/confirm/confirm.component.d.ts +2 -3
- package/dialog/dialog-container.component.d.ts +4 -5
- package/dialog/dialog.service.d.ts +4 -4
- package/dialog/footer/dialog-footer.component.d.ts +2 -2
- package/dialog/header/dialog-header.component.d.ts +2 -6
- package/divider/divider.component.d.ts +8 -2
- package/dot/dot.component.d.ts +1 -2
- package/drag-drop/drag-content.directive.d.ts +2 -3
- package/drag-drop/drag-handle.directive.d.ts +2 -3
- package/drag-drop/drag.directive.d.ts +4 -5
- package/drag-drop/drop-container.directive.d.ts +6 -3
- package/dropdown/dropdown-active.directive.d.ts +3 -4
- package/dropdown/dropdown-menu-item.directive.d.ts +1 -2
- package/dropdown/dropdown-submenu.component.d.ts +1 -3
- package/dropdown/dropdown.directive.d.ts +3 -5
- package/empty/empty.component.d.ts +6 -6
- package/esm2022/action/action.component.mjs +20 -21
- package/esm2022/affix/affix.component.mjs +11 -14
- package/esm2022/alert/alert.component.mjs +55 -81
- package/esm2022/anchor/anchor-link.component.mjs +23 -16
- package/esm2022/anchor/anchor.component.mjs +27 -24
- package/esm2022/arrow-switcher/arrow-switcher.component.mjs +25 -26
- package/esm2022/autocomplete/autocomplete.component.mjs +11 -11
- package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +30 -37
- package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +11 -15
- package/esm2022/autocomplete/overlay/autocomplete.service.mjs +14 -21
- package/esm2022/avatar/avatar-list/avatar-list.component.mjs +4 -4
- package/esm2022/avatar/avatar.component.mjs +27 -28
- package/esm2022/avatar/avatar.pipe.mjs +6 -7
- package/esm2022/back-top/back-top.component.mjs +14 -18
- package/esm2022/badge/badge.component.mjs +8 -9
- package/esm2022/breadcrumb/breadcrumb-item.component.mjs +7 -7
- package/esm2022/breadcrumb/breadcrumb.component.mjs +15 -17
- package/esm2022/button/button-icon.component.mjs +4 -4
- package/esm2022/button/button.component.mjs +15 -15
- package/esm2022/calendar/calendar-header.component.mjs +15 -15
- package/esm2022/calendar/calendar.component.mjs +14 -15
- package/esm2022/card/header.component.mjs +4 -4
- package/esm2022/carousel/carousel-item.directive.mjs +7 -6
- package/esm2022/carousel/carousel.component.mjs +13 -15
- package/esm2022/carousel/carousel.service.mjs +7 -9
- package/esm2022/cascader/cascader-li.component.mjs +4 -4
- package/esm2022/cascader/cascader-search-option.component.mjs +4 -4
- package/esm2022/cascader/cascader.component.mjs +15 -22
- package/esm2022/checkbox/checkbox.component.mjs +11 -13
- package/esm2022/collapse/collapse-item.component.mjs +21 -24
- package/esm2022/color-picker/color-picker-panel.component.mjs +14 -15
- package/esm2022/color-picker/color-picker.component.mjs +10 -11
- package/esm2022/color-picker/coordinates.directive.mjs +10 -10
- package/esm2022/color-picker/parts/alpha/alpha.component.mjs +6 -6
- package/esm2022/color-picker/parts/hue/hue.component.mjs +6 -6
- package/esm2022/color-picker/parts/saturation/saturation.component.mjs +9 -9
- package/esm2022/comment/comment.component.mjs +4 -4
- package/esm2022/copy/copy.directive.mjs +8 -12
- package/esm2022/core/click-positioner.mjs +6 -7
- package/esm2022/core/scroll.mjs +7 -9
- package/esm2022/core/store/store.mjs +1 -1
- package/esm2022/core/update-host-class.service.mjs +6 -6
- package/esm2022/date-picker/abstract-picker.component.mjs +5 -5
- package/esm2022/date-picker/abstract-picker.directive.mjs +42 -44
- package/esm2022/date-picker/base-picker.component.mjs +26 -26
- package/esm2022/date-picker/date-picker.component.mjs +10 -11
- package/esm2022/date-picker/date-picker.directive.mjs +6 -8
- package/esm2022/date-picker/date-picker.service.mjs +6 -10
- package/esm2022/date-picker/index.mjs +27 -28
- package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +7 -8
- package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +6 -7
- package/esm2022/date-picker/lib/date/date-header.component.mjs +6 -12
- package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +4 -4
- package/esm2022/date-picker/lib/date/date-table.component.mjs +10 -12
- package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +16 -16
- package/esm2022/date-picker/lib/decade/decade-header.component.mjs +8 -11
- package/esm2022/date-picker/lib/decade/decade-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/month/month-header.component.mjs +6 -12
- package/esm2022/date-picker/lib/month/month-table.component.mjs +9 -10
- package/esm2022/date-picker/lib/popups/date-popup.component.mjs +14 -29
- package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +14 -20
- package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +9 -10
- package/esm2022/date-picker/lib/year/year-header.component.mjs +6 -12
- package/esm2022/date-picker/lib/year/year-table.component.mjs +4 -4
- package/esm2022/date-picker/month-picker.component.mjs +9 -11
- package/esm2022/date-picker/picker.component.mjs +24 -35
- package/esm2022/date-picker/picker.pipes.mjs +10 -11
- package/esm2022/date-picker/quarter-picker.component.mjs +9 -11
- package/esm2022/date-picker/range-picker.component.mjs +9 -11
- package/esm2022/date-picker/range-picker.directive.mjs +6 -8
- package/esm2022/date-picker/week-picker.component.mjs +9 -11
- package/esm2022/date-picker/year-picker.component.mjs +9 -11
- package/esm2022/date-range/date-range.component.mjs +17 -18
- package/esm2022/date-range/optional-dates/optional-dates.component.mjs +9 -13
- package/esm2022/dialog/body/dialog-body.component.mjs +11 -12
- package/esm2022/dialog/confirm/confirm.component.mjs +10 -14
- package/esm2022/dialog/dialog-container.component.mjs +13 -18
- package/esm2022/dialog/dialog.service.mjs +10 -17
- package/esm2022/dialog/footer/dialog-footer.component.mjs +10 -14
- package/esm2022/dialog/header/dialog-header.component.mjs +17 -22
- package/esm2022/divider/divider.component.mjs +21 -13
- package/esm2022/dot/dot.component.mjs +7 -7
- package/esm2022/drag-drop/drag-content.directive.mjs +7 -9
- package/esm2022/drag-drop/drag-handle.directive.mjs +7 -9
- package/esm2022/drag-drop/drag.directive.mjs +13 -16
- package/esm2022/drag-drop/drop-container.directive.mjs +13 -13
- package/esm2022/dropdown/dropdown-active.directive.mjs +9 -12
- package/esm2022/dropdown/dropdown-menu-item.directive.mjs +12 -12
- package/esm2022/dropdown/dropdown-menu.component.mjs +11 -7
- package/esm2022/dropdown/dropdown-submenu.component.mjs +9 -10
- package/esm2022/dropdown/dropdown.directive.mjs +12 -10
- package/esm2022/empty/empty.component.mjs +17 -20
- package/esm2022/flexible-text/flexible-text.component.mjs +16 -17
- package/esm2022/form/form-group-error/form-group-error.component.mjs +12 -15
- package/esm2022/form/form-group-label.directive.mjs +9 -10
- package/esm2022/form/form-group.component.mjs +18 -22
- package/esm2022/form/form-submit.directive.mjs +6 -7
- package/esm2022/form/form-validator-loader.mjs +1 -1
- package/esm2022/form/form-validator.service.mjs +12 -13
- package/esm2022/form/form.directive.mjs +11 -16
- package/esm2022/form/from-group-footer/form-group-footer.component.mjs +13 -19
- package/esm2022/form/validator/unique-validator.directive.mjs +7 -10
- package/esm2022/fullscreen/fullscreen.component.mjs +10 -11
- package/esm2022/fullscreen/fullscreen.service.mjs +7 -10
- package/esm2022/grid/thy-col.directive.mjs +9 -14
- package/esm2022/grid/thy-grid-item.component.mjs +8 -14
- package/esm2022/grid/thy-grid.component.mjs +7 -8
- package/esm2022/guider/guider-hint/guider-hint.component.mjs +4 -4
- package/esm2022/guider/guider.directive.mjs +8 -9
- package/esm2022/guider/guider.service.mjs +12 -19
- package/esm2022/icon/icon-registry.mjs +11 -16
- package/esm2022/icon/icon.component.mjs +8 -9
- package/esm2022/image/image-group.component.mjs +7 -7
- package/esm2022/image/image.directive.mjs +11 -12
- package/esm2022/image/image.service.mjs +8 -14
- package/esm2022/image/preview/image-preview.component.mjs +36 -41
- package/esm2022/input/input-count.component.mjs +7 -10
- package/esm2022/input/input-group.component.mjs +15 -16
- package/esm2022/input/input-search.component.mjs +9 -10
- package/esm2022/input/input.component.mjs +17 -17
- package/esm2022/input/input.directive.mjs +12 -17
- package/esm2022/input-number/input-number.component.mjs +6 -6
- package/esm2022/layout/header.component.mjs +4 -4
- package/esm2022/layout/sidebar-header.component.mjs +4 -4
- package/esm2022/layout/sidebar.component.mjs +125 -121
- package/esm2022/list/list-item-meta.component.mjs +4 -4
- package/esm2022/list/selection/selection-list.mjs +25 -25
- package/esm2022/loading/loading.component.mjs +10 -11
- package/esm2022/mention/mention.directive.mjs +9 -14
- package/esm2022/mention/suggestions/suggestions.component.mjs +11 -12
- package/esm2022/menu/group/menu-group.component.mjs +37 -38
- package/esm2022/menu/item/action/menu-item-action.component.mjs +15 -16
- package/esm2022/menu/item/menu-item.component.mjs +8 -9
- package/esm2022/message/abstract/abstract-message-container.component.mjs +5 -5
- package/esm2022/message/abstract/abstract-message.component.mjs +6 -6
- package/esm2022/message/message-container.component.mjs +21 -15
- package/esm2022/message/message-queue.service.mjs +6 -8
- package/esm2022/message/message.component.mjs +9 -10
- package/esm2022/message/message.service.mjs +10 -11
- package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +4 -5
- package/esm2022/nav/icon-nav/icon-nav.component.mjs +6 -6
- package/esm2022/nav/nav-ink-bar.directive.mjs +9 -14
- package/esm2022/nav/nav-item.directive.mjs +8 -11
- package/esm2022/nav/nav.component.mjs +35 -38
- package/esm2022/nav/nav.pipe.mjs +6 -7
- package/esm2022/notify/notify-container.component.mjs +11 -14
- package/esm2022/notify/notify-queue.service.mjs +6 -8
- package/esm2022/notify/notify.component.mjs +10 -10
- package/esm2022/notify/notify.service.mjs +11 -12
- package/esm2022/pagination/pagination.component.mjs +41 -46
- package/esm2022/pagination/pagination.pipe.mjs +6 -7
- package/esm2022/popover/header/popover-header.component.mjs +15 -17
- package/esm2022/popover/popover-container.component.mjs +11 -13
- package/esm2022/popover/popover.directive.mjs +13 -12
- package/esm2022/popover/popover.service.mjs +14 -26
- package/esm2022/progress/progress-circle.component.mjs +4 -7
- package/esm2022/progress/progress-strip.component.mjs +10 -13
- package/esm2022/progress/progress.component.mjs +5 -8
- package/esm2022/property/property-item.component.mjs +13 -16
- package/esm2022/property-operation/property-operation.component.mjs +27 -28
- package/esm2022/radio/button/radio-button.component.mjs +9 -15
- package/esm2022/radio/group/radio-group.component.mjs +17 -17
- package/esm2022/radio/radio.component.mjs +12 -18
- package/esm2022/rate/rate.component.mjs +10 -10
- package/esm2022/resizable/resizable.directive.mjs +10 -12
- package/esm2022/resizable/resizable.service.mjs +7 -9
- package/esm2022/resizable/resize-handle.component.mjs +16 -14
- package/esm2022/resizable/resize-handles.component.mjs +12 -5
- package/esm2022/result/result.component.mjs +4 -4
- package/esm2022/segment/segment-item.component.mjs +15 -18
- package/esm2022/segment/segment.component.mjs +29 -30
- package/esm2022/select/custom-select/custom-select.component.mjs +19 -35
- package/esm2022/select/native-select/native-select.component.mjs +10 -11
- package/esm2022/shared/base-form-check.component.mjs +7 -8
- package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +7 -7
- package/esm2022/shared/directives/thy-autofocus.directive.mjs +10 -10
- package/esm2022/shared/directives/thy-contextmenu.directive.mjs +8 -8
- package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +8 -8
- package/esm2022/shared/directives/thy-enter.directive.mjs +8 -8
- package/esm2022/shared/directives/thy-scroll.directive.mjs +21 -21
- package/esm2022/shared/directives/thy-show.mjs +11 -11
- package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +7 -5
- package/esm2022/shared/directives/view-outlet.directive.mjs +7 -7
- package/esm2022/shared/ng-transclude.directive.mjs +6 -5
- package/esm2022/shared/option/group/option-group.component.mjs +10 -10
- package/esm2022/shared/option/list-option/list-option.component.mjs +14 -22
- package/esm2022/shared/option/option.component.mjs +11 -22
- package/esm2022/shared/select/select-control/select-control.component.mjs +27 -27
- package/esm2022/skeleton/skeleton-circle.component.mjs +7 -15
- package/esm2022/skeleton/skeleton-rectangle.component.mjs +7 -15
- package/esm2022/skeleton/stylized/bullet-list.component.mjs +8 -9
- package/esm2022/skeleton/stylized/list.component.mjs +8 -9
- package/esm2022/skeleton/stylized/paragraph.component.mjs +8 -9
- package/esm2022/slide/drawer/drawer-container.directive.mjs +6 -6
- package/esm2022/slide/slide-container.component.mjs +12 -16
- package/esm2022/slide/slide-header/slide-header.component.mjs +13 -14
- package/esm2022/slide/slide-ref.service.mjs +1 -1
- package/esm2022/slide/slide.service.mjs +8 -12
- package/esm2022/slider/slider.component.mjs +8 -8
- package/esm2022/space/space.component.mjs +16 -16
- package/esm2022/statistic/statistic.component.mjs +23 -23
- package/esm2022/stepper/step.component.mjs +6 -11
- package/esm2022/stepper/stepper-button.directive.mjs +10 -11
- package/esm2022/stepper/stepper.component.mjs +5 -5
- package/esm2022/strength/strength.component.mjs +11 -12
- package/esm2022/switch/switch.component.mjs +11 -11
- package/esm2022/table/table-column.component.mjs +58 -63
- package/esm2022/table/table-skeleton.component.mjs +35 -38
- package/esm2022/table/table.component.mjs +19 -29
- package/esm2022/tabs/tab-content.component.mjs +9 -9
- package/esm2022/tabs/tabs.component.mjs +22 -25
- package/esm2022/tag/tag.component.mjs +22 -22
- package/esm2022/time-picker/inner/inner-time-picker.component.mjs +12 -12
- package/esm2022/time-picker/time-picker-panel.component.mjs +31 -34
- package/esm2022/time-picker/time-picker.component.mjs +33 -43
- package/esm2022/timeline/timeline-item.component.mjs +15 -16
- package/esm2022/timeline/timeline.component.mjs +15 -16
- package/esm2022/tooltip/tooltip.component.mjs +17 -17
- package/esm2022/tooltip/tooltip.directive.mjs +11 -10
- package/esm2022/tooltip/tooltip.service.mjs +9 -13
- package/esm2022/transfer/transfer-list.component.mjs +9 -9
- package/esm2022/transfer/transfer.component.mjs +4 -4
- package/esm2022/tree/tree-node.component.mjs +16 -20
- package/esm2022/tree/tree.component.mjs +90 -96
- package/esm2022/tree-select/tree-select.component.mjs +28 -36
- package/esm2022/typography/bg-color.directive.mjs +9 -9
- package/esm2022/typography/text/text.component.mjs +3 -4
- package/esm2022/typography/text-color.directive.mjs +9 -9
- package/esm2022/upload/file-drop.directive.mjs +1 -1
- package/esm2022/upload/file-select-base.mjs +5 -6
- package/esm2022/upload/file-select.component.mjs +4 -3
- package/esm2022/upload/upload.service.mjs +6 -7
- package/esm2022/version.mjs +2 -2
- package/esm2022/vote/vote.component.mjs +4 -4
- package/esm2022/watermark/watermark.directive.mjs +12 -12
- package/fesm2022/ngx-tethys-action.mjs +20 -20
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +12 -14
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +54 -80
- package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
- package/fesm2022/ngx-tethys-anchor.mjs +48 -35
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +25 -25
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +63 -75
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +32 -32
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +15 -18
- package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
- package/fesm2022/ngx-tethys-badge.mjs +8 -8
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +19 -21
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +16 -16
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +26 -26
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +3 -3
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +23 -24
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +19 -25
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +10 -11
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-collapse.mjs +20 -22
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +47 -45
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +3 -3
- package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +8 -12
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +14 -16
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +2872 -2924
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +24 -26
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +61 -77
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +20 -12
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dot.mjs +6 -6
- package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
- package/fesm2022/ngx-tethys-drag-drop.mjs +33 -37
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +49 -43
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +18 -18
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-flexible-text.mjs +16 -17
- package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +74 -89
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +14 -17
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +20 -29
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +20 -26
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +18 -22
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +60 -65
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +5 -5
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +53 -60
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +129 -124
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +27 -27
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +10 -10
- package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
- package/fesm2022/ngx-tethys-mention.mjs +19 -24
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +56 -57
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +47 -41
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +61 -72
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +31 -34
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +46 -51
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +51 -57
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +15 -24
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property-operation.mjs +27 -27
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +14 -14
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +33 -39
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +9 -9
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +43 -34
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +3 -3
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +41 -44
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +28 -44
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +135 -150
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +33 -47
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +33 -37
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +7 -7
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +16 -16
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-statistic.mjs +22 -22
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +17 -22
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +11 -11
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +10 -10
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +107 -124
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +29 -32
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +21 -21
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +70 -80
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +26 -26
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +35 -36
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +10 -10
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +29 -37
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +102 -110
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +18 -18
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +11 -12
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +3 -3
- package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
- package/fesm2022/ngx-tethys-watermark.mjs +12 -12
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/flexible-text/flexible-text.component.d.ts +1 -3
- package/form/form-group-error/form-group-error.component.d.ts +1 -3
- package/form/form-group-label.directive.d.ts +0 -2
- package/form/form-group.component.d.ts +1 -4
- package/form/form-submit.directive.d.ts +0 -2
- package/form/form-validator.service.d.ts +0 -2
- package/form/form.directive.d.ts +4 -4
- package/form/from-group-footer/form-group-footer.component.d.ts +2 -4
- package/form/validator/unique-validator.directive.d.ts +1 -4
- package/fullscreen/fullscreen.component.d.ts +0 -2
- package/fullscreen/fullscreen.service.d.ts +0 -2
- package/grid/thy-col.directive.d.ts +1 -2
- package/grid/thy-grid-item.component.d.ts +2 -4
- package/grid/thy-grid.component.d.ts +1 -3
- package/guider/guider.directive.d.ts +1 -3
- package/guider/guider.service.d.ts +0 -7
- package/icon/icon-registry.d.ts +1 -3
- package/icon/icon.component.d.ts +1 -3
- package/image/image-group.component.d.ts +1 -2
- package/image/image.directive.d.ts +1 -3
- package/image/image.service.d.ts +2 -2
- package/image/preview/image-preview.component.d.ts +1 -4
- package/input/input-count.component.d.ts +3 -4
- package/input/input-group.component.d.ts +1 -3
- package/input/input-search.component.d.ts +2 -2
- package/input/input.component.d.ts +1 -2
- package/input/input.directive.d.ts +2 -3
- package/input-number/input-number.component.d.ts +2 -2
- package/layout/sidebar.component.d.ts +44 -13
- package/list/selection/selection-list.d.ts +1 -2
- package/loading/loading.component.d.ts +0 -2
- package/loading/styles/loading.scss +3 -1
- package/mention/mention.directive.d.ts +4 -5
- package/mention/suggestions/suggestions.component.d.ts +2 -3
- package/menu/group/menu-group.component.d.ts +30 -8
- package/menu/item/action/menu-item-action.component.d.ts +2 -3
- package/menu/item/menu-item.component.d.ts +1 -2
- package/message/abstract/abstract-message-container.component.d.ts +1 -2
- package/message/abstract/abstract-message.component.d.ts +2 -2
- package/message/message-container.component.d.ts +1 -3
- package/message/message-queue.service.d.ts +1 -2
- package/message/message.component.d.ts +1 -3
- package/message/message.service.d.ts +3 -5
- package/nav/icon-nav/icon-nav.component.d.ts +2 -2
- package/nav/nav-ink-bar.directive.d.ts +2 -4
- package/nav/nav-item.directive.d.ts +3 -4
- package/nav/nav.component.d.ts +1 -3
- package/nav/nav.pipe.d.ts +0 -2
- package/notify/notify-container.component.d.ts +1 -3
- package/notify/notify-queue.service.d.ts +1 -2
- package/notify/notify.component.d.ts +2 -3
- package/notify/notify.service.d.ts +1 -4
- package/package.json +1 -1
- package/pagination/pagination.component.d.ts +2 -4
- package/pagination/pagination.pipe.d.ts +0 -2
- package/popover/header/popover-header.component.d.ts +0 -3
- package/popover/popover-container.component.d.ts +3 -4
- package/popover/popover.directive.d.ts +2 -5
- package/popover/popover.service.d.ts +4 -6
- package/progress/progress-circle.component.d.ts +0 -1
- package/progress/progress-strip.component.d.ts +0 -1
- package/progress/progress.component.d.ts +0 -1
- package/property/property-item.component.d.ts +6 -9
- package/property-operation/property-operation.component.d.ts +1 -3
- package/radio/button/radio-button.component.d.ts +2 -5
- package/radio/group/radio-group.component.d.ts +1 -2
- package/radio/radio.component.d.ts +2 -3
- package/rate/rate.component.d.ts +2 -2
- package/resizable/resizable.directive.d.ts +2 -4
- package/resizable/resizable.service.d.ts +2 -2
- package/resizable/resize-handle.component.d.ts +2 -7
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/segment-item.component.d.ts +4 -5
- package/segment/segment.component.d.ts +2 -7
- package/select/custom-select/custom-select.component.d.ts +5 -5
- package/select/native-select/native-select.component.d.ts +1 -1
- package/shared/base-form-check.component.d.ts +1 -1
- package/shared/directives/string-or-template-outlet.directive.d.ts +1 -2
- package/shared/directives/thy-autofocus.directive.d.ts +0 -2
- package/shared/directives/thy-contextmenu.directive.d.ts +1 -2
- package/shared/directives/thy-ctrl-enter.directive.d.ts +1 -2
- package/shared/directives/thy-enter.directive.d.ts +1 -2
- package/shared/directives/thy-scroll.directive.d.ts +1 -2
- package/shared/directives/thy-show.d.ts +1 -2
- package/shared/directives/thy-stop-propagation.directive.d.ts +2 -2
- package/shared/directives/view-outlet.directive.d.ts +1 -2
- package/shared/ng-transclude.directive.d.ts +1 -1
- package/shared/option/group/option-group.component.d.ts +1 -2
- package/shared/option/list-option/list-option.component.d.ts +6 -7
- package/shared/option/option.component.d.ts +5 -5
- package/shared/select/select-control/select-control.component.d.ts +1 -2
- package/skeleton/skeleton-circle.component.d.ts +1 -4
- package/skeleton/skeleton-rectangle.component.d.ts +5 -5
- package/skeleton/stylized/bullet-list.component.d.ts +9 -1
- package/slide/drawer/drawer-container.directive.d.ts +1 -2
- package/slide/slide-container.component.d.ts +3 -4
- package/slide/slide-header/slide-header.component.d.ts +0 -2
- package/slide/slide.service.d.ts +3 -3
- package/slider/slider.component.d.ts +2 -2
- package/space/space.component.d.ts +1 -2
- package/statistic/statistic.component.d.ts +1 -2
- package/stepper/step.component.d.ts +1 -2
- package/stepper/stepper-button.directive.d.ts +0 -3
- package/strength/strength.component.d.ts +0 -1
- package/switch/switch.component.d.ts +1 -1
- package/table/table-column.component.d.ts +32 -8
- package/table/table-skeleton.component.d.ts +1 -3
- package/table/table.component.d.ts +3 -5
- package/tabs/tabs.component.d.ts +1 -3
- package/tag/tag.component.d.ts +7 -3
- package/time-picker/inner/inner-time-picker.component.d.ts +2 -4
- package/time-picker/time-picker-panel.component.d.ts +1 -3
- package/time-picker/time-picker.component.d.ts +1 -2
- package/timeline/timeline-item.component.d.ts +1 -3
- package/timeline/timeline.component.d.ts +1 -3
- package/tooltip/tooltip.component.d.ts +1 -2
- package/tooltip/tooltip.directive.d.ts +6 -9
- package/tooltip/tooltip.service.d.ts +2 -4
- package/transfer/transfer-list.component.d.ts +1 -2
- package/tree/tree-node.component.d.ts +5 -21
- package/tree/tree.component.d.ts +1 -2
- package/tree-select/tree-select.component.d.ts +5 -6
- package/typography/bg-color.directive.d.ts +0 -2
- package/typography/text-color.directive.d.ts +1 -2
- package/upload/file-select-base.d.ts +2 -3
- package/upload/file-select.component.d.ts +1 -0
- package/upload/upload.service.d.ts +0 -2
- package/watermark/watermark.directive.d.ts +1 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { NgClass,
|
|
2
|
-
import { Component, Directive, ElementRef, EventEmitter,
|
|
1
|
+
import { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { Component, Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, TemplateRef, inject, numberAttribute } from '@angular/core';
|
|
3
3
|
import { ThyHotkeyDispatcher } from '@tethys/cdk/hotkey';
|
|
4
4
|
import { isMacPlatform } from '@tethys/cdk/is';
|
|
5
5
|
import { ThyIcon } from 'ngx-tethys/icon';
|
|
@@ -8,8 +8,6 @@ import { ThyTooltipDirective } from 'ngx-tethys/tooltip';
|
|
|
8
8
|
import { ThyLayoutDirective } from './layout.component';
|
|
9
9
|
import { coerceBooleanProperty } from 'ngx-tethys/util';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "./layout.component";
|
|
12
|
-
import * as i2 from "@tethys/cdk/hotkey";
|
|
13
11
|
const LG_WIDTH = 300;
|
|
14
12
|
const SIDEBAR_DEFAULT_WIDTH = 240;
|
|
15
13
|
const SIDEBAR_COLLAPSED_WIDTH = 20;
|
|
@@ -19,6 +17,15 @@ const SIDEBAR_COLLAPSED_WIDTH = 20;
|
|
|
19
17
|
* @order 20
|
|
20
18
|
*/
|
|
21
19
|
export class ThySidebarDirective {
|
|
20
|
+
constructor() {
|
|
21
|
+
this.thyLayoutDirective = inject(ThyLayoutDirective, { optional: true, host: true });
|
|
22
|
+
this.sidebarIsolated = false;
|
|
23
|
+
this.isDivided = true;
|
|
24
|
+
/**
|
|
25
|
+
* sidebar 位置,默认在左侧
|
|
26
|
+
*/
|
|
27
|
+
this.thyDirection = 'left';
|
|
28
|
+
}
|
|
22
29
|
/**
|
|
23
30
|
* 宽度,默认是 240px,传入 `lg` 大小时宽度是300px
|
|
24
31
|
* @default 240px
|
|
@@ -59,15 +66,6 @@ export class ThySidebarDirective {
|
|
|
59
66
|
set thyHasBorderLeft(value) {
|
|
60
67
|
this.thyDivided = value;
|
|
61
68
|
}
|
|
62
|
-
constructor(thyLayoutDirective) {
|
|
63
|
-
this.thyLayoutDirective = thyLayoutDirective;
|
|
64
|
-
this.sidebarIsolated = false;
|
|
65
|
-
this.isDivided = true;
|
|
66
|
-
/**
|
|
67
|
-
* sidebar 位置,默认在左侧
|
|
68
|
-
*/
|
|
69
|
-
this.thyDirection = 'left';
|
|
70
|
-
}
|
|
71
69
|
ngOnInit() {
|
|
72
70
|
if (this.thyLayoutDirective) {
|
|
73
71
|
this.thyLayoutDirective.hasSidebar = true;
|
|
@@ -76,7 +74,7 @@ export class ThySidebarDirective {
|
|
|
76
74
|
this.thyLayoutDirective.isSidebarRight = true;
|
|
77
75
|
}
|
|
78
76
|
}
|
|
79
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySidebarDirective, deps: [
|
|
77
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySidebarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
80
78
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.0", type: ThySidebarDirective, isStandalone: true, selector: "[thySidebar]", inputs: { thyDirection: "thyDirection", thyTheme: "thyTheme", thyWidth: "thyWidth", thyIsolated: ["thyIsolated", "thyIsolated", coerceBooleanProperty], thyDivided: ["thyDivided", "thyDivided", coerceBooleanProperty], thyHasBorderRight: ["thyHasBorderRight", "thyHasBorderRight", coerceBooleanProperty], thyHasBorderLeft: ["thyHasBorderLeft", "thyHasBorderLeft", coerceBooleanProperty] }, host: { properties: { "class.thy-layout-sidebar-right": "thyDirection === \"right\"", "class.thy-layout-sidebar--clear-border-right": "thyDirection === \"left\" && !isDivided", "class.thy-layout-sidebar--clear-border-left": "thyDirection === \"right\" && !isDivided", "class.sidebar-theme-light": "thyTheme === \"light\"", "class.sidebar-theme-dark": "thyTheme === \"dark\"", "class.thy-layout-sidebar-isolated": "sidebarIsolated", "style.width.px": "this.thyLayoutSidebarWidth" }, classAttribute: "thy-layout-sidebar" }, ngImport: i0 }); }
|
|
81
79
|
}
|
|
82
80
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySidebarDirective, decorators: [{
|
|
@@ -94,11 +92,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
94
92
|
},
|
|
95
93
|
standalone: true
|
|
96
94
|
}]
|
|
97
|
-
}],
|
|
98
|
-
type: Optional
|
|
99
|
-
}, {
|
|
100
|
-
type: Host
|
|
101
|
-
}] }], propDecorators: { thyLayoutSidebarWidth: [{
|
|
95
|
+
}], propDecorators: { thyLayoutSidebarWidth: [{
|
|
102
96
|
type: HostBinding,
|
|
103
97
|
args: ['style.width.px']
|
|
104
98
|
}], thyDirection: [{
|
|
@@ -127,6 +121,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
127
121
|
* @order 21
|
|
128
122
|
*/
|
|
129
123
|
export class ThySidebar {
|
|
124
|
+
constructor() {
|
|
125
|
+
this.elementRef = inject(ElementRef);
|
|
126
|
+
this.hotkeyDispatcher = inject(ThyHotkeyDispatcher);
|
|
127
|
+
this.sidebarDirective = inject(ThySidebarDirective);
|
|
128
|
+
/**
|
|
129
|
+
* 宽度是否可以拖拽
|
|
130
|
+
* @default false
|
|
131
|
+
*/
|
|
132
|
+
this.thyDraggable = false;
|
|
133
|
+
/**
|
|
134
|
+
* 展示收起的触发器自定义模板,默认显示展开收起的圆形图标,设置为 null 表示不展示触发元素,手动控制展开收起状态
|
|
135
|
+
* @type null | undefined | TemplateRef<any>
|
|
136
|
+
* @default undefined
|
|
137
|
+
*/
|
|
138
|
+
this.thyTrigger = undefined;
|
|
139
|
+
/**
|
|
140
|
+
* 收起状态改变后的事件
|
|
141
|
+
*/
|
|
142
|
+
this.thyCollapsedChange = new EventEmitter();
|
|
143
|
+
/**
|
|
144
|
+
* 拖拽宽度的修改事件
|
|
145
|
+
*/
|
|
146
|
+
this.thyDragWidthChange = new EventEmitter();
|
|
147
|
+
/**
|
|
148
|
+
* 收起后的宽度
|
|
149
|
+
*/
|
|
150
|
+
this.thyCollapsedWidth = SIDEBAR_COLLAPSED_WIDTH;
|
|
151
|
+
this.isCollapsed = false;
|
|
152
|
+
this.originWidth = SIDEBAR_DEFAULT_WIDTH;
|
|
153
|
+
}
|
|
130
154
|
get sidebarWidth() {
|
|
131
155
|
if (this.thyCollapsible && this.thyCollapsed) {
|
|
132
156
|
return this.thyCollapsedWidth;
|
|
@@ -176,36 +200,6 @@ export class ThySidebar {
|
|
|
176
200
|
get dragMinWidth() {
|
|
177
201
|
return this.thyDragMinWidth || this.thyCollapsedWidth;
|
|
178
202
|
}
|
|
179
|
-
constructor(elementRef, hotkeyDispatcher) {
|
|
180
|
-
this.elementRef = elementRef;
|
|
181
|
-
this.hotkeyDispatcher = hotkeyDispatcher;
|
|
182
|
-
this.sidebarDirective = inject(ThySidebarDirective);
|
|
183
|
-
/**
|
|
184
|
-
* 宽度是否可以拖拽
|
|
185
|
-
* @default false
|
|
186
|
-
*/
|
|
187
|
-
this.thyDraggable = false;
|
|
188
|
-
/**
|
|
189
|
-
* 展示收起的触发器自定义模板,默认显示展开收起的圆形图标,设置为 null 表示不展示触发元素,手动控制展开收起状态
|
|
190
|
-
* @type null | undefined | TemplateRef<any>
|
|
191
|
-
* @default undefined
|
|
192
|
-
*/
|
|
193
|
-
this.thyTrigger = undefined;
|
|
194
|
-
/**
|
|
195
|
-
* 收起状态改变后的事件
|
|
196
|
-
*/
|
|
197
|
-
this.thyCollapsedChange = new EventEmitter();
|
|
198
|
-
/**
|
|
199
|
-
* 拖拽宽度的修改事件
|
|
200
|
-
*/
|
|
201
|
-
this.thyDragWidthChange = new EventEmitter();
|
|
202
|
-
/**
|
|
203
|
-
* 收起后的宽度
|
|
204
|
-
*/
|
|
205
|
-
this.thyCollapsedWidth = SIDEBAR_COLLAPSED_WIDTH;
|
|
206
|
-
this.isCollapsed = false;
|
|
207
|
-
this.originWidth = SIDEBAR_DEFAULT_WIDTH;
|
|
208
|
-
}
|
|
209
203
|
ngOnInit() {
|
|
210
204
|
this.updateCollapseTip();
|
|
211
205
|
}
|
|
@@ -266,43 +260,48 @@ export class ThySidebar {
|
|
|
266
260
|
ngOnDestroy() {
|
|
267
261
|
this.hotkeySubscription?.unsubscribe();
|
|
268
262
|
}
|
|
269
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySidebar, deps: [
|
|
270
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
263
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySidebar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
264
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThySidebar, isStandalone: true, selector: "thy-sidebar", inputs: { thyDraggable: ["thyDraggable", "thyDraggable", coerceBooleanProperty], thyDragMaxWidth: ["thyDragMaxWidth", "thyDragMaxWidth", numberAttribute], thyDragMinWidth: ["thyDragMinWidth", "thyDragMinWidth", numberAttribute], thyTrigger: "thyTrigger", thyCollapsible: ["thyCollapsible", "thyCollapsible", coerceBooleanProperty], thyCollapsed: ["thyCollapsed", "thyCollapsed", coerceBooleanProperty], thyCollapsedWidth: ["thyCollapsedWidth", "thyCollapsedWidth", numberAttribute], thyDefaultWidth: "thyDefaultWidth" }, outputs: { thyCollapsedChange: "thyCollapsedChange", thyDragWidthChange: "thyDragWidthChange" }, host: { listeners: { "mouseenter": "mouseenter($event)", "mouseleave": "mouseleave($event)" }, properties: { "style.width.px": "this.sidebarWidth", "class.sidebar-collapse-show": "this.collapseVisibility", "class.remove-transition": "this.removeTransition" } }, hostDirectives: [{ directive: ThySidebarDirective, inputs: ["thyTheme", "thyTheme", "thyDirection", "thyDirection", "thyWidth", "thyWidth", "thyIsolated", "thyIsolated", "thyDivided", "thyDivided", "thyHasBorderLeft", "thyHasBorderLeft", "thyHasBorderRight", "thyHasBorderRight"] }], ngImport: i0, template: `
|
|
271
265
|
<ng-content></ng-content>
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
class="sidebar-collapse"
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
266
|
+
@if (thyDraggable) {
|
|
267
|
+
<div
|
|
268
|
+
thyResizable
|
|
269
|
+
class="sidebar-drag"
|
|
270
|
+
thyBounds="window"
|
|
271
|
+
[thyMaxWidth]="thyDragMaxWidth"
|
|
272
|
+
[thyMinWidth]="dragMinWidth"
|
|
273
|
+
(thyResize)="resizeHandler($event)"
|
|
274
|
+
(thyResizeStart)="resizeStart()"
|
|
275
|
+
(thyResizeEnd)="resizeEnd()"
|
|
276
|
+
[style.display]="!isResizable ? 'contents' : null">
|
|
277
|
+
@if (!thyCollapsed) {
|
|
278
|
+
<thy-resize-handle
|
|
279
|
+
[thyDirection]="sidebarDirective.thyDirection === 'right' ? 'left' : 'right'"
|
|
280
|
+
class="sidebar-resize-handle"
|
|
281
|
+
thyLine="true"
|
|
282
|
+
(mouseenter)="toggleResizable($event, 'enter')"
|
|
283
|
+
(mouseleave)="toggleResizable($event, 'leave')"
|
|
284
|
+
(dblclick)="restoreToDefaultWidth()">
|
|
285
|
+
</thy-resize-handle>
|
|
286
|
+
}
|
|
287
|
+
</div>
|
|
288
|
+
}
|
|
289
|
+
@if (thyCollapsible) {
|
|
290
|
+
<div class="sidebar-collapse-line"></div>
|
|
291
|
+
}
|
|
292
|
+
@if (thyCollapsible && thyTrigger !== null) {
|
|
293
|
+
<div
|
|
294
|
+
class="sidebar-collapse"
|
|
295
|
+
[ngClass]="{ 'collapse-visible': collapseVisible, 'collapse-hidden': collapseHidden }"
|
|
296
|
+
(click)="toggleCollapse($event)"
|
|
297
|
+
[thyTooltip]="!thyTrigger && collapseTip">
|
|
298
|
+
<ng-template [ngTemplateOutlet]="thyTrigger || defaultTrigger"></ng-template>
|
|
299
|
+
<ng-template #defaultTrigger>
|
|
300
|
+
<thy-icon class="sidebar-collapse-icon" [thyIconName]="this.thyCollapsed ? 'indent' : 'outdent'"></thy-icon>
|
|
301
|
+
</ng-template>
|
|
302
|
+
</div>
|
|
303
|
+
}
|
|
304
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyResizeHandle, selector: "thy-resize-handle, [thy-resize-handle]", inputs: ["thyDirection", "thyLine"], outputs: ["thyMouseDown"], exportAs: ["thyResizeHandle"] }, { kind: "directive", type: ThyResizableDirective, selector: "[thyResizable]", inputs: ["thyBounds", "thyMaxHeight", "thyMaxWidth", "thyMinHeight", "thyMinWidth", "thyGridColumnCount", "thyMaxColumn", "thyMinColumn", "thyLockAspectRatio", "thyPreview", "thyDisabled"], outputs: ["thyResize", "thyResizeStart", "thyResizeEnd"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
306
305
|
}
|
|
307
306
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySidebar, decorators: [{
|
|
308
307
|
type: Component,
|
|
@@ -311,39 +310,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
311
310
|
preserveWhitespaces: false,
|
|
312
311
|
template: `
|
|
313
312
|
<ng-content></ng-content>
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
class="sidebar-collapse"
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
313
|
+
@if (thyDraggable) {
|
|
314
|
+
<div
|
|
315
|
+
thyResizable
|
|
316
|
+
class="sidebar-drag"
|
|
317
|
+
thyBounds="window"
|
|
318
|
+
[thyMaxWidth]="thyDragMaxWidth"
|
|
319
|
+
[thyMinWidth]="dragMinWidth"
|
|
320
|
+
(thyResize)="resizeHandler($event)"
|
|
321
|
+
(thyResizeStart)="resizeStart()"
|
|
322
|
+
(thyResizeEnd)="resizeEnd()"
|
|
323
|
+
[style.display]="!isResizable ? 'contents' : null">
|
|
324
|
+
@if (!thyCollapsed) {
|
|
325
|
+
<thy-resize-handle
|
|
326
|
+
[thyDirection]="sidebarDirective.thyDirection === 'right' ? 'left' : 'right'"
|
|
327
|
+
class="sidebar-resize-handle"
|
|
328
|
+
thyLine="true"
|
|
329
|
+
(mouseenter)="toggleResizable($event, 'enter')"
|
|
330
|
+
(mouseleave)="toggleResizable($event, 'leave')"
|
|
331
|
+
(dblclick)="restoreToDefaultWidth()">
|
|
332
|
+
</thy-resize-handle>
|
|
333
|
+
}
|
|
334
|
+
</div>
|
|
335
|
+
}
|
|
336
|
+
@if (thyCollapsible) {
|
|
337
|
+
<div class="sidebar-collapse-line"></div>
|
|
338
|
+
}
|
|
339
|
+
@if (thyCollapsible && thyTrigger !== null) {
|
|
340
|
+
<div
|
|
341
|
+
class="sidebar-collapse"
|
|
342
|
+
[ngClass]="{ 'collapse-visible': collapseVisible, 'collapse-hidden': collapseHidden }"
|
|
343
|
+
(click)="toggleCollapse($event)"
|
|
344
|
+
[thyTooltip]="!thyTrigger && collapseTip">
|
|
345
|
+
<ng-template [ngTemplateOutlet]="thyTrigger || defaultTrigger"></ng-template>
|
|
346
|
+
<ng-template #defaultTrigger>
|
|
347
|
+
<thy-icon class="sidebar-collapse-icon" [thyIconName]="this.thyCollapsed ? 'indent' : 'outdent'"></thy-icon>
|
|
348
|
+
</ng-template>
|
|
349
|
+
</div>
|
|
350
|
+
}
|
|
347
351
|
`,
|
|
348
352
|
hostDirectives: [
|
|
349
353
|
{
|
|
@@ -352,9 +356,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
352
356
|
}
|
|
353
357
|
],
|
|
354
358
|
standalone: true,
|
|
355
|
-
imports: [NgTemplateOutlet,
|
|
359
|
+
imports: [NgTemplateOutlet, ThyResizeHandle, ThyResizableDirective, ThyIcon, ThyTooltipDirective, NgClass, NgStyle]
|
|
356
360
|
}]
|
|
357
|
-
}],
|
|
361
|
+
}], propDecorators: { sidebarWidth: [{
|
|
358
362
|
type: HostBinding,
|
|
359
363
|
args: ['style.width.px']
|
|
360
364
|
}], mouseenter: [{
|
|
@@ -396,4 +400,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
396
400
|
type: HostBinding,
|
|
397
401
|
args: ['class.remove-transition']
|
|
398
402
|
}] } });
|
|
399
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGF5b3V0L3NpZGViYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osSUFBSSxFQUNKLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sV0FBVyxFQUNYLE1BQU0sRUFDTixlQUFlLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFrQixlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUV4RCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFDckIsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLENBQUM7QUFDbEMsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFNbkM7Ozs7R0FJRztBQWNILE1BQU0sT0FBTyxtQkFBbUI7SUFtQjVCOzs7T0FHRztJQUNILElBQ0ksUUFBUSxDQUFDLEtBQXNCO1FBQy9CLElBQUksS0FBSyxLQUFLLElBQUks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RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQWlCTSxZQUFZO3NCQUE1RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQVdKLGlCQUFpQjtzQkFBdkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBSzVCLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0Ysa0JBQWtCO3NCQURyQixXQUFXO3VCQUFDLDZCQUE2QjtnQkFNdEMsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3QsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIGluamVjdCxcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlIb3RrZXlEaXNwYXRjaGVyIH0gZnJvbSAnQHRldGh5cy9jZGsvaG90a2V5JztcbmltcG9ydCB7IGlzTWFjUGxhdGZvcm0gfSBmcm9tICdAdGV0aHlzL2Nkay9pcyc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeVJlc2l6YWJsZURpcmVjdGl2ZSwgVGh5UmVzaXplRXZlbnQsIFRoeVJlc2l6ZUhhbmRsZSB9IGZyb20gJ25neC10ZXRoeXMvcmVzaXphYmxlJztcbmltcG9ydCB7IFRoeVRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUaHlMYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuL2xheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuY29uc3QgTEdfV0lEVEggPSAzMDA7XG5jb25zdCBTSURFQkFSX0RFRkFVTFRfV0lEVEggPSAyNDA7XG5jb25zdCBTSURFQkFSX0NPTExBUFNFRF9XSURUSCA9IDIwO1xuXG5leHBvcnQgdHlwZSBUaHlTaWRlYmFyVGhlbWUgPSAnd2hpdGUnIHwgJ2xpZ2h0JyB8ICdkYXJrJztcblxuZXhwb3J0IHR5cGUgVGh5U2lkZWJhckRpcmVjdGlvbiA9ICdsZWZ0JyB8ICdyaWdodCc7XG5cbi8qKlxuICog5L6n6L655qCP5biD5bGA5oyH5LukXG4gKiBAbmFtZSB0aHlTaWRlYmFyXG4gKiBAb3JkZXIgMjBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGh5U2lkZWJhcl0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktbGF5b3V0LXNpZGViYXInLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhci1yaWdodF0nOiAndGh5RGlyZWN0aW9uID09PSBcInJpZ2h0XCInLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhci0tY2xlYXItYm9yZGVyLXJpZ2h0XSc6ICd0aHlEaXJlY3Rpb24gPT09IFwibGVmdFwiICYmICFpc0RpdmlkZWQnLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhci0tY2xlYXItYm9yZGVyLWxlZnRdJzogJ3RoeURpcmVjdGlvbiA9PT0gXCJyaWdodFwiICYmICFpc0RpdmlkZWQnLFxuICAgICAgICAnW2NsYXNzLnNpZGViYXItdGhlbWUtbGlnaHRdJzogJ3RoeVRoZW1lID09PSBcImxpZ2h0XCInLFxuICAgICAgICAnW2NsYXNzLnNpZGViYXItdGhlbWUtZGFya10nOiAndGh5VGhlbWUgPT09IFwiZGFya1wiJyxcbiAgICAgICAgJ1tjbGFzcy50aHktbGF5b3V0LXNpZGViYXItaXNvbGF0ZWRdJzogJ3NpZGViYXJJc29sYXRlZCdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5U2lkZWJhckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgc2lkZWJhcklzb2xhdGVkID0gZmFsc2U7XG5cbiAgICBpc0RpdmlkZWQgPSB0cnVlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS53aWR0aC5weCcpIHRoeUxheW91dFNpZGViYXJXaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogc2lkZWJhciDkvY3nva7vvIzpu5jorqTlnKjlt6bkvqdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlEaXJlY3Rpb246IFRoeVNpZGViYXJEaXJlY3Rpb24gPSAnbGVmdCc7XG5cbiAgICAvKipcbiAgICAgKiDkuLvpophcbiAgICAgKiBAdHlwZSB3aGl0ZSB8IGxpZ2h0IHwgZGFya1xuICAgICAqIEBkZWZhdWx0IHdoaXRlXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5VGhlbWU6IFRoeVNpZGViYXJUaGVtZTtcblxuICAgIC8qKlxuICAgICAqIOWuveW6pu+8jOm7mOiupOaYryAyNDBweO+8jOS8oOWFpSBgbGdgIOWkp+Wwj+aXtuWuveW6puaYrzMwMHB4XG4gICAgICogQGRlZmF1bHQgMjQwcHhcbiAgICAgKi9cbiAgICBASW5wdXQoJ3RoeVdpZHRoJylcbiAgICBzZXQgdGh5V2lkdGgodmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xuICAgICAgICBpZiAodmFsdWUgPT09ICdsZycpIHtcbiAgICAgICAgICAgIHZhbHVlID0gTEdfV0lEVEg7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aHlMYXlvdXRTaWRlYmFyV2lkdGggPSAodmFsdWUgYXMgbnVtYmVyKSB8fCBTSURFQkFSX0RFRkFVTFRfV0lEVEg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5ZKM5Y+z5L6nIC/lt6bkvqfpmpTnprvvvIzlvZPkuLogdHJ1ZSDml7bot53lj7PkvqcgL+W3puS+p+S8muaciSBtYXJnaW7vvIzlkIzml7bovrnmoYbkvJrljrvmjolcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgc2V0IHRoeUlzb2xhdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2lkZWJhcklzb2xhdGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2lkZWJhciDmmK/lkKbmnInliIblibLnur/jgILlvZNgdGh5RGlyZWN0aW9uYOWAvOS4umBsZWZ0YOaXtu+8jOaOp+WItuWPs+S+p+aYr+WQpuacieWIhuWJsue6v++8m+W9k2B0aHlEaXJlY3Rpb25g5YC85Li6YHJpZ2h0YOaXtu+8jOaOp+WItuW3puS+p+aYr+WQpuacieWIhuWJsue6v+OAglxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCB0aHlEaXZpZGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNEaXZpZGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Y+z5L6n5piv5ZCm5pyJ6L655qGG77yM5bey5bqf5byD77yM6K+35L2/55SoIHRoeURpdmlkZWRcbiAgICAgKiBAZGVwcmVjYXRlZCBwbGVhc2UgdXNlIHRoeURpdmlkZWRcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgdGh5SGFzQm9yZGVyUmlnaHQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy50aHlEaXZpZGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bem5L6n5piv5ZCm5pyJ6L655qGG77yM5bey5bqf5byD77yM6K+35L2/55SoIHRoeURpdmlkZWRcbiAgICAgKiBAZGVwcmVjYXRlZCBwbGVhc2UgdXNlIHRoeURpdmlkZWRcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgdGh5SGFzQm9yZGVyTGVmdCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnRoeURpdmlkZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgdGh5TGF5b3V0RGlyZWN0aXZlOiBUaHlMYXlvdXREaXJlY3RpdmUpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5TGF5b3V0RGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLnRoeUxheW91dERpcmVjdGl2ZS5oYXNTaWRlYmFyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50aHlEaXJlY3Rpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIHRoaXMudGh5TGF5b3V0RGlyZWN0aXZlLmlzU2lkZWJhclJpZ2h0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiDkvqfovrnmoI/luIPlsYDnu4Tku7ZcbiAqIEBuYW1lIHRoeS1zaWRlYmFyXG4gKiBAb3JkZXIgMjFcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktc2lkZWJhcicsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICB0aHlSZXNpemFibGVcbiAgICAgICAgICAgIGNsYXNzPVwic2lkZWJhci1kcmFnXCJcbiAgICAgICAgICAgICpuZ0lmPVwidGh5RHJhZ2dhYmxlXCJcbiAgICAgICAgICAgIHRoeUJvdW5kcz1cIndpbmRvd1wiXG4gICAgICAgICAgICBbdGh5TWF4V2lkdGhdPVwidGh5RHJhZ01heFdpZHRoXCJcbiAgICAgICAgICAgIFt0aHlNaW5XaWR0aF09XCJkcmFnTWluV2lkdGhcIlxuICAgICAgICAgICAgKHRoeVJlc2l6ZSk9XCJyZXNpemVIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgICAgKHRoeVJlc2l6ZVN0YXJ0KT1cInJlc2l6ZVN0YXJ0KClcIlxuICAgICAgICAgICAgKHRoeVJlc2l6ZUVuZCk9XCJyZXNpemVFbmQoKVwiXG4gICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCIhaXNSZXNpemFibGUgPyAnY29udGVudHMnIDogbnVsbFwiPlxuICAgICAgICAgICAgPHRoeS1yZXNpemUtaGFuZGxlXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhdGh5Q29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgICBbdGh5RGlyZWN0aW9uXT1cInNpZGViYXJEaXJlY3RpdmUudGh5RGlyZWN0aW9uID09PSAncmlnaHQnID8gJ2xlZnQnIDogJ3JpZ2h0J1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzaWRlYmFyLXJlc2l6ZS1oYW5kbGVcIlxuICAgICAgICAgICAgICAgIHRoeUxpbmU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJ0b2dnbGVSZXNpemFibGUoJGV2ZW50LCAnZW50ZXInKVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwidG9nZ2xlUmVzaXphYmxlKCRldmVudCwgJ2xlYXZlJylcIlxuICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJyZXN0b3JlVG9EZWZhdWx0V2lkdGgoKVwiPlxuICAgICAgICAgICAgPC90aHktcmVzaXplLWhhbmRsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0aHlDb2xsYXBzaWJsZVwiIGNsYXNzPVwic2lkZWJhci1jb2xsYXBzZS1saW5lXCI+PC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwidGh5Q29sbGFwc2libGUgJiYgdGh5VHJpZ2dlciAhPT0gbnVsbFwiXG4gICAgICAgICAgICBjbGFzcz1cInNpZGViYXItY29sbGFwc2VcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnY29sbGFwc2UtdmlzaWJsZSc6IGNvbGxhcHNlVmlzaWJsZSwgJ2NvbGxhcHNlLWhpZGRlbic6IGNvbGxhcHNlSGlkZGVuIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNlKCRldmVudClcIlxuICAgICAgICAgICAgW3RoeVRvb2x0aXBdPVwiIXRoeVRyaWdnZXIgJiYgY29sbGFwc2VUaXBcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aHlUcmlnZ2VyIHx8IGRlZmF1bHRUcmlnZ2VyXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRyaWdnZXI+XG4gICAgICAgICAgICAgICAgPHRoeS1pY29uIGNsYXNzPVwic2lkZWJhci1jb2xsYXBzZS1pY29uXCIgW3RoeUljb25OYW1lXT1cInRoaXMudGh5Q29sbGFwc2VkID8gJ2luZGVudCcgOiAnb3V0ZGVudCdcIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IFRoeVNpZGViYXJEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFsndGh5VGhlbWUnLCAndGh5RGlyZWN0aW9uJywgJ3RoeVdpZHRoJywgJ3RoeUlzb2xhdGVkJywgJ3RoeURpdmlkZWQnLCAndGh5SGFzQm9yZGVyTGVmdCcsICd0aHlIYXNCb3JkZXJSaWdodCddXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIE5nSWYsIFRoeVJlc2l6ZUhhbmRsZSwgVGh5UmVzaXphYmxlRGlyZWN0aXZlLCBUaHlJY29uLCBUaHlUb29sdGlwRGlyZWN0aXZlLCBOZ0NsYXNzLCBOZ1N0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlTaWRlYmFyIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHNpZGViYXJEaXJlY3RpdmUgPSBpbmplY3QoVGh5U2lkZWJhckRpcmVjdGl2ZSk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoLnB4JykgZ2V0IHNpZGViYXJXaWR0aCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5Q29sbGFwc2libGUgJiYgdGhpcy50aHlDb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoeUNvbGxhcHNlZFdpZHRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2lkZWJhckRpcmVjdGl2ZS50aHlMYXlvdXRTaWRlYmFyV2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJywgWyckZXZlbnQnXSlcbiAgICBtb3VzZWVudGVyKCRldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLnJlc2l6ZUhhbmRsZUhvdmVyKCRldmVudCwgJ2VudGVyJyk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScsIFsnJGV2ZW50J10pXG4gICAgbW91c2VsZWF2ZSgkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5yZXNpemVIYW5kbGVIb3ZlcigkZXZlbnQsICdsZWF2ZScpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWuveW6puaYr+WQpuWPr+S7peaLluaLvVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5RHJhZ2dhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDmi5bmi73nmoTmnIDlpKflrr3luqZcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlEcmFnTWF4V2lkdGg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOaLluaLveeahOacgOWwj+WuveW6plxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeURyYWdNaW5XaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog5bGV56S65pS26LW355qE6Kem5Y+R5Zmo6Ieq5a6a5LmJ5qih5p2/77yM6buY6K6k5pi+56S65bGV5byA5pS26LW355qE5ZyG5b2i5Zu+5qCH77yM6K6+572u5Li6IG51bGwg6KGo56S65LiN5bGV56S66Kem5Y+R5YWD57Sg77yM5omL5Yqo5o6n5Yi25bGV5byA5pS26LW354q25oCBXG4gICAgICogQHR5cGUgbnVsbCB8IHVuZGVmaW5lZCB8IFRlbXBsYXRlUmVmPGFueT5cbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUcmlnZ2VyOiBudWxsIHwgdW5kZWZpbmVkIHwgVGVtcGxhdGVSZWY8YW55PiA9IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIOaUtui1t+eKtuaAgeaUueWPmOWQjueahOS6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHRoeUNvbGxhcHNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKlxuICAgICAqIOaLluaLveWuveW6pueahOS/ruaUueS6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHRoeURyYWdXaWR0aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgLyoqXG4gICAgICog5byA5ZCv5pS26LW3L+WxleW8gOWKn+iDvVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgc2V0IHRoeUNvbGxhcHNpYmxlKGNvbGxhcHNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuY29sbGFwc2libGUgPSBjb2xsYXBzaWJsZTtcbiAgICAgICAgaWYgKHRoaXMuY29sbGFwc2libGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlSG90a2V5RXZlbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaG90a2V5U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHRoeUNvbGxhcHNpYmxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2xsYXBzaWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbmmK/mlLbotbdcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHNldCB0aHlDb2xsYXBzZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCB0aHlDb2xsYXBzZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzQ29sbGFwc2VkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaUtui1t+WQjueahOWuveW6plxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeUNvbGxhcHNlZFdpZHRoID0gU0lERUJBUl9DT0xMQVBTRURfV0lEVEg7XG5cbiAgICAvKipcbiAgICAgKiDpu5jorqTlrr3luqbvvIzlj4zlh7vlkI7lj6/mgaLlpI3liLDmraTlrr3luqbvvIzpu5jorqTmmK8gMjQwcHjvvIzkvKDlhaUgbGcg5aSn5bCP5pe25a695bqm5pivMzAwcHhcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlEZWZhdWx0V2lkdGg6IHN0cmluZyB8IG51bWJlcjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3Muc2lkZWJhci1jb2xsYXBzZS1zaG93JylcbiAgICBnZXQgY29sbGFwc2VWaXNpYmlsaXR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy50aHlDb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yZW1vdmUtdHJhbnNpdGlvbicpXG4gICAgZ2V0IHJlbW92ZVRyYW5zaXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUmVtb3ZlVHJhbnNpdGlvbjtcbiAgICB9XG5cbiAgICBjb2xsYXBzZVRpcDogc3RyaW5nO1xuXG4gICAgY29sbGFwc2libGU6IGJvb2xlYW47XG5cbiAgICBpc0NvbGxhcHNlZCA9IGZhbHNlO1xuXG4gICAgb3JpZ2luV2lkdGg6IG51bWJlciA9IFNJREVCQVJfREVGQVVMVF9XSURUSDtcblxuICAgIGNvbGxhcHNlVmlzaWJsZTogYm9vbGVhbjtcblxuICAgIGNvbGxhcHNlSGlkZGVuOiBib29sZWFuO1xuXG4gICAgaXNSZW1vdmVUcmFuc2l0aW9uOiBib29sZWFuO1xuXG4gICAgaXNSZXNpemFibGU6IGJvb2xlYW47XG5cbiAgICBnZXQgZHJhZ01pbldpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50aHlEcmFnTWluV2lkdGggfHwgdGhpcy50aHlDb2xsYXBzZWRXaWR0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhvdGtleVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGhvdGtleURpc3BhdGNoZXI6IFRoeUhvdGtleURpc3BhdGNoZXJcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVDb2xsYXBzZVRpcCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaWJlSG90a2V5RXZlbnQoKSB7XG4gICAgICAgIHRoaXMuaG90a2V5U3Vic2NyaXB0aW9uID0gdGhpcy5ob3RrZXlEaXNwYXRjaGVyLmtleWRvd24oWydDb250cm9sKy8nLCAnTWV0YSsvJ10pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUNvbGxhcHNlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQ29sbGFwc2VUaXAoKSB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VUaXAgPSB0aGlzLnRoeUNvbGxhcHNlZCA/ICflsZXlvIAnIDogJ+aUtui1tyc7XG4gICAgICAgIHRoaXMuY29sbGFwc2VUaXAgPSB0aGlzLmNvbGxhcHNlVGlwICsgKGlzTWFjUGxhdGZvcm0oKSA/IGDvvIjijJggKyAvKWAgOiBg77yIQ3RybCArIC8pYCk7XG4gICAgfVxuXG4gICAgcmVzaXplSGFuZGxlcih7IHdpZHRoIH06IFRoeVJlc2l6ZUV2ZW50KSB7XG4gICAgICAgIGlmICh3aWR0aCA9PT0gdGhpcy5zaWRlYmFyRGlyZWN0aXZlLnRoeUxheW91dFNpZGViYXJXaWR0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRoeUNvbGxhcHNpYmxlICYmIHdpZHRoIDwgdGhpcy50aHlDb2xsYXBzZWRXaWR0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRoeUNvbGxhcHNpYmxlICYmIHdpZHRoID09PSB0aGlzLnRoeUNvbGxhcHNlZFdpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLnRoeUNvbGxhcHNlZCA9IHRydWU7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ29sbGFwc2VUaXAoKSwgMjAwKTtcbiAgICAgICAgICAgIHRoaXMudGh5Q29sbGFwc2VkQ2hhbmdlLmVtaXQodGhpcy5pc0NvbGxhcHNlZCk7XG4gICAgICAgICAgICB0aGlzLnNpZGViYXJEaXJlY3RpdmUudGh5TGF5b3V0U2lkZWJhcldpZHRoID0gdGhpcy5vcmlnaW5XaWR0aDtcbiAgICAgICAgICAgIHRoaXMuY29sbGFwc2VWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaWRlYmFyRGlyZWN0aXZlLnRoeUxheW91dFNpZGViYXJXaWR0aCA9IHdpZHRoO1xuICAgICAgICB0aGlzLnRoeURyYWdXaWR0aENoYW5nZS5lbWl0KHdpZHRoKTtcbiAgICB9XG5cbiAgICByZXNpemVTdGFydCgpIHtcbiAgICAgICAgdGhpcy5vcmlnaW5XaWR0aCA9IHRoaXMuc2lkZWJhckRpcmVjdGl2ZS50aHlMYXlvdXRTaWRlYmFyV2lkdGg7XG4gICAgICAgIHRoaXMuY29sbGFwc2VIaWRkZW4gPSB0cnVlO1xuICAgICAgICB0aGlzLmlzUmVtb3ZlVHJhbnNpdGlvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgcmVzaXplRW5kKCkge1xuICAgICAgICB0aGlzLmNvbGxhcHNlSGlkZGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNSZW1vdmVUcmFuc2l0aW9uID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmVzaXplSGFuZGxlSG92ZXIoZXZlbnQ6IE1vdXNlRXZlbnQsIHR5cGU6ICdlbnRlcicgfCAnbGVhdmUnKSB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VWaXNpYmxlID0gdHlwZSA9PT0gJ2VudGVyJyAmJiAhdGhpcy50aHlDb2xsYXBzZWQgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuXG4gICAgdG9nZ2xlQ29sbGFwc2UoZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMudGh5Q29sbGFwc2VkID0gIXRoaXMudGh5Q29sbGFwc2VkO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ29sbGFwc2VUaXAoKSwgMjAwKTtcbiAgICAgICAgdGhpcy50aHlDb2xsYXBzZWRDaGFuZ2UuZW1pdCh0aGlzLmlzQ29sbGFwc2VkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlUmVzaXphYmxlKGV2ZW50OiBNb3VzZUV2ZW50LCB0eXBlOiAnZW50ZXInIHwgJ2xlYXZlJykge1xuICAgICAgICB0aGlzLmlzUmVzaXphYmxlID0gdHlwZSA9PT0gJ2VudGVyJyA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXN0b3JlVG9EZWZhdWx0V2lkdGgoKSB7XG4gICAgICAgIGlmICh0aGlzLnRoeURlZmF1bHRXaWR0aCA9PT0gJ2xnJykge1xuICAgICAgICAgICAgdGhpcy50aHlEZWZhdWx0V2lkdGggPSBMR19XSURUSDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNpZGViYXJEaXJlY3RpdmUudGh5TGF5b3V0U2lkZWJhcldpZHRoID0gKHRoaXMudGh5RGVmYXVsdFdpZHRoIGFzIG51bWJlcikgfHwgU0lERUJBUl9ERUZBVUxUX1dJRFRIO1xuICAgICAgICB0aGlzLnRoeURyYWdXaWR0aENoYW5nZS5lbWl0KHRoaXMuc2lkZWJhckRpcmVjdGl2ZS50aHlMYXlvdXRTaWRlYmFyV2lkdGgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvdGtleVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iXX0=
|
|
403
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGF5b3V0L3NpZGViYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUNILFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sV0FBVyxFQUNYLE1BQU0sRUFDTixlQUFlLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFrQixlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFeEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0FBQ3JCLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO0FBQ2xDLE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBTW5DOzs7O0dBSUc7QUFjSCxNQUFNLE9BQU8sbUJBQW1CO0lBYmhDO1FBY1ksdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUUsQ0FB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cUJBQXFCLEVBQUU7Z0JBaUJNLFlBQVk7c0JBQTVELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBV0osaUJBQWlCO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFLNUIsZUFBZTtzQkFBdkIsS0FBSztnQkFHRixrQkFBa0I7c0JBRHJCLFdBQVc7dUJBQUMsNkJBQTZCO2dCQU10QyxnQkFBZ0I7c0JBRG5CLFdBQVc7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIGluamVjdCxcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlIb3RrZXlEaXNwYXRjaGVyIH0gZnJvbSAnQHRldGh5cy9jZGsvaG90a2V5JztcbmltcG9ydCB7IGlzTWFjUGxhdGZvcm0gfSBmcm9tICdAdGV0aHlzL2Nkay9pcyc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeVJlc2l6YWJsZURpcmVjdGl2ZSwgVGh5UmVzaXplRXZlbnQsIFRoeVJlc2l6ZUhhbmRsZSB9IGZyb20gJ25neC10ZXRoeXMvcmVzaXphYmxlJztcbmltcG9ydCB7IFRoeVRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUaHlMYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuL2xheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuY29uc3QgTEdfV0lEVEggPSAzMDA7XG5jb25zdCBTSURFQkFSX0RFRkFVTFRfV0lEVEggPSAyNDA7XG5jb25zdCBTSURFQkFSX0NPTExBUFNFRF9XSURUSCA9IDIwO1xuXG5leHBvcnQgdHlwZSBUaHlTaWRlYmFyVGhlbWUgPSAnd2hpdGUnIHwgJ2xpZ2h0JyB8ICdkYXJrJztcblxuZXhwb3J0IHR5cGUgVGh5U2lkZWJhckRpcmVjdGlvbiA9ICdsZWZ0JyB8ICdyaWdodCc7XG5cbi8qKlxuICog5L6n6L655qCP5biD5bGA5oyH5LukXG4gKiBAbmFtZSB0aHlTaWRlYmFyXG4gKiBAb3JkZXIgMjBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGh5U2lkZWJhcl0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktbGF5b3V0LXNpZGViYXInLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhci1yaWdodF0nOiAndGh5RGlyZWN0aW9uID09PSBcInJpZ2h0XCInLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhci0tY2xlYXItYm9yZGVyLXJpZ2h0XSc6ICd0aHlEaXJlY3Rpb24gPT09IFwibGVmdFwiICYmICFpc0RpdmlkZWQnLFxuICAgICAgICAnW2NsYXNzLnRoeS1sYXlvdXQtc2lkZWJhci0tY2xlYXItYm9yZGVyLWxlZnRdJzogJ3RoeURpcmVjdGlvbiA9PT0gXCJyaWdodFwiICYmICFpc0RpdmlkZWQnLFxuICAgICAgICAnW2NsYXNzLnNpZGViYXItdGhlbWUtbGlnaHRdJzogJ3RoeVRoZW1lID09PSBcImxpZ2h0XCInLFxuICAgICAgICAnW2NsYXNzLnNpZGViYXItdGhlbWUtZGFya10nOiAndGh5VGhlbWUgPT09IFwiZGFya1wiJyxcbiAgICAgICAgJ1tjbGFzcy50aHktbGF5b3V0LXNpZGViYXItaXNvbGF0ZWRdJzogJ3NpZGViYXJJc29sYXRlZCdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5U2lkZWJhckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSB0aHlMYXlvdXREaXJlY3RpdmUgPSBpbmplY3QoVGh5TGF5b3V0RGlyZWN0aXZlLCB7IG9wdGlvbmFsOiB0cnVlLCBob3N0OiB0cnVlIH0pITtcblxuICAgIHNpZGViYXJJc29sYXRlZCA9IGZhbHNlO1xuXG4gICAgaXNEaXZpZGVkID0gdHJ1ZTtcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgucHgnKSB0aHlMYXlvdXRTaWRlYmFyV2lkdGg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIHNpZGViYXIg5L2N572u77yM6buY6K6k5Zyo5bem5L6nXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5RGlyZWN0aW9uOiBUaHlTaWRlYmFyRGlyZWN0aW9uID0gJ2xlZnQnO1xuXG4gICAgLyoqXG4gICAgICog5Li76aKYXG4gICAgICogQHR5cGUgd2hpdGUgfCBsaWdodCB8IGRhcmtcbiAgICAgKiBAZGVmYXVsdCB3aGl0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVRoZW1lOiBUaHlTaWRlYmFyVGhlbWU7XG5cbiAgICAvKipcbiAgICAgKiDlrr3luqbvvIzpu5jorqTmmK8gMjQwcHjvvIzkvKDlhaUgYGxnYCDlpKflsI/ml7blrr3luqbmmK8zMDBweFxuICAgICAqIEBkZWZhdWx0IDI0MHB4XG4gICAgICovXG4gICAgQElucHV0KCd0aHlXaWR0aCcpXG4gICAgc2V0IHRoeVdpZHRoKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSAnbGcnKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IExHX1dJRFRIO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGh5TGF5b3V0U2lkZWJhcldpZHRoID0gKHZhbHVlIGFzIG51bWJlcikgfHwgU0lERUJBUl9ERUZBVUxUX1dJRFRIO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuWSjOWPs+S+pyAv5bem5L6n6ZqU56a777yM5b2T5Li6IHRydWUg5pe26Led5Y+z5L6nIC/lt6bkvqfkvJrmnIkgbWFyZ2lu77yM5ZCM5pe26L655qGG5Lya5Y675o6JXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCB0aHlJc29sYXRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNpZGViYXJJc29sYXRlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNpZGViYXIg5piv5ZCm5pyJ5YiG5Ymy57q/44CC5b2TYHRoeURpcmVjdGlvbmDlgLzkuLpgbGVmdGDml7bvvIzmjqfliLblj7PkvqfmmK/lkKbmnInliIblibLnur/vvJvlvZNgdGh5RGlyZWN0aW9uYOWAvOS4umByaWdodGDml7bvvIzmjqfliLblt6bkvqfmmK/lkKbmnInliIblibLnur/jgIJcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgdGh5RGl2aWRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzRGl2aWRlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWPs+S+p+aYr+WQpuaciei+ueahhu+8jOW3suW6n+W8g++8jOivt+S9v+eUqCB0aHlEaXZpZGVkXG4gICAgICogQGRlcHJlY2F0ZWQgcGxlYXNlIHVzZSB0aHlEaXZpZGVkXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgc2V0IHRoeUhhc0JvcmRlclJpZ2h0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudGh5RGl2aWRlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW3puS+p+aYr+WQpuaciei+ueahhu+8jOW3suW6n+W8g++8jOivt+S9v+eUqCB0aHlEaXZpZGVkXG4gICAgICogQGRlcHJlY2F0ZWQgcGxlYXNlIHVzZSB0aHlEaXZpZGVkXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgc2V0IHRoeUhhc0JvcmRlckxlZnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy50aHlEaXZpZGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLnRoeUxheW91dERpcmVjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy50aHlMYXlvdXREaXJlY3RpdmUuaGFzU2lkZWJhciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudGh5RGlyZWN0aW9uID09PSAncmlnaHQnKSB7XG4gICAgICAgICAgICB0aGlzLnRoeUxheW91dERpcmVjdGl2ZS5pc1NpZGViYXJSaWdodCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICog5L6n6L655qCP5biD5bGA57uE5Lu2XG4gKiBAbmFtZSB0aHktc2lkZWJhclxuICogQG9yZGVyIDIxXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXNpZGViYXInLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgQGlmICh0aHlEcmFnZ2FibGUpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICB0aHlSZXNpemFibGVcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNpZGViYXItZHJhZ1wiXG4gICAgICAgICAgICAgICAgdGh5Qm91bmRzPVwid2luZG93XCJcbiAgICAgICAgICAgICAgICBbdGh5TWF4V2lkdGhdPVwidGh5RHJhZ01heFdpZHRoXCJcbiAgICAgICAgICAgICAgICBbdGh5TWluV2lkdGhdPVwiZHJhZ01pbldpZHRoXCJcbiAgICAgICAgICAgICAgICAodGh5UmVzaXplKT1cInJlc2l6ZUhhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHRoeVJlc2l6ZVN0YXJ0KT1cInJlc2l6ZVN0YXJ0KClcIlxuICAgICAgICAgICAgICAgICh0aHlSZXNpemVFbmQpPVwicmVzaXplRW5kKClcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIiFpc1Jlc2l6YWJsZSA/ICdjb250ZW50cycgOiBudWxsXCI+XG4gICAgICAgICAgICAgICAgQGlmICghdGh5Q29sbGFwc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIDx0aHktcmVzaXplLWhhbmRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgW3RoeURpcmVjdGlvbl09XCJzaWRlYmFyRGlyZWN0aXZlLnRoeURpcmVjdGlvbiA9PT0gJ3JpZ2h0JyA/ICdsZWZ0JyA6ICdyaWdodCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaWRlYmFyLXJlc2l6ZS1oYW5kbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGh5TGluZT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwidG9nZ2xlUmVzaXphYmxlKCRldmVudCwgJ2VudGVyJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwidG9nZ2xlUmVzaXphYmxlKCRldmVudCwgJ2xlYXZlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGRibGNsaWNrKT1cInJlc3RvcmVUb0RlZmF1bHRXaWR0aCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvdGh5LXJlc2l6ZS1oYW5kbGU+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmICh0aHlDb2xsYXBzaWJsZSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpZGViYXItY29sbGFwc2UtbGluZVwiPjwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAodGh5Q29sbGFwc2libGUgJiYgdGh5VHJpZ2dlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2lkZWJhci1jb2xsYXBzZVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnY29sbGFwc2UtdmlzaWJsZSc6IGNvbGxhcHNlVmlzaWJsZSwgJ2NvbGxhcHNlLWhpZGRlbic6IGNvbGxhcHNlSGlkZGVuIH1cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDb2xsYXBzZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbdGh5VG9vbHRpcF09XCIhdGh5VHJpZ2dlciAmJiBjb2xsYXBzZVRpcFwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aHlUcmlnZ2VyIHx8IGRlZmF1bHRUcmlnZ2VyXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUcmlnZ2VyPlxuICAgICAgICAgICAgICAgICAgICA8dGh5LWljb24gY2xhc3M9XCJzaWRlYmFyLWNvbGxhcHNlLWljb25cIiBbdGh5SWNvbk5hbWVdPVwidGhpcy50aHlDb2xsYXBzZWQgPyAnaW5kZW50JyA6ICdvdXRkZW50J1wiPjwvdGh5LWljb24+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgYCxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IFRoeVNpZGViYXJEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFsndGh5VGhlbWUnLCAndGh5RGlyZWN0aW9uJywgJ3RoeVdpZHRoJywgJ3RoeUlzb2xhdGVkJywgJ3RoeURpdmlkZWQnLCAndGh5SGFzQm9yZGVyTGVmdCcsICd0aHlIYXNCb3JkZXJSaWdodCddXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIFRoeVJlc2l6ZUhhbmRsZSwgVGh5UmVzaXphYmxlRGlyZWN0aXZlLCBUaHlJY29uLCBUaHlUb29sdGlwRGlyZWN0aXZlLCBOZ0NsYXNzLCBOZ1N0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlTaWRlYmFyIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICAgcHJpdmF0ZSBob3RrZXlEaXNwYXRjaGVyID0gaW5qZWN0KFRoeUhvdGtleURpc3BhdGNoZXIpO1xuXG4gICAgc2lkZWJhckRpcmVjdGl2ZSA9IGluamVjdChUaHlTaWRlYmFyRGlyZWN0aXZlKTtcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgucHgnKSBnZXQgc2lkZWJhcldpZHRoKCkge1xuICAgICAgICBpZiAodGhpcy50aHlDb2xsYXBzaWJsZSAmJiB0aGlzLnRoeUNvbGxhcHNlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGh5Q29sbGFwc2VkV2lkdGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zaWRlYmFyRGlyZWN0aXZlLnRoeUxheW91dFNpZGViYXJXaWR0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBbJyRldmVudCddKVxuICAgIG1vdXNlZW50ZXIoJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMucmVzaXplSGFuZGxlSG92ZXIoJGV2ZW50LCAnZW50ZXInKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJywgWyckZXZlbnQnXSlcbiAgICBtb3VzZWxlYXZlKCRldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLnJlc2l6ZUhhbmRsZUhvdmVyKCRldmVudCwgJ2xlYXZlJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5a695bqm5piv5ZCm5Y+v5Lul5ouW5ou9XG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlEcmFnZ2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOaLluaLveeahOacgOWkp+WuveW6plxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeURyYWdNYXhXaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog5ouW5ou955qE5pyA5bCP5a695bqmXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGh5RHJhZ01pbldpZHRoOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDlsZXnpLrmlLbotbfnmoTop6blj5Hlmajoh6rlrprkuYnmqKHmnb/vvIzpu5jorqTmmL7npLrlsZXlvIDmlLbotbfnmoTlnIblvaLlm77moIfvvIzorr7nva7kuLogbnVsbCDooajnpLrkuI3lsZXnpLrop6blj5HlhYPntKDvvIzmiYvliqjmjqfliLblsZXlvIDmlLbotbfnirbmgIFcbiAgICAgKiBAdHlwZSBudWxsIHwgdW5kZWZpbmVkIHwgVGVtcGxhdGVSZWY8YW55PlxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVRyaWdnZXI6IG51bGwgfCB1bmRlZmluZWQgfCBUZW1wbGF0ZVJlZjxhbnk+ID0gdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICog5pS26LW354q25oCB5pS55Y+Y5ZCO55qE5LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgdGh5Q29sbGFwc2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqXG4gICAgICog5ouW5ou95a695bqm55qE5L+u5pS55LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgdGh5RHJhZ1dpZHRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiDlvIDlkK/mlLbotbcv5bGV5byA5Yqf6IO9XG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSBzZXQgdGh5Q29sbGFwc2libGUoY29sbGFwc2libGU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzaWJsZSA9IGNvbGxhcHNpYmxlO1xuICAgICAgICBpZiAodGhpcy5jb2xsYXBzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVIb3RrZXlFdmVudCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5ob3RrZXlTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdGh5Q29sbGFwc2libGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbGxhcHNpYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuaYr+aUtui1t1xuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgc2V0IHRoeUNvbGxhcHNlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzQ29sbGFwc2VkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IHRoeUNvbGxhcHNlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNDb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pS26LW35ZCO55qE5a695bqmXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGh5Q29sbGFwc2VkV2lkdGggPSBTSURFQkFSX0NPTExBUFNFRF9XSURUSDtcblxuICAgIC8qKlxuICAgICAqIOm7mOiupOWuveW6pu+8jOWPjOWHu+WQjuWPr+aBouWkjeWIsOatpOWuveW6pu+8jOm7mOiupOaYryAyNDBweO+8jOS8oOWFpSBsZyDlpKflsI/ml7blrr3luqbmmK8zMDBweFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeURlZmF1bHRXaWR0aDogc3RyaW5nIHwgbnVtYmVyO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zaWRlYmFyLWNvbGxhcHNlLXNob3cnKVxuICAgIGdldCBjb2xsYXBzZVZpc2liaWxpdHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRoeUNvbGxhcHNlZDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJlbW92ZS10cmFuc2l0aW9uJylcbiAgICBnZXQgcmVtb3ZlVHJhbnNpdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSZW1vdmVUcmFuc2l0aW9uO1xuICAgIH1cblxuICAgIGNvbGxhcHNlVGlwOiBzdHJpbmc7XG5cbiAgICBjb2xsYXBzaWJsZTogYm9vbGVhbjtcblxuICAgIGlzQ29sbGFwc2VkID0gZmFsc2U7XG5cbiAgICBvcmlnaW5XaWR0aDogbnVtYmVyID0gU0lERUJBUl9ERUZBVUxUX1dJRFRIO1xuXG4gICAgY29sbGFwc2VWaXNpYmxlOiBib29sZWFuO1xuXG4gICAgY29sbGFwc2VIaWRkZW46IGJvb2xlYW47XG5cbiAgICBpc1JlbW92ZVRyYW5zaXRpb246IGJvb2xlYW47XG5cbiAgICBpc1Jlc2l6YWJsZTogYm9vbGVhbjtcblxuICAgIGdldCBkcmFnTWluV2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRoeURyYWdNaW5XaWR0aCB8fCB0aGlzLnRoeUNvbGxhcHNlZFdpZHRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgaG90a2V5U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVDb2xsYXBzZVRpcCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaWJlSG90a2V5RXZlbnQoKSB7XG4gICAgICAgIHRoaXMuaG90a2V5U3Vic2NyaXB0aW9uID0gdGhpcy5ob3RrZXlEaXNwYXRjaGVyLmtleWRvd24oWydDb250cm9sKy8nLCAnTWV0YSsvJ10pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUNvbGxhcHNlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQ29sbGFwc2VUaXAoKSB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VUaXAgPSB0aGlzLnRoeUNvbGxhcHNlZCA/ICflsZXlvIAnIDogJ+aUtui1tyc7XG4gICAgICAgIHRoaXMuY29sbGFwc2VUaXAgPSB0aGlzLmNvbGxhcHNlVGlwICsgKGlzTWFjUGxhdGZvcm0oKSA/IGDvvIjijJggKyAvKWAgOiBg77yIQ3RybCArIC8pYCk7XG4gICAgfVxuXG4gICAgcmVzaXplSGFuZGxlcih7IHdpZHRoIH06IFRoeVJlc2l6ZUV2ZW50KSB7XG4gICAgICAgIGlmICh3aWR0aCA9PT0gdGhpcy5zaWRlYmFyRGlyZWN0aXZlLnRoeUxheW91dFNpZGViYXJXaWR0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRoeUNvbGxhcHNpYmxlICYmIHdpZHRoIDwgdGhpcy50aHlDb2xsYXBzZWRXaWR0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRoeUNvbGxhcHNpYmxlICYmIHdpZHRoID09PSB0aGlzLnRoeUNvbGxhcHNlZFdpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLnRoeUNvbGxhcHNlZCA9IHRydWU7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ29sbGFwc2VUaXAoKSwgMjAwKTtcbiAgICAgICAgICAgIHRoaXMudGh5Q29sbGFwc2VkQ2hhbmdlLmVtaXQodGhpcy5pc0NvbGxhcHNlZCk7XG4gICAgICAgICAgICB0aGlzLnNpZGViYXJEaXJlY3RpdmUudGh5TGF5b3V0U2lkZWJhcldpZHRoID0gdGhpcy5vcmlnaW5XaWR0aDtcbiAgICAgICAgICAgIHRoaXMuY29sbGFwc2VWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaWRlYmFyRGlyZWN0aXZlLnRoeUxheW91dFNpZGViYXJXaWR0aCA9IHdpZHRoO1xuICAgICAgICB0aGlzLnRoeURyYWdXaWR0aENoYW5nZS5lbWl0KHdpZHRoKTtcbiAgICB9XG5cbiAgICByZXNpemVTdGFydCgpIHtcbiAgICAgICAgdGhpcy5vcmlnaW5XaWR0aCA9IHRoaXMuc2lkZWJhckRpcmVjdGl2ZS50aHlMYXlvdXRTaWRlYmFyV2lkdGg7XG4gICAgICAgIHRoaXMuY29sbGFwc2VIaWRkZW4gPSB0cnVlO1xuICAgICAgICB0aGlzLmlzUmVtb3ZlVHJhbnNpdGlvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgcmVzaXplRW5kKCkge1xuICAgICAgICB0aGlzLmNvbGxhcHNlSGlkZGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNSZW1vdmVUcmFuc2l0aW9uID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmVzaXplSGFuZGxlSG92ZXIoZXZlbnQ6IE1vdXNlRXZlbnQsIHR5cGU6ICdlbnRlcicgfCAnbGVhdmUnKSB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VWaXNpYmxlID0gdHlwZSA9PT0gJ2VudGVyJyAmJiAhdGhpcy50aHlDb2xsYXBzZWQgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuXG4gICAgdG9nZ2xlQ29sbGFwc2UoZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMudGh5Q29sbGFwc2VkID0gIXRoaXMudGh5Q29sbGFwc2VkO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ29sbGFwc2VUaXAoKSwgMjAwKTtcbiAgICAgICAgdGhpcy50aHlDb2xsYXBzZWRDaGFuZ2UuZW1pdCh0aGlzLmlzQ29sbGFwc2VkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlUmVzaXphYmxlKGV2ZW50OiBNb3VzZUV2ZW50LCB0eXBlOiAnZW50ZXInIHwgJ2xlYXZlJykge1xuICAgICAgICB0aGlzLmlzUmVzaXphYmxlID0gdHlwZSA9PT0gJ2VudGVyJyA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXN0b3JlVG9EZWZhdWx0V2lkdGgoKSB7XG4gICAgICAgIGlmICh0aGlzLnRoeURlZmF1bHRXaWR0aCA9PT0gJ2xnJykge1xuICAgICAgICAgICAgdGhpcy50aHlEZWZhdWx0V2lkdGggPSBMR19XSURUSDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNpZGViYXJEaXJlY3RpdmUudGh5TGF5b3V0U2lkZWJhcldpZHRoID0gKHRoaXMudGh5RGVmYXVsdFdpZHRoIGFzIG51bWJlcikgfHwgU0lERUJBUl9ERUZBVUxUX1dJRFRIO1xuICAgICAgICB0aGlzLnRoeURyYWdXaWR0aENoYW5nZS5lbWl0KHRoaXMuc2lkZWJhckRpcmVjdGl2ZS50aHlMYXlvdXRTaWRlYmFyV2lkdGgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvdGtleVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
1
2
|
import { Component, Input, HostBinding, ChangeDetectionStrategy, TemplateRef, ContentChild } from '@angular/core';
|
|
2
3
|
import { ThyAvatar } from 'ngx-tethys/avatar';
|
|
3
|
-
import { NgIf } from '@angular/common';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
/**
|
|
6
6
|
* @name thy-list-item-meta,[thy-list-item-meta]
|
|
@@ -11,11 +11,11 @@ export class ThyListItemMeta {
|
|
|
11
11
|
this.className = `thy-list-item-meta`;
|
|
12
12
|
}
|
|
13
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyListItemMeta, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyListItemMeta, isStandalone: true, selector: "thy-list-item-meta,[thy-list-item-meta]", inputs: { thyAvatar: "thyAvatar", thyTitle: "thyTitle", thyDescription: "thyDescription" }, host: { properties: { "class": "this.className" } }, queries: [{ propertyName: "avatarTemplateRef", first: true, predicate: ["metaAvatar"], descendants: true }, { propertyName: "titleTemplateRef", first: true, predicate: ["metaTitle"], descendants: true }, { propertyName: "descriptionTemplateRef", first: true, predicate: ["metaDescription"], descendants: true }], ngImport: i0, template: "<div class=\"thy-list-item-meta-avatar\">\n @if (thyAvatar) {\n <thy-avatar [thySrc]=\"thyAvatar\"></thy-avatar>\n } @else {\n <ng-template [ngTemplateOutlet]=\"avatarTemplateRef\"></ng-template>\n }\n</div>\n<div class=\"thy-list-item-meta-content\">\n <div class=\"thy-list-item-meta-title\">\n @if (thyTitle) {\n {{ thyTitle }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"titleTemplateRef\"></ng-template>\n }\n </div>\n <div class=\"thy-list-item-meta-description\">\n @if (thyDescription) {\n {{ thyDescription }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef\"></ng-template>\n }\n </div>\n</div>\n", dependencies: [{ kind: "component", type: ThyAvatar, selector: "thy-avatar", inputs: ["thyShowName", "thySrc", "thyName", "thySize", "thyShowRemove", "thyRemovable", "thyImgClass", "thyDisabled", "thyLoading", "thyFetchPriority"], outputs: ["thyOnRemove", "thyRemove", "thyError"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15
15
|
}
|
|
16
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyListItemMeta, decorators: [{
|
|
17
17
|
type: Component,
|
|
18
|
-
args: [{ selector: 'thy-list-item-meta,[thy-list-item-meta]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
18
|
+
args: [{ selector: 'thy-list-item-meta,[thy-list-item-meta]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ThyAvatar, NgTemplateOutlet], template: "<div class=\"thy-list-item-meta-avatar\">\n @if (thyAvatar) {\n <thy-avatar [thySrc]=\"thyAvatar\"></thy-avatar>\n } @else {\n <ng-template [ngTemplateOutlet]=\"avatarTemplateRef\"></ng-template>\n }\n</div>\n<div class=\"thy-list-item-meta-content\">\n <div class=\"thy-list-item-meta-title\">\n @if (thyTitle) {\n {{ thyTitle }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"titleTemplateRef\"></ng-template>\n }\n </div>\n <div class=\"thy-list-item-meta-description\">\n @if (thyDescription) {\n {{ thyDescription }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef\"></ng-template>\n }\n </div>\n</div>\n" }]
|
|
19
19
|
}], ctorParameters: () => [], propDecorators: { thyAvatar: [{
|
|
20
20
|
type: Input
|
|
21
21
|
}], thyTitle: [{
|
|
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
35
35
|
type: HostBinding,
|
|
36
36
|
args: ['class']
|
|
37
37
|
}] } });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLW1ldGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpc3QvbGlzdC1pdGVtLW1ldGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2xpc3QvbGlzdC1pdGVtLW1ldGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUU5Qzs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sZUFBZTtJQTJCeEI7UUFGc0IsY0FBUyxHQUFHLG9CQUFvQixDQUFDO0lBRXhDLENBQUM7OEdBM0JQLGVBQWU7a0dBQWYsZUFBZSw2aUJDZjVCLDhxQkF1QkEsNENEVmMsU0FBUyxvUUFBRSxnQkFBZ0I7OzJGQUU1QixlQUFlO2tCQVAzQixTQUFTOytCQUNJLHlDQUF5QyxtQkFFbEMsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUM7d0RBTTdCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdDLGlCQUFpQjtzQkFEdkIsWUFBWTt1QkFBQyxZQUFZO2dCQUluQixnQkFBZ0I7c0JBRHRCLFlBQVk7dUJBQUMsV0FBVztnQkFJbEIsc0JBQXNCO3NCQUQ1QixZQUFZO3VCQUFDLGlCQUFpQjtnQkFHVCxTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEhvc3RCaW5kaW5nLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVGVtcGxhdGVSZWYsIENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5QXZhdGFyIH0gZnJvbSAnbmd4LXRldGh5cy9hdmF0YXInO1xuXG4vKipcbiAqIEBuYW1lIHRoeS1saXN0LWl0ZW0tbWV0YSxbdGh5LWxpc3QtaXRlbS1tZXRhXVxuICogQG9yZGVyIDQwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWxpc3QtaXRlbS1tZXRhLFt0aHktbGlzdC1pdGVtLW1ldGFdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGlzdC1pdGVtLW1ldGEuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RoeUF2YXRhciwgTmdUZW1wbGF0ZU91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgVGh5TGlzdEl0ZW1NZXRhIHtcbiAgICAvKipcbiAgICAgKiDliJfooajpobnnmoTlt6bkvqflm77niYdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlBdmF0YXI6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOWIl+ihqOmhueeahOagh+mimFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDliJfooajpobnnmoTmj4/ov7DmlofmnKxcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlEZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgQENvbnRlbnRDaGlsZCgnbWV0YUF2YXRhcicpXG4gICAgcHVibGljIGF2YXRhclRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQENvbnRlbnRDaGlsZCgnbWV0YVRpdGxlJylcbiAgICBwdWJsaWMgdGl0bGVUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBDb250ZW50Q2hpbGQoJ21ldGFEZXNjcmlwdGlvbicpXG4gICAgcHVibGljIGRlc2NyaXB0aW9uVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3NOYW1lID0gYHRoeS1saXN0LWl0ZW0tbWV0YWA7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGh5LWxpc3QtaXRlbS1tZXRhLWF2YXRhclwiPlxuICBAaWYgKHRoeUF2YXRhcikge1xuICAgIDx0aHktYXZhdGFyIFt0aHlTcmNdPVwidGh5QXZhdGFyXCI+PC90aHktYXZhdGFyPlxuICB9IEBlbHNlIHtcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYXZhdGFyVGVtcGxhdGVSZWZcIj48L25nLXRlbXBsYXRlPlxuICB9XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0aHktbGlzdC1pdGVtLW1ldGEtY29udGVudFwiPlxuICA8ZGl2IGNsYXNzPVwidGh5LWxpc3QtaXRlbS1tZXRhLXRpdGxlXCI+XG4gICAgQGlmICh0aHlUaXRsZSkge1xuICAgICAge3sgdGh5VGl0bGUgfX1cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aXRsZVRlbXBsYXRlUmVmXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidGh5LWxpc3QtaXRlbS1tZXRhLWRlc2NyaXB0aW9uXCI+XG4gICAgQGlmICh0aHlEZXNjcmlwdGlvbikge1xuICAgICAge3sgdGh5RGVzY3JpcHRpb24gfX1cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXNjcmlwdGlvblRlbXBsYXRlUmVmXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|