ngx-tethys 19.0.13 → 19.1.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -2
- package/action/action.component.d.ts +12 -20
- package/action/actions.component.d.ts +5 -7
- package/affix/affix.component.d.ts +7 -10
- package/alert/alert.component.d.ts +1 -1
- package/anchor/anchor-link.component.d.ts +8 -8
- package/anchor/anchor.component.d.ts +15 -21
- package/arrow-switcher/arrow-switcher.component.d.ts +15 -22
- package/autocomplete/autocomplete.component.d.ts +10 -17
- package/autocomplete/autocomplete.trigger.directive.d.ts +10 -18
- package/avatar/avatar-list/avatar-list.component.d.ts +8 -14
- package/avatar/avatar.component.d.ts +25 -39
- package/back-top/back-top.component.d.ts +9 -12
- package/badge/badge.component.d.ts +19 -59
- package/breadcrumb/breadcrumb.component.d.ts +15 -20
- package/button/button-icon.component.d.ts +3 -2
- package/button/button.component.d.ts +3 -2
- package/calendar/calendar-header.component.d.ts +9 -8
- package/calendar/calendar.component.d.ts +16 -16
- package/card/card.component.d.ts +5 -11
- package/card/content.component.d.ts +3 -8
- package/card/header.component.d.ts +7 -8
- package/carousel/carousel.component.d.ts +22 -27
- package/cascader/cascader-li.component.d.ts +13 -21
- package/cascader/cascader-search-option.component.d.ts +8 -16
- package/cascader/cascader.component.d.ts +58 -80
- package/checkbox/checkbox.component.d.ts +2 -5
- package/collapse/collapse-item.component.d.ts +12 -19
- package/collapse/collapse.component.d.ts +6 -12
- package/collapse/collapse.token.d.ts +3 -3
- package/color-picker/color-picker-custom-panel.component.d.ts +5 -5
- package/color-picker/color-picker-panel.component.d.ts +7 -11
- package/color-picker/color-picker.component.d.ts +19 -35
- package/color-picker/parts/alpha/alpha.component.d.ts +8 -8
- package/color-picker/parts/hue/hue.component.d.ts +6 -6
- package/color-picker/parts/indicator/indicator.component.d.ts +4 -3
- package/color-picker/parts/inputs/inputs.component.d.ts +9 -9
- package/color-picker/parts/saturation/saturation.component.d.ts +9 -9
- package/comment/comment.component.d.ts +4 -5
- package/copy/copy.directive.d.ts +8 -9
- package/date-picker/abstract-picker.component.d.ts +8 -7
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +2 -1
- package/date-picker/lib/popups/inner-popup.component.d.ts +2 -1
- package/date-picker/picker.component.d.ts +2 -1
- package/date-range/date-range.component.d.ts +2 -2
- package/dialog/body/dialog-body.component.d.ts +2 -6
- package/dialog/confirm/confirm.component.d.ts +2 -2
- package/dialog/footer/dialog-footer.component.d.ts +6 -9
- package/dialog/header/dialog-header.component.d.ts +9 -11
- package/divider/divider.component.d.ts +12 -16
- package/dot/dot.component.d.ts +5 -13
- package/drag-drop/drag-handle.directive.d.ts +2 -1
- package/drag-drop/drag.directive.d.ts +2 -1
- package/drag-drop/drop-container.directive.d.ts +2 -1
- package/dropdown/dropdown-menu-item.directive.d.ts +3 -2
- package/dropdown/dropdown-menu.component.d.ts +2 -1
- package/dropdown/dropdown.directive.d.ts +2 -1
- package/empty/empty.component.d.ts +21 -27
- package/fesm2022/ngx-tethys-action.mjs +54 -91
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +29 -26
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-anchor.mjs +91 -118
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +51 -77
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +69 -103
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +117 -162
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +33 -46
- package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
- package/fesm2022/ngx-tethys-badge.mjs +104 -208
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +66 -70
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +85 -87
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +72 -77
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +82 -99
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +313 -468
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +10 -17
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-collapse.mjs +66 -71
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +187 -246
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +16 -10
- package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +25 -28
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +81 -82
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +49 -58
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dot.mjs +45 -68
- package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +107 -95
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +161 -200
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +21 -23
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +160 -152
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +25 -25
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +101 -114
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +268 -271
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +1 -1
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +17 -35
- package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
- package/fesm2022/ngx-tethys-mention.mjs +52 -74
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +106 -179
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +169 -201
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +230 -294
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +67 -70
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +196 -244
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +102 -105
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +34 -38
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +46 -28
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +339 -342
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +75 -108
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +26 -46
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-statistic.mjs +114 -151
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +74 -107
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +80 -140
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +1 -1
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +69 -87
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +42 -64
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +104 -129
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +36 -33
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +91 -130
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys-watermark.mjs +36 -40
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/form/form-group-error/form-group-error.component.d.ts +2 -3
- package/form/form-group-label.directive.d.ts +2 -1
- package/form/form-group.component.d.ts +17 -24
- package/form/form-submit.directive.d.ts +2 -2
- package/form/form.directive.d.ts +6 -8
- package/form/from-group-footer/form-group-footer.component.d.ts +2 -2
- package/form/validator/confirm-validator.directive.d.ts +2 -2
- package/form/validator/unique-validator.directive.d.ts +2 -2
- package/fullscreen/fullscreen.component.d.ts +7 -7
- package/grid/flex.d.ts +14 -19
- package/grid/thy-col.directive.d.ts +6 -9
- package/grid/thy-grid-item.component.d.ts +3 -4
- package/grid/thy-grid.component.d.ts +11 -12
- package/grid/thy-row.directive.d.ts +12 -12
- package/icon/icon.component.d.ts +3 -2
- package/image/image.directive.d.ts +3 -2
- package/input/input-count.component.d.ts +4 -5
- package/input/input-group.component.d.ts +20 -20
- package/input/input-search.component.d.ts +15 -20
- package/input/input.component.d.ts +20 -21
- package/input/input.directive.d.ts +4 -6
- package/input-number/input-number.component.d.ts +21 -29
- package/layout/header.component.d.ts +4 -9
- package/layout/sidebar-header.component.d.ts +2 -1
- package/layout/sidebar.component.d.ts +8 -7
- package/list/list.component.d.ts +2 -1
- package/list/selection/selection-list.d.ts +4 -3
- package/loading/loading.component.d.ts +4 -10
- package/mention/mention.directive.d.ts +6 -7
- package/mention/suggestions/suggestions.component.d.ts +8 -9
- package/menu/group/menu-group.component.d.ts +16 -33
- package/menu/item/action/menu-item-action.component.d.ts +7 -8
- package/menu/item/icon/menu-item-icon.component.d.ts +2 -2
- package/menu/item/menu-item.component.d.ts +4 -4
- package/menu/item/name/menu-item-name.component.d.ts +2 -3
- package/menu/menu.component.d.ts +3 -7
- package/nav/icon-nav/icon-nav-link.directive.d.ts +3 -7
- package/nav/icon-nav/icon-nav.component.d.ts +3 -8
- package/nav/nav-ink-bar.directive.d.ts +4 -6
- package/nav/nav-item.directive.d.ts +7 -10
- package/nav/nav.component.d.ts +20 -48
- package/package.json +1 -1
- package/pagination/pagination.component.d.ts +48 -109
- package/popover/header/popover-header.component.d.ts +7 -6
- package/popover/popover.directive.d.ts +11 -18
- package/progress/progress-circle.component.d.ts +32 -21
- package/progress/progress-strip.component.d.ts +10 -14
- package/progress/progress.component.d.ts +15 -23
- package/property/examples/single/single.component.scss +6 -0
- package/property/properties.component.d.ts +6 -13
- package/property/property-item.component.d.ts +21 -26
- package/property/styles/properties.scss +124 -52
- package/property-operation/property-operation.component.d.ts +6 -5
- package/radio/button/radio-button.component.d.ts +2 -2
- package/radio/group/radio-group.component.d.ts +8 -7
- package/radio/radio.component.d.ts +2 -2
- package/radio/radio.token.d.ts +2 -2
- package/rate/rate-item.component.d.ts +2 -1
- package/rate/rate.component.d.ts +4 -3
- package/resizable/resizable.directive.d.ts +4 -9
- package/resizable/resize-handle.component.d.ts +2 -1
- package/resizable/resize-handles.component.d.ts +2 -1
- package/result/result.component.d.ts +9 -10
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/segment-item.component.d.ts +2 -1
- package/segment/segment.component.d.ts +2 -1
- package/select/custom-select/custom-select.component.d.ts +11 -10
- package/select/native-select/native-select.component.d.ts +2 -1
- package/shared/base-form-check.component.d.ts +3 -2
- package/shared/directives/thy-autofocus.directive.d.ts +3 -2
- package/shared/directives/thy-scroll.directive.d.ts +2 -1
- package/shared/directives/thy-show.d.ts +2 -1
- package/shared/option/group/option-group.component.d.ts +2 -1
- package/shared/option/list-option/list-option.component.d.ts +2 -7
- package/shared/option/option.component.d.ts +2 -1
- package/shared/select/select-control/select-control.component.d.ts +7 -6
- package/skeleton/skeleton-circle.component.d.ts +16 -19
- package/skeleton/skeleton-rectangle.component.d.ts +20 -23
- package/skeleton/skeleton.component.d.ts +5 -6
- package/skeleton/stylized/bullet-list.component.d.ts +11 -13
- package/skeleton/stylized/list.component.d.ts +10 -12
- package/skeleton/stylized/paragraph.component.d.ts +12 -14
- package/slide/slide-body/slide-body-section.component.d.ts +2 -1
- package/slider/slider.component.d.ts +17 -24
- package/space/space.component.d.ts +8 -8
- package/statistic/statistic.component.d.ts +35 -40
- package/stepper/step-header.component.d.ts +6 -10
- package/stepper/step.component.d.ts +6 -6
- package/stepper/stepper.component.d.ts +15 -20
- package/switch/switch.component.d.ts +24 -35
- package/table/table-column.component.d.ts +6 -5
- package/table/table-skeleton.component.d.ts +3 -10
- package/table/table.component.d.ts +11 -10
- package/tabs/tab-content.component.d.ts +4 -4
- package/tabs/tab.component.d.ts +4 -5
- package/tabs/tabs.component.d.ts +13 -15
- package/tag/tag.component.d.ts +10 -16
- package/time-picker/time-picker-panel.component.d.ts +3 -2
- package/time-picker/time-picker.component.d.ts +6 -5
- package/timeline/timeline-item.component.d.ts +9 -13
- package/timeline/timeline.component.d.ts +13 -17
- package/tooltip/tooltip.directive.d.ts +3 -2
- package/tree/tree-node.component.d.ts +6 -15
- package/tree/tree.component.d.ts +8 -7
- package/tree-select/tree-select.component.d.ts +8 -7
- package/typography/bg-color.directive.d.ts +3 -3
- package/typography/text/text.component.d.ts +2 -2
- package/typography/text-color.directive.d.ts +3 -3
- package/upload/file-drop.directive.d.ts +9 -11
- package/upload/file-select-base.d.ts +6 -10
- package/upload/file-select.component.d.ts +10 -20
- package/util/helpers/helpers.d.ts +2 -1
- package/vote/vote.component.d.ts +4 -3
- package/watermark/watermark.directive.d.ts +7 -9
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NgClass, NgTemplateOutlet, CommonModule } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { HostBinding, Component, inject,
|
|
3
|
+
import { HostBinding, Component, inject, viewChild, contentChild, input, model, output, ChangeDetectionStrategy, Renderer2, ElementRef, effect, NgModule } from '@angular/core';
|
|
4
4
|
import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
|
|
5
5
|
import { ThyPopover, ThyPopoverModule } from 'ngx-tethys/popover';
|
|
6
6
|
import { trigger, state, transition, style, animate } from '@angular/animations';
|
|
@@ -34,86 +34,69 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
34
34
|
class ThyMenuGroup {
|
|
35
35
|
constructor() {
|
|
36
36
|
this.popover = inject(ThyPopover);
|
|
37
|
-
this.rightIconClass = 'more';
|
|
38
|
-
this.iconClass = 'folder-bold';
|
|
39
37
|
this.groupHeaderPaddingLeft = 0;
|
|
40
|
-
this.
|
|
41
|
-
this.
|
|
42
|
-
this.isCollapsed = false;
|
|
38
|
+
this._thyMenuGroup = viewChild('thyMenuGroup');
|
|
39
|
+
this.headerContentTemplateRef = contentChild('headerContent');
|
|
43
40
|
/**
|
|
44
41
|
* 分组标题
|
|
45
42
|
*/
|
|
46
|
-
this.thyTitle = '';
|
|
43
|
+
this.thyTitle = input('');
|
|
44
|
+
/**
|
|
45
|
+
* 是否处于收起状态
|
|
46
|
+
*/
|
|
47
|
+
this.thyCollapsed = model(false);
|
|
47
48
|
/**
|
|
48
49
|
* 是否支持展开收起
|
|
49
50
|
*/
|
|
50
|
-
this.thyCollapsible = false;
|
|
51
|
+
this.thyCollapsible = input(false, { transform: coerceBooleanProperty });
|
|
52
|
+
/**
|
|
53
|
+
* 是否显示 Icon
|
|
54
|
+
*/
|
|
55
|
+
this.thyShowIcon = input(false, { transform: coerceBooleanProperty });
|
|
56
|
+
/**
|
|
57
|
+
* 图标
|
|
58
|
+
*/
|
|
59
|
+
this.thyIcon = input('folder-bold', {
|
|
60
|
+
transform: (value) => value || 'folder-bold'
|
|
61
|
+
});
|
|
62
|
+
/**
|
|
63
|
+
* 操作图标
|
|
64
|
+
*/
|
|
65
|
+
this.thyActionIcon = input('more', {
|
|
66
|
+
transform: (value) => value || 'more'
|
|
67
|
+
});
|
|
51
68
|
/**
|
|
52
69
|
*是否显示操作
|
|
53
70
|
*/
|
|
54
|
-
this.thyShowAction = false;
|
|
71
|
+
this.thyShowAction = input(false, { transform: coerceBooleanProperty });
|
|
55
72
|
/**
|
|
56
73
|
* 操作阻止冒泡事件
|
|
57
74
|
*/
|
|
58
|
-
this.thyActionStopPropagation = true;
|
|
75
|
+
this.thyActionStopPropagation = input(true, { transform: coerceBooleanProperty });
|
|
59
76
|
/**
|
|
60
77
|
* Action 点击事件
|
|
61
78
|
*/
|
|
62
|
-
this.thyOnActionClick =
|
|
63
|
-
this.thyCollapsedChange =
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
*/
|
|
69
|
-
set thyExpand(value) {
|
|
70
|
-
this.isCollapsed = !!!value;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* 是否处于收起状态
|
|
74
|
-
* @default false
|
|
75
|
-
*/
|
|
76
|
-
set thyCollapsed(value) {
|
|
77
|
-
this.isCollapsed = value;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* 是否显示 Icon
|
|
81
|
-
*/
|
|
82
|
-
set thyShowIcon(value) {
|
|
83
|
-
this.showIcon = value;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* 图标
|
|
87
|
-
*/
|
|
88
|
-
set thyIcon(value) {
|
|
89
|
-
this.iconClass = value;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* 操作图标
|
|
93
|
-
*/
|
|
94
|
-
set thyActionIcon(value) {
|
|
95
|
-
this.rightIconClass = value;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* 设置 Action 菜单
|
|
99
|
-
*/
|
|
100
|
-
set thyActionMenu(value) {
|
|
101
|
-
this._actionMenu = value;
|
|
79
|
+
this.thyOnActionClick = output();
|
|
80
|
+
this.thyCollapsedChange = output();
|
|
81
|
+
/**
|
|
82
|
+
* 设置 Action 菜单
|
|
83
|
+
*/
|
|
84
|
+
this.thyActionMenu = input();
|
|
102
85
|
}
|
|
103
86
|
ngOnInit() { }
|
|
104
87
|
collapseGroup() {
|
|
105
|
-
if (!this.thyCollapsible) {
|
|
88
|
+
if (!this.thyCollapsible()) {
|
|
106
89
|
return;
|
|
107
90
|
}
|
|
108
|
-
this.
|
|
109
|
-
this.thyCollapsedChange.emit(this.
|
|
91
|
+
this.thyCollapsed.set(!this.thyCollapsed());
|
|
92
|
+
this.thyCollapsedChange.emit(this.thyCollapsed());
|
|
110
93
|
}
|
|
111
94
|
onActionClick(event) {
|
|
112
|
-
if (this.thyActionStopPropagation) {
|
|
95
|
+
if (this.thyActionStopPropagation()) {
|
|
113
96
|
event.stopPropagation();
|
|
114
97
|
}
|
|
115
|
-
if (this.
|
|
116
|
-
this.popover.open(this.
|
|
98
|
+
if (this.thyActionMenu()) {
|
|
99
|
+
this.popover.open(this.thyActionMenu(), {
|
|
117
100
|
origin: event.currentTarget,
|
|
118
101
|
insideClosable: true,
|
|
119
102
|
placement: 'bottom'
|
|
@@ -124,7 +107,7 @@ class ThyMenuGroup {
|
|
|
124
107
|
}
|
|
125
108
|
}
|
|
126
109
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMenuGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
127
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ThyMenuGroup, isStandalone: true, selector: "thy-menu-group,[thy-menu-group],[thyMenuGroup]", inputs: { thyTitle: "thyTitle",
|
|
110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ThyMenuGroup, isStandalone: true, selector: "thy-menu-group,[thy-menu-group],[thyMenuGroup]", inputs: { thyTitle: { classPropertyName: "thyTitle", publicName: "thyTitle", isSignal: true, isRequired: false, transformFunction: null }, thyCollapsed: { classPropertyName: "thyCollapsed", publicName: "thyCollapsed", isSignal: true, isRequired: false, transformFunction: null }, thyCollapsible: { classPropertyName: "thyCollapsible", publicName: "thyCollapsible", isSignal: true, isRequired: false, transformFunction: null }, thyShowIcon: { classPropertyName: "thyShowIcon", publicName: "thyShowIcon", isSignal: true, isRequired: false, transformFunction: null }, thyIcon: { classPropertyName: "thyIcon", publicName: "thyIcon", isSignal: true, isRequired: false, transformFunction: null }, thyActionIcon: { classPropertyName: "thyActionIcon", publicName: "thyActionIcon", isSignal: true, isRequired: false, transformFunction: null }, thyShowAction: { classPropertyName: "thyShowAction", publicName: "thyShowAction", isSignal: true, isRequired: false, transformFunction: null }, thyActionStopPropagation: { classPropertyName: "thyActionStopPropagation", publicName: "thyActionStopPropagation", isSignal: true, isRequired: false, transformFunction: null }, thyActionMenu: { classPropertyName: "thyActionMenu", publicName: "thyActionMenu", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyCollapsed: "thyCollapsedChange", thyOnActionClick: "thyOnActionClick", thyCollapsedChange: "thyCollapsedChange" }, host: { properties: { "class.thy-menu-group": "true", "class.collapsed": "thyCollapsed()", "class.has-icon": "thyShowIcon()" } }, queries: [{ propertyName: "headerContentTemplateRef", first: true, predicate: ["headerContent"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "_thyMenuGroup", first: true, predicate: ["thyMenuGroup"], descendants: true, isSignal: 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 (thyShowIcon()) {\n <thy-icon class=\"thy-menu-group-title-icon mr-2\" [thyIconName]=\"thyIcon()\"></thy-icon>\n }\n <span class=\"thy-menu-group-title-text\">{{ thyTitle() }}</span>\n </span>\n }\n </div>\n @if (thyShowAction()) {\n <thy-icon class=\"thy-menu-group-operation\" [thyIconName]=\"thyActionIcon()\" (click)=\"onActionClick($event)\"></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]=\"thyCollapsed()\">\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
111
|
trigger('detailsContentAnimation', [
|
|
129
112
|
state('void', style({
|
|
130
113
|
height: '*'
|
|
@@ -156,55 +139,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
156
139
|
})),
|
|
157
140
|
transition('* => *', animate('0ms ease-out'))
|
|
158
141
|
])
|
|
159
|
-
],
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
args: ['headerContent']
|
|
166
|
-
}], isThyMenuGroup: [{
|
|
167
|
-
type: HostBinding,
|
|
168
|
-
args: ['class.thy-menu-group']
|
|
169
|
-
}], showIcon: [{
|
|
170
|
-
type: HostBinding,
|
|
171
|
-
args: ['class.has-icon']
|
|
172
|
-
}], isCollapsed: [{
|
|
173
|
-
type: HostBinding,
|
|
174
|
-
args: ['class.collapsed']
|
|
175
|
-
}], thyTitle: [{
|
|
176
|
-
type: Input
|
|
177
|
-
}], thyExpand: [{
|
|
178
|
-
type: Input,
|
|
179
|
-
args: [{ transform: coerceBooleanProperty }]
|
|
180
|
-
}], thyCollapsed: [{
|
|
181
|
-
type: Input,
|
|
182
|
-
args: [{ transform: coerceBooleanProperty }]
|
|
183
|
-
}], thyCollapsible: [{
|
|
184
|
-
type: Input,
|
|
185
|
-
args: [{ transform: coerceBooleanProperty }]
|
|
186
|
-
}], thyShowIcon: [{
|
|
187
|
-
type: Input,
|
|
188
|
-
args: [{ transform: coerceBooleanProperty }]
|
|
189
|
-
}], thyIcon: [{
|
|
190
|
-
type: Input,
|
|
191
|
-
args: ['thyIcon']
|
|
192
|
-
}], thyActionIcon: [{
|
|
193
|
-
type: Input,
|
|
194
|
-
args: ['thyActionIcon']
|
|
195
|
-
}], thyShowAction: [{
|
|
196
|
-
type: Input,
|
|
197
|
-
args: [{ transform: coerceBooleanProperty }]
|
|
198
|
-
}], thyActionStopPropagation: [{
|
|
199
|
-
type: Input,
|
|
200
|
-
args: [{ transform: coerceBooleanProperty }]
|
|
201
|
-
}], thyOnActionClick: [{
|
|
202
|
-
type: Output
|
|
203
|
-
}], thyCollapsedChange: [{
|
|
204
|
-
type: Output
|
|
205
|
-
}], thyActionMenu: [{
|
|
206
|
-
type: Input
|
|
207
|
-
}] } });
|
|
142
|
+
], host: {
|
|
143
|
+
'[class.thy-menu-group]': 'true',
|
|
144
|
+
'[class.collapsed]': 'thyCollapsed()',
|
|
145
|
+
'[class.has-icon]': 'thyShowIcon()'
|
|
146
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgClass, NgTemplateOutlet, ThyIcon], 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 (thyShowIcon()) {\n <thy-icon class=\"thy-menu-group-title-icon mr-2\" [thyIconName]=\"thyIcon()\"></thy-icon>\n }\n <span class=\"thy-menu-group-title-text\">{{ thyTitle() }}</span>\n </span>\n }\n </div>\n @if (thyShowAction()) {\n <thy-icon class=\"thy-menu-group-operation\" [thyIconName]=\"thyActionIcon()\" (click)=\"onActionClick($event)\"></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]=\"thyCollapsed()\">\n <ng-content></ng-content>\n</div>\n" }]
|
|
147
|
+
}], ctorParameters: () => [] });
|
|
208
148
|
|
|
209
149
|
/**
|
|
210
150
|
* 菜单项操作组件
|
|
@@ -217,65 +157,61 @@ class ThyMenuItemAction {
|
|
|
217
157
|
this.renderer = inject(Renderer2);
|
|
218
158
|
this.elementRef = inject(ElementRef);
|
|
219
159
|
this._boundEvent = false;
|
|
160
|
+
/**
|
|
161
|
+
* 设置 Action 菜单
|
|
162
|
+
*/
|
|
163
|
+
this.thyActionMenu = input();
|
|
220
164
|
/**
|
|
221
165
|
* 是否阻止事件冒泡
|
|
222
166
|
*/
|
|
223
|
-
this.thyStopPropagation = true;
|
|
167
|
+
this.thyStopPropagation = input(true, { transform: coerceBooleanProperty });
|
|
168
|
+
/**
|
|
169
|
+
* 弹出框的参数
|
|
170
|
+
* @default { placement: "bottomLeft", insideClosable: true }
|
|
171
|
+
*/
|
|
172
|
+
this.thyPopoverOptions = input();
|
|
224
173
|
this.removeClickListenerFn = null;
|
|
225
174
|
}
|
|
226
|
-
/**
|
|
227
|
-
* 设置 Action 菜单
|
|
228
|
-
*/
|
|
229
|
-
set thyActionMenu(value) {
|
|
230
|
-
this._actionMenu = value;
|
|
231
|
-
if (this._actionMenu) {
|
|
232
|
-
this.bindClickEvent();
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
175
|
bindClickEvent() {
|
|
236
176
|
if (this._boundEvent) {
|
|
237
177
|
return;
|
|
238
178
|
}
|
|
239
179
|
this._boundEvent = true;
|
|
240
180
|
this.removeClickListenerFn = this.renderer.listen(this.elementRef.nativeElement, 'click', event => {
|
|
241
|
-
if (this.thyStopPropagation) {
|
|
181
|
+
if (this.thyStopPropagation()) {
|
|
242
182
|
event.stopPropagation();
|
|
243
183
|
}
|
|
244
|
-
if (this.
|
|
184
|
+
if (this.thyActionMenu()) {
|
|
245
185
|
const activeClass = 'action-active';
|
|
246
186
|
const wrapDOM = event.target.closest('.thy-menu-item');
|
|
247
187
|
wrapDOM?.classList.add(activeClass);
|
|
248
|
-
const popoverRef = this.popover.open(this.
|
|
188
|
+
const popoverRef = this.popover.open(this.thyActionMenu(), Object.assign({
|
|
249
189
|
origin: event.currentTarget,
|
|
250
190
|
insideClosable: true,
|
|
251
191
|
placement: 'bottomLeft',
|
|
252
192
|
originActiveClass: 'active'
|
|
253
|
-
}, this.thyPopoverOptions));
|
|
193
|
+
}, this.thyPopoverOptions()));
|
|
254
194
|
popoverRef?.afterClosed().subscribe(() => {
|
|
255
195
|
wrapDOM?.classList.remove(activeClass);
|
|
256
196
|
});
|
|
257
197
|
}
|
|
258
198
|
});
|
|
259
199
|
}
|
|
200
|
+
ngOnInit() {
|
|
201
|
+
this.bindClickEvent();
|
|
202
|
+
}
|
|
260
203
|
ngOnDestroy() {
|
|
261
204
|
this.removeClickListenerFn?.();
|
|
262
205
|
}
|
|
263
206
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMenuItemAction, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
264
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
207
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.8", type: ThyMenuItemAction, isStandalone: true, selector: "thy-menu-item-action,[thy-menu-item-action],[thyMenuItemAction]", inputs: { thyActionMenu: { classPropertyName: "thyActionMenu", publicName: "thyActionMenu", isSignal: true, isRequired: false, transformFunction: null }, thyStopPropagation: { classPropertyName: "thyStopPropagation", publicName: "thyStopPropagation", isSignal: true, isRequired: false, transformFunction: null }, thyPopoverOptions: { classPropertyName: "thyPopoverOptions", publicName: "thyPopoverOptions", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "thy-menu-item-action" }, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
|
|
265
208
|
}
|
|
266
209
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMenuItemAction, decorators: [{
|
|
267
210
|
type: Component,
|
|
268
211
|
args: [{ selector: 'thy-menu-item-action,[thy-menu-item-action],[thyMenuItemAction]', host: {
|
|
269
212
|
class: 'thy-menu-item-action'
|
|
270
213
|
}, template: "<ng-content></ng-content>\n" }]
|
|
271
|
-
}]
|
|
272
|
-
type: Input
|
|
273
|
-
}], thyStopPropagation: [{
|
|
274
|
-
type: Input,
|
|
275
|
-
args: [{ transform: coerceBooleanProperty }]
|
|
276
|
-
}], thyPopoverOptions: [{
|
|
277
|
-
type: Input
|
|
278
|
-
}] } });
|
|
214
|
+
}] });
|
|
279
215
|
|
|
280
216
|
/**
|
|
281
217
|
* 菜单项图标组件
|
|
@@ -283,29 +219,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
283
219
|
* @order 15
|
|
284
220
|
*/
|
|
285
221
|
class ThyMenuItemIcon {
|
|
286
|
-
/**
|
|
287
|
-
* 设置图标颜色
|
|
288
|
-
*/
|
|
289
|
-
set thyColor(value) {
|
|
290
|
-
if (value) {
|
|
291
|
-
this.hostRenderer.setStyle('color', value);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
222
|
constructor() {
|
|
223
|
+
/**
|
|
224
|
+
* 设置图标颜色
|
|
225
|
+
*/
|
|
226
|
+
this.thyColor = input();
|
|
295
227
|
this.hostRenderer = useHostRenderer();
|
|
228
|
+
effect(() => {
|
|
229
|
+
if (this.thyColor()) {
|
|
230
|
+
this.hostRenderer.setStyle('color', this.thyColor());
|
|
231
|
+
}
|
|
232
|
+
});
|
|
296
233
|
}
|
|
297
234
|
ngOnInit() { }
|
|
298
235
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMenuItemIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
299
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
236
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.8", type: ThyMenuItemIcon, isStandalone: true, selector: "thy-menu-item-icon,[thy-menu-item-icon],[thyMenuItemIcon]", inputs: { thyColor: { classPropertyName: "thyColor", publicName: "thyColor", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "thy-menu-item-icon" }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
300
237
|
}
|
|
301
238
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMenuItemIcon, decorators: [{
|
|
302
239
|
type: Component,
|
|
303
240
|
args: [{ selector: 'thy-menu-item-icon,[thy-menu-item-icon],[thyMenuItemIcon]', host: {
|
|
304
241
|
class: 'thy-menu-item-icon'
|
|
305
242
|
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
|
|
306
|
-
}], ctorParameters: () => []
|
|
307
|
-
type: Input
|
|
308
|
-
}] } });
|
|
243
|
+
}], ctorParameters: () => [] });
|
|
309
244
|
|
|
310
245
|
/**
|
|
311
246
|
* 菜单项组件
|
|
@@ -315,10 +250,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
315
250
|
class ThyMenuItem {
|
|
316
251
|
constructor() {
|
|
317
252
|
this.renderer = inject(Renderer2);
|
|
253
|
+
this.content = viewChild('content', { read: ElementRef });
|
|
254
|
+
/**
|
|
255
|
+
* 菜单项的图标
|
|
256
|
+
*/
|
|
257
|
+
this.thyIcon = input();
|
|
318
258
|
}
|
|
319
259
|
ngOnInit() { }
|
|
320
260
|
ngAfterViewInit() {
|
|
321
|
-
this.wrapSpanForText(this.content.nativeElement.childNodes);
|
|
261
|
+
this.wrapSpanForText(this.content().nativeElement.childNodes);
|
|
322
262
|
}
|
|
323
263
|
wrapSpanForText(nodes) {
|
|
324
264
|
nodes.forEach(node => {
|
|
@@ -332,19 +272,14 @@ class ThyMenuItem {
|
|
|
332
272
|
});
|
|
333
273
|
}
|
|
334
274
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMenuItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
335
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", 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 }); }
|
|
275
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ThyMenuItem, isStandalone: true, selector: "thy-menu-item,[thy-menu-item],[thyMenuItem]", inputs: { thyIcon: { classPropertyName: "thyIcon", publicName: "thyIcon", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "thy-menu-item" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ElementRef, isSignal: true }], 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
276
|
}
|
|
337
277
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMenuItem, decorators: [{
|
|
338
278
|
type: Component,
|
|
339
279
|
args: [{ selector: 'thy-menu-item,[thy-menu-item],[thyMenuItem]', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
340
280
|
class: 'thy-menu-item'
|
|
341
|
-
}, imports: [ThyIcon], 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" }]
|
|
342
|
-
}]
|
|
343
|
-
type: ViewChild,
|
|
344
|
-
args: ['content', { read: ElementRef }]
|
|
345
|
-
}], thyIcon: [{
|
|
346
|
-
type: Input
|
|
347
|
-
}] } });
|
|
281
|
+
}, imports: [ThyIcon], 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" }]
|
|
282
|
+
}] });
|
|
348
283
|
|
|
349
284
|
/**
|
|
350
285
|
* 菜单项名称
|
|
@@ -356,24 +291,19 @@ class ThyMenuItemName {
|
|
|
356
291
|
/**
|
|
357
292
|
* 是否 ellipsis
|
|
358
293
|
*/
|
|
359
|
-
this.thyOverflowEllipsis = true;
|
|
294
|
+
this.thyOverflowEllipsis = input(true, { transform: coerceBooleanProperty });
|
|
360
295
|
}
|
|
361
296
|
ngOnInit() { }
|
|
362
297
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMenuItemName, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
363
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
298
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.8", type: ThyMenuItemName, isStandalone: true, selector: "thy-menu-item-name,[thy-menu-item-name],[thyMenuItemName]", inputs: { thyOverflowEllipsis: { classPropertyName: "thyOverflowEllipsis", publicName: "thyOverflowEllipsis", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-menu-item-name-ellipsis": "thyOverflowEllipsis()" }, classAttribute: "thy-menu-item-name" }, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
|
|
364
299
|
}
|
|
365
300
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMenuItemName, decorators: [{
|
|
366
301
|
type: Component,
|
|
367
302
|
args: [{ selector: 'thy-menu-item-name,[thy-menu-item-name],[thyMenuItemName]', host: {
|
|
368
|
-
class: 'thy-menu-item-name'
|
|
303
|
+
class: 'thy-menu-item-name',
|
|
304
|
+
'[class.thy-menu-item-name-ellipsis]': 'thyOverflowEllipsis()'
|
|
369
305
|
}, template: "<ng-content></ng-content>\n" }]
|
|
370
|
-
}], ctorParameters: () => []
|
|
371
|
-
type: HostBinding,
|
|
372
|
-
args: ['class.thy-menu-item-name-ellipsis']
|
|
373
|
-
}, {
|
|
374
|
-
type: Input,
|
|
375
|
-
args: [{ transform: coerceBooleanProperty }]
|
|
376
|
-
}] } });
|
|
306
|
+
}], ctorParameters: () => [] });
|
|
377
307
|
|
|
378
308
|
/**
|
|
379
309
|
* 菜单组件
|
|
@@ -381,35 +311,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
381
311
|
* @order 5
|
|
382
312
|
*/
|
|
383
313
|
class ThyMenu {
|
|
384
|
-
/**
|
|
385
|
-
* 主题
|
|
386
|
-
* @type compact | loose
|
|
387
|
-
* @default compact
|
|
388
|
-
*/
|
|
389
|
-
set thyTheme(value) {
|
|
390
|
-
this.theme = value;
|
|
391
|
-
}
|
|
392
314
|
constructor() {
|
|
393
|
-
|
|
315
|
+
/**
|
|
316
|
+
* 主题
|
|
317
|
+
* @type compact | loose
|
|
318
|
+
*/
|
|
319
|
+
this.thyTheme = input('compact', {
|
|
320
|
+
transform: (value) => value || 'compact'
|
|
321
|
+
});
|
|
322
|
+
/**
|
|
323
|
+
* 是否收起
|
|
324
|
+
*/
|
|
325
|
+
this.thyCollapsed = input(false, { transform: coerceBooleanProperty });
|
|
394
326
|
}
|
|
395
327
|
ngOnInit() { }
|
|
396
328
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMenu, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
397
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
329
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.8", type: ThyMenu, isStandalone: true, selector: "thy-menu,[thy-menu],[thyMenu]", inputs: { thyTheme: { classPropertyName: "thyTheme", publicName: "thyTheme", isSignal: true, isRequired: false, transformFunction: null }, thyCollapsed: { classPropertyName: "thyCollapsed", publicName: "thyCollapsed", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-menu-collapsed": "thyCollapsed()", "class.thy-menu-theme-loose": "thyTheme() === \"loose\"", "class.thy-menu-theme-dark": "thyTheme() === \"dark\"" }, classAttribute: "thy-menu" }, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
|
|
398
330
|
}
|
|
399
331
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMenu, decorators: [{
|
|
400
332
|
type: Component,
|
|
401
333
|
args: [{ selector: 'thy-menu,[thy-menu],[thyMenu]', host: {
|
|
402
334
|
class: 'thy-menu',
|
|
403
|
-
'[class.thy-menu-collapsed]': 'thyCollapsed',
|
|
404
|
-
'[class.thy-menu-theme-loose]': '
|
|
405
|
-
'[class.thy-menu-theme-dark]': '
|
|
335
|
+
'[class.thy-menu-collapsed]': 'thyCollapsed()',
|
|
336
|
+
'[class.thy-menu-theme-loose]': 'thyTheme() === "loose"',
|
|
337
|
+
'[class.thy-menu-theme-dark]': 'thyTheme() === "dark"'
|
|
406
338
|
}, template: "<ng-content></ng-content>\n" }]
|
|
407
|
-
}], ctorParameters: () => []
|
|
408
|
-
type: Input
|
|
409
|
-
}], thyCollapsed: [{
|
|
410
|
-
type: Input,
|
|
411
|
-
args: [{ transform: coerceBooleanProperty }]
|
|
412
|
-
}] } });
|
|
339
|
+
}], ctorParameters: () => [] });
|
|
413
340
|
|
|
414
341
|
class ThyMenuModule {
|
|
415
342
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -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})\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 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})\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})\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 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})\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})\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":";;;;;;;;;AAEA;;AAEG;MAKU,cAAc,CAAA;AAGvB,IAAA,WAAA,GAAA;QAFuC,IAAgB,CAAA,gBAAA,GAAG,IAAI;;AAI9D,IAAA,QAAQ;8GALC,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,6LCT3B,6BACA,EAAA,CAAA,CAAA;;2FDQa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;+BACI,sDAAsD,EAAA,QAAA,EAAA,6BAAA,EAAA;wDAIzB,gBAAgB,EAAA,CAAA;sBAAtD,WAAW;uBAAC,wBAAwB;;;AEWzC;;;;AAIG;MA+BU,YAAY,CAAA;AA9BzB,IAAA,WAAA,GAAA;AA+BY,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;QAI7B,IAAc,CAAA,cAAA,GAAG,MAAM;QAEvB,IAAS,CAAA,SAAA,GAAG,aAAa;QAEzB,IAAsB,CAAA,sBAAA,GAAG,CAAC;QAOI,IAAc,CAAA,cAAA,GAAG,IAAI;QAE3B,IAAQ,CAAA,QAAA,GAAG,KAAK;QAEf,IAAW,CAAA,WAAA,GAAG,KAAK;AAEnD;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,EAAE;AAoBtB;;AAEG;QAC0C,IAAc,CAAA,cAAA,GAAY,KAAK;AA0B5E;;AAEG;QAC0C,IAAa,CAAA,aAAA,GAAG,KAAK;AAElE;;AAEG;QAC0C,IAAwB,CAAA,wBAAA,GAAG,IAAI;AAE5E;;AAEG;AACO,QAAA,IAAA,CAAA,gBAAgB,GAAwB,IAAI,YAAY,EAAS;AAEjE,QAAA,IAAA,CAAA,kBAAkB,GAA0B,IAAI,YAAY,EAAW;AAkCpF;AAhGG;;;AAGG;IACH,IACI,SAAS,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,KAAK;;AAG/B;;;AAGG;IACH,IACI,YAAY,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;;AAQ5B;;AAEG;IACH,IACI,WAAW,CAAC,KAAc,EAAA;AAC1B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;;AAGzB;;AAEG;IACH,IACI,OAAO,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;AAG1B;;AAEG;IACH,IACI,aAAa,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;;AAoB/B;;AAEG;IACH,IACI,aAAa,CAAC,KAA4C,EAAA;AAC1D,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;;AAG5B,IAAA,QAAQ;IAER,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB;;AAEJ,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;QACpC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;;AAGlD,IAAA,aAAa,CAAC,KAAY,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;YAC/B,KAAK,CAAC,eAAe,EAAE;;AAE3B,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBAChC,MAAM,EAAE,KAAK,CAAC,aAA4B;AAC1C,gBAAA,cAAc,EAAE,IAAI;AACpB,gBAAA,SAAS,EAAE;AACd,aAAA,CAAC;;aACC;AACH,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;;;8GAxHhC,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gDAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EA+BD,qBAAqB,CASrB,EAAA,YAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAAA,qBAAqB,wDAQrB,qBAAqB,CAAA,EAAA,WAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAKrB,qBAAqB,CAwBrB,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAAA,qBAAqB,sFAKrB,qBAAqB,CAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,0BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1I7C,qhCA2BA,ED2Bc,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAzBhC,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACR,OAAO,CAAC,yBAAyB,EAAE;AAC/B,gBAAA,KAAK,CACD,MAAM,EACN,KAAK,CAAC;AACF,oBAAA,MAAM,EAAE;AACX,iBAAA,CAAC,CACL;AACD,gBAAA,KAAK,CACD,GAAG,EACH,KAAK,CAAC;AACF,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,QAAQ,EAAE;AACb,iBAAA,CAAC,CACL;AACD,gBAAA,KAAK,CACD,GAAG,EACH,KAAK,CAAC;AACF,oBAAA,MAAM,EAAE;AACX,iBAAA,CAAC,CACL;AACD,gBAAA,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC;aAC/C;AACJ,SAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAIQ,YAAY,EAAA,UAAA,EAAA,CAAA;kBA9BxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gDAAgD,EAE9C,UAAA,EAAA;wBACR,OAAO,CAAC,yBAAyB,EAAE;AAC/B,4BAAA,KAAK,CACD,MAAM,EACN,KAAK,CAAC;AACF,gCAAA,MAAM,EAAE;AACX,6BAAA,CAAC,CACL;AACD,4BAAA,KAAK,CACD,GAAG,EACH,KAAK,CAAC;AACF,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,QAAQ,EAAE;AACb,6BAAA,CAAC,CACL;AACD,4BAAA,KAAK,CACD,GAAG,EACH,KAAK,CAAC;AACF,gCAAA,MAAM,EAAE;AACX,6BAAA,CAAC,CACL;AACD,4BAAA,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC;yBAC/C;qBACJ,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,qhCAAA,EAAA;8BAaA,aAAa,EAAA,CAAA;sBAAzD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAG3C,wBAAwB,EAAA,CAAA;sBADvB,YAAY;uBAAC,eAAe;gBAGQ,cAAc,EAAA,CAAA;sBAAlD,WAAW;uBAAC,sBAAsB;gBAEJ,QAAQ,EAAA,CAAA;sBAAtC,WAAW;uBAAC,gBAAgB;gBAEG,WAAW,EAAA,CAAA;sBAA1C,WAAW;uBAAC,iBAAiB;gBAKrB,QAAQ,EAAA,CAAA;sBAAhB;gBAOG,SAAS,EAAA,CAAA;sBADZ,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE;gBAUvC,YAAY,EAAA,CAAA;sBADf,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE;gBAQE,cAAc,EAAA,CAAA;sBAA1D,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE;gBAMvC,WAAW,EAAA,CAAA;sBADd,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE;gBASvC,OAAO,EAAA,CAAA;sBADV,KAAK;uBAAC,SAAS;gBASZ,aAAa,EAAA,CAAA;sBADhB,KAAK;uBAAC,eAAe;gBAQuB,aAAa,EAAA,CAAA;sBAAzD,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE;gBAKE,wBAAwB,EAAA,CAAA;sBAApE,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE;gBAKjC,gBAAgB,EAAA,CAAA;sBAAzB;gBAES,kBAAkB,EAAA,CAAA;sBAA3B;gBAMG,aAAa,EAAA,CAAA;sBADhB;;;AEhJL;;;;AAIG;MAQU,iBAAiB,CAAA;AAP9B,IAAA,WAAA,GAAA;AAQY,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAEvC,IAAW,CAAA,WAAA,GAAG,KAAK;AAenB;;AAEG;QAC0C,IAAkB,CAAA,kBAAA,GAAG,IAAI;QAwC9D,IAAqB,CAAA,qBAAA,GAAwB,IAAI;AAK5D;AA3DG;;AAEG;IACH,IACI,aAAa,CAAC,KAA4C,EAAA;AAC1D,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,cAAc,EAAE;;;IAerB,cAAc,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB;;AAEJ,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,IAAG;AAC9F,YAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,KAAK,CAAC,eAAe,EAAE;;AAE3B,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,MAAM,WAAW,GAAG,eAAe;gBACnC,MAAM,OAAO,GAAI,KAAK,CAAC,MAAsB,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACvE,gBAAA,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC;AACnC,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAChC,IAAI,CAAC,WAAW,EAChB,MAAM,CAAC,MAAM,CACT;oBACI,MAAM,EAAE,KAAK,CAAC,aAA4B;AAC1C,oBAAA,cAAc,EAAE,IAAI;AACpB,oBAAA,SAAS,EAAE,YAAY;AACvB,oBAAA,iBAAiB,EAAE;AACtB,iBAAA,EACD,IAAI,CAAC,iBAAiB,CACzB,CACJ;AACD,gBAAA,UAAU,EAAE,WAAW,EAAE,CAAC,SAAS,CAAC,MAAK;AACrC,oBAAA,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;AAC1C,iBAAC,CAAC;;AAEV,SAAC,CAAC;;IAKN,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,qBAAqB,IAAI;;8GAlEzB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iEAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAuBN,qBAAqB,CAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzC7C,6BACA,EAAA,CAAA,CAAA;;2FDiBa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iEAAiE,EAErE,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE;AACV,qBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA;8BAeG,aAAa,EAAA,CAAA;sBADhB;gBAW4C,kBAAkB,EAAA,CAAA;sBAA9D,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE;gBAMlC,iBAAiB,EAAA,CAAA;sBAAzB;;;AE5CL;;;;AAIG;MASU,eAAe,CAAA;AACxB;;AAEG;IACH,IACI,QAAQ,CAAC,KAAa,EAAA;QACtB,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;;;AAMlD,IAAA,WAAA,GAAA;QAFQ,IAAY,CAAA,YAAA,GAAG,eAAe,EAAE;;AAIxC,IAAA,QAAQ;8GAfC,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,uMChB5B,6BACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDea,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2DAA2D,EAE/D,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE;qBACV,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA;wDAO3C,QAAQ,EAAA,CAAA;sBADX;;;AEjBL;;;;AAIG;MAUU,WAAW,CAAA;AATxB,IAAA,WAAA,GAAA;AAUY,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAyBvC;AAjBG,IAAA,QAAQ;IAER,eAAe,GAAA;QACX,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;;AAGvD,IAAA,eAAe,CAAC,KAAe,EAAA;AACnC,QAAA,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;AACjB,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;gBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;gBAChD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC7C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;gBAClD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;gBAC9C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;;AAE7C,SAAC,CAAC;;8GAxBG,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAGU,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,ECpB5C,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iMAMA,4CDSc,OAAO,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAER,WAAW,EAAA,UAAA,EAAA,CAAA;kBATvB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6CAA6C,EAEtC,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE;qBACV,EACQ,OAAA,EAAA,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,iMAAA,EAAA;8BAK0B,OAAO,EAAA,CAAA;sBAAlD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;gBAIjC,OAAO,EAAA,CAAA;sBAAf;;;AErBL;;;;AAIG;MAQU,eAAe,CAAA;AAQxB,IAAA,WAAA,GAAA;AAPA;;AAEG;QAGH,IAAmB,CAAA,mBAAA,GAAG,IAAI;;AAI1B,IAAA,QAAQ;8GAVC,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2DAAA,EAAA,MAAA,EAAA,EAAA,mBAAA,EAAA,CAAA,qBAAA,EAAA,qBAAA,EAKJ,qBAAqB,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mCAAA,EAAA,0BAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpB7C,6BACA,EAAA,CAAA,CAAA;;2FDca,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2DAA2D,EAE/D,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE;AACV,qBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA;wDAQD,mBAAmB,EAAA,CAAA;sBAFlB,WAAW;uBAAC,mCAAmC;;sBAC/C,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE;;;AEf/C;;;;AAIG;MAWU,OAAO,CAAA;AAGhB;;;;AAIG;IACH,IAAa,QAAQ,CAAC,KAAmB,EAAA;AACrC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAStB,IAAA,WAAA,GAAA;QAjBA,IAAK,CAAA,KAAA,GAAiB,SAAS;;AAmB/B,IAAA,QAAQ;8GApBC,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAP,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAgBI,qBAAqB,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,0BAAA,EAAA,cAAA,EAAA,4BAAA,EAAA,qBAAA,EAAA,2BAAA,EAAA,oBAAA,EAAA,EAAA,cAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpC7C,6BACA,EAAA,CAAA,CAAA;;2FDmBa,OAAO,EAAA,UAAA,EAAA,CAAA;kBAVnB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,EAEnC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,UAAU;AACjB,wBAAA,4BAA4B,EAAE,cAAc;AAC5C,wBAAA,8BAA8B,EAAE,mBAAmB;AACnD,wBAAA,6BAA6B,EAAE;AAClC,qBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA;wDAUY,QAAQ,EAAA,CAAA;sBAApB;gBAQ4C,YAAY,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE;;;METlC,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAblB,YAAY;YACZ,aAAa;YACb,gBAAgB;YAChB,OAAO;YACP,YAAY;YACZ,WAAW;YACX,eAAe;YACf,eAAe;YACf,iBAAiB;AACjB,YAAA,cAAc,CAER,EAAA,OAAA,EAAA,CAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA;AAExG,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAblB,YAAY;YACZ,aAAa;YACb,gBAAgB;YAEhB,YAAY;YACZ,WAAW,CAAA,EAAA,CAAA,CAAA;;2FAQN,aAAa,EAAA,UAAA,EAAA,CAAA;kBAfzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,aAAa;wBACb,gBAAgB;wBAChB,OAAO;wBACP,YAAY;wBACZ,WAAW;wBACX,eAAe;wBACf,eAAe;wBACf,iBAAiB;wBACjB;AACH,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc;AACpH,iBAAA;;;AC1BD;;AAEG;;;;"}
|
|
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})\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 { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ModelSignal,\n OnInit,\n TemplateRef,\n contentChild,\n inject,\n input,\n model,\n output,\n viewChild\n} from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyPopover } from 'ngx-tethys/popover';\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 host: {\n '[class.thy-menu-group]': 'true',\n '[class.collapsed]': 'thyCollapsed()',\n '[class.has-icon]': 'thyShowIcon()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, NgTemplateOutlet, ThyIcon]\n})\nexport class ThyMenuGroup implements OnInit {\n private popover = inject(ThyPopover);\n\n public groupHeaderPaddingLeft = 0;\n\n readonly _thyMenuGroup = viewChild<ElementRef>('thyMenuGroup');\n\n readonly headerContentTemplateRef = contentChild<TemplateRef<any>>('headerContent');\n\n /**\n * 分组标题\n */\n readonly thyTitle = input<string>('');\n\n /**\n * 是否处于收起状态\n */\n readonly thyCollapsed: ModelSignal<boolean> = model(false);\n\n /**\n * 是否支持展开收起\n */\n readonly thyCollapsible = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否显示 Icon\n */\n readonly thyShowIcon = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 图标\n */\n readonly thyIcon = input<string, string>('folder-bold', {\n transform: (value: string) => value || 'folder-bold'\n });\n\n /**\n * 操作图标\n */\n readonly thyActionIcon = input<string, string>('more', {\n transform: (value: string) => value || 'more'\n });\n\n /**\n *是否显示操作\n */\n readonly thyShowAction = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 操作阻止冒泡事件\n */\n readonly thyActionStopPropagation = input(true, { transform: coerceBooleanProperty });\n\n /**\n * Action 点击事件\n */\n readonly thyOnActionClick = output<Event>();\n\n readonly thyCollapsedChange = output<boolean>();\n\n /**\n * 设置 Action 菜单\n */\n readonly thyActionMenu = input<ComponentType<any> | TemplateRef<any>>();\n\n constructor() {}\n\n ngOnInit(): void {}\n\n collapseGroup(): void {\n if (!this.thyCollapsible()) {\n return;\n }\n this.thyCollapsed.set(!this.thyCollapsed());\n this.thyCollapsedChange.emit(this.thyCollapsed());\n }\n\n onActionClick(event: Event): void {\n if (this.thyActionStopPropagation()) {\n event.stopPropagation();\n }\n if (this.thyActionMenu()) {\n this.popover.open(this.thyActionMenu(), {\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 (thyShowIcon()) {\n <thy-icon class=\"thy-menu-group-title-icon mr-2\" [thyIconName]=\"thyIcon()\"></thy-icon>\n }\n <span class=\"thy-menu-group-title-text\">{{ thyTitle() }}</span>\n </span>\n }\n </div>\n @if (thyShowAction()) {\n <thy-icon class=\"thy-menu-group-operation\" [thyIconName]=\"thyActionIcon()\" (click)=\"onActionClick($event)\"></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]=\"thyCollapsed()\">\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, OnDestroy, OnInit, Renderer2, TemplateRef, inject, input } 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})\nexport class ThyMenuItemAction implements OnInit, OnDestroy {\n private popover = inject(ThyPopover);\n private renderer = inject(Renderer2);\n private elementRef = inject(ElementRef);\n\n _boundEvent = false;\n\n /**\n * 设置 Action 菜单\n */\n readonly thyActionMenu = input<ComponentType<any> | TemplateRef<any>>();\n\n /**\n * 是否阻止事件冒泡\n */\n readonly thyStopPropagation = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 弹出框的参数\n * @default { placement: \"bottomLeft\", insideClosable: true }\n */\n readonly thyPopoverOptions = input<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.thyActionMenu()) {\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.thyActionMenu(),\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 ngOnInit(): void {\n this.bindClickEvent();\n }\n\n ngOnDestroy(): void {\n this.removeClickListenerFn?.();\n }\n}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, effect, input, OnInit } 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})\nexport class ThyMenuItemIcon implements OnInit {\n /**\n * 设置图标颜色\n */\n readonly thyColor = input<string>();\n\n private hostRenderer = useHostRenderer();\n\n constructor() {\n effect(() => {\n if (this.thyColor()) {\n this.hostRenderer.setStyle('color', this.thyColor());\n }\n });\n }\n\n ngOnInit(): void {}\n}\n","<ng-content></ng-content>\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, OnInit, Renderer2, inject, input, viewChild } 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 imports: [ThyIcon]\n})\nexport class ThyMenuItem implements OnInit, AfterViewInit {\n private renderer = inject(Renderer2);\n\n readonly content = viewChild('content', { read: ElementRef });\n /**\n * 菜单项的图标\n */\n readonly thyIcon = input<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, input, OnInit } 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 '[class.thy-menu-item-name-ellipsis]': 'thyOverflowEllipsis()'\n }\n})\nexport class ThyMenuItemName implements OnInit {\n /**\n * 是否 ellipsis\n */\n readonly thyOverflowEllipsis = input(true, { transform: coerceBooleanProperty });\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<ng-content></ng-content>\n","import { Component, input, OnInit } 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]': 'thyTheme() === \"loose\"',\n '[class.thy-menu-theme-dark]': 'thyTheme() === \"dark\"'\n }\n})\nexport class ThyMenu implements OnInit {\n /**\n * 主题\n * @type compact | loose\n */\n readonly thyTheme = input<ThyMenuTheme, ThyMenuTheme>('compact', {\n transform: (value: ThyMenuTheme) => value || 'compact'\n });\n\n /**\n * 是否收起\n */\n readonly thyCollapsed = input(false, { transform: coerceBooleanProperty });\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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"}
|