ngx-tethys 20.0.1-0 → 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 +19 -2
- 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 +6 -12
- package/arrow-switcher/index.d.ts +6 -6
- package/autocomplete/index.d.ts +23 -28
- 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 +28 -65
- 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 +48 -113
- 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 +517 -433
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +284 -258
- 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 +91 -76
- package/shared/index.d.ts +152 -81
- package/shared/option/styles/option.mixin.scss +0 -10
- package/shared/option/styles/select-dropdown.scss +10 -9
- 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
|
@@ -3,8 +3,8 @@ import { input, inject, ViewContainerRef, effect, Directive, ElementRef, NgZone,
|
|
|
3
3
|
import { reqAnimFrame, TabIndexDisabledControlValueAccessorMixin, ThyTranslate, mixinDisabled, MixinBase } from 'ngx-tethys/core';
|
|
4
4
|
import { coerceBooleanProperty, keycodes, isTemplateRef, isUndefinedOrNull, coerceArray, ENTER, SPACE, hasModifierKey } from 'ngx-tethys/util';
|
|
5
5
|
import { useHostRenderer } from '@tethys/cdk/dom';
|
|
6
|
-
import { Subject, Observable, fromEvent, merge, throttleTime, of
|
|
7
|
-
import { startWith, switchMap, takeUntil
|
|
6
|
+
import { Subject, Observable, fromEvent, merge, throttleTime, of } from 'rxjs';
|
|
7
|
+
import { startWith, switchMap, takeUntil } from 'rxjs/operators';
|
|
8
8
|
import { normalizePassiveListenerOptions } from '@angular/cdk/platform';
|
|
9
9
|
import { CdkDrag } from '@angular/cdk/drag-drop';
|
|
10
10
|
import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
|
|
@@ -12,7 +12,7 @@ import { ThyTag, ThyTagModule } from 'ngx-tethys/tag';
|
|
|
12
12
|
import { NgClass, NgStyle, NgTemplateOutlet, CommonModule } from '@angular/common';
|
|
13
13
|
import * as i1 from '@angular/forms';
|
|
14
14
|
import { FormsModule } from '@angular/forms';
|
|
15
|
-
import { takeUntilDestroyed
|
|
15
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
16
16
|
import { ThyFlexibleText } from 'ngx-tethys/flexible-text';
|
|
17
17
|
import * as i2 from 'ngx-tethys/grid';
|
|
18
18
|
import { ThyGridModule } from 'ngx-tethys/grid';
|
|
@@ -34,10 +34,10 @@ class ThyTranscludeDirective {
|
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
38
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTranscludeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
38
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: ThyTranscludeDirective, isStandalone: true, selector: "[thyTransclude]", inputs: { thyTransclude: { classPropertyName: "thyTransclude", publicName: "thyTransclude", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
39
39
|
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTranscludeDirective, decorators: [{
|
|
41
41
|
type: Directive,
|
|
42
42
|
args: [{
|
|
43
43
|
selector: '[thyTransclude]'
|
|
@@ -82,10 +82,10 @@ class ThyAutofocusDirective {
|
|
|
82
82
|
}
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
86
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
85
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyAutofocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
86
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: ThyAutofocusDirective, isStandalone: true, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: { thyAutofocus: { classPropertyName: "thyAutofocus", publicName: "thyAutofocus", isSignal: true, isRequired: false, transformFunction: null }, thyAutoSelect: { classPropertyName: "thyAutoSelect", publicName: "thyAutoSelect", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
87
87
|
}
|
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyAutofocusDirective, decorators: [{
|
|
89
89
|
type: Directive,
|
|
90
90
|
args: [{
|
|
91
91
|
selector: 'input[thyAutofocus],textarea[thyAutofocus]'
|
|
@@ -119,10 +119,10 @@ class ThyEnterDirective {
|
|
|
119
119
|
ngOnDestroy() {
|
|
120
120
|
this.removeKeydownListenerFn();
|
|
121
121
|
}
|
|
122
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
123
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
122
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyEnterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
123
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: ThyEnterDirective, isStandalone: true, selector: "[thyEnter]", outputs: { thyEnter: "thyEnter" }, ngImport: i0 }); }
|
|
124
124
|
}
|
|
125
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyEnterDirective, decorators: [{
|
|
126
126
|
type: Directive,
|
|
127
127
|
args: [{
|
|
128
128
|
selector: '[thyEnter]'
|
|
@@ -156,10 +156,10 @@ class ThyCtrlEnterDirective {
|
|
|
156
156
|
ngOnDestroy() {
|
|
157
157
|
this.removeKeydownListenerFn();
|
|
158
158
|
}
|
|
159
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
160
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
159
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCtrlEnterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
160
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: ThyCtrlEnterDirective, isStandalone: true, selector: "[thyCtrlEnter]", outputs: { thyCtrlEnter: "thyCtrlEnter" }, ngImport: i0 }); }
|
|
161
161
|
}
|
|
162
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCtrlEnterDirective, decorators: [{
|
|
163
163
|
type: Directive,
|
|
164
164
|
args: [{
|
|
165
165
|
selector: '[thyCtrlEnter]'
|
|
@@ -182,6 +182,7 @@ class ThyShowDirective {
|
|
|
182
182
|
this.ngZone = inject(NgZone);
|
|
183
183
|
this.thyShowChange = output();
|
|
184
184
|
this.hostRenderer = useHostRenderer();
|
|
185
|
+
this.unListenEvent = null;
|
|
185
186
|
this.thyShow = input(false, ...(ngDevMode ? [{ debugName: "thyShow", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
|
|
186
187
|
effect(() => {
|
|
187
188
|
if (this.thyShow()) {
|
|
@@ -204,10 +205,10 @@ class ThyShowDirective {
|
|
|
204
205
|
ngOnDestroy() {
|
|
205
206
|
this.unListenDocument();
|
|
206
207
|
}
|
|
207
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
208
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
208
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyShowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
209
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: ThyShowDirective, isStandalone: true, selector: "[thyShow]", inputs: { thyShow: { classPropertyName: "thyShow", publicName: "thyShow", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyShowChange: "thyShowChange" }, ngImport: i0 }); }
|
|
209
210
|
}
|
|
210
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
211
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyShowDirective, decorators: [{
|
|
211
212
|
type: Directive,
|
|
212
213
|
args: [{
|
|
213
214
|
selector: '[thyShow]'
|
|
@@ -256,10 +257,10 @@ class ThyStopPropagationDirective {
|
|
|
256
257
|
ngOnDestroy() {
|
|
257
258
|
this._destroy$.next();
|
|
258
259
|
}
|
|
259
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
260
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
260
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStopPropagationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
261
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: ThyStopPropagationDirective, isStandalone: true, selector: "[thyStopPropagation]", inputs: { thyStopPropagation: { classPropertyName: "thyStopPropagation", publicName: "thyStopPropagation", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
261
262
|
}
|
|
262
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
263
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStopPropagationDirective, decorators: [{
|
|
263
264
|
type: Directive,
|
|
264
265
|
args: [{
|
|
265
266
|
selector: '[thyStopPropagation]'
|
|
@@ -290,10 +291,10 @@ class ThyContextMenuDirective {
|
|
|
290
291
|
ngOnDestroy() {
|
|
291
292
|
this.removeContextListenerFn();
|
|
292
293
|
}
|
|
293
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
294
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
294
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyContextMenuDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
295
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: ThyContextMenuDirective, isStandalone: true, selector: "[thyContextMenu]", outputs: { thyContextMenu: "thyContextMenu" }, ngImport: i0 }); }
|
|
295
296
|
}
|
|
296
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
297
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyContextMenuDirective, decorators: [{
|
|
297
298
|
type: Directive,
|
|
298
299
|
args: [{
|
|
299
300
|
selector: '[thyContextMenu]'
|
|
@@ -309,6 +310,7 @@ class ThyScrollDirective {
|
|
|
309
310
|
this.elementRef = inject(ElementRef);
|
|
310
311
|
this.ngZone = inject(NgZone);
|
|
311
312
|
this._destroyed = new Subject();
|
|
313
|
+
this._subscription = null;
|
|
312
314
|
this._elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(this.elementRef.nativeElement, 'scroll', passiveEventListenerOptions)
|
|
313
315
|
.pipe(takeUntil(this._destroyed))
|
|
314
316
|
.subscribe(observer)));
|
|
@@ -354,10 +356,10 @@ class ThyScrollDirective {
|
|
|
354
356
|
getElementRef() {
|
|
355
357
|
return this.elementRef;
|
|
356
358
|
}
|
|
357
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
358
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
359
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
360
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: ThyScrollDirective, isStandalone: true, selector: "[thyScroll]", inputs: { thyEnable: { classPropertyName: "thyEnable", publicName: "thyEnable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyOnScrolled: "thyOnScrolled" }, ngImport: i0 }); }
|
|
359
361
|
}
|
|
360
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
362
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyScrollDirective, decorators: [{
|
|
361
363
|
type: Directive,
|
|
362
364
|
args: [{
|
|
363
365
|
selector: '[thyScroll]'
|
|
@@ -396,10 +398,10 @@ class ThyDragDropDirective {
|
|
|
396
398
|
this.ngUnsubscribe$.next();
|
|
397
399
|
this.ngUnsubscribe$.complete();
|
|
398
400
|
}
|
|
399
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
400
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
401
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDragDropDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
402
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: ThyDragDropDirective, isStandalone: true, selector: "[thyDragDrop]", queries: [{ propertyName: "draggables", predicate: CdkDrag, descendants: true }], ngImport: i0 }); }
|
|
401
403
|
}
|
|
402
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
404
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDragDropDirective, decorators: [{
|
|
403
405
|
type: Directive,
|
|
404
406
|
args: [{
|
|
405
407
|
selector: '[thyDragDrop]'
|
|
@@ -416,6 +418,7 @@ class ThyStringOrTemplateOutletDirective {
|
|
|
416
418
|
constructor() {
|
|
417
419
|
this.viewContainerRef = inject(ViewContainerRef);
|
|
418
420
|
this.renderer = inject(Renderer2);
|
|
421
|
+
this.viewRef = null;
|
|
419
422
|
this.thyStringOrTemplateOutletContext = input(...(ngDevMode ? [undefined, { debugName: "thyStringOrTemplateOutletContext" }] : []));
|
|
420
423
|
this.thyStringOrTemplateOutlet = input(...(ngDevMode ? [undefined, { debugName: "thyStringOrTemplateOutlet" }] : []));
|
|
421
424
|
effect(() => {
|
|
@@ -435,7 +438,7 @@ class ThyStringOrTemplateOutletDirective {
|
|
|
435
438
|
this.viewRef = this.viewContainerRef.createEmbeddedView(thyStringOrTemplateOutlet, this.thyStringOrTemplateOutletContext());
|
|
436
439
|
}
|
|
437
440
|
else {
|
|
438
|
-
this.textNode = this.renderer.createText(thyStringOrTemplateOutlet
|
|
441
|
+
this.textNode = this.renderer.createText(`${thyStringOrTemplateOutlet}`);
|
|
439
442
|
const element = this.viewContainerRef.element.nativeElement;
|
|
440
443
|
this.renderer.insertBefore(element.parentNode, this.textNode, element);
|
|
441
444
|
}
|
|
@@ -450,10 +453,10 @@ class ThyStringOrTemplateOutletDirective {
|
|
|
450
453
|
this.renderer.removeChild(this.textNode.parentNode, this.textNode);
|
|
451
454
|
}
|
|
452
455
|
}
|
|
453
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
454
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
456
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStringOrTemplateOutletDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
457
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: ThyStringOrTemplateOutletDirective, isStandalone: true, selector: "[thyStringOrTemplateOutlet]", inputs: { thyStringOrTemplateOutletContext: { classPropertyName: "thyStringOrTemplateOutletContext", publicName: "thyStringOrTemplateOutletContext", isSignal: true, isRequired: false, transformFunction: null }, thyStringOrTemplateOutlet: { classPropertyName: "thyStringOrTemplateOutlet", publicName: "thyStringOrTemplateOutlet", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["thyStringOrTemplateOutlet"], ngImport: i0 }); }
|
|
455
458
|
}
|
|
456
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
459
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStringOrTemplateOutletDirective, decorators: [{
|
|
457
460
|
type: Directive,
|
|
458
461
|
args: [{
|
|
459
462
|
selector: '[thyStringOrTemplateOutlet]',
|
|
@@ -462,6 +465,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
462
465
|
}], ctorParameters: () => [], propDecorators: { thyStringOrTemplateOutletContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyStringOrTemplateOutletContext", required: false }] }], thyStringOrTemplateOutlet: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyStringOrTemplateOutlet", required: false }] }] } });
|
|
463
466
|
|
|
464
467
|
function hasInput(componentRef, inputKey) {
|
|
468
|
+
// @ts-ignore
|
|
465
469
|
return componentRef['_tNode'].inputs?.[inputKey];
|
|
466
470
|
}
|
|
467
471
|
/**
|
|
@@ -548,10 +552,10 @@ class ThyViewOutletDirective {
|
|
|
548
552
|
}
|
|
549
553
|
});
|
|
550
554
|
}
|
|
551
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
552
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
555
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyViewOutletDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
556
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: ThyViewOutletDirective, isStandalone: true, selector: "[thyViewOutlet]", inputs: { thyViewOutlet: { classPropertyName: "thyViewOutlet", publicName: "thyViewOutlet", isSignal: true, isRequired: false, transformFunction: null }, thyViewOutletContext: { classPropertyName: "thyViewOutletContext", publicName: "thyViewOutletContext", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
553
557
|
}
|
|
554
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
558
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyViewOutletDirective, decorators: [{
|
|
555
559
|
type: Directive,
|
|
556
560
|
args: [{
|
|
557
561
|
selector: '[thyViewOutlet]'
|
|
@@ -559,8 +563,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
559
563
|
}], ctorParameters: () => [], propDecorators: { thyViewOutlet: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyViewOutlet", required: false }] }], thyViewOutletContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyViewOutletContext", required: false }] }] } });
|
|
560
564
|
|
|
561
565
|
class ThySharedModule {
|
|
562
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
563
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
566
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
567
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThySharedModule, imports: [ThyViewOutletDirective,
|
|
564
568
|
ThyTranscludeDirective,
|
|
565
569
|
ThyAutofocusDirective,
|
|
566
570
|
ThyEnterDirective,
|
|
@@ -581,9 +585,9 @@ class ThySharedModule {
|
|
|
581
585
|
ThyDragDropDirective,
|
|
582
586
|
ThyStringOrTemplateOutletDirective,
|
|
583
587
|
ThyViewOutletDirective] }); }
|
|
584
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
588
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySharedModule }); }
|
|
585
589
|
}
|
|
586
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
590
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySharedModule, decorators: [{
|
|
587
591
|
type: NgModule,
|
|
588
592
|
args: [{
|
|
589
593
|
imports: [
|
|
@@ -696,10 +700,10 @@ class ThyFormCheckBaseComponent extends TabIndexDisabledControlValueAccessorMixi
|
|
|
696
700
|
this.changeDetectorRef.markForCheck();
|
|
697
701
|
}
|
|
698
702
|
}
|
|
699
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
700
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
703
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyFormCheckBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
704
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: ThyFormCheckBaseComponent, isStandalone: true, inputs: { thyInline: { classPropertyName: "thyInline", publicName: "thyInline", isSignal: true, isRequired: false, transformFunction: null }, thyLabelText: { classPropertyName: "thyLabelText", publicName: "thyLabelText", isSignal: true, isRequired: false, transformFunction: null }, thyLabelTextTranslateKey: { classPropertyName: "thyLabelTextTranslateKey", publicName: "thyLabelTextTranslateKey", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: false, isRequired: false, transformFunction: coerceBooleanProperty } }, host: { properties: { "class.form-check": "_isFormCheck", "class.form-check-inline": "thyInline()", "class.form-check-checked": "_isChecked", "class.form-check-inline-no-label-text": "_isNoText()" } }, usesInheritance: true, ngImport: i0 }); }
|
|
701
705
|
}
|
|
702
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
706
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyFormCheckBaseComponent, decorators: [{
|
|
703
707
|
type: Directive,
|
|
704
708
|
args: [{
|
|
705
709
|
host: {
|
|
@@ -737,7 +741,7 @@ class ThySelectControl {
|
|
|
737
741
|
computation: (source, previous) => previous?.source
|
|
738
742
|
}]));
|
|
739
743
|
this.thyDisabled = input(false, ...(ngDevMode ? [{ debugName: "thyDisabled", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
|
|
740
|
-
this.customDisplayTemplate = input(
|
|
744
|
+
this.customDisplayTemplate = input(...(ngDevMode ? [undefined, { debugName: "customDisplayTemplate" }] : []));
|
|
741
745
|
this.thyAllowClear = input(false, ...(ngDevMode ? [{ debugName: "thyAllowClear", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
|
|
742
746
|
this.thyPlaceholder = input('', ...(ngDevMode ? [{ debugName: "thyPlaceholder" }] : []));
|
|
743
747
|
this.thySize = input(...(ngDevMode ? [undefined, { debugName: "thySize" }] : []));
|
|
@@ -924,7 +928,7 @@ class ThySelectControl {
|
|
|
924
928
|
calculateVisibleTags() {
|
|
925
929
|
if (!this.tagsContainer()?.nativeElement)
|
|
926
930
|
return;
|
|
927
|
-
const containerWidth = this.tagsContainer()
|
|
931
|
+
const containerWidth = this.tagsContainer()?.nativeElement.offsetWidth;
|
|
928
932
|
if (containerWidth <= 0)
|
|
929
933
|
return;
|
|
930
934
|
const selectedOptions = coerceArray(this.thySelectedOptions());
|
|
@@ -949,10 +953,9 @@ class ThySelectControl {
|
|
|
949
953
|
let totalWidth = 0;
|
|
950
954
|
let visibleCount = 0;
|
|
951
955
|
Promise.resolve().then(() => {
|
|
952
|
-
const tagElements = this.tagsContainer()
|
|
956
|
+
const tagElements = this.tagsContainer()?.nativeElement.querySelectorAll('.choice-item.selected,.custom-choice-item');
|
|
953
957
|
for (let i = 0; i < selectedOptions.length; i++) {
|
|
954
|
-
|
|
955
|
-
tagWidth = (tagElements[i]?.offsetWidth || 80) + TAG_GAP;
|
|
958
|
+
const tagWidth = (tagElements[i]?.offsetWidth || 80) + TAG_GAP;
|
|
956
959
|
if (totalWidth + tagWidth > availableWidth) {
|
|
957
960
|
break;
|
|
958
961
|
}
|
|
@@ -1028,10 +1031,10 @@ class ThySelectControl {
|
|
|
1028
1031
|
onBlur(event) {
|
|
1029
1032
|
this.thyOnBlur.emit(event);
|
|
1030
1033
|
}
|
|
1031
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1032
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
1034
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySelectControl, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1035
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThySelectControl, isStandalone: true, selector: "thy-select-control,[thySelectControl]", inputs: { inputValue: { classPropertyName: "inputValue", publicName: "inputValue", isSignal: true, isRequired: false, transformFunction: null }, thyPanelOpened: { classPropertyName: "thyPanelOpened", publicName: "thyPanelOpened", isSignal: true, isRequired: false, transformFunction: null }, thyIsMultiple: { classPropertyName: "thyIsMultiple", publicName: "thyIsMultiple", isSignal: true, isRequired: false, transformFunction: null }, thyShowSearch: { classPropertyName: "thyShowSearch", publicName: "thyShowSearch", isSignal: true, isRequired: false, transformFunction: null }, thySelectedOptions: { classPropertyName: "thySelectedOptions", publicName: "thySelectedOptions", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null }, customDisplayTemplate: { classPropertyName: "customDisplayTemplate", publicName: "customDisplayTemplate", isSignal: true, isRequired: false, transformFunction: null }, thyAllowClear: { classPropertyName: "thyAllowClear", publicName: "thyAllowClear", isSignal: true, isRequired: false, transformFunction: null }, thyPlaceholder: { classPropertyName: "thyPlaceholder", publicName: "thyPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyMaxTagCount: { classPropertyName: "thyMaxTagCount", publicName: "thyMaxTagCount", isSignal: true, isRequired: false, transformFunction: null }, thyBorderless: { classPropertyName: "thyBorderless", publicName: "thyBorderless", isSignal: true, isRequired: false, transformFunction: null }, thyPreset: { classPropertyName: "thyPreset", publicName: "thyPreset", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { inputValue: "inputValueChange", thyOnSearch: "thyOnSearch", thyOnRemove: "thyOnRemove", thyOnClear: "thyOnClear", thyOnBlur: "thyOnBlur" }, host: { properties: { "class.select-control-borderless": "thyBorderless()" } }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, isSignal: true }, { propertyName: "tagsContainer", first: true, predicate: ["tagsContainer"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #inputTemplate>\n <input\n #inputElement\n [tabindex]=\"-1\"\n (compositionstart)=\"compositionChange(true)\"\n (compositionend)=\"compositionChange(false)\"\n autocomplete=\"something-new\"\n [ngClass]=\"searchInputControlClass\"\n (input)=\"updateWidth()\"\n [ngModel]=\"inputValue()\"\n (ngModelChange)=\"setInputValue($event)\"\n (keydown.backspace)=\"handleBackspace($event)\"\n [disabled]=\"thyDisabled()\"\n (blur)=\"onBlur($event)\" />\n</ng-template>\n\n<div class=\"select-control-rendered\">\n @if (!isSelectedValue()) {\n <div class=\"text-placeholder text-truncate\" [ngStyle]=\"placeholderStyle()\">\n {{ thyPlaceholder() }}\n </div>\n }\n @if (thyIsMultiple()) {\n <div thyFlex thyWrap=\"wrap\" thyGap=\"4\" thyAlignItems=\"center\" class=\"w-100\" #tagsContainer>\n @if (thyPreset() === 'tag') {\n @for (item of selectedTags(); track trackValue($index, item)) {\n <div thyFlexItem class=\"custom-choice-item text-truncate\" [ngClass]=\"{ hidden: $index > visibleTagCount() - 1 }\">\n <ng-template\n [ngTemplateOutlet]=\"customDisplayTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: item.thyRawValue || item.thyValue || item }\">\n </ng-template>\n @if (!thyDisabled()) {\n <div class=\"choice-remove-link ml-1\" (click)=\"removeHandle(item, $event)\">\n <span>\n <thy-icon thyIconName=\"close\" class=\"font-size-sm\"></thy-icon>\n </span>\n </div>\n }\n </div>\n }\n } @else {\n @for (item of selectedTags(); track trackValue($index, item)) {\n <div\n thyFlexItem\n thyTag\n class=\"choice-item selected\"\n [ngClass]=\"{ disabled: thyDisabled() === true, hidden: $index > visibleTagCount() - 1 }\"\n [thySize]=\"tagSize()\">\n <div class=\"text-truncate h-100 d-flex align-items-center\">\n @if (!customDisplayTemplate()) {\n <thy-flexible-text [thyTooltipContent]=\"item?.thyLabelText\" class=\"text-truncate h-100\">\n {{ item?.thyLabelText }}\n </thy-flexible-text>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"customDisplayTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: item.thyRawValue || item.thyValue || item }\"></ng-template>\n }\n </div>\n @if (!thyDisabled()) {\n <div class=\"choice-remove-link ml-1\" (click)=\"removeHandle(item, $event)\">\n <span>\n <thy-icon thyIconName=\"close\" class=\"font-size-sm\"></thy-icon>\n </span>\n </div>\n }\n </div>\n }\n }\n @if (collapsedSelectedTags()?.length > 0) {\n <div\n thyFlexItem\n class=\"choice-item max-tag-count-choice\"\n thyTag\n [thySize]=\"tagSize()\"\n [ngClass]=\"{ disabled: thyDisabled() === true }\"\n [thyTooltip]=\"maxTagTooltip\">\n <div class=\"text-truncate\">+{{ collapsedSelectedTags()?.length }}</div>\n </div>\n }\n <div thyFlexItem class=\"select-control-search\">\n <ng-template [ngTemplateOutlet]=\"inputTemplate\"></ng-template>\n </div>\n </div>\n } @else {\n @if (isSelectedValue()) {\n <div class=\"selected-value text-truncate\" [ngStyle]=\"selectedValueStyle()\">\n @if (!customDisplayTemplate()) {\n <span class=\"text-truncate\">{{ thySelectedOptions()?.thyLabelText }}</span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"customDisplayTemplate()\"\n [ngTemplateOutletContext]=\"{\n $implicit: thySelectedOptions()?.thyRawValue || thySelectedOptions()?.thyValue || thySelectedOptions()\n }\"></ng-template>\n }\n </div>\n }\n <div class=\"select-control-search\">\n <ng-template [ngTemplateOutlet]=\"inputTemplate\"></ng-template>\n </div>\n }\n</div>\n<span class=\"select-control-arrow\">\n <thy-icon thyIconName=\"angle-down\" class=\"font-size-base\"></thy-icon>\n</span>\n@if (showClearIcon()) {\n <span class=\"select-control-clear remove-link\" (click)=\"clearHandle($event)\">\n <thy-icon class=\"remove-link-icon font-size-base\" thyIconName=\"close-circle-bold-fill\"></thy-icon>\n </span>\n}\n\n<ng-template #maxTagTooltip>\n @let lastIndex = collapsedSelectedTags().length - 1;\n @for (item of collapsedSelectedTags(); track trackValue($index, item)) {\n {{ item.thyLabelText }}\n @if ($index !== lastIndex) {\n {{ locale().comma }}\n }\n }\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ThyTag, selector: "thy-tag,[thyTag]", inputs: ["thyTag", "thyShape", "thyColor", "thyTheme", "thySize", "thyHoverable"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "ngmodule", type: ThyGridModule }, { kind: "directive", type: i2.ThyFlex, selector: "[thyFlex]", inputs: ["thyDirection", "thyWrap", "thyJustifyContent", "thyAlignItems", "thyGap"] }, { kind: "directive", type: i2.ThyFlexItem, selector: "[thyFlexItem]", inputs: ["thyFlexItem", "thyGrow", "thyShrink", "thyBasis"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1033
1036
|
}
|
|
1034
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1037
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySelectControl, decorators: [{
|
|
1035
1038
|
type: Component,
|
|
1036
1039
|
args: [{ selector: 'thy-select-control,[thySelectControl]', changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, NgClass, NgStyle, ThyTag, NgTemplateOutlet, ThyIcon, ThyGridModule, ThyTooltipDirective, ThyFlexibleText], host: {
|
|
1037
1040
|
'[class.select-control-borderless]': 'thyBorderless()'
|
|
@@ -1046,11 +1049,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
1046
1049
|
* found in the LICENSE file at https://angular.io/license
|
|
1047
1050
|
*/
|
|
1048
1051
|
class ThySelectCommonModule {
|
|
1049
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1050
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
1051
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
1052
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySelectCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1053
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThySelectCommonModule, imports: [CommonModule, FormsModule, ThyIconModule, ThyTagModule, ThySelectControl], exports: [ThySelectControl] }); }
|
|
1054
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySelectCommonModule, imports: [CommonModule, FormsModule, ThyIconModule, ThyTagModule, ThySelectControl] }); }
|
|
1052
1055
|
}
|
|
1053
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1056
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySelectCommonModule, decorators: [{
|
|
1054
1057
|
type: NgModule,
|
|
1055
1058
|
args: [{
|
|
1056
1059
|
imports: [CommonModule, FormsModule, ThyIconModule, ThyTagModule, ThySelectControl],
|
|
@@ -1058,10 +1061,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
1058
1061
|
}]
|
|
1059
1062
|
}] });
|
|
1060
1063
|
|
|
1061
|
-
/**
|
|
1062
|
-
* Injection token used to provide the parent component to options.
|
|
1063
|
-
*/
|
|
1064
|
-
const THY_OPTION_PARENT_COMPONENT = new InjectionToken('THY_OPTION_PARENT_COMPONENT');
|
|
1065
1064
|
/**
|
|
1066
1065
|
* Injection token used to provide the parent component to options.
|
|
1067
1066
|
*/
|
|
@@ -1078,9 +1077,9 @@ class ThyListOption {
|
|
|
1078
1077
|
this.parentSelectionList = inject(THY_LIST_OPTION_PARENT_COMPONENT, { optional: true });
|
|
1079
1078
|
this.role = 'option';
|
|
1080
1079
|
this.tabIndex = -1;
|
|
1081
|
-
this.isMultiple = computed(() => this.parentSelectionList.multiple(), ...(ngDevMode ? [{ debugName: "isMultiple" }] : []));
|
|
1082
|
-
this.isListOption = computed(() => this.parentSelectionList.layout() === 'list', ...(ngDevMode ? [{ debugName: "isListOption" }] : []));
|
|
1083
|
-
this.isGridOption = computed(() => this.parentSelectionList.layout() === 'grid', ...(ngDevMode ? [{ debugName: "isGridOption" }] : []));
|
|
1080
|
+
this.isMultiple = computed(() => (this.parentSelectionList?.multiple && this.parentSelectionList.multiple()) ?? false, ...(ngDevMode ? [{ debugName: "isMultiple" }] : []));
|
|
1081
|
+
this.isListOption = computed(() => this.parentSelectionList?.layout && this.parentSelectionList?.layout() === 'list', ...(ngDevMode ? [{ debugName: "isListOption" }] : []));
|
|
1082
|
+
this.isGridOption = computed(() => this.parentSelectionList?.layout && this.parentSelectionList?.layout() === 'grid', ...(ngDevMode ? [{ debugName: "isGridOption" }] : []));
|
|
1084
1083
|
this.id = input(`thy-list-option-${_uniqueIdCounter++}`, ...(ngDevMode ? [{ debugName: "id" }] : []));
|
|
1085
1084
|
this.thyValue = input(undefined, ...(ngDevMode ? [{ debugName: "thyValue" }] : []));
|
|
1086
1085
|
this.thyDisabled = input(false, ...(ngDevMode ? [{ debugName: "thyDisabled", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
|
|
@@ -1090,7 +1089,7 @@ class ThyListOption {
|
|
|
1090
1089
|
return this.parentSelectionList.isSelected(this);
|
|
1091
1090
|
}
|
|
1092
1091
|
onClick(event) {
|
|
1093
|
-
if (this.parentSelectionList.multiple() || !this.parentSelectionList.isSelected(this)) {
|
|
1092
|
+
if ((this.parentSelectionList.multiple && this.parentSelectionList.multiple()) || !this.parentSelectionList.isSelected(this)) {
|
|
1094
1093
|
this.parentSelectionList.toggleOption(this, event);
|
|
1095
1094
|
this.parentSelectionList.setActiveOption(this);
|
|
1096
1095
|
}
|
|
@@ -1109,10 +1108,10 @@ class ThyListOption {
|
|
|
1109
1108
|
getLabel() {
|
|
1110
1109
|
return '';
|
|
1111
1110
|
}
|
|
1112
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1113
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
1111
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyListOption, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1112
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyListOption, isStandalone: true, selector: "thy-list-option,[thy-list-option]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick($event)" }, properties: { "class.disabled": "thyDisabled()", "class.thy-list-option": "isListOption()", "class.thy-grid-option": "isGridOption()", "class.active": "selected", "attr.role": "role", "attr.tabindex": "tabIndex" } }, ngImport: i0, template: "<ng-content></ng-content>\n@if (isMultiple() && isListOption()) {\n <span class=\"checked-icon\">\n <thy-icon thyIconName=\"check\"></thy-icon>\n </span>\n}\n@if (isGridOption()) {\n <span class=\"checked-icon\">\n <thy-icon thyIconName=\"check-circle-fill\"></thy-icon>\n </span>\n}\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }] }); }
|
|
1114
1113
|
}
|
|
1115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyListOption, decorators: [{
|
|
1116
1115
|
type: Component,
|
|
1117
1116
|
args: [{ selector: 'thy-list-option,[thy-list-option]', imports: [ThyIcon], host: {
|
|
1118
1117
|
'[class.disabled]': 'thyDisabled()',
|
|
@@ -1135,10 +1134,10 @@ class ThyOptionGroup extends _MixinBase {
|
|
|
1135
1134
|
set thyDisabled(value) {
|
|
1136
1135
|
this.thyDisabled = value;
|
|
1137
1136
|
}
|
|
1138
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1139
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
1137
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyOptionGroup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1138
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: ThyOptionGroup, isStandalone: true, selector: "thy-list-option-group,[thy-list-option-group]", usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1140
1139
|
}
|
|
1141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyOptionGroup, decorators: [{
|
|
1142
1141
|
type: Component,
|
|
1143
1142
|
args: [{
|
|
1144
1143
|
selector: 'thy-list-option-group,[thy-list-option-group]',
|
|
@@ -1148,8 +1147,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
1148
1147
|
}]
|
|
1149
1148
|
}] });
|
|
1150
1149
|
|
|
1151
|
-
class
|
|
1150
|
+
class ThySelectOptionGroup {
|
|
1151
|
+
constructor() {
|
|
1152
|
+
this.thyGroupLabel = input(...(ngDevMode ? [undefined, { debugName: "thyGroupLabel" }] : []));
|
|
1153
|
+
this.thyDisabled = input(false, ...(ngDevMode ? [{ debugName: "thyDisabled", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
|
|
1154
|
+
}
|
|
1155
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySelectOptionGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1156
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: ThySelectOptionGroup, isStandalone: true, selector: "thy-option-group", inputs: { thyGroupLabel: { classPropertyName: "thyGroupLabel", publicName: "thyGroupLabel", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
|
|
1152
1157
|
}
|
|
1158
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySelectOptionGroup, decorators: [{
|
|
1159
|
+
type: Component,
|
|
1160
|
+
args: [{
|
|
1161
|
+
selector: 'thy-option-group',
|
|
1162
|
+
template: `<ng-content></ng-content>`
|
|
1163
|
+
}]
|
|
1164
|
+
}], propDecorators: { thyGroupLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyGroupLabel", required: false }] }], thyDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDisabled", required: false }] }] } });
|
|
1153
1165
|
|
|
1154
1166
|
class ThyOptionSelectionChangeEvent {
|
|
1155
1167
|
constructor(option, isUserInput = false) {
|
|
@@ -1157,39 +1169,155 @@ class ThyOptionSelectionChangeEvent {
|
|
|
1157
1169
|
this.isUserInput = isUserInput;
|
|
1158
1170
|
}
|
|
1159
1171
|
}
|
|
1160
|
-
class ThyOptionVisibleChangeEvent {
|
|
1161
|
-
}
|
|
1162
1172
|
/**
|
|
1163
|
-
*
|
|
1164
|
-
* @
|
|
1173
|
+
* 选项组件
|
|
1174
|
+
* @name thy-option
|
|
1165
1175
|
*/
|
|
1166
|
-
class ThyOption
|
|
1167
|
-
// 继承至 Highlightable,无法修改为 Signal
|
|
1168
|
-
get disabled() {
|
|
1169
|
-
return this.hidden() || this.thyDisabled();
|
|
1170
|
-
}
|
|
1171
|
-
get tabIndex() {
|
|
1172
|
-
return this.disabled ? '-1' : '0';
|
|
1173
|
-
}
|
|
1176
|
+
class ThyOption {
|
|
1174
1177
|
constructor() {
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
this.
|
|
1178
|
+
/**
|
|
1179
|
+
* 选项的值,具有唯一性
|
|
1180
|
+
*/
|
|
1181
|
+
this.thyValue = input(...(ngDevMode ? [undefined, { debugName: "thyValue" }] : []));
|
|
1182
|
+
/**
|
|
1183
|
+
* 选项的原始值
|
|
1184
|
+
*/
|
|
1185
|
+
this.thyRawValue = input(...(ngDevMode ? [undefined, { debugName: "thyRawValue" }] : []));
|
|
1186
|
+
/**
|
|
1187
|
+
* 选项的文本
|
|
1188
|
+
*/
|
|
1189
|
+
this.thyLabelText = input(...(ngDevMode ? [undefined, { debugName: "thyLabelText" }] : []));
|
|
1190
|
+
/**
|
|
1191
|
+
* 是否显示自定义模板
|
|
1192
|
+
*/
|
|
1179
1193
|
this.thyShowOptionCustom = input(...(ngDevMode ? [undefined, { debugName: "thyShowOptionCustom" }] : []));
|
|
1194
|
+
/**
|
|
1195
|
+
* 搜索关键字
|
|
1196
|
+
*/
|
|
1180
1197
|
this.thySearchKey = input(...(ngDevMode ? [undefined, { debugName: "thySearchKey" }] : []));
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1198
|
+
/**
|
|
1199
|
+
* 是否禁用
|
|
1200
|
+
*/
|
|
1201
|
+
this.thyDisabled = input(...(ngDevMode ? [undefined, { debugName: "thyDisabled" }] : []));
|
|
1202
|
+
/**
|
|
1203
|
+
* 是否选中,会跟随 ThyOptionSelectionChangeEvent 抛出去
|
|
1204
|
+
*/
|
|
1184
1205
|
this.selected = signal(false, ...(ngDevMode ? [{ debugName: "selected" }] : []));
|
|
1206
|
+
/**
|
|
1207
|
+
* 选项被选中时的回调
|
|
1208
|
+
*/
|
|
1185
1209
|
this.selectionChange = output();
|
|
1186
|
-
|
|
1210
|
+
/**
|
|
1211
|
+
* 模板
|
|
1212
|
+
*/
|
|
1213
|
+
this.template = viewChild(TemplateRef, ...(ngDevMode ? [{ debugName: "template" }] : []));
|
|
1214
|
+
this.optionGroupComponent = inject(ThySelectOptionGroup, { optional: true });
|
|
1187
1215
|
}
|
|
1188
|
-
|
|
1189
|
-
return this.
|
|
1216
|
+
get groupLabel() {
|
|
1217
|
+
return this.optionGroupComponent?.thyGroupLabel() || '';
|
|
1190
1218
|
}
|
|
1191
|
-
|
|
1192
|
-
|
|
1219
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyOption, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1220
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.15", type: ThyOption, isStandalone: true, selector: "thy-option", inputs: { thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: true, isRequired: false, transformFunction: null }, thyRawValue: { classPropertyName: "thyRawValue", publicName: "thyRawValue", isSignal: true, isRequired: false, transformFunction: null }, thyLabelText: { classPropertyName: "thyLabelText", publicName: "thyLabelText", isSignal: true, isRequired: false, transformFunction: null }, thyShowOptionCustom: { classPropertyName: "thyShowOptionCustom", publicName: "thyShowOptionCustom", isSignal: true, isRequired: false, transformFunction: null }, thySearchKey: { classPropertyName: "thySearchKey", publicName: "thySearchKey", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
1221
|
+
<ng-template>
|
|
1222
|
+
<ng-content></ng-content>
|
|
1223
|
+
</ng-template>
|
|
1224
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1225
|
+
}
|
|
1226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyOption, decorators: [{
|
|
1227
|
+
type: Component,
|
|
1228
|
+
args: [{
|
|
1229
|
+
selector: 'thy-option',
|
|
1230
|
+
template: `
|
|
1231
|
+
<ng-template>
|
|
1232
|
+
<ng-content></ng-content>
|
|
1233
|
+
</ng-template>
|
|
1234
|
+
`,
|
|
1235
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
1236
|
+
}]
|
|
1237
|
+
}], propDecorators: { thyValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyValue", required: false }] }], thyRawValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyRawValue", required: false }] }], thyLabelText: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyLabelText", required: false }] }], thyShowOptionCustom: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyShowOptionCustom", required: false }] }], thySearchKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySearchKey", required: false }] }], thyDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDisabled", required: false }] }], selectionChange: [{ type: i0.Output, args: ["selectionChange"] }], template: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
|
|
1238
|
+
|
|
1239
|
+
/**
|
|
1240
|
+
* 选项渲染组件
|
|
1241
|
+
* @private
|
|
1242
|
+
* @name thy-option-render
|
|
1243
|
+
*/
|
|
1244
|
+
class ThyOptionRender {
|
|
1245
|
+
constructor() {
|
|
1246
|
+
this.element = inject(ElementRef);
|
|
1247
|
+
this.hostRenderer = useHostRenderer();
|
|
1248
|
+
/**
|
|
1249
|
+
* 选项的值,具有唯一性
|
|
1250
|
+
*/
|
|
1251
|
+
this.thyValue = input(...(ngDevMode ? [undefined, { debugName: "thyValue" }] : []));
|
|
1252
|
+
/**
|
|
1253
|
+
* 选项的原始值
|
|
1254
|
+
*/
|
|
1255
|
+
this.thyRawValue = input(...(ngDevMode ? [undefined, { debugName: "thyRawValue" }] : []));
|
|
1256
|
+
/**
|
|
1257
|
+
* 选项的文本
|
|
1258
|
+
*/
|
|
1259
|
+
this.thyLabelText = input(...(ngDevMode ? [undefined, { debugName: "thyLabelText" }] : []));
|
|
1260
|
+
/**
|
|
1261
|
+
* 搜索关键字
|
|
1262
|
+
*/
|
|
1263
|
+
this.thySearchKey = input(...(ngDevMode ? [undefined, { debugName: "thySearchKey" }] : []));
|
|
1264
|
+
/**
|
|
1265
|
+
* 是否禁用
|
|
1266
|
+
*/
|
|
1267
|
+
this.thyDisabled = input(false, ...(ngDevMode ? [{ debugName: "thyDisabled", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
|
|
1268
|
+
/**
|
|
1269
|
+
* 是否显示自定义模板
|
|
1270
|
+
*/
|
|
1271
|
+
this.thyShowOptionCustom = input(false, ...(ngDevMode ? [{ debugName: "thyShowOptionCustom", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
|
|
1272
|
+
/**
|
|
1273
|
+
* 模板
|
|
1274
|
+
*/
|
|
1275
|
+
this.thyTemplate = input(...(ngDevMode ? [undefined, { debugName: "thyTemplate" }] : []));
|
|
1276
|
+
/**
|
|
1277
|
+
* 模板上下文
|
|
1278
|
+
*/
|
|
1279
|
+
this.thyTemplateContext = input(...(ngDevMode ? [undefined, { debugName: "thyTemplateContext" }] : []));
|
|
1280
|
+
/**
|
|
1281
|
+
* 被选中时,是否显示勾选图标
|
|
1282
|
+
*/
|
|
1283
|
+
this.thyShowCheckedIcon = input(false, ...(ngDevMode ? [{ debugName: "thyShowCheckedIcon", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
|
|
1284
|
+
/**
|
|
1285
|
+
* Select 组件选中的值
|
|
1286
|
+
*/
|
|
1287
|
+
this.thySelectedValuesMap = input(new Map(), ...(ngDevMode ? [{ debugName: "thySelectedValuesMap" }] : []));
|
|
1288
|
+
/**
|
|
1289
|
+
* 当前高亮选项的值
|
|
1290
|
+
*/
|
|
1291
|
+
this.thyActivatedValue = input(...(ngDevMode ? [undefined, { debugName: "thyActivatedValue" }] : []));
|
|
1292
|
+
/**
|
|
1293
|
+
* 点击选项时的回调
|
|
1294
|
+
*/
|
|
1295
|
+
this.optionClick = output();
|
|
1296
|
+
/**
|
|
1297
|
+
* 鼠标悬浮时的回调
|
|
1298
|
+
*/
|
|
1299
|
+
this.optionHover = output();
|
|
1300
|
+
/**
|
|
1301
|
+
* 是否被选中
|
|
1302
|
+
*/
|
|
1303
|
+
this.selected = computed(() => {
|
|
1304
|
+
return this.thySelectedValuesMap().has(this.thyValue());
|
|
1305
|
+
}, ...(ngDevMode ? [{ debugName: "selected" }] : []));
|
|
1306
|
+
/**
|
|
1307
|
+
* 是否高亮
|
|
1308
|
+
*/
|
|
1309
|
+
this.activated = computed(() => {
|
|
1310
|
+
return this.thyActivatedValue() === this.thyValue();
|
|
1311
|
+
}, ...(ngDevMode ? [{ debugName: "activated" }] : []));
|
|
1312
|
+
this.tabIndex = computed(() => {
|
|
1313
|
+
return this.thyDisabled() ? '-1' : '0';
|
|
1314
|
+
}, ...(ngDevMode ? [{ debugName: "tabIndex" }] : []));
|
|
1315
|
+
effect(() => {
|
|
1316
|
+
this.activated() ? this.setActiveStyles() : this.setInactiveStyles();
|
|
1317
|
+
});
|
|
1318
|
+
}
|
|
1319
|
+
mouseEnter() {
|
|
1320
|
+
this.optionHover.emit(this.thyValue());
|
|
1193
1321
|
}
|
|
1194
1322
|
handleKeydown(event) {
|
|
1195
1323
|
if ((event.keyCode === ENTER || event.keyCode === SPACE) && !hasModifierKey(event)) {
|
|
@@ -1198,190 +1326,66 @@ class ThyOption extends SelectOptionBase {
|
|
|
1198
1326
|
}
|
|
1199
1327
|
}
|
|
1200
1328
|
selectViaInteraction() {
|
|
1201
|
-
if (!this.
|
|
1202
|
-
|
|
1203
|
-
this.selected.set(selected);
|
|
1204
|
-
this.cdr.markForCheck();
|
|
1205
|
-
this.emitSelectionChangeEvent(true);
|
|
1329
|
+
if (!this.thyDisabled()) {
|
|
1330
|
+
this.optionClick.emit({ value: this.thyValue(), isUserInput: true });
|
|
1206
1331
|
}
|
|
1207
1332
|
}
|
|
1208
|
-
select(
|
|
1209
|
-
if (!this.
|
|
1333
|
+
select() {
|
|
1334
|
+
if (!this.thyDisabled()) {
|
|
1210
1335
|
if (!this.selected()) {
|
|
1211
|
-
this.
|
|
1212
|
-
this.emitSelectionChangeEvent();
|
|
1213
|
-
this.cdr.markForCheck();
|
|
1336
|
+
this.optionClick.emit({ value: this.thyValue() });
|
|
1214
1337
|
}
|
|
1215
1338
|
}
|
|
1216
1339
|
}
|
|
1217
1340
|
deselect() {
|
|
1218
|
-
if (this.selected() || this.
|
|
1219
|
-
this.
|
|
1220
|
-
this.emitSelectionChangeEvent();
|
|
1221
|
-
this.cdr.markForCheck();
|
|
1222
|
-
}
|
|
1223
|
-
}
|
|
1224
|
-
hideOption() {
|
|
1225
|
-
if (!this.hidden()) {
|
|
1226
|
-
this.hidden.set(true);
|
|
1227
|
-
this.visibleChange.emit({ option: this });
|
|
1228
|
-
this.cdr.markForCheck();
|
|
1229
|
-
}
|
|
1230
|
-
}
|
|
1231
|
-
showOption() {
|
|
1232
|
-
if (this.hidden()) {
|
|
1233
|
-
this.hidden.set(false);
|
|
1234
|
-
this.visibleChange.emit({ option: this });
|
|
1235
|
-
this.cdr.markForCheck();
|
|
1236
|
-
}
|
|
1237
|
-
}
|
|
1238
|
-
matchSearchText(searchText) {
|
|
1239
|
-
const thySearchKey = this.thySearchKey();
|
|
1240
|
-
if (thySearchKey) {
|
|
1241
|
-
if (thySearchKey.toLowerCase().indexOf(searchText.toLowerCase()) >= 0) {
|
|
1242
|
-
return true;
|
|
1243
|
-
}
|
|
1244
|
-
else {
|
|
1245
|
-
return false;
|
|
1246
|
-
}
|
|
1247
|
-
}
|
|
1248
|
-
else {
|
|
1249
|
-
if (this.thyLabelText.toLowerCase().indexOf(searchText.toLowerCase()) >= 0) {
|
|
1250
|
-
return true;
|
|
1251
|
-
}
|
|
1252
|
-
else {
|
|
1253
|
-
return false;
|
|
1254
|
-
}
|
|
1341
|
+
if (this.selected() || this.thyDisabled()) {
|
|
1342
|
+
this.optionClick.emit({ value: this.thyValue() });
|
|
1255
1343
|
}
|
|
1256
1344
|
}
|
|
1257
1345
|
setActiveStyles() {
|
|
1258
|
-
this.
|
|
1259
|
-
this.cdr.markForCheck();
|
|
1346
|
+
this.hostRenderer.addClass('hover');
|
|
1260
1347
|
}
|
|
1261
1348
|
setInactiveStyles() {
|
|
1262
|
-
this.
|
|
1263
|
-
this.cdr.markForCheck();
|
|
1349
|
+
this.hostRenderer.removeClass('hover');
|
|
1264
1350
|
}
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
}
|
|
1268
|
-
emitSelectionChangeEvent(isUserInput = false) {
|
|
1269
|
-
this.selectionChange.emit(new ThyOptionSelectionChangeEvent(this, isUserInput));
|
|
1270
|
-
}
|
|
1271
|
-
ngOnDestroy() { }
|
|
1272
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyOption, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1273
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: ThyOption, isStandalone: true, selector: "thy-option", inputs: { thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: false, isRequired: false, transformFunction: null }, thyRawValue: { classPropertyName: "thyRawValue", publicName: "thyRawValue", isSignal: false, isRequired: false, transformFunction: null }, thyLabelText: { classPropertyName: "thyLabelText", publicName: "thyLabelText", isSignal: false, isRequired: false, transformFunction: null }, thyShowOptionCustom: { classPropertyName: "thyShowOptionCustom", publicName: "thyShowOptionCustom", isSignal: true, isRequired: false, transformFunction: null }, thySearchKey: { classPropertyName: "thySearchKey", publicName: "thySearchKey", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: "selectionChange", visibleChange: "visibleChange" }, host: { listeners: { "click": "onClick($event)", "keydown": "handleKeydown($event)" }, properties: { "class.disabled": "thyDisabled()", "class.hidden": "hidden()", "attr.tabindex": "tabIndex", "class.active": "selected()" }, classAttribute: "thy-option-item" }, viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (thyShowOptionCustom()) {\n <ng-content></ng-content>\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n} @else {\n <span class=\"text-truncate\">{{ thyLabelText }}</span>\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n}\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1351
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyOptionRender, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1352
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyOptionRender, isStandalone: true, selector: "thy-option-render", inputs: { thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: true, isRequired: false, transformFunction: null }, thyRawValue: { classPropertyName: "thyRawValue", publicName: "thyRawValue", isSignal: true, isRequired: false, transformFunction: null }, thyLabelText: { classPropertyName: "thyLabelText", publicName: "thyLabelText", isSignal: true, isRequired: false, transformFunction: null }, thySearchKey: { classPropertyName: "thySearchKey", publicName: "thySearchKey", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null }, thyShowOptionCustom: { classPropertyName: "thyShowOptionCustom", publicName: "thyShowOptionCustom", isSignal: true, isRequired: false, transformFunction: null }, thyTemplate: { classPropertyName: "thyTemplate", publicName: "thyTemplate", isSignal: true, isRequired: false, transformFunction: null }, thyTemplateContext: { classPropertyName: "thyTemplateContext", publicName: "thyTemplateContext", isSignal: true, isRequired: false, transformFunction: null }, thyShowCheckedIcon: { classPropertyName: "thyShowCheckedIcon", publicName: "thyShowCheckedIcon", isSignal: true, isRequired: false, transformFunction: null }, thySelectedValuesMap: { classPropertyName: "thySelectedValuesMap", publicName: "thySelectedValuesMap", isSignal: true, isRequired: false, transformFunction: null }, thyActivatedValue: { classPropertyName: "thyActivatedValue", publicName: "thyActivatedValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { optionClick: "optionClick", optionHover: "optionHover" }, host: { listeners: { "click": "selectViaInteraction()", "mouseenter": "mouseEnter()", "keydown": "handleKeydown($event)" }, properties: { "class.disabled": "thyDisabled()", "attr.tabindex": "tabIndex()", "class.active": "selected()" }, classAttribute: "thy-option-item" }, ngImport: i0, template: "@if (thyShowOptionCustom()) {\n <ng-container *ngTemplateOutlet=\"thyTemplate(); context: thyTemplateContext()\"></ng-container>\n} @else {\n <span class=\"text-truncate\">{{ thyLabelText() }}</span>\n}\n@if (thyShowCheckedIcon() && selected()) {\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n}\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
1274
1353
|
}
|
|
1275
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1354
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyOptionRender, decorators: [{
|
|
1276
1355
|
type: Component,
|
|
1277
|
-
args: [{ selector: 'thy-option',
|
|
1356
|
+
args: [{ selector: 'thy-option-render', imports: [ThyIcon, NgTemplateOutlet], host: {
|
|
1278
1357
|
class: 'thy-option-item',
|
|
1279
1358
|
'[class.disabled]': 'thyDisabled()',
|
|
1280
|
-
'[
|
|
1281
|
-
'[
|
|
1282
|
-
'
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
type: Input
|
|
1288
|
-
}], thyLabelText: [{
|
|
1289
|
-
type: Input
|
|
1290
|
-
}], thyShowOptionCustom: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyShowOptionCustom", required: false }] }], thySearchKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySearchKey", required: false }] }], template: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }], thyDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDisabled", required: false }] }], selectionChange: [{ type: i0.Output, args: ["selectionChange"] }], visibleChange: [{ type: i0.Output, args: ["visibleChange"] }], onClick: [{
|
|
1291
|
-
type: HostListener,
|
|
1292
|
-
args: ['click', ['$event']]
|
|
1293
|
-
}], handleKeydown: [{
|
|
1294
|
-
type: HostListener,
|
|
1295
|
-
args: ['keydown', ['$event']]
|
|
1296
|
-
}] } });
|
|
1359
|
+
'[attr.tabindex]': `tabIndex()`,
|
|
1360
|
+
'[class.active]': 'selected()',
|
|
1361
|
+
'(click)': 'selectViaInteraction()',
|
|
1362
|
+
'(mouseenter)': 'mouseEnter()',
|
|
1363
|
+
'(keydown)': 'handleKeydown($event)'
|
|
1364
|
+
}, template: "@if (thyShowOptionCustom()) {\n <ng-container *ngTemplateOutlet=\"thyTemplate(); context: thyTemplateContext()\"></ng-container>\n} @else {\n <span class=\"text-truncate\">{{ thyLabelText() }}</span>\n}\n@if (thyShowCheckedIcon() && selected()) {\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n}\n" }]
|
|
1365
|
+
}], ctorParameters: () => [], propDecorators: { thyValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyValue", required: false }] }], thyRawValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyRawValue", required: false }] }], thyLabelText: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyLabelText", required: false }] }], thySearchKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySearchKey", required: false }] }], thyDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDisabled", required: false }] }], thyShowOptionCustom: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyShowOptionCustom", required: false }] }], thyTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyTemplate", required: false }] }], thyTemplateContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyTemplateContext", required: false }] }], thyShowCheckedIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyShowCheckedIcon", required: false }] }], thySelectedValuesMap: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySelectedValuesMap", required: false }] }], thyActivatedValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyActivatedValue", required: false }] }], optionClick: [{ type: i0.Output, args: ["optionClick"] }], optionHover: [{ type: i0.Output, args: ["optionHover"] }] } });
|
|
1297
1366
|
|
|
1298
1367
|
/**
|
|
1299
1368
|
* @private
|
|
1300
1369
|
*/
|
|
1301
|
-
class
|
|
1370
|
+
class ThyOptionGroupRender {
|
|
1302
1371
|
constructor() {
|
|
1303
|
-
this._ngZone = inject(NgZone);
|
|
1304
|
-
this.cdr = inject(ChangeDetectorRef);
|
|
1305
|
-
this.thyDisabled = input(false, ...(ngDevMode ? [{ debugName: "thyDisabled", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
|
|
1306
|
-
this.hidden = signal(false, ...(ngDevMode ? [{ debugName: "hidden" }] : []));
|
|
1307
1372
|
this.thyGroupLabel = input(undefined, ...(ngDevMode ? [{ debugName: "thyGroupLabel" }] : []));
|
|
1308
|
-
this.
|
|
1309
|
-
this.optionVisibleChanges = defer(() => {
|
|
1310
|
-
if (this.options) {
|
|
1311
|
-
return merge(...this.options.map(option => outputToObservable(option.visibleChange)));
|
|
1312
|
-
}
|
|
1313
|
-
return this._ngZone.onStable.asObservable().pipe(take(1), switchMap(() => this.optionVisibleChanges));
|
|
1314
|
-
});
|
|
1315
|
-
}
|
|
1316
|
-
ngAfterContentInit() {
|
|
1317
|
-
this.options.changes.pipe(startWith(null), takeUntil(this._destroy$)).subscribe(() => {
|
|
1318
|
-
this._resetOptions();
|
|
1319
|
-
});
|
|
1320
|
-
}
|
|
1321
|
-
_resetOptions() {
|
|
1322
|
-
const changedOrDestroyed$ = merge(this.options.changes, this._destroy$);
|
|
1323
|
-
merge(...this.options.map(option => outputToObservable(option.visibleChange)))
|
|
1324
|
-
.pipe(takeUntil(changedOrDestroyed$), debounceTime(10), map((event) => {
|
|
1325
|
-
const hasOption = this.options.find(option => {
|
|
1326
|
-
if (!option.hidden()) {
|
|
1327
|
-
return true;
|
|
1328
|
-
}
|
|
1329
|
-
});
|
|
1330
|
-
if (hasOption) {
|
|
1331
|
-
return false;
|
|
1332
|
-
}
|
|
1333
|
-
else {
|
|
1334
|
-
return true;
|
|
1335
|
-
}
|
|
1336
|
-
}))
|
|
1337
|
-
.subscribe((data) => {
|
|
1338
|
-
this.hidden.set(data);
|
|
1339
|
-
this.cdr.markForCheck();
|
|
1340
|
-
});
|
|
1341
|
-
}
|
|
1342
|
-
ngOnDestroy() {
|
|
1343
|
-
this._destroy$.next();
|
|
1344
|
-
this._destroy$.complete();
|
|
1345
|
-
}
|
|
1346
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThySelectOptionGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1347
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: ThySelectOptionGroup, isStandalone: true, selector: "thy-option-group", inputs: { thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null }, thyGroupLabel: { classPropertyName: "thyGroupLabel", publicName: "thyGroupLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.disabled": "thyDisabled()", "class.thy-select-option-group-hidden": "hidden()" }, classAttribute: "thy-option-item-group" }, queries: [{ propertyName: "options", predicate: ThyOption }], ngImport: i0, template: "<span class=\"group-name text-truncate\">{{ thyGroupLabel() }}</span>\n<ng-content></ng-content>\n" }); }
|
|
1348
|
-
}
|
|
1349
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThySelectOptionGroup, decorators: [{
|
|
1350
|
-
type: Component,
|
|
1351
|
-
args: [{ selector: 'thy-option-group', host: {
|
|
1352
|
-
class: 'thy-option-item-group',
|
|
1353
|
-
'[class.disabled]': 'thyDisabled()',
|
|
1354
|
-
'[class.thy-select-option-group-hidden]': 'hidden()'
|
|
1355
|
-
}, template: "<span class=\"group-name text-truncate\">{{ thyGroupLabel() }}</span>\n<ng-content></ng-content>\n" }]
|
|
1356
|
-
}], propDecorators: { thyDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDisabled", required: false }] }], thyGroupLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyGroupLabel", required: false }] }], options: [{
|
|
1357
|
-
type: ContentChildren,
|
|
1358
|
-
args: [ThyOption]
|
|
1359
|
-
}] } });
|
|
1360
|
-
|
|
1361
|
-
class ThyOptionsContainer {
|
|
1362
|
-
constructor() {
|
|
1363
|
-
this.optionsTemplate = viewChild('options', ...(ngDevMode ? [{ debugName: "optionsTemplate" }] : []));
|
|
1373
|
+
this.thyDisabled = input(false, ...(ngDevMode ? [{ debugName: "thyDisabled", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
|
|
1364
1374
|
}
|
|
1365
|
-
|
|
1366
|
-
static { this.ɵ
|
|
1367
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.14", type: ThyOptionsContainer, isStandalone: true, selector: "thy-options-container", viewQueries: [{ propertyName: "optionsTemplate", first: true, predicate: ["options"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
1368
|
-
<ng-template #options>
|
|
1369
|
-
<ng-content></ng-content>
|
|
1370
|
-
</ng-template>
|
|
1371
|
-
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1375
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyOptionGroupRender, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1376
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: ThyOptionGroupRender, isStandalone: true, selector: "thy-option-group-render", inputs: { thyGroupLabel: { classPropertyName: "thyGroupLabel", publicName: "thyGroupLabel", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.disabled": "thyDisabled()" }, classAttribute: "thy-option-group-render" }, ngImport: i0, template: `<span class="group-name text-truncate">{{ thyGroupLabel() }}</span>`, isInline: true }); }
|
|
1372
1377
|
}
|
|
1373
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1378
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyOptionGroupRender, decorators: [{
|
|
1374
1379
|
type: Component,
|
|
1375
1380
|
args: [{
|
|
1376
|
-
selector: 'thy-
|
|
1377
|
-
template:
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
1381
|
+
selector: 'thy-option-group-render',
|
|
1382
|
+
template: `<span class="group-name text-truncate">{{ thyGroupLabel() }}</span>`,
|
|
1383
|
+
host: {
|
|
1384
|
+
class: 'thy-option-group-render',
|
|
1385
|
+
'[class.disabled]': 'thyDisabled()'
|
|
1386
|
+
}
|
|
1383
1387
|
}]
|
|
1384
|
-
}],
|
|
1388
|
+
}], propDecorators: { thyGroupLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyGroupLabel", required: false }] }], thyDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDisabled", required: false }] }] } });
|
|
1385
1389
|
|
|
1386
1390
|
/**
|
|
1387
1391
|
* @license
|
|
@@ -1391,21 +1395,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
1391
1395
|
* found in the LICENSE file at https://angular.io/license
|
|
1392
1396
|
*/
|
|
1393
1397
|
class ThyOptionModule {
|
|
1394
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1395
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
1396
|
-
|
|
1398
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyOptionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1399
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyOptionModule, imports: [CommonModule,
|
|
1400
|
+
ThyIconModule,
|
|
1401
|
+
ThyListOption,
|
|
1402
|
+
ThyOptionGroup,
|
|
1403
|
+
ThyOption,
|
|
1404
|
+
ThyOptionRender,
|
|
1405
|
+
ThySelectOptionGroup,
|
|
1406
|
+
ThyOptionGroupRender], exports: [ThyListOption, ThyOptionGroup, ThyOption, ThyOptionRender, ThySelectOptionGroup, ThyOptionGroupRender] }); }
|
|
1407
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyOptionModule, imports: [CommonModule,
|
|
1408
|
+
ThyIconModule,
|
|
1409
|
+
ThyListOption,
|
|
1410
|
+
ThyOptionRender] }); }
|
|
1397
1411
|
}
|
|
1398
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1412
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyOptionModule, decorators: [{
|
|
1399
1413
|
type: NgModule,
|
|
1400
1414
|
args: [{
|
|
1401
|
-
imports: [
|
|
1402
|
-
|
|
1415
|
+
imports: [
|
|
1416
|
+
CommonModule,
|
|
1417
|
+
ThyIconModule,
|
|
1418
|
+
ThyListOption,
|
|
1419
|
+
ThyOptionGroup,
|
|
1420
|
+
ThyOption,
|
|
1421
|
+
ThyOptionRender,
|
|
1422
|
+
ThySelectOptionGroup,
|
|
1423
|
+
ThyOptionGroupRender
|
|
1424
|
+
],
|
|
1425
|
+
exports: [ThyListOption, ThyOptionGroup, ThyOption, ThyOptionRender, ThySelectOptionGroup, ThyOptionGroupRender]
|
|
1403
1426
|
}]
|
|
1404
1427
|
}] });
|
|
1405
1428
|
|
|
1429
|
+
class SelectOptionBase {
|
|
1430
|
+
}
|
|
1431
|
+
|
|
1406
1432
|
/**
|
|
1407
1433
|
* Generated bundle index. Do not edit.
|
|
1408
1434
|
*/
|
|
1409
1435
|
|
|
1410
|
-
export { SelectOptionBase, THY_LIST_OPTION_PARENT_COMPONENT,
|
|
1436
|
+
export { SelectOptionBase, THY_LIST_OPTION_PARENT_COMPONENT, ThyAutofocusDirective, ThyContextMenuDirective, ThyCtrlEnterDirective, ThyDragDropDirective, ThyEnterDirective, ThyFormCheckBaseComponent, ThyListOption, ThyOption, ThyOptionGroup, ThyOptionGroupRender, ThyOptionModule, ThyOptionRender, ThyOptionSelectionChangeEvent, ThyScrollDirective, ThySelectCommonModule, ThySelectControl, ThySelectOptionGroup, ThySharedModule, ThyShowDirective, ThyStopPropagationDirective, ThyStringOrTemplateOutletDirective, ThyTranscludeDirective, ThyViewOutletDirective };
|
|
1411
1437
|
//# sourceMappingURL=ngx-tethys-shared.mjs.map
|