@alauda/ui 6.4.6-beta.3 → 6.4.6-beta.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.
Files changed (102) hide show
  1. package/alauda-ui.d.ts +3 -0
  2. package/button/button.types.d.ts +9 -0
  3. package/esm2020/accordion/accordion-item/accordion-item.component.mjs +3 -1
  4. package/esm2020/alauda-ui.mjs +4 -1
  5. package/esm2020/anchor/anchor.component.mjs +2 -1
  6. package/esm2020/back-top/back-top.component.mjs +4 -2
  7. package/esm2020/button/button.component.mjs +2 -1
  8. package/esm2020/button/button.types.mjs +10 -1
  9. package/esm2020/date-picker/calendar/constant.mjs +2 -1
  10. package/esm2020/date-picker/calendar/header/component.mjs +5 -1
  11. package/esm2020/date-picker/calendar/panel/picker-panel.mjs +5 -1
  12. package/esm2020/date-picker/calendar/range-picker-panel/component.mjs +3 -1
  13. package/esm2020/date-picker/calendar/util.mjs +2 -1
  14. package/esm2020/dialog/dialog-content/dialog-content.component.mjs +2 -1
  15. package/esm2020/dialog/dialog.service.mjs +2 -1
  16. package/esm2020/drawer/component/drawer.component.mjs +4 -1
  17. package/esm2020/drawer/component/helper-directives.mjs +5 -1
  18. package/esm2020/form/common-form.mjs +8 -1
  19. package/esm2020/icon/icon-register.service.mjs +2 -1
  20. package/esm2020/input/autosize.directive.mjs +7 -2
  21. package/esm2020/input/input.component.mjs +5 -1
  22. package/esm2020/input/search/search.component.mjs +2 -2
  23. package/esm2020/input/tags-input/tags-input.component.mjs +7 -2
  24. package/esm2020/message/message.config.mjs +6 -1
  25. package/esm2020/notification/notification.component.mjs +5 -1
  26. package/esm2020/paginator/paginator-intl.mjs +12 -1
  27. package/esm2020/paginator/paginator.component.mjs +9 -1
  28. package/esm2020/radio/radio-button/radio-button.component.mjs +2 -1
  29. package/esm2020/radio/radio-group/radio-group.component.mjs +4 -1
  30. package/esm2020/radio/radio.component.mjs +2 -1
  31. package/esm2020/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +3 -1
  32. package/esm2020/scrolling/fixed-size-table-virtual-scroll.directive.mjs +3 -1
  33. package/esm2020/scrolling/fixed-size-virtual-scroll.directive.mjs +2 -1
  34. package/esm2020/select/base-select.mjs +5 -2
  35. package/esm2020/select/multi-select/multi-select.component.mjs +4 -2
  36. package/esm2020/select/select.component.mjs +2 -1
  37. package/esm2020/select/validators.mjs +6 -2
  38. package/esm2020/sort/sort-errors.mjs +5 -1
  39. package/esm2020/sort/sort-header.component.mjs +5 -1
  40. package/esm2020/sort/sort.directive.mjs +2 -1
  41. package/esm2020/steps/steps.component.mjs +5 -1
  42. package/esm2020/table/table-cell-def.directive.mjs +5 -1
  43. package/esm2020/table/table-cell.directive.mjs +3 -1
  44. package/esm2020/table/table-column-def.directive.mjs +7 -1
  45. package/esm2020/table/table-header-cell-def.directive.mjs +5 -1
  46. package/esm2020/table/table-header-cell.directive.mjs +3 -1
  47. package/esm2020/table/table-header-row-def.directive.mjs +5 -1
  48. package/esm2020/table/table-header-row.component.mjs +2 -1
  49. package/esm2020/table/table-row-def.directive.mjs +6 -1
  50. package/esm2020/table/table-row.component.mjs +2 -1
  51. package/esm2020/table/table-scroll.directive.mjs +2 -1
  52. package/esm2020/table/table.component.mjs +4 -1
  53. package/esm2020/tabs/tab-body.component.mjs +19 -1
  54. package/esm2020/tabs/tab-context.service.mjs +4 -1
  55. package/esm2020/tabs/tab-group.component.mjs +46 -1
  56. package/esm2020/tabs/tab-header-active-indicator.component.mjs +10 -1
  57. package/esm2020/tabs/tab-header.component.mjs +106 -3
  58. package/esm2020/tabs/tab.component.mjs +15 -1
  59. package/esm2020/tabs/tabs.types.mjs +4 -1
  60. package/esm2020/tag/tag.component.mjs +2 -1
  61. package/esm2020/time-picker/panel/panel.component.mjs +3 -1
  62. package/esm2020/tooltip/tooltip-intl.mjs +7 -1
  63. package/esm2020/tree-select/tree-select.component.mjs +2 -1
  64. package/esm2020/types.mjs +4 -1
  65. package/esm2020/utils/bem.mjs +2 -1
  66. package/esm2020/utils/coercion.mjs +5 -1
  67. package/fesm2015/alauda-ui.mjs +375 -10
  68. package/fesm2015/alauda-ui.mjs.map +1 -1
  69. package/fesm2020/alauda-ui.mjs +375 -10
  70. package/fesm2020/alauda-ui.mjs.map +1 -1
  71. package/form/common-form.d.ts +7 -0
  72. package/input/autosize.directive.d.ts +3 -0
  73. package/input/input.component.d.ts +3 -0
  74. package/message/message.config.d.ts +20 -0
  75. package/notification/notification.component.d.ts +4 -0
  76. package/package.json +2 -3
  77. package/paginator/paginator-intl.d.ts +9 -0
  78. package/paginator/paginator.component.d.ts +14 -0
  79. package/radio/radio-group/radio-group.component.d.ts +3 -0
  80. package/select/base-select.d.ts +3 -0
  81. package/sort/sort-errors.d.ts +4 -0
  82. package/steps/steps.component.d.ts +3 -0
  83. package/steps/types.d.ts +3 -0
  84. package/table/table-cell-def.directive.d.ts +4 -0
  85. package/table/table-cell.directive.d.ts +1 -0
  86. package/table/table-column-def.directive.d.ts +4 -0
  87. package/table/table-header-cell-def.directive.d.ts +4 -0
  88. package/table/table-header-cell.directive.d.ts +1 -0
  89. package/table/table-header-row-def.directive.d.ts +4 -0
  90. package/table/table-header-row.component.d.ts +1 -0
  91. package/table/table-row-def.directive.d.ts +5 -0
  92. package/table/table-row.component.d.ts +1 -0
  93. package/tabs/tab-body.component.d.ts +16 -0
  94. package/tabs/tab-context.service.d.ts +3 -0
  95. package/tabs/tab-group.component.d.ts +28 -0
  96. package/tabs/tab-header-active-indicator.component.d.ts +9 -0
  97. package/tabs/tab-header.component.d.ts +83 -0
  98. package/tabs/tab.component.d.ts +18 -0
  99. package/tabs/tabs.types.d.ts +3 -0
  100. package/theme/_theme-preset.scss +2 -0
  101. package/tooltip/tooltip-intl.d.ts +4 -0
  102. package/types.d.ts +3 -0
@@ -57,6 +57,9 @@ const ComponentSize = {
57
57
  Medium: 'medium',
58
58
  Small: 'small',
59
59
  Mini: 'mini',
60
+ /**
61
+ * represents default internally, @link https://github.com/angular/vscode-ng-language-service/issues/1147
62
+ */
60
63
  Empty: '',
61
64
  };
62
65
 
@@ -68,8 +71,17 @@ const ButtonType = {
68
71
  Danger: 'danger',
69
72
  Text: 'text',
70
73
  Inline: 'inline',
74
+ /**
75
+ * represents default internally, @link https://github.com/angular/vscode-ng-language-service/issues/1147
76
+ */
71
77
  Empty: '',
78
+ /**
79
+ * @deprecated use `ButtonType.Danger` instead
80
+ */
72
81
  Error: 'danger',
82
+ /**
83
+ * @deprecated use `ButtonType.Default` instead
84
+ */
73
85
  Info: 'default',
74
86
  };
75
87
 
@@ -79,6 +91,7 @@ function sleep(ms = 0) {
79
91
  });
80
92
  }
81
93
 
94
+ // Experimental bem classname helper
82
95
  class Bem {
83
96
  constructor(namespace) {
84
97
  this.namespace = namespace;
@@ -123,6 +136,7 @@ function buildBem(namespace) {
123
136
  }
124
137
 
125
138
  function coerceString(val) {
139
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
126
140
  return val == null ? '' : val?.toString() ?? '';
127
141
  }
128
142
  function coerceAttrBoolean(val) {
@@ -132,6 +146,9 @@ function coerceNumber(val, fallbackValue = 0) {
132
146
  return _isNumberValue(val) ? Number(val) : fallbackValue;
133
147
  }
134
148
  function _isNumberValue(value) {
149
+ // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,
150
+ // and other non-number values as NaN, where Number just uses 0) but it considers the string
151
+ // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.
135
152
  return !isNaN(parseFloat(value)) && !isNaN(Number(value));
136
153
  }
137
154
 
@@ -262,6 +279,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
262
279
  }] }, { type: i1.HttpClient, decorators: [{
263
280
  type: Optional
264
281
  }] }]; } });
282
+ // eslint-disable-next-line sonar/function-name
265
283
  function ICON_REGISTER_PROVIDER_FACTORY(parentRegister, document, httpClient) {
266
284
  return parentRegister || new IconRegisterService(document, httpClient);
267
285
  }
@@ -489,6 +507,7 @@ class ButtonComponent {
489
507
  return this._size;
490
508
  }
491
509
  set size(val) {
510
+ // when change from other size to default
492
511
  if (!val) {
493
512
  val = ComponentSize.Medium;
494
513
  }
@@ -644,12 +663,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
644
663
  }]
645
664
  }] });
646
665
  class AccordionItemComponent extends CdkAccordionItem {
666
+ // eslint-disable-next-line @typescript-eslint/no-useless-constructor
647
667
  constructor(accordion, cdr, uniqueSelectionDispatcher) {
648
668
  super(accordion, cdr, uniqueSelectionDispatcher);
649
669
  this.background = true;
650
670
  }
651
671
  ngAfterContentInit() {
652
672
  if (this._lazyContentTpl) {
673
+ // Render the content as soon as the accordion becomes open.
653
674
  this.opened
654
675
  .pipe(startWith(null), filter(() => !!this.expanded), take(1))
655
676
  .subscribe(() => {
@@ -935,6 +956,7 @@ class AnchorTreeComponent extends AnchorDirectiveChild {
935
956
  watchLabelsChange() {
936
957
  this.depose$$.next();
937
958
  const cdr = this.injector.get(ChangeDetectorRef);
959
+ // FIXME: Is there any better way to achieve this?
938
960
  combineLatest(this.treeItems.map(({ labelChange }) => labelChange).filter(Boolean))
939
961
  .pipe(debounceTime(0), takeUntil(this.depose$$))
940
962
  .subscribe(() => cdr.markForCheck());
@@ -1640,6 +1662,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
1640
1662
  args: ['auiTooltipActive']
1641
1663
  }] } });
1642
1664
 
1665
+ /**
1666
+ * Texts to render on the code editor.
1667
+ */
1643
1668
  class TooltipCopyIntl {
1644
1669
  constructor() {
1645
1670
  this.copyTip = 'Click to copy';
@@ -1652,10 +1677,13 @@ TooltipCopyIntl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", vers
1652
1677
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TooltipCopyIntl, decorators: [{
1653
1678
  type: Injectable
1654
1679
  }] });
1680
+ // eslint-disable-next-line sonar/function-name
1655
1681
  function TOOLTIP_COPY_INTL_PROVIDER_FACTORY(parentIntl) {
1656
1682
  return parentIntl || new TooltipCopyIntl();
1657
1683
  }
1684
+ /** @docs-private */
1658
1685
  const TOOLTIP_COPY_INTL_INTL_PROVIDER = {
1686
+ // If there is already an CodeEditorIntl available, use that. Otherwise, provide a new one.
1659
1687
  provide: TooltipCopyIntl,
1660
1688
  deps: [[new Optional(), new SkipSelf(), TooltipCopyIntl]],
1661
1689
  useFactory: TOOLTIP_COPY_INTL_PROVIDER_FACTORY,
@@ -2112,7 +2140,9 @@ class BackTopComponent {
2112
2140
  this.target$$ = new BehaviorSubject(this.target);
2113
2141
  this.visibilityHeight$$ = new BehaviorSubject(this.visibilityHeight);
2114
2142
  this.isDisplayed$ = combineLatest([
2115
- this.target$$.asObservable().pipe(map(target => this.getTarget(target)), switchMap(target => fromEvent(target, 'scroll').pipe(throttleTime(50, undefined, { leading: true, trailing: true }), map(() => this.getTargetScrollTop(target))))),
2143
+ this.target$$.asObservable().pipe(map(target => this.getTarget(target)), switchMap(target => fromEvent(target, 'scroll').pipe(
2144
+ // use default scheduler
2145
+ throttleTime(50, undefined, { leading: true, trailing: true }), map(() => this.getTargetScrollTop(target))))),
2116
2146
  this.visibilityHeight$$,
2117
2147
  ]).pipe(map(([scrollTop, visibilityHeight]) => scrollTop >= visibilityHeight), distinctUntilChanged());
2118
2148
  }
@@ -2376,6 +2406,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
2376
2406
  }]
2377
2407
  }] });
2378
2408
 
2409
+ /**
2410
+ * form control 内部不保持 value 属性,当不使用 ngModel 时可以通过 [(value)] 实现双向绑定;
2411
+ * 也可以分别传入 value 和 监听 valueChange 事件以实现阻断用户操作的功能。
2412
+ */
2379
2413
  class CommonFormControl {
2380
2414
  constructor(cdr) {
2381
2415
  this.cdr = cdr;
@@ -2454,6 +2488,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
2454
2488
  }], valueChange: [{
2455
2489
  type: Output
2456
2490
  }] } });
2491
+ /**
2492
+ * @deprecated use {@link CommonFormControl} instead
2493
+ */
2457
2494
  const CommonForm = CommonFormControl;
2458
2495
 
2459
2496
  const LabelPosition = {
@@ -2976,6 +3013,7 @@ const YEAR = 'year';
2976
3013
  const HOUR = 'hour';
2977
3014
  const MINUTE = 'minute';
2978
3015
  const SECOND = 'second';
3016
+ // 根据日期类型,分为年,月,日
2979
3017
  var DatePickerType;
2980
3018
  (function (DatePickerType) {
2981
3019
  DatePickerType["Day"] = "date";
@@ -3028,6 +3066,7 @@ function getDatePanelIterable(date, navRange, weekStartDay) {
3028
3066
  counts = YEAR_PANEL_COLUMN_COUNT * YEAR_PANEL_ROW_COUNT;
3029
3067
  break;
3030
3068
  }
3069
+ // No default
3031
3070
  }
3032
3071
  let i = 0;
3033
3072
  return {
@@ -3252,17 +3291,21 @@ class CalendarHeaderComponent {
3252
3291
  get headerRange() {
3253
3292
  return calcRangeValue(this.dateNavRange, this.anchor);
3254
3293
  }
3294
+ // maxAvail > current date :right btn hide
3295
+ // minAvail > current date :left btn hide
3255
3296
  shouldShowNav(type, side) {
3256
3297
  const availValue = (side === Side.Left ? this._minAvail : this._maxAvail)?.clone();
3257
3298
  if (!availValue) {
3258
3299
  return true;
3259
3300
  }
3301
+ // 对于年的判别,2014-5-1至2015-6-1日,仍当展示按钮
3260
3302
  const constrainDate = [DateNavRange.Month, DateNavRange.Year].includes(type)
3261
3303
  ? availValue.add(side === Side.Left ? 1 : -1, type)
3262
3304
  : availValue;
3263
3305
  return (this.compareNavValue(type, constrainDate, this.anchor) ===
3264
3306
  (side === Side.Left ? -1 : 1));
3265
3307
  }
3308
+ // @return isBetween|isEqual:0, isBefore:-1,isAfter:1
3266
3309
  compareNavValue(type, constrain, anchor) {
3267
3310
  const range = calcRangeValue(type, anchor);
3268
3311
  const constrainValue = constrain;
@@ -3352,9 +3395,12 @@ class PickerPanelComponent {
3352
3395
  return composeDisabledDateFn(date => this.minDate && date.isBefore(this.minDate), date => this.maxDate && date.isAfter(this.maxDate), this.disabledDate);
3353
3396
  }
3354
3397
  ngOnChanges() {
3398
+ // 如果 dateValue 是一个数组,必然是同一个面板上,否则应当给与不同的面板不同的dateValue值
3355
3399
  const headerRange = calcRangeValue(this.navRange, this.anchor);
3356
3400
  this.renderPanelData(headerRange.start, this.navRange);
3357
3401
  }
3402
+ // 根据当前数据,计算渲染表格
3403
+ // eslint-disable-next-line sonarjs/cognitive-complexity
3358
3404
  renderPanelData(date, navRange) {
3359
3405
  const value = [];
3360
3406
  let colCounts = 0;
@@ -3379,6 +3425,7 @@ class PickerPanelComponent {
3379
3425
  rowCounts = MONTH_PANEL_ROW_COUNT;
3380
3426
  break;
3381
3427
  }
3428
+ // No default
3382
3429
  }
3383
3430
  for (let k = 0; k < rowCounts; k++) {
3384
3431
  const row = [];
@@ -3532,6 +3579,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
3532
3579
  }]
3533
3580
  }] });
3534
3581
 
3582
+ /* eslint-disable sonarjs/no-duplicate-string */
3535
3583
  class InputComponent {
3536
3584
  constructor(elementRef, renderer) {
3537
3585
  this.elementRef = elementRef;
@@ -3539,6 +3587,9 @@ class InputComponent {
3539
3587
  this._size = ComponentSize.Medium;
3540
3588
  this._disabled = false;
3541
3589
  this.size$ = new BehaviorSubject(this.size);
3590
+ /**
3591
+ * workaround for @link https://github.com/microsoft/TypeScript/pull/42425
3592
+ */
3542
3593
  this.disabled$ = new BehaviorSubject(this.disabled);
3543
3594
  this.renderer.addClass(this.elementRef.nativeElement, 'aui-input');
3544
3595
  this.renderer.addClass(this.elementRef.nativeElement, 'aui-input--' + this.size);
@@ -3640,6 +3691,7 @@ class TimePickerPanelComponent extends CommonFormControl {
3640
3691
  this.ComponentSize = ComponentSize;
3641
3692
  this.bem = bem$4;
3642
3693
  this.enabledColumns = 0;
3694
+ // 用于控制初次滚动,是否展示滚动动画效果
3643
3695
  this.firstScrolled = false;
3644
3696
  this.model$.subscribe(_ => {
3645
3697
  this.cdr.markForCheck();
@@ -3757,6 +3809,7 @@ class TimePickerPanelComponent extends CommonFormControl {
3757
3809
  }
3758
3810
  else {
3759
3811
  const difference = targetOffset - currentTop;
3812
+ // 每个tick滚动距离
3760
3813
  const perTick = (difference / duration) * 10;
3761
3814
  requestAnimationFrame(() => {
3762
3815
  element.scrollTop = currentTop + perTick;
@@ -4128,6 +4181,7 @@ class DateRangePickerPanelComponent extends CommonFormControl {
4128
4181
  this.FOOTER_DATE_FORMAT = 'YYYY-MM-dd';
4129
4182
  this.leftAnchor = dayjs();
4130
4183
  this.rightAnchor = dayjs().add(1, MONTH);
4184
+ // 用于存放 range data 序列,数量为 2 时清除
4131
4185
  this.rangeValue = [];
4132
4186
  this.leftDisabledTimeFn = this.getDisabledTimeCachedFn(Side.Left);
4133
4187
  this.rightDisabledTimeFn = this.getDisabledTimeCachedFn(Side.Right);
@@ -4157,6 +4211,7 @@ class DateRangePickerPanelComponent extends CommonFormControl {
4157
4211
  this.rightDateRange = type;
4158
4212
  }
4159
4213
  }
4214
+ // range 组件范围受控
4160
4215
  getDateDisabledFn(side, constrainValue) {
4161
4216
  return composeDisabledDateFn((date, navRange) => {
4162
4217
  if (navRange === DateNavRange.Month) {
@@ -4405,6 +4460,9 @@ const DEFAULT_VALUE = {
4405
4460
  minRows: 3,
4406
4461
  maxRows: 6,
4407
4462
  };
4463
+ /**
4464
+ * Directive to automatically resize a textarea to fit its content.
4465
+ */
4408
4466
  class AutosizeDirective {
4409
4467
  constructor(elRef, ngControl) {
4410
4468
  this.elRef = elRef;
@@ -4442,7 +4500,9 @@ AutosizeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", vers
4442
4500
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AutosizeDirective, decorators: [{
4443
4501
  type: Directive,
4444
4502
  args: [{
4445
- selector: 'textarea[autosize][ngModel],textarea[autosize][formControl],textarea[autosize][formControlName]',
4503
+ selector:
4504
+ // eslint-disable-next-line @angular-eslint/directive-selector
4505
+ 'textarea[autosize][ngModel],textarea[autosize][formControl],textarea[autosize][formControlName]',
4446
4506
  exportAs: 'TextareaAutosize',
4447
4507
  }]
4448
4508
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i4.NgControl }]; }, propDecorators: { autoSize: [{
@@ -4542,6 +4602,7 @@ class TagComponent {
4542
4602
  get rootClass() {
4543
4603
  return `${this.bem.block(this.type || TagType.Primary, this.size || ComponentSize.Medium)} ${this.solid ? 'isSolid' : ''} ${this.border ? 'hasBorder' : ''} ${this.invalid ? 'isInvalid' : ''} ${this.round ? 'isRound' : ''} ${this.allowClick && this.isNormalTag ? 'allowClick' : ''}`;
4544
4604
  }
4605
+ // 只有常规标签支持单击样式
4545
4606
  get isNormalTag() {
4546
4607
  return !this.solid && !this.closeable && !this.invalid;
4547
4608
  }
@@ -4730,10 +4791,10 @@ class SearchComponent {
4730
4791
  }
4731
4792
  }
4732
4793
  SearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: SearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4733
- SearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: SearchComponent, selector: "aui-search", inputs: { size: "size", searchButton: "searchButton", clearable: "clearable", searching: "searching", placeholder: "placeholder", disabled: "disabled", keyword: "keyword" }, outputs: { keywordChange: "keywordChange", search: "search", clear: "clear" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n [ngClass]=\"bem.block(size)\"\n [class.hasIcon]=\"!searchButton\"\n [class.hasButton]=\"searchButton\"\n [class.isClearable]=\"clearable\"\n [class.isSearching]=\"searching\"\n [class.isDisabled]=\"disabled\"\n>\n <div\n *ngIf=\"!searchButton\"\n [class]=\"bem.element('icon')\"\n >\n <aui-icon icon=\"search_s\"></aui-icon>\n </div>\n <input\n #input\n aui-input\n autocomplete=\"off\"\n [ngModel]=\"value\"\n (ngModelChange)=\"emitChange($event)\"\n [disabled]=\"disabled\"\n (keyup.enter)=\"emitSearch()\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n />\n <div\n *ngIf=\"showSpinner\"\n [class]=\"bem.element('spinner')\"\n >\n <aui-icon icon=\"spinner\"></aui-icon>\n </div>\n <div\n [hidden]=\"!showClear\"\n [class]=\"bem.element('clear')\"\n (click)=\"emitClear()\"\n >\n <aui-icon icon=\"close_small\"></aui-icon>\n </div>\n <div\n *ngIf=\"searchButton\"\n [class]=\"bem.element('button')\"\n (click)=\"emitSearch()\"\n >\n <div [class]=\"bem.element('button-icon')\">\n <aui-icon [icon]=\"searching ? 'spinner' : 'search_s'\"></aui-icon>\n </div>\n </div>\n</div>\n", styles: [".aui-search{display:inline-block;width:100%;position:relative;color:rgb(var(--aui-color-n-4))}.aui-search.isDisabled{color:rgb(var(--aui-color-disabled-text));cursor:not-allowed}.aui-search--large{font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l)}.aui-search--large aui-icon{font-size:var(--aui-icon-size-l)}.aui-search--large .aui-search__clear,.aui-search--large .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--large .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--large .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--large.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--large.hasIcon.isSearching .aui-search__input,.aui-search--large.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--large.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--large.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--large.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-l)* 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--medium{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.aui-search--medium aui-icon{font-size:var(--aui-icon-size-m)}.aui-search--medium .aui-search__clear,.aui-search--medium .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--medium .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--medium .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--medium.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--medium.hasIcon.isSearching .aui-search__input,.aui-search--medium.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--medium.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--medium.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--medium.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m)* 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--small{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.aui-search--small aui-icon{font-size:var(--aui-icon-size-m)}.aui-search--small .aui-search__clear,.aui-search--small .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--small .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--small .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--small.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--small.hasIcon.isSearching .aui-search__input,.aui-search--small.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--small.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--small.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--small.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m)* 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--mini{font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s)}.aui-search--mini aui-icon{font-size:var(--aui-icon-size-s)}.aui-search--mini .aui-search__clear,.aui-search--mini .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--mini .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--mini .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--mini.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--mini.hasIcon.isSearching .aui-search__input,.aui-search--mini.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--mini.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--mini.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--mini.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-s)* 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search__icon{position:absolute;top:50%;transform:translateY(-50%);color:rgb(var(--aui-color-placeholder-text))}.aui-search__button{position:absolute;top:0;right:1px;height:100%;display:flex;align-items:center}.aui-search:not(.isDisabled):not(.isSearching) .aui-search__button{cursor:pointer}.aui-search:not(.isDisabled):not(.isSearching) .aui-search__button:hover{color:rgb(var(--aui-color-primary))}.aui-search__button-icon{border-left:1px solid rgb(var(--aui-color-n-7))}.aui-search__clear,.aui-search__spinner{position:absolute;top:50%;transform:translateY(-50%)}.aui-search__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-search__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}\n"], components: [{ type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { type: InputComponent, selector: "input[aui-input],textarea[aui-input]", inputs: ["size", "disabled"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4794
+ SearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: SearchComponent, selector: "aui-search", inputs: { size: "size", searchButton: "searchButton", clearable: "clearable", searching: "searching", placeholder: "placeholder", disabled: "disabled", keyword: "keyword" }, outputs: { keywordChange: "keywordChange", search: "search", clear: "clear" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n [ngClass]=\"bem.block(size)\"\n [class.hasIcon]=\"!searchButton\"\n [class.hasButton]=\"searchButton\"\n [class.isClearable]=\"clearable\"\n [class.isSearching]=\"searching\"\n [class.isDisabled]=\"disabled\"\n>\n <div\n *ngIf=\"!searchButton\"\n [class]=\"bem.element('icon')\"\n >\n <aui-icon icon=\"search_s\"></aui-icon>\n </div>\n <input\n #input\n aui-input\n autocomplete=\"off\"\n [ngModel]=\"value\"\n (ngModelChange)=\"emitChange($event)\"\n [disabled]=\"disabled\"\n (keyup.enter)=\"emitSearch()\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n />\n <div\n *ngIf=\"showSpinner\"\n [class]=\"bem.element('spinner')\"\n >\n <aui-icon icon=\"spinner\"></aui-icon>\n </div>\n <div\n [hidden]=\"!showClear\"\n [class]=\"bem.element('clear')\"\n (click)=\"emitClear()\"\n >\n <aui-icon icon=\"close_small\"></aui-icon>\n </div>\n <div\n *ngIf=\"searchButton\"\n [class]=\"bem.element('button')\"\n (click)=\"emitSearch()\"\n >\n <div [class]=\"bem.element('button-icon')\">\n <aui-icon [icon]=\"searching ? 'spinner' : 'search_s'\"></aui-icon>\n </div>\n </div>\n</div>\n", styles: [".aui-search{display:inline-block;width:100%;position:relative;color:rgb(var(--aui-color-n-4))}.aui-search.isDisabled{color:rgb(var(--aui-color-disabled-text));cursor:not-allowed}.aui-search--large{font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l)}.aui-search--large aui-icon{font-size:var(--aui-icon-size-l)}.aui-search--large .aui-search__clear,.aui-search--large .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--large .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--large .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--large.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--large.hasIcon.isSearching .aui-search__input,.aui-search--large.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--large.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--large.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--large.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-l) * 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--medium{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.aui-search--medium aui-icon{font-size:var(--aui-icon-size-m)}.aui-search--medium .aui-search__clear,.aui-search--medium .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--medium .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--medium .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--medium.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--medium.hasIcon.isSearching .aui-search__input,.aui-search--medium.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--medium.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--medium.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--medium.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) * 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--small{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.aui-search--small aui-icon{font-size:var(--aui-icon-size-m)}.aui-search--small .aui-search__clear,.aui-search--small .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--small .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--small .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--small.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--small.hasIcon.isSearching .aui-search__input,.aui-search--small.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--small.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--small.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--small.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) * 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--mini{font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s)}.aui-search--mini aui-icon{font-size:var(--aui-icon-size-s)}.aui-search--mini .aui-search__clear,.aui-search--mini .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--mini .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--mini .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--mini.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--mini.hasIcon.isSearching .aui-search__input,.aui-search--mini.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--mini.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--mini.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--mini.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-s) * 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search__icon{position:absolute;top:50%;transform:translateY(-50%);color:rgb(var(--aui-color-placeholder-text))}.aui-search__button{position:absolute;top:0;right:1px;height:100%;display:flex;align-items:center}.aui-search:not(.isDisabled):not(.isSearching) .aui-search__button{cursor:pointer}.aui-search:not(.isDisabled):not(.isSearching) .aui-search__button:hover{color:rgb(var(--aui-color-primary))}.aui-search__button-icon{border-left:1px solid rgb(var(--aui-color-n-7))}.aui-search__clear,.aui-search__spinner{position:absolute;top:50%;transform:translateY(-50%)}.aui-search__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-search__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}\n"], components: [{ type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { type: InputComponent, selector: "input[aui-input],textarea[aui-input]", inputs: ["size", "disabled"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4734
4795
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: SearchComponent, decorators: [{
4735
4796
  type: Component,
4736
- args: [{ selector: 'aui-search', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, template: "<div\n [ngClass]=\"bem.block(size)\"\n [class.hasIcon]=\"!searchButton\"\n [class.hasButton]=\"searchButton\"\n [class.isClearable]=\"clearable\"\n [class.isSearching]=\"searching\"\n [class.isDisabled]=\"disabled\"\n>\n <div\n *ngIf=\"!searchButton\"\n [class]=\"bem.element('icon')\"\n >\n <aui-icon icon=\"search_s\"></aui-icon>\n </div>\n <input\n #input\n aui-input\n autocomplete=\"off\"\n [ngModel]=\"value\"\n (ngModelChange)=\"emitChange($event)\"\n [disabled]=\"disabled\"\n (keyup.enter)=\"emitSearch()\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n />\n <div\n *ngIf=\"showSpinner\"\n [class]=\"bem.element('spinner')\"\n >\n <aui-icon icon=\"spinner\"></aui-icon>\n </div>\n <div\n [hidden]=\"!showClear\"\n [class]=\"bem.element('clear')\"\n (click)=\"emitClear()\"\n >\n <aui-icon icon=\"close_small\"></aui-icon>\n </div>\n <div\n *ngIf=\"searchButton\"\n [class]=\"bem.element('button')\"\n (click)=\"emitSearch()\"\n >\n <div [class]=\"bem.element('button-icon')\">\n <aui-icon [icon]=\"searching ? 'spinner' : 'search_s'\"></aui-icon>\n </div>\n </div>\n</div>\n", styles: [".aui-search{display:inline-block;width:100%;position:relative;color:rgb(var(--aui-color-n-4))}.aui-search.isDisabled{color:rgb(var(--aui-color-disabled-text));cursor:not-allowed}.aui-search--large{font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l)}.aui-search--large aui-icon{font-size:var(--aui-icon-size-l)}.aui-search--large .aui-search__clear,.aui-search--large .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--large .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--large .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--large.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--large.hasIcon.isSearching .aui-search__input,.aui-search--large.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--large.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--large.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--large.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-l)* 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--medium{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.aui-search--medium aui-icon{font-size:var(--aui-icon-size-m)}.aui-search--medium .aui-search__clear,.aui-search--medium .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--medium .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--medium .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--medium.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--medium.hasIcon.isSearching .aui-search__input,.aui-search--medium.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--medium.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--medium.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--medium.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m)* 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--small{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.aui-search--small aui-icon{font-size:var(--aui-icon-size-m)}.aui-search--small .aui-search__clear,.aui-search--small .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--small .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--small .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--small.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--small.hasIcon.isSearching .aui-search__input,.aui-search--small.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--small.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--small.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--small.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m)* 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--mini{font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s)}.aui-search--mini aui-icon{font-size:var(--aui-icon-size-s)}.aui-search--mini .aui-search__clear,.aui-search--mini .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--mini .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--mini .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--mini.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--mini.hasIcon.isSearching .aui-search__input,.aui-search--mini.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--mini.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--mini.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--mini.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-s)* 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search__icon{position:absolute;top:50%;transform:translateY(-50%);color:rgb(var(--aui-color-placeholder-text))}.aui-search__button{position:absolute;top:0;right:1px;height:100%;display:flex;align-items:center}.aui-search:not(.isDisabled):not(.isSearching) .aui-search__button{cursor:pointer}.aui-search:not(.isDisabled):not(.isSearching) .aui-search__button:hover{color:rgb(var(--aui-color-primary))}.aui-search__button-icon{border-left:1px solid rgb(var(--aui-color-n-7))}.aui-search__clear,.aui-search__spinner{position:absolute;top:50%;transform:translateY(-50%)}.aui-search__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-search__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}\n"] }]
4797
+ args: [{ selector: 'aui-search', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, template: "<div\n [ngClass]=\"bem.block(size)\"\n [class.hasIcon]=\"!searchButton\"\n [class.hasButton]=\"searchButton\"\n [class.isClearable]=\"clearable\"\n [class.isSearching]=\"searching\"\n [class.isDisabled]=\"disabled\"\n>\n <div\n *ngIf=\"!searchButton\"\n [class]=\"bem.element('icon')\"\n >\n <aui-icon icon=\"search_s\"></aui-icon>\n </div>\n <input\n #input\n aui-input\n autocomplete=\"off\"\n [ngModel]=\"value\"\n (ngModelChange)=\"emitChange($event)\"\n [disabled]=\"disabled\"\n (keyup.enter)=\"emitSearch()\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n />\n <div\n *ngIf=\"showSpinner\"\n [class]=\"bem.element('spinner')\"\n >\n <aui-icon icon=\"spinner\"></aui-icon>\n </div>\n <div\n [hidden]=\"!showClear\"\n [class]=\"bem.element('clear')\"\n (click)=\"emitClear()\"\n >\n <aui-icon icon=\"close_small\"></aui-icon>\n </div>\n <div\n *ngIf=\"searchButton\"\n [class]=\"bem.element('button')\"\n (click)=\"emitSearch()\"\n >\n <div [class]=\"bem.element('button-icon')\">\n <aui-icon [icon]=\"searching ? 'spinner' : 'search_s'\"></aui-icon>\n </div>\n </div>\n</div>\n", styles: [".aui-search{display:inline-block;width:100%;position:relative;color:rgb(var(--aui-color-n-4))}.aui-search.isDisabled{color:rgb(var(--aui-color-disabled-text));cursor:not-allowed}.aui-search--large{font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l)}.aui-search--large aui-icon{font-size:var(--aui-icon-size-l)}.aui-search--large .aui-search__clear,.aui-search--large .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--large .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--large .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--large.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--large.hasIcon.isSearching .aui-search__input,.aui-search--large.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--large.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--large.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-l) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--large.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-l) * 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--medium{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.aui-search--medium aui-icon{font-size:var(--aui-icon-size-m)}.aui-search--medium .aui-search__clear,.aui-search--medium .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--medium .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--medium .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--medium.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--medium.hasIcon.isSearching .aui-search__input,.aui-search--medium.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--medium.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--medium.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--medium.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) * 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--small{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.aui-search--small aui-icon{font-size:var(--aui-icon-size-m)}.aui-search--small .aui-search__clear,.aui-search--small .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--small .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--small .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--small.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--small.hasIcon.isSearching .aui-search__input,.aui-search--small.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--small.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--small.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-m) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--small.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-m) * 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search--mini{font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s)}.aui-search--mini aui-icon{font-size:var(--aui-icon-size-s)}.aui-search--mini .aui-search__clear,.aui-search--mini .aui-search__spinner{right:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--mini .aui-search__icon{left:calc(var(--aui-inline-padding-xs) + 1px)}.aui-search--mini .aui-search__button-icon{padding:0 var(--aui-inline-padding-xs)}.aui-search--mini.hasIcon .aui-search__input{padding-left:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--mini.hasIcon.isSearching .aui-search__input,.aui-search--mini.hasIcon.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 2 + 1px)}.aui-search--mini.hasButton .aui-search__input{padding-right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 3 + 1px)}.aui-search--mini.hasButton .aui-search__clear{right:calc(var(--aui-icon-size-s) + var(--aui-inline-padding-xs) * 3 + 1px * 2)}.aui-search--mini.hasButton.isClearable .aui-search__input{padding-right:calc(var(--aui-icon-size-s) * 2 + var(--aui-inline-padding-xs) * 4 + 3px)}.aui-search__icon{position:absolute;top:50%;transform:translateY(-50%);color:rgb(var(--aui-color-placeholder-text))}.aui-search__button{position:absolute;top:0;right:1px;height:100%;display:flex;align-items:center}.aui-search:not(.isDisabled):not(.isSearching) .aui-search__button{cursor:pointer}.aui-search:not(.isDisabled):not(.isSearching) .aui-search__button:hover{color:rgb(var(--aui-color-primary))}.aui-search__button-icon{border-left:1px solid rgb(var(--aui-color-n-7))}.aui-search__clear,.aui-search__spinner{position:absolute;top:50%;transform:translateY(-50%)}.aui-search__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-search__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}\n"] }]
4737
4798
  }], propDecorators: { size: [{
4738
4799
  type: Input
4739
4800
  }], searchButton: [{
@@ -4811,12 +4872,13 @@ class TagsInputComponent extends CommonFormControl {
4811
4872
  this.bem = buildBem('aui-tags-input');
4812
4873
  this.placeholder = '';
4813
4874
  this.size = ComponentSize.Medium;
4875
+ // TODO: implement this feature
4814
4876
  this.clearable = false;
4815
4877
  this.allowRepeat = false;
4816
4878
  this.allowEmpty = false;
4817
4879
  this.readonlyTags = [];
4818
4880
  this.maxRowCount = 0;
4819
- this.customRowHeight = 0;
4881
+ this.customRowHeight = 0; // 0: use default style const value, > 1: for ```tagClassFn``` maybe affect lineHeight
4820
4882
  this.withMaxRowCount = createWithMaxRowCount(this);
4821
4883
  this.focused = false;
4822
4884
  this.model = [];
@@ -4884,6 +4946,7 @@ class TagsInputComponent extends CommonFormControl {
4884
4946
  }
4885
4947
  onInput() {
4886
4948
  const value = this.inputRef.nativeElement.value;
4949
+ // make sure value sync to span element
4887
4950
  requestAnimationFrame(() => {
4888
4951
  if (!value.length) {
4889
4952
  this.renderer.removeStyle(this.inputRef.nativeElement, 'width');
@@ -4945,11 +5008,13 @@ class TagsInputComponent extends CommonFormControl {
4945
5008
  return;
4946
5009
  }
4947
5010
  this.inputControl.setValue(this.inputRef.nativeElement.value);
5011
+ // inputControl 自身的状态为同步计算
4948
5012
  this.syncControlStatus();
4949
5013
  if (this.inputControl.valid) {
4950
5014
  this.emitValue(this.model.concat(value));
4951
5015
  }
4952
5016
  else if (this.inputControl.pending) {
5017
+ // PENDING 后只会变为 VALID 或 INVALID 的决议状态
4953
5018
  this.inputControl.statusChanges.pipe(take(1)).subscribe(_ => {
4954
5019
  this.syncControlStatus();
4955
5020
  if (this.inputControl.valid) {
@@ -4975,6 +5040,7 @@ class TagsInputComponent extends CommonFormControl {
4975
5040
  });
4976
5041
  }
4977
5042
  else if (disabled) {
5043
+ // 与当前 input 校验脱离
4978
5044
  this.controlContainer?.control?.updateValueAndValidity();
4979
5045
  }
4980
5046
  }
@@ -5708,6 +5774,7 @@ class DialogService {
5708
5774
  resolve(action.result);
5709
5775
  }
5710
5776
  else {
5777
+ // eslint-disable-next-line prefer-promise-reject-errors
5711
5778
  reject(action.result);
5712
5779
  }
5713
5780
  });
@@ -5828,6 +5895,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
5828
5895
  }] } });
5829
5896
 
5830
5897
  class DialogContentComponent extends CdkScrollable {
5898
+ // eslint-disable-next-line @typescript-eslint/no-useless-constructor
5831
5899
  constructor(elementRef, scrollDispatcher, ngZone, dir) {
5832
5900
  super(elementRef, scrollDispatcher, ngZone, dir);
5833
5901
  this.bem = buildBem('aui-dialog');
@@ -5946,6 +6014,10 @@ var DrawerSize;
5946
6014
  class DrawerRef {
5947
6015
  }
5948
6016
 
6017
+ /**
6018
+ * @packageDocumentation
6019
+ * @module page-guard
6020
+ */
5949
6021
  class DrawerHeaderDirective {
5950
6022
  }
5951
6023
  DrawerHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DrawerHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
@@ -6042,6 +6114,7 @@ class DrawerComponent extends DrawerRef {
6042
6114
  this.open();
6043
6115
  }
6044
6116
  else if (!visible.firstChange) {
6117
+ // 不希望默认关闭时,drawer 渲染后就触发 close 事件
6045
6118
  this.dispose();
6046
6119
  }
6047
6120
  }
@@ -6063,6 +6136,8 @@ class DrawerComponent extends DrawerRef {
6063
6136
  .outsidePointerEvents()
6064
6137
  .pipe(takeUntil(this.onDestroy$))
6065
6138
  .subscribe(event => {
6139
+ // 判断鼠标点击事件的 target 是否为 overlay-container 的子节点,如果是,则不关闭 drawer。
6140
+ // 为了避免点击 drawer 里的 tooltip 后 drawer 被关闭。
6066
6141
  if (this.visible &&
6067
6142
  this.hideOnClickOutside &&
6068
6143
  event.target instanceof Node &&
@@ -6703,6 +6778,11 @@ var MessageType;
6703
6778
  MessageType["Warning"] = "warning";
6704
6779
  MessageType["Info"] = "info";
6705
6780
  })(MessageType || (MessageType = {}));
6781
+ /**
6782
+ * messageOptions: contains Basic configuration
6783
+ * Just for some containers like Message-Container
6784
+ * Detailed document: http://confluence.alaudatech.com/pages/viewpage.action?pageId=23383163
6785
+ */
6706
6786
  class MessageConfig {
6707
6787
  }
6708
6788
  const MESSAGE_CONFIG = new InjectionToken('MESSAGE_CONFIG');
@@ -6992,6 +7072,10 @@ class NotificationComponent extends MessageComponent {
6992
7072
  });
6993
7073
  }
6994
7074
  }
7075
+ /**
7076
+ * Attach a TemplatePortal as content to this modal container.
7077
+ * @param portal Portal to be attached as the modal content.
7078
+ */
6995
7079
  attachTemplatePortal(portal) {
6996
7080
  return this.portalOutlet.attachTemplatePortal(portal);
6997
7081
  }
@@ -7086,9 +7170,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
7086
7170
  }]
7087
7171
  }] });
7088
7172
 
7173
+ /**
7174
+ * To modify the labels and text displayed, create a new instance of MatPaginatorIntl and
7175
+ * include it in a custom provider
7176
+ */
7089
7177
  class PaginatorIntl {
7090
7178
  constructor() {
7179
+ /**
7180
+ * Stream that emits whenever the labels here are changed. Use this to notify
7181
+ * components if the labels have changed after initialization.
7182
+ */
7091
7183
  this.changes = new Subject();
7184
+ /** A label for the page size selector. */
7092
7185
  this.itemsPerPageLabel = 'perPage';
7093
7186
  this.jumperLabelPrefix = 'Goto';
7094
7187
  this.jumperLabelSuffix = '';
@@ -7100,10 +7193,12 @@ PaginatorIntl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", versio
7100
7193
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: PaginatorIntl, decorators: [{
7101
7194
  type: Injectable
7102
7195
  }] });
7196
+ // eslint-disable-next-line sonar/function-name
7103
7197
  function PAGINATOR_INTL_PROVIDER_FACTORY(parentIntl) {
7104
7198
  return parentIntl || new PaginatorIntl();
7105
7199
  }
7106
7200
  const PAGINATOR_INTL_PROVIDER = {
7201
+ // If there is already an PaginatorIntl available, use that. Otherwise, provide a new one.
7107
7202
  provide: PaginatorIntl,
7108
7203
  deps: [[new Optional(), new SkipSelf(), PaginatorIntl]],
7109
7204
  useFactory: PAGINATOR_INTL_PROVIDER_FACTORY,
@@ -7341,6 +7436,7 @@ class BaseSelect extends CommonFormControl {
7341
7436
  this.customOptions.changes.pipe(startWith(this.customOptions)),
7342
7437
  this.contentOptions.changes.pipe(startWith(this.contentOptions)),
7343
7438
  ]).pipe(map(([customOptions, contentOptions]) => [...customOptions.toArray(), ...contentOptions.toArray()]), publishRef());
7439
+ // support dynamic options loading on filtering
7344
7440
  this.allOptions$.pipe(takeUntil(this.destroy$$)).subscribe(() => {
7345
7441
  if (this.opened) {
7346
7442
  requestAnimationFrame(() => {
@@ -7349,7 +7445,9 @@ class BaseSelect extends CommonFormControl {
7349
7445
  }
7350
7446
  });
7351
7447
  this.hasMatchedOption$ = combineLatest([
7352
- this.allOptions$.pipe(map(customOptions => customOptions.filter(option => option !== this.inputtingOption)), switchMap(options => options.length > 0
7448
+ this.allOptions$.pipe(map(customOptions => customOptions.filter(option => option !== this.inputtingOption)),
7449
+ // eslint-disable-next-line sonarjs/no-identical-functions
7450
+ switchMap(options => options.length > 0
7353
7451
  ? combineLatest(options.map(option => option.value$))
7354
7452
  : of([]))),
7355
7453
  this.filterString$,
@@ -7597,6 +7695,7 @@ class SelectComponent extends BaseSelect {
7597
7695
  label: option.label ||
7598
7696
  this.labelFn?.(option.value) ||
7599
7697
  coerceString(this.trackFn(option.value)),
7698
+ // https://github.com/angular/angular/issues/24515
7600
7699
  labelContext: {
7601
7700
  ...option.labelContext,
7602
7701
  },
@@ -7657,6 +7756,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
7657
7756
  args: ['inputRef', { static: true }]
7658
7757
  }] } });
7659
7758
 
7759
+ /**
7760
+ * Change event object that is emitted when the user selects a
7761
+ * different page size or navigates to another page.
7762
+ * @deprecated use Output events directly instead
7763
+ */
7660
7764
  class PageEvent {
7661
7765
  }
7662
7766
  class PaginatorComponent {
@@ -7680,6 +7784,9 @@ class PaginatorComponent {
7680
7784
  set pageIndex(val) {
7681
7785
  this.currentPage = val + 1;
7682
7786
  }
7787
+ /**
7788
+ * @deprecated use `total` instead
7789
+ */
7683
7790
  get length() {
7684
7791
  return this.total;
7685
7792
  }
@@ -7782,7 +7889,7 @@ class MultiSelectComponent extends BaseSelect {
7782
7889
  this.model = [];
7783
7890
  this.values$ = this.model$;
7784
7891
  this.maxRowCount = 0;
7785
- this.customRowHeight = 0;
7892
+ this.customRowHeight = 0; // 0: use default style const value, > 1: for ```tagClassFn``` maybe affect lineHeight
7786
7893
  this.inputValue = '';
7787
7894
  this.withMaxRowCount = createWithMaxRowCount(this);
7788
7895
  this.focused = false;
@@ -7852,6 +7959,7 @@ class MultiSelectComponent extends BaseSelect {
7852
7959
  value,
7853
7960
  };
7854
7961
  })
7962
+ // sort disabled options as first
7855
7963
  .sort((a, b) => {
7856
7964
  if (a.disabled) {
7857
7965
  return -1;
@@ -7999,6 +8107,7 @@ class MultiSelectComponent extends BaseSelect {
7999
8107
  this.setInputWidth();
8000
8108
  this.filterString = '';
8001
8109
  }
8110
+ // calculate input element width according to its value
8002
8111
  setInputWidth() {
8003
8112
  const { value } = this.inputRef.nativeElement;
8004
8113
  if (!value.length) {
@@ -8094,6 +8203,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
8094
8203
  }]
8095
8204
  }] });
8096
8205
 
8206
+ // @dynamic
8207
+ // eslint-disable-next-line @typescript-eslint/no-extraneous-class
8097
8208
  class AuiSelectValidators {
8098
8209
  static includes(options, trackFn = val => val) {
8099
8210
  return (control) => options.some(option => trackFn(option) === trackFn(control.value))
@@ -8149,7 +8260,9 @@ IncludesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", vers
8149
8260
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: IncludesDirective, decorators: [{
8150
8261
  type: Directive,
8151
8262
  args: [{
8152
- selector: 'aui-select[ngModel][includes],aui-select[formControl][includes],aui-select[formControlName][includes]',
8263
+ selector:
8264
+ // eslint-disable-next-line @angular-eslint/directive-selector
8265
+ 'aui-select[ngModel][includes],aui-select[formControl][includes],aui-select[formControlName][includes]',
8153
8266
  providers: [
8154
8267
  {
8155
8268
  provide: NG_VALIDATORS,
@@ -8270,6 +8383,9 @@ class RadioGroupComponent extends CommonFormControl {
8270
8383
  set size(val) {
8271
8384
  this.size$$.next(val);
8272
8385
  }
8386
+ /**
8387
+ * @deprecated use `plain` instead
8388
+ */
8273
8389
  set isPlain(val) {
8274
8390
  this.plain = val;
8275
8391
  }
@@ -8380,6 +8496,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
8380
8496
  }] } });
8381
8497
 
8382
8498
  class RadioComponent extends BaseRadio {
8499
+ // eslint-disable-next-line @typescript-eslint/no-useless-constructor
8383
8500
  constructor(radioGroup, focusMonitor, cdr) {
8384
8501
  super(radioGroup, focusMonitor, cdr);
8385
8502
  this.bem = buildBem('aui-radio');
@@ -8396,6 +8513,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
8396
8513
  }], ctorParameters: function () { return [{ type: RadioGroupComponent }, { type: i2$1.FocusMonitor }, { type: i0.ChangeDetectorRef }]; } });
8397
8514
 
8398
8515
  class RadioButtonComponent extends BaseRadio {
8516
+ // eslint-disable-next-line @typescript-eslint/no-useless-constructor
8399
8517
  constructor(radioGroup, focusMonitor, cdr) {
8400
8518
  super(radioGroup, focusMonitor, cdr);
8401
8519
  this.bem = buildBem('aui-radio-button');
@@ -8469,10 +8587,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
8469
8587
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ElementRef }]; } });
8470
8588
 
8471
8589
  class TableComponent extends CdkTable {
8590
+ // FIXME: workaround to override because it will break constructor if it is field, but why MatTable works?
8591
+ // @ts-ignore
8472
8592
  get stickyCssClass() {
8473
8593
  return 'aui-table-sticky';
8474
8594
  }
8475
8595
  set stickyCssClass(_) {
8596
+ // nothing
8476
8597
  }
8477
8598
  ngAfterContentInit() {
8478
8599
  this._createPlaceholder();
@@ -8537,6 +8658,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
8537
8658
  args: [TablePlaceholderDefDirective, { static: true }]
8538
8659
  }] } });
8539
8660
 
8661
+ /**
8662
+ * Cell definition for the aui-table.
8663
+ * Captures the template of a column's data row cell as well as cell-specific properties.
8664
+ */
8540
8665
  class TableCellDefDirective extends CdkCellDef {
8541
8666
  }
8542
8667
  TableCellDefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TableCellDefDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
@@ -8675,6 +8800,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
8675
8800
  }] } });
8676
8801
 
8677
8802
  const bem$1 = buildBem('aui-table');
8803
+ /** Cell template container that adds the right classes and role. */
8678
8804
  class TableCellDirective extends CdkCell {
8679
8805
  constructor(columnDef, elementRef) {
8680
8806
  super(columnDef, elementRef);
@@ -8687,6 +8813,7 @@ TableCellDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", ver
8687
8813
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TableCellDirective, decorators: [{
8688
8814
  type: Directive,
8689
8815
  args: [{
8816
+ // eslint-disable-next-line @angular-eslint/directive-selector
8690
8817
  selector: 'aui-table-cell',
8691
8818
  host: {
8692
8819
  class: 'aui-table__cell',
@@ -8698,7 +8825,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
8698
8825
  type: Input
8699
8826
  }] } });
8700
8827
 
8828
+ /**
8829
+ * Column definition for the aui-table.
8830
+ * Defines a set of cells available for a table column.
8831
+ */
8701
8832
  class TableColumnDefDirective extends CdkColumnDef {
8833
+ // Unique name for this column
8834
+ // Why it does not work in `inputs` property?
8702
8835
  set auiTableColumnDef(value) {
8703
8836
  this.name = value;
8704
8837
  }
@@ -8726,6 +8859,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
8726
8859
  type: Input
8727
8860
  }] } });
8728
8861
 
8862
+ /**
8863
+ * Header cell definition for the aui-table.
8864
+ * Captures the template of a column's header cell and as well as cell-specific properties.
8865
+ */
8729
8866
  class TableHeaderCellDefDirective extends CdkHeaderCellDef {
8730
8867
  }
8731
8868
  TableHeaderCellDefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TableHeaderCellDefDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
@@ -8749,6 +8886,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
8749
8886
  }] });
8750
8887
 
8751
8888
  const bem = buildBem('aui-table');
8889
+ /** Header cell template container that adds the right classes and role. */
8752
8890
  class TableHeaderCellDirective extends CdkHeaderCell {
8753
8891
  constructor(columnDef, elementRef) {
8754
8892
  super(columnDef, elementRef);
@@ -8760,6 +8898,7 @@ TableHeaderCellDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0
8760
8898
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TableHeaderCellDirective, decorators: [{
8761
8899
  type: Directive,
8762
8900
  args: [{
8901
+ // eslint-disable-next-line @angular-eslint/directive-selector
8763
8902
  selector: 'aui-table-header-cell',
8764
8903
  host: {
8765
8904
  class: 'aui-table__header-cell',
@@ -8768,6 +8907,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
8768
8907
  }]
8769
8908
  }], ctorParameters: function () { return [{ type: i1$3.CdkColumnDef }, { type: i0.ElementRef }]; } });
8770
8909
 
8910
+ /**
8911
+ * Header row definition for the aui-table.
8912
+ * Captures the header row's template and other header properties such as the columns to display.
8913
+ */
8771
8914
  class TableHeaderRowDefDirective extends CdkHeaderRowDef {
8772
8915
  constructor() {
8773
8916
  super(...arguments);
@@ -8800,6 +8943,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
8800
8943
  args: ['auiTableHeaderRowDefSticky']
8801
8944
  }] } });
8802
8945
 
8946
+ /** Header template container that contains the cell outlet. Adds the right class and role. */
8803
8947
  class TableHeaderRowComponent extends CdkHeaderRow {
8804
8948
  }
8805
8949
  TableHeaderRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TableHeaderRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
@@ -8820,6 +8964,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
8820
8964
  }]
8821
8965
  }] });
8822
8966
 
8967
+ /**
8968
+ * Data row definition for the aui-table.
8969
+ * Captures the header row's template and other row properties such as the columns to display and
8970
+ * a when predicate that describes when this row should be used.
8971
+ */
8823
8972
  class TableRowDefDirective extends CdkRowDef {
8824
8973
  constructor() {
8825
8974
  super(...arguments);
@@ -8854,6 +9003,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
8854
9003
  type: Input
8855
9004
  }] } });
8856
9005
 
9006
+ /** Data row template container that contains the cell outlet. Adds the right class and role. */
8857
9007
  class TableRowComponent extends CdkRow {
8858
9008
  constructor(elRef) {
8859
9009
  super();
@@ -8958,6 +9108,7 @@ class TableScrollShadowDirective {
8958
9108
  const scrollTop = this.containerEl.scrollTop;
8959
9109
  this.placeClassList(this.containerEl.classList, scrollTop > 0, HAS_TABLE_TOP_SHADOW);
8960
9110
  this.placeClassList(this.containerEl.classList, scrollTop < scrollDis, HAS_TABLE_BOTTOM_SHADOW);
9111
+ // 兼容屏幕缩放是 sticky多列的样式问题
8961
9112
  this.table.updateStickyColumnStyles();
8962
9113
  }
8963
9114
  mutateHorizontalScroll() {
@@ -9112,8 +9263,10 @@ class FixedSizeTableVirtualScrollStrategy {
9112
9263
  this._updateContent();
9113
9264
  }
9114
9265
  onContentRendered() {
9266
+ // no-op
9115
9267
  }
9116
9268
  onRenderedOffsetChanged() {
9269
+ // no-op
9117
9270
  }
9118
9271
  scrollToIndex(index, behavior) {
9119
9272
  if (!this.viewport || !this._rowHeight) {
@@ -9201,6 +9354,7 @@ class FixedSizeTableVirtualScrollDirective {
9201
9354
  }
9202
9355
  isStickyEnabled() {
9203
9356
  return (!!this.scrollStrategy.viewport &&
9357
+ // @ts-expect-error
9204
9358
  this.table._headerRowDefs
9205
9359
  .map(def => def.sticky)
9206
9360
  .reduce((prev, curr) => prev && curr, true));
@@ -9240,6 +9394,7 @@ FixedSizeTableVirtualScrollDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVers
9240
9394
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: FixedSizeTableVirtualScrollDirective, decorators: [{
9241
9395
  type: Directive,
9242
9396
  args: [{
9397
+ // eslint-disable-next-line @angular-eslint/directive-selector
9243
9398
  selector: 'aui-virtual-scroll-viewport[fixedSize]',
9244
9399
  exportAs: 'viewPort',
9245
9400
  providers: [
@@ -9276,6 +9431,7 @@ FixedSizeVirtualScrollDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion:
9276
9431
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: FixedSizeVirtualScrollDirective, decorators: [{
9277
9432
  type: Directive,
9278
9433
  args: [{
9434
+ // eslint-disable-next-line @angular-eslint/directive-selector
9279
9435
  selector: 'aui-virtual-scroll-viewport[itemSize]',
9280
9436
  providers: [
9281
9437
  {
@@ -9365,19 +9521,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
9365
9521
  }]
9366
9522
  }] });
9367
9523
 
9524
+ /** @docs-private */
9368
9525
  function getSortDuplicateSortableIdError(id) {
9369
9526
  return new Error(`Cannot have two MatSortables with the same id (${id}).`);
9370
9527
  }
9528
+ /** @docs-private */
9371
9529
  function getSortHeaderNotContainedWithinSortError() {
9372
9530
  return new Error(`MatSortHeader must be placed within a parent element with the MatSort directive.`);
9373
9531
  }
9532
+ /** @docs-private */
9374
9533
  function getSortHeaderMissingIdError() {
9375
9534
  return new Error(`MatSortHeader must be provided with a unique id.`);
9376
9535
  }
9536
+ /** @docs-private */
9377
9537
  function getSortInvalidDirectionError(direction) {
9378
9538
  return new Error(`${direction} is not a valid sort direction ('asc' or 'desc').`);
9379
9539
  }
9380
9540
 
9541
+ // Original code from material2
9381
9542
  class SortDirective {
9382
9543
  constructor() {
9383
9544
  this.sortables = new Map();
@@ -9595,6 +9756,9 @@ const StepSelectedIcon = {
9595
9756
  class StepsComponent {
9596
9757
  constructor() {
9597
9758
  this._steps = [];
9759
+ /**
9760
+ * @deprecated type 为 step 时一般在使用上下文中控制是否可以进行下一步;type 为 progress 时强制按顺序执行
9761
+ */
9598
9762
  this.linear = false;
9599
9763
  this.orientation = 'horizontal';
9600
9764
  this.type = 'step';
@@ -9706,6 +9870,7 @@ class StepsComponent {
9706
9870
  (currentStep.state !== StepState.Done && i > this._currentIndex))) {
9707
9871
  return false;
9708
9872
  }
9873
+ // eslint-disable-next-line sonarjs/prefer-single-boolean-return
9709
9874
  if (i < this._currentIndex && !this.selectable) {
9710
9875
  return false;
9711
9876
  }
@@ -10017,6 +10182,7 @@ class TabBodyComponent {
10017
10182
  constructor() {
10018
10183
  this.content$ = new BehaviorSubject(null);
10019
10184
  }
10185
+ /** The tab body content to display. */
10020
10186
  get content() {
10021
10187
  return this._content;
10022
10188
  }
@@ -10041,7 +10207,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
10041
10207
  }], content: [{
10042
10208
  type: Input
10043
10209
  }] } });
10210
+ /** Used to flag tab labels for use with the portal directive */
10044
10211
  class TabLabelDirective extends CdkPortal {
10212
+ // eslint-disable-next-line @typescript-eslint/no-useless-constructor
10045
10213
  constructor(templateRef, viewContainerRef) {
10046
10214
  super(templateRef, viewContainerRef);
10047
10215
  }
@@ -10054,6 +10222,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
10054
10222
  selector: '[auiTabLabel]',
10055
10223
  }]
10056
10224
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
10225
+ /**
10226
+ * Lazy load the embedded template for a tab content.
10227
+ */
10057
10228
  class TabContentDirective {
10058
10229
  constructor(template) {
10059
10230
  this.template = template;
@@ -10067,7 +10238,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
10067
10238
  selector: '[auiTabContent]',
10068
10239
  }]
10069
10240
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
10241
+ /** Used to project additional template from host to the tab header. */
10070
10242
  class TabHeaderAddonDirective extends CdkPortal {
10243
+ // eslint-disable-next-line @typescript-eslint/no-useless-constructor
10071
10244
  constructor(templateRef, viewContainerRef) {
10072
10245
  super(templateRef, viewContainerRef);
10073
10246
  }
@@ -10080,10 +10253,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
10080
10253
  selector: '[auiTabHeaderAddon]',
10081
10254
  }]
10082
10255
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
10256
+ /**
10257
+ * Used in the `aui-tab-group` view to display tab labels.
10258
+ */
10083
10259
  class TabLabelWrapperDirective {
10084
10260
  constructor(elementRef) {
10085
10261
  this.elementRef = elementRef;
10086
10262
  }
10263
+ /** Whether or not the tab is disabled */
10087
10264
  get disabled() {
10088
10265
  return this._disabled;
10089
10266
  }
@@ -10096,6 +10273,7 @@ class TabLabelWrapperDirective {
10096
10273
  getOffsetWidth() {
10097
10274
  return this.elementRef.nativeElement.offsetWidth;
10098
10275
  }
10276
+ /** Sets focus on the wrapper element */
10099
10277
  focus() {
10100
10278
  this.elementRef.nativeElement.focus();
10101
10279
  }
@@ -10115,6 +10293,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
10115
10293
  type: Input
10116
10294
  }] } });
10117
10295
  class TabTitleDirective extends CdkPortal {
10296
+ // eslint-disable-next-line @typescript-eslint/no-useless-constructor
10118
10297
  constructor(templateRef, viewContainerRef) {
10119
10298
  super(templateRef, viewContainerRef);
10120
10299
  }
@@ -10127,12 +10306,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
10127
10306
  selector: '[auiTabTitle]',
10128
10307
  }]
10129
10308
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
10309
+ /**
10310
+ * The portal host directive for the contents of the tab.
10311
+ */
10130
10312
  class TabBodyPortalDirective extends CdkPortalOutlet {
10131
10313
  constructor(componentFactoryResolver, viewContainerRef, _host) {
10132
10314
  super(componentFactoryResolver, viewContainerRef);
10133
10315
  this._host = _host;
10134
10316
  this._hostSubscription = Subscription.EMPTY;
10135
10317
  }
10318
+ /** Set initial visibility or set up subscription for changing visibility. */
10136
10319
  ngOnInit() {
10137
10320
  super.ngOnInit();
10138
10321
  this._hostSubscription = this._host.content$.subscribe(content => {
@@ -10163,6 +10346,9 @@ class TabContextService {
10163
10346
  ? combineLatest([_parent.active$, this.active$$]).pipe(map(([a, b]) => a && b))
10164
10347
  : this.active$$).pipe(distinctUntilChanged());
10165
10348
  }
10349
+ /**
10350
+ * Whether the tab is currently active.
10351
+ */
10166
10352
  get isActive() {
10167
10353
  return this.active$$.value;
10168
10354
  }
@@ -10180,19 +10366,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
10180
10366
  type: SkipSelf
10181
10367
  }] }]; } });
10182
10368
 
10369
+ /* eslint-disable no-prototype-builtins */
10183
10370
  class TabComponent {
10184
10371
  constructor(_viewContainerRef, tabContext) {
10185
10372
  this._viewContainerRef = _viewContainerRef;
10186
10373
  this.tabContext = tabContext;
10374
+ /** Plain text label for the tab, used when there is no template label. */
10187
10375
  this.textLabel = '';
10376
+ /** Whether or not to show the close button in the header */
10188
10377
  this.closeable = false;
10189
10378
  this.close = new EventEmitter();
10379
+ /**
10380
+ * The relatively indexed position where 0 represents the center, negative is left, and positive
10381
+ * represents the right.
10382
+ */
10190
10383
  this.position = null;
10384
+ /**
10385
+ * The initial relatively index origin of the tab if it was created and selected after there
10386
+ * was already a selected tab. Provides context of what position the tab should originate from.
10387
+ */
10191
10388
  this.origin = null;
10389
+ /** Emits whenever the internal state of the tab changes. */
10192
10390
  this._stateChanges = new Subject();
10391
+ /** Portal that will be the hosted content of the tab */
10193
10392
  this._contentPortal = null;
10194
10393
  this._disabled = false;
10195
10394
  }
10395
+ /** Whether or not the tab is disabled */
10196
10396
  get disabled() {
10197
10397
  return this._disabled;
10198
10398
  }
@@ -10244,8 +10444,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
10244
10444
  }] } });
10245
10445
 
10246
10446
  const TabSize = {
10447
+ /** 卡片级尺寸 */
10247
10448
  Large: 'large',
10449
+ /** 页面级尺寸 */
10248
10450
  Medium: 'medium',
10451
+ /** 小尺寸 */
10249
10452
  Small: 'small',
10250
10453
  };
10251
10454
  const TabType = {
@@ -10260,6 +10463,11 @@ class TabHeaderActiveIndicatorComponent {
10260
10463
  this.type = TabType.Line;
10261
10464
  this.bem = buildBem('aui-tab-header-active-indicator');
10262
10465
  }
10466
+ /**
10467
+ * Calculates the styles from the provided element in order to align the indicator to that element.
10468
+ * Shows the indicator if previously set as hidden.
10469
+ * @param element
10470
+ */
10263
10471
  alignToElement(element) {
10264
10472
  if (typeof requestAnimationFrame !== 'undefined') {
10265
10473
  this._ngZone.runOutsideAngular(() => {
@@ -10270,6 +10478,10 @@ class TabHeaderActiveIndicatorComponent {
10270
10478
  this._setStyles(element);
10271
10479
  }
10272
10480
  }
10481
+ /**
10482
+ * Sets the proper styles to the element.
10483
+ * @param element
10484
+ */
10273
10485
  _setStyles(element) {
10274
10486
  const positions = this._getElementPosition(element);
10275
10487
  const nativeEl = this._elementRef.nativeElement;
@@ -10292,6 +10504,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
10292
10504
  type: Input
10293
10505
  }] } });
10294
10506
 
10507
+ /**
10508
+ * The distance in pixels that will be overshot when scrolling a tab label into view. This helps
10509
+ * provide a small affordance to the label next to it.
10510
+ */
10295
10511
  const EXAGGERATED_OVERSCROLL = 60;
10296
10512
  class TabHeaderComponent {
10297
10513
  constructor(_changeDetectorRef, _viewportRuler) {
@@ -10299,18 +10515,27 @@ class TabHeaderComponent {
10299
10515
  this._viewportRuler = _viewportRuler;
10300
10516
  this.bem = buildBem('aui-tab-header');
10301
10517
  this._showAddon = false;
10518
+ /** Whether the controls for pagination should be displayed */
10302
10519
  this._showPaginationControls = false;
10520
+ /** Whether the tab list can be scrolled more towards the end of the tab label list. */
10303
10521
  this._disableScrollAfter = true;
10522
+ /** Whether the tab list can be scrolled more towards the beginning of the tab label list. */
10304
10523
  this._disableScrollBefore = true;
10524
+ /** Whether the header should scroll to the selected index after the view has been checked. */
10305
10525
  this._selectedIndexChanged = false;
10526
+ /** The distance in pixels that the tab labels should be translated to the left. */
10306
10527
  this._scrollDistance = 0;
10307
10528
  this._selectedIndex = 0;
10529
+ /** Emits when the component is destroyed. */
10308
10530
  this._destroyed = new Subject();
10309
10531
  this.type = TabType.Line;
10310
10532
  this.size = TabSize.Medium;
10533
+ /** Event emitted when the option is selected. */
10311
10534
  this.selectFocusedIndex = new EventEmitter();
10535
+ /** Event emitted when a label is focused. */
10312
10536
  this.indexFocused = new EventEmitter();
10313
10537
  }
10538
+ /** The index of the active tab. */
10314
10539
  get selectedIndex() {
10315
10540
  return this._selectedIndex;
10316
10541
  }
@@ -10327,11 +10552,14 @@ class TabHeaderComponent {
10327
10552
  this._destroyed.complete();
10328
10553
  }
10329
10554
  ngAfterContentChecked() {
10555
+ // If the number of tab labels have changed, check if scrolling should be enabled
10330
10556
  if (this._tabLabelCount !== this._labelWrappers.length) {
10331
10557
  this._updatePagination();
10332
10558
  this._tabLabelCount = this._labelWrappers.length;
10333
10559
  this._changeDetectorRef.markForCheck();
10334
10560
  }
10561
+ // If the selected index has changed, scroll to the label and check if the scrolling controls
10562
+ // should be disabled.
10335
10563
  if (this._selectedIndexChanged) {
10336
10564
  this._scrollToLabel(this._selectedIndex);
10337
10565
  this._checkScrollingControls();
@@ -10339,6 +10567,8 @@ class TabHeaderComponent {
10339
10567
  this._selectedIndexChanged = false;
10340
10568
  this._changeDetectorRef.markForCheck();
10341
10569
  }
10570
+ // If the scroll distance has been changed (tab selected, focused, scroll controls activated),
10571
+ // then translate the header to reflect this.
10342
10572
  if (this._scrollDistanceChanged) {
10343
10573
  this._updateTabScrollPosition();
10344
10574
  this._scrollDistanceChanged = false;
@@ -10350,6 +10580,9 @@ class TabHeaderComponent {
10350
10580
  this._changeDetectorRef.markForCheck();
10351
10581
  }
10352
10582
  }
10583
+ /**
10584
+ * Aligns the ink bar to the selected tab on load.
10585
+ */
10353
10586
  ngAfterContentInit() {
10354
10587
  const resize = this._viewportRuler.change(150);
10355
10588
  const realign = () => {
@@ -10360,12 +10593,19 @@ class TabHeaderComponent {
10360
10593
  .withHorizontalOrientation('ltr')
10361
10594
  .withWrap();
10362
10595
  this._keyManager.updateActiveItem(0);
10596
+ // Defer the first call in order to allow for slower browsers to lay out the elements.
10597
+ // This helps in cases where the user lands directly on a page with paginated tabs.
10363
10598
  typeof requestAnimationFrame !== 'undefined'
10364
10599
  ? requestAnimationFrame(realign)
10365
10600
  : realign();
10601
+ // On window resize, realign the ink bar and update the orientation of
10602
+ // the key manager if the direction has changed.
10366
10603
  resize.pipe(takeUntil(this._destroyed)).subscribe(() => {
10367
10604
  realign();
10368
10605
  });
10606
+ // If there is a change in the focus key manager we need to emit the `indexFocused`
10607
+ // event in order to provide a public event that notifies about focus changes. Also we realign
10608
+ // the tabs container by scrolling the new focused tab into the visible section.
10369
10609
  this._keyManager.change
10370
10610
  .pipe(takeUntil(this._destroyed))
10371
10611
  .subscribe(newFocusIndex => {
@@ -10373,17 +10613,22 @@ class TabHeaderComponent {
10373
10613
  this._setTabFocus(newFocusIndex);
10374
10614
  });
10375
10615
  }
10616
+ /** Sets the distance in pixels that the tab header should be transformed in the X-axis. */
10376
10617
  get scrollDistance() {
10377
10618
  return this._scrollDistance;
10378
10619
  }
10379
10620
  set scrollDistance(v) {
10380
10621
  this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), v));
10622
+ // Mark that the scroll distance has changed so that after the view is checked, the CSS
10623
+ // transformation can move the header.
10381
10624
  this._scrollDistanceChanged = true;
10382
10625
  this._checkScrollingControls();
10383
10626
  }
10627
+ /** Tracks which element has focus; used for keyboard navigation */
10384
10628
  get focusIndex() {
10385
10629
  return this._keyManager ? this._keyManager.activeItemIndex : 0;
10386
10630
  }
10631
+ /** When the focus index is set, we must manually send focus to the correct label */
10387
10632
  set focusIndex(value) {
10388
10633
  if (!this._isValidIndex(value) ||
10389
10634
  this.focusIndex === value ||
@@ -10392,6 +10637,10 @@ class TabHeaderComponent {
10392
10637
  }
10393
10638
  this._keyManager.setActiveItem(value);
10394
10639
  }
10640
+ /**
10641
+ * Determines if an index is valid. If the tabs are not ready yet, we assume that the user is
10642
+ * providing a valid index and return true.
10643
+ */
10395
10644
  _isValidIndex(index) {
10396
10645
  if (!this._labelWrappers) {
10397
10646
  return true;
@@ -10420,16 +10669,29 @@ class TabHeaderComponent {
10420
10669
  this._keyManager.onKeydown(event);
10421
10670
  }
10422
10671
  }
10672
+ /**
10673
+ * Sets focus on the HTML element for the label wrapper and scrolls it into the view if
10674
+ * scrolling is enabled.
10675
+ */
10423
10676
  _setTabFocus(tabIndex) {
10424
10677
  if (this._showPaginationControls) {
10425
10678
  this._scrollToLabel(tabIndex);
10426
10679
  }
10427
10680
  if (this._labelWrappers?.length > 0) {
10428
10681
  this._labelWrappers.toArray()[tabIndex].focus();
10682
+ // Do not let the browser manage scrolling to focus the element, this will be handled
10683
+ // by using translation. In LTR, the scroll left should be 0. In RTL, the scroll width
10684
+ // should be the full width minus the offset width.
10429
10685
  const containerEl = this._tabListContainer.nativeElement;
10430
10686
  containerEl.scrollLeft = 0;
10431
10687
  }
10432
10688
  }
10689
+ /**
10690
+ * Moves the tab list such that the desired tab label (marked by index) is moved into view.
10691
+ *
10692
+ * This is an expensive call that forces a layout reflow to compute box and scroll metrics and
10693
+ * should be called sparingly.
10694
+ */
10433
10695
  _scrollToLabel(labelIndex) {
10434
10696
  const selectedLabel = this._labelWrappers
10435
10697
  ? this._labelWrappers.toArray()[labelIndex]
@@ -10437,37 +10699,63 @@ class TabHeaderComponent {
10437
10699
  if (!selectedLabel) {
10438
10700
  return;
10439
10701
  }
10702
+ // The view length is the visible width of the tab labels.
10440
10703
  const viewLength = this._tabListContainer.nativeElement.offsetWidth;
10441
10704
  const labelBeforePos = selectedLabel.getOffsetLeft();
10442
10705
  const labelAfterPos = labelBeforePos + selectedLabel.getOffsetWidth();
10443
10706
  const beforeVisiblePos = this.scrollDistance;
10444
10707
  const afterVisiblePos = this.scrollDistance + viewLength;
10445
10708
  if (labelBeforePos < beforeVisiblePos) {
10709
+ // Scroll header to move label to the before direction
10446
10710
  this.scrollDistance -=
10447
10711
  beforeVisiblePos - labelBeforePos + EXAGGERATED_OVERSCROLL;
10448
10712
  }
10449
10713
  else if (labelAfterPos > afterVisiblePos) {
10714
+ // Scroll header to move label to the after direction
10450
10715
  this.scrollDistance +=
10451
10716
  labelAfterPos - afterVisiblePos + EXAGGERATED_OVERSCROLL;
10452
10717
  }
10453
10718
  }
10719
+ /**
10720
+ * Moves the tab list in the 'before' or 'after' direction (towards the beginning of the list or
10721
+ * the end of the list, respectively). The distance to scroll is computed to be a third of the
10722
+ * length of the tab list view window.
10723
+ *
10724
+ * This is an expensive call that forces a layout reflow to compute box and scroll metrics and
10725
+ * should be called sparingly.
10726
+ */
10454
10727
  _scrollHeader(scrollDir) {
10455
10728
  const viewLength = this._tabListContainer.nativeElement.offsetWidth;
10729
+ // Move the scroll distance one-third the length of the tab list's viewport.
10456
10730
  this.scrollDistance += ((scrollDir === 'before' ? -1 : 1) * viewLength) / 3;
10457
10731
  }
10732
+ /**
10733
+ * Callback for when the MutationObserver detects that the content has changed.
10734
+ */
10458
10735
  _onContentChanges() {
10459
10736
  this._updatePagination();
10460
10737
  this._alignActiveIndicatorToSelectedTab();
10461
10738
  this._changeDetectorRef.markForCheck();
10462
10739
  }
10740
+ /**
10741
+ * Updating the view whether pagination should be enabled or not
10742
+ */
10463
10743
  _updatePagination() {
10464
10744
  this._checkPaginationEnabled();
10465
10745
  this._checkScrollingControls();
10466
10746
  this._updateTabScrollPosition();
10467
10747
  }
10748
+ /**
10749
+ * Evaluate whether the pagination controls should be displayed. If the scroll width of the
10750
+ * tab list is wider than the size of the header container, then the pagination controls should
10751
+ * be shown.
10752
+ *
10753
+ * This is an expensive call that forces a layout reflow to compute box and scroll metrics and
10754
+ * should be called sparingly.
10755
+ */
10468
10756
  _checkPaginationEnabled() {
10469
10757
  const isEnabled = this._tabList.nativeElement.scrollWidth >
10470
- this._paginationWrapper.nativeElement.offsetWidth + 2;
10758
+ this._paginationWrapper.nativeElement.offsetWidth + 2; // 2 is the border size
10471
10759
  if (!isEnabled) {
10472
10760
  this.scrollDistance = 0;
10473
10761
  }
@@ -10477,22 +10765,45 @@ class TabHeaderComponent {
10477
10765
  this._changeDetectorRef.markForCheck();
10478
10766
  }
10479
10767
  }
10768
+ /**
10769
+ * Evaluate whether the before and after controls should be enabled or disabled.
10770
+ * If the header is at the beginning of the list (scroll distance is equal to 0) then disable the
10771
+ * before button. If the header is at the end of the list (scroll distance is equal to the
10772
+ * maximum distance we can scroll), then disable the after button.
10773
+ *
10774
+ * This is an expensive call that forces a layout reflow to compute box and scroll metrics and
10775
+ * should be called sparingly.
10776
+ */
10480
10777
  _checkScrollingControls() {
10778
+ // Check if the pagination arrows should be activated.
10481
10779
  this._disableScrollBefore = this.scrollDistance === 0;
10482
10780
  this._disableScrollAfter =
10483
10781
  this.scrollDistance === this._getMaxScrollDistance();
10484
10782
  this._changeDetectorRef.markForCheck();
10485
10783
  }
10784
+ /**
10785
+ * Determines what is the maximum length in pixels that can be set for the scroll distance. This
10786
+ * is equal to the difference in width between the tab list container and tab header container.
10787
+ *
10788
+ * This is an expensive call that forces a layout reflow to compute box and scroll metrics and
10789
+ * should be called sparingly.
10790
+ */
10486
10791
  _getMaxScrollDistance() {
10487
10792
  const lengthOfTabList = this._tabList.nativeElement.scrollWidth;
10488
10793
  const viewLength = this._tabListContainer.nativeElement.offsetWidth;
10489
10794
  return lengthOfTabList - viewLength || 0;
10490
10795
  }
10796
+ /** Performs the CSS transformation on the tab list that will cause the list to scroll. */
10491
10797
  _updateTabScrollPosition() {
10492
10798
  const scrollDistance = this.scrollDistance;
10493
10799
  const translateX = -scrollDistance;
10800
+ // Don't use `translate3d` here because we don't want to create a new layer. A new layer
10801
+ // seems to cause flickering and overflow in Internet Explorer. For example, the ink bar
10802
+ // and ripples will exceed the boundaries of the visible tab bar.
10803
+ // See: https://github.com/angular/material2/issues/10276
10494
10804
  this._tabList.nativeElement.style.transform = `translateX(${translateX}px)`;
10495
10805
  }
10806
+ /** Tells the active indicator to align itself to the current label wrapper */
10496
10807
  _alignActiveIndicatorToSelectedTab() {
10497
10808
  const selectedLabelWrapper = this._labelWrappers?.length > 0
10498
10809
  ? this._labelWrappers.toArray()[this.selectedIndex].elementRef
@@ -10522,7 +10833,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
10522
10833
  }], _title: [{
10523
10834
  type: ContentChild,
10524
10835
  args: [TabTitleDirective, { static: false }]
10525
- }], _labelWrappers: [{
10836
+ }],
10837
+ /**
10838
+ * workaround for @link https://github.com/microsoft/TypeScript/pull/42425
10839
+ */
10840
+ _labelWrappers: [{
10526
10841
  type: ContentChildren,
10527
10842
  args: [TabLabelWrapperDirective]
10528
10843
  }], _tabListContainer: [{
@@ -10539,27 +10854,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
10539
10854
  args: [TabHeaderActiveIndicatorComponent, { static: true }]
10540
10855
  }] } });
10541
10856
 
10857
+ /* eslint-disable no-prototype-builtins */
10858
+ /** A simple change event emitted on focus or selection changes. */
10542
10859
  class TabChangeEvent {
10543
10860
  }
10544
10861
  class TabGroupComponent {
10545
10862
  constructor(_changeDetectorRef) {
10546
10863
  this._changeDetectorRef = _changeDetectorRef;
10547
10864
  this.bem = buildBem('aui-tab-group');
10865
+ /** The tab index that should be selected after the content has been checked. */
10548
10866
  this._indexToSelect = 0;
10867
+ /** Subscription to tabs being added/removed. */
10549
10868
  this._tabsSubscription = Subscription.EMPTY;
10869
+ /** Subscription to changes in the tab labels. */
10550
10870
  this._tabLabelSubscription = Subscription.EMPTY;
10551
10871
  this._selectedIndex = null;
10552
10872
  this._tab = null;
10553
10873
  this._type = TabType.Line;
10554
10874
  this._size = TabSize.Medium;
10875
+ /** Emits whenever the type changes */
10555
10876
  this._typeChange = new Subject();
10877
+ /** Emits whenever the size changes */
10556
10878
  this._sizeChange = new Subject();
10879
+ /** Output to enable support for two-way binding on `[(selectedIndex)]` */
10557
10880
  this.selectedIndexChange = new EventEmitter();
10558
10881
  this.tabChange = new EventEmitter();
10882
+ /** Event emitted when the tab selection has changed. */
10559
10883
  this.selectedTabChange = new EventEmitter(true);
10884
+ /** Event emitted when focus has changed within a tab group. */
10560
10885
  this.focusChange = new EventEmitter();
10561
10886
  this.activatedTabs = [];
10562
10887
  }
10888
+ /** The index of the active tab. */
10563
10889
  get selectedIndex() {
10564
10890
  return this._selectedIndex;
10565
10891
  }
@@ -10619,20 +10945,34 @@ class TabGroupComponent {
10619
10945
  this._sizeChange.next();
10620
10946
  }
10621
10947
  }
10948
+ /**
10949
+ * After the content is checked, this component knows what tabs have been defined
10950
+ * and what the selected index should be. This is where we can know exactly what position
10951
+ * each tab should be in according to the new selected index.
10952
+ */
10622
10953
  ngAfterContentChecked() {
10954
+ // Don't clamp the `indexToSelect` immediately in the setter because it can happen that
10955
+ // the amount of tabs changes before the actual change detection runs.
10623
10956
  const indexToSelect = (this._indexToSelect = this._clampTabIndex(this._indexToSelect));
10957
+ // If there is a change in selected index, emit a change event. Should not trigger if
10958
+ // the selected index has not yet been initialized.
10624
10959
  if (this._selectedIndex !== indexToSelect && this._selectedIndex != null) {
10625
10960
  this._changeActivatedTabs();
10626
10961
  const tabChangeEvent = this._createChangeEvent(indexToSelect);
10627
10962
  this.selectedTabChange.emit(tabChangeEvent);
10963
+ // Emitting this value after change detection has run
10964
+ // since the checked content may contain this variable'
10628
10965
  Promise.resolve().then(() => {
10629
10966
  this.selectedIndexChange.emit(indexToSelect);
10630
10967
  this.tabChange.emit(this._tabs.get(indexToSelect).name);
10631
10968
  });
10632
10969
  }
10970
+ // Setup the position for each tab and optionally setup an origin on the next selected tab.
10633
10971
  this._tabs.forEach((tab, index) => {
10634
10972
  tab.position = index - indexToSelect;
10635
10973
  tab.tabContext.isActive = index === indexToSelect;
10974
+ // If there is already a selected tab, then set up an origin for the next selected tab
10975
+ // if it doesn't have one already.
10636
10976
  if (this._selectedIndex != null && tab.position === 0 && !tab.origin) {
10637
10977
  tab.origin = indexToSelect - this._selectedIndex;
10638
10978
  }
@@ -10652,15 +10992,22 @@ class TabGroupComponent {
10652
10992
  }
10653
10993
  this._changeActivatedTabs();
10654
10994
  this._subscribeToTabLabels();
10995
+ // Subscribe to changes in the amount of tabs, in order to be
10996
+ // able to re-render the content as new tabs are added or removed.
10655
10997
  this._tabsSubscription = this._tabs.changes.subscribe(() => {
10656
10998
  const tabs = this._tabs.toArray();
10657
10999
  if (this._lazy) {
10658
11000
  this.activatedTabs = this.activatedTabs.filter(tab => tabs.includes(tab));
10659
11001
  }
10660
11002
  const indexToSelect = this._clampTabIndex(this._indexToSelect);
11003
+ // Maintain the previously-selected tab if a new tab is added or removed and there is no
11004
+ // explicit change that selects a different tab.
10661
11005
  if (indexToSelect === this._selectedIndex) {
10662
11006
  for (const [i, tab] of tabs.entries()) {
10663
11007
  if (tab.tabContext.isActive) {
11008
+ // Assign both to the `_indexToSelect` and `_selectedIndex` so we don't fire a changed
11009
+ // event, otherwise the consumer may end up in an infinite loop in some edge cases like
11010
+ // adding a tab within the `selectedIndexChange` event.
10664
11011
  this._indexToSelect = this._selectedIndex = i;
10665
11012
  break;
10666
11013
  }
@@ -10677,6 +11024,7 @@ class TabGroupComponent {
10677
11024
  this._typeChange.complete();
10678
11025
  this._sizeChange.complete();
10679
11026
  }
11027
+ /** Handle click events, setting new selected index if appropriate. */
10680
11028
  _handleClick(tab, idx) {
10681
11029
  if (!tab.disabled) {
10682
11030
  this.selectedIndex = this._tabHeader.focusIndex = idx;
@@ -10685,6 +11033,7 @@ class TabGroupComponent {
10685
11033
  _focusChanged(index) {
10686
11034
  this.focusChange.emit(this._createChangeEvent(index));
10687
11035
  }
11036
+ /** Re-aligns the ink bar to the selected tab element. */
10688
11037
  realignActiveIndicator() {
10689
11038
  if (this._tabHeader) {
10690
11039
  this._tabHeader._alignActiveIndicatorToSelectedTab();
@@ -10702,7 +11051,11 @@ class TabGroupComponent {
10702
11051
  this.activatedTabs.push(tab);
10703
11052
  }
10704
11053
  }
11054
+ /** Clamps the given index to the bounds of 0 and the tabs length. */
10705
11055
  _clampTabIndex(index) {
11056
+ // Note the `|| 0`, which ensures that values like NaN can't get through
11057
+ // and which would otherwise throw the component into an infinite loop
11058
+ // (since Math.max(NaN, 0) === NaN).
10706
11059
  return Math.min(this._tabs.length - 1, Math.max(index || 0, 0));
10707
11060
  }
10708
11061
  _findIndexByTab(name) {
@@ -10716,6 +11069,12 @@ class TabGroupComponent {
10716
11069
  }
10717
11070
  return event;
10718
11071
  }
11072
+ /**
11073
+ * Subscribes to changes in the tab labels. This is needed, because the @Input for the label is
11074
+ * on the Tab component, whereas the data binding is inside the TabGroup. In order for the
11075
+ * binding to be updated, we need to subscribe to changes in it and trigger change detection
11076
+ * manually.
11077
+ */
10719
11078
  _subscribeToTabLabels() {
10720
11079
  if (this._tabLabelSubscription) {
10721
11080
  this._tabLabelSubscription.unsubscribe();
@@ -10725,6 +11084,7 @@ class TabGroupComponent {
10725
11084
  this._changeDetectorRef.markForCheck();
10726
11085
  });
10727
11086
  }
11087
+ /** Retrieves the tabindex for the tab. */
10728
11088
  _getTabIndex(tab, idx) {
10729
11089
  if (tab.disabled) {
10730
11090
  return null;
@@ -10879,6 +11239,7 @@ class TreeSelectComponent extends CommonFormControl {
10879
11239
  this.filterString$ = this.filterString$$.asObservable();
10880
11240
  this.displayText = '';
10881
11241
  this.flattedNodes = [];
11242
+ // `this` is not available in `trackBy`...
10882
11243
  this.trackByLabel = (_, node) => this.getLabelFromNode(node);
10883
11244
  }
10884
11245
  get nodesData() {
@@ -11213,5 +11574,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
11213
11574
  }]
11214
11575
  }] });
11215
11576
 
11577
+ /**
11578
+ * Generated bundle index. Do not edit.
11579
+ */
11580
+
11216
11581
  export { AccordionComponent, AccordionItemComponent, AccordionItemContentDirective, AccordionItemHeaderDirective, AccordionModule, AnchorComponent, AnchorDirective, AnchorDirectiveChild, AnchorLabelDirective, AnchorModule, AnchorTreeComponent, AuiSelectValidators, AutoCompleteDirective, AutocompleteComponent, AutocompleteModule, AutocompletePlaceholderComponent, AutosizeDirective, BackTopComponent, BackTopModule, BaseTooltip, Bem, BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbModule, ButtonComponent, ButtonGroupComponent, ButtonModule, ButtonType, CONTROL_ITEM_HEIGHT, CalendarFooterComponent, CalendarHeaderComponent, CardComponent, CardFooterDirective, CardHeaderDirective, CardModule, CheckTagComponent, CheckboxComponent, CheckboxGroupComponent, CheckboxModule, ColorPickerComponent, ColorPickerModule, CommonForm, CommonFormControl, ComponentSize, ConfirmDialogConfig, ConfirmType, CssVarPipe, CustomAutoCompleteDirective, DATA, DATE, DATE_NAV_RANGES, DATE_TYPES, DAY, DAY_PANEL_COLUMN_COUNT, DAY_PANEL_ROW_COUNT, DIALOG_DATA, DISPLAY_DELAY, DateNavRange, DatePickerComponent, DatePickerModule, DatePickerPanelComponent, DatePickerTriggerComponent, DatePickerType, DateRangePickerPanelComponent, DialogCloseDirective, DialogComponent, DialogConfig, DialogContentComponent, DialogFooterComponent, DialogHeaderComponent, DialogModule, DialogRef, DialogService, DialogSize, DrawerComponent, DrawerContentDirective, DrawerFooterDirective, DrawerHeaderDirective, DrawerModule, DrawerRef, DrawerService, DrawerSize, DropdownActiveDirective, DropdownButtonComponent, DropdownDirective, DropdownModule, FixedSizeTableVirtualScrollDirective, FixedSizeTableVirtualScrollStrategy, FixedSizeVirtualScrollDirective, FormDirective, FormItemAddonDirective, FormItemComponent, FormItemControlDirective, FormItemErrorDirective, FormItemHintDirective, FormItemLabelDirective, FormItemWidth, FormModule, HIDDEN_DELAY, HOUR, HOUR_ITEMS, I18NInterfaceToken, I18nModule, I18nPipe, I18nService, ICON_REGISTER_PROVIDER_FACTORY, ICON_REGISTER_SERVICE_PROVIDER, INPUT_ERROR_KEY, IconComponent, IconModule, IconRegisterService, IncludesDirective, InlineAlertComponent, InlineAlertModule, InlineAlertTitleDirective, InlineAlertType, InputAddonAfterDirective, InputAddonBeforeDirective, InputComponent, InputGroupComponent, InputModule, InputPrefixDirective, InputSuffixDirective, LabelPosition, MESSAGE_CONFIG, MESSAGE_DEFAULT_CONFIG, MINUTE, MINUTE_ITEMS, MONTH, MONTH_PANEL_COLUMN_COUNT, MONTH_PANEL_ROW_COUNT, MenuComponent, MenuContentDirective, MenuGroupComponent, MenuGroupTitleDirective, MenuItemComponent, MenuItemType, MessageConfig, MessageModule, MessageService, MessageType, MultiSelectComponent, NOTIFICATION_CONFIG, NOTIFICATION_DEFAULT_CONFIG, NotificationComponent, NotificationModule, NotificationService, NumberInputComponent, OptionComponent, OptionContentDirective, OptionGroupComponent, OptionGroupTitleDirective, OptionPlaceholderComponent, PAGINATOR_INTL_PROVIDER, PAGINATOR_INTL_PROVIDER_FACTORY, PageEvent, PaginatorComponent, PaginatorIntl, PaginatorModule, PickerPanelComponent, RadioButtonComponent, RadioComponent, RadioGroupComponent, RadioModule, RadioSize, RangePickerComponent, RgbColorPipe, RgbaColorPipe, SECOND, SECOND_ITEMS, ScrollingModule, SearchComponent, SectionComponent, SectionTitleDirective, SelectAllStatus, SelectComponent, SelectModule, Side, SortDirective, SortHeaderComponent, SortModule, StatusBarComponent, StatusBarModule, StatusBarSize, StatusType, StepState, StepsComponent, StepsModule, SubmenuComponent, SuggestionComponent, SuggestionGroupComponent, SuggestionGroupTitleDirective, SwitchComponent, SwitchModule, TOOLTIP_COPY_INTL_INTL_PROVIDER, TOOLTIP_COPY_INTL_PROVIDER_FACTORY, TabBodyComponent, TabBodyPortalDirective, TabChangeEvent, TabComponent, TabContentDirective, TabContextService, TabGroupComponent, TabHeaderActiveIndicatorComponent, TabHeaderAddonDirective, TabHeaderComponent, TabLabelDirective, TabLabelWrapperDirective, TabSize, TabTitleDirective, TabType, TableCellDefDirective, TableCellDirective, TableColumnDefDirective, TableComponent, TableExpandButtonCellComponent, TableExpandPanelCellComponent, TableHeaderCellDefDirective, TableHeaderCellDirective, TableHeaderRowComponent, TableHeaderRowDefDirective, TableModule, TableOfContentsModule, TablePlaceholderDefDirective, TablePlaceholderOutletDirective, TableRowComponent, TableRowDefDirective, TableScrollShadowDirective, TableScrollWrapperDirective, TabsModule, TagComponent, TagModule, TagType, TagsInputComponent, ThemeModule, ThemePickerPipe, ThemeService, TimePickerComponent, TimePickerControlType, TimePickerModule, TimePickerPanelComponent, TocContainerDirective, TocContentDirective, TocLinkDirective, TooltipActiveDirective, TooltipComponent, TooltipCopyDirective, TooltipCopyIntl, TooltipDirective, TooltipModule, TooltipTrigger, TooltipType, TreeNodeComponent, TreeNodePlaceholderComponent, TreeSelectComponent, TreeSelectModule, VirtualForOfDirective, VirtualScrollViewportComponent, YEAR, YEAR_PANEL_COLUMN_COUNT, YEAR_PANEL_ROW_COUNT, _isNumberValue, _tableVirtualScrollDirectiveStrategyFactory, buildBem, coerceAttrBoolean, coerceNumber, coerceString, cssVar, en, getAnchorTreeItems, getSortDuplicateSortableIdError, getSortHeaderMissingIdError, getSortHeaderNotContainedWithinSortError, getSortInvalidDirectionError, handlePixel, isString, isTemplateRef, isTimePickerModel, isUndefined, last, observeMutationOn, observeResizeOn, publishRef, rgbColor, rgbaColor, scrollIntoView, sleep, watchContentExist, zh };
11217
11582
  //# sourceMappingURL=alauda-ui.mjs.map