ngx-tethys 17.0.10 → 17.0.11
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 +9 -0
- package/action/action.component.d.ts +3 -3
- package/alert/alert.component.d.ts +1 -1
- package/anchor/anchor.component.d.ts +3 -1
- package/autocomplete/autocomplete.component.d.ts +1 -1
- package/autocomplete/autocomplete.trigger.directive.d.ts +1 -1
- package/avatar/avatar.component.d.ts +4 -4
- package/badge/badge.component.d.ts +3 -3
- package/button/button-icon.component.d.ts +2 -2
- package/button/button.component.d.ts +2 -2
- package/card/card.component.d.ts +3 -3
- package/card/content.component.d.ts +1 -1
- package/carousel/carousel.component.d.ts +4 -4
- package/cascader/cascader-li.component.d.ts +5 -5
- package/cascader/cascader-search-option.component.d.ts +3 -3
- package/cascader/cascader.component.d.ts +8 -8
- package/checkbox/checkbox.component.d.ts +1 -1
- package/collapse/collapse-item.component.d.ts +2 -2
- package/collapse/collapse.component.d.ts +1 -1
- package/color-picker/color-picker-panel.component.d.ts +1 -1
- package/color-picker/color-picker.component.d.ts +3 -3
- package/copy/copy.directive.d.ts +1 -1
- package/core/behaviors/decorators.d.ts +1 -1
- package/date-picker/abstract-picker.component.d.ts +7 -7
- package/date-picker/abstract-picker.directive.d.ts +3 -3
- package/date-picker/base-picker.component.d.ts +2 -2
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -1
- package/date-picker/lib/popups/inner-popup.component.d.ts +1 -1
- package/date-picker/picker.component.d.ts +1 -1
- package/date-range/date-range.component.d.ts +8 -2
- package/dialog/body/dialog-body.component.d.ts +1 -1
- package/dialog/footer/dialog-footer.component.d.ts +1 -1
- package/dialog/header/dialog-header.component.d.ts +1 -1
- package/divider/divider.component.d.ts +2 -2
- package/drag-drop/drag-handle.directive.d.ts +1 -1
- package/drag-drop/drag.directive.d.ts +1 -1
- package/drag-drop/drop-container.directive.d.ts +1 -1
- package/dropdown/dropdown-menu-item.directive.d.ts +2 -2
- package/dropdown/dropdown-menu.component.d.ts +1 -1
- package/dropdown/dropdown.directive.d.ts +1 -1
- package/empty/empty.component.d.ts +1 -1
- package/esm2022/action/action.component.mjs +7 -6
- package/esm2022/alert/alert.component.mjs +5 -5
- package/esm2022/anchor/anchor.component.mjs +5 -5
- package/esm2022/autocomplete/autocomplete.component.mjs +5 -4
- package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +5 -5
- package/esm2022/avatar/avatar.component.mjs +8 -8
- package/esm2022/badge/badge.component.mjs +7 -6
- package/esm2022/button/button-icon.component.mjs +6 -5
- package/esm2022/button/button.component.mjs +6 -6
- package/esm2022/card/card.component.mjs +7 -6
- package/esm2022/card/content.component.mjs +5 -4
- package/esm2022/carousel/carousel.component.mjs +8 -7
- package/esm2022/cascader/cascader-li.component.mjs +9 -8
- package/esm2022/cascader/cascader-search-option.component.mjs +7 -6
- package/esm2022/cascader/cascader.component.mjs +12 -12
- package/esm2022/checkbox/checkbox.component.mjs +5 -4
- package/esm2022/collapse/collapse-item.component.mjs +6 -6
- package/esm2022/collapse/collapse.component.mjs +5 -4
- package/esm2022/color-picker/color-picker-panel.component.mjs +5 -4
- package/esm2022/color-picker/color-picker.component.mjs +7 -6
- package/esm2022/copy/copy.directive.mjs +5 -4
- package/esm2022/core/behaviors/decorators.mjs +2 -2
- package/esm2022/date-picker/abstract-picker.component.mjs +11 -10
- package/esm2022/date-picker/abstract-picker.directive.mjs +6 -6
- package/esm2022/date-picker/base-picker.component.mjs +5 -5
- package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -5
- package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +5 -5
- package/esm2022/date-picker/picker.component.mjs +5 -5
- package/esm2022/date-range/date-range.component.mjs +6 -5
- package/esm2022/dialog/body/dialog-body.component.mjs +5 -4
- package/esm2022/dialog/footer/dialog-footer.component.mjs +5 -4
- package/esm2022/dialog/header/dialog-header.component.mjs +5 -4
- package/esm2022/divider/divider.component.mjs +6 -5
- package/esm2022/drag-drop/drag-handle.directive.mjs +5 -4
- package/esm2022/drag-drop/drag.directive.mjs +5 -4
- package/esm2022/drag-drop/drop-container.directive.mjs +5 -4
- package/esm2022/dropdown/dropdown-menu-item.directive.mjs +7 -6
- package/esm2022/dropdown/dropdown-menu.component.mjs +5 -4
- package/esm2022/dropdown/dropdown.directive.mjs +5 -5
- package/esm2022/empty/empty.component.mjs +5 -4
- package/esm2022/form/form-group-error/form-group-error.component.mjs +5 -4
- package/esm2022/form/form-group-label.directive.mjs +5 -4
- package/esm2022/form/form-group.component.mjs +7 -6
- package/esm2022/icon/icon.component.mjs +6 -5
- package/esm2022/image/image.directive.mjs +6 -5
- package/esm2022/input/input-search.component.mjs +5 -4
- package/esm2022/input/input.component.mjs +6 -5
- package/esm2022/input-number/input-number.component.mjs +6 -6
- package/esm2022/layout/header.component.mjs +7 -6
- package/esm2022/layout/sidebar-header.component.mjs +5 -4
- package/esm2022/layout/sidebar.component.mjs +12 -11
- package/esm2022/list/list.component.mjs +5 -4
- package/esm2022/list/selection/selection-list.mjs +7 -7
- package/esm2022/loading/loading.component.mjs +6 -5
- package/esm2022/menu/group/menu-group.component.mjs +10 -9
- package/esm2022/menu/item/action/menu-item-action.component.mjs +5 -4
- package/esm2022/menu/item/name/menu-item-name.component.mjs +5 -4
- package/esm2022/menu/menu.component.mjs +5 -4
- package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +5 -4
- package/esm2022/nav/nav-ink-bar.directive.mjs +6 -5
- package/esm2022/nav/nav-item.directive.mjs +7 -6
- package/esm2022/nav/nav.component.mjs +8 -7
- package/esm2022/pagination/pagination.component.mjs +9 -9
- package/esm2022/popover/popover.directive.mjs +6 -5
- package/esm2022/property/property-item.component.mjs +5 -4
- package/esm2022/property-operation/property-operation.component.mjs +9 -9
- package/esm2022/radio/group/radio-group.component.mjs +5 -4
- package/esm2022/rate/rate-item.component.mjs +5 -4
- package/esm2022/rate/rate.component.mjs +7 -7
- package/esm2022/resizable/resizable.directive.mjs +7 -6
- package/esm2022/resizable/resize-handle.component.mjs +5 -4
- package/esm2022/resizable/resize-handles.component.mjs +5 -4
- package/esm2022/segment/segment-item.component.mjs +5 -5
- package/esm2022/segment/segment.component.mjs +5 -4
- package/esm2022/select/custom-select/custom-select.component.mjs +14 -14
- package/esm2022/select/native-select/native-select.component.mjs +5 -5
- package/esm2022/shared/base-form-check.component.mjs +6 -5
- package/esm2022/shared/directives/thy-autofocus.directive.mjs +6 -5
- package/esm2022/shared/directives/thy-scroll.directive.mjs +5 -4
- package/esm2022/shared/directives/thy-show.mjs +5 -4
- package/esm2022/shared/option/group/option-group.component.mjs +5 -4
- package/esm2022/shared/option/list-option/list-option.component.mjs +5 -4
- package/esm2022/shared/option/option.component.mjs +5 -5
- package/esm2022/shared/select/select-control/select-control.component.mjs +10 -10
- package/esm2022/skeleton/skeleton-circle.component.mjs +5 -5
- package/esm2022/skeleton/skeleton-rectangle.component.mjs +5 -5
- package/esm2022/skeleton/skeleton.component.mjs +5 -4
- package/esm2022/skeleton/stylized/bullet-list.component.mjs +5 -4
- package/esm2022/skeleton/stylized/list.component.mjs +5 -4
- package/esm2022/skeleton/stylized/paragraph.component.mjs +5 -4
- package/esm2022/slide/slide-body/slide-body-section.component.mjs +5 -4
- package/esm2022/slider/slider.component.mjs +6 -6
- package/esm2022/space/space.component.mjs +5 -4
- package/esm2022/stepper/step-header.component.mjs +6 -5
- package/esm2022/stepper/stepper.component.mjs +5 -4
- package/esm2022/switch/switch.component.mjs +6 -5
- package/esm2022/table/table-column.component.mjs +9 -9
- package/esm2022/table/table-skeleton.component.mjs +6 -5
- package/esm2022/table/table.component.mjs +14 -14
- package/esm2022/tabs/tab.component.mjs +5 -4
- package/esm2022/tabs/tabs.component.mjs +6 -6
- package/esm2022/tag/tag.component.mjs +5 -5
- package/esm2022/time-picker/time-picker-panel.component.mjs +6 -6
- package/esm2022/time-picker/time-picker.component.mjs +9 -9
- package/esm2022/timeline/timeline.component.mjs +5 -4
- package/esm2022/tooltip/tooltip.directive.mjs +6 -6
- package/esm2022/tree/tree-node.component.mjs +9 -8
- package/esm2022/tree/tree.component.mjs +10 -10
- package/esm2022/tree-select/tree-select.component.mjs +11 -11
- package/esm2022/upload/file-select.component.mjs +6 -5
- package/esm2022/version.mjs +2 -2
- package/esm2022/vote/vote.component.mjs +7 -6
- package/esm2022/watermark/watermark.directive.mjs +5 -4
- package/fesm2022/ngx-tethys-action.mjs +6 -5
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +4 -4
- package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
- package/fesm2022/ngx-tethys-anchor.mjs +4 -4
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +6 -6
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +7 -7
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-badge.mjs +6 -5
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +8 -8
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +8 -7
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +7 -6
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +21 -21
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +4 -3
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-collapse.mjs +7 -7
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +8 -7
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +4 -3
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +1 -1
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +26 -26
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +5 -4
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +8 -7
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +5 -4
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-drag-drop.mjs +8 -8
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +10 -10
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +4 -3
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +10 -10
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +5 -5
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +5 -5
- 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 +7 -6
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +17 -16
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +8 -8
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +5 -4
- package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +15 -14
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +16 -16
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +8 -8
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +5 -5
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property-operation.mjs +8 -8
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +4 -3
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +7 -6
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +8 -8
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +10 -10
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +6 -6
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +15 -15
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +25 -25
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +14 -14
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +4 -4
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +5 -5
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +4 -3
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +7 -6
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +5 -4
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +22 -22
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +7 -7
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +4 -4
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +11 -11
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +4 -3
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +5 -5
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +10 -10
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +15 -15
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +5 -5
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +6 -5
- package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
- package/fesm2022/ngx-tethys-watermark.mjs +4 -3
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/form/form-group-error/form-group-error.component.d.ts +1 -1
- package/form/form-group-label.directive.d.ts +1 -1
- package/form/form-group.component.d.ts +3 -3
- package/icon/icon.component.d.ts +2 -2
- package/image/image.directive.d.ts +2 -2
- package/input/input-search.component.d.ts +1 -1
- package/input/input.component.d.ts +2 -2
- package/input-number/input-number.component.d.ts +2 -2
- package/layout/header.component.d.ts +3 -3
- package/layout/sidebar-header.component.d.ts +1 -1
- package/layout/sidebar.component.d.ts +7 -7
- package/list/list.component.d.ts +1 -1
- package/list/selection/selection-list.d.ts +3 -3
- package/loading/loading.component.d.ts +2 -2
- package/menu/group/menu-group.component.d.ts +6 -6
- package/menu/item/action/menu-item-action.component.d.ts +1 -1
- package/menu/item/name/menu-item-name.component.d.ts +1 -1
- package/menu/menu.component.d.ts +1 -1
- package/nav/icon-nav/icon-nav-link.directive.d.ts +1 -1
- package/nav/nav-ink-bar.directive.d.ts +2 -2
- package/nav/nav-item.directive.d.ts +3 -3
- package/nav/nav.component.d.ts +4 -4
- package/package.json +1 -1
- package/pagination/pagination.component.d.ts +5 -5
- package/popover/popover.directive.d.ts +2 -2
- package/property/property-item.component.d.ts +4 -1
- package/property-operation/property-operation.component.d.ts +5 -5
- package/radio/group/radio-group.component.d.ts +1 -1
- package/rate/rate-item.component.d.ts +1 -1
- package/rate/rate.component.d.ts +3 -3
- package/resizable/resizable.directive.d.ts +3 -3
- package/resizable/resize-handle.component.d.ts +1 -1
- package/resizable/resize-handles.component.d.ts +1 -1
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/segment-item.component.d.ts +1 -1
- package/segment/segment.component.d.ts +5 -1
- package/select/custom-select/custom-select.component.d.ts +10 -10
- package/select/native-select/native-select.component.d.ts +1 -1
- package/shared/base-form-check.component.d.ts +2 -2
- package/shared/directives/thy-autofocus.directive.d.ts +2 -2
- package/shared/directives/thy-scroll.directive.d.ts +1 -1
- package/shared/directives/thy-show.d.ts +1 -1
- package/shared/option/group/option-group.component.d.ts +1 -1
- package/shared/option/list-option/list-option.component.d.ts +1 -1
- package/shared/option/option.component.d.ts +1 -1
- package/shared/select/select-control/select-control.component.d.ts +6 -6
- package/skeleton/skeleton-circle.component.d.ts +1 -1
- package/skeleton/skeleton-rectangle.component.d.ts +1 -1
- package/skeleton/skeleton.component.d.ts +1 -1
- package/skeleton/stylized/bullet-list.component.d.ts +1 -1
- package/skeleton/stylized/list.component.d.ts +1 -1
- package/skeleton/stylized/paragraph.component.d.ts +1 -1
- package/slide/slide-body/slide-body-section.component.d.ts +1 -1
- package/slider/slider.component.d.ts +2 -2
- package/space/space.component.d.ts +1 -1
- package/stepper/step-header.component.d.ts +2 -2
- package/stepper/stepper.component.d.ts +1 -1
- package/switch/switch.component.d.ts +2 -2
- package/table/table-column.component.d.ts +5 -5
- package/table/table-skeleton.component.d.ts +2 -2
- package/table/table.component.d.ts +10 -10
- package/tabs/tab.component.d.ts +1 -1
- package/tabs/tabs.component.d.ts +2 -2
- package/tag/tag.component.d.ts +1 -1
- package/time-picker/time-picker-panel.component.d.ts +2 -2
- package/time-picker/time-picker.component.d.ts +5 -5
- package/timeline/timeline.component.d.ts +1 -1
- package/tooltip/tooltip.directive.d.ts +10 -2
- package/tree/tree-node.component.d.ts +20 -5
- package/tree/tree.component.d.ts +6 -6
- package/tree-select/tree-select.component.d.ts +7 -7
- package/upload/file-select.component.d.ts +2 -2
- package/vote/vote.component.d.ts +3 -3
- package/watermark/watermark.directive.d.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-popover.mjs","sources":["../../../src/popover/popover.config.ts","../../../src/popover/popover.options.ts","../../../src/popover/popover-container.component.ts","../../../src/popover/popover-container.component.html","../../../src/popover/popover-ref.ts","../../../src/popover/popover.service.ts","../../../src/popover/body/popover-body.component.ts","../../../src/popover/header/popover-header.component.ts","../../../src/popover/header/popover-header.component.html","../../../src/popover/popover.directive.ts","../../../src/popover/module.ts","../../../src/popover/popover-animations.ts","../../../src/popover/ngx-tethys-popover.ts"],"sourcesContent":["import { ThyPlacement, ThyAbstractOverlayConfig } from 'ngx-tethys/core';\n\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ElementRef, InjectionToken } from '@angular/core';\n\n/**\n * @public\n * @order 20\n */\nexport class ThyPopoverConfig<TData = unknown> extends ThyAbstractOverlayConfig<TData> {\n /**\n * 弹出悬浮层位置计算的 Origin Element,Connected Element\n * @description.en-us Origin Element, for overlay flexible connected to\n */\n origin: ElementRef<any> | HTMLElement;\n\n /**\n * 源点位置\n * @description.en-us Origin point, default use origin's boundingClientRect\n */\n originPosition?: {\n x: number;\n y: number;\n } & { width?: number; height?: number };\n\n /**\n * 相对于源点的位置,可选值:topCenter, topLeft, topRight, bottomCenter, bottomLeft, bottomRight ...\n * @description.en-us Placement be relative to origin, topCenter, topLeft, topRight, bottomCenter, bottomLeft, bottomRight ...\n */\n placement?: ThyPlacement;\n\n /**\n * 点击popover内部是否自动关闭弹出框\n * @description.en-us Click inside can been close\n */\n insideClosable?: boolean;\n\n /**\n * 相对于源点的偏移量\n * @description.en-us Offset be relative to origin, default is 0\n * @default 0\n */\n offset?: number;\n\n /**\n * 是否只能手动关闭,唯一标识为origin\n * @description.en-us Manually close it, default rules is which auto close last popover when open a new unless set manualClosure as true\n */\n manualClosure?: boolean;\n\n /**\n * 对弹出悬浮层位置计算的 Origin Element,Connected Element 添加 class\n * @description.en-us Origin active class when popover is opened\n * @default thy-popover-origin-active\n */\n originActiveClass?: string | string[];\n\n /**\n * 滚动策略\n */\n scrollStrategy?: ScrollStrategy;\n\n /**\n * 点击popover外部是否自动关闭弹出框,hasBackdrop=false 时该参数起作用\n * @description.en-us Click outside can been close\n */\n outsideClosable?: boolean;\n\n /**\n * 是否开启自动适配大小模式,开启后当弹出框内容宽高发生变化后自动更新位置\n * @description.en-us autoAdaptive is true when height change can auto update position\n */\n autoAdaptive?: boolean;\n\n /**\n * 是否禁用动画\n * @default false\n */\n animationDisabled?: boolean;\n}\n\nexport const THY_POPOVER_DEFAULT_CONFIG = new InjectionToken<ThyPopoverConfig>('thy-popover-default-config');\n\nexport const THY_POPOVER_DEFAULT_CONFIG_VALUE = {\n hasBackdrop: true,\n backdropClass: 'thy-popover-backdrop',\n panelClass: '',\n offset: 0,\n backdropClosable: true,\n closeOnNavigation: true,\n placement: 'bottom' as ThyPlacement,\n insideClosable: false,\n manualClosure: false,\n originActiveClass: 'thy-popover-origin-active',\n autoAdaptive: false,\n minWidth: '240px'\n};\n\nexport const THY_POPOVER_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_POPOVER_DEFAULT_CONFIG,\n useValue: THY_POPOVER_DEFAULT_CONFIG_VALUE\n};\n\nexport const THY_POPOVER_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('thy-popover-scroll-strategy');\n\nexport const THY_POPOVER_SCROLL_STRATEGY_FACTORY = (overlay: Overlay) => {\n return () => overlay.scrollStrategies.block();\n};\n\nexport const THY_POPOVER_SCROLL_STRATEGY_PROVIDER = {\n provide: THY_POPOVER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: THY_POPOVER_SCROLL_STRATEGY_FACTORY\n};\n","import { ThyAbstractOverlayOptions } from 'ngx-tethys/core';\n\nexport const popoverAbstractOverlayOptions: ThyAbstractOverlayOptions = {\n name: 'popover',\n animationEnabled: true,\n disposeWhenClose: true\n};\n","import { ThyAbstractOverlayContainer, ThyClickDispatcher, ThyPortalOutlet } from 'ngx-tethys/core';\nimport { from, Observable, timer } from 'rxjs';\nimport { filter, take, takeUntil } from 'rxjs/operators';\n\nimport { AnimationEvent } from '@angular/animations';\nimport { ContentObserver } from '@angular/cdk/observers';\nimport { PortalModule } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n NgZone,\n OnDestroy,\n ViewChild\n} from '@angular/core';\n\nimport { ThyPopoverConfig } from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\nimport { scaleMotion, scaleXMotion, scaleYMotion } from 'ngx-tethys/core';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-popover-container',\n templateUrl: './popover-container.component.html',\n animations: [scaleXMotion, scaleYMotion, scaleMotion],\n host: {\n class: 'thy-popover-container',\n tabindex: '-1',\n '[attr.role]': `'popover'`,\n '[attr.id]': 'id',\n\n '[@.disabled]': '!!config.animationDisabled',\n\n '[@scaleXMotion]': '(config.placement === \"left\" || config.placement === \"right\") ? animationState : \"void\"',\n '(@scaleXMotion.start)': 'onAnimationStart($event)',\n '(@scaleXMotion.done)': 'onAnimationDone($event)',\n\n '[@scaleYMotion]': '(config.placement === \"top\" || config.placement === \"bottom\") ? animationState : \"void\"',\n '(@scaleYMotion.start)': 'onAnimationStart($event)',\n '(@scaleYMotion.done)': 'onAnimationDone($event)',\n\n '[@scaleMotion]':\n '(config.placement !== \"left\" && config.placement !== \"right\" && config.placement !== \"top\" && config.placement !== \"bottom\") ? animationState : \"void\"',\n '(@scaleMotion.start)': 'onAnimationStart($event)',\n '(@scaleMotion.done)': 'onAnimationDone($event)'\n },\n standalone: true,\n imports: [PortalModule, ThyPortalOutlet]\n})\nexport class ThyPopoverContainer<TData = unknown> extends ThyAbstractOverlayContainer<TData> implements AfterViewInit, OnDestroy {\n @ViewChild(ThyPortalOutlet, { static: true })\n portalOutlet: ThyPortalOutlet;\n\n /** State of the popover animation. */\n animationState: 'void' | 'enter' | 'exit' = 'enter';\n\n /** Emits when an animation state changes. */\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n animationOpeningDone: Observable<AnimationEvent>;\n animationClosingDone: Observable<AnimationEvent>;\n\n insideClicked = new EventEmitter();\n\n updatePosition = new EventEmitter();\n\n outsideClicked = new EventEmitter();\n\n beforeAttachPortal(): void {}\n\n constructor(\n private elementRef: ElementRef,\n public config: ThyPopoverConfig<TData>,\n changeDetectorRef: ChangeDetectorRef,\n private thyClickDispatcher: ThyClickDispatcher,\n private contentObserver: ContentObserver,\n private ngZone: NgZone\n ) {\n super(popoverAbstractOverlayOptions, changeDetectorRef);\n\n this.animationOpeningDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'enter';\n })\n );\n this.animationClosingDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'exit';\n })\n );\n }\n\n ngAfterViewInit() {\n if (this.config.outsideClosable && !this.config.hasBackdrop) {\n timer(0).subscribe(() => {\n this.thyClickDispatcher\n .clicked()\n .pipe(takeUntil(this.animationClosingDone))\n .subscribe((event: MouseEvent) => {\n if (!this.elementRef.nativeElement.contains(event.target as HTMLElement)) {\n this.ngZone.run(() => {\n this.outsideClicked.emit();\n });\n }\n });\n });\n }\n\n if (this.config.autoAdaptive) {\n const onStable$ = this.ngZone.isStable ? from(Promise.resolve()) : this.ngZone.onStable.pipe(take(1));\n this.ngZone.runOutsideAngular(() => {\n onStable$.pipe(takeUntil(this.containerDestroy)).subscribe(() => {\n this.contentObserver\n .observe(this.elementRef)\n .pipe(takeUntil(this.containerDestroy))\n .subscribe(() => {\n this.updatePosition.emit();\n });\n });\n });\n }\n }\n\n /** Callback, invoked whenever an animation on the host completes. */\n onAnimationDone(event: AnimationEvent) {\n // if (event.toState === 'void') {\n // this.trapFocus();\n // } else if (event.toState === 'exit') {\n // this.restoreFocus();\n // }\n this.animationStateChanged.emit(event);\n }\n\n /** Callback, invoked when an animation on the host starts. */\n onAnimationStart(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n startExitAnimation(): void {\n this.animationState = 'exit';\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this.changeDetectorRef.markForCheck();\n }\n\n @HostListener('click', [])\n onInsideClick() {\n if (this.config.insideClosable) {\n this.insideClicked.emit();\n }\n }\n\n ngOnDestroy() {\n super.destroy();\n this.insideClicked.complete();\n this.updatePosition.complete();\n this.outsideClicked.complete();\n }\n}\n","<ng-template thyPortalOutlet></ng-template>\n","import { ThyAbstractInternalOverlayRef, ThyAbstractOverlayRef } from 'ngx-tethys/core';\n\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { merge } from 'rxjs';\n\nimport { ThyPopoverContainer } from './popover-container.component';\nimport { ThyPopoverConfig } from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\n\nexport abstract class ThyPopoverRef<T, TResult = unknown, TData = unknown> extends ThyAbstractOverlayRef<\n T,\n ThyPopoverContainer<TData>,\n TResult\n> {}\n\nexport class ThyInternalPopoverRef<T, TResult = unknown>\n extends ThyAbstractInternalOverlayRef<T, ThyPopoverContainer, TResult>\n implements ThyPopoverRef<T, TResult>\n{\n constructor(overlayRef: OverlayRef, containerInstance: ThyPopoverContainer, config: ThyPopoverConfig) {\n super(popoverAbstractOverlayOptions, overlayRef, containerInstance, config);\n // Note: doesn't need to unsubscribe, because `insideClicked` and `outsideClicked`\n // get completed by `ThyPopoverContainerComponent` when the view is destroyed.\n merge(containerInstance.insideClicked, containerInstance.outsideClicked).subscribe(() => this.close());\n containerInstance.updatePosition.subscribe(() => {\n this.updatePosition();\n });\n }\n\n /**\n * Updates the popover's position.\n * @param position New popover position.\n */\n updatePosition(): this {\n this.overlayRef.updatePosition();\n return this;\n }\n}\n","import { ComponentTypeOrTemplateRef, getFlexiblePositions, ThyAbstractOverlayRef, ThyAbstractOverlayService } from 'ngx-tethys/core';\nimport { FunctionProp, isFunction } from 'ngx-tethys/util';\nimport { of, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceArray, coerceElement } from '@angular/cdk/coercion';\nimport {\n FlexibleConnectedPositionStrategy,\n FlexibleConnectedPositionStrategyOrigin,\n Overlay,\n OverlayConfig,\n OverlayContainer,\n OverlayRef,\n PositionStrategy,\n ScrollStrategy,\n ViewportRuler\n} from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport { ElementRef, Inject, Injectable, Injector, NgZone, OnDestroy, Optional, StaticProvider, TemplateRef } from '@angular/core';\n\nimport { ThyPopoverContainer } from './popover-container.component';\nimport { ThyInternalPopoverRef, ThyPopoverRef } from './popover-ref';\nimport {\n THY_POPOVER_DEFAULT_CONFIG,\n THY_POPOVER_DEFAULT_CONFIG_VALUE,\n THY_POPOVER_SCROLL_STRATEGY,\n ThyPopoverConfig\n} from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\nimport { SafeAny } from 'ngx-tethys/types';\n\n/**\n * @public\n * @order 10\n */\n@Injectable()\nexport class ThyPopover extends ThyAbstractOverlayService<ThyPopoverConfig, ThyPopoverContainer> implements OnDestroy {\n private readonly ngUnsubscribe$ = new Subject();\n\n private originInstancesMap = new Map<\n ElementRef | HTMLElement,\n {\n config: ThyPopoverConfig;\n popoverRef: ThyPopoverRef<any, any>;\n }\n >();\n\n private buildPositionStrategy<TData>(config: ThyPopoverConfig<TData>): PositionStrategy {\n const origin: FlexibleConnectedPositionStrategyOrigin = config.originPosition ? config.originPosition : config.origin;\n // const positionStrategy = this.overlay.position().flexibleConnectedTo(origin);\n const positionStrategy = new FlexibleConnectedPositionStrategy(\n origin,\n this._viewportRuler,\n this._document,\n this._platform,\n this._overlayContainer\n );\n const positions = getFlexiblePositions(config.placement, config.offset, 'thy-popover');\n positionStrategy.withPositions(positions);\n positionStrategy.withGrowAfterOpen(true);\n positionStrategy.withTransformOriginOn('.thy-popover-container');\n positionStrategy.positionChanges.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(change => {\n if (change.scrollableViewProperties.isOverlayClipped) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this.ngZone.run(() => this.close());\n }\n });\n return positionStrategy;\n }\n\n private buildScrollStrategy(config: ThyPopoverConfig): ScrollStrategy {\n if (config.scrollStrategy) {\n return config.scrollStrategy;\n } else if (this.scrollStrategy && isFunction(this.scrollStrategy)) {\n return this.scrollStrategy();\n } else {\n this.overlay.scrollStrategies.block();\n }\n }\n\n protected buildOverlayConfig<TData>(config: ThyPopoverConfig<TData>): OverlayConfig {\n const positionStrategy = this.buildPositionStrategy(config);\n const overlayConfig = this.buildBaseOverlayConfig(config, 'thy-popover-panel');\n overlayConfig.positionStrategy = positionStrategy;\n overlayConfig.scrollStrategy = this.buildScrollStrategy(config);\n return overlayConfig;\n }\n\n protected attachOverlayContainer(overlay: OverlayRef, config: ThyPopoverConfig<any>): ThyPopoverContainer {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this.injector,\n providers: [{ provide: ThyPopoverConfig, useValue: config }]\n });\n const containerPortal = new ComponentPortal(ThyPopoverContainer, config.viewContainerRef, injector);\n const containerRef = overlay.attach<ThyPopoverContainer>(containerPortal);\n return containerRef.instance;\n }\n\n protected createAbstractOverlayRef<T, TResult = unknown>(\n overlayRef: OverlayRef,\n containerInstance: ThyPopoverContainer,\n config: ThyPopoverConfig\n ): ThyAbstractOverlayRef<T, ThyPopoverContainer, TResult> {\n return new ThyInternalPopoverRef(overlayRef, containerInstance, config);\n }\n\n protected createInjector<T>(config: ThyPopoverConfig, popoverRef: ThyPopoverRef<T>, popoverContainer: ThyPopoverContainer): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n const injectionTokens: StaticProvider[] = [\n { provide: ThyPopoverContainer, useValue: popoverContainer },\n {\n provide: ThyPopoverRef,\n useValue: popoverRef\n }\n ];\n\n if (config.direction && (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n injectionTokens.push({\n provide: Directionality,\n useValue: {\n value: config.direction,\n change: of()\n }\n });\n }\n\n return Injector.create({ parent: userInjector || this.injector, providers: injectionTokens });\n }\n\n private originElementAddActiveClass(config: ThyPopoverConfig) {\n if (config.originActiveClass) {\n coerceElement<HTMLElement>(config.origin).classList.add(...coerceArray(config.originActiveClass));\n }\n }\n\n private originElementRemoveActiveClass(config: ThyPopoverConfig) {\n if (config.originActiveClass) {\n coerceElement<HTMLElement>(config.origin).classList.remove(...coerceArray(config.originActiveClass));\n }\n }\n\n constructor(\n overlay: Overlay,\n injector: Injector,\n @Optional()\n @Inject(THY_POPOVER_DEFAULT_CONFIG)\n defaultConfig: ThyPopoverConfig,\n @Inject(THY_POPOVER_SCROLL_STRATEGY)\n scrollStrategy: FunctionProp<ScrollStrategy>,\n private ngZone: NgZone,\n private _viewportRuler: ViewportRuler,\n @Optional() @Inject(DOCUMENT) private _document: any,\n private _platform: Platform,\n private _overlayContainer: OverlayContainer\n ) {\n super(\n popoverAbstractOverlayOptions,\n overlay,\n injector,\n {\n ...THY_POPOVER_DEFAULT_CONFIG_VALUE,\n ...defaultConfig\n },\n scrollStrategy\n );\n }\n\n private ensureCloseClosest(origin: HTMLElement) {\n let closeAndEnd = false;\n this.originInstancesMap.forEach((value, key) => {\n if (value.config.manualClosure) {\n if (key === origin) {\n value.popoverRef.close();\n closeAndEnd = true;\n }\n } else {\n if (key === origin) {\n closeAndEnd = true;\n }\n value.popoverRef.close();\n }\n });\n return closeAndEnd;\n }\n\n /**\n * 打开悬浮层\n */\n open<T, TData = unknown, TResult = unknown>(\n componentOrTemplateRef: ComponentTypeOrTemplateRef<T>,\n config?: ThyPopoverConfig<TData>\n ): ThyPopoverRef<T, TResult> {\n const originElement = coerceElement(config.origin);\n // 默认关闭之前的弹出框\n // 1. 当之前的 Popover 设置 manualClosure 为 true 时, 弹出其他 Popover 时不自动关闭 manualClosure 为 true 的 Popover\n // 2. 当前的 Origin 对应的 Popover 已经弹出,不管 manualClosure 设置为何,直接关闭并返回\n if (this.ensureCloseClosest(originElement)) {\n return;\n }\n\n const popoverRef = this.openOverlay<T, TResult>(componentOrTemplateRef, config) as ThyPopoverRef<T, TResult, TData>;\n config = popoverRef.containerInstance.config;\n popoverRef.afterClosed().subscribe(() => {\n this.originElementRemoveActiveClass(config);\n this.originInstancesMap.delete(originElement);\n });\n\n this.originElementAddActiveClass(config);\n this.originInstancesMap.set(originElement, {\n config,\n popoverRef\n });\n\n return popoverRef;\n }\n\n /**\n * 根据Id获取打开的悬浮层\n */\n getPopoverById(id: string): ThyPopoverRef<any> | undefined {\n return this.getAbstractOverlayById(id) as ThyPopoverRef<any> | undefined;\n }\n\n /**\n * 获取已经打开的悬浮层\n */\n getOpenedPopovers(): ThyPopoverRef<SafeAny>[] {\n return this.getAbstractOverlays();\n }\n\n /**\n * @description.en-us Finds the closest ThyPopoverRef to an element by looking at the DOM.\n * @description 通过 Dom 元素查找最近弹出的悬浮层\n */\n getClosestPopover(element: HTMLElement): ThyPopoverRef<any> | undefined {\n const parent = element.closest('.thy-popover-container');\n\n if (parent && parent.id) {\n return this.getPopoverById(parent.id);\n }\n return null;\n }\n\n /**\n * 关闭悬浮层\n */\n close<T>(result?: T, force?: boolean) {\n super.close(result, force);\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * 悬浮层内容组件\n * @name thy-popover-body\n * @order 40\n */\n@Component({\n selector: 'thy-popover-body',\n template: '<ng-content></ng-content>',\n exportAs: 'thyPopoverBody',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-popover-body'\n },\n standalone: true\n})\nexport class ThyPopoverBody {}\n","import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { ThyPopover } from '../popover.service';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\n\n/**\n * 悬浮层头部组件\n * @name thy-popover-header\n * @order 30\n */\n@Component({\n selector: 'thy-popover-header',\n templateUrl: './popover-header.component.html',\n exportAs: 'thyPopoverHeader',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-popover-header'\n },\n standalone: true,\n imports: [NgIf, NgTemplateOutlet, ThyIcon]\n})\nexport class ThyPopoverHeader {\n /**\n * 头部标题\n */\n @Input() thyTitle: string;\n\n /**\n * 标题的多语言 Key\n */\n @Input()\n set thyTitleTranslationKey(key: string) {\n if (key && !this.thyTitle) {\n this.thyTitle = this.translate.instant(key);\n }\n }\n\n /**\n * 自定义头部模板\n * @type TemplateRef\n */\n @ContentChild('popoverHeader')\n public headerTemplate: TemplateRef<any>;\n\n /**\n * @internal\n */\n @Output() thyClosed: EventEmitter<Event> = new EventEmitter<Event>();\n\n constructor(private translate: ThyTranslate, private thyPopover: ThyPopover) {}\n\n /**\n * @internal\n */\n close(event: Event) {\n this.thyClosed.emit(event);\n this.thyPopover.close();\n }\n}\n","<ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <template [ngTemplateOutlet]=\"headerTemplate\"></template>\n</ng-container>\n<ng-template #defaultHeader>\n <h5 class=\"thy-popover-title\">{{ thyTitle }}</h5>\n <button type=\"button\" class=\"close\" (click)=\"close($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </button>\n</ng-template>\n","import {\n Directive,\n ElementRef,\n NgZone,\n OnDestroy,\n Input,\n TemplateRef,\n OnInit,\n ViewContainerRef,\n HostBinding,\n ChangeDetectorRef,\n numberAttribute,\n booleanAttribute\n} from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { ThyPopover } from './popover.service';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { ThyPopoverRef } from './popover-ref';\nimport { ThyPopoverConfig } from './popover.config';\n\n/**\n * 弹出悬浮层指令\n * @name thyPopover\n * @order 50\n */\n@Directive({\n selector: '[thyPopover]',\n standalone: true\n})\nexport class ThyPopoverDirective extends ThyOverlayDirectiveBase implements OnInit, OnDestroy {\n @HostBinding(`class.thy-popover-opened`) popoverOpened = false;\n\n /**\n * 悬浮组件或者模板\n */\n @Input('thyPopover') content: ComponentType<any> | TemplateRef<any>;\n\n /**\n * 弹出悬浮层的触发方式\n */\n @Input() set thyTrigger(trigger: ThyOverlayTrigger) {\n this.trigger = trigger;\n }\n\n /**\n * 弹出悬浮层的位置\n * @type top | topLeft | topRight | bottom | bottomLeft | bottomRight | left | leftTop | leftBottom | right | rightTop | rightBottom\n */\n @Input() thyPlacement: ThyPlacement = 'bottom';\n\n /**\n * 弹出悬浮层的偏移量\n */\n @Input({ transform: numberAttribute }) thyOffset: number = 0;\n\n /**\n * 弹出悬浮层的配置\n */\n @Input() thyConfig: ThyPopoverConfig;\n\n /**\n * 显示延迟时间\n */\n @Input({ transform: numberAttribute })\n set thyShowDelay(value: number) {\n this.showDelay = value;\n }\n\n /**\n * 隐藏延迟时间\n */\n @Input({ transform: numberAttribute })\n set thyHideDelay(value: number) {\n this.hideDelay = value;\n }\n\n /**\n * 自动适配内容变化重新计算位置\n */\n @Input({ transform: booleanAttribute }) thyAutoAdaptive = false;\n\n /**\n * 是否禁用打开悬浮层\n * @default false\n */\n @Input({ transform: booleanAttribute }) set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n\n private popoverRef: ThyPopoverRef<any>;\n\n constructor(\n public elementRef: ElementRef,\n platform: Platform,\n focusMonitor: FocusMonitor,\n ngZone: NgZone,\n private popover: ThyPopover,\n private viewContainerRef: ViewContainerRef,\n private cdr: ChangeDetectorRef\n ) {\n super(elementRef, platform, focusMonitor, ngZone, true);\n }\n\n ngOnInit(): void {\n this.initialize();\n }\n\n createOverlay(): OverlayRef {\n const config = Object.assign(\n {\n origin: this.elementRef.nativeElement,\n hasBackdrop: this.trigger === 'click' || this.trigger === 'focus',\n viewContainerRef: this.viewContainerRef,\n placement: this.thyPlacement,\n offset: this.thyOffset,\n autoAdaptive: this.thyAutoAdaptive\n },\n this.thyConfig\n );\n this.popoverRef = this.popover.open(this.content, config);\n\n this.popoverRef.afterClosed().subscribe(() => {\n this.popoverOpened = false;\n });\n\n return this.popoverRef.getOverlayRef();\n }\n\n show(delay: number = this.showDelay) {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n if (this.disabled || (this.overlayRef && this.overlayRef.hasAttached())) {\n return;\n }\n if (this.trigger !== 'hover') {\n delay = 0;\n }\n\n this.showTimeoutId = setTimeout(() => {\n if (!this.disabled) {\n const overlayRef = this.createOverlay();\n this.overlayRef = overlayRef;\n this.popoverOpened = true;\n this.cdr.markForCheck();\n }\n this.showTimeoutId = null;\n }, delay);\n }\n\n hide(delay: number = this.hideDelay) {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n if (this.popoverRef) {\n this.popoverRef.close();\n this.cdr.markForCheck();\n }\n this.hideTimeoutId = null;\n }, delay);\n }\n\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { ThyIconModule } from 'ngx-tethys/icon';\n\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyPopoverBody } from './body/popover-body.component';\nimport { ThyPopoverHeader } from './header/popover-header.component';\nimport { ThyPopoverContainer } from './popover-container.component';\nimport { THY_POPOVER_DEFAULT_CONFIG_PROVIDER, THY_POPOVER_SCROLL_STRATEGY_PROVIDER } from './popover.config';\nimport { ThyPopoverDirective } from './popover.directive';\nimport { ThyPopover } from './popover.service';\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule,\n ThyIconModule,\n ThyPopoverContainer,\n ThyPopoverDirective,\n ThyPopoverHeader,\n ThyPopoverBody\n ],\n exports: [ThyPopoverDirective, ThyPopoverHeader, ThyPopoverBody],\n providers: [THY_POPOVER_DEFAULT_CONFIG_PROVIDER, THY_POPOVER_SCROLL_STRATEGY_PROVIDER, ThyPopover]\n})\nexport class ThyPopoverModule {}\n","import { animate, state, style, transition, trigger, AnimationTriggerMetadata } from '@angular/animations';\n\nconst animationBody = [\n // Note: The `enter` animation transitions to `transform: none`, because for some reason\n // specifying the transform explicitly, causes IE both to blur the dialog content and\n // decimate the animation performance. Leaving it as `none` solves both issues. translate(-300px,-100px)\n state('void, exit', style({ opacity: 0, transform: 'scale(0.1)' })),\n state('enter', style({ transform: 'none' }))\n // transition('* => enter', animate('100ms cubic-bezier(0, 0, 0.57, 1)', style({ transform: 'none', opacity: 1 }))),\n // transition(\n // '* => exit',\n // animate('150ms cubic-bezier(0.24, 0.18, 0.96, 0.52)', style({ transform: 'scale(0.3)', opacity: 0 }))\n // )\n];\n\n/**\n * Animations used by ThyPopover.\n * @docs-private\n */\nexport const thyPopoverAnimations: {\n readonly popoverContainer: AnimationTriggerMetadata;\n} = {\n popoverContainer: trigger('popoverContainer', animationBody)\n};\n\n// export const setAnimationStart\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyPopoverConfig","i2","i1","i2.ThyPopover","i3.ThyPopover"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-popover.mjs","sources":["../../../src/popover/popover.config.ts","../../../src/popover/popover.options.ts","../../../src/popover/popover-container.component.ts","../../../src/popover/popover-container.component.html","../../../src/popover/popover-ref.ts","../../../src/popover/popover.service.ts","../../../src/popover/body/popover-body.component.ts","../../../src/popover/header/popover-header.component.ts","../../../src/popover/header/popover-header.component.html","../../../src/popover/popover.directive.ts","../../../src/popover/module.ts","../../../src/popover/popover-animations.ts","../../../src/popover/ngx-tethys-popover.ts"],"sourcesContent":["import { ThyPlacement, ThyAbstractOverlayConfig } from 'ngx-tethys/core';\n\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ElementRef, InjectionToken } from '@angular/core';\n\n/**\n * @public\n * @order 20\n */\nexport class ThyPopoverConfig<TData = unknown> extends ThyAbstractOverlayConfig<TData> {\n /**\n * 弹出悬浮层位置计算的 Origin Element,Connected Element\n * @description.en-us Origin Element, for overlay flexible connected to\n */\n origin: ElementRef<any> | HTMLElement;\n\n /**\n * 源点位置\n * @description.en-us Origin point, default use origin's boundingClientRect\n */\n originPosition?: {\n x: number;\n y: number;\n } & { width?: number; height?: number };\n\n /**\n * 相对于源点的位置,可选值:topCenter, topLeft, topRight, bottomCenter, bottomLeft, bottomRight ...\n * @description.en-us Placement be relative to origin, topCenter, topLeft, topRight, bottomCenter, bottomLeft, bottomRight ...\n */\n placement?: ThyPlacement;\n\n /**\n * 点击popover内部是否自动关闭弹出框\n * @description.en-us Click inside can been close\n */\n insideClosable?: boolean;\n\n /**\n * 相对于源点的偏移量\n * @description.en-us Offset be relative to origin, default is 0\n * @default 0\n */\n offset?: number;\n\n /**\n * 是否只能手动关闭,唯一标识为origin\n * @description.en-us Manually close it, default rules is which auto close last popover when open a new unless set manualClosure as true\n */\n manualClosure?: boolean;\n\n /**\n * 对弹出悬浮层位置计算的 Origin Element,Connected Element 添加 class\n * @description.en-us Origin active class when popover is opened\n * @default thy-popover-origin-active\n */\n originActiveClass?: string | string[];\n\n /**\n * 滚动策略\n */\n scrollStrategy?: ScrollStrategy;\n\n /**\n * 点击popover外部是否自动关闭弹出框,hasBackdrop=false 时该参数起作用\n * @description.en-us Click outside can been close\n */\n outsideClosable?: boolean;\n\n /**\n * 是否开启自动适配大小模式,开启后当弹出框内容宽高发生变化后自动更新位置\n * @description.en-us autoAdaptive is true when height change can auto update position\n */\n autoAdaptive?: boolean;\n\n /**\n * 是否禁用动画\n * @default false\n */\n animationDisabled?: boolean;\n}\n\nexport const THY_POPOVER_DEFAULT_CONFIG = new InjectionToken<ThyPopoverConfig>('thy-popover-default-config');\n\nexport const THY_POPOVER_DEFAULT_CONFIG_VALUE = {\n hasBackdrop: true,\n backdropClass: 'thy-popover-backdrop',\n panelClass: '',\n offset: 0,\n backdropClosable: true,\n closeOnNavigation: true,\n placement: 'bottom' as ThyPlacement,\n insideClosable: false,\n manualClosure: false,\n originActiveClass: 'thy-popover-origin-active',\n autoAdaptive: false,\n minWidth: '240px'\n};\n\nexport const THY_POPOVER_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_POPOVER_DEFAULT_CONFIG,\n useValue: THY_POPOVER_DEFAULT_CONFIG_VALUE\n};\n\nexport const THY_POPOVER_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('thy-popover-scroll-strategy');\n\nexport const THY_POPOVER_SCROLL_STRATEGY_FACTORY = (overlay: Overlay) => {\n return () => overlay.scrollStrategies.block();\n};\n\nexport const THY_POPOVER_SCROLL_STRATEGY_PROVIDER = {\n provide: THY_POPOVER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: THY_POPOVER_SCROLL_STRATEGY_FACTORY\n};\n","import { ThyAbstractOverlayOptions } from 'ngx-tethys/core';\n\nexport const popoverAbstractOverlayOptions: ThyAbstractOverlayOptions = {\n name: 'popover',\n animationEnabled: true,\n disposeWhenClose: true\n};\n","import { ThyAbstractOverlayContainer, ThyClickDispatcher, ThyPortalOutlet } from 'ngx-tethys/core';\nimport { from, Observable, timer } from 'rxjs';\nimport { filter, take, takeUntil } from 'rxjs/operators';\n\nimport { AnimationEvent } from '@angular/animations';\nimport { ContentObserver } from '@angular/cdk/observers';\nimport { PortalModule } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n NgZone,\n OnDestroy,\n ViewChild\n} from '@angular/core';\n\nimport { ThyPopoverConfig } from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\nimport { scaleMotion, scaleXMotion, scaleYMotion } from 'ngx-tethys/core';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-popover-container',\n templateUrl: './popover-container.component.html',\n animations: [scaleXMotion, scaleYMotion, scaleMotion],\n host: {\n class: 'thy-popover-container',\n tabindex: '-1',\n '[attr.role]': `'popover'`,\n '[attr.id]': 'id',\n\n '[@.disabled]': '!!config.animationDisabled',\n\n '[@scaleXMotion]': '(config.placement === \"left\" || config.placement === \"right\") ? animationState : \"void\"',\n '(@scaleXMotion.start)': 'onAnimationStart($event)',\n '(@scaleXMotion.done)': 'onAnimationDone($event)',\n\n '[@scaleYMotion]': '(config.placement === \"top\" || config.placement === \"bottom\") ? animationState : \"void\"',\n '(@scaleYMotion.start)': 'onAnimationStart($event)',\n '(@scaleYMotion.done)': 'onAnimationDone($event)',\n\n '[@scaleMotion]':\n '(config.placement !== \"left\" && config.placement !== \"right\" && config.placement !== \"top\" && config.placement !== \"bottom\") ? animationState : \"void\"',\n '(@scaleMotion.start)': 'onAnimationStart($event)',\n '(@scaleMotion.done)': 'onAnimationDone($event)'\n },\n standalone: true,\n imports: [PortalModule, ThyPortalOutlet]\n})\nexport class ThyPopoverContainer<TData = unknown> extends ThyAbstractOverlayContainer<TData> implements AfterViewInit, OnDestroy {\n @ViewChild(ThyPortalOutlet, { static: true })\n portalOutlet: ThyPortalOutlet;\n\n /** State of the popover animation. */\n animationState: 'void' | 'enter' | 'exit' = 'enter';\n\n /** Emits when an animation state changes. */\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n animationOpeningDone: Observable<AnimationEvent>;\n animationClosingDone: Observable<AnimationEvent>;\n\n insideClicked = new EventEmitter();\n\n updatePosition = new EventEmitter();\n\n outsideClicked = new EventEmitter();\n\n beforeAttachPortal(): void {}\n\n constructor(\n private elementRef: ElementRef,\n public config: ThyPopoverConfig<TData>,\n changeDetectorRef: ChangeDetectorRef,\n private thyClickDispatcher: ThyClickDispatcher,\n private contentObserver: ContentObserver,\n private ngZone: NgZone\n ) {\n super(popoverAbstractOverlayOptions, changeDetectorRef);\n\n this.animationOpeningDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'enter';\n })\n );\n this.animationClosingDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'exit';\n })\n );\n }\n\n ngAfterViewInit() {\n if (this.config.outsideClosable && !this.config.hasBackdrop) {\n timer(0).subscribe(() => {\n this.thyClickDispatcher\n .clicked()\n .pipe(takeUntil(this.animationClosingDone))\n .subscribe((event: MouseEvent) => {\n if (!this.elementRef.nativeElement.contains(event.target as HTMLElement)) {\n this.ngZone.run(() => {\n this.outsideClicked.emit();\n });\n }\n });\n });\n }\n\n if (this.config.autoAdaptive) {\n const onStable$ = this.ngZone.isStable ? from(Promise.resolve()) : this.ngZone.onStable.pipe(take(1));\n this.ngZone.runOutsideAngular(() => {\n onStable$.pipe(takeUntil(this.containerDestroy)).subscribe(() => {\n this.contentObserver\n .observe(this.elementRef)\n .pipe(takeUntil(this.containerDestroy))\n .subscribe(() => {\n this.updatePosition.emit();\n });\n });\n });\n }\n }\n\n /** Callback, invoked whenever an animation on the host completes. */\n onAnimationDone(event: AnimationEvent) {\n // if (event.toState === 'void') {\n // this.trapFocus();\n // } else if (event.toState === 'exit') {\n // this.restoreFocus();\n // }\n this.animationStateChanged.emit(event);\n }\n\n /** Callback, invoked when an animation on the host starts. */\n onAnimationStart(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n startExitAnimation(): void {\n this.animationState = 'exit';\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this.changeDetectorRef.markForCheck();\n }\n\n @HostListener('click', [])\n onInsideClick() {\n if (this.config.insideClosable) {\n this.insideClicked.emit();\n }\n }\n\n ngOnDestroy() {\n super.destroy();\n this.insideClicked.complete();\n this.updatePosition.complete();\n this.outsideClicked.complete();\n }\n}\n","<ng-template thyPortalOutlet></ng-template>\n","import { ThyAbstractInternalOverlayRef, ThyAbstractOverlayRef } from 'ngx-tethys/core';\n\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { merge } from 'rxjs';\n\nimport { ThyPopoverContainer } from './popover-container.component';\nimport { ThyPopoverConfig } from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\n\nexport abstract class ThyPopoverRef<T, TResult = unknown, TData = unknown> extends ThyAbstractOverlayRef<\n T,\n ThyPopoverContainer<TData>,\n TResult\n> {}\n\nexport class ThyInternalPopoverRef<T, TResult = unknown>\n extends ThyAbstractInternalOverlayRef<T, ThyPopoverContainer, TResult>\n implements ThyPopoverRef<T, TResult>\n{\n constructor(overlayRef: OverlayRef, containerInstance: ThyPopoverContainer, config: ThyPopoverConfig) {\n super(popoverAbstractOverlayOptions, overlayRef, containerInstance, config);\n // Note: doesn't need to unsubscribe, because `insideClicked` and `outsideClicked`\n // get completed by `ThyPopoverContainerComponent` when the view is destroyed.\n merge(containerInstance.insideClicked, containerInstance.outsideClicked).subscribe(() => this.close());\n containerInstance.updatePosition.subscribe(() => {\n this.updatePosition();\n });\n }\n\n /**\n * Updates the popover's position.\n * @param position New popover position.\n */\n updatePosition(): this {\n this.overlayRef.updatePosition();\n return this;\n }\n}\n","import { ComponentTypeOrTemplateRef, getFlexiblePositions, ThyAbstractOverlayRef, ThyAbstractOverlayService } from 'ngx-tethys/core';\nimport { FunctionProp, isFunction } from 'ngx-tethys/util';\nimport { of, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceArray, coerceElement } from '@angular/cdk/coercion';\nimport {\n FlexibleConnectedPositionStrategy,\n FlexibleConnectedPositionStrategyOrigin,\n Overlay,\n OverlayConfig,\n OverlayContainer,\n OverlayRef,\n PositionStrategy,\n ScrollStrategy,\n ViewportRuler\n} from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport { ElementRef, Inject, Injectable, Injector, NgZone, OnDestroy, Optional, StaticProvider, TemplateRef } from '@angular/core';\n\nimport { ThyPopoverContainer } from './popover-container.component';\nimport { ThyInternalPopoverRef, ThyPopoverRef } from './popover-ref';\nimport {\n THY_POPOVER_DEFAULT_CONFIG,\n THY_POPOVER_DEFAULT_CONFIG_VALUE,\n THY_POPOVER_SCROLL_STRATEGY,\n ThyPopoverConfig\n} from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\nimport { SafeAny } from 'ngx-tethys/types';\n\n/**\n * @public\n * @order 10\n */\n@Injectable()\nexport class ThyPopover extends ThyAbstractOverlayService<ThyPopoverConfig, ThyPopoverContainer> implements OnDestroy {\n private readonly ngUnsubscribe$ = new Subject();\n\n private originInstancesMap = new Map<\n ElementRef | HTMLElement,\n {\n config: ThyPopoverConfig;\n popoverRef: ThyPopoverRef<any, any>;\n }\n >();\n\n private buildPositionStrategy<TData>(config: ThyPopoverConfig<TData>): PositionStrategy {\n const origin: FlexibleConnectedPositionStrategyOrigin = config.originPosition ? config.originPosition : config.origin;\n // const positionStrategy = this.overlay.position().flexibleConnectedTo(origin);\n const positionStrategy = new FlexibleConnectedPositionStrategy(\n origin,\n this._viewportRuler,\n this._document,\n this._platform,\n this._overlayContainer\n );\n const positions = getFlexiblePositions(config.placement, config.offset, 'thy-popover');\n positionStrategy.withPositions(positions);\n positionStrategy.withGrowAfterOpen(true);\n positionStrategy.withTransformOriginOn('.thy-popover-container');\n positionStrategy.positionChanges.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(change => {\n if (change.scrollableViewProperties.isOverlayClipped) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this.ngZone.run(() => this.close());\n }\n });\n return positionStrategy;\n }\n\n private buildScrollStrategy(config: ThyPopoverConfig): ScrollStrategy {\n if (config.scrollStrategy) {\n return config.scrollStrategy;\n } else if (this.scrollStrategy && isFunction(this.scrollStrategy)) {\n return this.scrollStrategy();\n } else {\n this.overlay.scrollStrategies.block();\n }\n }\n\n protected buildOverlayConfig<TData>(config: ThyPopoverConfig<TData>): OverlayConfig {\n const positionStrategy = this.buildPositionStrategy(config);\n const overlayConfig = this.buildBaseOverlayConfig(config, 'thy-popover-panel');\n overlayConfig.positionStrategy = positionStrategy;\n overlayConfig.scrollStrategy = this.buildScrollStrategy(config);\n return overlayConfig;\n }\n\n protected attachOverlayContainer(overlay: OverlayRef, config: ThyPopoverConfig<any>): ThyPopoverContainer {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this.injector,\n providers: [{ provide: ThyPopoverConfig, useValue: config }]\n });\n const containerPortal = new ComponentPortal(ThyPopoverContainer, config.viewContainerRef, injector);\n const containerRef = overlay.attach<ThyPopoverContainer>(containerPortal);\n return containerRef.instance;\n }\n\n protected createAbstractOverlayRef<T, TResult = unknown>(\n overlayRef: OverlayRef,\n containerInstance: ThyPopoverContainer,\n config: ThyPopoverConfig\n ): ThyAbstractOverlayRef<T, ThyPopoverContainer, TResult> {\n return new ThyInternalPopoverRef(overlayRef, containerInstance, config);\n }\n\n protected createInjector<T>(config: ThyPopoverConfig, popoverRef: ThyPopoverRef<T>, popoverContainer: ThyPopoverContainer): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n const injectionTokens: StaticProvider[] = [\n { provide: ThyPopoverContainer, useValue: popoverContainer },\n {\n provide: ThyPopoverRef,\n useValue: popoverRef\n }\n ];\n\n if (config.direction && (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n injectionTokens.push({\n provide: Directionality,\n useValue: {\n value: config.direction,\n change: of()\n }\n });\n }\n\n return Injector.create({ parent: userInjector || this.injector, providers: injectionTokens });\n }\n\n private originElementAddActiveClass(config: ThyPopoverConfig) {\n if (config.originActiveClass) {\n coerceElement<HTMLElement>(config.origin).classList.add(...coerceArray(config.originActiveClass));\n }\n }\n\n private originElementRemoveActiveClass(config: ThyPopoverConfig) {\n if (config.originActiveClass) {\n coerceElement<HTMLElement>(config.origin).classList.remove(...coerceArray(config.originActiveClass));\n }\n }\n\n constructor(\n overlay: Overlay,\n injector: Injector,\n @Optional()\n @Inject(THY_POPOVER_DEFAULT_CONFIG)\n defaultConfig: ThyPopoverConfig,\n @Inject(THY_POPOVER_SCROLL_STRATEGY)\n scrollStrategy: FunctionProp<ScrollStrategy>,\n private ngZone: NgZone,\n private _viewportRuler: ViewportRuler,\n @Optional() @Inject(DOCUMENT) private _document: any,\n private _platform: Platform,\n private _overlayContainer: OverlayContainer\n ) {\n super(\n popoverAbstractOverlayOptions,\n overlay,\n injector,\n {\n ...THY_POPOVER_DEFAULT_CONFIG_VALUE,\n ...defaultConfig\n },\n scrollStrategy\n );\n }\n\n private ensureCloseClosest(origin: HTMLElement) {\n let closeAndEnd = false;\n this.originInstancesMap.forEach((value, key) => {\n if (value.config.manualClosure) {\n if (key === origin) {\n value.popoverRef.close();\n closeAndEnd = true;\n }\n } else {\n if (key === origin) {\n closeAndEnd = true;\n }\n value.popoverRef.close();\n }\n });\n return closeAndEnd;\n }\n\n /**\n * 打开悬浮层\n */\n open<T, TData = unknown, TResult = unknown>(\n componentOrTemplateRef: ComponentTypeOrTemplateRef<T>,\n config?: ThyPopoverConfig<TData>\n ): ThyPopoverRef<T, TResult> {\n const originElement = coerceElement(config.origin);\n // 默认关闭之前的弹出框\n // 1. 当之前的 Popover 设置 manualClosure 为 true 时, 弹出其他 Popover 时不自动关闭 manualClosure 为 true 的 Popover\n // 2. 当前的 Origin 对应的 Popover 已经弹出,不管 manualClosure 设置为何,直接关闭并返回\n if (this.ensureCloseClosest(originElement)) {\n return;\n }\n\n const popoverRef = this.openOverlay<T, TResult>(componentOrTemplateRef, config) as ThyPopoverRef<T, TResult, TData>;\n config = popoverRef.containerInstance.config;\n popoverRef.afterClosed().subscribe(() => {\n this.originElementRemoveActiveClass(config);\n this.originInstancesMap.delete(originElement);\n });\n\n this.originElementAddActiveClass(config);\n this.originInstancesMap.set(originElement, {\n config,\n popoverRef\n });\n\n return popoverRef;\n }\n\n /**\n * 根据Id获取打开的悬浮层\n */\n getPopoverById(id: string): ThyPopoverRef<any> | undefined {\n return this.getAbstractOverlayById(id) as ThyPopoverRef<any> | undefined;\n }\n\n /**\n * 获取已经打开的悬浮层\n */\n getOpenedPopovers(): ThyPopoverRef<SafeAny>[] {\n return this.getAbstractOverlays();\n }\n\n /**\n * @description.en-us Finds the closest ThyPopoverRef to an element by looking at the DOM.\n * @description 通过 Dom 元素查找最近弹出的悬浮层\n */\n getClosestPopover(element: HTMLElement): ThyPopoverRef<any> | undefined {\n const parent = element.closest('.thy-popover-container');\n\n if (parent && parent.id) {\n return this.getPopoverById(parent.id);\n }\n return null;\n }\n\n /**\n * 关闭悬浮层\n */\n close<T>(result?: T, force?: boolean) {\n super.close(result, force);\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * 悬浮层内容组件\n * @name thy-popover-body\n * @order 40\n */\n@Component({\n selector: 'thy-popover-body',\n template: '<ng-content></ng-content>',\n exportAs: 'thyPopoverBody',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-popover-body'\n },\n standalone: true\n})\nexport class ThyPopoverBody {}\n","import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { ThyPopover } from '../popover.service';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\n\n/**\n * 悬浮层头部组件\n * @name thy-popover-header\n * @order 30\n */\n@Component({\n selector: 'thy-popover-header',\n templateUrl: './popover-header.component.html',\n exportAs: 'thyPopoverHeader',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-popover-header'\n },\n standalone: true,\n imports: [NgIf, NgTemplateOutlet, ThyIcon]\n})\nexport class ThyPopoverHeader {\n /**\n * 头部标题\n */\n @Input() thyTitle: string;\n\n /**\n * 标题的多语言 Key\n */\n @Input()\n set thyTitleTranslationKey(key: string) {\n if (key && !this.thyTitle) {\n this.thyTitle = this.translate.instant(key);\n }\n }\n\n /**\n * 自定义头部模板\n * @type TemplateRef\n */\n @ContentChild('popoverHeader')\n public headerTemplate: TemplateRef<any>;\n\n /**\n * @internal\n */\n @Output() thyClosed: EventEmitter<Event> = new EventEmitter<Event>();\n\n constructor(private translate: ThyTranslate, private thyPopover: ThyPopover) {}\n\n /**\n * @internal\n */\n close(event: Event) {\n this.thyClosed.emit(event);\n this.thyPopover.close();\n }\n}\n","<ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <template [ngTemplateOutlet]=\"headerTemplate\"></template>\n</ng-container>\n<ng-template #defaultHeader>\n <h5 class=\"thy-popover-title\">{{ thyTitle }}</h5>\n <button type=\"button\" class=\"close\" (click)=\"close($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </button>\n</ng-template>\n","import {\n Directive,\n ElementRef,\n NgZone,\n OnDestroy,\n Input,\n TemplateRef,\n OnInit,\n ViewContainerRef,\n HostBinding,\n ChangeDetectorRef,\n numberAttribute\n} from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { ThyPopover } from './popover.service';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { ThyPopoverRef } from './popover-ref';\nimport { ThyPopoverConfig } from './popover.config';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 弹出悬浮层指令\n * @name thyPopover\n * @order 50\n */\n@Directive({\n selector: '[thyPopover]',\n standalone: true\n})\nexport class ThyPopoverDirective extends ThyOverlayDirectiveBase implements OnInit, OnDestroy {\n @HostBinding(`class.thy-popover-opened`) popoverOpened = false;\n\n /**\n * 悬浮组件或者模板\n */\n @Input('thyPopover') content: ComponentType<any> | TemplateRef<any>;\n\n /**\n * 弹出悬浮层的触发方式\n */\n @Input() set thyTrigger(trigger: ThyOverlayTrigger) {\n this.trigger = trigger;\n }\n\n /**\n * 弹出悬浮层的位置\n * @type top | topLeft | topRight | bottom | bottomLeft | bottomRight | left | leftTop | leftBottom | right | rightTop | rightBottom\n */\n @Input() thyPlacement: ThyPlacement = 'bottom';\n\n /**\n * 弹出悬浮层的偏移量\n */\n @Input({ transform: numberAttribute }) thyOffset: number = 0;\n\n /**\n * 弹出悬浮层的配置\n */\n @Input() thyConfig: ThyPopoverConfig;\n\n /**\n * 显示延迟时间\n */\n @Input({ transform: numberAttribute })\n set thyShowDelay(value: number) {\n this.showDelay = value;\n }\n\n /**\n * 隐藏延迟时间\n */\n @Input({ transform: numberAttribute })\n set thyHideDelay(value: number) {\n this.hideDelay = value;\n }\n\n /**\n * 自动适配内容变化重新计算位置\n */\n @Input({ transform: coerceBooleanProperty }) thyAutoAdaptive = false;\n\n /**\n * 是否禁用打开悬浮层\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n\n private popoverRef: ThyPopoverRef<any>;\n\n constructor(\n public elementRef: ElementRef,\n platform: Platform,\n focusMonitor: FocusMonitor,\n ngZone: NgZone,\n private popover: ThyPopover,\n private viewContainerRef: ViewContainerRef,\n private cdr: ChangeDetectorRef\n ) {\n super(elementRef, platform, focusMonitor, ngZone, true);\n }\n\n ngOnInit(): void {\n this.initialize();\n }\n\n createOverlay(): OverlayRef {\n const config = Object.assign(\n {\n origin: this.elementRef.nativeElement,\n hasBackdrop: this.trigger === 'click' || this.trigger === 'focus',\n viewContainerRef: this.viewContainerRef,\n placement: this.thyPlacement,\n offset: this.thyOffset,\n autoAdaptive: this.thyAutoAdaptive\n },\n this.thyConfig\n );\n this.popoverRef = this.popover.open(this.content, config);\n\n this.popoverRef.afterClosed().subscribe(() => {\n this.popoverOpened = false;\n });\n\n return this.popoverRef.getOverlayRef();\n }\n\n show(delay: number = this.showDelay) {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n if (this.disabled || (this.overlayRef && this.overlayRef.hasAttached())) {\n return;\n }\n if (this.trigger !== 'hover') {\n delay = 0;\n }\n\n this.showTimeoutId = setTimeout(() => {\n if (!this.disabled) {\n const overlayRef = this.createOverlay();\n this.overlayRef = overlayRef;\n this.popoverOpened = true;\n this.cdr.markForCheck();\n }\n this.showTimeoutId = null;\n }, delay);\n }\n\n hide(delay: number = this.hideDelay) {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n if (this.popoverRef) {\n this.popoverRef.close();\n this.cdr.markForCheck();\n }\n this.hideTimeoutId = null;\n }, delay);\n }\n\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { ThyIconModule } from 'ngx-tethys/icon';\n\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyPopoverBody } from './body/popover-body.component';\nimport { ThyPopoverHeader } from './header/popover-header.component';\nimport { ThyPopoverContainer } from './popover-container.component';\nimport { THY_POPOVER_DEFAULT_CONFIG_PROVIDER, THY_POPOVER_SCROLL_STRATEGY_PROVIDER } from './popover.config';\nimport { ThyPopoverDirective } from './popover.directive';\nimport { ThyPopover } from './popover.service';\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule,\n ThyIconModule,\n ThyPopoverContainer,\n ThyPopoverDirective,\n ThyPopoverHeader,\n ThyPopoverBody\n ],\n exports: [ThyPopoverDirective, ThyPopoverHeader, ThyPopoverBody],\n providers: [THY_POPOVER_DEFAULT_CONFIG_PROVIDER, THY_POPOVER_SCROLL_STRATEGY_PROVIDER, ThyPopover]\n})\nexport class ThyPopoverModule {}\n","import { animate, state, style, transition, trigger, AnimationTriggerMetadata } from '@angular/animations';\n\nconst animationBody = [\n // Note: The `enter` animation transitions to `transform: none`, because for some reason\n // specifying the transform explicitly, causes IE both to blur the dialog content and\n // decimate the animation performance. Leaving it as `none` solves both issues. translate(-300px,-100px)\n state('void, exit', style({ opacity: 0, transform: 'scale(0.1)' })),\n state('enter', style({ transform: 'none' }))\n // transition('* => enter', animate('100ms cubic-bezier(0, 0, 0.57, 1)', style({ transform: 'none', opacity: 1 }))),\n // transition(\n // '* => exit',\n // animate('150ms cubic-bezier(0.24, 0.18, 0.96, 0.52)', style({ transform: 'scale(0.3)', opacity: 0 }))\n // )\n];\n\n/**\n * Animations used by ThyPopover.\n * @docs-private\n */\nexport const thyPopoverAnimations: {\n readonly popoverContainer: AnimationTriggerMetadata;\n} = {\n popoverContainer: trigger('popoverContainer', animationBody)\n};\n\n// export const setAnimationStart\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyPopoverConfig","i2","i1","i2.ThyPopover","i3.ThyPopover"],"mappings":";;;;;;;;;;;;;;;;;;;AAKA;;;AAGG;AACG,MAAO,gBAAkC,SAAQ,wBAA+B,CAAA;AAsErF,CAAA;MAEY,0BAA0B,GAAG,IAAI,cAAc,CAAmB,4BAA4B,EAAE;AAEhG,MAAA,gCAAgC,GAAG;AAC5C,IAAA,WAAW,EAAE,IAAI;AACjB,IAAA,aAAa,EAAE,sBAAsB;AACrC,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,MAAM,EAAE,CAAC;AACT,IAAA,gBAAgB,EAAE,IAAI;AACtB,IAAA,iBAAiB,EAAE,IAAI;AACvB,IAAA,SAAS,EAAE,QAAwB;AACnC,IAAA,cAAc,EAAE,KAAK;AACrB,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,iBAAiB,EAAE,2BAA2B;AAC9C,IAAA,YAAY,EAAE,KAAK;AACnB,IAAA,QAAQ,EAAE,OAAO;EACnB;AAEW,MAAA,mCAAmC,GAAG;AAC/C,IAAA,OAAO,EAAE,0BAA0B;AACnC,IAAA,QAAQ,EAAE,gCAAgC;EAC5C;MAEW,2BAA2B,GAAG,IAAI,cAAc,CAAuB,6BAA6B,EAAE;AAEtG,MAAA,mCAAmC,GAAG,CAAC,OAAgB,KAAI;IACpE,OAAO,MAAM,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAClD,EAAE;AAEW,MAAA,oCAAoC,GAAG;AAChD,IAAA,OAAO,EAAE,2BAA2B;IACpC,IAAI,EAAE,CAAC,OAAO,CAAC;AACf,IAAA,UAAU,EAAE,mCAAmC;;;AC9G5C,MAAM,6BAA6B,GAA8B;AACpE,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,gBAAgB,EAAE,IAAI;AACtB,IAAA,gBAAgB,EAAE,IAAI;CACzB;;ACiBD;;AAEG;AA6BG,MAAO,mBAAqC,SAAQ,2BAAkC,CAAA;AAmBxF,IAAA,kBAAkB,MAAW;IAE7B,WACY,CAAA,UAAsB,EACvB,MAA+B,EACtC,iBAAoC,EAC5B,kBAAsC,EACtC,eAAgC,EAChC,MAAc,EAAA;AAEtB,QAAA,KAAK,CAAC,6BAA6B,EAAE,iBAAiB,CAAC,CAAC;QAPhD,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACvB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAyB;QAE9B,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QACtC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;;QAtB1B,IAAc,CAAA,cAAA,GAA8B,OAAO,CAAC;;AAGpD,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAkB,CAAC;AAK3D,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AAEnC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AAEpC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AAchC,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CACvD,MAAM,CAAC,CAAC,KAAqB,KAAI;YAC7B,OAAO,KAAK,CAAC,SAAS,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC;SAClE,CAAC,CACL,CAAC;AACF,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CACvD,MAAM,CAAC,CAAC,KAAqB,KAAI;YAC7B,OAAO,KAAK,CAAC,SAAS,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC;SACjE,CAAC,CACL,CAAC;KACL;IAED,eAAe,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AACzD,YAAA,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACpB,gBAAA,IAAI,CAAC,kBAAkB;AAClB,qBAAA,OAAO,EAAE;AACT,qBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC1C,qBAAA,SAAS,CAAC,CAAC,KAAiB,KAAI;AAC7B,oBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAqB,CAAC,EAAE;AACtE,wBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACjB,4BAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;AAC/B,yBAAC,CAAC,CAAC;qBACN;AACL,iBAAC,CAAC,CAAC;AACX,aAAC,CAAC,CAAC;SACN;AAED,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;AAC1B,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACtG,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AAC/B,gBAAA,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC5D,oBAAA,IAAI,CAAC,eAAe;AACf,yBAAA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;AACxB,yBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;yBACtC,SAAS,CAAC,MAAK;AACZ,wBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;AAC/B,qBAAC,CAAC,CAAC;AACX,iBAAC,CAAC,CAAC;AACP,aAAC,CAAC,CAAC;SACN;KACJ;;AAGD,IAAA,eAAe,CAAC,KAAqB,EAAA;;;;;;AAMjC,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1C;;AAGD,IAAA,gBAAgB,CAAC,KAAqB,EAAA;AAClC,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1C;IAED,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;;;AAI7B,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;KACzC;IAGD,aAAa,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;AAC5B,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SAC7B;KACJ;IAED,WAAW,GAAA;QACP,KAAK,CAAC,OAAO,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KAClC;8GA7GQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EACjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,qBAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,qBAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAA,EAAA,4BAAA,EAAA,eAAA,EAAA,+FAAA,EAAA,eAAA,EAAA,+FAAA,EAAA,cAAA,EAAA,kKAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,eAAe,ECvD9B,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,+CACA,2CDmDc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAvB3B,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC,EAAA,CAAA,CAAA,EAAA;;2FAyB5C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBA5B/B,SAAS;+BACI,uBAAuB,EAAA,UAAA,EAErB,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC,EAC/C,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,uBAAuB;AAC9B,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,aAAa,EAAE,CAAW,SAAA,CAAA;AAC1B,wBAAA,WAAW,EAAE,IAAI;AAEjB,wBAAA,cAAc,EAAE,4BAA4B;AAE5C,wBAAA,iBAAiB,EAAE,yFAAyF;AAC5G,wBAAA,uBAAuB,EAAE,0BAA0B;AACnD,wBAAA,sBAAsB,EAAE,yBAAyB;AAEjD,wBAAA,iBAAiB,EAAE,yFAAyF;AAC5G,wBAAA,uBAAuB,EAAE,0BAA0B;AACnD,wBAAA,sBAAsB,EAAE,yBAAyB;AAEjD,wBAAA,gBAAgB,EACZ,wJAAwJ;AAC5J,wBAAA,sBAAsB,EAAE,0BAA0B;AAClD,wBAAA,qBAAqB,EAAE,yBAAyB;AACnD,qBAAA,EAAA,UAAA,EACW,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,+CAAA,EAAA,CAAA;+NAIxC,YAAY,EAAA,CAAA;sBADX,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAiG5C,aAAa,EAAA,CAAA;sBADZ,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,CAAA;;;AE9IvB,MAAgB,aAAqD,SAAQ,qBAIlF,CAAA;AAAG,CAAA;AAEE,MAAO,qBACT,SAAQ,6BAA8D,CAAA;AAGtE,IAAA,WAAA,CAAY,UAAsB,EAAE,iBAAsC,EAAE,MAAwB,EAAA;QAChG,KAAK,CAAC,6BAA6B,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;;;QAG5E,KAAK,CAAC,iBAAiB,CAAC,aAAa,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACvG,QAAA,iBAAiB,CAAC,cAAc,CAAC,SAAS,CAAC,MAAK;YAC5C,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1B,SAAC,CAAC,CAAC;KACN;AAED;;;AAGG;IACH,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,QAAA,OAAO,IAAI,CAAC;KACf;AACJ;;ACHD;;;AAGG;AAEG,MAAO,UAAW,SAAQ,yBAAgE,CAAA;AAWpF,IAAA,qBAAqB,CAAQ,MAA+B,EAAA;AAChE,QAAA,MAAM,MAAM,GAA4C,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;;QAEtH,MAAM,gBAAgB,GAAG,IAAI,iCAAiC,CAC1D,MAAM,EACN,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,iBAAiB,CACzB,CAAC;AACF,QAAA,MAAM,SAAS,GAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AACvF,QAAA,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAC1C,QAAA,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACzC,QAAA,gBAAgB,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC;AACjE,QAAA,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAG;AACrF,YAAA,IAAI,MAAM,CAAC,wBAAwB,CAAC,gBAAgB,EAAE;;;AAGlD,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;aACvC;AACL,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,gBAAgB,CAAC;KAC3B;AAEO,IAAA,mBAAmB,CAAC,MAAwB,EAAA;AAChD,QAAA,IAAI,MAAM,CAAC,cAAc,EAAE;YACvB,OAAO,MAAM,CAAC,cAAc,CAAC;SAChC;aAAM,IAAI,IAAI,CAAC,cAAc,IAAI,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;AAC/D,YAAA,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;SAChC;aAAM;AACH,YAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;SACzC;KACJ;AAES,IAAA,kBAAkB,CAAQ,MAA+B,EAAA;QAC/D,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAC/E,QAAA,aAAa,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAClD,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAChE,QAAA,OAAO,aAAa,CAAC;KACxB;IAES,sBAAsB,CAAC,OAAmB,EAAE,MAA6B,EAAA;AAC/E,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AAC3F,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC7B,YAAA,MAAM,EAAE,YAAY,IAAI,IAAI,CAAC,QAAQ;YACrC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC/D,SAAA,CAAC,CAAC;AACH,QAAA,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,mBAAmB,EAAE,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QACpG,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAsB,eAAe,CAAC,CAAC;QAC1E,OAAO,YAAY,CAAC,QAAQ,CAAC;KAChC;AAES,IAAA,wBAAwB,CAC9B,UAAsB,EACtB,iBAAsC,EACtC,MAAwB,EAAA;QAExB,OAAO,IAAI,qBAAqB,CAAC,UAAU,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;KAC3E;AAES,IAAA,cAAc,CAAI,MAAwB,EAAE,UAA4B,EAAE,gBAAqC,EAAA;AACrH,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AAE3F,QAAA,MAAM,eAAe,GAAqB;AACtC,YAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE;AAC5D,YAAA;AACI,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,QAAQ,EAAE,UAAU;AACvB,aAAA;SACJ,CAAC;AAEF,QAAA,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAwB,cAAc,EAAE,IAAI,CAAC,CAAC,EAAE;YACvG,eAAe,CAAC,IAAI,CAAC;AACjB,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,QAAQ,EAAE;oBACN,KAAK,EAAE,MAAM,CAAC,SAAS;oBACvB,MAAM,EAAE,EAAE,EAAE;AACf,iBAAA;AACJ,aAAA,CAAC,CAAC;SACN;AAED,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;KACjG;AAEO,IAAA,2BAA2B,CAAC,MAAwB,EAAA;AACxD,QAAA,IAAI,MAAM,CAAC,iBAAiB,EAAE;AAC1B,YAAA,aAAa,CAAc,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;SACrG;KACJ;AAEO,IAAA,8BAA8B,CAAC,MAAwB,EAAA;AAC3D,QAAA,IAAI,MAAM,CAAC,iBAAiB,EAAE;AAC1B,YAAA,aAAa,CAAc,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;SACxG;KACJ;AAED,IAAA,WAAA,CACI,OAAgB,EAChB,QAAkB,EAGlB,aAA+B,EAE/B,cAA4C,EACpC,MAAc,EACd,cAA6B,EACC,SAAc,EAC5C,SAAmB,EACnB,iBAAmC,EAAA;AAE3C,QAAA,KAAK,CACD,6BAA6B,EAC7B,OAAO,EACP,QAAQ,EACR;AACI,YAAA,GAAG,gCAAgC;AACnC,YAAA,GAAG,aAAa;SACnB,EACD,cAAc,CACjB,CAAC;QAfM,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;QACC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAK;QAC5C,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QACnB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;AAvH9B,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;AAExC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,GAAG,EAMjC,CAAC;KA2HH;AAEO,IAAA,kBAAkB,CAAC,MAAmB,EAAA;QAC1C,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;AAC3C,YAAA,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE;AAC5B,gBAAA,IAAI,GAAG,KAAK,MAAM,EAAE;AAChB,oBAAA,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;oBACzB,WAAW,GAAG,IAAI,CAAC;iBACtB;aACJ;iBAAM;AACH,gBAAA,IAAI,GAAG,KAAK,MAAM,EAAE;oBAChB,WAAW,GAAG,IAAI,CAAC;iBACtB;AACD,gBAAA,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;aAC5B;AACL,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,WAAW,CAAC;KACtB;AAED;;AAEG;IACH,IAAI,CACA,sBAAqD,EACrD,MAAgC,EAAA;QAEhC,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;;;AAInD,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,EAAE;YACxC,OAAO;SACV;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAa,sBAAsB,EAAE,MAAM,CAAqC,CAAC;AACpH,QAAA,MAAM,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC;AAC7C,QAAA,UAAU,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAK;AACpC,YAAA,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC;AAC5C,YAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAClD,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,EAAE;YACvC,MAAM;YACN,UAAU;AACb,SAAA,CAAC,CAAC;AAEH,QAAA,OAAO,UAAU,CAAC;KACrB;AAED;;AAEG;AACH,IAAA,cAAc,CAAC,EAAU,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAmC,CAAC;KAC5E;AAED;;AAEG;IACH,iBAAiB,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;KACrC;AAED;;;AAGG;AACH,IAAA,iBAAiB,CAAC,OAAoB,EAAA;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAEzD,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,EAAE,EAAE;YACrB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACzC;AACD,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;AAEG;IACH,KAAK,CAAI,MAAU,EAAE,KAAe,EAAA;AAChC,QAAA,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KAC9B;AAED;;AAEG;IACH,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;AA9NQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,EAgHP,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,0BAA0B,EAE1B,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,2BAA2B,gEAIf,QAAQ,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAtHvB,UAAU,EAAA,CAAA,CAAA,EAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB,UAAU;;0BAgHF,QAAQ;;0BACR,MAAM;2BAAC,0BAA0B,CAAA;;0BAEjC,MAAM;2BAAC,2BAA2B,CAAA;;0BAIlC,QAAQ;;0BAAI,MAAM;2BAAC,QAAQ,CAAA;;;AC3JpC;;;;AAIG;MAWU,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,wJARb,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAQ5B,cAAc,EAAA,UAAA,EAAA,CAAA;kBAV1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,kBAAkB;AAC5B,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;ACVD;;;;AAIG;MAYU,gBAAgB,CAAA;AAMzB;;AAEG;IACH,IACI,sBAAsB,CAAC,GAAW,EAAA;AAClC,QAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC/C;KACJ;IAcD,WAAoB,CAAA,SAAuB,EAAU,UAAsB,EAAA;QAAvD,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;QAAU,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAL3E;;AAEG;AACO,QAAA,IAAA,CAAA,SAAS,GAAwB,IAAI,YAAY,EAAS,CAAC;KAEU;AAE/E;;AAEG;AACH,IAAA,KAAK,CAAC,KAAY,EAAA;AACd,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;KAC3B;8GApCQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,oYCtB7B,wXASA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDWc,IAAI,EAAE,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oJAAE,OAAO,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAEhC,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAX5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,YAEpB,kBAAkB,EAAA,eAAA,EACX,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,oBAAoB;qBAC9B,EACW,UAAA,EAAA,IAAI,WACP,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,wXAAA,EAAA,CAAA;uGAMjC,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAMF,sBAAsB,EAAA,CAAA;sBADzB,KAAK;gBAYC,cAAc,EAAA,CAAA;sBADpB,YAAY;uBAAC,eAAe,CAAA;gBAMnB,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;AEzBX;;;;AAIG;AAKG,MAAO,mBAAoB,SAAQ,uBAAuB,CAAA;AAQ5D;;AAEG;IACH,IAAa,UAAU,CAAC,OAA0B,EAAA;AAC9C,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KAC1B;AAkBD;;AAEG;IACH,IACI,YAAY,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;AAED;;AAEG;IACH,IACI,YAAY,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;AAOD;;;AAGG;IACH,IAAiD,WAAW,CAAC,KAAc,EAAA;AACvE,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACzB;AAID,IAAA,WAAA,CACW,UAAsB,EAC7B,QAAkB,EAClB,YAA0B,EAC1B,MAAc,EACN,OAAmB,EACnB,gBAAkC,EAClC,GAAsB,EAAA;QAE9B,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QARjD,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAIrB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QACnB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QApEO,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAc/D;;;AAGG;QACM,IAAY,CAAA,YAAA,GAAiB,QAAQ,CAAC;AAE/C;;AAEG;QACoC,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;AAuB7D;;AAEG;QAC0C,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;KAsBpE;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAED,aAAa,GAAA;AACT,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CACxB;AACI,YAAA,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa;YACrC,WAAW,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;YACjE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,SAAS,EAAE,IAAI,CAAC,YAAY;YAC5B,MAAM,EAAE,IAAI,CAAC,SAAS;YACtB,YAAY,EAAE,IAAI,CAAC,eAAe;AACrC,SAAA,EACD,IAAI,CAAC,SAAS,CACjB,CAAC;AACF,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE1D,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAK;AACzC,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC/B,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;KAC1C;AAED,IAAA,IAAI,CAAC,KAAA,GAAgB,IAAI,CAAC,SAAS,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7B;AAED,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE;YACrE,OAAO;SACV;AACD,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;YAC1B,KAAK,GAAG,CAAC,CAAC;SACb;AAED,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;AACjC,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACxC,gBAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAC7B,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;AACD,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7B,EAAE,KAAK,CAAC,CAAC;KACb;AAED,IAAA,IAAI,CAAC,KAAA,GAAgB,IAAI,CAAC,SAAS,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7B;AAED,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;AACjC,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AACxB,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;AACD,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7B,EAAE,KAAK,CAAC,CAAC;KACb;IAED,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;8GA5IQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,SAAA,CAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAwBR,eAAe,CAUf,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAAA,eAAe,kDAQf,eAAe,CAAA,EAAA,eAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAQf,qBAAqB,CAAA,EAAA,WAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAMrB,qBAAqB,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAxDhC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;+OAE4C,aAAa,EAAA,CAAA;sBAArD,WAAW;uBAAC,CAA0B,wBAAA,CAAA,CAAA;gBAKlB,OAAO,EAAA,CAAA;sBAA3B,KAAK;uBAAC,YAAY,CAAA;gBAKN,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAQG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAKiC,SAAS,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;gBAK5B,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAMF,YAAY,EAAA,CAAA;sBADf,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;gBASjC,YAAY,EAAA,CAAA;sBADf,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;gBAQQ,eAAe,EAAA,CAAA;sBAA3D,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAMM,WAAW,EAAA,CAAA;sBAA3D,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;;;MC5DlC,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAZrB,YAAY;YACZ,aAAa;YACb,YAAY;YACZ,aAAa;YACb,mBAAmB;YACnB,mBAAmB;YACnB,gBAAgB;AAChB,YAAA,cAAc,CAER,EAAA,OAAA,EAAA,CAAA,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;+GAGtD,gBAAgB,EAAA,SAAA,EAFd,CAAC,mCAAmC,EAAE,oCAAoC,EAAE,UAAU,CAAC,EAAA,OAAA,EAAA,CAV9F,YAAY;YACZ,aAAa;YACb,YAAY;YACZ,aAAa;YACb,mBAAmB;YAEnB,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAd5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,aAAa;wBACb,YAAY;wBACZ,aAAa;wBACb,mBAAmB;wBACnB,mBAAmB;wBACnB,gBAAgB;wBAChB,cAAc;AACjB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,CAAC;AAChE,oBAAA,SAAS,EAAE,CAAC,mCAAmC,EAAE,oCAAoC,EAAE,UAAU,CAAC;AACrG,iBAAA,CAAA;;;ACzBD,MAAM,aAAa,GAAG;;;;AAIlB,IAAA,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;IACnE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;;;;;;CAM/C,CAAC;AAEF;;;AAGG;AACU,MAAA,oBAAoB,GAE7B;AACA,IAAA,gBAAgB,EAAE,OAAO,CAAC,kBAAkB,EAAE,aAAa,CAAC;EAC9D;AAEF;;ACzBA;;AAEG;;;;"}
|
|
@@ -3,10 +3,10 @@ import { ThyFlexibleText, ThyFlexibleTextModule } from 'ngx-tethys/flexible-text
|
|
|
3
3
|
import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
|
|
4
4
|
import { NgTemplateOutlet, NgIf, NgClass, CommonModule } from '@angular/common';
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { Component, HostBinding, EventEmitter,
|
|
6
|
+
import { Component, HostBinding, EventEmitter, Output, ContentChild, ViewChild, Input, NgModule } from '@angular/core';
|
|
7
7
|
import { useHostRenderer } from '@tethys/cdk/dom';
|
|
8
8
|
import * as i1 from 'ngx-tethys/core';
|
|
9
|
-
import { htmlElementIsEmpty } from 'ngx-tethys/util';
|
|
9
|
+
import { htmlElementIsEmpty, coerceBooleanProperty } from 'ngx-tethys/util';
|
|
10
10
|
import { Subject, fromEvent } from 'rxjs';
|
|
11
11
|
import { takeUntil } from 'rxjs/operators';
|
|
12
12
|
|
|
@@ -149,7 +149,7 @@ class ThyPropertyOperation {
|
|
|
149
149
|
this.thyOnRemove.emit($event);
|
|
150
150
|
}
|
|
151
151
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyPropertyOperation, deps: [{ token: i1.ThyTranslate }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
152
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyPropertyOperation, isStandalone: true, selector: "thy-property-operation", inputs: { thyLabelText: "thyLabelText", thyValue: "thyValue", thyLabelTextTranslateKey: "thyLabelTextTranslateKey", thyIcon: "thyIcon", thyShowClose: ["thyShowClose", "thyShowClose",
|
|
152
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyPropertyOperation, isStandalone: true, selector: "thy-property-operation", inputs: { thyLabelText: "thyLabelText", thyValue: "thyValue", thyLabelTextTranslateKey: "thyLabelTextTranslateKey", thyIcon: "thyIcon", thyShowClose: ["thyShowClose", "thyShowClose", coerceBooleanProperty], thyLabelHasValue: ["thyLabelHasValue", "thyLabelHasValue", coerceBooleanProperty], thyLabelHideWhenHasValue: ["thyLabelHideWhenHasValue", "thyLabelHideWhenHasValue", coerceBooleanProperty], thyType: "thyType", active: ["thyActive", "active", coerceBooleanProperty], disabled: ["thyDisabled", "disabled", coerceBooleanProperty] }, outputs: { thyOnRemove: "thyOnRemove", thyClick: "thyClick" }, host: { properties: { "class.thy-property-operation": "this._isPropertyOperation", "class.active": "this.active", "class.thy-property-operation-disabled": "this.disabled" } }, queries: [{ propertyName: "operationIcon", first: true, predicate: ["operationIcon"], descendants: true }], viewQueries: [{ propertyName: "contentElement", first: true, predicate: ["contentElement"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"thy-operation-icon\">\n <ng-container *ngTemplateOutlet=\"operationIcon\"></ng-container>\n <button\n *ngIf=\"icon\"\n [ngClass]=\"{ disabled: disabled }\"\n [thyButtonIcon]=\"icon\"\n [thyShape]=\"onlyHasTips ? 'circle-thick-dashed' : 'circle-thick-solid'\"\n ></button>\n</div>\n<div class=\"thy-operation-content\" [ngClass]=\"{ 'only-has-tips': onlyHasTips }\">\n <div #contentElement>\n <ng-content></ng-content>\n </div>\n <ng-container *ngIf=\"value\">\n <span thyFlexibleText [thyTooltipContent]=\"value\">{{ value }}</span>\n </ng-container>\n\n <div class=\"thy-tips\" *ngIf=\"!value || (!labelHideWhenHasValue && value)\">{{ labelText }}</div>\n</div>\n<span *ngIf=\"showClose && !disabled\" (click)=\"remove($event)\" class=\"close-link close-link-danger\">\n <thy-icon thyIconName=\"close\" class=\" close-link-sm\"></thy-icon>\n</span>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThyButtonIcon, selector: "thy-button-icon,[thy-button-icon],[thyButtonIcon]", inputs: ["thySize", "thyIcon", "thyButtonIcon", "thyShape", "thyLight", "thyActive", "thyTheme", "thyColor"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }] }); }
|
|
153
153
|
}
|
|
154
154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyPropertyOperation, decorators: [{
|
|
155
155
|
type: Component,
|
|
@@ -177,13 +177,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
177
177
|
type: Input
|
|
178
178
|
}], thyShowClose: [{
|
|
179
179
|
type: Input,
|
|
180
|
-
args: [{ transform:
|
|
180
|
+
args: [{ transform: coerceBooleanProperty }]
|
|
181
181
|
}], thyLabelHasValue: [{
|
|
182
182
|
type: Input,
|
|
183
|
-
args: [{ transform:
|
|
183
|
+
args: [{ transform: coerceBooleanProperty }]
|
|
184
184
|
}], thyLabelHideWhenHasValue: [{
|
|
185
185
|
type: Input,
|
|
186
|
-
args: [{ transform:
|
|
186
|
+
args: [{ transform: coerceBooleanProperty }]
|
|
187
187
|
}], thyType: [{
|
|
188
188
|
type: Input
|
|
189
189
|
}], active: [{
|
|
@@ -191,13 +191,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
191
191
|
args: ['class.active']
|
|
192
192
|
}, {
|
|
193
193
|
type: Input,
|
|
194
|
-
args: [{ alias: 'thyActive', transform:
|
|
194
|
+
args: [{ alias: 'thyActive', transform: coerceBooleanProperty }]
|
|
195
195
|
}], disabled: [{
|
|
196
196
|
type: HostBinding,
|
|
197
197
|
args: ['class.thy-property-operation-disabled']
|
|
198
198
|
}, {
|
|
199
199
|
type: Input,
|
|
200
|
-
args: [{ alias: 'thyDisabled', transform:
|
|
200
|
+
args: [{ alias: 'thyDisabled', transform: coerceBooleanProperty }]
|
|
201
201
|
}] } });
|
|
202
202
|
|
|
203
203
|
class ThyPropertyOperationModule {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-property-operation.mjs","sources":["../../../src/property-operation/group/property-operation-group.component.ts","../../../src/property-operation/group/property-operation-group.component.html","../../../src/property-operation/property-operation.component.ts","../../../src/property-operation/property-operation.component.html","../../../src/property-operation/module.ts","../../../src/property-operation/ngx-tethys-property-operation.ts"],"sourcesContent":["import { Component, HostBinding } from '@angular/core';\n\n/**\n * @name thy-property-operation-group\n */\n@Component({\n selector: 'thy-property-operation-group',\n templateUrl: './property-operation-group.component.html',\n standalone: true\n})\nexport class ThyPropertyOperationGroup {\n @HostBinding('class.thy-property-operation-group') _isPropertyOperationGroup = true;\n\n constructor() {}\n}\n","<ng-content></ng-content>\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n OnDestroy,\n NgZone,\n booleanAttribute\n} from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { htmlElementIsEmpty } from 'ngx-tethys/util';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { ThyButtonIcon } from 'ngx-tethys/button';\nimport { NgTemplateOutlet, NgIf, NgClass } from '@angular/common';\n\ntype ThyPropertyOperationTypes = 'primary' | 'success' | 'warning' | 'danger';\n\n/**\n * 属性操作组件\n * @name thy-property-operation\n * @order 10\n */\n@Component({\n selector: 'thy-property-operation',\n templateUrl: './property-operation.component.html',\n standalone: true,\n imports: [NgTemplateOutlet, NgIf, NgClass, ThyButtonIcon, ThyFlexibleText, ThyIcon]\n})\nexport class ThyPropertyOperation implements OnInit, AfterContentInit, OnDestroy {\n private initialized = false;\n\n private hostRenderer = useHostRenderer();\n\n labelText: string;\n\n onlyHasTips = false;\n\n showClose = false;\n\n type: ThyPropertyOperationTypes;\n\n icon: string;\n\n value: string;\n\n labelHideWhenHasValue = false;\n\n /**\n * 点击移除图标时的事件回调,此函数只有在thyShowClose为true时才会发生\n */\n @Output() thyOnRemove = new EventEmitter();\n\n /**\n * 点击事件回调\n */\n @Output() thyClick = new EventEmitter<Event>();\n\n @HostBinding('class.thy-property-operation') _isPropertyOperation = true;\n\n @ContentChild('operationIcon') operationIcon: TemplateRef<any>;\n\n @ViewChild('contentElement', { static: true }) contentElement: ElementRef;\n\n /**\n * 属性的 Label 文本\n */\n @Input()\n set thyLabelText(value: string) {\n this.labelText = value;\n }\n\n /**\n * 属性的值\n */\n @Input()\n set thyValue(value: string) {\n this.value = value;\n this.setOnlyHasTips();\n }\n\n /**\n * 属性的 Label Translate Key\n */\n @Input()\n set thyLabelTextTranslateKey(value: string) {\n this.labelText = this.thyTranslate.instant(value);\n }\n\n /**\n * 图标\n */\n @Input()\n set thyIcon(value: string) {\n this.icon = value;\n }\n\n /**\n * 当有属性值时是否展示移除图标\n * @default false\n */\n @Input({ transform: booleanAttribute })\n set thyShowClose(value: boolean) {\n this.showClose = value;\n }\n\n // 支持有值时,label不显示\n @Input({ transform: booleanAttribute })\n set thyLabelHasValue(value: boolean) {\n this.labelHideWhenHasValue = !value;\n }\n\n /**\n * 有值时隐藏 label\n * @default false\n */\n @Input({ transform: booleanAttribute })\n set thyLabelHideWhenHasValue(value: boolean) {\n this.labelHideWhenHasValue = value;\n }\n\n /**\n * 属性类型\n * @type danger | primary | success | warning | null\n * @default null\n */\n @Input()\n set thyType(value: ThyPropertyOperationTypes) {\n this.type = value;\n this.setHostClass();\n }\n\n /**\n * 激活状态\n * @default false\n */\n @HostBinding('class.active')\n @Input({ alias: 'thyActive', transform: booleanAttribute })\n active: boolean;\n\n /**\n * 禁用操作,添加后property operation中thyClick和thyOnRemove事件将会被禁用\n * @default false\n */\n @HostBinding('class.thy-property-operation-disabled')\n @Input({ alias: 'thyDisabled', transform: booleanAttribute })\n disabled: boolean;\n\n private destroy$ = new Subject<void>();\n\n private setHostClass(first = false) {\n if (!this.initialized && !first) {\n return;\n }\n this.hostRenderer.updateClass(this.type ? [`thy-property-operation-${this.type}`] : []);\n }\n\n private setOnlyHasTips(first = false) {\n if (!this.initialized && !first) {\n return;\n }\n if (this.value) {\n this.onlyHasTips = false;\n } else if (htmlElementIsEmpty(this.contentElement.nativeElement)) {\n this.onlyHasTips = true;\n } else {\n this.onlyHasTips = false;\n }\n }\n\n constructor(private thyTranslate: ThyTranslate, private elementRef: ElementRef<HTMLElement>, private ngZone: NgZone) {}\n\n ngOnInit() {\n this.setHostClass(true);\n\n this.ngZone.runOutsideAngular(() =>\n fromEvent<Event>(this.elementRef.nativeElement, 'click')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => {\n if (this.disabled || this.thyClick.observers.length === 0) {\n return;\n }\n\n this.ngZone.run(() => this.thyClick.emit(event));\n })\n );\n }\n\n ngAfterContentInit() {\n this.setOnlyHasTips(true);\n this.initialized = true;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n remove($event: Event) {\n $event.stopPropagation();\n this.thyOnRemove.emit($event);\n }\n}\n","<div class=\"thy-operation-icon\">\n <ng-container *ngTemplateOutlet=\"operationIcon\"></ng-container>\n <button\n *ngIf=\"icon\"\n [ngClass]=\"{ disabled: disabled }\"\n [thyButtonIcon]=\"icon\"\n [thyShape]=\"onlyHasTips ? 'circle-thick-dashed' : 'circle-thick-solid'\"\n ></button>\n</div>\n<div class=\"thy-operation-content\" [ngClass]=\"{ 'only-has-tips': onlyHasTips }\">\n <div #contentElement>\n <ng-content></ng-content>\n </div>\n <ng-container *ngIf=\"value\">\n <span thyFlexibleText [thyTooltipContent]=\"value\">{{ value }}</span>\n </ng-container>\n\n <div class=\"thy-tips\" *ngIf=\"!value || (!labelHideWhenHasValue && value)\">{{ labelText }}</div>\n</div>\n<span *ngIf=\"showClose && !disabled\" (click)=\"remove($event)\" class=\"close-link close-link-danger\">\n <thy-icon thyIconName=\"close\" class=\" close-link-sm\"></thy-icon>\n</span>\n","import { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';\nimport { ThyIconModule } from 'ngx-tethys/icon';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyPropertyOperationGroup } from './group/property-operation-group.component';\nimport { ThyPropertyOperation } from './property-operation.component';\n\n@NgModule({\n imports: [CommonModule, ThyButtonModule, ThyIconModule, ThyFlexibleTextModule, ThyPropertyOperation, ThyPropertyOperationGroup],\n exports: [ThyPropertyOperation, ThyPropertyOperationGroup]\n})\nexport class ThyPropertyOperationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-property-operation.mjs","sources":["../../../src/property-operation/group/property-operation-group.component.ts","../../../src/property-operation/group/property-operation-group.component.html","../../../src/property-operation/property-operation.component.ts","../../../src/property-operation/property-operation.component.html","../../../src/property-operation/module.ts","../../../src/property-operation/ngx-tethys-property-operation.ts"],"sourcesContent":["import { Component, HostBinding } from '@angular/core';\n\n/**\n * @name thy-property-operation-group\n */\n@Component({\n selector: 'thy-property-operation-group',\n templateUrl: './property-operation-group.component.html',\n standalone: true\n})\nexport class ThyPropertyOperationGroup {\n @HostBinding('class.thy-property-operation-group') _isPropertyOperationGroup = true;\n\n constructor() {}\n}\n","<ng-content></ng-content>\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n OnDestroy,\n NgZone\n} from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { coerceBooleanProperty, htmlElementIsEmpty } from 'ngx-tethys/util';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { ThyButtonIcon } from 'ngx-tethys/button';\nimport { NgTemplateOutlet, NgIf, NgClass } from '@angular/common';\n\ntype ThyPropertyOperationTypes = 'primary' | 'success' | 'warning' | 'danger';\n\n/**\n * 属性操作组件\n * @name thy-property-operation\n * @order 10\n */\n@Component({\n selector: 'thy-property-operation',\n templateUrl: './property-operation.component.html',\n standalone: true,\n imports: [NgTemplateOutlet, NgIf, NgClass, ThyButtonIcon, ThyFlexibleText, ThyIcon]\n})\nexport class ThyPropertyOperation implements OnInit, AfterContentInit, OnDestroy {\n private initialized = false;\n\n private hostRenderer = useHostRenderer();\n\n labelText: string;\n\n onlyHasTips = false;\n\n showClose = false;\n\n type: ThyPropertyOperationTypes;\n\n icon: string;\n\n value: string;\n\n labelHideWhenHasValue = false;\n\n /**\n * 点击移除图标时的事件回调,此函数只有在thyShowClose为true时才会发生\n */\n @Output() thyOnRemove = new EventEmitter();\n\n /**\n * 点击事件回调\n */\n @Output() thyClick = new EventEmitter<Event>();\n\n @HostBinding('class.thy-property-operation') _isPropertyOperation = true;\n\n @ContentChild('operationIcon') operationIcon: TemplateRef<any>;\n\n @ViewChild('contentElement', { static: true }) contentElement: ElementRef;\n\n /**\n * 属性的 Label 文本\n */\n @Input()\n set thyLabelText(value: string) {\n this.labelText = value;\n }\n\n /**\n * 属性的值\n */\n @Input()\n set thyValue(value: string) {\n this.value = value;\n this.setOnlyHasTips();\n }\n\n /**\n * 属性的 Label Translate Key\n */\n @Input()\n set thyLabelTextTranslateKey(value: string) {\n this.labelText = this.thyTranslate.instant(value);\n }\n\n /**\n * 图标\n */\n @Input()\n set thyIcon(value: string) {\n this.icon = value;\n }\n\n /**\n * 当有属性值时是否展示移除图标\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyShowClose(value: boolean) {\n this.showClose = value;\n }\n\n // 支持有值时,label不显示\n @Input({ transform: coerceBooleanProperty })\n set thyLabelHasValue(value: boolean) {\n this.labelHideWhenHasValue = !value;\n }\n\n /**\n * 有值时隐藏 label\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyLabelHideWhenHasValue(value: boolean) {\n this.labelHideWhenHasValue = value;\n }\n\n /**\n * 属性类型\n * @type danger | primary | success | warning | null\n * @default null\n */\n @Input()\n set thyType(value: ThyPropertyOperationTypes) {\n this.type = value;\n this.setHostClass();\n }\n\n /**\n * 激活状态\n * @default false\n */\n @HostBinding('class.active')\n @Input({ alias: 'thyActive', transform: coerceBooleanProperty })\n active: boolean;\n\n /**\n * 禁用操作,添加后property operation中thyClick和thyOnRemove事件将会被禁用\n * @default false\n */\n @HostBinding('class.thy-property-operation-disabled')\n @Input({ alias: 'thyDisabled', transform: coerceBooleanProperty })\n disabled: boolean;\n\n private destroy$ = new Subject<void>();\n\n private setHostClass(first = false) {\n if (!this.initialized && !first) {\n return;\n }\n this.hostRenderer.updateClass(this.type ? [`thy-property-operation-${this.type}`] : []);\n }\n\n private setOnlyHasTips(first = false) {\n if (!this.initialized && !first) {\n return;\n }\n if (this.value) {\n this.onlyHasTips = false;\n } else if (htmlElementIsEmpty(this.contentElement.nativeElement)) {\n this.onlyHasTips = true;\n } else {\n this.onlyHasTips = false;\n }\n }\n\n constructor(private thyTranslate: ThyTranslate, private elementRef: ElementRef<HTMLElement>, private ngZone: NgZone) {}\n\n ngOnInit() {\n this.setHostClass(true);\n\n this.ngZone.runOutsideAngular(() =>\n fromEvent<Event>(this.elementRef.nativeElement, 'click')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => {\n if (this.disabled || this.thyClick.observers.length === 0) {\n return;\n }\n\n this.ngZone.run(() => this.thyClick.emit(event));\n })\n );\n }\n\n ngAfterContentInit() {\n this.setOnlyHasTips(true);\n this.initialized = true;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n remove($event: Event) {\n $event.stopPropagation();\n this.thyOnRemove.emit($event);\n }\n}\n","<div class=\"thy-operation-icon\">\n <ng-container *ngTemplateOutlet=\"operationIcon\"></ng-container>\n <button\n *ngIf=\"icon\"\n [ngClass]=\"{ disabled: disabled }\"\n [thyButtonIcon]=\"icon\"\n [thyShape]=\"onlyHasTips ? 'circle-thick-dashed' : 'circle-thick-solid'\"\n ></button>\n</div>\n<div class=\"thy-operation-content\" [ngClass]=\"{ 'only-has-tips': onlyHasTips }\">\n <div #contentElement>\n <ng-content></ng-content>\n </div>\n <ng-container *ngIf=\"value\">\n <span thyFlexibleText [thyTooltipContent]=\"value\">{{ value }}</span>\n </ng-container>\n\n <div class=\"thy-tips\" *ngIf=\"!value || (!labelHideWhenHasValue && value)\">{{ labelText }}</div>\n</div>\n<span *ngIf=\"showClose && !disabled\" (click)=\"remove($event)\" class=\"close-link close-link-danger\">\n <thy-icon thyIconName=\"close\" class=\" close-link-sm\"></thy-icon>\n</span>\n","import { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';\nimport { ThyIconModule } from 'ngx-tethys/icon';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyPropertyOperationGroup } from './group/property-operation-group.component';\nimport { ThyPropertyOperation } from './property-operation.component';\n\n@NgModule({\n imports: [CommonModule, ThyButtonModule, ThyIconModule, ThyFlexibleTextModule, ThyPropertyOperation, ThyPropertyOperationGroup],\n exports: [ThyPropertyOperation, ThyPropertyOperationGroup]\n})\nexport class ThyPropertyOperationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { BehaviorSubject, Subject, fromEvent, combineLatest, timer } from 'rxjs';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { numberAttribute, Component, ChangeDetectionStrategy, Input, HostBinding, EventEmitter,
|
|
3
|
+
import { numberAttribute, Component, ChangeDetectionStrategy, Input, HostBinding, EventEmitter, Output, ContentChild, ViewChild, NgModule } from '@angular/core';
|
|
4
4
|
import * as i1 from 'ngx-tethys/core';
|
|
5
5
|
import { ThyFlexibleText, ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';
|
|
6
6
|
import { takeUntil, delay, take, filter } from 'rxjs/operators';
|
|
7
7
|
import * as i2 from '@angular/cdk/overlay';
|
|
8
8
|
import { NgIf, NgTemplateOutlet, CommonModule } from '@angular/common';
|
|
9
|
+
import { coerceBooleanProperty } from 'ngx-tethys/util';
|
|
9
10
|
import { ThyTooltipModule } from 'ngx-tethys/tooltip';
|
|
10
11
|
|
|
11
12
|
/**
|
|
@@ -188,7 +189,7 @@ class ThyPropertyItem {
|
|
|
188
189
|
this.eventDestroy$.complete();
|
|
189
190
|
}
|
|
190
191
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyPropertyItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ThyClickDispatcher }, { token: i0.NgZone }, { token: i2.OverlayOutsideClickDispatcher }, { token: ThyProperties }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
191
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyPropertyItem, isStandalone: true, selector: "thy-property-item", inputs: { thyLabelText: "thyLabelText", thyEditable: ["thyEditable", "thyEditable",
|
|
192
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyPropertyItem, isStandalone: true, selector: "thy-property-item", inputs: { thyLabelText: "thyLabelText", thyEditable: ["thyEditable", "thyEditable", coerceBooleanProperty], thySpan: ["thySpan", "thySpan", numberAttribute], thyOperationTrigger: "thyOperationTrigger" }, outputs: { thyEditingChange: "thyEditingChange" }, host: { properties: { "class.thy-property-item-operational": "!!operation", "class.thy-property-item-operational-hover": "thyOperationTrigger === 'hover'", "style.grid-column": "this.gridColumn" }, classAttribute: "thy-property-item" }, queries: [{ propertyName: "label", first: true, predicate: ["label"], descendants: true, static: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true, static: true }, { propertyName: "operation", first: true, predicate: ["operation"], descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["contentTemplate"], descendants: true, static: true }, { propertyName: "itemContent", first: true, predicate: ["item"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n<div class=\"thy-property-item-label\">\n <span *ngIf=\"thyLabelText\" thyFlexibleText [thyTooltipContent]=\"thyLabelText\">{{ thyLabelText }}</span>\n <ng-container *ngIf=\"label\">\n <span> <ng-template [ngTemplateOutlet]=\"label\"></ng-template></span>\n </ng-container>\n</div>\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable\"\n [class.thy-property-item-content-editing]=\"editing\">\n <div class=\"thy-property-item-content-text\">\n <ng-template *ngIf=\"content\" [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n <div class=\"thy-property-item-content-editor\" *ngIf=\"thyEditable\">\n <ng-template *ngIf=\"editor\" [ngTemplateOutlet]=\"editor\"></ng-template>\n </div>\n </div>\n <div class=\"thy-property-item-operation\" *ngIf=\"operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
192
193
|
}
|
|
193
194
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyPropertyItem, decorators: [{
|
|
194
195
|
type: Component,
|
|
@@ -201,7 +202,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
201
202
|
type: Input
|
|
202
203
|
}], thyEditable: [{
|
|
203
204
|
type: Input,
|
|
204
|
-
args: [{ transform:
|
|
205
|
+
args: [{ transform: coerceBooleanProperty }]
|
|
205
206
|
}], thySpan: [{
|
|
206
207
|
type: Input,
|
|
207
208
|
args: [{ transform: numberAttribute }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-property.mjs","sources":["../../../src/property/properties.component.ts","../../../src/property/properties.component.html","../../../src/property/property-item.component.ts","../../../src/property/property-item.component.html","../../../src/property/module.ts","../../../src/property/ngx-tethys-property.ts"],"sourcesContent":["import { BehaviorSubject } from 'rxjs';\n\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, OnInit, numberAttribute } from '@angular/core';\n\nexport type ThyPropertiesLayout = 'horizontal' | 'vertical';\n\n/**\n * 属性列表组件\n * @name thy-properties\n */\n@Component({\n selector: 'thy-properties',\n templateUrl: './properties.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-properties',\n '[class.thy-properties-vertical]': 'layout === \"vertical\"',\n '[class.thy-properties-horizontal]': 'layout === \"horizontal\"',\n '[class.thy-properties-edit-trigger-hover]': 'thyEditTrigger === \"hover\"',\n '[class.thy-properties-edit-trigger-click]': 'thyEditTrigger === \"click\"'\n },\n standalone: true\n})\nexport class ThyProperties implements OnInit {\n layout$ = new BehaviorSubject<ThyPropertiesLayout>('horizontal');\n\n layout: ThyPropertiesLayout = 'horizontal';\n\n /**\n * 展示布局\n * @type \"horizontal\" | \"vertical\"\n * @default horizontal\n */\n @Input() set thyLayout(layout: ThyPropertiesLayout) {\n this.layout = layout;\n this.layout$.next(layout);\n }\n\n /**\n * 设置一行的可以 property-item 的数量\n * @type number\n */\n @Input({ transform: numberAttribute }) thyColumn: number = 1;\n\n /**\n * 设置编辑状态触发方法\n * @type 'hover' | 'click'\n */\n @Input() thyEditTrigger: 'hover' | 'click' = 'hover';\n\n @HostBinding('style.grid-template-columns')\n get gridTemplateColumns() {\n return `repeat(${this.thyColumn}, 1fr)`;\n }\n\n constructor() {}\n\n ngOnInit() {}\n}\n","<ng-content></ng-content>\n","import { ThyClickDispatcher } from 'ngx-tethys/core';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { combineLatest, fromEvent, Subject, Subscription, timer } from 'rxjs';\nimport { delay, filter, take, takeUntil } from 'rxjs/operators';\n\nimport { OverlayOutsideClickDispatcher, OverlayRef } from '@angular/cdk/overlay';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n NgZone,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\nimport { ThyProperties } from './properties.component';\n\nexport type ThyPropertyItemOperationTrigger = 'hover' | 'always';\n\n/**\n * 属性组件\n * @name thy-property-item\n */\n@Component({\n selector: 'thy-property-item',\n templateUrl: './property-item.component.html',\n host: {\n class: 'thy-property-item',\n '[class.thy-property-item-operational]': '!!operation',\n '[class.thy-property-item-operational-hover]': \"thyOperationTrigger === 'hover'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgIf, ThyFlexibleText, NgTemplateOutlet]\n})\nexport class ThyPropertyItem implements OnInit, OnChanges, OnDestroy {\n /**\n * 属性名称\n * @type sting\n * @default thyLabelText\n */\n @Input() thyLabelText: string;\n\n /**\n * 设置属性是否是可编辑的\n * @type sting\n * @default false\n */\n @Input({ transform: booleanAttribute }) thyEditable: boolean;\n\n /**\n * 设置跨列的数量\n * @type number\n */\n @Input({ transform: numberAttribute }) thySpan: number = 1;\n\n /**\n * 设置属性操作现实触发方式,默认 always 一直显示\n * @type 'hover' | 'always'\n */\n @Input() thyOperationTrigger: ThyPropertyItemOperationTrigger = 'always';\n\n @Output() thyEditingChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /**\n * 属性名称自定义模板\n * @type TemplateRef\n */\n @ContentChild('label', { static: true }) label!: TemplateRef<void>;\n\n /**\n * 属性内容编辑模板,只有在 thyEditable 为 true 时生效\n * @type TemplateRef\n */\n @ContentChild('editor', { static: true }) editor!: TemplateRef<void>;\n\n /**\n * 操作区模板\n * @type TemplateRef\n */\n @ContentChild('operation', { static: true }) operation!: TemplateRef<void>;\n\n /**\n * @private\n */\n @ViewChild('contentTemplate', { static: true }) content!: TemplateRef<void>;\n\n /**\n * @private\n */\n @ViewChild('item', { static: true }) itemContent: ElementRef<HTMLElement>;\n\n editing: boolean;\n\n changes$ = new Subject<SimpleChanges>();\n\n private destroy$ = new Subject();\n\n private eventDestroy$ = new Subject();\n\n private originOverlays: OverlayRef[] = [];\n\n private clickEventSubscription: Subscription;\n\n @HostBinding('style.grid-column')\n get gridColumn() {\n return `span ${Math.min(this.thySpan, this.parent.thyColumn)}`;\n }\n\n isVertical = false;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private clickDispatcher: ThyClickDispatcher,\n private ngZone: NgZone,\n private overlayOutsideClickDispatcher: OverlayOutsideClickDispatcher,\n private parent: ThyProperties\n ) {\n this.originOverlays = [...this.overlayOutsideClickDispatcher._attachedOverlays] as OverlayRef[];\n }\n\n ngOnInit() {\n this.subscribeClick();\n this.parent.layout$.pipe(takeUntil(this.destroy$)).subscribe(layout => {\n this.isVertical = layout === 'vertical';\n this.cdr.markForCheck();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.thyEditable && changes.thyEditable.currentValue) {\n this.subscribeClick();\n } else {\n this.setEditing(false);\n this.eventDestroy$.next();\n this.eventDestroy$.complete();\n\n if (this.clickEventSubscription) {\n this.clickEventSubscription.unsubscribe();\n this.clickEventSubscription = null;\n }\n }\n }\n\n setEditing(editing: boolean) {\n this.ngZone.run(() => {\n if (!!this.editing !== !!editing) {\n this.thyEditingChange.emit(editing);\n }\n this.editing = editing;\n this.cdr.markForCheck();\n });\n }\n\n /**\n * @deprecated please use setEditing(editing: boolean)\n */\n setKeepEditing(keep: boolean) {\n this.setEditing(keep);\n }\n\n private hasOverlay() {\n return this.overlayOutsideClickDispatcher._attachedOverlays.length > this.originOverlays.length;\n }\n\n private subscribeClick() {\n if (this.thyEditable === true) {\n this.ngZone.runOutsideAngular(() => {\n if (this.clickEventSubscription) {\n return;\n }\n this.clickEventSubscription = fromEvent(this.itemContent.nativeElement, 'click')\n .pipe(takeUntil(this.eventDestroy$))\n .subscribe(() => {\n this.setEditing(true);\n this.bindEditorBlurEvent(this.itemContent.nativeElement);\n });\n });\n }\n }\n\n private subscribeOverlayDetach() {\n const openedOverlays = this.overlayOutsideClickDispatcher._attachedOverlays.slice(this.originOverlays.length);\n const overlaysDetachments$ = openedOverlays.map(overlay => overlay.detachments());\n if (overlaysDetachments$.length) {\n combineLatest(overlaysDetachments$)\n .pipe(delay(50), take(1), takeUntil(this.destroy$))\n .subscribe(() => {\n this.setEditing(false);\n });\n }\n }\n\n private subscribeDocumentClick(editorElement: HTMLElement) {\n this.clickDispatcher\n .clicked(0)\n .pipe(\n filter(event => {\n return !editorElement.contains(event.target as HTMLElement);\n }),\n take(1),\n takeUntil(this.destroy$)\n )\n .subscribe(() => {\n this.setEditing(false);\n });\n }\n\n private bindEditorBlurEvent(editorElement: HTMLElement) {\n timer(0).subscribe(() => {\n if (this.hasOverlay()) {\n this.subscribeOverlayDetach();\n } else {\n this.subscribeDocumentClick(editorElement);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n\n this.eventDestroy$.next();\n this.eventDestroy$.complete();\n }\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n<div class=\"thy-property-item-label\">\n <span *ngIf=\"thyLabelText\" thyFlexibleText [thyTooltipContent]=\"thyLabelText\">{{ thyLabelText }}</span>\n <ng-container *ngIf=\"label\">\n <span> <ng-template [ngTemplateOutlet]=\"label\"></ng-template></span>\n </ng-container>\n</div>\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable\"\n [class.thy-property-item-content-editing]=\"editing\">\n <div class=\"thy-property-item-content-text\">\n <ng-template *ngIf=\"content\" [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n <div class=\"thy-property-item-content-editor\" *ngIf=\"thyEditable\">\n <ng-template *ngIf=\"editor\" [ngTemplateOutlet]=\"editor\"></ng-template>\n </div>\n </div>\n <div class=\"thy-property-item-operation\" *ngIf=\"operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n</div>\n","import { ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThyProperties } from './properties.component';\nimport { ThyPropertyItem } from './property-item.component';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\n\n@NgModule({\n imports: [CommonModule, ThyFlexibleTextModule, ThyTooltipModule, ThyProperties, ThyPropertyItem],\n exports: [ThyProperties, ThyPropertyItem]\n})\nexport class ThyPropertyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.ThyProperties"],"mappings":";;;;;;;;;;AAMA;;;AAGG;MAcU,aAAa,CAAA;AAKtB;;;;AAIG;IACH,IAAa,SAAS,CAAC,MAA2B,EAAA;AAC9C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC7B;AAcD,IAAA,IACI,mBAAmB,GAAA;AACnB,QAAA,OAAO,CAAU,OAAA,EAAA,IAAI,CAAC,SAAS,QAAQ,CAAC;KAC3C;AAED,IAAA,WAAA,GAAA;AA/BA,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,eAAe,CAAsB,YAAY,CAAC,CAAC;QAEjE,IAAM,CAAA,MAAA,GAAwB,YAAY,CAAC;AAY3C;;;AAGG;QACoC,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;AAE7D;;;AAGG;QACM,IAAc,CAAA,cAAA,GAAsB,OAAO,CAAC;KAOrC;AAEhB,IAAA,QAAQ,MAAK;8GAlCJ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAmBF,eAAe,CAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,+BAAA,EAAA,yBAAA,EAAA,iCAAA,EAAA,2BAAA,EAAA,yCAAA,EAAA,8BAAA,EAAA,yCAAA,EAAA,8BAAA,EAAA,6BAAA,EAAA,0BAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1CvC,6BACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDsBa,aAAa,EAAA,UAAA,EAAA,CAAA;kBAbzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAET,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,gBAAgB;AACvB,wBAAA,iCAAiC,EAAE,uBAAuB;AAC1D,wBAAA,mCAAmC,EAAE,yBAAyB;AAC9D,wBAAA,2CAA2C,EAAE,4BAA4B;AACzE,wBAAA,2CAA2C,EAAE,4BAA4B;AAC5E,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA;wDAYH,SAAS,EAAA,CAAA;sBAArB,KAAK;gBASiC,SAAS,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;gBAM5B,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAGF,mBAAmB,EAAA,CAAA;sBADtB,WAAW;uBAAC,6BAA6B,CAAA;;;AElB9C;;;AAGG;MAaU,eAAe,CAAA;AAqExB,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;KAClE;IAID,WACY,CAAA,GAAsB,EACtB,eAAmC,EACnC,MAAc,EACd,6BAA4D,EAC5D,MAAqB,EAAA;QAJrB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAoB;QACnC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAA6B,CAAA,6BAAA,GAA7B,6BAA6B,CAA+B;QAC5D,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;AAlEjC;;;AAGG;QACoC,IAAO,CAAA,OAAA,GAAW,CAAC,CAAC;AAE3D;;;AAGG;QACM,IAAmB,CAAA,mBAAA,GAAoC,QAAQ,CAAC;AAE/D,QAAA,IAAA,CAAA,gBAAgB,GAA0B,IAAI,YAAY,EAAW,CAAC;AAgChF,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAiB,CAAC;AAEhC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;AAEzB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;QAE9B,IAAc,CAAA,cAAA,GAAiB,EAAE,CAAC;QAS1C,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QASf,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAiB,CAAC;KACnG;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAG;AAClE,YAAA,IAAI,CAAC,UAAU,GAAG,MAAM,KAAK,UAAU,CAAC;AACxC,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC5B,SAAC,CAAC,CAAC;KACN;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE;YACzD,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;aAAM;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;AAE9B,YAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,gBAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;AAC1C,gBAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;aACtC;SACJ;KACJ;AAED,IAAA,UAAU,CAAC,OAAgB,EAAA;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;YACjB,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,EAAE;AAC9B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACvC;AACD,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC5B,SAAC,CAAC,CAAC;KACN;AAED;;AAEG;AACH,IAAA,cAAc,CAAC,IAAa,EAAA;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KACzB;IAEO,UAAU,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;KACnG;IAEO,cAAc,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AAC/B,gBAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;oBAC7B,OAAO;iBACV;AACD,gBAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC;AAC3E,qBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;qBACnC,SAAS,CAAC,MAAK;AACZ,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBACtB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAC7D,iBAAC,CAAC,CAAC;AACX,aAAC,CAAC,CAAC;SACN;KACJ;IAEO,sBAAsB,GAAA;AAC1B,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAC9G,QAAA,MAAM,oBAAoB,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AAClF,QAAA,IAAI,oBAAoB,CAAC,MAAM,EAAE;YAC7B,aAAa,CAAC,oBAAoB,CAAC;AAC9B,iBAAA,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAClD,SAAS,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,aAAC,CAAC,CAAC;SACV;KACJ;AAEO,IAAA,sBAAsB,CAAC,aAA0B,EAAA;AACrD,QAAA,IAAI,CAAC,eAAe;aACf,OAAO,CAAC,CAAC,CAAC;AACV,aAAA,IAAI,CACD,MAAM,CAAC,KAAK,IAAG;YACX,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAqB,CAAC,CAAC;AAChE,SAAC,CAAC,EACF,IAAI,CAAC,CAAC,CAAC,EACP,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC3B;aACA,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,SAAC,CAAC,CAAC;KACV;AAEO,IAAA,mBAAmB,CAAC,aAA0B,EAAA;AAClD,QAAA,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACpB,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;gBACnB,IAAI,CAAC,sBAAsB,EAAE,CAAC;aACjC;iBAAM;AACH,gBAAA,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;aAC9C;AACL,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAEzB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;8GA7LQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAaJ,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAMhB,eAAe,CAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qCAAA,EAAA,aAAA,EAAA,2CAAA,EAAA,iCAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnEvC,kjCA0BA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDoBc,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,qCAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAExC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAZ3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAEvB,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,mBAAmB;AAC1B,wBAAA,uCAAuC,EAAE,aAAa;AACtD,wBAAA,6CAA6C,EAAE,iCAAiC;AACnF,qBAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EAAA,OAAA,EACP,CAAC,IAAI,EAAE,eAAe,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,kjCAAA,EAAA,CAAA;iNAQzC,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAOkC,WAAW,EAAA,CAAA;sBAAlD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAMC,OAAO,EAAA,CAAA;sBAA7C,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;gBAM5B,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAEI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBAMkC,KAAK,EAAA,CAAA;sBAA7C,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAMG,MAAM,EAAA,CAAA;sBAA/C,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAMK,SAAS,EAAA,CAAA;sBAArD,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAKK,OAAO,EAAA,CAAA;sBAAtD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAKT,WAAW,EAAA,CAAA;sBAA/C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAe/B,UAAU,EAAA,CAAA;sBADb,WAAW;uBAAC,mBAAmB,CAAA;;;ME1GvB,iBAAiB,CAAA;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAHhB,OAAA,EAAA,CAAA,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,CACrF,EAAA,OAAA,EAAA,CAAA,aAAa,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAE/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAHhB,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAiB,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGtF,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,CAAC;AAChG,oBAAA,OAAO,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;AAC5C,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-property.mjs","sources":["../../../src/property/properties.component.ts","../../../src/property/properties.component.html","../../../src/property/property-item.component.ts","../../../src/property/property-item.component.html","../../../src/property/module.ts","../../../src/property/ngx-tethys-property.ts"],"sourcesContent":["import { BehaviorSubject } from 'rxjs';\n\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, OnInit, numberAttribute } from '@angular/core';\n\nexport type ThyPropertiesLayout = 'horizontal' | 'vertical';\n\n/**\n * 属性列表组件\n * @name thy-properties\n */\n@Component({\n selector: 'thy-properties',\n templateUrl: './properties.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-properties',\n '[class.thy-properties-vertical]': 'layout === \"vertical\"',\n '[class.thy-properties-horizontal]': 'layout === \"horizontal\"',\n '[class.thy-properties-edit-trigger-hover]': 'thyEditTrigger === \"hover\"',\n '[class.thy-properties-edit-trigger-click]': 'thyEditTrigger === \"click\"'\n },\n standalone: true\n})\nexport class ThyProperties implements OnInit {\n layout$ = new BehaviorSubject<ThyPropertiesLayout>('horizontal');\n\n layout: ThyPropertiesLayout = 'horizontal';\n\n /**\n * 展示布局\n * @type \"horizontal\" | \"vertical\"\n * @default horizontal\n */\n @Input() set thyLayout(layout: ThyPropertiesLayout) {\n this.layout = layout;\n this.layout$.next(layout);\n }\n\n /**\n * 设置一行的可以 property-item 的数量\n * @type number\n */\n @Input({ transform: numberAttribute }) thyColumn: number = 1;\n\n /**\n * 设置编辑状态触发方法\n * @type 'hover' | 'click'\n */\n @Input() thyEditTrigger: 'hover' | 'click' = 'hover';\n\n @HostBinding('style.grid-template-columns')\n get gridTemplateColumns() {\n return `repeat(${this.thyColumn}, 1fr)`;\n }\n\n constructor() {}\n\n ngOnInit() {}\n}\n","<ng-content></ng-content>\n","import { ThyClickDispatcher } from 'ngx-tethys/core';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { combineLatest, fromEvent, Subject, Subscription, timer } from 'rxjs';\nimport { delay, filter, take, takeUntil } from 'rxjs/operators';\n\nimport { OverlayOutsideClickDispatcher, OverlayRef } from '@angular/cdk/overlay';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n NgZone,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\nimport { ThyProperties } from './properties.component';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyPropertyItemOperationTrigger = 'hover' | 'always';\n\n/**\n * 属性组件\n * @name thy-property-item\n */\n@Component({\n selector: 'thy-property-item',\n templateUrl: './property-item.component.html',\n host: {\n class: 'thy-property-item',\n '[class.thy-property-item-operational]': '!!operation',\n '[class.thy-property-item-operational-hover]': \"thyOperationTrigger === 'hover'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgIf, ThyFlexibleText, NgTemplateOutlet]\n})\nexport class ThyPropertyItem implements OnInit, OnChanges, OnDestroy {\n /**\n * 属性名称\n * @type sting\n * @default thyLabelText\n */\n @Input() thyLabelText: string;\n\n /**\n * 设置属性是否是可编辑的\n * @type sting\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyEditable: boolean;\n\n /**\n * 设置跨列的数量\n * @type number\n */\n @Input({ transform: numberAttribute }) thySpan: number = 1;\n\n /**\n * 设置属性操作现实触发方式,默认 always 一直显示\n * @type 'hover' | 'always'\n */\n @Input() thyOperationTrigger: ThyPropertyItemOperationTrigger = 'always';\n\n @Output() thyEditingChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /**\n * 属性名称自定义模板\n * @type TemplateRef\n */\n @ContentChild('label', { static: true }) label!: TemplateRef<void>;\n\n /**\n * 属性内容编辑模板,只有在 thyEditable 为 true 时生效\n * @type TemplateRef\n */\n @ContentChild('editor', { static: true }) editor!: TemplateRef<void>;\n\n /**\n * 操作区模板\n * @type TemplateRef\n */\n @ContentChild('operation', { static: true }) operation!: TemplateRef<void>;\n\n /**\n * @private\n */\n @ViewChild('contentTemplate', { static: true }) content!: TemplateRef<void>;\n\n /**\n * @private\n */\n @ViewChild('item', { static: true }) itemContent: ElementRef<HTMLElement>;\n\n editing: boolean;\n\n changes$ = new Subject<SimpleChanges>();\n\n private destroy$ = new Subject();\n\n private eventDestroy$ = new Subject();\n\n private originOverlays: OverlayRef[] = [];\n\n private clickEventSubscription: Subscription;\n\n @HostBinding('style.grid-column')\n get gridColumn() {\n return `span ${Math.min(this.thySpan, this.parent.thyColumn)}`;\n }\n\n isVertical = false;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private clickDispatcher: ThyClickDispatcher,\n private ngZone: NgZone,\n private overlayOutsideClickDispatcher: OverlayOutsideClickDispatcher,\n private parent: ThyProperties\n ) {\n this.originOverlays = [...this.overlayOutsideClickDispatcher._attachedOverlays] as OverlayRef[];\n }\n\n ngOnInit() {\n this.subscribeClick();\n this.parent.layout$.pipe(takeUntil(this.destroy$)).subscribe(layout => {\n this.isVertical = layout === 'vertical';\n this.cdr.markForCheck();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.thyEditable && changes.thyEditable.currentValue) {\n this.subscribeClick();\n } else {\n this.setEditing(false);\n this.eventDestroy$.next();\n this.eventDestroy$.complete();\n\n if (this.clickEventSubscription) {\n this.clickEventSubscription.unsubscribe();\n this.clickEventSubscription = null;\n }\n }\n }\n\n setEditing(editing: boolean) {\n this.ngZone.run(() => {\n if (!!this.editing !== !!editing) {\n this.thyEditingChange.emit(editing);\n }\n this.editing = editing;\n this.cdr.markForCheck();\n });\n }\n\n /**\n * @deprecated please use setEditing(editing: boolean)\n */\n setKeepEditing(keep: boolean) {\n this.setEditing(keep);\n }\n\n private hasOverlay() {\n return this.overlayOutsideClickDispatcher._attachedOverlays.length > this.originOverlays.length;\n }\n\n private subscribeClick() {\n if (this.thyEditable === true) {\n this.ngZone.runOutsideAngular(() => {\n if (this.clickEventSubscription) {\n return;\n }\n this.clickEventSubscription = fromEvent(this.itemContent.nativeElement, 'click')\n .pipe(takeUntil(this.eventDestroy$))\n .subscribe(() => {\n this.setEditing(true);\n this.bindEditorBlurEvent(this.itemContent.nativeElement);\n });\n });\n }\n }\n\n private subscribeOverlayDetach() {\n const openedOverlays = this.overlayOutsideClickDispatcher._attachedOverlays.slice(this.originOverlays.length);\n const overlaysDetachments$ = openedOverlays.map(overlay => overlay.detachments());\n if (overlaysDetachments$.length) {\n combineLatest(overlaysDetachments$)\n .pipe(delay(50), take(1), takeUntil(this.destroy$))\n .subscribe(() => {\n this.setEditing(false);\n });\n }\n }\n\n private subscribeDocumentClick(editorElement: HTMLElement) {\n this.clickDispatcher\n .clicked(0)\n .pipe(\n filter(event => {\n return !editorElement.contains(event.target as HTMLElement);\n }),\n take(1),\n takeUntil(this.destroy$)\n )\n .subscribe(() => {\n this.setEditing(false);\n });\n }\n\n private bindEditorBlurEvent(editorElement: HTMLElement) {\n timer(0).subscribe(() => {\n if (this.hasOverlay()) {\n this.subscribeOverlayDetach();\n } else {\n this.subscribeDocumentClick(editorElement);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n\n this.eventDestroy$.next();\n this.eventDestroy$.complete();\n }\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n<div class=\"thy-property-item-label\">\n <span *ngIf=\"thyLabelText\" thyFlexibleText [thyTooltipContent]=\"thyLabelText\">{{ thyLabelText }}</span>\n <ng-container *ngIf=\"label\">\n <span> <ng-template [ngTemplateOutlet]=\"label\"></ng-template></span>\n </ng-container>\n</div>\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable\"\n [class.thy-property-item-content-editing]=\"editing\">\n <div class=\"thy-property-item-content-text\">\n <ng-template *ngIf=\"content\" [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n <div class=\"thy-property-item-content-editor\" *ngIf=\"thyEditable\">\n <ng-template *ngIf=\"editor\" [ngTemplateOutlet]=\"editor\"></ng-template>\n </div>\n </div>\n <div class=\"thy-property-item-operation\" *ngIf=\"operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n</div>\n","import { ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThyProperties } from './properties.component';\nimport { ThyPropertyItem } from './property-item.component';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\n\n@NgModule({\n imports: [CommonModule, ThyFlexibleTextModule, ThyTooltipModule, ThyProperties, ThyPropertyItem],\n exports: [ThyProperties, ThyPropertyItem]\n})\nexport class ThyPropertyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.ThyProperties"],"mappings":"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"}
|