ngx-tethys 20.0.1 → 20.0.3
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 +35 -0
- package/action/index.d.ts +3 -3
- package/affix/index.d.ts +1 -1
- package/alert/index.d.ts +3 -3
- package/anchor/index.d.ts +12 -6
- package/arrow-switcher/index.d.ts +6 -6
- package/autocomplete/index.d.ts +7 -7
- package/avatar/index.d.ts +9 -9
- package/back-top/index.d.ts +3 -3
- package/badge/index.d.ts +6 -6
- package/breadcrumb/index.d.ts +7 -7
- package/button/index.d.ts +19 -19
- package/calendar/index.d.ts +8 -8
- package/card/index.d.ts +6 -6
- package/carousel/index.d.ts +4 -4
- package/cascader/index.d.ts +24 -24
- package/collapse/index.d.ts +4 -4
- package/color-picker/index.d.ts +16 -16
- package/comment/index.d.ts +3 -3
- package/copy/index.d.ts +2 -2
- package/core/index.d.ts +22 -22
- package/date-picker/index.d.ts +111 -111
- package/date-range/index.d.ts +5 -5
- package/dialog/index.d.ts +18 -18
- package/divider/index.d.ts +3 -3
- package/drag-drop/index.d.ts +7 -7
- package/dropdown/index.d.ts +10 -10
- package/empty/index.d.ts +12 -12
- package/fesm2022/ngx-tethys-action.mjs +14 -12
- 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-anchor.mjs +65 -28
- 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 +19 -18
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +23 -22
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +7 -7
- 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 +16 -16
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +16 -16
- 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 +15 -15
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +41 -34
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
- package/fesm2022/ngx-tethys-collapse.mjs +10 -10
- package/fesm2022/ngx-tethys-color-picker.mjs +65 -57
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +13 -13
- package/fesm2022/ngx-tethys-copy.mjs +10 -10
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +30 -25
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +184 -174
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +16 -16
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +24 -24
- 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-drag-drop.mjs +24 -24
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +48 -47
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +13 -13
- 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 +64 -61
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +18 -15
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +34 -33
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +25 -24
- 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 +15 -13
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +31 -29
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +17 -10
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +27 -26
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +63 -63
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +21 -18
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +7 -7
- package/fesm2022/ngx-tethys-mention.mjs +35 -31
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +26 -26
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +24 -24
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-native-table.mjs +1119 -0
- package/fesm2022/ngx-tethys-native-table.mjs.map +1 -0
- package/fesm2022/ngx-tethys-nav.mjs +27 -27
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +20 -20
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +18 -18
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +22 -21
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +17 -17
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +15 -12
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +17 -17
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +12 -12
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +21 -18
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +11 -11
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +19 -16
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +95 -46
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +85 -81
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +32 -32
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +37 -36
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +11 -11
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +10 -10
- package/fesm2022/ngx-tethys-statistic.mjs +7 -7
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +22 -22
- 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 +28 -28
- 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 +11 -11
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-testing.mjs +1 -1
- package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +22 -22
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +14 -14
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +36 -29
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +15 -15
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +17 -17
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +50 -43
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +16 -16
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +26 -25
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs +11 -5
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +7 -7
- package/fesm2022/ngx-tethys-watermark.mjs +18 -15
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/flexible-text/index.d.ts +5 -5
- package/form/index.d.ts +26 -22
- package/fullscreen/index.d.ts +4 -4
- package/grid/index.d.ts +12 -12
- package/guider/index.d.ts +10 -10
- package/i18n/index.d.ts +1 -1
- package/icon/index.d.ts +3 -3
- package/image/index.d.ts +12 -12
- package/input/index.d.ts +23 -23
- package/input-number/index.d.ts +4 -4
- package/layout/index.d.ts +16 -16
- package/list/index.d.ts +16 -15
- package/mention/index.d.ts +4 -4
- package/menu/index.d.ts +7 -7
- package/message/index.d.ts +5 -5
- package/native-table/index.d.ts +305 -0
- package/native-table/styles/native-table.scss +174 -0
- package/nav/index.d.ts +12 -12
- package/notify/index.d.ts +1 -1
- package/package.json +5 -1
- package/pagination/index.d.ts +21 -17
- package/popover/index.d.ts +8 -8
- package/progress/index.d.ts +18 -18
- package/property/index.d.ts +6 -6
- package/property-operation/index.d.ts +3 -3
- package/radio/index.d.ts +6 -6
- package/rate/index.d.ts +5 -5
- package/resizable/index.d.ts +2 -2
- package/result/index.d.ts +8 -8
- package/schematics/testing/test-workspace.js +1 -0
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/index.d.ts +9 -9
- package/select/index.d.ts +28 -22
- package/shared/index.d.ts +31 -30
- package/shared/option/styles/select-dropdown.scss +5 -2
- package/skeleton/index.d.ts +52 -52
- package/slide/index.d.ts +5 -5
- package/slider/index.d.ts +6 -6
- package/space/index.d.ts +1 -1
- package/statistic/index.d.ts +18 -18
- package/stepper/index.d.ts +8 -8
- package/styles/index.scss +1 -0
- package/switch/index.d.ts +2 -2
- package/table/index.d.ts +24 -24
- package/tabs/index.d.ts +6 -6
- package/testing/index.d.ts +1 -1
- package/time-picker/index.d.ts +21 -21
- package/timeline/index.d.ts +8 -8
- package/tooltip/index.d.ts +12 -12
- package/transfer/index.d.ts +16 -16
- package/tree/index.d.ts +28 -28
- package/tree-select/index.d.ts +13 -13
- package/typography/index.d.ts +3 -3
- package/upload/index.d.ts +4 -4
- package/util/index.d.ts +17 -7
- package/vote/index.d.ts +2 -2
- package/watermark/index.d.ts +2 -2
|
@@ -47,10 +47,10 @@ class ThyRowDirective {
|
|
|
47
47
|
}
|
|
48
48
|
return [thyGutter, 0];
|
|
49
49
|
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
51
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyRowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
51
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: ThyRowDirective, isStandalone: true, selector: "[thyRow]", inputs: { thyGutter: { classPropertyName: "thyGutter", publicName: "thyGutter", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "thy-row" }, ngImport: i0 }); }
|
|
52
52
|
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyRowDirective, decorators: [{
|
|
54
54
|
type: Directive,
|
|
55
55
|
args: [{
|
|
56
56
|
selector: '[thyRow]',
|
|
@@ -87,7 +87,8 @@ class ThyColDirective {
|
|
|
87
87
|
});
|
|
88
88
|
afterNextRender(() => {
|
|
89
89
|
if (this.thyRowDirective) {
|
|
90
|
-
this.thyRowDirective.actualGutter$.pipe(this.takeUntilDestroyed).subscribe(
|
|
90
|
+
this.thyRowDirective.actualGutter$.pipe(this.takeUntilDestroyed).subscribe(data => {
|
|
91
|
+
const [horizontalGutter, verticalGutter] = data;
|
|
91
92
|
const renderGutter = (name, gutter) => {
|
|
92
93
|
this.hostRenderer.setStyle(name, `${gutter / 2}px`);
|
|
93
94
|
};
|
|
@@ -109,10 +110,10 @@ class ThyColDirective {
|
|
|
109
110
|
[`thy-col-${span}`]: true
|
|
110
111
|
});
|
|
111
112
|
}
|
|
112
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
113
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
113
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyColDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
114
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: ThyColDirective, isStandalone: true, selector: "[thyCol]", inputs: { thyCol: { classPropertyName: "thyCol", publicName: "thyCol", isSignal: true, isRequired: false, transformFunction: null }, thySpan: { classPropertyName: "thySpan", publicName: "thySpan", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "thy-col" }, ngImport: i0 }); }
|
|
114
115
|
}
|
|
115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyColDirective, decorators: [{
|
|
116
117
|
type: Directive,
|
|
117
118
|
args: [{
|
|
118
119
|
selector: '[thyCol]',
|
|
@@ -170,10 +171,10 @@ class ThyGridItem {
|
|
|
170
171
|
this.hostRenderer.setStyle('grid-column', `span ${this.span}`);
|
|
171
172
|
this.hostRenderer.setStyle('margin-left', this.offset ? `calc(((100% - ${(this.span - 1) * xGap}px) / ${this.span} + ${xGap}px) * ${this.offset})` : '');
|
|
172
173
|
}
|
|
173
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
174
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.
|
|
174
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGridItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
175
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: ThyGridItem, isStandalone: true, selector: "thy-grid-item,[thyGridItem]", inputs: { thySpan: { classPropertyName: "thySpan", publicName: "thySpan", isSignal: true, isRequired: false, transformFunction: null }, thyOffset: { classPropertyName: "thyOffset", publicName: "thyOffset", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "thy-grid-item" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
175
176
|
}
|
|
176
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
177
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGridItem, decorators: [{
|
|
177
178
|
type: Component,
|
|
178
179
|
args: [{
|
|
179
180
|
selector: 'thy-grid-item,[thyGridItem]',
|
|
@@ -270,7 +271,7 @@ class ThyGrid {
|
|
|
270
271
|
this.ngZone.runOutsideAngular(() => {
|
|
271
272
|
this.gridResizeObserver(this.elementRef.nativeElement)
|
|
272
273
|
.pipe(throttleTime(100), this.takeUntilDestroyed)
|
|
273
|
-
.subscribe(
|
|
274
|
+
.subscribe(data => {
|
|
274
275
|
this.responsiveContainerWidth = data[0]?.contentRect?.width;
|
|
275
276
|
this.setGridStyle();
|
|
276
277
|
this.handleGridItems();
|
|
@@ -346,15 +347,15 @@ class ThyGrid {
|
|
|
346
347
|
};
|
|
347
348
|
});
|
|
348
349
|
}
|
|
349
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
350
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.
|
|
350
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGrid, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
351
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.15", type: ThyGrid, isStandalone: true, selector: "[thyGrid]", inputs: { thyCols: { classPropertyName: "thyCols", publicName: "thyCols", isSignal: true, isRequired: false, transformFunction: null }, thyXGap: { classPropertyName: "thyXGap", publicName: "thyXGap", isSignal: true, isRequired: false, transformFunction: null }, thyYGap: { classPropertyName: "thyYGap", publicName: "thyYGap", isSignal: true, isRequired: false, transformFunction: null }, thyGap: { classPropertyName: "thyGap", publicName: "thyGap", isSignal: true, isRequired: false, transformFunction: null }, thyResponsive: { classPropertyName: "thyResponsive", publicName: "thyResponsive", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "thy-grid" }, providers: [
|
|
351
352
|
{
|
|
352
353
|
provide: THY_GRID_COMPONENT,
|
|
353
354
|
useExisting: ThyGrid
|
|
354
355
|
}
|
|
355
356
|
], queries: [{ propertyName: "gridItems", predicate: ThyGridItem, isSignal: true }], ngImport: i0 }); }
|
|
356
357
|
}
|
|
357
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
358
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGrid, decorators: [{
|
|
358
359
|
type: Directive,
|
|
359
360
|
args: [{
|
|
360
361
|
selector: '[thyGrid]',
|
|
@@ -376,15 +377,15 @@ class ThyGridComponent {
|
|
|
376
377
|
constructor() {
|
|
377
378
|
this.grid = inject(ThyGrid);
|
|
378
379
|
}
|
|
379
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
380
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
380
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
381
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: ThyGridComponent, isStandalone: true, selector: "thy-grid", providers: [
|
|
381
382
|
{
|
|
382
383
|
provide: THY_GRID_COMPONENT,
|
|
383
384
|
useExisting: ThyGrid
|
|
384
385
|
}
|
|
385
386
|
], hostDirectives: [{ directive: ThyGrid, inputs: ["thyCols", "thyCols", "thyXGap", "thyXGap", "thyYGap", "thyYGap", "thyGap", "thyGap", "thyResponsive", "thyResponsive"] }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
386
387
|
}
|
|
387
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
388
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGridComponent, decorators: [{
|
|
388
389
|
type: Component,
|
|
389
390
|
args: [{
|
|
390
391
|
selector: 'thy-grid',
|
|
@@ -467,10 +468,10 @@ class ThyFlex {
|
|
|
467
468
|
this.hostRenderer.updateClass(classes);
|
|
468
469
|
this.hostRenderer.setStyle('gap', `${this.thyGap() ?? '0'}px`);
|
|
469
470
|
}
|
|
470
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
471
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
471
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyFlex, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
472
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: ThyFlex, isStandalone: true, selector: "[thyFlex]", inputs: { thyDirection: { classPropertyName: "thyDirection", publicName: "thyDirection", isSignal: true, isRequired: false, transformFunction: null }, thyWrap: { classPropertyName: "thyWrap", publicName: "thyWrap", isSignal: true, isRequired: false, transformFunction: null }, thyJustifyContent: { classPropertyName: "thyJustifyContent", publicName: "thyJustifyContent", isSignal: true, isRequired: false, transformFunction: null }, thyAlignItems: { classPropertyName: "thyAlignItems", publicName: "thyAlignItems", isSignal: true, isRequired: false, transformFunction: null }, thyGap: { classPropertyName: "thyGap", publicName: "thyGap", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "thy-flex d-flex" }, ngImport: i0 }); }
|
|
472
473
|
}
|
|
473
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
474
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyFlex, decorators: [{
|
|
474
475
|
type: Directive,
|
|
475
476
|
args: [{
|
|
476
477
|
selector: '[thyFlex]',
|
|
@@ -483,10 +484,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
483
484
|
* @internal
|
|
484
485
|
*/
|
|
485
486
|
class ThyFlexComponent {
|
|
486
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
487
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
487
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyFlexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
488
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: ThyFlexComponent, isStandalone: true, selector: "thy-flex", hostDirectives: [{ directive: ThyFlex, inputs: ["thyDirection", "thyDirection", "thyWrap", "thyWrap", "thyJustifyContent", "thyJustifyContent", "thyAlignItems", "thyAlignItems", "thyGap", "thyGap"] }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
488
489
|
}
|
|
489
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
490
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyFlexComponent, decorators: [{
|
|
490
491
|
type: Component,
|
|
491
492
|
args: [{
|
|
492
493
|
selector: 'thy-flex',
|
|
@@ -559,10 +560,10 @@ class ThyFlexItem {
|
|
|
559
560
|
}
|
|
560
561
|
this.hostRenderer.updateClass(classes);
|
|
561
562
|
}
|
|
562
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
563
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
563
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyFlexItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
564
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: ThyFlexItem, isStandalone: true, selector: "[thyFlexItem]", inputs: { thyFlexItem: { classPropertyName: "thyFlexItem", publicName: "thyFlexItem", isSignal: true, isRequired: false, transformFunction: null }, thyGrow: { classPropertyName: "thyGrow", publicName: "thyGrow", isSignal: true, isRequired: false, transformFunction: null }, thyShrink: { classPropertyName: "thyShrink", publicName: "thyShrink", isSignal: true, isRequired: false, transformFunction: null }, thyBasis: { classPropertyName: "thyBasis", publicName: "thyBasis", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "thy-flex-item" }, ngImport: i0 }); }
|
|
564
565
|
}
|
|
565
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
566
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyFlexItem, decorators: [{
|
|
566
567
|
type: Directive,
|
|
567
568
|
args: [{
|
|
568
569
|
selector: '[thyFlexItem]',
|
|
@@ -575,10 +576,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
575
576
|
* @internal
|
|
576
577
|
*/
|
|
577
578
|
class ThyFlexItemComponent {
|
|
578
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
579
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
579
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyFlexItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
580
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: ThyFlexItemComponent, isStandalone: true, selector: "thy-flex-item", hostDirectives: [{ directive: ThyFlexItem, inputs: ["thyFlexItem", "thyFlexItem", "thyGrow", "thyGrow", "thyShrink", "thyShrink", "thyBasis", "thyBasis"] }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
580
581
|
}
|
|
581
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
582
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyFlexItemComponent, decorators: [{
|
|
582
583
|
type: Component,
|
|
583
584
|
args: [{
|
|
584
585
|
selector: 'thy-flex-item',
|
|
@@ -598,8 +599,8 @@ function normalizeStartEnd(value) {
|
|
|
598
599
|
}
|
|
599
600
|
|
|
600
601
|
class ThyGridModule {
|
|
601
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
602
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
602
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
603
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyGridModule, imports: [ThyGrid,
|
|
603
604
|
ThyGridComponent,
|
|
604
605
|
ThyGridItem,
|
|
605
606
|
ThyRowDirective,
|
|
@@ -616,9 +617,9 @@ class ThyGridModule {
|
|
|
616
617
|
ThyFlexItem,
|
|
617
618
|
ThyFlexComponent,
|
|
618
619
|
ThyFlexItemComponent] }); }
|
|
619
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
620
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGridModule }); }
|
|
620
621
|
}
|
|
621
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
622
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGridModule, decorators: [{
|
|
622
623
|
type: NgModule,
|
|
623
624
|
args: [{
|
|
624
625
|
exports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-grid.mjs","sources":["../../../src/grid/thy-row.directive.ts","../../../src/grid/thy-col.directive.ts","../../../src/grid/grid.token.ts","../../../src/grid/grid.type.ts","../../../src/grid/thy-grid-item.component.ts","../../../src/grid/thy-grid.component.ts","../../../src/grid/flex.ts","../../../src/grid/module.ts","../../../src/grid/ngx-tethys-grid.ts"],"sourcesContent":["import { Directive, effect, input } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport { isString } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nexport type ThyRowJustify = 'start' | 'end' | 'center' | 'space-around' | 'space-between';\nexport type ThyRowAlign = 'top' | 'middle' | 'bottom';\nexport interface ThyGutterType {\n xs?: number;\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n xxl?: number;\n}\n\n/**\n * 栅格行指令\n * @name thyRow\n * @order 30\n */\n@Directive({\n selector: '[thyRow]',\n host: {\n class: 'thy-row'\n }\n})\nexport class ThyRowDirective {\n /**\n * 栅格的间距\n */\n readonly thyGutter = input<ThyGutterType | number>();\n\n public actualGutter$ = new ReplaySubject<[number, number]>(1);\n\n private hostRenderer = useHostRenderer();\n\n constructor() {\n effect(() => {\n this.setGutterStyle();\n });\n }\n\n private setGutterStyle() {\n const [horizontalGutter, verticalGutter] = this.getGutter();\n this.actualGutter$.next([horizontalGutter, verticalGutter]);\n const renderGutter = (name: string, gutter: number) => {\n this.hostRenderer.setStyle(name, `-${gutter / 2}px`);\n };\n if (horizontalGutter > 0) {\n renderGutter('margin-left', horizontalGutter);\n renderGutter('margin-right', horizontalGutter);\n }\n if (verticalGutter > 0) {\n renderGutter('margin-top', verticalGutter);\n renderGutter('margin-bottom', verticalGutter);\n }\n }\n\n private getGutter() {\n const thyGutter = this.thyGutter();\n if (isString(thyGutter)) {\n throw Error(`thyGutter value can not be string type`);\n }\n return [thyGutter as number, 0];\n }\n}\n","import { Directive, inject, input, computed, effect, afterNextRender } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyRowDirective } from './thy-row.directive';\n\nexport interface ThyColEmbeddedProperty {\n span?: number;\n pull?: number;\n push?: number;\n offset?: number;\n order?: number;\n}\n\nexport type ThySpan = number | null | 'auto';\n\n/**\n * 栅格列指令\n * @name thyCol\n * @order 35\n */\n@Directive({\n selector: '[thyCol]',\n host: {\n class: 'thy-col'\n }\n})\nexport class ThyColDirective {\n thyRowDirective = inject(ThyRowDirective, { optional: true, host: true })!;\n\n /**\n * 栅格项的占位列数,thySpan 如果传递了值,以 thySpan 为准\n */\n readonly thyCol = input<ThySpan>();\n\n /**\n * 栅格项的占位列数\n */\n readonly thySpan = input<ThySpan>();\n\n protected readonly span = computed(() => {\n const span = this.thySpan() ?? this.thyCol();\n return span || 24;\n });\n\n private hostRenderer = useHostRenderer();\n\n private takeUntilDestroyed = takeUntilDestroyed();\n\n constructor() {\n effect(() => {\n this.updateHostClass();\n });\n\n afterNextRender(() => {\n if (this.thyRowDirective) {\n this.thyRowDirective.actualGutter$.pipe(this.takeUntilDestroyed).subscribe(([horizontalGutter, verticalGutter]) => {\n const renderGutter = (name: string, gutter: number) => {\n this.hostRenderer.setStyle(name, `${gutter / 2}px`);\n };\n if (horizontalGutter > 0) {\n renderGutter('padding-left', horizontalGutter);\n renderGutter('padding-right', horizontalGutter);\n }\n if (verticalGutter > 0) {\n renderGutter('padding-top', verticalGutter);\n renderGutter('padding-bottom', verticalGutter);\n }\n });\n }\n });\n }\n\n private updateHostClass() {\n const span = this.span();\n this.hostRenderer.updateClassByMap({\n [`thy-col-${span}`]: true\n });\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport abstract class ThyGridToken {\n xGap: number;\n gridItemPropValueChange$: Subject<void>;\n}\n\nexport const THY_GRID_COMPONENT = new InjectionToken<ThyGridToken>('THY_GRID_COMPONENT');\n","export type ThyGridResponsiveMode = 'none' | 'self' | 'screen';\n\nexport type ThyGridResponsiveDescription = string;\n\nexport const THY_GRID_DEFAULT_COLUMNS = 24;\n\nexport const THY_GRID_ITEM_DEFAULT_SPAN = 1;\n\nexport const screenBreakpointsMap: Record<string, number> = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n","import { ChangeDetectionStrategy, Component, ElementRef, OnInit, inject, DestroyRef, input } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { THY_GRID_COMPONENT } from './grid.token';\nimport { ThyGridResponsiveDescription, THY_GRID_ITEM_DEFAULT_SPAN } from './grid.type';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\n/**\n * 栅格项组件\n * @name thy-grid-item,[thyGridItem]\n * @order 15\n */\n@Component({\n selector: 'thy-grid-item,[thyGridItem]',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-grid-item'\n }\n})\nexport class ThyGridItem implements OnInit {\n elementRef = inject(ElementRef);\n private grid = inject(THY_GRID_COMPONENT, { optional: true })!;\n\n /**\n * 栅格项的占位列数,为 0 时会隐藏该栅格项\n * @default 1\n */\n readonly thySpan = input<number | ThyGridResponsiveDescription>(THY_GRID_ITEM_DEFAULT_SPAN);\n\n /**\n * 栅格项左侧的偏移列数\n */\n readonly thyOffset = input<number | ThyGridResponsiveDescription>(0);\n\n private readonly destroyRef = inject(DestroyRef);\n\n private hostRenderer = useHostRenderer();\n\n public span: number = THY_GRID_ITEM_DEFAULT_SPAN;\n\n public offset: number = 0;\n\n ngOnInit(): void {\n this.grid.gridItemPropValueChange$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.setGridItemStyle();\n });\n }\n\n private setGridItemStyle() {\n const xGap: number = this.grid?.xGap || 0;\n\n this.hostRenderer.setStyle('display', this.span === 0 ? 'none' : '');\n\n this.hostRenderer.setStyle('grid-column', `span ${this.span}`);\n\n this.hostRenderer.setStyle(\n 'margin-left',\n this.offset ? `calc(((100% - ${(this.span - 1) * xGap}px) / ${this.span} + ${xGap}px) * ${this.offset})` : ''\n );\n }\n}\n","import { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n NgZone,\n OnInit,\n inject,\n input,\n contentChildren,\n effect\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable, Subject } from 'rxjs';\nimport { throttleTime } from 'rxjs/operators';\nimport { ThyGridToken, THY_GRID_COMPONENT } from './grid.token';\nimport { ThyGridItem } from './thy-grid-item.component';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport {\n ThyGridResponsiveMode,\n ThyGridResponsiveDescription,\n THY_GRID_DEFAULT_COLUMNS,\n THY_GRID_ITEM_DEFAULT_SPAN,\n screenBreakpointsMap\n} from './grid.type';\n\n/**\n * 栅格组件\n * @name thy-grid, [thyGrid]\n * @order 10\n */\n@Directive({\n selector: '[thyGrid]',\n providers: [\n {\n provide: THY_GRID_COMPONENT,\n useExisting: ThyGrid\n }\n ],\n host: {\n class: 'thy-grid'\n }\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class ThyGrid implements ThyGridToken, OnInit {\n private elementRef = inject(ElementRef);\n private viewportRuler = inject(ViewportRuler);\n private ngZone = inject(NgZone);\n\n /**\n * @internal\n */\n readonly gridItems = contentChildren(ThyGridItem);\n\n /**\n * 栅格的列数\n * @default 24\n */\n readonly thyCols = input<number | ThyGridResponsiveDescription>(THY_GRID_DEFAULT_COLUMNS);\n\n /**\n * 栅格的水平间隔\n */\n readonly thyXGap = input<number | ThyGridResponsiveDescription>(0);\n\n /**\n * 栅格的垂直间隔\n */\n readonly thyYGap = input<number | ThyGridResponsiveDescription>(0);\n\n /**\n * 栅格的水平和垂直间隔\n */\n readonly thyGap = input<number | ThyGridResponsiveDescription>(0);\n\n /**\n * 响应式栅格列数<br/>\n * none: 不进行响应式布局。<br/>\n * self:根据grid的自身宽度进行响应式布局。<br/>\n * screen:根据屏幕断点进行响应式布局,目前预设了5种响应式尺寸:`xs: 0, sm: 576, md: 768, lg: 992, xl: 1200`。\n */\n readonly thyResponsive = input<ThyGridResponsiveMode>('none');\n\n private hostRenderer = useHostRenderer();\n\n private cols: number;\n\n public xGap: number;\n\n private yGap: number;\n\n private numRegex = /^\\d+$/;\n\n private responsiveContainerWidth: number;\n\n public gridItemPropValueChange$ = new Subject<void>();\n\n private takeUntilDestroyed = takeUntilDestroyed();\n\n constructor() {\n effect(() => {\n this.handleGridItems();\n });\n }\n\n ngOnInit(): void {\n this.setGridStyle();\n\n if (this.thyResponsive() !== 'none') {\n this.listenResizeEvent();\n }\n }\n\n private setGridStyle() {\n this.cols = this.calculateActualValue(this.thyCols() || THY_GRID_DEFAULT_COLUMNS, THY_GRID_DEFAULT_COLUMNS);\n const xGap = this.thyXGap();\n const yGap = this.thyYGap();\n const gap = this.thyGap();\n if (!xGap && !yGap) {\n this.xGap = this.calculateActualValue(gap || 0);\n this.yGap = this.xGap;\n } else {\n this.xGap = this.calculateActualValue(xGap || gap);\n this.yGap = this.calculateActualValue(yGap || gap);\n }\n\n this.hostRenderer.setStyle('display', 'grid');\n this.hostRenderer.setStyle('grid-template-columns', `repeat(${this.cols}, minmax(0, 1fr))`);\n this.hostRenderer.setStyle('gap', `${this.yGap}px ${this.xGap}px`);\n }\n\n private listenResizeEvent() {\n if (this.thyResponsive() === 'screen') {\n this.viewportRuler\n .change(100)\n .pipe(this.takeUntilDestroyed)\n .subscribe(() => {\n this.responsiveContainerWidth = this.viewportRuler.getViewportSize().width;\n this.setGridStyle();\n this.handleGridItems();\n });\n } else {\n this.ngZone.runOutsideAngular(() => {\n this.gridResizeObserver(this.elementRef.nativeElement)\n .pipe(throttleTime(100), this.takeUntilDestroyed)\n .subscribe((data: ResizeObserverEntry[]) => {\n this.responsiveContainerWidth = data[0]?.contentRect?.width;\n this.setGridStyle();\n this.handleGridItems();\n });\n });\n }\n }\n\n private handleGridItems() {\n this.gridItems().forEach((gridItem: ThyGridItem) => {\n const rawSpan = getRawSpan(gridItem.thySpan());\n const span = this.calculateActualValue(rawSpan, THY_GRID_ITEM_DEFAULT_SPAN);\n const offset = this.calculateActualValue(gridItem.thyOffset() || 0);\n\n gridItem.span = Math.min(span + offset, this.cols);\n gridItem.offset = offset;\n });\n\n this.gridItemPropValueChange$.next();\n }\n\n private calculateActualValue(rawValue: number | ThyGridResponsiveDescription, defaultValue?: number): number {\n if (this.numRegex.test(rawValue.toString().trim())) {\n return Number(rawValue);\n } else {\n const responsiveValueMap = this.getResponsiveValueMap(rawValue as ThyGridResponsiveDescription);\n const breakpointKeys = Object.keys(responsiveValueMap);\n const breakpoint = this.calculateBreakPoint(breakpointKeys);\n\n if (this.thyResponsive() !== 'none' && breakpoint) {\n return responsiveValueMap[breakpoint];\n } else if (breakpointKeys.includes('0')) {\n return responsiveValueMap['0'];\n } else {\n return defaultValue || 0;\n }\n }\n }\n\n private getResponsiveValueMap(responsiveValue: string): { [key: string]: number } {\n return responsiveValue.split(' ').reduce((map: { [key: string]: number }, item: string) => {\n if (this.numRegex.test(item.toString())) {\n item = `0:${item}`;\n }\n const [key, value] = item.split(':');\n map[key] = Number(value);\n return map;\n }, {});\n }\n\n private calculateBreakPoint(breakpointKeys: string[]): string {\n if (this.thyResponsive() === 'screen') {\n const width = this.responsiveContainerWidth || this.viewportRuler.getViewportSize().width;\n return breakpointKeys.find((key: string, index: number) => {\n return index < breakpointKeys.length - 1\n ? width >= screenBreakpointsMap[key] && width < screenBreakpointsMap[breakpointKeys[index + 1]]\n : width >= screenBreakpointsMap[key];\n });\n } else {\n const width = this.responsiveContainerWidth || this.elementRef.nativeElement.getBoundingClientRect().width;\n return breakpointKeys.find((key: string, index: number) => {\n return index < breakpointKeys.length - 1\n ? width >= Number(key) && width < Number(breakpointKeys[index + 1])\n : width >= Number(key);\n });\n }\n }\n\n private gridResizeObserver(element: HTMLElement): Observable<ResizeObserverEntry[]> {\n return new Observable(observer => {\n const resize = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n observer.next(entries);\n });\n resize.observe(element);\n return () => {\n resize.disconnect();\n };\n });\n }\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-grid',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n providers: [\n {\n provide: THY_GRID_COMPONENT,\n useExisting: ThyGrid\n }\n ],\n hostDirectives: [\n {\n directive: ThyGrid,\n inputs: ['thyCols', 'thyXGap', 'thyYGap', 'thyGap', 'thyResponsive']\n }\n ]\n})\nexport class ThyGridComponent {\n grid = inject(ThyGrid);\n}\n\nfunction getRawSpan(span: number | ThyGridResponsiveDescription | undefined | null): number | ThyGridResponsiveDescription {\n return span === undefined || span === null ? THY_GRID_ITEM_DEFAULT_SPAN : span;\n}\n","import { ChangeDetectionStrategy, Component, Directive, effect, input } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { isUndefinedOrNull } from '@tethys/cdk/is';\n\nexport type ThyFlexDirection = 'row' | 'column' | 'row-reverse' | 'column-reverse';\nexport type ThyFlexWrap = 'nowrap' | 'wrap' | 'wrap-reverse';\nexport type ThyFlexJustifyContent =\n | 'start'\n | 'end'\n | 'flex-start'\n | 'flex-end'\n | 'center'\n | 'space-between'\n | 'space-around'\n | 'initial'\n | 'inherit';\nexport type ThyFlexAlignItems = 'start' | 'end' | 'stretch' | 'center' | 'flex-start' | 'flex-end' | 'baseline' | 'initial' | 'inherit';\nexport type ThyFlexGrow = '1' | '0' | 0 | 1;\nexport type ThyFlexShrink = '1' | '0' | 0 | 1;\n\n/**\n * 设置容器为 Flex 布局组件\n * @name thy-flex, [thyFlex]\n * @order 20\n */\n@Directive({\n selector: '[thyFlex]',\n host: {\n class: 'thy-flex d-flex'\n }\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class ThyFlex {\n private hostRenderer = useHostRenderer();\n\n /**\n * Flex 方向,为 row 或者 column\n */\n readonly thyDirection = input<ThyFlexDirection, ThyFlexDirection>('row', {\n transform: (value: ThyFlexDirection) => value || 'row'\n });\n\n /**\n * Flex Wrap\n * @default nowrap\n */\n readonly thyWrap = input<ThyFlexWrap>();\n\n /**\n * Justify Content\n */\n readonly thyJustifyContent = input<ThyFlexJustifyContent>();\n\n /**\n * Align Items\n */\n readonly thyAlignItems = input<ThyFlexAlignItems>();\n\n /**\n * Flex Item 之间的间隙 Gap\n * @default 0\n */\n readonly thyGap = input<number>();\n\n constructor() {\n effect(() => {\n this.updateClasses();\n });\n }\n\n private updateClasses() {\n const classes: string[] = [];\n const justifyContent = this.thyJustifyContent();\n if (!isUndefinedOrNull(justifyContent)) {\n classes.push(`justify-content-${normalizeStartEnd(justifyContent)}`);\n }\n\n const alignItems = this.thyAlignItems();\n if (!isUndefinedOrNull(alignItems)) {\n classes.push(`align-items-${normalizeStartEnd(alignItems)}`);\n }\n\n const wrap = this.thyWrap();\n if (!isUndefinedOrNull(wrap)) {\n classes.push(`flex-${wrap}`);\n }\n\n const direction = this.thyDirection();\n if (!isUndefinedOrNull(direction)) {\n classes.push(`flex-${direction}`);\n }\n this.hostRenderer.updateClass(classes);\n this.hostRenderer.setStyle('gap', `${this.thyGap() ?? '0'}px`);\n }\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-flex',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: ThyFlex,\n inputs: ['thyDirection', 'thyWrap', 'thyJustifyContent', 'thyAlignItems', 'thyGap']\n }\n ],\n imports: []\n})\nexport class ThyFlexComponent {}\n\n/**\n * 设置为 Flex Item 组件\n * @name thy-flex-item, [thyFlexItem]\n * @order 25\n */\n@Directive({\n selector: '[thyFlexItem]',\n host: {\n class: 'thy-flex-item'\n }\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class ThyFlexItem {\n private hostRenderer = useHostRenderer();\n\n /**\n * Flex Item 属性,表示 grow 、shrink 、basis\n */\n readonly thyFlexItem = input<'fill' | string>();\n\n /**\n * Flew Grow,设置或检索弹性盒子的扩展比率,设置 1 为填充剩余区域\n */\n readonly thyGrow = input<ThyFlexGrow>();\n\n /**\n * Flex Shrink,设置或检索弹性盒收缩比例\n * @default 1\n */\n readonly thyShrink = input<ThyFlexShrink>();\n\n /**\n * Flex Basis,设置或检索弹性盒伸缩基准值\n * @default 1\n */\n readonly thyBasis = input<string>();\n\n constructor() {\n effect(() => {\n this.updateClasses();\n });\n }\n\n private updateClasses() {\n const flexItem = this.thyFlexItem();\n const classes: string[] = [];\n this.hostRenderer.setStyle('flex', '');\n this.hostRenderer.setStyle('basis', '');\n if (flexItem) {\n if (flexItem === 'fill') {\n classes.push(`flex-${flexItem}`);\n } else {\n this.hostRenderer.setStyle('flex', flexItem);\n }\n }\n const grow = this.thyGrow();\n if (!isUndefinedOrNull(grow)) {\n classes.push(`flex-grow-${grow}`);\n }\n const shrink = this.thyShrink();\n if (!isUndefinedOrNull(shrink)) {\n classes.push(`flex-shrink-${shrink}`);\n }\n const basis = this.thyBasis();\n if (!isUndefinedOrNull(basis)) {\n this.hostRenderer.setStyle('flex-basis', basis);\n }\n this.hostRenderer.updateClass(classes);\n }\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-flex-item',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n hostDirectives: [\n {\n directive: ThyFlexItem,\n inputs: ['thyFlexItem', 'thyGrow', 'thyShrink', 'thyBasis']\n }\n ]\n})\nexport class ThyFlexItemComponent {}\n\nfunction normalizeStartEnd(value: string): string {\n return value === 'flex-start' ? 'start' : value === 'flex-end' ? 'end' : value;\n}\n","import { NgModule } from '@angular/core';\nimport { ThyRowDirective } from './thy-row.directive';\nimport { ThyColDirective } from './thy-col.directive';\nimport { ThyGrid, ThyGridComponent } from './thy-grid.component';\nimport { ThyGridItem } from './thy-grid-item.component';\nimport { ThyFlex, ThyFlexComponent, ThyFlexItem, ThyFlexItemComponent } from './flex';\n\n@NgModule({\n exports: [\n ThyGrid,\n ThyGridComponent,\n ThyGridItem,\n ThyRowDirective,\n ThyColDirective,\n ThyFlex,\n ThyFlexItem,\n ThyFlexComponent,\n ThyFlexItemComponent\n ],\n imports: [\n ThyGrid,\n ThyGridComponent,\n ThyGridItem,\n ThyRowDirective,\n ThyColDirective,\n ThyFlex,\n ThyFlexItem,\n ThyFlexComponent,\n ThyFlexItemComponent\n ]\n})\nexport class ThyGridModule {}\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-grid.mjs","sources":["../../../src/grid/thy-row.directive.ts","../../../src/grid/thy-col.directive.ts","../../../src/grid/grid.token.ts","../../../src/grid/grid.type.ts","../../../src/grid/thy-grid-item.component.ts","../../../src/grid/thy-grid.component.ts","../../../src/grid/flex.ts","../../../src/grid/module.ts","../../../src/grid/ngx-tethys-grid.ts"],"sourcesContent":["import { Directive, effect, input } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport { isString } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nexport type ThyRowJustify = 'start' | 'end' | 'center' | 'space-around' | 'space-between';\nexport type ThyRowAlign = 'top' | 'middle' | 'bottom';\nexport interface ThyGutterType {\n xs?: number;\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n xxl?: number;\n}\n\n/**\n * 栅格行指令\n * @name thyRow\n * @order 30\n */\n@Directive({\n selector: '[thyRow]',\n host: {\n class: 'thy-row'\n }\n})\nexport class ThyRowDirective {\n /**\n * 栅格的间距\n */\n readonly thyGutter = input<ThyGutterType | number>();\n\n public actualGutter$ = new ReplaySubject<[number, number]>(1);\n\n private hostRenderer = useHostRenderer();\n\n constructor() {\n effect(() => {\n this.setGutterStyle();\n });\n }\n\n private setGutterStyle() {\n const [horizontalGutter, verticalGutter] = this.getGutter();\n this.actualGutter$.next([horizontalGutter, verticalGutter]);\n const renderGutter = (name: string, gutter: number) => {\n this.hostRenderer.setStyle(name, `-${gutter / 2}px`);\n };\n if (horizontalGutter > 0) {\n renderGutter('margin-left', horizontalGutter);\n renderGutter('margin-right', horizontalGutter);\n }\n if (verticalGutter > 0) {\n renderGutter('margin-top', verticalGutter);\n renderGutter('margin-bottom', verticalGutter);\n }\n }\n\n private getGutter() {\n const thyGutter = this.thyGutter();\n if (isString(thyGutter)) {\n throw Error(`thyGutter value can not be string type`);\n }\n return [thyGutter as number, 0];\n }\n}\n","import { Directive, inject, input, computed, effect, afterNextRender } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyRowDirective } from './thy-row.directive';\n\nexport interface ThyColEmbeddedProperty {\n span?: number;\n pull?: number;\n push?: number;\n offset?: number;\n order?: number;\n}\n\nexport type ThySpan = number | null | 'auto';\n\n/**\n * 栅格列指令\n * @name thyCol\n * @order 35\n */\n@Directive({\n selector: '[thyCol]',\n host: {\n class: 'thy-col'\n }\n})\nexport class ThyColDirective {\n thyRowDirective = inject(ThyRowDirective, { optional: true, host: true })!;\n\n /**\n * 栅格项的占位列数,thySpan 如果传递了值,以 thySpan 为准\n */\n readonly thyCol = input<ThySpan>();\n\n /**\n * 栅格项的占位列数\n */\n readonly thySpan = input<ThySpan>();\n\n protected readonly span = computed(() => {\n const span = this.thySpan() ?? this.thyCol();\n return span || 24;\n });\n\n private hostRenderer = useHostRenderer();\n\n private takeUntilDestroyed = takeUntilDestroyed();\n\n constructor() {\n effect(() => {\n this.updateHostClass();\n });\n\n afterNextRender(() => {\n if (this.thyRowDirective) {\n this.thyRowDirective.actualGutter$.pipe(this.takeUntilDestroyed).subscribe(data => {\n const [horizontalGutter, verticalGutter] = data as [number, number];\n const renderGutter = (name: string, gutter: number) => {\n this.hostRenderer.setStyle(name, `${gutter / 2}px`);\n };\n if (horizontalGutter > 0) {\n renderGutter('padding-left', horizontalGutter);\n renderGutter('padding-right', horizontalGutter);\n }\n if (verticalGutter > 0) {\n renderGutter('padding-top', verticalGutter);\n renderGutter('padding-bottom', verticalGutter);\n }\n });\n }\n });\n }\n\n private updateHostClass() {\n const span = this.span();\n this.hostRenderer.updateClassByMap({\n [`thy-col-${span}`]: true\n });\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport abstract class ThyGridToken {\n xGap!: number;\n gridItemPropValueChange$!: Subject<void>;\n}\n\nexport const THY_GRID_COMPONENT = new InjectionToken<ThyGridToken>('THY_GRID_COMPONENT');\n","export type ThyGridResponsiveMode = 'none' | 'self' | 'screen';\n\nexport type ThyGridResponsiveDescription = string;\n\nexport const THY_GRID_DEFAULT_COLUMNS = 24;\n\nexport const THY_GRID_ITEM_DEFAULT_SPAN = 1;\n\nexport const screenBreakpointsMap: Record<string, number> = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n","import { ChangeDetectionStrategy, Component, ElementRef, OnInit, inject, DestroyRef, input } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { THY_GRID_COMPONENT } from './grid.token';\nimport { ThyGridResponsiveDescription, THY_GRID_ITEM_DEFAULT_SPAN } from './grid.type';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\n/**\n * 栅格项组件\n * @name thy-grid-item,[thyGridItem]\n * @order 15\n */\n@Component({\n selector: 'thy-grid-item,[thyGridItem]',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-grid-item'\n }\n})\nexport class ThyGridItem implements OnInit {\n elementRef = inject(ElementRef);\n private grid = inject(THY_GRID_COMPONENT, { optional: true })!;\n\n /**\n * 栅格项的占位列数,为 0 时会隐藏该栅格项\n * @default 1\n */\n readonly thySpan = input<number | ThyGridResponsiveDescription>(THY_GRID_ITEM_DEFAULT_SPAN);\n\n /**\n * 栅格项左侧的偏移列数\n */\n readonly thyOffset = input<number | ThyGridResponsiveDescription>(0);\n\n private readonly destroyRef = inject(DestroyRef);\n\n private hostRenderer = useHostRenderer();\n\n public span: number = THY_GRID_ITEM_DEFAULT_SPAN;\n\n public offset: number = 0;\n\n ngOnInit(): void {\n this.grid.gridItemPropValueChange$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.setGridItemStyle();\n });\n }\n\n private setGridItemStyle() {\n const xGap: number = this.grid?.xGap || 0;\n\n this.hostRenderer.setStyle('display', this.span === 0 ? 'none' : '');\n\n this.hostRenderer.setStyle('grid-column', `span ${this.span}`);\n\n this.hostRenderer.setStyle(\n 'margin-left',\n this.offset ? `calc(((100% - ${(this.span - 1) * xGap}px) / ${this.span} + ${xGap}px) * ${this.offset})` : ''\n );\n }\n}\n","import { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n NgZone,\n OnInit,\n inject,\n input,\n contentChildren,\n effect\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable, Subject } from 'rxjs';\nimport { throttleTime } from 'rxjs/operators';\nimport { ThyGridToken, THY_GRID_COMPONENT } from './grid.token';\nimport { ThyGridItem } from './thy-grid-item.component';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport {\n ThyGridResponsiveMode,\n ThyGridResponsiveDescription,\n THY_GRID_DEFAULT_COLUMNS,\n THY_GRID_ITEM_DEFAULT_SPAN,\n screenBreakpointsMap\n} from './grid.type';\n\n/**\n * 栅格组件\n * @name thy-grid, [thyGrid]\n * @order 10\n */\n@Directive({\n selector: '[thyGrid]',\n providers: [\n {\n provide: THY_GRID_COMPONENT,\n useExisting: ThyGrid\n }\n ],\n host: {\n class: 'thy-grid'\n }\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class ThyGrid implements ThyGridToken, OnInit {\n private elementRef = inject(ElementRef);\n private viewportRuler = inject(ViewportRuler);\n private ngZone = inject(NgZone);\n\n /**\n * @internal\n */\n readonly gridItems = contentChildren(ThyGridItem);\n\n /**\n * 栅格的列数\n * @default 24\n */\n readonly thyCols = input<number | ThyGridResponsiveDescription>(THY_GRID_DEFAULT_COLUMNS);\n\n /**\n * 栅格的水平间隔\n */\n readonly thyXGap = input<number | ThyGridResponsiveDescription>(0);\n\n /**\n * 栅格的垂直间隔\n */\n readonly thyYGap = input<number | ThyGridResponsiveDescription>(0);\n\n /**\n * 栅格的水平和垂直间隔\n */\n readonly thyGap = input<number | ThyGridResponsiveDescription>(0);\n\n /**\n * 响应式栅格列数<br/>\n * none: 不进行响应式布局。<br/>\n * self:根据grid的自身宽度进行响应式布局。<br/>\n * screen:根据屏幕断点进行响应式布局,目前预设了5种响应式尺寸:`xs: 0, sm: 576, md: 768, lg: 992, xl: 1200`。\n */\n readonly thyResponsive = input<ThyGridResponsiveMode>('none');\n\n private hostRenderer = useHostRenderer();\n\n private cols!: number;\n\n public xGap!: number;\n\n private yGap!: number;\n\n private numRegex = /^\\d+$/;\n\n private responsiveContainerWidth!: number;\n\n public gridItemPropValueChange$ = new Subject<void>();\n\n private takeUntilDestroyed = takeUntilDestroyed();\n\n constructor() {\n effect(() => {\n this.handleGridItems();\n });\n }\n\n ngOnInit(): void {\n this.setGridStyle();\n\n if (this.thyResponsive() !== 'none') {\n this.listenResizeEvent();\n }\n }\n\n private setGridStyle() {\n this.cols = this.calculateActualValue(this.thyCols() || THY_GRID_DEFAULT_COLUMNS, THY_GRID_DEFAULT_COLUMNS);\n const xGap = this.thyXGap();\n const yGap = this.thyYGap();\n const gap = this.thyGap();\n if (!xGap && !yGap) {\n this.xGap = this.calculateActualValue(gap || 0);\n this.yGap = this.xGap;\n } else {\n this.xGap = this.calculateActualValue(xGap || gap);\n this.yGap = this.calculateActualValue(yGap || gap);\n }\n\n this.hostRenderer.setStyle('display', 'grid');\n this.hostRenderer.setStyle('grid-template-columns', `repeat(${this.cols}, minmax(0, 1fr))`);\n this.hostRenderer.setStyle('gap', `${this.yGap}px ${this.xGap}px`);\n }\n\n private listenResizeEvent() {\n if (this.thyResponsive() === 'screen') {\n this.viewportRuler\n .change(100)\n .pipe(this.takeUntilDestroyed)\n .subscribe(() => {\n this.responsiveContainerWidth = this.viewportRuler.getViewportSize().width;\n this.setGridStyle();\n this.handleGridItems();\n });\n } else {\n this.ngZone.runOutsideAngular(() => {\n this.gridResizeObserver(this.elementRef.nativeElement)\n .pipe(throttleTime(100), this.takeUntilDestroyed)\n .subscribe(data => {\n this.responsiveContainerWidth = (data as ResizeObserverEntry[])[0]?.contentRect?.width;\n this.setGridStyle();\n this.handleGridItems();\n });\n });\n }\n }\n\n private handleGridItems() {\n this.gridItems().forEach((gridItem: ThyGridItem) => {\n const rawSpan = getRawSpan(gridItem.thySpan());\n const span = this.calculateActualValue(rawSpan, THY_GRID_ITEM_DEFAULT_SPAN);\n const offset = this.calculateActualValue(gridItem.thyOffset() || 0);\n\n gridItem.span = Math.min(span + offset, this.cols);\n gridItem.offset = offset;\n });\n\n this.gridItemPropValueChange$.next();\n }\n\n private calculateActualValue(rawValue: number | ThyGridResponsiveDescription, defaultValue?: number): number {\n if (this.numRegex.test(rawValue.toString().trim())) {\n return Number(rawValue);\n } else {\n const responsiveValueMap = this.getResponsiveValueMap(rawValue as ThyGridResponsiveDescription);\n const breakpointKeys = Object.keys(responsiveValueMap);\n const breakpoint = this.calculateBreakPoint(breakpointKeys);\n\n if (this.thyResponsive() !== 'none' && breakpoint) {\n return responsiveValueMap[breakpoint];\n } else if (breakpointKeys.includes('0')) {\n return responsiveValueMap['0'];\n } else {\n return defaultValue || 0;\n }\n }\n }\n\n private getResponsiveValueMap(responsiveValue: string): { [key: string]: number } {\n return responsiveValue.split(' ').reduce((map: { [key: string]: number }, item: string) => {\n if (this.numRegex.test(item.toString())) {\n item = `0:${item}`;\n }\n const [key, value] = item.split(':');\n map[key] = Number(value);\n return map;\n }, {});\n }\n\n private calculateBreakPoint(breakpointKeys: string[]): string | undefined {\n if (this.thyResponsive() === 'screen') {\n const width = this.responsiveContainerWidth || this.viewportRuler.getViewportSize().width;\n return breakpointKeys.find((key: string, index: number) => {\n return index < breakpointKeys.length - 1\n ? width >= screenBreakpointsMap[key] && width < screenBreakpointsMap[breakpointKeys[index + 1]]\n : width >= screenBreakpointsMap[key];\n });\n } else {\n const width = this.responsiveContainerWidth || this.elementRef.nativeElement.getBoundingClientRect().width;\n return breakpointKeys.find((key: string, index: number) => {\n return index < breakpointKeys.length - 1\n ? width >= Number(key) && width < Number(breakpointKeys[index + 1])\n : width >= Number(key);\n });\n }\n }\n\n private gridResizeObserver(element: HTMLElement): Observable<ResizeObserverEntry[]> {\n return new Observable(observer => {\n const resize = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n observer.next(entries);\n });\n resize.observe(element);\n return () => {\n resize.disconnect();\n };\n });\n }\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-grid',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n providers: [\n {\n provide: THY_GRID_COMPONENT,\n useExisting: ThyGrid\n }\n ],\n hostDirectives: [\n {\n directive: ThyGrid,\n inputs: ['thyCols', 'thyXGap', 'thyYGap', 'thyGap', 'thyResponsive']\n }\n ]\n})\nexport class ThyGridComponent {\n grid = inject(ThyGrid);\n}\n\nfunction getRawSpan(span: number | ThyGridResponsiveDescription | undefined | null): number | ThyGridResponsiveDescription {\n return span === undefined || span === null ? THY_GRID_ITEM_DEFAULT_SPAN : span;\n}\n","import { ChangeDetectionStrategy, Component, Directive, effect, input } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { isUndefinedOrNull } from '@tethys/cdk/is';\n\nexport type ThyFlexDirection = 'row' | 'column' | 'row-reverse' | 'column-reverse';\nexport type ThyFlexWrap = 'nowrap' | 'wrap' | 'wrap-reverse';\nexport type ThyFlexJustifyContent =\n | 'start'\n | 'end'\n | 'flex-start'\n | 'flex-end'\n | 'center'\n | 'space-between'\n | 'space-around'\n | 'initial'\n | 'inherit';\nexport type ThyFlexAlignItems = 'start' | 'end' | 'stretch' | 'center' | 'flex-start' | 'flex-end' | 'baseline' | 'initial' | 'inherit';\nexport type ThyFlexGrow = '1' | '0' | 0 | 1;\nexport type ThyFlexShrink = '1' | '0' | 0 | 1;\n\n/**\n * 设置容器为 Flex 布局组件\n * @name thy-flex, [thyFlex]\n * @order 20\n */\n@Directive({\n selector: '[thyFlex]',\n host: {\n class: 'thy-flex d-flex'\n }\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class ThyFlex {\n private hostRenderer = useHostRenderer();\n\n /**\n * Flex 方向,为 row 或者 column\n */\n readonly thyDirection = input<ThyFlexDirection, ThyFlexDirection>('row', {\n transform: (value: ThyFlexDirection) => value || 'row'\n });\n\n /**\n * Flex Wrap\n * @default nowrap\n */\n readonly thyWrap = input<ThyFlexWrap>();\n\n /**\n * Justify Content\n */\n readonly thyJustifyContent = input<ThyFlexJustifyContent>();\n\n /**\n * Align Items\n */\n readonly thyAlignItems = input<ThyFlexAlignItems>();\n\n /**\n * Flex Item 之间的间隙 Gap\n * @default 0\n */\n readonly thyGap = input<number>();\n\n constructor() {\n effect(() => {\n this.updateClasses();\n });\n }\n\n private updateClasses() {\n const classes: string[] = [];\n const justifyContent = this.thyJustifyContent();\n if (!isUndefinedOrNull(justifyContent)) {\n classes.push(`justify-content-${normalizeStartEnd(justifyContent)}`);\n }\n\n const alignItems = this.thyAlignItems();\n if (!isUndefinedOrNull(alignItems)) {\n classes.push(`align-items-${normalizeStartEnd(alignItems)}`);\n }\n\n const wrap = this.thyWrap();\n if (!isUndefinedOrNull(wrap)) {\n classes.push(`flex-${wrap}`);\n }\n\n const direction = this.thyDirection();\n if (!isUndefinedOrNull(direction)) {\n classes.push(`flex-${direction}`);\n }\n this.hostRenderer.updateClass(classes);\n this.hostRenderer.setStyle('gap', `${this.thyGap() ?? '0'}px`);\n }\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-flex',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: ThyFlex,\n inputs: ['thyDirection', 'thyWrap', 'thyJustifyContent', 'thyAlignItems', 'thyGap']\n }\n ],\n imports: []\n})\nexport class ThyFlexComponent {}\n\n/**\n * 设置为 Flex Item 组件\n * @name thy-flex-item, [thyFlexItem]\n * @order 25\n */\n@Directive({\n selector: '[thyFlexItem]',\n host: {\n class: 'thy-flex-item'\n }\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class ThyFlexItem {\n private hostRenderer = useHostRenderer();\n\n /**\n * Flex Item 属性,表示 grow 、shrink 、basis\n */\n readonly thyFlexItem = input<'fill' | string>();\n\n /**\n * Flew Grow,设置或检索弹性盒子的扩展比率,设置 1 为填充剩余区域\n */\n readonly thyGrow = input<ThyFlexGrow>();\n\n /**\n * Flex Shrink,设置或检索弹性盒收缩比例\n * @default 1\n */\n readonly thyShrink = input<ThyFlexShrink>();\n\n /**\n * Flex Basis,设置或检索弹性盒伸缩基准值\n * @default 1\n */\n readonly thyBasis = input<string>();\n\n constructor() {\n effect(() => {\n this.updateClasses();\n });\n }\n\n private updateClasses() {\n const flexItem = this.thyFlexItem();\n const classes: string[] = [];\n this.hostRenderer.setStyle('flex', '');\n this.hostRenderer.setStyle('basis', '');\n if (flexItem) {\n if (flexItem === 'fill') {\n classes.push(`flex-${flexItem}`);\n } else {\n this.hostRenderer.setStyle('flex', flexItem);\n }\n }\n const grow = this.thyGrow();\n if (!isUndefinedOrNull(grow)) {\n classes.push(`flex-grow-${grow}`);\n }\n const shrink = this.thyShrink();\n if (!isUndefinedOrNull(shrink)) {\n classes.push(`flex-shrink-${shrink}`);\n }\n const basis = this.thyBasis();\n if (!isUndefinedOrNull(basis)) {\n this.hostRenderer.setStyle('flex-basis', basis);\n }\n this.hostRenderer.updateClass(classes);\n }\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-flex-item',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n hostDirectives: [\n {\n directive: ThyFlexItem,\n inputs: ['thyFlexItem', 'thyGrow', 'thyShrink', 'thyBasis']\n }\n ]\n})\nexport class ThyFlexItemComponent {}\n\nfunction normalizeStartEnd(value: string): string {\n return value === 'flex-start' ? 'start' : value === 'flex-end' ? 'end' : value;\n}\n","import { NgModule } from '@angular/core';\nimport { ThyRowDirective } from './thy-row.directive';\nimport { ThyColDirective } from './thy-col.directive';\nimport { ThyGrid, ThyGridComponent } from './thy-grid.component';\nimport { ThyGridItem } from './thy-grid-item.component';\nimport { ThyFlex, ThyFlexComponent, ThyFlexItem, ThyFlexItemComponent } from './flex';\n\n@NgModule({\n exports: [\n ThyGrid,\n ThyGridComponent,\n ThyGridItem,\n ThyRowDirective,\n ThyColDirective,\n ThyFlex,\n ThyFlexItem,\n ThyFlexComponent,\n ThyFlexItemComponent\n ],\n imports: [\n ThyGrid,\n ThyGridComponent,\n ThyGridItem,\n ThyRowDirective,\n ThyColDirective,\n ThyFlex,\n ThyFlexItem,\n ThyFlexComponent,\n ThyFlexItemComponent\n ]\n})\nexport class ThyGridModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -99,8 +99,8 @@ let ThyGuiderStepRef = class ThyGuiderStepRef {
|
|
|
99
99
|
this.addPointClass(currentPointContainer, this.guiderRef.config.pointClass);
|
|
100
100
|
}
|
|
101
101
|
this.renderer.setStyle(currentPointContainer, 'position', 'absolute');
|
|
102
|
-
this.renderer.setStyle(currentPointContainer, 'left', pointPosition[0]
|
|
103
|
-
this.renderer.setStyle(currentPointContainer, 'top', pointPosition[1]
|
|
102
|
+
this.renderer.setStyle(currentPointContainer, 'left', `${pointPosition[0]}px`);
|
|
103
|
+
this.renderer.setStyle(currentPointContainer, 'top', `${pointPosition[1]}px`);
|
|
104
104
|
this.renderer.setStyle(currentPointContainer, 'transform', 'translate(-100%,-100%)');
|
|
105
105
|
return currentPointContainer;
|
|
106
106
|
}
|
|
@@ -137,6 +137,7 @@ let ThyGuiderStepRef = class ThyGuiderStepRef {
|
|
|
137
137
|
tipWithoutTarget(step) {
|
|
138
138
|
const position = this.getTipPosition(step);
|
|
139
139
|
this.lastPopoverRef = this.popover.open(this.guiderRef.config.hintComponent, {
|
|
140
|
+
// @ts-ignore
|
|
140
141
|
origin: null,
|
|
141
142
|
originPosition: position,
|
|
142
143
|
originActiveClass: '',
|
|
@@ -199,22 +200,22 @@ let ThyGuiderStepRef = class ThyGuiderStepRef {
|
|
|
199
200
|
let hintOffset = step.hintOffset || 0;
|
|
200
201
|
const pointXAxisOffset = pointPosition[0];
|
|
201
202
|
const pointYAxisOffset = pointPosition[1];
|
|
202
|
-
if (hintPlacement
|
|
203
|
+
if (hintPlacement?.startsWith('top')) {
|
|
203
204
|
if (pointYAxisOffset < pointContainerSize) {
|
|
204
205
|
hintOffset = hintOffset + Math.abs(pointYAxisOffset) + pointContainerSize;
|
|
205
206
|
}
|
|
206
207
|
}
|
|
207
|
-
else if (hintPlacement
|
|
208
|
+
else if (hintPlacement?.startsWith('bottom')) {
|
|
208
209
|
if (pointYAxisOffset > targetElementHeight) {
|
|
209
210
|
hintOffset = hintOffset + (pointYAxisOffset - targetElementHeight) + 10; // 10 为空隙量
|
|
210
211
|
}
|
|
211
212
|
}
|
|
212
|
-
else if (hintPlacement
|
|
213
|
+
else if (hintPlacement?.startsWith('left')) {
|
|
213
214
|
if (pointXAxisOffset < 0) {
|
|
214
215
|
hintOffset = hintOffset + Math.abs(pointXAxisOffset) + pointContainerSize;
|
|
215
216
|
}
|
|
216
217
|
}
|
|
217
|
-
else if (hintPlacement
|
|
218
|
+
else if (hintPlacement?.startsWith('right')) {
|
|
218
219
|
if (pointXAxisOffset > targetElementWidth) {
|
|
219
220
|
hintOffset = hintOffset + (pointXAxisOffset - targetElementWidth) + 10; // 10 为空隙量
|
|
220
221
|
}
|
|
@@ -412,10 +413,10 @@ class ThyGuiderManager {
|
|
|
412
413
|
guiderRef: this.thyGuiderRef
|
|
413
414
|
};
|
|
414
415
|
}
|
|
415
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
416
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
416
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGuiderManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
417
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGuiderManager, providedIn: 'root' }); }
|
|
417
418
|
}
|
|
418
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
419
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGuiderManager, decorators: [{
|
|
419
420
|
type: Injectable,
|
|
420
421
|
args: [{
|
|
421
422
|
providedIn: 'root'
|
|
@@ -477,10 +478,10 @@ class ThyGuider {
|
|
|
477
478
|
}
|
|
478
479
|
}
|
|
479
480
|
}
|
|
480
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
481
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
481
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGuider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
482
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGuider, providedIn: 'root' }); }
|
|
482
483
|
}
|
|
483
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
484
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGuider, decorators: [{
|
|
484
485
|
type: Injectable,
|
|
485
486
|
args: [{
|
|
486
487
|
providedIn: 'root'
|
|
@@ -500,7 +501,7 @@ class ThyGuiderTargetDirective {
|
|
|
500
501
|
/**
|
|
501
502
|
* 标记当前元素对应的新手引导中 step 的 key
|
|
502
503
|
*/
|
|
503
|
-
this.target = input(
|
|
504
|
+
this.target = input.required(...(ngDevMode ? [{ debugName: "target", alias: 'thyGuiderTarget' }] : [{ alias: 'thyGuiderTarget' }]));
|
|
504
505
|
}
|
|
505
506
|
ngOnInit() {
|
|
506
507
|
this.guiderManager.addStepTarget(this.target(), this.el.nativeElement);
|
|
@@ -522,16 +523,16 @@ class ThyGuiderTargetDirective {
|
|
|
522
523
|
}
|
|
523
524
|
this.guiderManager.removeStepTarget(this.target());
|
|
524
525
|
}
|
|
525
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
526
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
526
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGuiderTargetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
527
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: ThyGuiderTargetDirective, isStandalone: true, selector: "[thyGuiderTarget]", inputs: { target: { classPropertyName: "target", publicName: "thyGuiderTarget", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: ["thyGuiderTarget"], ngImport: i0 }); }
|
|
527
528
|
}
|
|
528
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
529
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGuiderTargetDirective, decorators: [{
|
|
529
530
|
type: Directive,
|
|
530
531
|
args: [{
|
|
531
532
|
selector: '[thyGuiderTarget]',
|
|
532
533
|
exportAs: 'thyGuiderTarget'
|
|
533
534
|
}]
|
|
534
|
-
}], propDecorators: { target: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyGuiderTarget", required:
|
|
535
|
+
}], propDecorators: { target: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyGuiderTarget", required: true }] }] } });
|
|
535
536
|
|
|
536
537
|
/**
|
|
537
538
|
* @private
|
|
@@ -567,10 +568,10 @@ class ThyGuiderHint {
|
|
|
567
568
|
trackByFn(index, step) {
|
|
568
569
|
return step.key || index;
|
|
569
570
|
}
|
|
570
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
571
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
571
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGuiderHint, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
572
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyGuiderHint, isStandalone: true, selector: "thy-guider-hint", host: { properties: { "class.thy-guider-tip-container": "this.guiderHint" } }, ngImport: i0, template: "<div class=\"thy-guider-tip-top\">\n <img [src]=\"stepRef.step.data.image\" [alt]=\"stepRef.step.data.title\" />\n <a href=\"javascript:;\" class=\"thy-guider-tip-top-btn\" (click)=\"jump()\">{{ locale().skip }}</a>\n</div>\n<div class=\"thy-guider-tip-content\">\n <div class=\"thy-guider-tip-content-title\">{{ stepRef.step.data.title }}</div>\n <div class=\"thy-guider-tip-content-description\">\n @if (descriptionTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef\"></ng-template>\n } @else {\n {{ descriptionString }}\n }\n </div>\n <div class=\"thy-guider-tip-step\">\n <div class=\"thy-guider-tip-step-pagination\">\n @for (step of guiderRef.steps; track trackByFn(i, step); let i = $index) {\n <span class=\"pagination-item\" [ngClass]=\"{ active: i === stepRef.stepIndex }\"></span>\n }\n </div>\n <div class=\"thy-guider-tip-step-btn\">\n @if (stepRef.stepIndex !== 0) {\n <a href=\"javascript:;\" (click)=\"prev()\" class=\"thy-guider-tip-step-pre\">{{ locale().prev }}</a>\n }\n @if (stepRef.stepIndex !== guiderRef.steps.length - 1) {\n <a href=\"javascript:;\" (click)=\"next()\" class=\"thy-guider-tip-step-next\">{{ locale().next }}</a>\n } @else {\n <a href=\"javascript:;\" (click)=\"end()\" class=\"thy-guider-tip-step-next\">{{ locale().finish }}</a>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
572
573
|
}
|
|
573
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
574
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGuiderHint, decorators: [{
|
|
574
575
|
type: Component,
|
|
575
576
|
args: [{ selector: 'thy-guider-hint', imports: [NgTemplateOutlet, NgClass], template: "<div class=\"thy-guider-tip-top\">\n <img [src]=\"stepRef.step.data.image\" [alt]=\"stepRef.step.data.title\" />\n <a href=\"javascript:;\" class=\"thy-guider-tip-top-btn\" (click)=\"jump()\">{{ locale().skip }}</a>\n</div>\n<div class=\"thy-guider-tip-content\">\n <div class=\"thy-guider-tip-content-title\">{{ stepRef.step.data.title }}</div>\n <div class=\"thy-guider-tip-content-description\">\n @if (descriptionTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef\"></ng-template>\n } @else {\n {{ descriptionString }}\n }\n </div>\n <div class=\"thy-guider-tip-step\">\n <div class=\"thy-guider-tip-step-pagination\">\n @for (step of guiderRef.steps; track trackByFn(i, step); let i = $index) {\n <span class=\"pagination-item\" [ngClass]=\"{ active: i === stepRef.stepIndex }\"></span>\n }\n </div>\n <div class=\"thy-guider-tip-step-btn\">\n @if (stepRef.stepIndex !== 0) {\n <a href=\"javascript:;\" (click)=\"prev()\" class=\"thy-guider-tip-step-pre\">{{ locale().prev }}</a>\n }\n @if (stepRef.stepIndex !== guiderRef.steps.length - 1) {\n <a href=\"javascript:;\" (click)=\"next()\" class=\"thy-guider-tip-step-next\">{{ locale().next }}</a>\n } @else {\n <a href=\"javascript:;\" (click)=\"end()\" class=\"thy-guider-tip-step-next\">{{ locale().finish }}</a>\n }\n </div>\n </div>\n</div>\n" }]
|
|
576
577
|
}], ctorParameters: () => [], propDecorators: { guiderHint: [{
|
|
@@ -580,11 +581,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
580
581
|
defaultGuiderPositionConfig.hintComponent = ThyGuiderHint;
|
|
581
582
|
|
|
582
583
|
class ThyGuiderModule {
|
|
583
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
584
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
585
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
584
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGuiderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
585
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyGuiderModule, imports: [CommonModule, ThySharedModule, ThyIconModule, ThyButtonModule, ThyPopoverModule, ThyGuiderHint, ThyGuiderTargetDirective], exports: [ThyGuiderHint, ThyGuiderTargetDirective] }); }
|
|
586
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGuiderModule, providers: [ThyGuider], imports: [CommonModule, ThySharedModule, ThyIconModule, ThyButtonModule, ThyPopoverModule] }); }
|
|
586
587
|
}
|
|
587
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
588
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyGuiderModule, decorators: [{
|
|
588
589
|
type: NgModule,
|
|
589
590
|
args: [{
|
|
590
591
|
imports: [CommonModule, ThySharedModule, ThyIconModule, ThyButtonModule, ThyPopoverModule, ThyGuiderHint, ThyGuiderTargetDirective],
|