ngx-tethys 20.0.1 → 20.0.2
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 +17 -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 +3 -3
- 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 +11 -11
- 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 +28 -27
- 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-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 +12 -11
- 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 +60 -38
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +82 -79
- 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 +19 -16
- 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 +22 -22
- 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/nav/index.d.ts +12 -12
- package/notify/index.d.ts +1 -1
- package/package.json +1 -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 +21 -21
- package/shared/index.d.ts +29 -29
- 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/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
|
@@ -4,7 +4,7 @@ import { NgClass, CommonModule } from '@angular/common';
|
|
|
4
4
|
import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
|
|
5
5
|
import { ThyTooltipModule } from 'ngx-tethys/tooltip';
|
|
6
6
|
import { thumbMotion } from 'ngx-tethys/core';
|
|
7
|
-
import { coerceBooleanProperty, assertIconOnly } from 'ngx-tethys/util';
|
|
7
|
+
import { coerceBooleanProperty, assertIconOnly, isUndefinedOrNull } from 'ngx-tethys/util';
|
|
8
8
|
import { fromEvent } from 'rxjs';
|
|
9
9
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
10
10
|
|
|
@@ -75,15 +75,15 @@ class ThySegmentItem {
|
|
|
75
75
|
}
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
79
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
78
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySegmentItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
79
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThySegmentItem, isStandalone: true, selector: "thy-segment-item,[thy-segment-item]", inputs: { thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: true, isRequired: false, transformFunction: null }, thyIcon: { classPropertyName: "thyIcon", publicName: "thyIcon", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.disabled": "thyDisabled()" }, classAttribute: "thy-segment-item" }, ngImport: i0, template: "<div\n class=\"thy-segment-item-label\"\n [ngClass]=\"{\n 'thy-segment-item-label-only-icon': isOnlyIcon()\n }\">\n @if (thyIcon()) {\n <thy-icon class=\"thy-segment-item-icon\" [ngClass]=\"{ 'icon-with-text': isWithText() }\" [thyIconName]=\"thyIcon()\"></thy-icon>\n }\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
80
80
|
}
|
|
81
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySegmentItem, decorators: [{
|
|
82
82
|
type: Component,
|
|
83
83
|
args: [{ selector: 'thy-segment-item,[thy-segment-item]', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
84
84
|
class: 'thy-segment-item',
|
|
85
85
|
'[class.disabled]': 'thyDisabled()'
|
|
86
|
-
}, imports: [NgClass, ThyIcon], template: "<div\n class=\"thy-segment-item-label\"\n [ngClass]=\"{\n 'thy-segment-item-label-only-icon': isOnlyIcon()\n }\"
|
|
86
|
+
}, imports: [NgClass, ThyIcon], template: "<div\n class=\"thy-segment-item-label\"\n [ngClass]=\"{\n 'thy-segment-item-label-only-icon': isOnlyIcon()\n }\">\n @if (thyIcon()) {\n <thy-icon class=\"thy-segment-item-icon\" [ngClass]=\"{ 'icon-with-text': isWithText() }\" [thyIconName]=\"thyIcon()\"></thy-icon>\n }\n <ng-content></ng-content>\n</div>\n" }]
|
|
87
87
|
}], ctorParameters: () => [], propDecorators: { thyValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyValue", required: false }] }], thyIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyIcon", required: false }] }], thyDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDisabled", required: false }] }] } });
|
|
88
88
|
|
|
89
89
|
/**
|
|
@@ -120,12 +120,13 @@ class ThySegment {
|
|
|
120
120
|
* 选项被选中的回调事件
|
|
121
121
|
*/
|
|
122
122
|
this.thySelectChange = output();
|
|
123
|
+
this.selectedItem = null;
|
|
123
124
|
this.animationState = signal(null, ...(ngDevMode ? [{ debugName: "animationState" }] : []));
|
|
124
125
|
this.transitionedTo = null;
|
|
125
126
|
effect(() => {
|
|
126
127
|
const value = this.thyActiveIndex();
|
|
127
128
|
this.newActiveIndex = value;
|
|
128
|
-
if (value < 0 || value === this.activeIndex) {
|
|
129
|
+
if (isUndefinedOrNull(value) || value < 0 || value === this.activeIndex) {
|
|
129
130
|
return;
|
|
130
131
|
}
|
|
131
132
|
setTimeout(() => {
|
|
@@ -145,14 +146,16 @@ class ThySegment {
|
|
|
145
146
|
(options || []).forEach(item => {
|
|
146
147
|
item.unselect();
|
|
147
148
|
});
|
|
148
|
-
this.selectedItem = options?.[this.newActiveIndex] || options?.[0];
|
|
149
|
+
this.selectedItem = (!isUndefinedOrNull(this.newActiveIndex) && options?.[this.newActiveIndex]) || options?.[0];
|
|
149
150
|
this.selectedItem?.select();
|
|
150
151
|
});
|
|
151
152
|
}
|
|
153
|
+
// @ts-ignore
|
|
152
154
|
changeSelectedItem(item, event) {
|
|
153
155
|
const options = this.options();
|
|
154
156
|
this.animationState.set({
|
|
155
157
|
value: 'from',
|
|
158
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain
|
|
156
159
|
params: getThumbAnimationProps(options?.[this.activeIndex || 0]?.elementRef.nativeElement)
|
|
157
160
|
});
|
|
158
161
|
this.selectedItem = null;
|
|
@@ -175,15 +178,15 @@ class ThySegment {
|
|
|
175
178
|
this.animationState.set(null);
|
|
176
179
|
}
|
|
177
180
|
}
|
|
178
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
179
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
181
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySegment, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
182
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThySegment, isStandalone: true, selector: "thy-segment", inputs: { thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyMode: { classPropertyName: "thyMode", publicName: "thyMode", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null }, thyActiveIndex: { classPropertyName: "thyActiveIndex", publicName: "thyActiveIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thySelectChange: "thySelectChange" }, host: { properties: { "class.thy-segment-xs": "thySize() === 'xs'", "class.thy-segment-sm": "thySize() === 'sm'", "class.thy-segment-md": "thySize() === 'md'", "class.thy-segment-default": "!thySize() || thySize() === 'default'", "class.thy-segment-block": "thyMode() === 'block'", "class.disabled": "thyDisabled()" }, classAttribute: "thy-segment" }, providers: [
|
|
180
183
|
{
|
|
181
184
|
provide: THY_SEGMENTED_COMPONENT,
|
|
182
185
|
useExisting: ThySegment
|
|
183
186
|
}
|
|
184
|
-
], queries: [{ propertyName: "options", predicate: ThySegmentItem, isSignal: true }], exportAs: ["thySegment"], ngImport: i0, template: "<div class=\"thy-segment-group\">\n @if (animationState()) {\n <div\n class=\"thy-segment-thumb thy-segment-thumb-motion\"\n [@thumbMotion]=\"animationState()\"\n (@thumbMotion.done)=\"handleThumbAnimationDone($event)\"
|
|
187
|
+
], queries: [{ propertyName: "options", predicate: ThySegmentItem, isSignal: true }], exportAs: ["thySegment"], ngImport: i0, template: "<div class=\"thy-segment-group\">\n @if (animationState()) {\n <div\n class=\"thy-segment-thumb thy-segment-thumb-motion\"\n [@thumbMotion]=\"animationState()\"\n (@thumbMotion.done)=\"handleThumbAnimationDone($event)\"></div>\n }\n\n <ng-content></ng-content>\n</div>\n", animations: [thumbMotion], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
185
188
|
}
|
|
186
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
189
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySegment, decorators: [{
|
|
187
190
|
type: Component,
|
|
188
191
|
args: [{ selector: 'thy-segment', exportAs: 'thySegment', animations: [thumbMotion], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
189
192
|
{
|
|
@@ -198,7 +201,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
198
201
|
'[class.thy-segment-default]': `!thySize() || thySize() === 'default'`,
|
|
199
202
|
'[class.thy-segment-block]': `thyMode() === 'block'`,
|
|
200
203
|
'[class.disabled]': 'thyDisabled()'
|
|
201
|
-
}, imports: [], template: "<div class=\"thy-segment-group\">\n @if (animationState()) {\n <div\n class=\"thy-segment-thumb thy-segment-thumb-motion\"\n [@thumbMotion]=\"animationState()\"\n (@thumbMotion.done)=\"handleThumbAnimationDone($event)\"
|
|
204
|
+
}, imports: [], template: "<div class=\"thy-segment-group\">\n @if (animationState()) {\n <div\n class=\"thy-segment-thumb thy-segment-thumb-motion\"\n [@thumbMotion]=\"animationState()\"\n (@thumbMotion.done)=\"handleThumbAnimationDone($event)\"></div>\n }\n\n <ng-content></ng-content>\n</div>\n" }]
|
|
202
205
|
}], ctorParameters: () => [], propDecorators: { options: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => ThySegmentItem), { isSignal: true }] }], thySize: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySize", required: false }] }], thyMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyMode", required: false }] }], thyDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDisabled", required: false }] }], thyActiveIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyActiveIndex", required: false }] }], thySelectChange: [{ type: i0.Output, args: ["thySelectChange"] }] } });
|
|
203
206
|
function getThumbAnimationProps(element) {
|
|
204
207
|
return {
|
|
@@ -208,11 +211,11 @@ function getThumbAnimationProps(element) {
|
|
|
208
211
|
}
|
|
209
212
|
|
|
210
213
|
class ThySegmentModule {
|
|
211
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
212
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
213
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
214
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySegmentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
215
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThySegmentModule, imports: [CommonModule, ThyIconModule, ThyTooltipModule, ThySegment, ThySegmentItem], exports: [ThySegment, ThySegmentItem] }); }
|
|
216
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySegmentModule, imports: [CommonModule, ThyIconModule, ThyTooltipModule, ThySegmentItem] }); }
|
|
214
217
|
}
|
|
215
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
218
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySegmentModule, decorators: [{
|
|
216
219
|
type: NgModule,
|
|
217
220
|
args: [{
|
|
218
221
|
imports: [CommonModule, ThyIconModule, ThyTooltipModule, ThySegment, ThySegmentItem],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-segment.mjs","sources":["../../../src/segment/segment.token.ts","../../../src/segment/segment-item.component.ts","../../../src/segment/segment-item.component.html","../../../src/segment/segment.component.ts","../../../src/segment/segment.component.html","../../../src/segment/segment.module.ts","../../../src/segment/ngx-tethys-segment.ts"],"sourcesContent":["import { ElementRef, InjectionToken, InputSignal, InputSignalWithTransform } from '@angular/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { ThyBooleanInput } from 'ngx-tethys/util';\n\nexport interface IThySegmentItemComponent {\n elementRef: ElementRef<HTMLElement>;\n thyValue: SafeAny;\n unselect: () => void;\n select: () => void;\n}\n\nexport interface IThySegmentComponent {\n thyMode: InputSignal<string>;\n thyDisabled: InputSignalWithTransform<boolean, ThyBooleanInput> | InputSignal<boolean>;\n selectedItem: IThySegmentItemComponent;\n changeSelectedItem: (item: IThySegmentItemComponent, event?: Event) => void;\n}\n\nexport const THY_SEGMENTED_COMPONENT = new InjectionToken<IThySegmentComponent>('THY_SEGMENTED_COMPONENT');\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n NgZone,\n Renderer2,\n afterNextRender,\n inject,\n input,\n signal\n} from '@angular/core';\nimport { IThySegmentItemComponent, THY_SEGMENTED_COMPONENT } from './segment.token';\nimport { assertIconOnly, coerceBooleanProperty } from 'ngx-tethys/util';\nimport { fromEvent } from 'rxjs';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/**\n * 分段控制器的选项组件\n * @name thy-segment-item,[thy-segment-item]\n */\n@Component({\n selector: 'thy-segment-item,[thy-segment-item]',\n templateUrl: './segment-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-segment-item',\n '[class.disabled]': 'thyDisabled()'\n },\n imports: [NgClass, ThyIcon]\n})\nexport class ThySegmentItem implements IThySegmentItemComponent {\n elementRef = inject(ElementRef);\n private ngZone = inject(NgZone);\n private renderer = inject(Renderer2);\n private parent = inject(THY_SEGMENTED_COMPONENT, { optional: true })!;\n\n /**\n * 选项的值\n */\n readonly thyValue = input<SafeAny>();\n\n /**\n * 选项的图标\n */\n readonly thyIcon = input<string>();\n\n /**\n * 是否禁用该选项\n */\n readonly thyDisabled = input(false, { transform: coerceBooleanProperty });\n\n public isOnlyIcon = signal(false);\n\n public isWithText = signal(false);\n\n private destroyRef = inject(DestroyRef);\n\n constructor() {\n const elementRef = this.elementRef;\n const ngZone = this.ngZone;\n\n ngZone.runOutsideAngular(() =>\n fromEvent(elementRef.nativeElement, 'click')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: Event) => {\n if (\n !this.thyDisabled() &&\n !this.parent.thyDisabled() &&\n this.parent.selectedItem &&\n this.parent.selectedItem !== this\n ) {\n ngZone.run(() => {\n this.parent.selectedItem.unselect();\n this.parent.changeSelectedItem(this, event);\n });\n }\n })\n );\n\n afterNextRender(() => {\n const labelDiv = this.elementRef.nativeElement.children[0];\n this.isOnlyIcon.set(assertIconOnly(labelDiv) && this.parent.thyMode() === 'inline');\n this.wrapSpanForText(labelDiv.childNodes);\n });\n }\n\n public select(): void {\n this.elementRef.nativeElement.classList.add('active');\n }\n\n public unselect(): void {\n this.elementRef.nativeElement.classList.remove('active');\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.insertBefore(parent, span, node);\n this.renderer.appendChild(span, node);\n }\n\n if (node.nodeName === '#text' || node.nodeName === 'SPAN') {\n this.isWithText.set(true);\n }\n });\n }\n}\n","<div\n class=\"thy-segment-item-label\"\n [ngClass]=\"{\n 'thy-segment-item-label-only-icon': isOnlyIcon()\n }\"\n >\n @if (thyIcon()) {\n <thy-icon class=\"thy-segment-item-icon\" [ngClass]=\"{ 'icon-with-text': isWithText() }\" [thyIconName]=\"thyIcon()\"></thy-icon>\n }\n <ng-content></ng-content>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ViewEncapsulation,\n numberAttribute,\n inject,\n input,\n signal,\n effect,\n output,\n contentChildren\n} from '@angular/core';\nimport { ThumbAnimationProps } from 'ngx-tethys/core';\nimport { thumbMotion } from 'ngx-tethys/core';\nimport { ThySegmentItem } from './segment-item.component';\nimport { IThySegmentComponent, THY_SEGMENTED_COMPONENT } from './segment.token';\nimport { ThySegmentEvent } from './types';\nimport { AnimationEvent } from '@angular/animations';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThySegmentSize = 'xs' | 'sm' | 'md' | 'default';\n\nexport type ThySegmentMode = 'block' | 'inline';\n\n/**\n * 分段控制器组件\n * @name thy-segment\n */\n@Component({\n selector: 'thy-segment',\n templateUrl: './segment.component.html',\n exportAs: 'thySegment',\n animations: [thumbMotion],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: THY_SEGMENTED_COMPONENT,\n useExisting: ThySegment\n }\n ],\n host: {\n class: 'thy-segment',\n '[class.thy-segment-xs]': `thySize() === 'xs'`,\n '[class.thy-segment-sm]': `thySize() === 'sm'`,\n '[class.thy-segment-md]': `thySize() === 'md'`,\n '[class.thy-segment-default]': `!thySize() || thySize() === 'default'`,\n '[class.thy-segment-block]': `thyMode() === 'block'`,\n '[class.disabled]': 'thyDisabled()'\n },\n imports: []\n})\nexport class ThySegment implements IThySegmentComponent {\n private cdr = inject(ChangeDetectorRef);\n private destroyRef = inject(DestroyRef);\n\n /**\n * @internal\n */\n readonly options = contentChildren(ThySegmentItem);\n\n /**\n * 大小\n * @type xs | sm | md | default\n */\n readonly thySize = input<ThySegmentSize>('default');\n\n /**\n * 模式\n * @type block | inline\n */\n readonly thyMode = input<ThySegmentMode>('block');\n\n /**\n * 是否禁用分段控制器\n */\n readonly thyDisabled = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 选中选项的索引\n */\n readonly thyActiveIndex = input(undefined, { transform: numberAttribute });\n\n /**\n * 选项被选中的回调事件\n */\n readonly thySelectChange = output<ThySegmentEvent>();\n\n public selectedItem: ThySegmentItem;\n\n private newActiveIndex: number;\n\n private activeIndex: number;\n\n public animationState = signal<{ value: string; params: ThumbAnimationProps }>(null);\n\n public transitionedTo: any = null;\n\n constructor() {\n effect(() => {\n const value = this.thyActiveIndex();\n this.newActiveIndex = value;\n if (value < 0 || value === this.activeIndex) {\n return;\n }\n setTimeout(() => {\n const options = this.options();\n const selectedItem = options?.[this.activeIndex];\n if (selectedItem) {\n selectedItem.unselect();\n this.changeSelectedItem(options?.[value]);\n } else {\n this.activeIndex = value;\n }\n });\n });\n\n effect(() => {\n const options = this.options();\n (options || []).forEach(item => {\n item.unselect();\n });\n this.selectedItem = options?.[this.newActiveIndex] || options?.[0];\n this.selectedItem?.select();\n });\n }\n\n public changeSelectedItem(item: ThySegmentItem, event?: Event): void {\n const options = this.options();\n this.animationState.set({\n value: 'from',\n params: getThumbAnimationProps(options?.[this.activeIndex || 0]?.elementRef.nativeElement!)\n });\n this.selectedItem = null;\n this.cdr.detectChanges();\n\n this.animationState.set({\n value: 'to',\n params: getThumbAnimationProps(item.elementRef.nativeElement!)\n });\n this.transitionedTo = item;\n this.activeIndex = options.findIndex(option => {\n return option.thyValue() === item?.thyValue();\n });\n this.thySelectChange.emit({ event: event, value: item.thyValue(), activeIndex: this.activeIndex });\n }\n\n public handleThumbAnimationDone(event: AnimationEvent): void {\n if (event.fromState === 'from') {\n this.selectedItem = this.transitionedTo;\n this.selectedItem?.select();\n this.transitionedTo = null;\n this.animationState.set(null);\n }\n }\n}\n\nfunction getThumbAnimationProps(element: HTMLElement): ThumbAnimationProps {\n return {\n transform: element.offsetLeft,\n width: element.clientWidth\n };\n}\n","<div class=\"thy-segment-group\">\n @if (animationState()) {\n <div\n class=\"thy-segment-thumb thy-segment-thumb-motion\"\n [@thumbMotion]=\"animationState()\"\n (@thumbMotion.done)=\"handleThumbAnimationDone($event)\"\n ></div>\n }\n\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\nimport { ThySegment } from './segment.component';\nimport { ThySegmentItem } from './segment-item.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyTooltipModule, ThySegment, ThySegmentItem],\n exports: [ThySegment, ThySegmentItem]\n})\nexport class ThySegmentModule {}\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-segment.mjs","sources":["../../../src/segment/segment.token.ts","../../../src/segment/segment-item.component.ts","../../../src/segment/segment-item.component.html","../../../src/segment/segment.component.ts","../../../src/segment/segment.component.html","../../../src/segment/segment.module.ts","../../../src/segment/ngx-tethys-segment.ts"],"sourcesContent":["import { ElementRef, InjectionToken, InputSignal, InputSignalWithTransform } from '@angular/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { ThyBooleanInput } from 'ngx-tethys/util';\n\nexport interface IThySegmentItemComponent {\n elementRef: ElementRef<HTMLElement>;\n thyValue: SafeAny;\n unselect: () => void;\n select: () => void;\n}\n\nexport interface IThySegmentComponent {\n thyMode: InputSignal<string>;\n thyDisabled: InputSignalWithTransform<boolean, ThyBooleanInput> | InputSignal<boolean>;\n selectedItem: IThySegmentItemComponent | null;\n changeSelectedItem: (item: IThySegmentItemComponent, event?: Event) => void;\n}\n\nexport const THY_SEGMENTED_COMPONENT = new InjectionToken<IThySegmentComponent>('THY_SEGMENTED_COMPONENT');\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n NgZone,\n Renderer2,\n afterNextRender,\n inject,\n input,\n signal\n} from '@angular/core';\nimport { IThySegmentItemComponent, THY_SEGMENTED_COMPONENT } from './segment.token';\nimport { assertIconOnly, coerceBooleanProperty } from 'ngx-tethys/util';\nimport { fromEvent } from 'rxjs';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/**\n * 分段控制器的选项组件\n * @name thy-segment-item,[thy-segment-item]\n */\n@Component({\n selector: 'thy-segment-item,[thy-segment-item]',\n templateUrl: './segment-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-segment-item',\n '[class.disabled]': 'thyDisabled()'\n },\n imports: [NgClass, ThyIcon]\n})\nexport class ThySegmentItem implements IThySegmentItemComponent {\n elementRef = inject(ElementRef);\n private ngZone = inject(NgZone);\n private renderer = inject(Renderer2);\n private parent = inject(THY_SEGMENTED_COMPONENT, { optional: true })!;\n\n /**\n * 选项的值\n */\n readonly thyValue = input<SafeAny>();\n\n /**\n * 选项的图标\n */\n readonly thyIcon = input<string>();\n\n /**\n * 是否禁用该选项\n */\n readonly thyDisabled = input(false, { transform: coerceBooleanProperty });\n\n public isOnlyIcon = signal(false);\n\n public isWithText = signal(false);\n\n private destroyRef = inject(DestroyRef);\n\n constructor() {\n const elementRef = this.elementRef;\n const ngZone = this.ngZone;\n\n ngZone.runOutsideAngular(() =>\n fromEvent<Event>(elementRef.nativeElement, 'click')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: Event) => {\n if (\n !this.thyDisabled() &&\n !this.parent.thyDisabled() &&\n this.parent.selectedItem &&\n this.parent.selectedItem !== this\n ) {\n ngZone.run(() => {\n this.parent.selectedItem!.unselect();\n this.parent.changeSelectedItem(this, event);\n });\n }\n })\n );\n\n afterNextRender(() => {\n const labelDiv = this.elementRef.nativeElement.children[0];\n this.isOnlyIcon.set(assertIconOnly(labelDiv) && this.parent.thyMode() === 'inline');\n this.wrapSpanForText(labelDiv.childNodes);\n });\n }\n\n public select(): void {\n this.elementRef.nativeElement.classList.add('active');\n }\n\n public unselect(): void {\n this.elementRef.nativeElement.classList.remove('active');\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.insertBefore(parent, span, node);\n this.renderer.appendChild(span, node);\n }\n\n if (node.nodeName === '#text' || node.nodeName === 'SPAN') {\n this.isWithText.set(true);\n }\n });\n }\n}\n","<div\n class=\"thy-segment-item-label\"\n [ngClass]=\"{\n 'thy-segment-item-label-only-icon': isOnlyIcon()\n }\">\n @if (thyIcon()) {\n <thy-icon class=\"thy-segment-item-icon\" [ngClass]=\"{ 'icon-with-text': isWithText() }\" [thyIconName]=\"thyIcon()\"></thy-icon>\n }\n <ng-content></ng-content>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ViewEncapsulation,\n numberAttribute,\n inject,\n input,\n signal,\n effect,\n output,\n contentChildren\n} from '@angular/core';\nimport { ThumbAnimationProps, thumbMotion } from 'ngx-tethys/core';\nimport { ThySegmentItem } from './segment-item.component';\nimport { IThySegmentComponent, THY_SEGMENTED_COMPONENT } from './segment.token';\nimport { ThySegmentEvent } from './types';\nimport { AnimationEvent } from '@angular/animations';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { coerceBooleanProperty, isUndefined, isUndefinedOrNull } from 'ngx-tethys/util';\n\nexport type ThySegmentSize = 'xs' | 'sm' | 'md' | 'default';\n\nexport type ThySegmentMode = 'block' | 'inline';\n\n/**\n * 分段控制器组件\n * @name thy-segment\n */\n@Component({\n selector: 'thy-segment',\n templateUrl: './segment.component.html',\n exportAs: 'thySegment',\n animations: [thumbMotion],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: THY_SEGMENTED_COMPONENT,\n useExisting: ThySegment\n }\n ],\n host: {\n class: 'thy-segment',\n '[class.thy-segment-xs]': `thySize() === 'xs'`,\n '[class.thy-segment-sm]': `thySize() === 'sm'`,\n '[class.thy-segment-md]': `thySize() === 'md'`,\n '[class.thy-segment-default]': `!thySize() || thySize() === 'default'`,\n '[class.thy-segment-block]': `thyMode() === 'block'`,\n '[class.disabled]': 'thyDisabled()'\n },\n imports: []\n})\nexport class ThySegment implements IThySegmentComponent {\n private cdr = inject(ChangeDetectorRef);\n private destroyRef = inject(DestroyRef);\n\n /**\n * @internal\n */\n readonly options = contentChildren(ThySegmentItem);\n\n /**\n * 大小\n * @type xs | sm | md | default\n */\n readonly thySize = input<ThySegmentSize>('default');\n\n /**\n * 模式\n * @type block | inline\n */\n readonly thyMode = input<ThySegmentMode | string>('block');\n\n /**\n * 是否禁用分段控制器\n */\n readonly thyDisabled = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 选中选项的索引\n */\n readonly thyActiveIndex = input(undefined, { transform: numberAttribute });\n\n /**\n * 选项被选中的回调事件\n */\n readonly thySelectChange = output<ThySegmentEvent>();\n\n public selectedItem: ThySegmentItem | null = null;\n\n private newActiveIndex?: number;\n\n private activeIndex?: number;\n\n public animationState = signal<{ value: string; params: ThumbAnimationProps } | null>(null);\n\n public transitionedTo: any = null;\n\n constructor() {\n effect(() => {\n const value = this.thyActiveIndex();\n this.newActiveIndex = value;\n if (isUndefinedOrNull(value) || value < 0 || value === this.activeIndex) {\n return;\n }\n setTimeout(() => {\n const options = this.options();\n const selectedItem = options?.[this.activeIndex!];\n if (selectedItem) {\n selectedItem.unselect();\n this.changeSelectedItem(options?.[value]);\n } else {\n this.activeIndex = value;\n }\n });\n });\n\n effect(() => {\n const options = this.options();\n (options || []).forEach(item => {\n item.unselect();\n });\n this.selectedItem = (!isUndefinedOrNull(this.newActiveIndex) && options?.[this.newActiveIndex]) || options?.[0];\n this.selectedItem?.select();\n });\n }\n\n // @ts-ignore\n public changeSelectedItem(item: ThySegmentItem, event?: Event): void {\n const options = this.options();\n this.animationState.set({\n value: 'from',\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n params: getThumbAnimationProps(options?.[this.activeIndex || 0]?.elementRef.nativeElement!)\n });\n this.selectedItem = null;\n this.cdr.detectChanges();\n\n this.animationState.set({\n value: 'to',\n params: getThumbAnimationProps(item.elementRef.nativeElement!)\n });\n this.transitionedTo = item;\n this.activeIndex = options.findIndex(option => {\n return option.thyValue() === item?.thyValue();\n });\n this.thySelectChange.emit({ event: event, value: item.thyValue(), activeIndex: this.activeIndex });\n }\n\n public handleThumbAnimationDone(event: AnimationEvent): void {\n if (event.fromState === 'from') {\n this.selectedItem = this.transitionedTo;\n this.selectedItem?.select();\n this.transitionedTo = null;\n this.animationState.set(null);\n }\n }\n}\n\nfunction getThumbAnimationProps(element: HTMLElement): ThumbAnimationProps {\n return {\n transform: element.offsetLeft,\n width: element.clientWidth\n };\n}\n","<div class=\"thy-segment-group\">\n @if (animationState()) {\n <div\n class=\"thy-segment-thumb thy-segment-thumb-motion\"\n [@thumbMotion]=\"animationState()\"\n (@thumbMotion.done)=\"handleThumbAnimationDone($event)\"></div>\n }\n\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\nimport { ThySegment } from './segment.component';\nimport { ThySegmentItem } from './segment-item.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyTooltipModule, ThySegment, ThySegmentItem],\n exports: [ThySegment, ThySegmentItem]\n})\nexport class ThySegmentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|