ngx-tethys 17.0.5 → 17.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [17.0.6](https://github.com/atinc/ngx-tethys/compare/17.0.5...17.0.6) (2024-04-22)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **segment:** fix options bug and style #INFR-12166 ([#3079](https://github.com/atinc/ngx-tethys/issues/3079)) ([b7321ac](https://github.com/atinc/ngx-tethys/commit/b7321acd88807d169a11daa9131677a0f5d09d01)), closes [#INFR-12166](https://github.com/atinc/ngx-tethys/issues/INFR-12166)
11
+
12
+
13
+
5
14
  ## [17.0.5](https://github.com/atinc/ngx-tethys/compare/17.0.4...17.0.5) (2024-04-19)
6
15
 
7
16
 
@@ -1,8 +1,9 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, EventEmitter, HostBinding, Input, Output, QueryList, ViewEncapsulation, booleanAttribute, numberAttribute } from '@angular/core';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, DestroyRef, EventEmitter, HostBinding, Input, Output, QueryList, ViewEncapsulation, booleanAttribute, numberAttribute } from '@angular/core';
2
2
  import { thumbMotion } from 'ngx-tethys/core';
3
3
  import { ThySegmentItem } from './segment-item.component';
4
4
  import { THY_SEGMENTED_COMPONENT } from './segment.token';
5
5
  import { NgIf } from '@angular/common';
6
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
7
  import * as i0 from "@angular/core";
7
8
  /**
8
9
  * 分段控制器组件
@@ -13,20 +14,24 @@ export class ThySegment {
13
14
  * 选中选项的索引
14
15
  */
15
16
  set thyActiveIndex(value) {
17
+ this.newActiveIndex = value;
16
18
  if (value < 0 || value === this.activeIndex) {
17
19
  return;
18
20
  }
19
- const selectedItem = this.options?.get(this.activeIndex);
20
- if (selectedItem) {
21
- selectedItem.unselect();
22
- this.changeSelectedItem(this.options.get(value));
23
- }
24
- else {
25
- this.activeIndex = value;
26
- }
21
+ setTimeout(() => {
22
+ const selectedItem = this.options?.get(this.activeIndex);
23
+ if (selectedItem) {
24
+ selectedItem.unselect();
25
+ this.changeSelectedItem(this.options.get(value));
26
+ }
27
+ else {
28
+ this.activeIndex = value;
29
+ }
30
+ });
27
31
  }
28
- constructor(cdr) {
32
+ constructor(cdr, destroyRef) {
29
33
  this.cdr = cdr;
34
+ this.destroyRef = destroyRef;
30
35
  /**
31
36
  * 大小
32
37
  * @type xs | sm | md | default
@@ -45,18 +50,25 @@ export class ThySegment {
45
50
  * 选项被选中的回调事件
46
51
  */
47
52
  this.thySelectChange = new EventEmitter();
48
- this.activeIndex = 0;
49
53
  this.animationState = null;
50
54
  this.transitionedTo = null;
51
55
  }
52
56
  ngAfterContentInit() {
53
- this.selectedItem = this.options.get(this.activeIndex) || this.options.get(0);
57
+ this.selectedItem = this.options.get(this.newActiveIndex) || this.options.get(0);
54
58
  this.selectedItem?.select();
59
+ this.options.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
60
+ this.options.forEach(item => {
61
+ item.unselect();
62
+ });
63
+ this.selectedItem = this.options.get(this.newActiveIndex) || this.options.get(0);
64
+ this.selectedItem?.select();
65
+ this.cdr.detectChanges();
66
+ });
55
67
  }
56
68
  changeSelectedItem(item, event) {
57
69
  this.animationState = {
58
70
  value: 'from',
59
- params: getThumbAnimationProps(this.options?.get(this.activeIndex)?.elementRef.nativeElement)
71
+ params: getThumbAnimationProps(this.options?.get(this.activeIndex || 0)?.elementRef.nativeElement)
60
72
  };
61
73
  this.selectedItem = null;
62
74
  this.cdr.detectChanges();
@@ -80,7 +92,7 @@ export class ThySegment {
80
92
  this.cdr.detectChanges();
81
93
  }
82
94
  }
83
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThySegment, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThySegment, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
84
96
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThySegment, isStandalone: true, selector: "thy-segment", inputs: { thySize: "thySize", thyMode: "thyMode", thyDisabled: ["thyDisabled", "thyDisabled", booleanAttribute], thyActiveIndex: ["thyActiveIndex", "thyActiveIndex", numberAttribute] }, 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": "this.thyDisabled" }, classAttribute: "thy-segment" }, providers: [
85
97
  {
86
98
  provide: THY_SEGMENTED_COMPONENT,
@@ -103,7 +115,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
103
115
  '[class.thy-segment-default]': `!thySize || thySize === 'default'`,
104
116
  '[class.thy-segment-block]': `thyMode === 'block'`
105
117
  }, standalone: true, imports: [NgIf], template: "<div class=\"thy-segment-group\">\n <div\n *ngIf=\"animationState\"\n class=\"thy-segment-thumb thy-segment-thumb-motion\"\n [@thumbMotion]=\"animationState\"\n (@thumbMotion.done)=\"handleThumbAnimationDone($event)\"\n ></div>\n\n <ng-content></ng-content>\n</div>\n" }]
106
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { options: [{
118
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.DestroyRef }], propDecorators: { options: [{
107
119
  type: ContentChildren,
108
120
  args: [ThySegmentItem]
109
121
  }], thySize: [{
@@ -128,4 +140,4 @@ function getThumbAnimationProps(element) {
128
140
  width: element.clientWidth
129
141
  };
130
142
  }
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VnbWVudC9zZWdtZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9zZWdtZW50L3NlZ21lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBd0IsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdoRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBTXZDOzs7R0FHRztBQXlCSCxNQUFNLE9BQU8sVUFBVTtJQXlCbkI7O09BRUc7SUFDSCxJQUNJLGNBQWMsQ0FBQyxLQUFhO1FBQzVCLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzFDLE9BQU87UUFDWCxDQUFDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pELElBQUksWUFBWSxFQUFFLENBQUM7WUFDZixZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFD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b0JoQixVQUFVO2tCQXhCdEIsU0FBUzsrQkFDSSxhQUFhLFlBRWIsWUFBWSxjQUNWLENBQUMsV0FBVyxDQUFDLGlCQUNWLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLHVCQUF1Qjs0QkFDaEMsV0FBVyxZQUFZO3lCQUMxQjtxQkFDSixRQUNLO3dCQUNGLEtBQUssRUFBRSxhQUFhO3dCQUNwQix3QkFBd0IsRUFBRSxrQkFBa0I7d0JBQzVDLHdCQUF3QixFQUFFLGtCQUFrQjt3QkFDNUMsd0JBQXdCLEVBQUUsa0JBQWtCO3dCQUM1Qyw2QkFBNkIsRUFBRSxtQ0FBbUM7d0JBQ2xFLDJCQUEyQixFQUFFLHFCQUFxQjtxQkFDckQsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLENBQUM7c0ZBTWtCLE9BQU87c0JBQXZDLGVBQWU7dUJBQUMsY0FBYztnQkFNdEIsT0FBTztzQkFBZixLQUFLO2dCQU1HLE9BQU87c0JBQWYsS0FBSztnQkFPTixXQUFXO3NCQUZWLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7O3NCQUNyQyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFPekIsY0FBYztzQkFEakIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBaUJsQixlQUFlO3NCQUFqQyxNQUFNOztBQWdEWCxTQUFTLHNCQUFzQixDQUFDLE9BQW9CO0lBQ2hELE9BQU87UUFDSCxTQUFTLEVBQUUsT0FBTyxDQUFDLFVBQVU7UUFDN0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXO0tBQzdCLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHVtYkFuaW1hdGlvblByb3BzIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IHRodW1iTW90aW9uIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeVNlZ21lbnRJdGVtIH0gZnJvbSAnLi9zZWdtZW50LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IElUaHlTZWdtZW50Q29tcG9uZW50LCBUSFlfU0VHTUVOVEVEX0NPTVBPTkVOVCB9IGZyb20gJy4vc2VnbWVudC50b2tlbic7XG5pbXBvcnQgeyBUaHlTZWdtZW50RXZlbnQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IHR5cGUgVGh5U2VnbWVudFNpemUgPSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnZGVmYXVsdCc7XG5cbmV4cG9ydCB0eXBlIFRoeVNlZ21lbnRNb2RlID0gJ2Jsb2NrJyB8ICdpbmxpbmUnO1xuXG4vKipcbiAqIOWIhuauteaOp+WItuWZqOe7hOS7tlxuICogQG5hbWUgdGh5LXNlZ21lbnRcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktc2VnbWVudCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlZ21lbnQuY29tcG9uZW50Lmh0bWwnLFxuICAgIGV4cG9ydEFzOiAndGh5U2VnbWVudCcsXG4gICAgYW5pbWF0aW9uczogW3RodW1iTW90aW9uXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUSFlfU0VHTUVOVEVEX0NPTVBPTkVOVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBUaHlTZWdtZW50XG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktc2VnbWVudCcsXG4gICAgICAgICdbY2xhc3MudGh5LXNlZ21lbnQteHNdJzogYHRoeVNpemUgPT09ICd4cydgLFxuICAgICAgICAnW2NsYXNzLnRoeS1zZWdtZW50LXNtXSc6IGB0aHlTaXplID09PSAnc20nYCxcbiAgICAgICAgJ1tjbGFzcy50aHktc2VnbWVudC1tZF0nOiBgdGh5U2l6ZSA9PT0gJ21kJ2AsXG4gICAgICAgICdbY2xhc3MudGh5LXNlZ21lbnQtZGVmYXVsdF0nOiBgIXRoeVNpemUgfHwgdGh5U2l6ZSA9PT0gJ2RlZmF1bHQnYCxcbiAgICAgICAgJ1tjbGFzcy50aHktc2VnbWVudC1ibG9ja10nOiBgdGh5TW9kZSA9PT0gJ2Jsb2NrJ2BcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWZdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVNlZ21lbnQgaW1wbGVtZW50cyBJVGh5U2VnbWVudENvbXBvbmVudCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihUaHlTZWdtZW50SXRlbSkgb3B0aW9ucyE6IFF1ZXJ5TGlzdDxUaHlTZWdtZW50SXRlbT47XG5cbiAgICAvKipcbiAgICAgKiDlpKflsI9cbiAgICAgKiBAdHlwZSB4cyB8IHNtIHwgbWQgfCBkZWZhdWx0XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U2l6ZTogVGh5U2VnbWVudFNpemUgPSAnZGVmYXVsdCc7XG5cbiAgICAvKipcbiAgICAgKiDmqKHlvI9cbiAgICAgKiBAdHlwZSBibG9jayB8IGlubGluZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeU1vZGU6IFRoeVNlZ21lbnRNb2RlID0gJ2Jsb2NrJztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuemgeeUqOWIhuauteaOp+WItuWZqFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIEBIb3N0QmluZGluZyhgY2xhc3MuZGlzYWJsZWRgKVxuICAgIHRoeURpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDpgInkuK3pgInpobnnmoTntKLlvJVcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlBY3RpdmVJbmRleCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh2YWx1ZSA8IDAgfHwgdmFsdWUgPT09IHRoaXMuYWN0aXZlSW5kZXgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLm9wdGlvbnM/LmdldCh0aGlzLmFjdGl2ZUluZGV4KTtcbiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtLnVuc2VsZWN0KCk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVNlbGVjdGVkSXRlbSh0aGlzLm9wdGlvbnMuZ2V0KHZhbHVlKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDpgInpobnooqvpgInkuK3nmoTlm57osIPkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5U2VsZWN0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlTZWdtZW50RXZlbnQ+KCk7XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWRJdGVtOiBUaHlTZWdtZW50SXRlbTtcblxuICAgIHByaXZhdGUgYWN0aXZlSW5kZXggPSAwO1xuXG4gICAgcHVibGljIGFuaW1hdGlvblN0YXRlOiBudWxsIHwgeyB2YWx1ZTogc3RyaW5nOyBwYXJhbXM6IFRodW1iQW5pbWF0aW9uUHJvcHMgfSA9IG51bGw7XG5cbiAgICBwdWJsaWMgdHJhbnNpdGlvbmVkVG86IGFueSA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gdGhpcy5vcHRpb25zLmdldCh0aGlzLmFjdGl2ZUluZGV4KSB8fCB0aGlzLm9wdGlvbnMuZ2V0KDApO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbT8uc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNoYW5nZVNlbGVjdGVkSXRlbShpdGVtOiBUaHlTZWdtZW50SXRlbSwgZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFuaW1hdGlvblN0YXRlID0ge1xuICAgICAgICAgICAgdmFsdWU6ICdmcm9tJyxcbiAgICAgICAgICAgIHBhcmFtczogZ2V0VGh1bWJBbmltYXRpb25Qcm9wcyh0aGlzLm9wdGlvbnM/LmdldCh0aGlzLmFjdGl2ZUluZGV4KT8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50ISlcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBudWxsO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZSA9IHtcbiAgICAgICAgICAgIHZhbHVlOiAndG8nLFxuICAgICAgICAgICAgcGFyYW1zOiBnZXRUaHVtYkFuaW1hdGlvblByb3BzKGl0ZW0uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50ISlcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy50cmFuc2l0aW9uZWRUbyA9IGl0ZW07XG4gICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSB0aGlzLm9wdGlvbnM/LnRvQXJyYXkoKS5maW5kSW5kZXgob3B0aW9uID0+IHtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb24udGh5VmFsdWUgPT09IGl0ZW0/LnRoeVZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy50aHlTZWxlY3RDaGFuZ2UuZW1pdCh7IGV2ZW50OiBldmVudCwgdmFsdWU6IGl0ZW0udGh5VmFsdWUsIGFjdGl2ZUluZGV4OiB0aGlzLmFjdGl2ZUluZGV4IH0pO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZVRodW1iQW5pbWF0aW9uRG9uZShldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LmZyb21TdGF0ZSA9PT0gJ2Zyb20nKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHRoaXMudHJhbnNpdGlvbmVkVG87XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbT8uc2VsZWN0KCk7XG4gICAgICAgICAgICB0aGlzLnRyYW5zaXRpb25lZFRvID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXRUaHVtYkFuaW1hdGlvblByb3BzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogVGh1bWJBbmltYXRpb25Qcm9wcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHJhbnNmb3JtOiBlbGVtZW50Lm9mZnNldExlZnQsXG4gICAgICAgIHdpZHRoOiBlbGVtZW50LmNsaWVudFdpZHRoXG4gICAgfTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktc2VnbWVudC1ncm91cFwiPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJhbmltYXRpb25TdGF0ZVwiXG4gICAgY2xhc3M9XCJ0aHktc2VnbWVudC10aHVtYiB0aHktc2VnbWVudC10aHVtYi1tb3Rpb25cIlxuICAgIFtAdGh1bWJNb3Rpb25dPVwiYW5pbWF0aW9uU3RhdGVcIlxuICAgIChAdGh1bWJNb3Rpb24uZG9uZSk9XCJoYW5kbGVUaHVtYkFuaW1hdGlvbkRvbmUoJGV2ZW50KVwiXG4gID48L2Rpdj5cblxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VnbWVudC9zZWdtZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9zZWdtZW50L3NlZ21lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQXdCLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHaEYsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU1oRTs7O0dBR0c7QUF5QkgsTUFBTSxPQUFPLFVBQVU7SUF5Qm5COztPQUVHO0lBQ0gsSUFDSSxjQUFjLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMxQyxPQUFPO1FBQ1gsQ0FBQztRQUNELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekQsSUFBSSxZQUFZLEVBQUUs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Q0FBbUM7d0JBQ2xFLDJCQUEyQixFQUFFLHFCQUFxQjtxQkFDckQsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLENBQUM7K0dBTWtCLE9BQU87c0JBQXZDLGVBQWU7dUJBQUMsY0FBYztnQkFNdEIsT0FBTztzQkFBZixLQUFLO2dCQU1HLE9BQU87c0JBQWYsS0FBSztnQkFPTixXQUFXO3NCQUZWLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7O3NCQUNyQyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFPekIsY0FBYztzQkFEakIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBb0JsQixlQUFlO3NCQUFqQyxNQUFNOztBQTJEWCxTQUFTLHNCQUFzQixDQUFDLE9BQW9CO0lBQ2hELE9BQU87UUFDSCxTQUFTLEVBQUUsT0FBTyxDQUFDLFVBQVU7UUFDN0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXO0tBQzdCLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIG51bWJlckF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRodW1iQW5pbWF0aW9uUHJvcHMgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgdGh1bWJNb3Rpb24gfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgVGh5U2VnbWVudEl0ZW0gfSBmcm9tICcuL3NlZ21lbnQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSVRoeVNlZ21lbnRDb21wb25lbnQsIFRIWV9TRUdNRU5URURfQ09NUE9ORU5UIH0gZnJvbSAnLi9zZWdtZW50LnRva2VuJztcbmltcG9ydCB7IFRoeVNlZ21lbnRFdmVudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5leHBvcnQgdHlwZSBUaHlTZWdtZW50U2l6ZSA9ICd4cycgfCAnc20nIHwgJ21kJyB8ICdkZWZhdWx0JztcblxuZXhwb3J0IHR5cGUgVGh5U2VnbWVudE1vZGUgPSAnYmxvY2snIHwgJ2lubGluZSc7XG5cbi8qKlxuICog5YiG5q615o6n5Yi25Zmo57uE5Lu2XG4gKiBAbmFtZSB0aHktc2VnbWVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1zZWdtZW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VnbWVudC5jb21wb25lbnQuaHRtbCcsXG4gICAgZXhwb3J0QXM6ICd0aHlTZWdtZW50JyxcbiAgICBhbmltYXRpb25zOiBbdGh1bWJNb3Rpb25dLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRIWV9TRUdNRU5URURfQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFRoeVNlZ21lbnRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1zZWdtZW50JyxcbiAgICAgICAgJ1tjbGFzcy50aHktc2VnbWVudC14c10nOiBgdGh5U2l6ZSA9PT0gJ3hzJ2AsXG4gICAgICAgICdbY2xhc3MudGh5LXNlZ21lbnQtc21dJzogYHRoeVNpemUgPT09ICdzbSdgLFxuICAgICAgICAnW2NsYXNzLnRoeS1zZWdtZW50LW1kXSc6IGB0aHlTaXplID09PSAnbWQnYCxcbiAgICAgICAgJ1tjbGFzcy50aHktc2VnbWVudC1kZWZhdWx0XSc6IGAhdGh5U2l6ZSB8fCB0aHlTaXplID09PSAnZGVmYXVsdCdgLFxuICAgICAgICAnW2NsYXNzLnRoeS1zZWdtZW50LWJsb2NrXSc6IGB0aHlNb2RlID09PSAnYmxvY2snYFxuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZl1cbn0pXG5leHBvcnQgY2xhc3MgVGh5U2VnbWVudCBpbXBsZW1lbnRzIElUaHlTZWdtZW50Q29tcG9uZW50LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICAvKipcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKFRoeVNlZ21lbnRJdGVtKSBvcHRpb25zITogUXVlcnlMaXN0PFRoeVNlZ21lbnRJdGVtPjtcblxuICAgIC8qKlxuICAgICAqIOWkp+Wwj1xuICAgICAqIEB0eXBlIHhzIHwgc20gfCBtZCB8IGRlZmF1bHRcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTaXplOiBUaHlTZWdtZW50U2l6ZSA9ICdkZWZhdWx0JztcblxuICAgIC8qKlxuICAgICAqIOaooeW8j1xuICAgICAqIEB0eXBlIGJsb2NrIHwgaW5saW5lXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5TW9kZTogVGh5U2VnbWVudE1vZGUgPSAnYmxvY2snO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm56aB55So5YiG5q615o6n5Yi25ZmoXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy5kaXNhYmxlZGApXG4gICAgdGh5RGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOmAieS4remAiemhueeahOe0ouW8lVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeUFjdGl2ZUluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5uZXdBY3RpdmVJbmRleCA9IHZhbHVlO1xuICAgICAgICBpZiAodmFsdWUgPCAwIHx8IHZhbHVlID09PSB0aGlzLmFjdGl2ZUluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLm9wdGlvbnM/LmdldCh0aGlzLmFjdGl2ZUluZGV4KTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW0udW5zZWxlY3QoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVNlbGVjdGVkSXRlbSh0aGlzLm9wdGlvbnMuZ2V0KHZhbHVlKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6YCJ6aG56KKr6YCJ5Lit55qE5Zue6LCD5LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHRoeVNlbGVjdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5U2VnbWVudEV2ZW50PigpO1xuXG4gICAgcHVibGljIHNlbGVjdGVkSXRlbTogVGh5U2VnbWVudEl0ZW07XG5cbiAgICBwcml2YXRlIG5ld0FjdGl2ZUluZGV4OiBudW1iZXI7XG5cbiAgICBwcml2YXRlIGFjdGl2ZUluZGV4OiBudW1iZXI7XG5cbiAgICBwdWJsaWMgYW5pbWF0aW9uU3RhdGU6IG51bGwgfCB7IHZhbHVlOiBzdHJpbmc7IHBhcmFtczogVGh1bWJBbmltYXRpb25Qcm9wcyB9ID0gbnVsbDtcblxuICAgIHB1YmxpYyB0cmFuc2l0aW9uZWRUbzogYW55ID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBkZXN0cm95UmVmOiBEZXN0cm95UmVmKSB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHRoaXMub3B0aW9ucy5nZXQodGhpcy5uZXdBY3RpdmVJbmRleCkgfHwgdGhpcy5vcHRpb25zLmdldCgwKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0/LnNlbGVjdCgpO1xuXG4gICAgICAgIHRoaXMub3B0aW9ucy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLnVuc2VsZWN0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gdGhpcy5vcHRpb25zLmdldCh0aGlzLm5ld0FjdGl2ZUluZGV4KSB8fCB0aGlzLm9wdGlvbnMuZ2V0KDApO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0/LnNlbGVjdCgpO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlU2VsZWN0ZWRJdGVtKGl0ZW06IFRoeVNlZ21lbnRJdGVtLCBldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSB7XG4gICAgICAgICAgICB2YWx1ZTogJ2Zyb20nLFxuICAgICAgICAgICAgcGFyYW1zOiBnZXRUaHVtYkFuaW1hdGlvblByb3BzKHRoaXMub3B0aW9ucz8uZ2V0KHRoaXMuYWN0aXZlSW5kZXggfHwgMCk/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCEpXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gbnVsbDtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSB7XG4gICAgICAgICAgICB2YWx1ZTogJ3RvJyxcbiAgICAgICAgICAgIHBhcmFtczogZ2V0VGh1bWJBbmltYXRpb25Qcm9wcyhpdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCEpXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudHJhbnNpdGlvbmVkVG8gPSBpdGVtO1xuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gdGhpcy5vcHRpb25zPy50b0FycmF5KCkuZmluZEluZGV4KG9wdGlvbiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRoeVZhbHVlID09PSBpdGVtPy50aHlWYWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudGh5U2VsZWN0Q2hhbmdlLmVtaXQoeyBldmVudDogZXZlbnQsIHZhbHVlOiBpdGVtLnRoeVZhbHVlLCBhY3RpdmVJbmRleDogdGhpcy5hY3RpdmVJbmRleCB9KTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVUaHVtYkFuaW1hdGlvbkRvbmUoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5mcm9tU3RhdGUgPT09ICdmcm9tJykge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLnRyYW5zaXRpb25lZFRvO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0/LnNlbGVjdCgpO1xuICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uZWRUbyA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvblN0YXRlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZnVuY3Rpb24gZ2V0VGh1bWJBbmltYXRpb25Qcm9wcyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IFRodW1iQW5pbWF0aW9uUHJvcHMge1xuICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zZm9ybTogZWxlbWVudC5vZmZzZXRMZWZ0LFxuICAgICAgICB3aWR0aDogZWxlbWVudC5jbGllbnRXaWR0aFxuICAgIH07XG59XG4iLCI8ZGl2IGNsYXNzPVwidGh5LXNlZ21lbnQtZ3JvdXBcIj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiYW5pbWF0aW9uU3RhdGVcIlxuICAgIGNsYXNzPVwidGh5LXNlZ21lbnQtdGh1bWIgdGh5LXNlZ21lbnQtdGh1bWItbW90aW9uXCJcbiAgICBbQHRodW1iTW90aW9uXT1cImFuaW1hdGlvblN0YXRlXCJcbiAgICAoQHRodW1iTW90aW9uLmRvbmUpPVwiaGFuZGxlVGh1bWJBbmltYXRpb25Eb25lKCRldmVudClcIlxuICA+PC9kaXY+XG5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  import { Version } from '@angular/core';
2
- export const VERSION = new Version('17.0.5');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxNy4wLjUnKTtcbiJdfQ==
2
+ export const VERSION = new Version('17.0.6');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxNy4wLjYnKTtcbiJdfQ==
@@ -7,6 +7,7 @@ import { thumbMotion } from 'ngx-tethys/core';
7
7
  import { assertIconOnly } from 'ngx-tethys/util';
8
8
  import { Subject, fromEvent } from 'rxjs';
9
9
  import { takeUntil } from 'rxjs/operators';
10
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
10
11
 
11
12
  const THY_SEGMENTED_COMPONENT = new InjectionToken('THY_SEGMENTED_COMPONENT');
12
13
 
@@ -101,20 +102,24 @@ class ThySegment {
101
102
  * 选中选项的索引
102
103
  */
103
104
  set thyActiveIndex(value) {
105
+ this.newActiveIndex = value;
104
106
  if (value < 0 || value === this.activeIndex) {
105
107
  return;
106
108
  }
107
- const selectedItem = this.options?.get(this.activeIndex);
108
- if (selectedItem) {
109
- selectedItem.unselect();
110
- this.changeSelectedItem(this.options.get(value));
111
- }
112
- else {
113
- this.activeIndex = value;
114
- }
109
+ setTimeout(() => {
110
+ const selectedItem = this.options?.get(this.activeIndex);
111
+ if (selectedItem) {
112
+ selectedItem.unselect();
113
+ this.changeSelectedItem(this.options.get(value));
114
+ }
115
+ else {
116
+ this.activeIndex = value;
117
+ }
118
+ });
115
119
  }
116
- constructor(cdr) {
120
+ constructor(cdr, destroyRef) {
117
121
  this.cdr = cdr;
122
+ this.destroyRef = destroyRef;
118
123
  /**
119
124
  * 大小
120
125
  * @type xs | sm | md | default
@@ -133,18 +138,25 @@ class ThySegment {
133
138
  * 选项被选中的回调事件
134
139
  */
135
140
  this.thySelectChange = new EventEmitter();
136
- this.activeIndex = 0;
137
141
  this.animationState = null;
138
142
  this.transitionedTo = null;
139
143
  }
140
144
  ngAfterContentInit() {
141
- this.selectedItem = this.options.get(this.activeIndex) || this.options.get(0);
145
+ this.selectedItem = this.options.get(this.newActiveIndex) || this.options.get(0);
142
146
  this.selectedItem?.select();
147
+ this.options.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
148
+ this.options.forEach(item => {
149
+ item.unselect();
150
+ });
151
+ this.selectedItem = this.options.get(this.newActiveIndex) || this.options.get(0);
152
+ this.selectedItem?.select();
153
+ this.cdr.detectChanges();
154
+ });
143
155
  }
144
156
  changeSelectedItem(item, event) {
145
157
  this.animationState = {
146
158
  value: 'from',
147
- params: getThumbAnimationProps(this.options?.get(this.activeIndex)?.elementRef.nativeElement)
159
+ params: getThumbAnimationProps(this.options?.get(this.activeIndex || 0)?.elementRef.nativeElement)
148
160
  };
149
161
  this.selectedItem = null;
150
162
  this.cdr.detectChanges();
@@ -168,7 +180,7 @@ class ThySegment {
168
180
  this.cdr.detectChanges();
169
181
  }
170
182
  }
171
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThySegment, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
183
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThySegment, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
172
184
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThySegment, isStandalone: true, selector: "thy-segment", inputs: { thySize: "thySize", thyMode: "thyMode", thyDisabled: ["thyDisabled", "thyDisabled", booleanAttribute], thyActiveIndex: ["thyActiveIndex", "thyActiveIndex", numberAttribute] }, 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": "this.thyDisabled" }, classAttribute: "thy-segment" }, providers: [
173
185
  {
174
186
  provide: THY_SEGMENTED_COMPONENT,
@@ -191,7 +203,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
191
203
  '[class.thy-segment-default]': `!thySize || thySize === 'default'`,
192
204
  '[class.thy-segment-block]': `thyMode === 'block'`
193
205
  }, standalone: true, imports: [NgIf], template: "<div class=\"thy-segment-group\">\n <div\n *ngIf=\"animationState\"\n class=\"thy-segment-thumb thy-segment-thumb-motion\"\n [@thumbMotion]=\"animationState\"\n (@thumbMotion.done)=\"handleThumbAnimationDone($event)\"\n ></div>\n\n <ng-content></ng-content>\n</div>\n" }]
194
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { options: [{
206
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.DestroyRef }], propDecorators: { options: [{
195
207
  type: ContentChildren,
196
208
  args: [ThySegmentItem]
197
209
  }], thySize: [{
@@ -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 { InjectionToken } from '@angular/core';\nimport { ThySegmentItem } from './segment-item.component';\n\nexport interface IThySegmentComponent {\n thyMode: string;\n thyDisabled: boolean;\n selectedItem: ThySegmentItem;\n changeSelectedItem: (item: ThySegmentItem, event?: Event) => void;\n}\n\nexport const THY_SEGMENTED_COMPONENT = new InjectionToken<IThySegmentComponent>('THY_SEGMENTED_COMPONENT');\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Renderer2,\n booleanAttribute\n} from '@angular/core';\nimport { IThySegmentComponent, THY_SEGMENTED_COMPONENT } from './segment.token';\nimport { assertIconOnly } from 'ngx-tethys/util';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass, NgIf } from '@angular/common';\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 },\n standalone: true,\n imports: [NgClass, NgIf, ThyIcon]\n})\nexport class ThySegmentItem implements AfterViewInit, OnDestroy {\n /**\n * 选项的值\n */\n @Input() thyValue: SafeAny;\n\n /**\n * 选项的图标\n */\n @Input() thyIcon: string;\n\n /**\n * 是否禁用该选项\n */\n @Input({ transform: booleanAttribute })\n @HostBinding(`class.disabled`)\n thyDisabled = false;\n\n public isOnlyIcon: boolean;\n\n public isWithText: boolean;\n\n private destroy$ = new Subject<void>();\n\n constructor(\n public elementRef: ElementRef,\n private ngZone: NgZone,\n private cdr: ChangeDetectorRef,\n private renderer: Renderer2,\n @Optional() @Inject(THY_SEGMENTED_COMPONENT) private parent: IThySegmentComponent\n ) {\n ngZone.runOutsideAngular(() =>\n fromEvent(elementRef.nativeElement, 'click')\n .pipe(takeUntil(this.destroy$))\n .subscribe((event: Event) => {\n if (!this.thyDisabled && !this.parent.thyDisabled && this.parent.selectedItem && this.parent.selectedItem !== this) {\n ngZone.run(() => {\n this.parent.selectedItem.unselect();\n this.parent.changeSelectedItem(this, event);\n });\n }\n })\n );\n }\n\n ngAfterViewInit(): void {\n const labelDiv = this.elementRef.nativeElement.children[0];\n this.isOnlyIcon = assertIconOnly(labelDiv) && this.parent.thyMode === 'inline';\n this.cdr.detectChanges();\n\n this.wrapSpanForText(labelDiv.childNodes);\n }\n\n public select() {\n this.elementRef.nativeElement.classList.add('active');\n }\n\n public unselect() {\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 = true;\n this.cdr.detectChanges();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div\n class=\"thy-segment-item-label\"\n [ngClass]=\"{\n 'thy-segment-item-label-only-icon': isOnlyIcon\n }\"\n>\n <thy-icon *ngIf=\"thyIcon\" class=\"thy-segment-item-icon\" [ngClass]=\"{ 'icon-with-text': isWithText }\" [thyIconName]=\"thyIcon\"></thy-icon>\n <ng-content></ng-content>\n</div>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n QueryList,\n ViewEncapsulation,\n booleanAttribute,\n numberAttribute\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';\nimport { NgIf } from '@angular/common';\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 },\n standalone: true,\n imports: [NgIf]\n})\nexport class ThySegment implements IThySegmentComponent, AfterContentInit {\n /**\n * @internal\n */\n @ContentChildren(ThySegmentItem) options!: QueryList<ThySegmentItem>;\n\n /**\n * 大小\n * @type xs | sm | md | default\n */\n @Input() thySize: ThySegmentSize = 'default';\n\n /**\n * 模式\n * @type block | inline\n */\n @Input() thyMode: ThySegmentMode = 'block';\n\n /**\n * 是否禁用分段控制器\n */\n @Input({ transform: booleanAttribute })\n @HostBinding(`class.disabled`)\n thyDisabled = false;\n\n /**\n * 选中选项的索引\n */\n @Input({ transform: numberAttribute })\n set thyActiveIndex(value: number) {\n if (value < 0 || value === this.activeIndex) {\n return;\n }\n const selectedItem = this.options?.get(this.activeIndex);\n if (selectedItem) {\n selectedItem.unselect();\n this.changeSelectedItem(this.options.get(value));\n } else {\n this.activeIndex = value;\n }\n }\n\n /**\n * 选项被选中的回调事件\n */\n @Output() readonly thySelectChange = new EventEmitter<ThySegmentEvent>();\n\n public selectedItem: ThySegmentItem;\n\n private activeIndex = 0;\n\n public animationState: null | { value: string; params: ThumbAnimationProps } = null;\n\n public transitionedTo: any = null;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngAfterContentInit(): void {\n this.selectedItem = this.options.get(this.activeIndex) || this.options.get(0);\n this.selectedItem?.select();\n }\n\n public changeSelectedItem(item: ThySegmentItem, event?: Event): void {\n this.animationState = {\n value: 'from',\n params: getThumbAnimationProps(this.options?.get(this.activeIndex)?.elementRef.nativeElement!)\n };\n this.selectedItem = null;\n this.cdr.detectChanges();\n\n this.animationState = {\n value: 'to',\n params: getThumbAnimationProps(item.elementRef.nativeElement!)\n };\n this.transitionedTo = item;\n this.activeIndex = this.options?.toArray().findIndex(option => {\n return option.thyValue === item?.thyValue;\n });\n this.thySelectChange.emit({ event: event, value: item.thyValue, activeIndex: this.activeIndex });\n this.cdr.detectChanges();\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 = null;\n this.cdr.detectChanges();\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 <div\n *ngIf=\"animationState\"\n class=\"thy-segment-thumb thy-segment-thumb-motion\"\n [@thumbMotion]=\"animationState\"\n (@thumbMotion.done)=\"handleThumbAnimationDone($event)\"\n ></div>\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 { InjectionToken } from '@angular/core';\nimport { ThySegmentItem } from './segment-item.component';\n\nexport interface IThySegmentComponent {\n thyMode: string;\n thyDisabled: boolean;\n selectedItem: ThySegmentItem;\n changeSelectedItem: (item: ThySegmentItem, event?: Event) => void;\n}\n\nexport const THY_SEGMENTED_COMPONENT = new InjectionToken<IThySegmentComponent>('THY_SEGMENTED_COMPONENT');\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Renderer2,\n booleanAttribute\n} from '@angular/core';\nimport { IThySegmentComponent, THY_SEGMENTED_COMPONENT } from './segment.token';\nimport { assertIconOnly } from 'ngx-tethys/util';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass, NgIf } from '@angular/common';\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 },\n standalone: true,\n imports: [NgClass, NgIf, ThyIcon]\n})\nexport class ThySegmentItem implements AfterViewInit, OnDestroy {\n /**\n * 选项的值\n */\n @Input() thyValue: SafeAny;\n\n /**\n * 选项的图标\n */\n @Input() thyIcon: string;\n\n /**\n * 是否禁用该选项\n */\n @Input({ transform: booleanAttribute })\n @HostBinding(`class.disabled`)\n thyDisabled = false;\n\n public isOnlyIcon: boolean;\n\n public isWithText: boolean;\n\n private destroy$ = new Subject<void>();\n\n constructor(\n public elementRef: ElementRef,\n private ngZone: NgZone,\n private cdr: ChangeDetectorRef,\n private renderer: Renderer2,\n @Optional() @Inject(THY_SEGMENTED_COMPONENT) private parent: IThySegmentComponent\n ) {\n ngZone.runOutsideAngular(() =>\n fromEvent(elementRef.nativeElement, 'click')\n .pipe(takeUntil(this.destroy$))\n .subscribe((event: Event) => {\n if (!this.thyDisabled && !this.parent.thyDisabled && this.parent.selectedItem && this.parent.selectedItem !== this) {\n ngZone.run(() => {\n this.parent.selectedItem.unselect();\n this.parent.changeSelectedItem(this, event);\n });\n }\n })\n );\n }\n\n ngAfterViewInit(): void {\n const labelDiv = this.elementRef.nativeElement.children[0];\n this.isOnlyIcon = assertIconOnly(labelDiv) && this.parent.thyMode === 'inline';\n this.cdr.detectChanges();\n\n this.wrapSpanForText(labelDiv.childNodes);\n }\n\n public select() {\n this.elementRef.nativeElement.classList.add('active');\n }\n\n public unselect() {\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 = true;\n this.cdr.detectChanges();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div\n class=\"thy-segment-item-label\"\n [ngClass]=\"{\n 'thy-segment-item-label-only-icon': isOnlyIcon\n }\"\n>\n <thy-icon *ngIf=\"thyIcon\" class=\"thy-segment-item-icon\" [ngClass]=\"{ 'icon-with-text': isWithText }\" [thyIconName]=\"thyIcon\"></thy-icon>\n <ng-content></ng-content>\n</div>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n QueryList,\n ViewEncapsulation,\n booleanAttribute,\n numberAttribute\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';\nimport { NgIf } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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 },\n standalone: true,\n imports: [NgIf]\n})\nexport class ThySegment implements IThySegmentComponent, AfterContentInit {\n /**\n * @internal\n */\n @ContentChildren(ThySegmentItem) options!: QueryList<ThySegmentItem>;\n\n /**\n * 大小\n * @type xs | sm | md | default\n */\n @Input() thySize: ThySegmentSize = 'default';\n\n /**\n * 模式\n * @type block | inline\n */\n @Input() thyMode: ThySegmentMode = 'block';\n\n /**\n * 是否禁用分段控制器\n */\n @Input({ transform: booleanAttribute })\n @HostBinding(`class.disabled`)\n thyDisabled = false;\n\n /**\n * 选中选项的索引\n */\n @Input({ transform: numberAttribute })\n set thyActiveIndex(value: number) {\n this.newActiveIndex = value;\n if (value < 0 || value === this.activeIndex) {\n return;\n }\n setTimeout(() => {\n const selectedItem = this.options?.get(this.activeIndex);\n if (selectedItem) {\n selectedItem.unselect();\n this.changeSelectedItem(this.options.get(value));\n } else {\n this.activeIndex = value;\n }\n });\n }\n\n /**\n * 选项被选中的回调事件\n */\n @Output() readonly thySelectChange = new EventEmitter<ThySegmentEvent>();\n\n public selectedItem: ThySegmentItem;\n\n private newActiveIndex: number;\n\n private activeIndex: number;\n\n public animationState: null | { value: string; params: ThumbAnimationProps } = null;\n\n public transitionedTo: any = null;\n\n constructor(private cdr: ChangeDetectorRef, private destroyRef: DestroyRef) {}\n\n ngAfterContentInit(): void {\n this.selectedItem = this.options.get(this.newActiveIndex) || this.options.get(0);\n this.selectedItem?.select();\n\n this.options.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.options.forEach(item => {\n item.unselect();\n });\n this.selectedItem = this.options.get(this.newActiveIndex) || this.options.get(0);\n this.selectedItem?.select();\n this.cdr.detectChanges();\n });\n }\n\n public changeSelectedItem(item: ThySegmentItem, event?: Event): void {\n this.animationState = {\n value: 'from',\n params: getThumbAnimationProps(this.options?.get(this.activeIndex || 0)?.elementRef.nativeElement!)\n };\n this.selectedItem = null;\n this.cdr.detectChanges();\n\n this.animationState = {\n value: 'to',\n params: getThumbAnimationProps(item.elementRef.nativeElement!)\n };\n this.transitionedTo = item;\n this.activeIndex = this.options?.toArray().findIndex(option => {\n return option.thyValue === item?.thyValue;\n });\n this.thySelectChange.emit({ event: event, value: item.thyValue, activeIndex: this.activeIndex });\n this.cdr.detectChanges();\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 = null;\n this.cdr.detectChanges();\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 <div\n *ngIf=\"animationState\"\n class=\"thy-segment-thumb thy-segment-thumb-motion\"\n [@thumbMotion]=\"animationState\"\n (@thumbMotion.done)=\"handleThumbAnimationDone($event)\"\n ></div>\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,6 +1,6 @@
1
1
  import { Version } from '@angular/core';
2
2
 
3
- const VERSION = new Version('17.0.5');
3
+ const VERSION = new Version('17.0.6');
4
4
 
5
5
  /**
6
6
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('17.0.5');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ;;ACF3C;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('17.0.6');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ;;ACF3C;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-tethys",
3
- "version": "17.0.5",
3
+ "version": "17.0.6",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@github.com/atinc/ngx-tethys.git"
@@ -1 +1 @@
1
- export declare const VERSION = "17.0.5";
1
+ export declare const VERSION = "17.0.6";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '17.0.5';
4
+ exports.VERSION = '17.0.6';
@@ -1,4 +1,4 @@
1
- import { AfterContentInit, ChangeDetectorRef, EventEmitter, QueryList } from '@angular/core';
1
+ import { AfterContentInit, ChangeDetectorRef, DestroyRef, EventEmitter, QueryList } from '@angular/core';
2
2
  import { ThumbAnimationProps } from 'ngx-tethys/core';
3
3
  import { ThySegmentItem } from './segment-item.component';
4
4
  import { IThySegmentComponent } from './segment.token';
@@ -13,6 +13,7 @@ export type ThySegmentMode = 'block' | 'inline';
13
13
  */
14
14
  export declare class ThySegment implements IThySegmentComponent, AfterContentInit {
15
15
  private cdr;
16
+ private destroyRef;
16
17
  /**
17
18
  * @internal
18
19
  */
@@ -40,13 +41,14 @@ export declare class ThySegment implements IThySegmentComponent, AfterContentIni
40
41
  */
41
42
  readonly thySelectChange: EventEmitter<ThySegmentEvent<unknown>>;
42
43
  selectedItem: ThySegmentItem;
44
+ private newActiveIndex;
43
45
  private activeIndex;
44
46
  animationState: null | {
45
47
  value: string;
46
48
  params: ThumbAnimationProps;
47
49
  };
48
50
  transitionedTo: any;
49
- constructor(cdr: ChangeDetectorRef);
51
+ constructor(cdr: ChangeDetectorRef, destroyRef: DestroyRef);
50
52
  ngAfterContentInit(): void;
51
53
  changeSelectedItem(item: ThySegmentItem, event?: Event): void;
52
54
  handleThumbAnimationDone(event: AnimationEvent): void;
@@ -32,6 +32,10 @@
32
32
  cursor: variables.$hand-cursor;
33
33
  transition: color 0.3s ease-in-out;
34
34
 
35
+ &-icon {
36
+ color: variables.$segment-item-only-icon-default-color;
37
+ }
38
+
35
39
  .icon-with-text {
36
40
  color: variables.$segment-icon-with-text-default-color;
37
41
  transition: color 0.3s ease-in-out;
@@ -40,6 +44,9 @@
40
44
  &:not(.disabled) {
41
45
  &:hover,
42
46
  &:focus {
47
+ .#{variables.$thy-prefix}-segment-item-icon {
48
+ color: variables.$segment-item-only-icon-hover-color;
49
+ }
43
50
  color: variables.$segment-hover-color;
44
51
  .icon-with-text {
45
52
  color: variables.$segment-icon-with-text-hover-color;
@@ -49,6 +56,9 @@
49
56
  &.active {
50
57
  @include segment-mixin.segment-item-active();
51
58
  color: variables.$segment-active-color;
59
+ .#{variables.$thy-prefix}-segment-item-icon {
60
+ color: variables.$segment-item-only-icon-active-color;
61
+ }
52
62
  .icon-with-text {
53
63
  color: variables.$segment-icon-with-text-active-color;
54
64
  }
@@ -1002,6 +1002,9 @@ $segment-sizes: (
1002
1002
  ) !default;
1003
1003
  $segment-item-only-icon-xs-width: 28px !default;
1004
1004
  $segment-item-only-icon-width: 38px !default;
1005
+ $segment-item-only-icon-default-color: $gray-600 !default;
1006
+ $segment-item-only-icon-active-color: $gray-700 !default;
1007
+ $segment-item-only-icon-hover-color: $gray-700 !default;
1005
1008
  $segment-text-margin-left: 8px !default;
1006
1009
  $segment-item-xs-padding-x: 8px !default;
1007
1010
  $segment-item-padding-x: 12px !default;