ngx-tethys 18.2.4 → 18.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/carousel/carousel.component.d.ts +2 -2
- package/date-picker/date-picker.config.d.ts +1 -1
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +2 -2
- package/date-picker/lib/date/date-table.component.d.ts +2 -2
- package/date-picker/lib/popups/date-popup.component.d.ts +3 -2
- package/date-picker/lib/popups/inner-popup.component.d.ts +1 -1
- package/date-picker/picker.util.d.ts +3 -3
- package/date-range/date-range.component.d.ts +1 -1
- package/esm2022/action/action.component.mjs +4 -4
- package/esm2022/action/action.module.mjs +5 -5
- package/esm2022/action/actions.component.mjs +4 -4
- package/esm2022/affix/affix.component.mjs +4 -4
- package/esm2022/affix/affix.module.mjs +5 -5
- package/esm2022/alert/alert.component.mjs +4 -4
- package/esm2022/alert/alert.directive.mjs +4 -4
- package/esm2022/alert/alert.module.mjs +5 -5
- package/esm2022/anchor/anchor-link.component.mjs +4 -4
- package/esm2022/anchor/anchor.component.mjs +4 -4
- package/esm2022/anchor/anchor.module.mjs +5 -5
- package/esm2022/arrow-switcher/arrow-switcher.component.mjs +4 -4
- package/esm2022/arrow-switcher/module.mjs +5 -5
- package/esm2022/autocomplete/autocomplete.component.mjs +4 -4
- package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +4 -4
- package/esm2022/autocomplete/module.mjs +5 -5
- package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +4 -4
- package/esm2022/autocomplete/overlay/autocomplete.service.mjs +4 -4
- package/esm2022/avatar/avatar-list/avatar-list.component.mjs +4 -4
- package/esm2022/avatar/avatar.component.mjs +4 -4
- package/esm2022/avatar/avatar.module.mjs +5 -5
- package/esm2022/avatar/avatar.pipe.mjs +10 -10
- package/esm2022/avatar/avatar.service.mjs +4 -4
- package/esm2022/back-top/back-top.component.mjs +4 -4
- package/esm2022/back-top/back-top.module.mjs +5 -5
- package/esm2022/badge/badge.component.mjs +4 -4
- package/esm2022/badge/badge.module.mjs +5 -5
- package/esm2022/breadcrumb/breadcrumb-item.component.mjs +4 -4
- package/esm2022/breadcrumb/breadcrumb.component.mjs +4 -4
- package/esm2022/breadcrumb/module.mjs +5 -5
- package/esm2022/button/button-group.component.mjs +4 -4
- package/esm2022/button/button-icon.component.mjs +4 -4
- package/esm2022/button/button.component.mjs +4 -4
- package/esm2022/button/button.module.mjs +5 -5
- package/esm2022/calendar/calendar-cells.mjs +7 -7
- package/esm2022/calendar/calendar-header.component.mjs +17 -17
- package/esm2022/calendar/calendar.component.mjs +6 -6
- package/esm2022/calendar/module.mjs +5 -5
- package/esm2022/card/card.component.mjs +4 -4
- package/esm2022/card/card.module.mjs +5 -5
- package/esm2022/card/content.component.mjs +4 -4
- package/esm2022/card/header.component.mjs +4 -4
- package/esm2022/carousel/carousel-item.directive.mjs +4 -4
- package/esm2022/carousel/carousel.component.mjs +13 -13
- package/esm2022/carousel/carousel.service.mjs +4 -4
- package/esm2022/carousel/module.mjs +5 -5
- package/esm2022/cascader/cascader-li.component.mjs +4 -4
- package/esm2022/cascader/cascader-search-option.component.mjs +4 -4
- package/esm2022/cascader/cascader.component.mjs +4 -4
- package/esm2022/cascader/cascader.service.mjs +4 -4
- package/esm2022/cascader/module.mjs +5 -5
- package/esm2022/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/checkbox/module.mjs +5 -5
- package/esm2022/collapse/collapse-item.component.mjs +4 -4
- package/esm2022/collapse/collapse.component.mjs +4 -4
- package/esm2022/collapse/module.mjs +5 -5
- package/esm2022/color-picker/color-picker-custom-panel.component.mjs +4 -4
- package/esm2022/color-picker/color-picker-panel.component.mjs +4 -4
- package/esm2022/color-picker/color-picker.component.mjs +4 -4
- package/esm2022/color-picker/coordinates.directive.mjs +4 -4
- package/esm2022/color-picker/module.mjs +5 -5
- package/esm2022/color-picker/parts/alpha/alpha.component.mjs +4 -4
- package/esm2022/color-picker/parts/hue/hue.component.mjs +4 -4
- package/esm2022/color-picker/parts/indicator/indicator.component.mjs +4 -4
- package/esm2022/color-picker/parts/inputs/inputs.component.mjs +4 -4
- package/esm2022/color-picker/parts/saturation/saturation.component.mjs +4 -4
- package/esm2022/comment/comment-actions.directive.mjs +4 -4
- package/esm2022/comment/comment-content.directive.mjs +4 -4
- package/esm2022/comment/comment.component.mjs +4 -4
- package/esm2022/comment/comment.module.mjs +5 -5
- package/esm2022/copy/copy.directive.mjs +4 -4
- package/esm2022/copy/module.mjs +5 -5
- package/esm2022/core/click-positioner.mjs +4 -4
- package/esm2022/core/overlay/portal-directives.mjs +4 -4
- package/esm2022/core/request-animation.mjs +3 -2
- package/esm2022/core/scroll.mjs +4 -4
- package/esm2022/core/store/store.mjs +4 -4
- package/esm2022/core/theme/store.mjs +4 -4
- package/esm2022/core/translate.mjs +4 -4
- package/esm2022/core/update-host-class.service.mjs +4 -4
- package/esm2022/date-picker/abstract-picker.component.mjs +4 -4
- package/esm2022/date-picker/abstract-picker.directive.mjs +4 -4
- package/esm2022/date-picker/base-picker.component.mjs +4 -4
- package/esm2022/date-picker/date-helper.service.mjs +4 -4
- package/esm2022/date-picker/date-picker.component.mjs +4 -4
- package/esm2022/date-picker/date-picker.config.mjs +12 -13
- package/esm2022/date-picker/date-picker.directive.mjs +4 -4
- package/esm2022/date-picker/date-picker.module.mjs +5 -5
- package/esm2022/date-picker/date-picker.service.mjs +4 -4
- package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +9 -9
- package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/calendar/calendar-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/date/date-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +4 -4
- package/esm2022/date-picker/lib/date/date-table.component.mjs +10 -9
- package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +4 -4
- package/esm2022/date-picker/lib/decade/decade-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/decade/decade-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/lib-packer.module.mjs +5 -5
- package/esm2022/date-picker/lib/month/month-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/month/month-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/popups/date-popup.component.mjs +21 -18
- package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +6 -6
- package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/year/year-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/year/year-table.component.mjs +4 -4
- package/esm2022/date-picker/month-picker.component.mjs +4 -4
- package/esm2022/date-picker/picker.component.mjs +8 -8
- package/esm2022/date-picker/picker.pipes.mjs +13 -13
- package/esm2022/date-picker/picker.util.mjs +8 -6
- package/esm2022/date-picker/picker.validators.mjs +7 -7
- package/esm2022/date-picker/quarter-picker.component.mjs +4 -4
- package/esm2022/date-picker/range-picker.component.mjs +4 -4
- package/esm2022/date-picker/range-picker.directive.mjs +4 -4
- package/esm2022/date-picker/week-picker.component.mjs +4 -4
- package/esm2022/date-picker/year-picker.component.mjs +4 -4
- package/esm2022/date-range/date-range.component.mjs +15 -16
- package/esm2022/date-range/module.mjs +5 -5
- package/esm2022/date-range/optional-dates/optional-dates.component.mjs +4 -4
- package/esm2022/dialog/body/dialog-body.component.mjs +4 -4
- package/esm2022/dialog/confirm/confirm.component.mjs +4 -4
- package/esm2022/dialog/dialog-container.component.mjs +4 -4
- package/esm2022/dialog/dialog.module.mjs +5 -5
- package/esm2022/dialog/dialog.service.mjs +4 -4
- package/esm2022/dialog/footer/dialog-footer.component.mjs +4 -4
- package/esm2022/dialog/header/dialog-header.component.mjs +4 -4
- package/esm2022/divider/divider.component.mjs +4 -4
- package/esm2022/divider/divider.module.mjs +5 -5
- package/esm2022/dot/dot.component.mjs +4 -4
- package/esm2022/dot/dot.module.mjs +5 -5
- package/esm2022/drag-drop/drag-content.directive.mjs +4 -4
- package/esm2022/drag-drop/drag-drop.service.mjs +4 -4
- package/esm2022/drag-drop/drag-handle.directive.mjs +4 -4
- package/esm2022/drag-drop/drag.directive.mjs +4 -4
- package/esm2022/drag-drop/drop-container.directive.mjs +4 -4
- package/esm2022/drag-drop/module.mjs +5 -5
- package/esm2022/dropdown/dropdown-active.directive.mjs +4 -4
- package/esm2022/dropdown/dropdown-menu-item.directive.mjs +22 -22
- package/esm2022/dropdown/dropdown-menu.component.mjs +13 -13
- package/esm2022/dropdown/dropdown-submenu.component.mjs +4 -4
- package/esm2022/dropdown/dropdown.directive.mjs +4 -4
- package/esm2022/dropdown/module.mjs +5 -5
- package/esm2022/empty/empty.component.mjs +4 -4
- package/esm2022/empty/empty.config.mjs +4 -4
- package/esm2022/empty/empty.module.mjs +5 -5
- package/esm2022/flexible-text/flexible-text.component.mjs +4 -4
- package/esm2022/flexible-text/flexible-text.module.mjs +5 -5
- package/esm2022/form/form-group-error/form-group-error.component.mjs +4 -4
- package/esm2022/form/form-group-label.directive.mjs +4 -4
- package/esm2022/form/form-group.component.mjs +4 -4
- package/esm2022/form/form-submit.directive.mjs +4 -4
- package/esm2022/form/form-validator-loader.mjs +4 -4
- package/esm2022/form/form-validator.service.mjs +4 -4
- package/esm2022/form/form.directive.mjs +4 -4
- package/esm2022/form/from-group-footer/form-group-footer.component.mjs +4 -4
- package/esm2022/form/module.mjs +5 -5
- package/esm2022/form/validator/confirm-validator.directive.mjs +4 -4
- package/esm2022/form/validator/max-validator.directive.mjs +4 -4
- package/esm2022/form/validator/min-validator.directive.mjs +4 -4
- package/esm2022/form/validator/unique-validator.directive.mjs +4 -4
- package/esm2022/fullscreen/fullscreen-launch.directive.mjs +4 -4
- package/esm2022/fullscreen/fullscreen.component.mjs +4 -4
- package/esm2022/fullscreen/fullscreen.module.mjs +5 -5
- package/esm2022/fullscreen/fullscreen.service.mjs +4 -4
- package/esm2022/grid/flex.mjs +13 -13
- package/esm2022/grid/module.mjs +5 -5
- package/esm2022/grid/thy-col.directive.mjs +4 -4
- package/esm2022/grid/thy-grid-item.component.mjs +4 -4
- package/esm2022/grid/thy-grid.component.mjs +7 -7
- package/esm2022/grid/thy-row.directive.mjs +4 -4
- package/esm2022/guider/guider-hint/guider-hint.component.mjs +4 -4
- package/esm2022/guider/guider-manager.mjs +4 -4
- package/esm2022/guider/guider.directive.mjs +4 -4
- package/esm2022/guider/guider.module.mjs +5 -5
- package/esm2022/guider/guider.service.mjs +4 -4
- package/esm2022/i18n/i18n.service.mjs +4 -4
- package/esm2022/icon/icon-registry.mjs +5 -5
- package/esm2022/icon/icon.component.mjs +4 -4
- package/esm2022/icon/icon.module.mjs +6 -7
- package/esm2022/image/image-group.component.mjs +4 -4
- package/esm2022/image/image.directive.mjs +4 -4
- package/esm2022/image/image.service.mjs +4 -4
- package/esm2022/image/module.mjs +5 -5
- package/esm2022/image/preview/image-preview.component.mjs +4 -4
- package/esm2022/input/input-count.component.mjs +4 -4
- package/esm2022/input/input-group.component.mjs +4 -4
- package/esm2022/input/input-search.component.mjs +4 -4
- package/esm2022/input/input.component.mjs +4 -4
- package/esm2022/input/input.directive.mjs +4 -4
- package/esm2022/input/module.mjs +5 -5
- package/esm2022/input-number/input-number.component.mjs +4 -4
- package/esm2022/input-number/module.mjs +5 -5
- package/esm2022/layout/content-main.component.mjs +7 -7
- package/esm2022/layout/content-section.component.mjs +7 -7
- package/esm2022/layout/content.component.mjs +7 -7
- package/esm2022/layout/header.component.mjs +7 -7
- package/esm2022/layout/layout.component.mjs +7 -7
- package/esm2022/layout/layout.module.mjs +5 -5
- package/esm2022/layout/sidebar-content.component.mjs +7 -7
- package/esm2022/layout/sidebar-footer.component.mjs +7 -7
- package/esm2022/layout/sidebar-header.component.mjs +7 -7
- package/esm2022/layout/sidebar.component.mjs +7 -7
- package/esm2022/list/list-item-meta.component.mjs +4 -4
- package/esm2022/list/list-item.component.mjs +4 -4
- package/esm2022/list/list.component.mjs +4 -4
- package/esm2022/list/list.module.mjs +5 -5
- package/esm2022/list/selection/selection-list.mjs +4 -4
- package/esm2022/loading/loading.component.mjs +4 -4
- package/esm2022/loading/loading.module.mjs +5 -5
- package/esm2022/mention/mention.directive.mjs +4 -4
- package/esm2022/mention/mention.module.mjs +5 -5
- package/esm2022/mention/suggestions/suggestions.component.mjs +4 -4
- package/esm2022/menu/divider/menu-divider.component.mjs +4 -4
- package/esm2022/menu/group/menu-group.component.mjs +4 -4
- package/esm2022/menu/item/action/menu-item-action.component.mjs +4 -4
- package/esm2022/menu/item/icon/menu-item-icon.component.mjs +4 -4
- package/esm2022/menu/item/menu-item.component.mjs +4 -4
- package/esm2022/menu/item/name/menu-item-name.component.mjs +4 -4
- package/esm2022/menu/menu.component.mjs +4 -4
- package/esm2022/menu/menu.module.mjs +5 -5
- package/esm2022/message/abstract/abstract-message-container.component.mjs +4 -4
- package/esm2022/message/abstract/abstract-message.component.mjs +4 -4
- package/esm2022/message/message-container.component.mjs +4 -4
- package/esm2022/message/message-queue.service.mjs +4 -4
- package/esm2022/message/message.component.mjs +4 -4
- package/esm2022/message/message.service.mjs +4 -4
- package/esm2022/message/module.mjs +5 -5
- package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +4 -4
- package/esm2022/nav/icon-nav/icon-nav.component.mjs +4 -4
- package/esm2022/nav/nav-ink-bar.directive.mjs +4 -4
- package/esm2022/nav/nav-item.directive.mjs +4 -4
- package/esm2022/nav/nav.component.mjs +4 -4
- package/esm2022/nav/nav.module.mjs +5 -5
- package/esm2022/nav/nav.pipe.mjs +4 -4
- package/esm2022/notify/module.mjs +5 -5
- package/esm2022/notify/notify-container.component.mjs +4 -4
- package/esm2022/notify/notify-queue.service.mjs +4 -4
- package/esm2022/notify/notify.component.mjs +4 -4
- package/esm2022/notify/notify.service.mjs +4 -4
- package/esm2022/pagination/pagination.component.mjs +4 -4
- package/esm2022/pagination/pagination.module.mjs +5 -5
- package/esm2022/pagination/pagination.pipe.mjs +7 -7
- package/esm2022/popover/body/popover-body.component.mjs +4 -4
- package/esm2022/popover/header/popover-header.component.mjs +4 -4
- package/esm2022/popover/module.mjs +5 -5
- package/esm2022/popover/popover-container.component.mjs +4 -4
- package/esm2022/popover/popover.directive.mjs +4 -4
- package/esm2022/popover/popover.service.mjs +4 -4
- package/esm2022/progress/progress-circle.component.mjs +4 -4
- package/esm2022/progress/progress-strip.component.mjs +4 -4
- package/esm2022/progress/progress.component.mjs +4 -4
- package/esm2022/progress/progress.module.mjs +5 -5
- package/esm2022/property/module.mjs +5 -5
- package/esm2022/property/properties.component.mjs +4 -4
- package/esm2022/property/property-item.component.mjs +4 -4
- package/esm2022/property-operation/group/property-operation-group.component.mjs +4 -4
- package/esm2022/property-operation/module.mjs +5 -5
- package/esm2022/property-operation/property-operation.component.mjs +4 -4
- package/esm2022/radio/button/radio-button.component.mjs +4 -4
- package/esm2022/radio/group/radio-group.component.mjs +4 -4
- package/esm2022/radio/module.mjs +5 -5
- package/esm2022/radio/radio.component.mjs +4 -4
- package/esm2022/rate/module.mjs +5 -5
- package/esm2022/rate/rate-item.component.mjs +4 -4
- package/esm2022/rate/rate.component.mjs +4 -4
- package/esm2022/resizable/module.mjs +5 -5
- package/esm2022/resizable/resizable.directive.mjs +4 -4
- package/esm2022/resizable/resizable.service.mjs +4 -4
- package/esm2022/resizable/resize-handle.component.mjs +4 -4
- package/esm2022/resizable/resize-handles.component.mjs +4 -4
- package/esm2022/result/result.component.mjs +4 -4
- package/esm2022/result/result.module.mjs +5 -5
- package/esm2022/segment/segment-item.component.mjs +4 -4
- package/esm2022/segment/segment.component.mjs +4 -4
- package/esm2022/segment/segment.module.mjs +5 -5
- package/esm2022/select/custom-select/custom-select.component.mjs +4 -4
- package/esm2022/select/module.mjs +5 -5
- package/esm2022/select/native-select/native-select.component.mjs +4 -4
- package/esm2022/shared/base-form-check.component.mjs +4 -4
- package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-autofocus.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-contextmenu.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-drag-drop.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-enter.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-scroll.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-show.mjs +4 -4
- package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +4 -4
- package/esm2022/shared/directives/view-outlet.directive.mjs +4 -4
- package/esm2022/shared/ng-transclude.directive.mjs +4 -4
- package/esm2022/shared/option/group/option-group.component.mjs +4 -4
- package/esm2022/shared/option/list-option/list-option.component.mjs +4 -4
- package/esm2022/shared/option/module.mjs +5 -5
- package/esm2022/shared/option/option-group.component.mjs +4 -4
- package/esm2022/shared/option/option.component.mjs +4 -4
- package/esm2022/shared/option/options-container.component.mjs +4 -4
- package/esm2022/shared/select/module.mjs +5 -5
- package/esm2022/shared/select/select-control/select-control.component.mjs +4 -4
- package/esm2022/shared/shared.module.mjs +5 -5
- package/esm2022/skeleton/module.mjs +5 -5
- package/esm2022/skeleton/skeleton-circle.component.mjs +4 -4
- package/esm2022/skeleton/skeleton-rectangle.component.mjs +4 -4
- package/esm2022/skeleton/skeleton.component.mjs +4 -4
- package/esm2022/skeleton/stylized/bullet-list.component.mjs +4 -4
- package/esm2022/skeleton/stylized/list.component.mjs +4 -4
- package/esm2022/skeleton/stylized/paragraph.component.mjs +4 -4
- package/esm2022/slide/drawer/drawer-container.directive.mjs +4 -4
- package/esm2022/slide/slide-body/slide-body-section.component.mjs +4 -4
- package/esm2022/slide/slide-body/slide-body.component.mjs +4 -4
- package/esm2022/slide/slide-container.component.mjs +4 -4
- package/esm2022/slide/slide-footer/slide-footer.component.mjs +4 -4
- package/esm2022/slide/slide-header/slide-header.component.mjs +4 -4
- package/esm2022/slide/slide-layout/slide-layout.component.mjs +4 -4
- package/esm2022/slide/slide-ref.service.mjs +4 -4
- package/esm2022/slide/slide.module.mjs +5 -5
- package/esm2022/slide/slide.service.mjs +4 -4
- package/esm2022/slider/slider.component.mjs +4 -4
- package/esm2022/slider/slider.module.mjs +5 -5
- package/esm2022/space/space.component.mjs +7 -7
- package/esm2022/space/space.module.mjs +5 -5
- package/esm2022/statistic/statistic.component.mjs +4 -4
- package/esm2022/statistic/statistic.module.mjs +5 -5
- package/esm2022/stepper/step-header.component.mjs +4 -4
- package/esm2022/stepper/step.component.mjs +4 -4
- package/esm2022/stepper/stepper-button.directive.mjs +7 -7
- package/esm2022/stepper/stepper.component.mjs +4 -4
- package/esm2022/stepper/stepper.module.mjs +5 -5
- package/esm2022/strength/strength.component.mjs +4 -4
- package/esm2022/strength/strength.module.mjs +5 -5
- package/esm2022/switch/switch.component.mjs +4 -4
- package/esm2022/switch/switch.module.mjs +5 -5
- package/esm2022/table/pipes/drag.pipe.mjs +4 -4
- package/esm2022/table/pipes/table.pipe.mjs +4 -4
- package/esm2022/table/table-column.component.mjs +4 -4
- package/esm2022/table/table-skeleton.component.mjs +4 -4
- package/esm2022/table/table.component.mjs +4 -4
- package/esm2022/table/table.module.mjs +5 -5
- package/esm2022/tabs/tab-content.component.mjs +4 -4
- package/esm2022/tabs/tab.component.mjs +4 -4
- package/esm2022/tabs/tabs.component.mjs +4 -4
- package/esm2022/tabs/tabs.module.mjs +5 -5
- package/esm2022/tag/tag.component.mjs +4 -4
- package/esm2022/tag/tag.module.mjs +5 -5
- package/esm2022/tag/tags.component.mjs +4 -4
- package/esm2022/time-picker/inner/inner-time-picker.component.mjs +5 -5
- package/esm2022/time-picker/inner/inner-time-picker.config.mjs +4 -4
- package/esm2022/time-picker/inner/inner-time-picker.store.mjs +12 -9
- package/esm2022/time-picker/time-picker-panel.component.mjs +11 -12
- package/esm2022/time-picker/time-picker.component.mjs +17 -19
- package/esm2022/time-picker/time-picker.module.mjs +5 -5
- package/esm2022/time-picker/time-picker.utils.mjs +14 -8
- package/esm2022/timeline/timeline-item.component.mjs +4 -4
- package/esm2022/timeline/timeline.component.mjs +4 -4
- package/esm2022/timeline/timeline.module.mjs +5 -5
- package/esm2022/timeline/timeline.service.mjs +4 -4
- package/esm2022/tooltip/tooltip.component.mjs +4 -4
- package/esm2022/tooltip/tooltip.directive.mjs +4 -4
- package/esm2022/tooltip/tooltip.module.mjs +5 -5
- package/esm2022/tooltip/tooltip.service.mjs +4 -4
- package/esm2022/transfer/transfer-list.component.mjs +4 -4
- package/esm2022/transfer/transfer.component.mjs +4 -4
- package/esm2022/transfer/transfer.module.mjs +5 -5
- package/esm2022/tree/tree-node.component.mjs +4 -4
- package/esm2022/tree/tree.component.mjs +4 -4
- package/esm2022/tree/tree.module.mjs +5 -5
- package/esm2022/tree/tree.pipe.mjs +4 -4
- package/esm2022/tree/tree.service.mjs +4 -4
- package/esm2022/tree-select/module.mjs +5 -5
- package/esm2022/tree-select/tree-select.component.mjs +7 -7
- package/esm2022/typography/bg-color.directive.mjs +4 -4
- package/esm2022/typography/module.mjs +5 -5
- package/esm2022/typography/text/text.component.mjs +4 -4
- package/esm2022/typography/text-color.directive.mjs +4 -4
- package/esm2022/upload/file-drop.directive.mjs +4 -4
- package/esm2022/upload/file-select-base.mjs +4 -4
- package/esm2022/upload/file-select.component.mjs +4 -4
- package/esm2022/upload/module.mjs +6 -7
- package/esm2022/upload/upload.service.mjs +11 -11
- package/esm2022/util/date/functions.mjs +26 -1
- package/esm2022/util/date/tiny-date.mjs +78 -34
- package/esm2022/util/index.mjs +9 -9
- package/esm2022/version.mjs +2 -2
- package/esm2022/vote/vote.component.mjs +4 -4
- package/esm2022/vote/vote.module.mjs +5 -5
- package/esm2022/watermark/watermark.directive.mjs +4 -4
- package/esm2022/watermark/watermark.module.mjs +5 -5
- package/fesm2022/ngx-tethys-action.mjs +10 -10
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +7 -7
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +10 -10
- package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
- package/fesm2022/ngx-tethys-anchor.mjs +10 -10
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +16 -16
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +22 -22
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +7 -7
- package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
- package/fesm2022/ngx-tethys-badge.mjs +7 -7
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +13 -13
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +26 -26
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +13 -13
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +84 -84
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +16 -16
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-collapse.mjs +10 -10
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +31 -31
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +13 -13
- package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +7 -7
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +23 -23
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +242 -235
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +17 -18
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +22 -22
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +7 -7
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dot.mjs +7 -7
- package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
- package/fesm2022/ngx-tethys-drag-drop.mjs +19 -19
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +46 -46
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +10 -10
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-flexible-text.mjs +7 -7
- package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +40 -40
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +13 -13
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +31 -31
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +16 -16
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +3 -3
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +13 -13
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +16 -16
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +7 -7
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +19 -19
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +58 -58
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +16 -16
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +7 -7
- package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
- package/fesm2022/ngx-tethys-mention.mjs +10 -10
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +25 -25
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +22 -22
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +22 -22
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +16 -16
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +13 -13
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +19 -19
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +13 -13
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property-operation.mjs +10 -10
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +10 -10
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +13 -13
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +10 -10
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +16 -16
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +7 -7
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +10 -10
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +10 -10
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +66 -66
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +22 -22
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +31 -31
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +7 -7
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +10 -10
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-statistic.mjs +7 -7
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +19 -19
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +7 -7
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +7 -7
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +19 -19
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +13 -13
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +10 -10
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +46 -40
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +13 -13
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +13 -13
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +10 -10
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +10 -10
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +16 -16
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +13 -13
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +23 -24
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs +107 -38
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +7 -7
- package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
- package/fesm2022/ngx-tethys-watermark.mjs +7 -7
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/nav/styles/nav.scss +18 -2
- package/package.json +3 -2
- package/schematics/ng-add/index.js +2 -3
- package/schematics/ng-add/index.spec.js +21 -22
- package/schematics/ng-update/update-18/index.spec.js +7 -8
- package/schematics/testing/test-app.js +2 -5
- package/schematics/testing/test-project.js +7 -10
- package/schematics/testing/test-workspace.d.ts +1 -0
- package/schematics/testing/test-workspace.js +14 -15
- package/schematics/tsconfig.json +1 -1
- package/schematics/utils/get-workspace-tsconfig.js +8 -9
- package/schematics/utils/package-config.js +1 -2
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/time-picker/inner/inner-time-picker.store.d.ts +1 -1
- package/util/date/functions.d.ts +25 -0
- package/util/date/tiny-date.d.ts +20 -4
- package/util/index.d.ts +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-mention.mjs","sources":["../../../src/mention/adapter/adapter.ts","../../../src/mention/adapter/textarea.adapter.ts","../../../src/mention/adapter/editable.adapter.ts","../../../src/mention/adapter/index.ts","../../../src/mention/caret-positioner.ts","../../../src/mention/suggestions/suggestions.component.ts","../../../src/mention/suggestions/suggestions.component.html","../../../src/mention/mention.directive.ts","../../../src/mention/mention.module.ts","../../../src/mention/ngx-tethys-mention.ts"],"sourcesContent":["import { MentionDefaultDataItem, Mention } from '../interfaces';\n\nexport interface SeekQueryResult {\n term: string;\n start: number;\n end: number;\n}\n\nexport interface MatchedMention<T = MentionDefaultDataItem> {\n query: SeekQueryResult;\n mention: Mention<T>;\n}\n\nexport type MentionInputorElement = HTMLTextAreaElement | HTMLInputElement;\nexport abstract class MentionAdapter {\n inputor: MentionInputorElement;\n\n matchedMention: MatchedMention;\n\n constructor(inputor: MentionInputorElement) {\n this.inputor = inputor;\n }\n\n abstract seekQuery(event: Event, mention: Mention): SeekQueryResult;\n\n abstract insertMention(item: MentionDefaultDataItem): string;\n\n lookup(event: Event, mentions: Mention[]) {\n this.matchedMention = null;\n for (const mention of mentions) {\n const query = this.seekQuery(event, mention);\n if (query) {\n this.matchedMention = {\n query: query,\n mention: mention\n };\n break;\n }\n }\n return this.matchedMention;\n }\n}\n","import { MentionAdapter, MentionInputorElement, SeekQueryResult } from './adapter';\nimport { Mention, MentionDefaultDataItem } from '../interfaces';\n\nexport class TextareaMentionAdapter extends MentionAdapter {\n inputor: MentionInputorElement;\n\n constructor(inputor: MentionInputorElement) {\n super(inputor);\n }\n\n public seekQuery(event: Event, mention: Mention): SeekQueryResult {\n const selectionStart = this.inputor.selectionStart;\n const value = this.inputor.value.replace(/[\\r\\n]/g, ' ');\n // @123 | @456 => 0(start) => @123\n // @123 @456 | => 5(start) => @456\n const start = value.lastIndexOf(mention.trigger, selectionStart);\n const fistSpaceIndexFromStart = value.indexOf(' ', selectionStart);\n const end = fistSpaceIndexFromStart > -1 ? fistSpaceIndexFromStart : value.length;\n const termWithTrigger = value.substring(start, end);\n const startBeforeHasSpace = start > 0 && value[start - 1] === ' ';\n if ((startBeforeHasSpace || start === 0) && !termWithTrigger.includes(' ') && !termWithTrigger.includes(mention.trigger, 1)) {\n return {\n start: start,\n end: end,\n term: termWithTrigger.substring(mention.trigger.length)\n };\n } else {\n return null;\n }\n }\n\n public insertMention(item: MentionDefaultDataItem): string {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !this.matchedMention) {\n throw new Error(`matchedMention is null`);\n }\n const insertValue = this.getInsertValue(item);\n const value: string = this.inputor.value;\n const newValue = [\n value.slice(0, this.matchedMention.query.start),\n insertValue,\n value.slice(this.matchedMention.query.end, value.length)\n ].join('');\n this.inputor.value = newValue;\n this.focus(this.matchedMention.query.start + insertValue.length);\n return newValue;\n }\n\n private getInsertValue(item: MentionDefaultDataItem) {\n if (this.matchedMention.mention.insertTransform) {\n return this.matchedMention.mention.insertTransform(item).trim() + ' ';\n } else {\n return `${this.matchedMention.mention.trigger}${item['name']}`.trim() + ' ';\n }\n }\n\n private focus(caretPosition?: number): void {\n this.inputor.focus();\n this.inputor.setSelectionRange(caretPosition, caretPosition);\n }\n\n private isEditable() {\n return !this.inputor.readOnly && !this.inputor.disabled;\n }\n}\n","import { MentionAdapter, MentionInputorElement, SeekQueryResult } from './adapter';\nimport { Mention, MentionDefaultDataItem } from '../interfaces';\n\nexport class EditableMentionAdapter extends MentionAdapter {\n inputor: MentionInputorElement;\n\n constructor(inputor: MentionInputorElement) {\n super(inputor);\n }\n\n seekQuery(event: Event, mention: Mention): SeekQueryResult {\n const selectionStart = getSelection().focusOffset;\n const value = this.inputor.innerText.replace(/[\\r\\n]/g, ' ');\n const start = value.lastIndexOf(mention.trigger, selectionStart);\n const fistSpaceIndexFromStart = value.indexOf(' ', selectionStart);\n const end = fistSpaceIndexFromStart > -1 ? fistSpaceIndexFromStart : value.length;\n const termWithTrigger = value.substring(start, end);\n const startBeforeHasSpace = start > 0 && value[start - 1] === ' ';\n if ((startBeforeHasSpace || start === 0) && !termWithTrigger.includes(' ') && !termWithTrigger.includes(mention.trigger, 1)) {\n return {\n start: start,\n end: end,\n term: termWithTrigger.substring(mention.trigger.length)\n };\n } else {\n return null;\n }\n }\n\n insertMention(item: MentionDefaultDataItem): string {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !this.matchedMention) {\n throw new Error(`matchedMention is null`);\n }\n const insertValue = this.getInsertValue(item);\n const value: string = this.inputor.innerText;\n const newValue = [\n value.slice(0, this.matchedMention.query.start),\n insertValue,\n value.slice(this.matchedMention.query.end, value.length)\n ].join('');\n this.inputor.value = newValue;\n return newValue;\n }\n\n private getInsertValue(item: MentionDefaultDataItem) {\n if (this.matchedMention.mention.insertTransform) {\n return this.matchedMention.mention.insertTransform(item).trim() + ' ';\n } else {\n return `${this.matchedMention.mention.trigger}${item['name']}`.trim() + ' ';\n }\n }\n}\n","import { isInputOrTextarea } from 'ngx-tethys/util';\nimport { Mention } from '../interfaces';\nimport { TextareaMentionAdapter } from './textarea.adapter';\nimport { EditableMentionAdapter } from './editable.adapter';\nimport { MentionInputorElement } from './adapter';\n\nexport function createMentionAdapter(element: MentionInputorElement) {\n if (isInputOrTextarea(element)) {\n return new TextareaMentionAdapter(element);\n } else {\n element.contentEditable = 'true';\n return new EditableMentionAdapter(element);\n }\n}\n\nexport * from './editable.adapter';\nexport * from './textarea.adapter';\nexport * from './adapter';\n","import { Injectable } from '@angular/core';\nimport { getElementOffset } from 'ngx-tethys/util';\n\nexport interface CaretCoordinates {\n top: number;\n left: number;\n height: number;\n}\n\nexport interface CaretOptions {\n debug: boolean;\n}\n\n// We'll copy the properties below into the mirror div.\n// Note that some browsers, such as Firefox, do not concatenate properties\n// into their shorthand (e.g. padding-top, padding-bottom etc. -> padding),\n// so we have to list every single property explicitly.\nconst properties = [\n 'direction', // RTL support\n 'boxSizing',\n 'width', // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does\n 'height',\n 'overflowX',\n 'overflowY', // copy the scrollbar for IE\n\n 'borderTopWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'borderLeftWidth',\n 'borderStyle',\n\n 'paddingTop',\n 'paddingRight',\n 'paddingBottom',\n 'paddingLeft',\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/font\n 'fontStyle',\n 'fontVariant',\n 'fontWeight',\n 'fontStretch',\n 'fontSize',\n 'fontSizeAdjust',\n 'lineHeight',\n 'fontFamily',\n\n 'textAlign',\n 'textTransform',\n 'textIndent',\n 'textDecoration', // might not make a difference, but better be safe\n\n 'letterSpacing',\n 'wordSpacing',\n\n 'tabSize',\n 'MozTabSize'\n];\n\nconst isBrowser = typeof window !== 'undefined';\nconst isFirefox = isBrowser && window['mozInnerScreenX'] != null;\n\nexport type InputOrTextAreaElement = HTMLInputElement | HTMLTextAreaElement;\nexport type AllElement = InputOrTextAreaElement | HTMLElement;\n\nexport class CaretPositioner {\n // get caret coordinates in input or textarea\n // copy from repo: https://github.com/component/textarea-caret-position\n static getTextareaCaretCoordinates(element: InputOrTextAreaElement, position: number, options?: CaretOptions): CaretCoordinates {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !isBrowser) {\n throw new Error('textarea-caret-position#getCaretCoordinates should only be called in a browser');\n }\n\n const debug = (options && options.debug) || false;\n if (debug) {\n const el = document.querySelector('#input-textarea-caret-position-mirror-div');\n if (el) {\n el.parentNode.removeChild(el);\n }\n }\n\n // The mirror div will replicate the textarea's style\n const div = document.createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n document.body.appendChild(div);\n\n const style = div.style;\n const computed = window.getComputedStyle ? window.getComputedStyle(element) : element['currentStyle']; // currentStyle for IE < 9\n const isInput = element.nodeName === 'INPUT';\n\n // Default textarea styles\n style.whiteSpace = 'pre-wrap';\n if (!isInput) {\n style.wordWrap = 'break-word'; // only for textarea-s\n }\n\n // Position off-screen\n style.position = 'absolute'; // required to return coordinates properly\n if (!debug) {\n style.visibility = 'hidden'; // not 'display: none' because we want rendering\n }\n // Transfer the element's properties to the div\n properties.forEach(function (prop) {\n if (isInput && prop === 'lineHeight') {\n // Special case for <input>s because text is rendered centered and line height may be != height\n if (computed.boxSizing === 'border-box') {\n const height = parseInt(computed.height, 10);\n const outerHeight =\n parseInt(computed.paddingTop, 10) +\n parseInt(computed.paddingBottom, 10) +\n parseInt(computed.borderTopWidth, 10) +\n parseInt(computed.borderBottomWidth, 10);\n const targetHeight = outerHeight + parseInt(computed.lineHeight, 10);\n if (height > targetHeight) {\n style.lineHeight = height - outerHeight + 'px';\n } else if (height === targetHeight) {\n style.lineHeight = computed.lineHeight;\n } else {\n style.lineHeight = '0';\n }\n } else {\n style.lineHeight = computed.height;\n }\n } else {\n style[prop] = computed[prop];\n }\n });\n\n if (isFirefox) {\n // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\n if (element.scrollHeight > parseInt(computed.height, 10)) {\n style.overflowY = 'scroll';\n }\n } else {\n style.overflow = 'hidden'; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\n }\n\n div.textContent = element.value.substring(0, position);\n // The second special handling for input type=\"text\" vs textarea:\n // spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037\n if (isInput) {\n div.textContent = div.textContent.replace(/\\s/g, '\\u00a0');\n }\n\n const span = document.createElement('span');\n // Wrapping must be replicated *exactly*, including when a long word gets\n // onto the next line, with whitespace at the end of the line before (#7).\n // The *only* reliable way to do that is to copy the *entire* rest of the\n // textarea's content into the <span> created at the caret position.\n // For inputs, just '.' would be enough, but no need to bother.\n span.textContent = element.value.substring(position) || '.'; // || because a completely empty faux span doesn't render at all\n div.appendChild(span);\n\n const coordinates = {\n top: span.offsetTop + parseInt(computed['borderTopWidth'], 10),\n left: span.offsetLeft + parseInt(computed['borderLeftWidth'], 10),\n height: parseInt(computed['lineHeight'], 10)\n };\n\n if (debug) {\n span.style.backgroundColor = '#aaa';\n } else {\n document.body.removeChild(div);\n }\n\n return coordinates;\n }\n\n static getEditableCaretCoordinates(element: HTMLElement): CaretCoordinates {\n if (window.getSelection().rangeCount) {\n const range = window.getSelection().getRangeAt(0);\n const rect = range.getBoundingClientRect();\n // using the start or endcontainer is... uhm yeah... difficult...? :D\n let height: string | number =\n range.startContainer.nodeType === 1\n ? getComputedStyle(range.startContainer as Element).lineHeight\n : getComputedStyle(range.startContainer.parentNode as Element).lineHeight;\n if (isNaN(height as any)) {\n let node = range.startContainer as HTMLElement;\n if (range.startContainer.nodeType !== 1) {\n node = node.parentNode as HTMLElement;\n }\n const current = node.style.lineHeight;\n node.style.lineHeight = '1em';\n height = parseInt(getComputedStyle(node).lineHeight, 10);\n node.style.lineHeight = current != null ? current : '';\n if (!node.getAttribute('style').length) {\n // clean up if empty\n node.removeAttribute('style');\n }\n }\n const editableRect = element.getBoundingClientRect();\n return {\n top: rect.top - editableRect.top,\n left: rect.left - editableRect.left,\n height: height as number\n };\n } else {\n return {\n top: 0,\n left: 0,\n height: 0\n };\n }\n }\n\n static getCaretCoordinates(element: AllElement, position: number, options?: CaretOptions) {\n const isInput = ['INPUT', 'TEXTAREA'].indexOf(element.nodeName) >= 0;\n if (isInput) {\n return this.getTextareaCaretCoordinates(element as InputOrTextAreaElement, position, options);\n } else {\n return this.getEditableCaretCoordinates(element);\n }\n }\n\n // get caret position in view window\n static getCaretPosition(element: AllElement, position: number, options?: CaretOptions) {\n const coordinates = CaretPositioner.getCaretCoordinates(element, position, options);\n const elementOffset = getElementOffset(element);\n return {\n top: coordinates.top + elementOffset.top,\n left: coordinates.left + elementOffset.left\n };\n }\n}\n","import { ThySelectionListChange, ThySelectionList } from 'ngx-tethys/list';\nimport { ThyPopoverRef } from 'ngx-tethys/popover';\nimport { Observable, of, Subject } from 'rxjs';\nimport { catchError, debounceTime, switchMap, take } from 'rxjs/operators';\n\nimport { Component, ElementRef, HostBinding, NgZone, OnDestroy, OnInit, inject } from '@angular/core';\n\nimport { SeekQueryResult } from '../adapter/adapter';\nimport { Mention, MentionDefaultDataItem, MentionSuggestionSelectEvent } from '../interfaces';\nimport { ThyListOption } from 'ngx-tethys/shared';\nimport { ThyLoading } from 'ngx-tethys/loading';\nimport { NgTemplateOutlet, SlicePipe } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-mention-suggestions',\n templateUrl: './suggestions.component.html',\n standalone: true,\n imports: [NgTemplateOutlet, ThyLoading, ThySelectionList, ThyListOption, SlicePipe]\n})\nexport class ThyMentionSuggestions<TItem = MentionDefaultDataItem> implements OnInit, OnDestroy {\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private ngZone = inject(NgZone);\n private popoverRef = inject<ThyPopoverRef<any>>(ThyPopoverRef);\n\n data: TItem[];\n\n mention: Mention<TItem>;\n\n suggestionSelect$ = new Subject<MentionSuggestionSelectEvent>();\n\n debounce = 150;\n\n loadingDone = true;\n\n private search$ = new Subject<SeekQueryResult>();\n\n @HostBinding('class.thy-mention-suggestions') suggestionsClass = true;\n\n constructor() {\n this.search$\n .pipe(\n switchMap(query => {\n const data = this.mention.search(query.term, this.mention.data);\n if (data instanceof Observable) {\n this.loadingDone = false;\n return (data as Observable<TItem[]>).pipe(debounceTime(this.debounce));\n } else {\n return of(data as TItem[]);\n }\n }),\n catchError(() => {\n this.loadingDone = false;\n return [];\n })\n )\n .subscribe(data => {\n this.loadingDone = true;\n this.data = data || [];\n\n if (this.popoverRef) {\n if (this.mention.autoClose && this.data.length === 0) {\n this.popoverRef.close();\n }\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.popoverRef.updatePosition();\n });\n }\n });\n }\n\n ngOnInit(): void {\n if (this.mention.popoverClass) {\n this.elementRef.nativeElement.classList.add(this.mention.popoverClass);\n }\n }\n\n search(query: SeekQueryResult) {\n this.search$.next(query);\n }\n\n select(item: TItem, event: Event) {\n this.suggestionSelect$.next({\n event,\n item\n });\n }\n\n selectionChange(event: ThySelectionListChange<TItem>) {\n this.select(event.value, event.event);\n }\n\n ngOnDestroy() {\n this.search$.complete();\n }\n}\n","@if (mention.suggestionsTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"mention.suggestionsTemplateRef\" [ngTemplateOutletContext]=\"{ data: data }\"></ng-container>\n} @else {\n <thy-loading [thyDone]=\"loadingDone\"></thy-loading>\n @if (loadingDone) {\n @if (data?.length > 0) {\n <thy-selection-list\n thyBindKeyEventContainer=\"body\"\n thyMultiple=\"false\"\n thyAutoActiveFirstItem=\"true\"\n thySpaceKeyEnabled=\"false\"\n [thyScrollContainer]=\"elementRef\"\n (thySelectionChange)=\"selectionChange($event)\">\n @for (item of data | slice: 0 : mention.limit; track $index) {\n <thy-list-option [thyValue]=\"item\">\n @if (mention?.displayTemplateRef) {\n <ng-template *ngTemplateOutlet=\"mention?.displayTemplateRef; context: { $implicit: item }\"></ng-template>\n } @else {\n {{ item['name'] || '' }}\n }\n </thy-list-option>\n }\n </thy-selection-list>\n } @else {\n <div class=\"text-desc p-3\">\n {{ mention?.emptyText }}\n </div>\n }\n }\n}\n","import { ThyPopover, ThyPopoverConfig, ThyPopoverRef } from 'ngx-tethys/popover';\nimport { EMPTY, fromEvent, Subject } from 'rxjs';\nimport { switchMap, takeUntil } from 'rxjs/operators';\n\nimport { Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { createMentionAdapter, MatchedMention, MentionAdapter, MentionInputorElement } from './adapter';\nimport { CaretPositioner } from './caret-positioner';\nimport { Mention, MentionDefaultDataItem, MentionSuggestionSelectEvent } from './interfaces';\nimport { ThyMentionSuggestions } from './suggestions/suggestions.component';\nimport { isInputOrTextarea } from 'ngx-tethys/util';\n\nconst SUGGESTION_BACKDROP_CLASS = 'thy-mention-suggestions-backdrop';\n\nconst POPOVER_DEFAULT_CONFIG = {\n backdropClass: SUGGESTION_BACKDROP_CLASS,\n placement: 'bottomLeft'\n};\n\nconst DEFAULT_MENTION_CONFIG: Partial<Mention> = {\n autoClose: true,\n emptyText: '无匹配数据,按空格完成输入',\n search: (term: string, data: MentionDefaultDataItem[]) => {\n return data.filter(item => {\n return !item.name || item.name.toLowerCase().includes(term.toLowerCase());\n });\n }\n};\n\n/**\n * @name thyMention\n * @order 10\n */\n@Directive({\n selector: '[thyMention]',\n standalone: true\n})\nexport class ThyMentionDirective implements OnInit, OnDestroy {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private thyPopover = inject(ThyPopover);\n private ngControl = inject(NgControl, { optional: true, self: true })!;\n\n private adapter: MentionAdapter = null;\n\n public openedSuggestionsRef: ThyPopoverRef<ThyMentionSuggestions>;\n\n private _mentions: Mention<any>[];\n get mentions() {\n return this._mentions;\n }\n\n /**\n * 提及输入配置参数,同时支持多个提及规则\n * @type Mention<any>[]\n */\n @Input('thyMention') set mentions(value: Mention<any>[]) {\n this._mentions = value;\n if (this._mentions) {\n this._mentions = this._mentions.map(mention => {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !mention.trigger) {\n throw new Error(`mention trigger is required`);\n }\n return Object.assign({}, DEFAULT_MENTION_CONFIG, mention);\n });\n }\n }\n\n /**\n * Popover 弹出层参数配置\n */\n @Input('thyPopoverConfig') popoverConfig: ThyPopoverConfig;\n\n /**\n * 选择后的回调函数\n */\n @Output('thySelectSuggestion') select = new EventEmitter<MentionSuggestionSelectEvent>();\n\n get isOpened() {\n return !!this.openedSuggestionsRef;\n }\n\n private destroy$ = new Subject<void>();\n\n private openedSuggestionsRef$ = new Subject<ThyPopoverRef<ThyMentionSuggestions> | null>();\n\n constructor() {\n const elementRef = this.elementRef;\n\n this.adapter = createMentionAdapter(elementRef.nativeElement as MentionInputorElement);\n }\n\n ngOnInit() {\n fromEvent(this.elementRef.nativeElement, 'input')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => this.onInput(event));\n\n fromEvent(this.elementRef.nativeElement, 'click')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => this.onClick(event));\n\n this.openedSuggestionsRef$\n .pipe(\n switchMap(openedSuggestionsRef =>\n // Re-subscribe to `suggestionSelect$` every time the suggestions component is re-created,\n // otherwise, unsubscribe, if it gets closed.\n openedSuggestionsRef ? openedSuggestionsRef.componentInstance.suggestionSelect$ : EMPTY\n ),\n takeUntil(this.destroy$)\n )\n .subscribe(event => {\n const newValue = this.adapter.insertMention(event.item);\n if (isInputOrTextarea(this.elementRef.nativeElement)) {\n if (this.ngControl && this.ngControl.control) {\n this.ngControl.control.setValue(newValue);\n }\n } else {\n this.elementRef.nativeElement.innerText = newValue;\n }\n this.openedSuggestionsRef.close();\n this.select.emit(event);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n onClick(event: Event) {\n this.lookup(event);\n }\n\n onInput(event: Event) {\n this.lookup(event);\n }\n\n private lookup(event: Event) {\n const matched = this.adapter.lookup(event, this.mentions);\n if (matched) {\n this.openSuggestions(matched);\n } else {\n this.closeSuggestions();\n }\n }\n\n private openSuggestions(matched: MatchedMention) {\n if (!this.openedSuggestionsRef) {\n const inputElement = this.elementRef.nativeElement as HTMLInputElement;\n const position = CaretPositioner.getCaretPosition(inputElement, matched.query.start);\n const fontSize = parseInt(getComputedStyle(this.elementRef.nativeElement).fontSize, 10);\n this.openedSuggestionsRef = this.thyPopover.open(\n ThyMentionSuggestions,\n Object.assign(\n {},\n POPOVER_DEFAULT_CONFIG,\n {\n origin: this.elementRef,\n originPosition: {\n x: position.left,\n y: position.top,\n width: fontSize,\n height: fontSize\n },\n initialState: {\n mention: matched.mention\n }\n },\n this.popoverConfig\n )\n );\n this.openedSuggestionsRef.afterClosed().subscribe(() => {\n this.openedSuggestionsRef = null;\n this.openedSuggestionsRef$.next(null);\n });\n\n this.openedSuggestionsRef$.next(this.openedSuggestionsRef);\n }\n\n if (this.openedSuggestionsRef) {\n this.openedSuggestionsRef.componentInstance.search(matched.query);\n }\n }\n\n private closeSuggestions() {\n if (this.openedSuggestionsRef) {\n this.openedSuggestionsRef.close();\n }\n }\n}\n","import { ThyListModule } from 'ngx-tethys/list';\nimport { ThyLoadingModule } from 'ngx-tethys/loading';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ThyMentionDirective } from './mention.directive';\nimport { ThyMentionSuggestions } from './suggestions/suggestions.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThyPopoverModule, ThyListModule, ThyLoadingModule, ThyMentionDirective, ThyMentionSuggestions],\n exports: [ThyMentionDirective],\n providers: []\n})\nexport class ThyMentionModule {}\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-mention.mjs","sources":["../../../src/mention/adapter/adapter.ts","../../../src/mention/adapter/textarea.adapter.ts","../../../src/mention/adapter/editable.adapter.ts","../../../src/mention/adapter/index.ts","../../../src/mention/caret-positioner.ts","../../../src/mention/suggestions/suggestions.component.ts","../../../src/mention/suggestions/suggestions.component.html","../../../src/mention/mention.directive.ts","../../../src/mention/mention.module.ts","../../../src/mention/ngx-tethys-mention.ts"],"sourcesContent":["import { MentionDefaultDataItem, Mention } from '../interfaces';\n\nexport interface SeekQueryResult {\n term: string;\n start: number;\n end: number;\n}\n\nexport interface MatchedMention<T = MentionDefaultDataItem> {\n query: SeekQueryResult;\n mention: Mention<T>;\n}\n\nexport type MentionInputorElement = HTMLTextAreaElement | HTMLInputElement;\nexport abstract class MentionAdapter {\n inputor: MentionInputorElement;\n\n matchedMention: MatchedMention;\n\n constructor(inputor: MentionInputorElement) {\n this.inputor = inputor;\n }\n\n abstract seekQuery(event: Event, mention: Mention): SeekQueryResult;\n\n abstract insertMention(item: MentionDefaultDataItem): string;\n\n lookup(event: Event, mentions: Mention[]) {\n this.matchedMention = null;\n for (const mention of mentions) {\n const query = this.seekQuery(event, mention);\n if (query) {\n this.matchedMention = {\n query: query,\n mention: mention\n };\n break;\n }\n }\n return this.matchedMention;\n }\n}\n","import { MentionAdapter, MentionInputorElement, SeekQueryResult } from './adapter';\nimport { Mention, MentionDefaultDataItem } from '../interfaces';\n\nexport class TextareaMentionAdapter extends MentionAdapter {\n inputor: MentionInputorElement;\n\n constructor(inputor: MentionInputorElement) {\n super(inputor);\n }\n\n public seekQuery(event: Event, mention: Mention): SeekQueryResult {\n const selectionStart = this.inputor.selectionStart;\n const value = this.inputor.value.replace(/[\\r\\n]/g, ' ');\n // @123 | @456 => 0(start) => @123\n // @123 @456 | => 5(start) => @456\n const start = value.lastIndexOf(mention.trigger, selectionStart);\n const fistSpaceIndexFromStart = value.indexOf(' ', selectionStart);\n const end = fistSpaceIndexFromStart > -1 ? fistSpaceIndexFromStart : value.length;\n const termWithTrigger = value.substring(start, end);\n const startBeforeHasSpace = start > 0 && value[start - 1] === ' ';\n if ((startBeforeHasSpace || start === 0) && !termWithTrigger.includes(' ') && !termWithTrigger.includes(mention.trigger, 1)) {\n return {\n start: start,\n end: end,\n term: termWithTrigger.substring(mention.trigger.length)\n };\n } else {\n return null;\n }\n }\n\n public insertMention(item: MentionDefaultDataItem): string {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !this.matchedMention) {\n throw new Error(`matchedMention is null`);\n }\n const insertValue = this.getInsertValue(item);\n const value: string = this.inputor.value;\n const newValue = [\n value.slice(0, this.matchedMention.query.start),\n insertValue,\n value.slice(this.matchedMention.query.end, value.length)\n ].join('');\n this.inputor.value = newValue;\n this.focus(this.matchedMention.query.start + insertValue.length);\n return newValue;\n }\n\n private getInsertValue(item: MentionDefaultDataItem) {\n if (this.matchedMention.mention.insertTransform) {\n return this.matchedMention.mention.insertTransform(item).trim() + ' ';\n } else {\n return `${this.matchedMention.mention.trigger}${item['name']}`.trim() + ' ';\n }\n }\n\n private focus(caretPosition?: number): void {\n this.inputor.focus();\n this.inputor.setSelectionRange(caretPosition, caretPosition);\n }\n\n private isEditable() {\n return !this.inputor.readOnly && !this.inputor.disabled;\n }\n}\n","import { MentionAdapter, MentionInputorElement, SeekQueryResult } from './adapter';\nimport { Mention, MentionDefaultDataItem } from '../interfaces';\n\nexport class EditableMentionAdapter extends MentionAdapter {\n inputor: MentionInputorElement;\n\n constructor(inputor: MentionInputorElement) {\n super(inputor);\n }\n\n seekQuery(event: Event, mention: Mention): SeekQueryResult {\n const selectionStart = getSelection().focusOffset;\n const value = this.inputor.innerText.replace(/[\\r\\n]/g, ' ');\n const start = value.lastIndexOf(mention.trigger, selectionStart);\n const fistSpaceIndexFromStart = value.indexOf(' ', selectionStart);\n const end = fistSpaceIndexFromStart > -1 ? fistSpaceIndexFromStart : value.length;\n const termWithTrigger = value.substring(start, end);\n const startBeforeHasSpace = start > 0 && value[start - 1] === ' ';\n if ((startBeforeHasSpace || start === 0) && !termWithTrigger.includes(' ') && !termWithTrigger.includes(mention.trigger, 1)) {\n return {\n start: start,\n end: end,\n term: termWithTrigger.substring(mention.trigger.length)\n };\n } else {\n return null;\n }\n }\n\n insertMention(item: MentionDefaultDataItem): string {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !this.matchedMention) {\n throw new Error(`matchedMention is null`);\n }\n const insertValue = this.getInsertValue(item);\n const value: string = this.inputor.innerText;\n const newValue = [\n value.slice(0, this.matchedMention.query.start),\n insertValue,\n value.slice(this.matchedMention.query.end, value.length)\n ].join('');\n this.inputor.value = newValue;\n return newValue;\n }\n\n private getInsertValue(item: MentionDefaultDataItem) {\n if (this.matchedMention.mention.insertTransform) {\n return this.matchedMention.mention.insertTransform(item).trim() + ' ';\n } else {\n return `${this.matchedMention.mention.trigger}${item['name']}`.trim() + ' ';\n }\n }\n}\n","import { isInputOrTextarea } from 'ngx-tethys/util';\nimport { Mention } from '../interfaces';\nimport { TextareaMentionAdapter } from './textarea.adapter';\nimport { EditableMentionAdapter } from './editable.adapter';\nimport { MentionInputorElement } from './adapter';\n\nexport function createMentionAdapter(element: MentionInputorElement) {\n if (isInputOrTextarea(element)) {\n return new TextareaMentionAdapter(element);\n } else {\n element.contentEditable = 'true';\n return new EditableMentionAdapter(element);\n }\n}\n\nexport * from './editable.adapter';\nexport * from './textarea.adapter';\nexport * from './adapter';\n","import { Injectable } from '@angular/core';\nimport { getElementOffset } from 'ngx-tethys/util';\n\nexport interface CaretCoordinates {\n top: number;\n left: number;\n height: number;\n}\n\nexport interface CaretOptions {\n debug: boolean;\n}\n\n// We'll copy the properties below into the mirror div.\n// Note that some browsers, such as Firefox, do not concatenate properties\n// into their shorthand (e.g. padding-top, padding-bottom etc. -> padding),\n// so we have to list every single property explicitly.\nconst properties = [\n 'direction', // RTL support\n 'boxSizing',\n 'width', // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does\n 'height',\n 'overflowX',\n 'overflowY', // copy the scrollbar for IE\n\n 'borderTopWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'borderLeftWidth',\n 'borderStyle',\n\n 'paddingTop',\n 'paddingRight',\n 'paddingBottom',\n 'paddingLeft',\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/font\n 'fontStyle',\n 'fontVariant',\n 'fontWeight',\n 'fontStretch',\n 'fontSize',\n 'fontSizeAdjust',\n 'lineHeight',\n 'fontFamily',\n\n 'textAlign',\n 'textTransform',\n 'textIndent',\n 'textDecoration', // might not make a difference, but better be safe\n\n 'letterSpacing',\n 'wordSpacing',\n\n 'tabSize',\n 'MozTabSize'\n];\n\nconst isBrowser = typeof window !== 'undefined';\nconst isFirefox = isBrowser && window['mozInnerScreenX'] != null;\n\nexport type InputOrTextAreaElement = HTMLInputElement | HTMLTextAreaElement;\nexport type AllElement = InputOrTextAreaElement | HTMLElement;\n\nexport class CaretPositioner {\n // get caret coordinates in input or textarea\n // copy from repo: https://github.com/component/textarea-caret-position\n static getTextareaCaretCoordinates(element: InputOrTextAreaElement, position: number, options?: CaretOptions): CaretCoordinates {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !isBrowser) {\n throw new Error('textarea-caret-position#getCaretCoordinates should only be called in a browser');\n }\n\n const debug = (options && options.debug) || false;\n if (debug) {\n const el = document.querySelector('#input-textarea-caret-position-mirror-div');\n if (el) {\n el.parentNode.removeChild(el);\n }\n }\n\n // The mirror div will replicate the textarea's style\n const div = document.createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n document.body.appendChild(div);\n\n const style = div.style;\n const computed = window.getComputedStyle ? window.getComputedStyle(element) : element['currentStyle']; // currentStyle for IE < 9\n const isInput = element.nodeName === 'INPUT';\n\n // Default textarea styles\n style.whiteSpace = 'pre-wrap';\n if (!isInput) {\n style.wordWrap = 'break-word'; // only for textarea-s\n }\n\n // Position off-screen\n style.position = 'absolute'; // required to return coordinates properly\n if (!debug) {\n style.visibility = 'hidden'; // not 'display: none' because we want rendering\n }\n // Transfer the element's properties to the div\n properties.forEach(function (prop) {\n if (isInput && prop === 'lineHeight') {\n // Special case for <input>s because text is rendered centered and line height may be != height\n if (computed.boxSizing === 'border-box') {\n const height = parseInt(computed.height, 10);\n const outerHeight =\n parseInt(computed.paddingTop, 10) +\n parseInt(computed.paddingBottom, 10) +\n parseInt(computed.borderTopWidth, 10) +\n parseInt(computed.borderBottomWidth, 10);\n const targetHeight = outerHeight + parseInt(computed.lineHeight, 10);\n if (height > targetHeight) {\n style.lineHeight = height - outerHeight + 'px';\n } else if (height === targetHeight) {\n style.lineHeight = computed.lineHeight;\n } else {\n style.lineHeight = '0';\n }\n } else {\n style.lineHeight = computed.height;\n }\n } else {\n style[prop] = computed[prop];\n }\n });\n\n if (isFirefox) {\n // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\n if (element.scrollHeight > parseInt(computed.height, 10)) {\n style.overflowY = 'scroll';\n }\n } else {\n style.overflow = 'hidden'; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\n }\n\n div.textContent = element.value.substring(0, position);\n // The second special handling for input type=\"text\" vs textarea:\n // spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037\n if (isInput) {\n div.textContent = div.textContent.replace(/\\s/g, '\\u00a0');\n }\n\n const span = document.createElement('span');\n // Wrapping must be replicated *exactly*, including when a long word gets\n // onto the next line, with whitespace at the end of the line before (#7).\n // The *only* reliable way to do that is to copy the *entire* rest of the\n // textarea's content into the <span> created at the caret position.\n // For inputs, just '.' would be enough, but no need to bother.\n span.textContent = element.value.substring(position) || '.'; // || because a completely empty faux span doesn't render at all\n div.appendChild(span);\n\n const coordinates = {\n top: span.offsetTop + parseInt(computed['borderTopWidth'], 10),\n left: span.offsetLeft + parseInt(computed['borderLeftWidth'], 10),\n height: parseInt(computed['lineHeight'], 10)\n };\n\n if (debug) {\n span.style.backgroundColor = '#aaa';\n } else {\n document.body.removeChild(div);\n }\n\n return coordinates;\n }\n\n static getEditableCaretCoordinates(element: HTMLElement): CaretCoordinates {\n if (window.getSelection().rangeCount) {\n const range = window.getSelection().getRangeAt(0);\n const rect = range.getBoundingClientRect();\n // using the start or endcontainer is... uhm yeah... difficult...? :D\n let height: string | number =\n range.startContainer.nodeType === 1\n ? getComputedStyle(range.startContainer as Element).lineHeight\n : getComputedStyle(range.startContainer.parentNode as Element).lineHeight;\n if (isNaN(height as any)) {\n let node = range.startContainer as HTMLElement;\n if (range.startContainer.nodeType !== 1) {\n node = node.parentNode as HTMLElement;\n }\n const current = node.style.lineHeight;\n node.style.lineHeight = '1em';\n height = parseInt(getComputedStyle(node).lineHeight, 10);\n node.style.lineHeight = current != null ? current : '';\n if (!node.getAttribute('style').length) {\n // clean up if empty\n node.removeAttribute('style');\n }\n }\n const editableRect = element.getBoundingClientRect();\n return {\n top: rect.top - editableRect.top,\n left: rect.left - editableRect.left,\n height: height as number\n };\n } else {\n return {\n top: 0,\n left: 0,\n height: 0\n };\n }\n }\n\n static getCaretCoordinates(element: AllElement, position: number, options?: CaretOptions) {\n const isInput = ['INPUT', 'TEXTAREA'].indexOf(element.nodeName) >= 0;\n if (isInput) {\n return this.getTextareaCaretCoordinates(element as InputOrTextAreaElement, position, options);\n } else {\n return this.getEditableCaretCoordinates(element);\n }\n }\n\n // get caret position in view window\n static getCaretPosition(element: AllElement, position: number, options?: CaretOptions) {\n const coordinates = CaretPositioner.getCaretCoordinates(element, position, options);\n const elementOffset = getElementOffset(element);\n return {\n top: coordinates.top + elementOffset.top,\n left: coordinates.left + elementOffset.left\n };\n }\n}\n","import { ThySelectionListChange, ThySelectionList } from 'ngx-tethys/list';\nimport { ThyPopoverRef } from 'ngx-tethys/popover';\nimport { Observable, of, Subject } from 'rxjs';\nimport { catchError, debounceTime, switchMap, take } from 'rxjs/operators';\n\nimport { Component, ElementRef, HostBinding, NgZone, OnDestroy, OnInit, inject } from '@angular/core';\n\nimport { SeekQueryResult } from '../adapter/adapter';\nimport { Mention, MentionDefaultDataItem, MentionSuggestionSelectEvent } from '../interfaces';\nimport { ThyListOption } from 'ngx-tethys/shared';\nimport { ThyLoading } from 'ngx-tethys/loading';\nimport { NgTemplateOutlet, SlicePipe } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-mention-suggestions',\n templateUrl: './suggestions.component.html',\n standalone: true,\n imports: [NgTemplateOutlet, ThyLoading, ThySelectionList, ThyListOption, SlicePipe]\n})\nexport class ThyMentionSuggestions<TItem = MentionDefaultDataItem> implements OnInit, OnDestroy {\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private ngZone = inject(NgZone);\n private popoverRef = inject<ThyPopoverRef<any>>(ThyPopoverRef);\n\n data: TItem[];\n\n mention: Mention<TItem>;\n\n suggestionSelect$ = new Subject<MentionSuggestionSelectEvent>();\n\n debounce = 150;\n\n loadingDone = true;\n\n private search$ = new Subject<SeekQueryResult>();\n\n @HostBinding('class.thy-mention-suggestions') suggestionsClass = true;\n\n constructor() {\n this.search$\n .pipe(\n switchMap(query => {\n const data = this.mention.search(query.term, this.mention.data);\n if (data instanceof Observable) {\n this.loadingDone = false;\n return (data as Observable<TItem[]>).pipe(debounceTime(this.debounce));\n } else {\n return of(data as TItem[]);\n }\n }),\n catchError(() => {\n this.loadingDone = false;\n return [];\n })\n )\n .subscribe(data => {\n this.loadingDone = true;\n this.data = data || [];\n\n if (this.popoverRef) {\n if (this.mention.autoClose && this.data.length === 0) {\n this.popoverRef.close();\n }\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.popoverRef.updatePosition();\n });\n }\n });\n }\n\n ngOnInit(): void {\n if (this.mention.popoverClass) {\n this.elementRef.nativeElement.classList.add(this.mention.popoverClass);\n }\n }\n\n search(query: SeekQueryResult) {\n this.search$.next(query);\n }\n\n select(item: TItem, event: Event) {\n this.suggestionSelect$.next({\n event,\n item\n });\n }\n\n selectionChange(event: ThySelectionListChange<TItem>) {\n this.select(event.value, event.event);\n }\n\n ngOnDestroy() {\n this.search$.complete();\n }\n}\n","@if (mention.suggestionsTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"mention.suggestionsTemplateRef\" [ngTemplateOutletContext]=\"{ data: data }\"></ng-container>\n} @else {\n <thy-loading [thyDone]=\"loadingDone\"></thy-loading>\n @if (loadingDone) {\n @if (data?.length > 0) {\n <thy-selection-list\n thyBindKeyEventContainer=\"body\"\n thyMultiple=\"false\"\n thyAutoActiveFirstItem=\"true\"\n thySpaceKeyEnabled=\"false\"\n [thyScrollContainer]=\"elementRef\"\n (thySelectionChange)=\"selectionChange($event)\">\n @for (item of data | slice: 0 : mention.limit; track $index) {\n <thy-list-option [thyValue]=\"item\">\n @if (mention?.displayTemplateRef) {\n <ng-template *ngTemplateOutlet=\"mention?.displayTemplateRef; context: { $implicit: item }\"></ng-template>\n } @else {\n {{ item['name'] || '' }}\n }\n </thy-list-option>\n }\n </thy-selection-list>\n } @else {\n <div class=\"text-desc p-3\">\n {{ mention?.emptyText }}\n </div>\n }\n }\n}\n","import { ThyPopover, ThyPopoverConfig, ThyPopoverRef } from 'ngx-tethys/popover';\nimport { EMPTY, fromEvent, Subject } from 'rxjs';\nimport { switchMap, takeUntil } from 'rxjs/operators';\n\nimport { Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { createMentionAdapter, MatchedMention, MentionAdapter, MentionInputorElement } from './adapter';\nimport { CaretPositioner } from './caret-positioner';\nimport { Mention, MentionDefaultDataItem, MentionSuggestionSelectEvent } from './interfaces';\nimport { ThyMentionSuggestions } from './suggestions/suggestions.component';\nimport { isInputOrTextarea } from 'ngx-tethys/util';\n\nconst SUGGESTION_BACKDROP_CLASS = 'thy-mention-suggestions-backdrop';\n\nconst POPOVER_DEFAULT_CONFIG = {\n backdropClass: SUGGESTION_BACKDROP_CLASS,\n placement: 'bottomLeft'\n};\n\nconst DEFAULT_MENTION_CONFIG: Partial<Mention> = {\n autoClose: true,\n emptyText: '无匹配数据,按空格完成输入',\n search: (term: string, data: MentionDefaultDataItem[]) => {\n return data.filter(item => {\n return !item.name || item.name.toLowerCase().includes(term.toLowerCase());\n });\n }\n};\n\n/**\n * @name thyMention\n * @order 10\n */\n@Directive({\n selector: '[thyMention]',\n standalone: true\n})\nexport class ThyMentionDirective implements OnInit, OnDestroy {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private thyPopover = inject(ThyPopover);\n private ngControl = inject(NgControl, { optional: true, self: true })!;\n\n private adapter: MentionAdapter = null;\n\n public openedSuggestionsRef: ThyPopoverRef<ThyMentionSuggestions>;\n\n private _mentions: Mention<any>[];\n get mentions() {\n return this._mentions;\n }\n\n /**\n * 提及输入配置参数,同时支持多个提及规则\n * @type Mention<any>[]\n */\n @Input('thyMention') set mentions(value: Mention<any>[]) {\n this._mentions = value;\n if (this._mentions) {\n this._mentions = this._mentions.map(mention => {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !mention.trigger) {\n throw new Error(`mention trigger is required`);\n }\n return Object.assign({}, DEFAULT_MENTION_CONFIG, mention);\n });\n }\n }\n\n /**\n * Popover 弹出层参数配置\n */\n @Input('thyPopoverConfig') popoverConfig: ThyPopoverConfig;\n\n /**\n * 选择后的回调函数\n */\n @Output('thySelectSuggestion') select = new EventEmitter<MentionSuggestionSelectEvent>();\n\n get isOpened() {\n return !!this.openedSuggestionsRef;\n }\n\n private destroy$ = new Subject<void>();\n\n private openedSuggestionsRef$ = new Subject<ThyPopoverRef<ThyMentionSuggestions> | null>();\n\n constructor() {\n const elementRef = this.elementRef;\n\n this.adapter = createMentionAdapter(elementRef.nativeElement as MentionInputorElement);\n }\n\n ngOnInit() {\n fromEvent(this.elementRef.nativeElement, 'input')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => this.onInput(event));\n\n fromEvent(this.elementRef.nativeElement, 'click')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => this.onClick(event));\n\n this.openedSuggestionsRef$\n .pipe(\n switchMap(openedSuggestionsRef =>\n // Re-subscribe to `suggestionSelect$` every time the suggestions component is re-created,\n // otherwise, unsubscribe, if it gets closed.\n openedSuggestionsRef ? openedSuggestionsRef.componentInstance.suggestionSelect$ : EMPTY\n ),\n takeUntil(this.destroy$)\n )\n .subscribe(event => {\n const newValue = this.adapter.insertMention(event.item);\n if (isInputOrTextarea(this.elementRef.nativeElement)) {\n if (this.ngControl && this.ngControl.control) {\n this.ngControl.control.setValue(newValue);\n }\n } else {\n this.elementRef.nativeElement.innerText = newValue;\n }\n this.openedSuggestionsRef.close();\n this.select.emit(event);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n onClick(event: Event) {\n this.lookup(event);\n }\n\n onInput(event: Event) {\n this.lookup(event);\n }\n\n private lookup(event: Event) {\n const matched = this.adapter.lookup(event, this.mentions);\n if (matched) {\n this.openSuggestions(matched);\n } else {\n this.closeSuggestions();\n }\n }\n\n private openSuggestions(matched: MatchedMention) {\n if (!this.openedSuggestionsRef) {\n const inputElement = this.elementRef.nativeElement as HTMLInputElement;\n const position = CaretPositioner.getCaretPosition(inputElement, matched.query.start);\n const fontSize = parseInt(getComputedStyle(this.elementRef.nativeElement).fontSize, 10);\n this.openedSuggestionsRef = this.thyPopover.open(\n ThyMentionSuggestions,\n Object.assign(\n {},\n POPOVER_DEFAULT_CONFIG,\n {\n origin: this.elementRef,\n originPosition: {\n x: position.left,\n y: position.top,\n width: fontSize,\n height: fontSize\n },\n initialState: {\n mention: matched.mention\n }\n },\n this.popoverConfig\n )\n );\n this.openedSuggestionsRef.afterClosed().subscribe(() => {\n this.openedSuggestionsRef = null;\n this.openedSuggestionsRef$.next(null);\n });\n\n this.openedSuggestionsRef$.next(this.openedSuggestionsRef);\n }\n\n if (this.openedSuggestionsRef) {\n this.openedSuggestionsRef.componentInstance.search(matched.query);\n }\n }\n\n private closeSuggestions() {\n if (this.openedSuggestionsRef) {\n this.openedSuggestionsRef.close();\n }\n }\n}\n","import { ThyListModule } from 'ngx-tethys/list';\nimport { ThyLoadingModule } from 'ngx-tethys/loading';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ThyMentionDirective } from './mention.directive';\nimport { ThyMentionSuggestions } from './suggestions/suggestions.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThyPopoverModule, ThyListModule, ThyLoadingModule, ThyMentionDirective, ThyMentionSuggestions],\n exports: [ThyMentionDirective],\n providers: []\n})\nexport class ThyMentionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -15,10 +15,10 @@ class ThyMenuDivider {
|
|
|
15
15
|
this.isThyMenuDivider = true;
|
|
16
16
|
}
|
|
17
17
|
ngOnInit() { }
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyMenuDivider, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ThyMenuDivider, isStandalone: true, selector: "thy-menu-divider,[thy-menu-divider],[thyMenuDivider]", host: { properties: { "class.thy-menu-divider": "this.isThyMenuDivider" } }, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
|
|
20
20
|
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyMenuDivider, decorators: [{
|
|
22
22
|
type: Component,
|
|
23
23
|
args: [{ selector: 'thy-menu-divider,[thy-menu-divider],[thyMenuDivider]', standalone: true, template: "<ng-content></ng-content>\n" }]
|
|
24
24
|
}], ctorParameters: () => [], propDecorators: { isThyMenuDivider: [{
|
|
@@ -123,8 +123,8 @@ class ThyMenuGroup {
|
|
|
123
123
|
this.thyOnActionClick.emit(event);
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
127
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
126
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyMenuGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
127
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ThyMenuGroup, isStandalone: true, selector: "thy-menu-group,[thy-menu-group],[thyMenuGroup]", inputs: { thyTitle: "thyTitle", thyExpand: ["thyExpand", "thyExpand", coerceBooleanProperty], thyCollapsed: ["thyCollapsed", "thyCollapsed", coerceBooleanProperty], thyCollapsible: ["thyCollapsible", "thyCollapsible", coerceBooleanProperty], thyShowIcon: ["thyShowIcon", "thyShowIcon", coerceBooleanProperty], thyIcon: "thyIcon", thyActionIcon: "thyActionIcon", thyShowAction: ["thyShowAction", "thyShowAction", coerceBooleanProperty], thyActionStopPropagation: ["thyActionStopPropagation", "thyActionStopPropagation", coerceBooleanProperty], thyActionMenu: "thyActionMenu" }, outputs: { thyOnActionClick: "thyOnActionClick", thyCollapsedChange: "thyCollapsedChange" }, host: { properties: { "class.thy-menu-group": "this.isThyMenuGroup", "class.has-icon": "this.showIcon", "class.collapsed": "this.isCollapsed" } }, queries: [{ propertyName: "headerContentTemplateRef", first: true, predicate: ["headerContent"], descendants: true }], viewQueries: [{ propertyName: "_thyMenuGroup", first: true, predicate: ["thyMenuGroup"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"thy-menu-group-header\" [ngClass]=\"{ 'thy-menu-group-collapsible': thyCollapsible }\" (click)=\"collapseGroup()\">\n <div class=\"thy-menu-group-header-content\">\n @if (headerContentTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"headerContentTemplateRef\"></ng-template>\n } @else {\n <span class=\"thy-menu-group-title\">\n @if (showIcon) {\n <thy-icon class=\"thy-menu-group-title-icon mr-2\" [thyIconName]=\"iconClass\"></thy-icon>\n }\n <span class=\"thy-menu-group-title-text\">{{ thyTitle }}</span>\n </span>\n }\n </div>\n @if (thyShowAction) {\n <thy-icon\n class=\"thy-menu-group-operation\"\n [thyIconName]=\"rightIconClass\"\n (click)=\"onActionClick($event)\"\n ></thy-icon>\n }\n @if (thyCollapsible) {\n <thy-icon thyIconName=\"angle-up\" class=\"thy-menu-group-arrow\"></thy-icon>\n }\n</div>\n<div class=\"thy-menu-group-body\" #thyMenuGroup [@detailsContentAnimation]=\"isCollapsed\">\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], animations: [
|
|
128
128
|
trigger('detailsContentAnimation', [
|
|
129
129
|
state('void', style({
|
|
130
130
|
height: '*'
|
|
@@ -140,7 +140,7 @@ class ThyMenuGroup {
|
|
|
140
140
|
])
|
|
141
141
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
142
142
|
}
|
|
143
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyMenuGroup, decorators: [{
|
|
144
144
|
type: Component,
|
|
145
145
|
args: [{ selector: 'thy-menu-group,[thy-menu-group],[thyMenuGroup]', animations: [
|
|
146
146
|
trigger('detailsContentAnimation', [
|
|
@@ -260,10 +260,10 @@ class ThyMenuItemAction {
|
|
|
260
260
|
ngOnDestroy() {
|
|
261
261
|
this.removeClickListenerFn?.();
|
|
262
262
|
}
|
|
263
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
264
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.
|
|
263
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyMenuItemAction, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
264
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: ThyMenuItemAction, isStandalone: true, selector: "thy-menu-item-action,[thy-menu-item-action],[thyMenuItemAction]", inputs: { thyActionMenu: "thyActionMenu", thyStopPropagation: ["thyStopPropagation", "thyStopPropagation", coerceBooleanProperty], thyPopoverOptions: "thyPopoverOptions" }, host: { classAttribute: "thy-menu-item-action" }, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
|
|
265
265
|
}
|
|
266
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
266
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyMenuItemAction, decorators: [{
|
|
267
267
|
type: Component,
|
|
268
268
|
args: [{ selector: 'thy-menu-item-action,[thy-menu-item-action],[thyMenuItemAction]', host: {
|
|
269
269
|
class: 'thy-menu-item-action'
|
|
@@ -295,10 +295,10 @@ class ThyMenuItemIcon {
|
|
|
295
295
|
this.hostRenderer = useHostRenderer();
|
|
296
296
|
}
|
|
297
297
|
ngOnInit() { }
|
|
298
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
299
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
298
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyMenuItemIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
299
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ThyMenuItemIcon, isStandalone: true, selector: "thy-menu-item-icon,[thy-menu-item-icon],[thyMenuItemIcon]", inputs: { thyColor: "thyColor" }, host: { classAttribute: "thy-menu-item-icon" }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
300
300
|
}
|
|
301
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
301
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyMenuItemIcon, decorators: [{
|
|
302
302
|
type: Component,
|
|
303
303
|
args: [{ selector: 'thy-menu-item-icon,[thy-menu-item-icon],[thyMenuItemIcon]', host: {
|
|
304
304
|
class: 'thy-menu-item-icon'
|
|
@@ -331,10 +331,10 @@ class ThyMenuItem {
|
|
|
331
331
|
}
|
|
332
332
|
});
|
|
333
333
|
}
|
|
334
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
335
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
334
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyMenuItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
335
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ThyMenuItem, isStandalone: true, selector: "thy-menu-item,[thy-menu-item],[thyMenuItem]", inputs: { thyIcon: "thyIcon" }, host: { classAttribute: "thy-menu-item" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"thy-menu-item-content\" #content>\n @if (thyIcon) {\n <thy-icon class=\"thy-menu-item-icon\" [thyIconName]=\"thyIcon\"></thy-icon>\n }\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
336
336
|
}
|
|
337
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
337
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyMenuItem, decorators: [{
|
|
338
338
|
type: Component,
|
|
339
339
|
args: [{ selector: 'thy-menu-item,[thy-menu-item],[thyMenuItem]', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
340
340
|
class: 'thy-menu-item'
|
|
@@ -359,10 +359,10 @@ class ThyMenuItemName {
|
|
|
359
359
|
this.thyOverflowEllipsis = true;
|
|
360
360
|
}
|
|
361
361
|
ngOnInit() { }
|
|
362
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
363
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.
|
|
362
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyMenuItemName, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
363
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: ThyMenuItemName, isStandalone: true, selector: "thy-menu-item-name,[thy-menu-item-name],[thyMenuItemName]", inputs: { thyOverflowEllipsis: ["thyOverflowEllipsis", "thyOverflowEllipsis", coerceBooleanProperty] }, host: { properties: { "class.thy-menu-item-name-ellipsis": "this.thyOverflowEllipsis" }, classAttribute: "thy-menu-item-name" }, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
|
|
364
364
|
}
|
|
365
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
365
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyMenuItemName, decorators: [{
|
|
366
366
|
type: Component,
|
|
367
367
|
args: [{ selector: 'thy-menu-item-name,[thy-menu-item-name],[thyMenuItemName]', host: {
|
|
368
368
|
class: 'thy-menu-item-name'
|
|
@@ -393,10 +393,10 @@ class ThyMenu {
|
|
|
393
393
|
this.theme = 'compact';
|
|
394
394
|
}
|
|
395
395
|
ngOnInit() { }
|
|
396
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
397
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.
|
|
396
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyMenu, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
397
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: ThyMenu, isStandalone: true, selector: "thy-menu,[thy-menu],[thyMenu]", inputs: { thyTheme: "thyTheme", thyCollapsed: ["thyCollapsed", "thyCollapsed", coerceBooleanProperty] }, host: { properties: { "class.thy-menu-collapsed": "thyCollapsed", "class.thy-menu-theme-loose": "theme === \"loose\"", "class.thy-menu-theme-dark": "theme === \"dark\"" }, classAttribute: "thy-menu" }, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
|
|
398
398
|
}
|
|
399
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
399
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyMenu, decorators: [{
|
|
400
400
|
type: Component,
|
|
401
401
|
args: [{ selector: 'thy-menu,[thy-menu],[thyMenu]', host: {
|
|
402
402
|
class: 'thy-menu',
|
|
@@ -412,8 +412,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
412
412
|
}] } });
|
|
413
413
|
|
|
414
414
|
class ThyMenuModule {
|
|
415
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
416
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
415
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
416
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ThyMenuModule, imports: [CommonModule,
|
|
417
417
|
ThyIconModule,
|
|
418
418
|
ThyPopoverModule,
|
|
419
419
|
ThyMenu,
|
|
@@ -423,13 +423,13 @@ class ThyMenuModule {
|
|
|
423
423
|
ThyMenuItemIcon,
|
|
424
424
|
ThyMenuItemAction,
|
|
425
425
|
ThyMenuDivider], exports: [ThyMenu, ThyMenuGroup, ThyMenuItem, ThyMenuItemName, ThyMenuItemIcon, ThyMenuItemAction, ThyMenuDivider] }); }
|
|
426
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
426
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyMenuModule, imports: [CommonModule,
|
|
427
427
|
ThyIconModule,
|
|
428
428
|
ThyPopoverModule,
|
|
429
429
|
ThyMenuGroup,
|
|
430
430
|
ThyMenuItem] }); }
|
|
431
431
|
}
|
|
432
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
432
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyMenuModule, decorators: [{
|
|
433
433
|
type: NgModule,
|
|
434
434
|
args: [{
|
|
435
435
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-menu.mjs","sources":["../../../src/menu/divider/menu-divider.component.ts","../../../src/menu/divider/menu-divider.component.html","../../../src/menu/group/menu-group.component.ts","../../../src/menu/group/menu-group.component.html","../../../src/menu/item/action/menu-item-action.component.ts","../../../src/menu/item/action/menu-item-action.component.html","../../../src/menu/item/icon/menu-item-icon.component.ts","../../../src/menu/item/icon/menu-item-icon.component.html","../../../src/menu/item/menu-item.component.ts","../../../src/menu/item/menu-item.component.html","../../../src/menu/item/name/menu-item-name.component.ts","../../../src/menu/item/name/menu-item-name.component.html","../../../src/menu/menu.component.ts","../../../src/menu/menu.component.html","../../../src/menu/menu.module.ts","../../../src/menu/ngx-tethys-menu.ts"],"sourcesContent":["import { Component, OnInit, HostBinding } from '@angular/core';\n\n/**\n * @name thy-menu-divider,[thy-menu-divider],[thyMenuDivider]\n */\n@Component({\n selector: 'thy-menu-divider,[thy-menu-divider],[thyMenuDivider]',\n templateUrl: './menu-divider.component.html',\n standalone: true\n})\nexport class ThyMenuDivider implements OnInit {\n @HostBinding('class.thy-menu-divider') isThyMenuDivider = true;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<ng-content></ng-content>\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ComponentType } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n inject\n} from '@angular/core';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 菜单分组组件\n * @name thy-menu-group,[thy-menu-group],[thyMenuGroup]\n * @order 30\n */\n@Component({\n selector: 'thy-menu-group,[thy-menu-group],[thyMenuGroup]',\n templateUrl: './menu-group.component.html',\n animations: [\n trigger('detailsContentAnimation', [\n state(\n 'void',\n style({\n height: '*'\n })\n ),\n state(\n '1',\n style({\n height: 0,\n overflow: 'hidden'\n })\n ),\n state(\n '0',\n style({\n height: '*'\n })\n ),\n transition('* => *', animate('0ms ease-out'))\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgClass, NgTemplateOutlet, ThyIcon]\n})\nexport class ThyMenuGroup implements OnInit {\n private popover = inject(ThyPopover);\n\n public _actionMenu: ComponentType<any> | TemplateRef<any>;\n\n public rightIconClass = 'more';\n\n public iconClass = 'folder-bold';\n\n public groupHeaderPaddingLeft = 0;\n\n @ViewChild('thyMenuGroup', { static: true }) _thyMenuGroup: ElementRef;\n\n @ContentChild('headerContent')\n headerContentTemplateRef: TemplateRef<any>;\n\n @HostBinding('class.thy-menu-group') isThyMenuGroup = true;\n\n @HostBinding('class.has-icon') showIcon = false;\n\n @HostBinding('class.collapsed') isCollapsed = false;\n\n /**\n * 分组标题\n */\n @Input() thyTitle = '';\n\n /**\n * 已废弃,请使用 thyCollapsed\n * @deprecated\n */\n @Input({ transform: coerceBooleanProperty })\n set thyExpand(value: boolean) {\n this.isCollapsed = !!!value;\n }\n\n /**\n * 是否处于收起状态\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyCollapsed(value: boolean) {\n this.isCollapsed = value;\n }\n\n /**\n * 是否支持展开收起\n */\n @Input({ transform: coerceBooleanProperty }) thyCollapsible: boolean = false;\n\n /**\n * 是否显示 Icon\n */\n @Input({ transform: coerceBooleanProperty })\n set thyShowIcon(value: boolean) {\n this.showIcon = value;\n }\n\n /**\n * 图标\n */\n @Input('thyIcon')\n set thyIcon(value: string) {\n this.iconClass = value;\n }\n\n /**\n * 操作图标\n */\n @Input('thyActionIcon')\n set thyActionIcon(value: string) {\n this.rightIconClass = value;\n }\n\n /**\n *是否显示操作\n */\n @Input({ transform: coerceBooleanProperty }) thyShowAction = false;\n\n /**\n * 操作阻止冒泡事件\n */\n @Input({ transform: coerceBooleanProperty }) thyActionStopPropagation = true;\n\n /**\n * Action 点击事件\n */\n @Output() thyOnActionClick: EventEmitter<Event> = new EventEmitter<Event>();\n\n @Output() thyCollapsedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /**\n * 设置 Action 菜单\n */\n @Input()\n set thyActionMenu(value: ComponentType<any> | TemplateRef<any>) {\n this._actionMenu = value;\n }\n\n ngOnInit(): void {}\n\n collapseGroup(): void {\n if (!this.thyCollapsible) {\n return;\n }\n this.isCollapsed = !this.isCollapsed;\n this.thyCollapsedChange.emit(this.isCollapsed);\n }\n\n onActionClick(event: Event): void {\n if (this.thyActionStopPropagation) {\n event.stopPropagation();\n }\n if (this._actionMenu) {\n this.popover.open(this._actionMenu, {\n origin: event.currentTarget as HTMLElement,\n insideClosable: true,\n placement: 'bottom'\n });\n } else {\n this.thyOnActionClick.emit(event);\n }\n }\n}\n","<div class=\"thy-menu-group-header\" [ngClass]=\"{ 'thy-menu-group-collapsible': thyCollapsible }\" (click)=\"collapseGroup()\">\n <div class=\"thy-menu-group-header-content\">\n @if (headerContentTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"headerContentTemplateRef\"></ng-template>\n } @else {\n <span class=\"thy-menu-group-title\">\n @if (showIcon) {\n <thy-icon class=\"thy-menu-group-title-icon mr-2\" [thyIconName]=\"iconClass\"></thy-icon>\n }\n <span class=\"thy-menu-group-title-text\">{{ thyTitle }}</span>\n </span>\n }\n </div>\n @if (thyShowAction) {\n <thy-icon\n class=\"thy-menu-group-operation\"\n [thyIconName]=\"rightIconClass\"\n (click)=\"onActionClick($event)\"\n ></thy-icon>\n }\n @if (thyCollapsible) {\n <thy-icon thyIconName=\"angle-up\" class=\"thy-menu-group-arrow\"></thy-icon>\n }\n</div>\n<div class=\"thy-menu-group-body\" #thyMenuGroup [@detailsContentAnimation]=\"isCollapsed\">\n <ng-content></ng-content>\n</div>\n","import { ThyPopover, ThyPopoverConfig } from 'ngx-tethys/popover';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nimport { ComponentType } from '@angular/cdk/portal';\nimport { Component, ElementRef, Input, OnDestroy, Renderer2, TemplateRef, inject } from '@angular/core';\n\n/**\n * 菜单项操作组件\n * @name thy-menu-item-action,[thy-menu-item-action],[thyMenuItemAction]\n * @order 25\n */\n@Component({\n selector: 'thy-menu-item-action,[thy-menu-item-action],[thyMenuItemAction]',\n templateUrl: './menu-item-action.component.html',\n host: {\n class: 'thy-menu-item-action'\n },\n standalone: true\n})\nexport class ThyMenuItemAction implements OnDestroy {\n private popover = inject(ThyPopover);\n private renderer = inject(Renderer2);\n private elementRef = inject(ElementRef);\n\n _boundEvent = false;\n\n _actionMenu: ComponentType<any> | TemplateRef<any>;\n\n /**\n * 设置 Action 菜单\n */\n @Input()\n set thyActionMenu(value: ComponentType<any> | TemplateRef<any>) {\n this._actionMenu = value;\n if (this._actionMenu) {\n this.bindClickEvent();\n }\n }\n\n /**\n * 是否阻止事件冒泡\n */\n @Input({ transform: coerceBooleanProperty }) thyStopPropagation = true;\n\n /**\n * 弹出框的参数\n * @default { placement: \"bottomLeft\", insideClosable: true }\n */\n @Input() thyPopoverOptions: ThyPopoverConfig;\n\n private bindClickEvent() {\n if (this._boundEvent) {\n return;\n }\n this._boundEvent = true;\n this.removeClickListenerFn = this.renderer.listen(this.elementRef.nativeElement, 'click', event => {\n if (this.thyStopPropagation) {\n event.stopPropagation();\n }\n if (this._actionMenu) {\n const activeClass = 'action-active';\n const wrapDOM = (event.target as HTMLElement).closest('.thy-menu-item');\n wrapDOM?.classList.add(activeClass);\n const popoverRef = this.popover.open(\n this._actionMenu,\n Object.assign(\n {\n origin: event.currentTarget as HTMLElement,\n insideClosable: true,\n placement: 'bottomLeft',\n originActiveClass: 'active'\n },\n this.thyPopoverOptions\n )\n );\n popoverRef?.afterClosed().subscribe(() => {\n wrapDOM?.classList.remove(activeClass);\n });\n }\n });\n }\n\n private removeClickListenerFn: VoidFunction | null = null;\n\n ngOnDestroy(): void {\n this.removeClickListenerFn?.();\n }\n}\n","<ng-content></ng-content>\n","import { Component, OnInit, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\n/**\n * 菜单项图标组件\n * @name thy-menu-item-icon,[thy-menu-item-icon],[thyMenuItemIcon]\n * @order 15\n */\n@Component({\n selector: 'thy-menu-item-icon,[thy-menu-item-icon],[thyMenuItemIcon]',\n templateUrl: './menu-item-icon.component.html',\n host: {\n class: 'thy-menu-item-icon'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class ThyMenuItemIcon implements OnInit {\n /**\n * 设置图标颜色\n */\n @Input()\n set thyColor(value: string) {\n if (value) {\n this.hostRenderer.setStyle('color', value);\n }\n }\n\n private hostRenderer = useHostRenderer();\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<ng-content></ng-content>\n","import { Component, OnInit, AfterViewInit, ChangeDetectionStrategy, Input, Renderer2, ElementRef, ViewChild, inject } from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\n/**\n * 菜单项组件\n * @name thy-menu-item,[thy-menu-item],[thyMenuItem]\n * @order 10\n */\n@Component({\n selector: 'thy-menu-item,[thy-menu-item],[thyMenuItem]',\n templateUrl: './menu-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-menu-item'\n },\n standalone: true,\n imports: [ThyIcon]\n})\nexport class ThyMenuItem implements OnInit, AfterViewInit {\n private renderer = inject(Renderer2);\n\n @ViewChild('content', { read: ElementRef }) content: ElementRef<HTMLElement>;\n /**\n * 菜单项的图标\n */\n @Input() thyIcon: string;\n\n ngOnInit(): void {}\n\n ngAfterViewInit() {\n this.wrapSpanForText(this.content.nativeElement.childNodes);\n }\n\n private wrapSpanForText(nodes: NodeList): void {\n nodes.forEach(node => {\n if (node.nodeName === '#text') {\n const span = this.renderer.createElement('span');\n const parent = this.renderer.parentNode(node);\n this.renderer.addClass(span, 'thy-menu-item-name');\n this.renderer.insertBefore(parent, span, node);\n this.renderer.appendChild(span, node);\n }\n });\n }\n}\n","<div class=\"thy-menu-item-content\" #content>\n @if (thyIcon) {\n <thy-icon class=\"thy-menu-item-icon\" [thyIconName]=\"thyIcon\"></thy-icon>\n }\n <ng-content></ng-content>\n</div>\n","import { Component, OnInit, HostBinding, Input } from '@angular/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 菜单项名称\n * @name thy-menu-item-name,[thy-menu-item-name],[thyMenuItemName]\n * @order 20\n */\n@Component({\n selector: 'thy-menu-item-name,[thy-menu-item-name],[thyMenuItemName]',\n templateUrl: './menu-item-name.component.html',\n host: {\n class: 'thy-menu-item-name'\n },\n standalone: true\n})\nexport class ThyMenuItemName implements OnInit {\n /**\n * 是否 ellipsis\n */\n @HostBinding('class.thy-menu-item-name-ellipsis')\n @Input({ transform: coerceBooleanProperty })\n thyOverflowEllipsis = true;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<ng-content></ng-content>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyMenuTheme = 'compact' | 'loose' | 'dark';\n\n/**\n * 菜单组件\n * @name thy-menu,[thy-menu],[thyMenu]\n * @order 5\n */\n@Component({\n selector: 'thy-menu,[thy-menu],[thyMenu]',\n templateUrl: './menu.component.html',\n host: {\n class: 'thy-menu',\n '[class.thy-menu-collapsed]': 'thyCollapsed',\n '[class.thy-menu-theme-loose]': 'theme === \"loose\"',\n '[class.thy-menu-theme-dark]': 'theme === \"dark\"'\n },\n standalone: true\n})\nexport class ThyMenu implements OnInit {\n theme: ThyMenuTheme = 'compact';\n\n /**\n * 主题\n * @type compact | loose\n * @default compact\n */\n @Input() set thyTheme(value: ThyMenuTheme) {\n this.theme = value;\n }\n\n /**\n * 是否收起\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyCollapsed: boolean;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<ng-content></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { ThyMenuDivider } from './divider/menu-divider.component';\nimport { ThyMenuGroup } from './group/menu-group.component';\nimport { ThyMenuItemAction } from './item/action/menu-item-action.component';\nimport { ThyMenuItemIcon } from './item/icon/menu-item-icon.component';\nimport { ThyMenuItem } from './item/menu-item.component';\nimport { ThyMenuItemName } from './item/name/menu-item-name.component';\nimport { ThyMenu } from './menu.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ThyIconModule,\n ThyPopoverModule,\n ThyMenu,\n ThyMenuGroup,\n ThyMenuItem,\n ThyMenuItemName,\n ThyMenuItemIcon,\n ThyMenuItemAction,\n ThyMenuDivider\n ],\n exports: [ThyMenu, ThyMenuGroup, ThyMenuItem, ThyMenuItemName, ThyMenuItemIcon, ThyMenuItemAction, ThyMenuDivider]\n})\nexport class ThyMenuModule {}\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-menu.mjs","sources":["../../../src/menu/divider/menu-divider.component.ts","../../../src/menu/divider/menu-divider.component.html","../../../src/menu/group/menu-group.component.ts","../../../src/menu/group/menu-group.component.html","../../../src/menu/item/action/menu-item-action.component.ts","../../../src/menu/item/action/menu-item-action.component.html","../../../src/menu/item/icon/menu-item-icon.component.ts","../../../src/menu/item/icon/menu-item-icon.component.html","../../../src/menu/item/menu-item.component.ts","../../../src/menu/item/menu-item.component.html","../../../src/menu/item/name/menu-item-name.component.ts","../../../src/menu/item/name/menu-item-name.component.html","../../../src/menu/menu.component.ts","../../../src/menu/menu.component.html","../../../src/menu/menu.module.ts","../../../src/menu/ngx-tethys-menu.ts"],"sourcesContent":["import { Component, OnInit, HostBinding } from '@angular/core';\n\n/**\n * @name thy-menu-divider,[thy-menu-divider],[thyMenuDivider]\n */\n@Component({\n selector: 'thy-menu-divider,[thy-menu-divider],[thyMenuDivider]',\n templateUrl: './menu-divider.component.html',\n standalone: true\n})\nexport class ThyMenuDivider implements OnInit {\n @HostBinding('class.thy-menu-divider') isThyMenuDivider = true;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<ng-content></ng-content>\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ComponentType } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n inject\n} from '@angular/core';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 菜单分组组件\n * @name thy-menu-group,[thy-menu-group],[thyMenuGroup]\n * @order 30\n */\n@Component({\n selector: 'thy-menu-group,[thy-menu-group],[thyMenuGroup]',\n templateUrl: './menu-group.component.html',\n animations: [\n trigger('detailsContentAnimation', [\n state(\n 'void',\n style({\n height: '*'\n })\n ),\n state(\n '1',\n style({\n height: 0,\n overflow: 'hidden'\n })\n ),\n state(\n '0',\n style({\n height: '*'\n })\n ),\n transition('* => *', animate('0ms ease-out'))\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgClass, NgTemplateOutlet, ThyIcon]\n})\nexport class ThyMenuGroup implements OnInit {\n private popover = inject(ThyPopover);\n\n public _actionMenu: ComponentType<any> | TemplateRef<any>;\n\n public rightIconClass = 'more';\n\n public iconClass = 'folder-bold';\n\n public groupHeaderPaddingLeft = 0;\n\n @ViewChild('thyMenuGroup', { static: true }) _thyMenuGroup: ElementRef;\n\n @ContentChild('headerContent')\n headerContentTemplateRef: TemplateRef<any>;\n\n @HostBinding('class.thy-menu-group') isThyMenuGroup = true;\n\n @HostBinding('class.has-icon') showIcon = false;\n\n @HostBinding('class.collapsed') isCollapsed = false;\n\n /**\n * 分组标题\n */\n @Input() thyTitle = '';\n\n /**\n * 已废弃,请使用 thyCollapsed\n * @deprecated\n */\n @Input({ transform: coerceBooleanProperty })\n set thyExpand(value: boolean) {\n this.isCollapsed = !!!value;\n }\n\n /**\n * 是否处于收起状态\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyCollapsed(value: boolean) {\n this.isCollapsed = value;\n }\n\n /**\n * 是否支持展开收起\n */\n @Input({ transform: coerceBooleanProperty }) thyCollapsible: boolean = false;\n\n /**\n * 是否显示 Icon\n */\n @Input({ transform: coerceBooleanProperty })\n set thyShowIcon(value: boolean) {\n this.showIcon = value;\n }\n\n /**\n * 图标\n */\n @Input('thyIcon')\n set thyIcon(value: string) {\n this.iconClass = value;\n }\n\n /**\n * 操作图标\n */\n @Input('thyActionIcon')\n set thyActionIcon(value: string) {\n this.rightIconClass = value;\n }\n\n /**\n *是否显示操作\n */\n @Input({ transform: coerceBooleanProperty }) thyShowAction = false;\n\n /**\n * 操作阻止冒泡事件\n */\n @Input({ transform: coerceBooleanProperty }) thyActionStopPropagation = true;\n\n /**\n * Action 点击事件\n */\n @Output() thyOnActionClick: EventEmitter<Event> = new EventEmitter<Event>();\n\n @Output() thyCollapsedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /**\n * 设置 Action 菜单\n */\n @Input()\n set thyActionMenu(value: ComponentType<any> | TemplateRef<any>) {\n this._actionMenu = value;\n }\n\n ngOnInit(): void {}\n\n collapseGroup(): void {\n if (!this.thyCollapsible) {\n return;\n }\n this.isCollapsed = !this.isCollapsed;\n this.thyCollapsedChange.emit(this.isCollapsed);\n }\n\n onActionClick(event: Event): void {\n if (this.thyActionStopPropagation) {\n event.stopPropagation();\n }\n if (this._actionMenu) {\n this.popover.open(this._actionMenu, {\n origin: event.currentTarget as HTMLElement,\n insideClosable: true,\n placement: 'bottom'\n });\n } else {\n this.thyOnActionClick.emit(event);\n }\n }\n}\n","<div class=\"thy-menu-group-header\" [ngClass]=\"{ 'thy-menu-group-collapsible': thyCollapsible }\" (click)=\"collapseGroup()\">\n <div class=\"thy-menu-group-header-content\">\n @if (headerContentTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"headerContentTemplateRef\"></ng-template>\n } @else {\n <span class=\"thy-menu-group-title\">\n @if (showIcon) {\n <thy-icon class=\"thy-menu-group-title-icon mr-2\" [thyIconName]=\"iconClass\"></thy-icon>\n }\n <span class=\"thy-menu-group-title-text\">{{ thyTitle }}</span>\n </span>\n }\n </div>\n @if (thyShowAction) {\n <thy-icon\n class=\"thy-menu-group-operation\"\n [thyIconName]=\"rightIconClass\"\n (click)=\"onActionClick($event)\"\n ></thy-icon>\n }\n @if (thyCollapsible) {\n <thy-icon thyIconName=\"angle-up\" class=\"thy-menu-group-arrow\"></thy-icon>\n }\n</div>\n<div class=\"thy-menu-group-body\" #thyMenuGroup [@detailsContentAnimation]=\"isCollapsed\">\n <ng-content></ng-content>\n</div>\n","import { ThyPopover, ThyPopoverConfig } from 'ngx-tethys/popover';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nimport { ComponentType } from '@angular/cdk/portal';\nimport { Component, ElementRef, Input, OnDestroy, Renderer2, TemplateRef, inject } from '@angular/core';\n\n/**\n * 菜单项操作组件\n * @name thy-menu-item-action,[thy-menu-item-action],[thyMenuItemAction]\n * @order 25\n */\n@Component({\n selector: 'thy-menu-item-action,[thy-menu-item-action],[thyMenuItemAction]',\n templateUrl: './menu-item-action.component.html',\n host: {\n class: 'thy-menu-item-action'\n },\n standalone: true\n})\nexport class ThyMenuItemAction implements OnDestroy {\n private popover = inject(ThyPopover);\n private renderer = inject(Renderer2);\n private elementRef = inject(ElementRef);\n\n _boundEvent = false;\n\n _actionMenu: ComponentType<any> | TemplateRef<any>;\n\n /**\n * 设置 Action 菜单\n */\n @Input()\n set thyActionMenu(value: ComponentType<any> | TemplateRef<any>) {\n this._actionMenu = value;\n if (this._actionMenu) {\n this.bindClickEvent();\n }\n }\n\n /**\n * 是否阻止事件冒泡\n */\n @Input({ transform: coerceBooleanProperty }) thyStopPropagation = true;\n\n /**\n * 弹出框的参数\n * @default { placement: \"bottomLeft\", insideClosable: true }\n */\n @Input() thyPopoverOptions: ThyPopoverConfig;\n\n private bindClickEvent() {\n if (this._boundEvent) {\n return;\n }\n this._boundEvent = true;\n this.removeClickListenerFn = this.renderer.listen(this.elementRef.nativeElement, 'click', event => {\n if (this.thyStopPropagation) {\n event.stopPropagation();\n }\n if (this._actionMenu) {\n const activeClass = 'action-active';\n const wrapDOM = (event.target as HTMLElement).closest('.thy-menu-item');\n wrapDOM?.classList.add(activeClass);\n const popoverRef = this.popover.open(\n this._actionMenu,\n Object.assign(\n {\n origin: event.currentTarget as HTMLElement,\n insideClosable: true,\n placement: 'bottomLeft',\n originActiveClass: 'active'\n },\n this.thyPopoverOptions\n )\n );\n popoverRef?.afterClosed().subscribe(() => {\n wrapDOM?.classList.remove(activeClass);\n });\n }\n });\n }\n\n private removeClickListenerFn: VoidFunction | null = null;\n\n ngOnDestroy(): void {\n this.removeClickListenerFn?.();\n }\n}\n","<ng-content></ng-content>\n","import { Component, OnInit, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\n/**\n * 菜单项图标组件\n * @name thy-menu-item-icon,[thy-menu-item-icon],[thyMenuItemIcon]\n * @order 15\n */\n@Component({\n selector: 'thy-menu-item-icon,[thy-menu-item-icon],[thyMenuItemIcon]',\n templateUrl: './menu-item-icon.component.html',\n host: {\n class: 'thy-menu-item-icon'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class ThyMenuItemIcon implements OnInit {\n /**\n * 设置图标颜色\n */\n @Input()\n set thyColor(value: string) {\n if (value) {\n this.hostRenderer.setStyle('color', value);\n }\n }\n\n private hostRenderer = useHostRenderer();\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<ng-content></ng-content>\n","import { Component, OnInit, AfterViewInit, ChangeDetectionStrategy, Input, Renderer2, ElementRef, ViewChild, inject } from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\n/**\n * 菜单项组件\n * @name thy-menu-item,[thy-menu-item],[thyMenuItem]\n * @order 10\n */\n@Component({\n selector: 'thy-menu-item,[thy-menu-item],[thyMenuItem]',\n templateUrl: './menu-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-menu-item'\n },\n standalone: true,\n imports: [ThyIcon]\n})\nexport class ThyMenuItem implements OnInit, AfterViewInit {\n private renderer = inject(Renderer2);\n\n @ViewChild('content', { read: ElementRef }) content: ElementRef<HTMLElement>;\n /**\n * 菜单项的图标\n */\n @Input() thyIcon: string;\n\n ngOnInit(): void {}\n\n ngAfterViewInit() {\n this.wrapSpanForText(this.content.nativeElement.childNodes);\n }\n\n private wrapSpanForText(nodes: NodeList): void {\n nodes.forEach(node => {\n if (node.nodeName === '#text') {\n const span = this.renderer.createElement('span');\n const parent = this.renderer.parentNode(node);\n this.renderer.addClass(span, 'thy-menu-item-name');\n this.renderer.insertBefore(parent, span, node);\n this.renderer.appendChild(span, node);\n }\n });\n }\n}\n","<div class=\"thy-menu-item-content\" #content>\n @if (thyIcon) {\n <thy-icon class=\"thy-menu-item-icon\" [thyIconName]=\"thyIcon\"></thy-icon>\n }\n <ng-content></ng-content>\n</div>\n","import { Component, OnInit, HostBinding, Input } from '@angular/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 菜单项名称\n * @name thy-menu-item-name,[thy-menu-item-name],[thyMenuItemName]\n * @order 20\n */\n@Component({\n selector: 'thy-menu-item-name,[thy-menu-item-name],[thyMenuItemName]',\n templateUrl: './menu-item-name.component.html',\n host: {\n class: 'thy-menu-item-name'\n },\n standalone: true\n})\nexport class ThyMenuItemName implements OnInit {\n /**\n * 是否 ellipsis\n */\n @HostBinding('class.thy-menu-item-name-ellipsis')\n @Input({ transform: coerceBooleanProperty })\n thyOverflowEllipsis = true;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<ng-content></ng-content>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyMenuTheme = 'compact' | 'loose' | 'dark';\n\n/**\n * 菜单组件\n * @name thy-menu,[thy-menu],[thyMenu]\n * @order 5\n */\n@Component({\n selector: 'thy-menu,[thy-menu],[thyMenu]',\n templateUrl: './menu.component.html',\n host: {\n class: 'thy-menu',\n '[class.thy-menu-collapsed]': 'thyCollapsed',\n '[class.thy-menu-theme-loose]': 'theme === \"loose\"',\n '[class.thy-menu-theme-dark]': 'theme === \"dark\"'\n },\n standalone: true\n})\nexport class ThyMenu implements OnInit {\n theme: ThyMenuTheme = 'compact';\n\n /**\n * 主题\n * @type compact | loose\n * @default compact\n */\n @Input() set thyTheme(value: ThyMenuTheme) {\n this.theme = value;\n }\n\n /**\n * 是否收起\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyCollapsed: boolean;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<ng-content></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { ThyMenuDivider } from './divider/menu-divider.component';\nimport { ThyMenuGroup } from './group/menu-group.component';\nimport { ThyMenuItemAction } from './item/action/menu-item-action.component';\nimport { ThyMenuItemIcon } from './item/icon/menu-item-icon.component';\nimport { ThyMenuItem } from './item/menu-item.component';\nimport { ThyMenuItemName } from './item/name/menu-item-name.component';\nimport { ThyMenu } from './menu.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ThyIconModule,\n ThyPopoverModule,\n ThyMenu,\n ThyMenuGroup,\n ThyMenuItem,\n ThyMenuItemName,\n ThyMenuItemIcon,\n ThyMenuItemAction,\n ThyMenuDivider\n ],\n exports: [ThyMenu, ThyMenuGroup, ThyMenuItem, ThyMenuItemName, ThyMenuItemIcon, ThyMenuItemAction, ThyMenuDivider]\n})\nexport class ThyMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|