@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.
- package/alauda-ui.d.ts +3 -0
- package/button/button.types.d.ts +9 -0
- package/esm2020/accordion/accordion-item/accordion-item.component.mjs +3 -1
- package/esm2020/alauda-ui.mjs +4 -1
- package/esm2020/anchor/anchor.component.mjs +2 -1
- package/esm2020/back-top/back-top.component.mjs +4 -2
- package/esm2020/button/button.component.mjs +2 -1
- package/esm2020/button/button.types.mjs +10 -1
- package/esm2020/date-picker/calendar/constant.mjs +2 -1
- package/esm2020/date-picker/calendar/header/component.mjs +5 -1
- package/esm2020/date-picker/calendar/panel/picker-panel.mjs +5 -1
- package/esm2020/date-picker/calendar/range-picker-panel/component.mjs +3 -1
- package/esm2020/date-picker/calendar/util.mjs +2 -1
- package/esm2020/dialog/dialog-content/dialog-content.component.mjs +2 -1
- package/esm2020/dialog/dialog.service.mjs +2 -1
- package/esm2020/drawer/component/drawer.component.mjs +4 -1
- package/esm2020/drawer/component/helper-directives.mjs +5 -1
- package/esm2020/form/common-form.mjs +8 -1
- package/esm2020/icon/icon-register.service.mjs +2 -1
- package/esm2020/input/autosize.directive.mjs +7 -2
- package/esm2020/input/input.component.mjs +5 -1
- package/esm2020/input/search/search.component.mjs +2 -2
- package/esm2020/input/tags-input/tags-input.component.mjs +7 -2
- package/esm2020/message/message.config.mjs +6 -1
- package/esm2020/notification/notification.component.mjs +5 -1
- package/esm2020/paginator/paginator-intl.mjs +12 -1
- package/esm2020/paginator/paginator.component.mjs +9 -1
- package/esm2020/radio/radio-button/radio-button.component.mjs +2 -1
- package/esm2020/radio/radio-group/radio-group.component.mjs +4 -1
- package/esm2020/radio/radio.component.mjs +2 -1
- package/esm2020/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +3 -1
- package/esm2020/scrolling/fixed-size-table-virtual-scroll.directive.mjs +3 -1
- package/esm2020/scrolling/fixed-size-virtual-scroll.directive.mjs +2 -1
- package/esm2020/select/base-select.mjs +5 -2
- package/esm2020/select/multi-select/multi-select.component.mjs +4 -2
- package/esm2020/select/select.component.mjs +2 -1
- package/esm2020/select/validators.mjs +6 -2
- package/esm2020/sort/sort-errors.mjs +5 -1
- package/esm2020/sort/sort-header.component.mjs +5 -1
- package/esm2020/sort/sort.directive.mjs +2 -1
- package/esm2020/steps/steps.component.mjs +5 -1
- package/esm2020/table/table-cell-def.directive.mjs +5 -1
- package/esm2020/table/table-cell.directive.mjs +3 -1
- package/esm2020/table/table-column-def.directive.mjs +7 -1
- package/esm2020/table/table-header-cell-def.directive.mjs +5 -1
- package/esm2020/table/table-header-cell.directive.mjs +3 -1
- package/esm2020/table/table-header-row-def.directive.mjs +5 -1
- package/esm2020/table/table-header-row.component.mjs +2 -1
- package/esm2020/table/table-row-def.directive.mjs +6 -1
- package/esm2020/table/table-row.component.mjs +2 -1
- package/esm2020/table/table-scroll.directive.mjs +2 -1
- package/esm2020/table/table.component.mjs +4 -1
- package/esm2020/tabs/tab-body.component.mjs +19 -1
- package/esm2020/tabs/tab-context.service.mjs +4 -1
- package/esm2020/tabs/tab-group.component.mjs +46 -1
- package/esm2020/tabs/tab-header-active-indicator.component.mjs +10 -1
- package/esm2020/tabs/tab-header.component.mjs +106 -3
- package/esm2020/tabs/tab.component.mjs +15 -1
- package/esm2020/tabs/tabs.types.mjs +4 -1
- package/esm2020/tag/tag.component.mjs +2 -1
- package/esm2020/time-picker/panel/panel.component.mjs +3 -1
- package/esm2020/tooltip/tooltip-intl.mjs +7 -1
- package/esm2020/tree-select/tree-select.component.mjs +2 -1
- package/esm2020/types.mjs +4 -1
- package/esm2020/utils/bem.mjs +2 -1
- package/esm2020/utils/coercion.mjs +5 -1
- package/fesm2015/alauda-ui.mjs +375 -10
- package/fesm2015/alauda-ui.mjs.map +1 -1
- package/fesm2020/alauda-ui.mjs +375 -10
- package/fesm2020/alauda-ui.mjs.map +1 -1
- package/form/common-form.d.ts +7 -0
- package/input/autosize.directive.d.ts +3 -0
- package/input/input.component.d.ts +3 -0
- package/message/message.config.d.ts +20 -0
- package/notification/notification.component.d.ts +4 -0
- package/package.json +2 -3
- package/paginator/paginator-intl.d.ts +9 -0
- package/paginator/paginator.component.d.ts +14 -0
- package/radio/radio-group/radio-group.component.d.ts +3 -0
- package/select/base-select.d.ts +3 -0
- package/sort/sort-errors.d.ts +4 -0
- package/steps/steps.component.d.ts +3 -0
- package/steps/types.d.ts +3 -0
- package/table/table-cell-def.directive.d.ts +4 -0
- package/table/table-cell.directive.d.ts +1 -0
- package/table/table-column-def.directive.d.ts +4 -0
- package/table/table-header-cell-def.directive.d.ts +4 -0
- package/table/table-header-cell.directive.d.ts +1 -0
- package/table/table-header-row-def.directive.d.ts +4 -0
- package/table/table-header-row.component.d.ts +1 -0
- package/table/table-row-def.directive.d.ts +5 -0
- package/table/table-row.component.d.ts +1 -0
- package/tabs/tab-body.component.d.ts +16 -0
- package/tabs/tab-context.service.d.ts +3 -0
- package/tabs/tab-group.component.d.ts +28 -0
- package/tabs/tab-header-active-indicator.component.d.ts +9 -0
- package/tabs/tab-header.component.d.ts +83 -0
- package/tabs/tab.component.d.ts +18 -0
- package/tabs/tabs.types.d.ts +3 -0
- package/theme/_theme-preset.scss +2 -0
- package/tooltip/tooltip-intl.d.ts +4 -0
- package/types.d.ts +3 -0
package/fesm2015/alauda-ui.mjs
CHANGED
|
@@ -60,6 +60,9 @@ const ComponentSize = {
|
|
|
60
60
|
Medium: 'medium',
|
|
61
61
|
Small: 'small',
|
|
62
62
|
Mini: 'mini',
|
|
63
|
+
/**
|
|
64
|
+
* represents default internally, @link https://github.com/angular/vscode-ng-language-service/issues/1147
|
|
65
|
+
*/
|
|
63
66
|
Empty: '',
|
|
64
67
|
};
|
|
65
68
|
|
|
@@ -71,8 +74,17 @@ const ButtonType = {
|
|
|
71
74
|
Danger: 'danger',
|
|
72
75
|
Text: 'text',
|
|
73
76
|
Inline: 'inline',
|
|
77
|
+
/**
|
|
78
|
+
* represents default internally, @link https://github.com/angular/vscode-ng-language-service/issues/1147
|
|
79
|
+
*/
|
|
74
80
|
Empty: '',
|
|
81
|
+
/**
|
|
82
|
+
* @deprecated use `ButtonType.Danger` instead
|
|
83
|
+
*/
|
|
75
84
|
Error: 'danger',
|
|
85
|
+
/**
|
|
86
|
+
* @deprecated use `ButtonType.Default` instead
|
|
87
|
+
*/
|
|
76
88
|
Info: 'default',
|
|
77
89
|
};
|
|
78
90
|
|
|
@@ -82,6 +94,7 @@ function sleep(ms = 0) {
|
|
|
82
94
|
});
|
|
83
95
|
}
|
|
84
96
|
|
|
97
|
+
// Experimental bem classname helper
|
|
85
98
|
class Bem {
|
|
86
99
|
constructor(namespace) {
|
|
87
100
|
this.namespace = namespace;
|
|
@@ -127,6 +140,7 @@ function buildBem(namespace) {
|
|
|
127
140
|
|
|
128
141
|
function coerceString(val) {
|
|
129
142
|
var _a;
|
|
143
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
130
144
|
return val == null ? '' : (_a = val === null || val === void 0 ? void 0 : val.toString()) !== null && _a !== void 0 ? _a : '';
|
|
131
145
|
}
|
|
132
146
|
function coerceAttrBoolean(val) {
|
|
@@ -136,6 +150,9 @@ function coerceNumber(val, fallbackValue = 0) {
|
|
|
136
150
|
return _isNumberValue(val) ? Number(val) : fallbackValue;
|
|
137
151
|
}
|
|
138
152
|
function _isNumberValue(value) {
|
|
153
|
+
// parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,
|
|
154
|
+
// and other non-number values as NaN, where Number just uses 0) but it considers the string
|
|
155
|
+
// '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.
|
|
139
156
|
return !isNaN(parseFloat(value)) && !isNaN(Number(value));
|
|
140
157
|
}
|
|
141
158
|
|
|
@@ -268,6 +285,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
268
285
|
type: Optional
|
|
269
286
|
}] }];
|
|
270
287
|
} });
|
|
288
|
+
// eslint-disable-next-line sonar/function-name
|
|
271
289
|
function ICON_REGISTER_PROVIDER_FACTORY(parentRegister, document, httpClient) {
|
|
272
290
|
return parentRegister || new IconRegisterService(document, httpClient);
|
|
273
291
|
}
|
|
@@ -495,6 +513,7 @@ class ButtonComponent {
|
|
|
495
513
|
return this._size;
|
|
496
514
|
}
|
|
497
515
|
set size(val) {
|
|
516
|
+
// when change from other size to default
|
|
498
517
|
if (!val) {
|
|
499
518
|
val = ComponentSize.Medium;
|
|
500
519
|
}
|
|
@@ -650,12 +669,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
650
669
|
}]
|
|
651
670
|
}] });
|
|
652
671
|
class AccordionItemComponent extends CdkAccordionItem {
|
|
672
|
+
// eslint-disable-next-line @typescript-eslint/no-useless-constructor
|
|
653
673
|
constructor(accordion, cdr, uniqueSelectionDispatcher) {
|
|
654
674
|
super(accordion, cdr, uniqueSelectionDispatcher);
|
|
655
675
|
this.background = true;
|
|
656
676
|
}
|
|
657
677
|
ngAfterContentInit() {
|
|
658
678
|
if (this._lazyContentTpl) {
|
|
679
|
+
// Render the content as soon as the accordion becomes open.
|
|
659
680
|
this.opened
|
|
660
681
|
.pipe(startWith(null), filter(() => !!this.expanded), take(1))
|
|
661
682
|
.subscribe(() => {
|
|
@@ -944,6 +965,7 @@ class AnchorTreeComponent extends AnchorDirectiveChild {
|
|
|
944
965
|
watchLabelsChange() {
|
|
945
966
|
this.depose$$.next();
|
|
946
967
|
const cdr = this.injector.get(ChangeDetectorRef);
|
|
968
|
+
// FIXME: Is there any better way to achieve this?
|
|
947
969
|
combineLatest(this.treeItems.map(({ labelChange }) => labelChange).filter(Boolean))
|
|
948
970
|
.pipe(debounceTime(0), takeUntil(this.depose$$))
|
|
949
971
|
.subscribe(() => cdr.markForCheck());
|
|
@@ -1661,6 +1683,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
1661
1683
|
args: ['auiTooltipActive']
|
|
1662
1684
|
}] } });
|
|
1663
1685
|
|
|
1686
|
+
/**
|
|
1687
|
+
* Texts to render on the code editor.
|
|
1688
|
+
*/
|
|
1664
1689
|
class TooltipCopyIntl {
|
|
1665
1690
|
constructor() {
|
|
1666
1691
|
this.copyTip = 'Click to copy';
|
|
@@ -1673,10 +1698,13 @@ TooltipCopyIntl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", vers
|
|
|
1673
1698
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TooltipCopyIntl, decorators: [{
|
|
1674
1699
|
type: Injectable
|
|
1675
1700
|
}] });
|
|
1701
|
+
// eslint-disable-next-line sonar/function-name
|
|
1676
1702
|
function TOOLTIP_COPY_INTL_PROVIDER_FACTORY(parentIntl) {
|
|
1677
1703
|
return parentIntl || new TooltipCopyIntl();
|
|
1678
1704
|
}
|
|
1705
|
+
/** @docs-private */
|
|
1679
1706
|
const TOOLTIP_COPY_INTL_INTL_PROVIDER = {
|
|
1707
|
+
// If there is already an CodeEditorIntl available, use that. Otherwise, provide a new one.
|
|
1680
1708
|
provide: TooltipCopyIntl,
|
|
1681
1709
|
deps: [[new Optional(), new SkipSelf(), TooltipCopyIntl]],
|
|
1682
1710
|
useFactory: TOOLTIP_COPY_INTL_PROVIDER_FACTORY,
|
|
@@ -2135,7 +2163,9 @@ class BackTopComponent {
|
|
|
2135
2163
|
this.target$$ = new BehaviorSubject(this.target);
|
|
2136
2164
|
this.visibilityHeight$$ = new BehaviorSubject(this.visibilityHeight);
|
|
2137
2165
|
this.isDisplayed$ = combineLatest([
|
|
2138
|
-
this.target$$.asObservable().pipe(map(target => this.getTarget(target)), switchMap(target => fromEvent(target, 'scroll').pipe(
|
|
2166
|
+
this.target$$.asObservable().pipe(map(target => this.getTarget(target)), switchMap(target => fromEvent(target, 'scroll').pipe(
|
|
2167
|
+
// use default scheduler
|
|
2168
|
+
throttleTime(50, undefined, { leading: true, trailing: true }), map(() => this.getTargetScrollTop(target))))),
|
|
2139
2169
|
this.visibilityHeight$$,
|
|
2140
2170
|
]).pipe(map(([scrollTop, visibilityHeight]) => scrollTop >= visibilityHeight), distinctUntilChanged());
|
|
2141
2171
|
}
|
|
@@ -2402,6 +2432,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
2402
2432
|
}]
|
|
2403
2433
|
}] });
|
|
2404
2434
|
|
|
2435
|
+
/**
|
|
2436
|
+
* form control 内部不保持 value 属性,当不使用 ngModel 时可以通过 [(value)] 实现双向绑定;
|
|
2437
|
+
* 也可以分别传入 value 和 监听 valueChange 事件以实现阻断用户操作的功能。
|
|
2438
|
+
*/
|
|
2405
2439
|
class CommonFormControl {
|
|
2406
2440
|
constructor(cdr) {
|
|
2407
2441
|
this.cdr = cdr;
|
|
@@ -2480,6 +2514,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
2480
2514
|
}], valueChange: [{
|
|
2481
2515
|
type: Output
|
|
2482
2516
|
}] } });
|
|
2517
|
+
/**
|
|
2518
|
+
* @deprecated use {@link CommonFormControl} instead
|
|
2519
|
+
*/
|
|
2483
2520
|
const CommonForm = CommonFormControl;
|
|
2484
2521
|
|
|
2485
2522
|
const LabelPosition = {
|
|
@@ -3008,6 +3045,7 @@ const YEAR = 'year';
|
|
|
3008
3045
|
const HOUR = 'hour';
|
|
3009
3046
|
const MINUTE = 'minute';
|
|
3010
3047
|
const SECOND = 'second';
|
|
3048
|
+
// 根据日期类型,分为年,月,日
|
|
3011
3049
|
var DatePickerType;
|
|
3012
3050
|
(function (DatePickerType) {
|
|
3013
3051
|
DatePickerType["Day"] = "date";
|
|
@@ -3060,6 +3098,7 @@ function getDatePanelIterable(date, navRange, weekStartDay) {
|
|
|
3060
3098
|
counts = YEAR_PANEL_COLUMN_COUNT * YEAR_PANEL_ROW_COUNT;
|
|
3061
3099
|
break;
|
|
3062
3100
|
}
|
|
3101
|
+
// No default
|
|
3063
3102
|
}
|
|
3064
3103
|
let i = 0;
|
|
3065
3104
|
return {
|
|
@@ -3286,18 +3325,22 @@ class CalendarHeaderComponent {
|
|
|
3286
3325
|
get headerRange() {
|
|
3287
3326
|
return calcRangeValue(this.dateNavRange, this.anchor);
|
|
3288
3327
|
}
|
|
3328
|
+
// maxAvail > current date :right btn hide
|
|
3329
|
+
// minAvail > current date :left btn hide
|
|
3289
3330
|
shouldShowNav(type, side) {
|
|
3290
3331
|
var _a;
|
|
3291
3332
|
const availValue = (_a = (side === Side.Left ? this._minAvail : this._maxAvail)) === null || _a === void 0 ? void 0 : _a.clone();
|
|
3292
3333
|
if (!availValue) {
|
|
3293
3334
|
return true;
|
|
3294
3335
|
}
|
|
3336
|
+
// 对于年的判别,2014-5-1至2015-6-1日,仍当展示按钮
|
|
3295
3337
|
const constrainDate = [DateNavRange.Month, DateNavRange.Year].includes(type)
|
|
3296
3338
|
? availValue.add(side === Side.Left ? 1 : -1, type)
|
|
3297
3339
|
: availValue;
|
|
3298
3340
|
return (this.compareNavValue(type, constrainDate, this.anchor) ===
|
|
3299
3341
|
(side === Side.Left ? -1 : 1));
|
|
3300
3342
|
}
|
|
3343
|
+
// @return isBetween|isEqual:0, isBefore:-1,isAfter:1
|
|
3301
3344
|
compareNavValue(type, constrain, anchor) {
|
|
3302
3345
|
const range = calcRangeValue(type, anchor);
|
|
3303
3346
|
const constrainValue = constrain;
|
|
@@ -3387,9 +3430,12 @@ class PickerPanelComponent {
|
|
|
3387
3430
|
return composeDisabledDateFn(date => this.minDate && date.isBefore(this.minDate), date => this.maxDate && date.isAfter(this.maxDate), this.disabledDate);
|
|
3388
3431
|
}
|
|
3389
3432
|
ngOnChanges() {
|
|
3433
|
+
// 如果 dateValue 是一个数组,必然是同一个面板上,否则应当给与不同的面板不同的dateValue值
|
|
3390
3434
|
const headerRange = calcRangeValue(this.navRange, this.anchor);
|
|
3391
3435
|
this.renderPanelData(headerRange.start, this.navRange);
|
|
3392
3436
|
}
|
|
3437
|
+
// 根据当前数据,计算渲染表格
|
|
3438
|
+
// eslint-disable-next-line sonarjs/cognitive-complexity
|
|
3393
3439
|
renderPanelData(date, navRange) {
|
|
3394
3440
|
const value = [];
|
|
3395
3441
|
let colCounts = 0;
|
|
@@ -3414,6 +3460,7 @@ class PickerPanelComponent {
|
|
|
3414
3460
|
rowCounts = MONTH_PANEL_ROW_COUNT;
|
|
3415
3461
|
break;
|
|
3416
3462
|
}
|
|
3463
|
+
// No default
|
|
3417
3464
|
}
|
|
3418
3465
|
for (let k = 0; k < rowCounts; k++) {
|
|
3419
3466
|
const row = [];
|
|
@@ -3568,6 +3615,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
3568
3615
|
}]
|
|
3569
3616
|
}] });
|
|
3570
3617
|
|
|
3618
|
+
/* eslint-disable sonarjs/no-duplicate-string */
|
|
3571
3619
|
class InputComponent {
|
|
3572
3620
|
constructor(elementRef, renderer) {
|
|
3573
3621
|
this.elementRef = elementRef;
|
|
@@ -3575,6 +3623,9 @@ class InputComponent {
|
|
|
3575
3623
|
this._size = ComponentSize.Medium;
|
|
3576
3624
|
this._disabled = false;
|
|
3577
3625
|
this.size$ = new BehaviorSubject(this.size);
|
|
3626
|
+
/**
|
|
3627
|
+
* workaround for @link https://github.com/microsoft/TypeScript/pull/42425
|
|
3628
|
+
*/
|
|
3578
3629
|
this.disabled$ = new BehaviorSubject(this.disabled);
|
|
3579
3630
|
this.renderer.addClass(this.elementRef.nativeElement, 'aui-input');
|
|
3580
3631
|
this.renderer.addClass(this.elementRef.nativeElement, 'aui-input--' + this.size);
|
|
@@ -3676,6 +3727,7 @@ class TimePickerPanelComponent extends CommonFormControl {
|
|
|
3676
3727
|
this.ComponentSize = ComponentSize;
|
|
3677
3728
|
this.bem = bem$4;
|
|
3678
3729
|
this.enabledColumns = 0;
|
|
3730
|
+
// 用于控制初次滚动,是否展示滚动动画效果
|
|
3679
3731
|
this.firstScrolled = false;
|
|
3680
3732
|
this.model$.subscribe(_ => {
|
|
3681
3733
|
this.cdr.markForCheck();
|
|
@@ -3793,6 +3845,7 @@ class TimePickerPanelComponent extends CommonFormControl {
|
|
|
3793
3845
|
}
|
|
3794
3846
|
else {
|
|
3795
3847
|
const difference = targetOffset - currentTop;
|
|
3848
|
+
// 每个tick滚动距离
|
|
3796
3849
|
const perTick = (difference / duration) * 10;
|
|
3797
3850
|
requestAnimationFrame(() => {
|
|
3798
3851
|
element.scrollTop = currentTop + perTick;
|
|
@@ -4165,6 +4218,7 @@ class DateRangePickerPanelComponent extends CommonFormControl {
|
|
|
4165
4218
|
this.FOOTER_DATE_FORMAT = 'YYYY-MM-dd';
|
|
4166
4219
|
this.leftAnchor = dayjs();
|
|
4167
4220
|
this.rightAnchor = dayjs().add(1, MONTH);
|
|
4221
|
+
// 用于存放 range data 序列,数量为 2 时清除
|
|
4168
4222
|
this.rangeValue = [];
|
|
4169
4223
|
this.leftDisabledTimeFn = this.getDisabledTimeCachedFn(Side.Left);
|
|
4170
4224
|
this.rightDisabledTimeFn = this.getDisabledTimeCachedFn(Side.Right);
|
|
@@ -4194,6 +4248,7 @@ class DateRangePickerPanelComponent extends CommonFormControl {
|
|
|
4194
4248
|
this.rightDateRange = type;
|
|
4195
4249
|
}
|
|
4196
4250
|
}
|
|
4251
|
+
// range 组件范围受控
|
|
4197
4252
|
getDateDisabledFn(side, constrainValue) {
|
|
4198
4253
|
return composeDisabledDateFn((date, navRange) => {
|
|
4199
4254
|
if (navRange === DateNavRange.Month) {
|
|
@@ -4445,6 +4500,9 @@ const DEFAULT_VALUE = {
|
|
|
4445
4500
|
minRows: 3,
|
|
4446
4501
|
maxRows: 6,
|
|
4447
4502
|
};
|
|
4503
|
+
/**
|
|
4504
|
+
* Directive to automatically resize a textarea to fit its content.
|
|
4505
|
+
*/
|
|
4448
4506
|
class AutosizeDirective {
|
|
4449
4507
|
constructor(elRef, ngControl) {
|
|
4450
4508
|
this.elRef = elRef;
|
|
@@ -4483,7 +4541,9 @@ AutosizeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", vers
|
|
|
4483
4541
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AutosizeDirective, decorators: [{
|
|
4484
4542
|
type: Directive,
|
|
4485
4543
|
args: [{
|
|
4486
|
-
selector:
|
|
4544
|
+
selector:
|
|
4545
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
4546
|
+
'textarea[autosize][ngModel],textarea[autosize][formControl],textarea[autosize][formControlName]',
|
|
4487
4547
|
exportAs: 'TextareaAutosize',
|
|
4488
4548
|
}]
|
|
4489
4549
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i4.NgControl }]; }, propDecorators: { autoSize: [{
|
|
@@ -4583,6 +4643,7 @@ class TagComponent {
|
|
|
4583
4643
|
get rootClass() {
|
|
4584
4644
|
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' : ''}`;
|
|
4585
4645
|
}
|
|
4646
|
+
// 只有常规标签支持单击样式
|
|
4586
4647
|
get isNormalTag() {
|
|
4587
4648
|
return !this.solid && !this.closeable && !this.invalid;
|
|
4588
4649
|
}
|
|
@@ -4774,10 +4835,10 @@ class SearchComponent {
|
|
|
4774
4835
|
}
|
|
4775
4836
|
}
|
|
4776
4837
|
SearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: SearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4777
|
-
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 });
|
|
4838
|
+
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 });
|
|
4778
4839
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: SearchComponent, decorators: [{
|
|
4779
4840
|
type: Component,
|
|
4780
|
-
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"] }]
|
|
4841
|
+
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"] }]
|
|
4781
4842
|
}], propDecorators: { size: [{
|
|
4782
4843
|
type: Input
|
|
4783
4844
|
}], searchButton: [{
|
|
@@ -4855,12 +4916,13 @@ class TagsInputComponent extends CommonFormControl {
|
|
|
4855
4916
|
this.bem = buildBem('aui-tags-input');
|
|
4856
4917
|
this.placeholder = '';
|
|
4857
4918
|
this.size = ComponentSize.Medium;
|
|
4919
|
+
// TODO: implement this feature
|
|
4858
4920
|
this.clearable = false;
|
|
4859
4921
|
this.allowRepeat = false;
|
|
4860
4922
|
this.allowEmpty = false;
|
|
4861
4923
|
this.readonlyTags = [];
|
|
4862
4924
|
this.maxRowCount = 0;
|
|
4863
|
-
this.customRowHeight = 0;
|
|
4925
|
+
this.customRowHeight = 0; // 0: use default style const value, > 1: for ```tagClassFn``` maybe affect lineHeight
|
|
4864
4926
|
this.withMaxRowCount = createWithMaxRowCount(this);
|
|
4865
4927
|
this.focused = false;
|
|
4866
4928
|
this.model = [];
|
|
@@ -4930,6 +4992,7 @@ class TagsInputComponent extends CommonFormControl {
|
|
|
4930
4992
|
onInput() {
|
|
4931
4993
|
var _a, _b, _c;
|
|
4932
4994
|
const value = this.inputRef.nativeElement.value;
|
|
4995
|
+
// make sure value sync to span element
|
|
4933
4996
|
requestAnimationFrame(() => {
|
|
4934
4997
|
if (!value.length) {
|
|
4935
4998
|
this.renderer.removeStyle(this.inputRef.nativeElement, 'width');
|
|
@@ -4991,11 +5054,13 @@ class TagsInputComponent extends CommonFormControl {
|
|
|
4991
5054
|
return;
|
|
4992
5055
|
}
|
|
4993
5056
|
this.inputControl.setValue(this.inputRef.nativeElement.value);
|
|
5057
|
+
// inputControl 自身的状态为同步计算
|
|
4994
5058
|
this.syncControlStatus();
|
|
4995
5059
|
if (this.inputControl.valid) {
|
|
4996
5060
|
this.emitValue(this.model.concat(value));
|
|
4997
5061
|
}
|
|
4998
5062
|
else if (this.inputControl.pending) {
|
|
5063
|
+
// PENDING 后只会变为 VALID 或 INVALID 的决议状态
|
|
4999
5064
|
this.inputControl.statusChanges.pipe(take(1)).subscribe(_ => {
|
|
5000
5065
|
this.syncControlStatus();
|
|
5001
5066
|
if (this.inputControl.valid) {
|
|
@@ -5019,6 +5084,7 @@ class TagsInputComponent extends CommonFormControl {
|
|
|
5019
5084
|
(_d = this.controlContainer) === null || _d === void 0 ? void 0 : _d.control.setErrors(Object.assign(Object.assign({}, (_f = (_e = this.controlContainer) === null || _e === void 0 ? void 0 : _e.control) === null || _f === void 0 ? void 0 : _f.errors), { [INPUT_ERROR_KEY]: errors }));
|
|
5020
5085
|
}
|
|
5021
5086
|
else if (disabled) {
|
|
5087
|
+
// 与当前 input 校验脱离
|
|
5022
5088
|
(_h = (_g = this.controlContainer) === null || _g === void 0 ? void 0 : _g.control) === null || _h === void 0 ? void 0 : _h.updateValueAndValidity();
|
|
5023
5089
|
}
|
|
5024
5090
|
}
|
|
@@ -5758,6 +5824,7 @@ class DialogService {
|
|
|
5758
5824
|
resolve(action.result);
|
|
5759
5825
|
}
|
|
5760
5826
|
else {
|
|
5827
|
+
// eslint-disable-next-line prefer-promise-reject-errors
|
|
5761
5828
|
reject(action.result);
|
|
5762
5829
|
}
|
|
5763
5830
|
});
|
|
@@ -5881,6 +5948,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
5881
5948
|
}] } });
|
|
5882
5949
|
|
|
5883
5950
|
class DialogContentComponent extends CdkScrollable {
|
|
5951
|
+
// eslint-disable-next-line @typescript-eslint/no-useless-constructor
|
|
5884
5952
|
constructor(elementRef, scrollDispatcher, ngZone, dir) {
|
|
5885
5953
|
super(elementRef, scrollDispatcher, ngZone, dir);
|
|
5886
5954
|
this.bem = buildBem('aui-dialog');
|
|
@@ -6001,6 +6069,10 @@ var DrawerSize;
|
|
|
6001
6069
|
class DrawerRef {
|
|
6002
6070
|
}
|
|
6003
6071
|
|
|
6072
|
+
/**
|
|
6073
|
+
* @packageDocumentation
|
|
6074
|
+
* @module page-guard
|
|
6075
|
+
*/
|
|
6004
6076
|
class DrawerHeaderDirective {
|
|
6005
6077
|
}
|
|
6006
6078
|
DrawerHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DrawerHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -6093,6 +6165,7 @@ class DrawerComponent extends DrawerRef {
|
|
|
6093
6165
|
this.open();
|
|
6094
6166
|
}
|
|
6095
6167
|
else if (!visible.firstChange) {
|
|
6168
|
+
// 不希望默认关闭时,drawer 渲染后就触发 close 事件
|
|
6096
6169
|
this.dispose();
|
|
6097
6170
|
}
|
|
6098
6171
|
}
|
|
@@ -6115,6 +6188,8 @@ class DrawerComponent extends DrawerRef {
|
|
|
6115
6188
|
.pipe(takeUntil(this.onDestroy$))
|
|
6116
6189
|
.subscribe(event => {
|
|
6117
6190
|
var _a, _b;
|
|
6191
|
+
// 判断鼠标点击事件的 target 是否为 overlay-container 的子节点,如果是,则不关闭 drawer。
|
|
6192
|
+
// 为了避免点击 drawer 里的 tooltip 后 drawer 被关闭。
|
|
6118
6193
|
if (this.visible &&
|
|
6119
6194
|
this.hideOnClickOutside &&
|
|
6120
6195
|
event.target instanceof Node &&
|
|
@@ -6764,6 +6839,11 @@ var MessageType;
|
|
|
6764
6839
|
MessageType["Warning"] = "warning";
|
|
6765
6840
|
MessageType["Info"] = "info";
|
|
6766
6841
|
})(MessageType || (MessageType = {}));
|
|
6842
|
+
/**
|
|
6843
|
+
* messageOptions: contains Basic configuration
|
|
6844
|
+
* Just for some containers like Message-Container
|
|
6845
|
+
* Detailed document: http://confluence.alaudatech.com/pages/viewpage.action?pageId=23383163
|
|
6846
|
+
*/
|
|
6767
6847
|
class MessageConfig {
|
|
6768
6848
|
}
|
|
6769
6849
|
const MESSAGE_CONFIG = new InjectionToken('MESSAGE_CONFIG');
|
|
@@ -7049,6 +7129,10 @@ class NotificationComponent extends MessageComponent {
|
|
|
7049
7129
|
});
|
|
7050
7130
|
}
|
|
7051
7131
|
}
|
|
7132
|
+
/**
|
|
7133
|
+
* Attach a TemplatePortal as content to this modal container.
|
|
7134
|
+
* @param portal Portal to be attached as the modal content.
|
|
7135
|
+
*/
|
|
7052
7136
|
attachTemplatePortal(portal) {
|
|
7053
7137
|
return this.portalOutlet.attachTemplatePortal(portal);
|
|
7054
7138
|
}
|
|
@@ -7142,9 +7226,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
7142
7226
|
}]
|
|
7143
7227
|
}] });
|
|
7144
7228
|
|
|
7229
|
+
/**
|
|
7230
|
+
* To modify the labels and text displayed, create a new instance of MatPaginatorIntl and
|
|
7231
|
+
* include it in a custom provider
|
|
7232
|
+
*/
|
|
7145
7233
|
class PaginatorIntl {
|
|
7146
7234
|
constructor() {
|
|
7235
|
+
/**
|
|
7236
|
+
* Stream that emits whenever the labels here are changed. Use this to notify
|
|
7237
|
+
* components if the labels have changed after initialization.
|
|
7238
|
+
*/
|
|
7147
7239
|
this.changes = new Subject();
|
|
7240
|
+
/** A label for the page size selector. */
|
|
7148
7241
|
this.itemsPerPageLabel = 'perPage';
|
|
7149
7242
|
this.jumperLabelPrefix = 'Goto';
|
|
7150
7243
|
this.jumperLabelSuffix = '';
|
|
@@ -7156,10 +7249,12 @@ PaginatorIntl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", versio
|
|
|
7156
7249
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: PaginatorIntl, decorators: [{
|
|
7157
7250
|
type: Injectable
|
|
7158
7251
|
}] });
|
|
7252
|
+
// eslint-disable-next-line sonar/function-name
|
|
7159
7253
|
function PAGINATOR_INTL_PROVIDER_FACTORY(parentIntl) {
|
|
7160
7254
|
return parentIntl || new PaginatorIntl();
|
|
7161
7255
|
}
|
|
7162
7256
|
const PAGINATOR_INTL_PROVIDER = {
|
|
7257
|
+
// If there is already an PaginatorIntl available, use that. Otherwise, provide a new one.
|
|
7163
7258
|
provide: PaginatorIntl,
|
|
7164
7259
|
deps: [[new Optional(), new SkipSelf(), PaginatorIntl]],
|
|
7165
7260
|
useFactory: PAGINATOR_INTL_PROVIDER_FACTORY,
|
|
@@ -7398,6 +7493,7 @@ class BaseSelect extends CommonFormControl {
|
|
|
7398
7493
|
this.customOptions.changes.pipe(startWith(this.customOptions)),
|
|
7399
7494
|
this.contentOptions.changes.pipe(startWith(this.contentOptions)),
|
|
7400
7495
|
]).pipe(map(([customOptions, contentOptions]) => [...customOptions.toArray(), ...contentOptions.toArray()]), publishRef());
|
|
7496
|
+
// support dynamic options loading on filtering
|
|
7401
7497
|
this.allOptions$.pipe(takeUntil(this.destroy$$)).subscribe(() => {
|
|
7402
7498
|
if (this.opened) {
|
|
7403
7499
|
requestAnimationFrame(() => {
|
|
@@ -7406,7 +7502,9 @@ class BaseSelect extends CommonFormControl {
|
|
|
7406
7502
|
}
|
|
7407
7503
|
});
|
|
7408
7504
|
this.hasMatchedOption$ = combineLatest([
|
|
7409
|
-
this.allOptions$.pipe(map(customOptions => customOptions.filter(option => option !== this.inputtingOption)),
|
|
7505
|
+
this.allOptions$.pipe(map(customOptions => customOptions.filter(option => option !== this.inputtingOption)),
|
|
7506
|
+
// eslint-disable-next-line sonarjs/no-identical-functions
|
|
7507
|
+
switchMap(options => options.length > 0
|
|
7410
7508
|
? combineLatest(options.map(option => option.value$))
|
|
7411
7509
|
: of([]))),
|
|
7412
7510
|
this.filterString$,
|
|
@@ -7657,6 +7755,7 @@ class SelectComponent extends BaseSelect {
|
|
|
7657
7755
|
label: option.label ||
|
|
7658
7756
|
((_a = this.labelFn) === null || _a === void 0 ? void 0 : _a.call(this, option.value)) ||
|
|
7659
7757
|
coerceString(this.trackFn(option.value)),
|
|
7758
|
+
// https://github.com/angular/angular/issues/24515
|
|
7660
7759
|
labelContext: Object.assign({}, option.labelContext),
|
|
7661
7760
|
}
|
|
7662
7761
|
: {
|
|
@@ -7716,6 +7815,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
7716
7815
|
args: ['inputRef', { static: true }]
|
|
7717
7816
|
}] } });
|
|
7718
7817
|
|
|
7818
|
+
/**
|
|
7819
|
+
* Change event object that is emitted when the user selects a
|
|
7820
|
+
* different page size or navigates to another page.
|
|
7821
|
+
* @deprecated use Output events directly instead
|
|
7822
|
+
*/
|
|
7719
7823
|
class PageEvent {
|
|
7720
7824
|
}
|
|
7721
7825
|
class PaginatorComponent {
|
|
@@ -7739,6 +7843,9 @@ class PaginatorComponent {
|
|
|
7739
7843
|
set pageIndex(val) {
|
|
7740
7844
|
this.currentPage = val + 1;
|
|
7741
7845
|
}
|
|
7846
|
+
/**
|
|
7847
|
+
* @deprecated use `total` instead
|
|
7848
|
+
*/
|
|
7742
7849
|
get length() {
|
|
7743
7850
|
return this.total;
|
|
7744
7851
|
}
|
|
@@ -7841,7 +7948,7 @@ class MultiSelectComponent extends BaseSelect {
|
|
|
7841
7948
|
this.model = [];
|
|
7842
7949
|
this.values$ = this.model$;
|
|
7843
7950
|
this.maxRowCount = 0;
|
|
7844
|
-
this.customRowHeight = 0;
|
|
7951
|
+
this.customRowHeight = 0; // 0: use default style const value, > 1: for ```tagClassFn``` maybe affect lineHeight
|
|
7845
7952
|
this.inputValue = '';
|
|
7846
7953
|
this.withMaxRowCount = createWithMaxRowCount(this);
|
|
7847
7954
|
this.focused = false;
|
|
@@ -7912,6 +8019,7 @@ class MultiSelectComponent extends BaseSelect {
|
|
|
7912
8019
|
value,
|
|
7913
8020
|
};
|
|
7914
8021
|
})
|
|
8022
|
+
// sort disabled options as first
|
|
7915
8023
|
.sort((a, b) => {
|
|
7916
8024
|
if (a.disabled) {
|
|
7917
8025
|
return -1;
|
|
@@ -8059,6 +8167,7 @@ class MultiSelectComponent extends BaseSelect {
|
|
|
8059
8167
|
this.setInputWidth();
|
|
8060
8168
|
this.filterString = '';
|
|
8061
8169
|
}
|
|
8170
|
+
// calculate input element width according to its value
|
|
8062
8171
|
setInputWidth() {
|
|
8063
8172
|
const { value } = this.inputRef.nativeElement;
|
|
8064
8173
|
if (!value.length) {
|
|
@@ -8154,6 +8263,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
8154
8263
|
}]
|
|
8155
8264
|
}] });
|
|
8156
8265
|
|
|
8266
|
+
// @dynamic
|
|
8267
|
+
// eslint-disable-next-line @typescript-eslint/no-extraneous-class
|
|
8157
8268
|
class AuiSelectValidators {
|
|
8158
8269
|
static includes(options, trackFn = val => val) {
|
|
8159
8270
|
return (control) => options.some(option => trackFn(option) === trackFn(control.value))
|
|
@@ -8209,7 +8320,9 @@ IncludesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", vers
|
|
|
8209
8320
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: IncludesDirective, decorators: [{
|
|
8210
8321
|
type: Directive,
|
|
8211
8322
|
args: [{
|
|
8212
|
-
selector:
|
|
8323
|
+
selector:
|
|
8324
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
8325
|
+
'aui-select[ngModel][includes],aui-select[formControl][includes],aui-select[formControlName][includes]',
|
|
8213
8326
|
providers: [
|
|
8214
8327
|
{
|
|
8215
8328
|
provide: NG_VALIDATORS,
|
|
@@ -8330,6 +8443,9 @@ class RadioGroupComponent extends CommonFormControl {
|
|
|
8330
8443
|
set size(val) {
|
|
8331
8444
|
this.size$$.next(val);
|
|
8332
8445
|
}
|
|
8446
|
+
/**
|
|
8447
|
+
* @deprecated use `plain` instead
|
|
8448
|
+
*/
|
|
8333
8449
|
set isPlain(val) {
|
|
8334
8450
|
this.plain = val;
|
|
8335
8451
|
}
|
|
@@ -8440,6 +8556,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
8440
8556
|
}] } });
|
|
8441
8557
|
|
|
8442
8558
|
class RadioComponent extends BaseRadio {
|
|
8559
|
+
// eslint-disable-next-line @typescript-eslint/no-useless-constructor
|
|
8443
8560
|
constructor(radioGroup, focusMonitor, cdr) {
|
|
8444
8561
|
super(radioGroup, focusMonitor, cdr);
|
|
8445
8562
|
this.bem = buildBem('aui-radio');
|
|
@@ -8456,6 +8573,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
8456
8573
|
}], ctorParameters: function () { return [{ type: RadioGroupComponent }, { type: i2$1.FocusMonitor }, { type: i0.ChangeDetectorRef }]; } });
|
|
8457
8574
|
|
|
8458
8575
|
class RadioButtonComponent extends BaseRadio {
|
|
8576
|
+
// eslint-disable-next-line @typescript-eslint/no-useless-constructor
|
|
8459
8577
|
constructor(radioGroup, focusMonitor, cdr) {
|
|
8460
8578
|
super(radioGroup, focusMonitor, cdr);
|
|
8461
8579
|
this.bem = buildBem('aui-radio-button');
|
|
@@ -8529,10 +8647,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
8529
8647
|
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ElementRef }]; } });
|
|
8530
8648
|
|
|
8531
8649
|
class TableComponent extends CdkTable {
|
|
8650
|
+
// FIXME: workaround to override because it will break constructor if it is field, but why MatTable works?
|
|
8651
|
+
// @ts-ignore
|
|
8532
8652
|
get stickyCssClass() {
|
|
8533
8653
|
return 'aui-table-sticky';
|
|
8534
8654
|
}
|
|
8535
8655
|
set stickyCssClass(_) {
|
|
8656
|
+
// nothing
|
|
8536
8657
|
}
|
|
8537
8658
|
ngAfterContentInit() {
|
|
8538
8659
|
this._createPlaceholder();
|
|
@@ -8597,6 +8718,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
8597
8718
|
args: [TablePlaceholderDefDirective, { static: true }]
|
|
8598
8719
|
}] } });
|
|
8599
8720
|
|
|
8721
|
+
/**
|
|
8722
|
+
* Cell definition for the aui-table.
|
|
8723
|
+
* Captures the template of a column's data row cell as well as cell-specific properties.
|
|
8724
|
+
*/
|
|
8600
8725
|
class TableCellDefDirective extends CdkCellDef {
|
|
8601
8726
|
}
|
|
8602
8727
|
TableCellDefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TableCellDefDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -8735,6 +8860,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
8735
8860
|
}] } });
|
|
8736
8861
|
|
|
8737
8862
|
const bem$1 = buildBem('aui-table');
|
|
8863
|
+
/** Cell template container that adds the right classes and role. */
|
|
8738
8864
|
class TableCellDirective extends CdkCell {
|
|
8739
8865
|
constructor(columnDef, elementRef) {
|
|
8740
8866
|
super(columnDef, elementRef);
|
|
@@ -8747,6 +8873,7 @@ TableCellDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", ver
|
|
|
8747
8873
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TableCellDirective, decorators: [{
|
|
8748
8874
|
type: Directive,
|
|
8749
8875
|
args: [{
|
|
8876
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
8750
8877
|
selector: 'aui-table-cell',
|
|
8751
8878
|
host: {
|
|
8752
8879
|
class: 'aui-table__cell',
|
|
@@ -8758,7 +8885,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
8758
8885
|
type: Input
|
|
8759
8886
|
}] } });
|
|
8760
8887
|
|
|
8888
|
+
/**
|
|
8889
|
+
* Column definition for the aui-table.
|
|
8890
|
+
* Defines a set of cells available for a table column.
|
|
8891
|
+
*/
|
|
8761
8892
|
class TableColumnDefDirective extends CdkColumnDef {
|
|
8893
|
+
// Unique name for this column
|
|
8894
|
+
// Why it does not work in `inputs` property?
|
|
8762
8895
|
set auiTableColumnDef(value) {
|
|
8763
8896
|
this.name = value;
|
|
8764
8897
|
}
|
|
@@ -8786,6 +8919,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
8786
8919
|
type: Input
|
|
8787
8920
|
}] } });
|
|
8788
8921
|
|
|
8922
|
+
/**
|
|
8923
|
+
* Header cell definition for the aui-table.
|
|
8924
|
+
* Captures the template of a column's header cell and as well as cell-specific properties.
|
|
8925
|
+
*/
|
|
8789
8926
|
class TableHeaderCellDefDirective extends CdkHeaderCellDef {
|
|
8790
8927
|
}
|
|
8791
8928
|
TableHeaderCellDefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TableHeaderCellDefDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -8809,6 +8946,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
8809
8946
|
}] });
|
|
8810
8947
|
|
|
8811
8948
|
const bem = buildBem('aui-table');
|
|
8949
|
+
/** Header cell template container that adds the right classes and role. */
|
|
8812
8950
|
class TableHeaderCellDirective extends CdkHeaderCell {
|
|
8813
8951
|
constructor(columnDef, elementRef) {
|
|
8814
8952
|
super(columnDef, elementRef);
|
|
@@ -8820,6 +8958,7 @@ TableHeaderCellDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0
|
|
|
8820
8958
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TableHeaderCellDirective, decorators: [{
|
|
8821
8959
|
type: Directive,
|
|
8822
8960
|
args: [{
|
|
8961
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
8823
8962
|
selector: 'aui-table-header-cell',
|
|
8824
8963
|
host: {
|
|
8825
8964
|
class: 'aui-table__header-cell',
|
|
@@ -8828,6 +8967,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
8828
8967
|
}]
|
|
8829
8968
|
}], ctorParameters: function () { return [{ type: i1$3.CdkColumnDef }, { type: i0.ElementRef }]; } });
|
|
8830
8969
|
|
|
8970
|
+
/**
|
|
8971
|
+
* Header row definition for the aui-table.
|
|
8972
|
+
* Captures the header row's template and other header properties such as the columns to display.
|
|
8973
|
+
*/
|
|
8831
8974
|
class TableHeaderRowDefDirective extends CdkHeaderRowDef {
|
|
8832
8975
|
constructor() {
|
|
8833
8976
|
super(...arguments);
|
|
@@ -8860,6 +9003,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
8860
9003
|
args: ['auiTableHeaderRowDefSticky']
|
|
8861
9004
|
}] } });
|
|
8862
9005
|
|
|
9006
|
+
/** Header template container that contains the cell outlet. Adds the right class and role. */
|
|
8863
9007
|
class TableHeaderRowComponent extends CdkHeaderRow {
|
|
8864
9008
|
}
|
|
8865
9009
|
TableHeaderRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TableHeaderRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -8880,6 +9024,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
8880
9024
|
}]
|
|
8881
9025
|
}] });
|
|
8882
9026
|
|
|
9027
|
+
/**
|
|
9028
|
+
* Data row definition for the aui-table.
|
|
9029
|
+
* Captures the header row's template and other row properties such as the columns to display and
|
|
9030
|
+
* a when predicate that describes when this row should be used.
|
|
9031
|
+
*/
|
|
8883
9032
|
class TableRowDefDirective extends CdkRowDef {
|
|
8884
9033
|
constructor() {
|
|
8885
9034
|
super(...arguments);
|
|
@@ -8914,6 +9063,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
8914
9063
|
type: Input
|
|
8915
9064
|
}] } });
|
|
8916
9065
|
|
|
9066
|
+
/** Data row template container that contains the cell outlet. Adds the right class and role. */
|
|
8917
9067
|
class TableRowComponent extends CdkRow {
|
|
8918
9068
|
constructor(elRef) {
|
|
8919
9069
|
super();
|
|
@@ -9018,6 +9168,7 @@ class TableScrollShadowDirective {
|
|
|
9018
9168
|
const scrollTop = this.containerEl.scrollTop;
|
|
9019
9169
|
this.placeClassList(this.containerEl.classList, scrollTop > 0, HAS_TABLE_TOP_SHADOW);
|
|
9020
9170
|
this.placeClassList(this.containerEl.classList, scrollTop < scrollDis, HAS_TABLE_BOTTOM_SHADOW);
|
|
9171
|
+
// 兼容屏幕缩放是 sticky多列的样式问题
|
|
9021
9172
|
this.table.updateStickyColumnStyles();
|
|
9022
9173
|
}
|
|
9023
9174
|
mutateHorizontalScroll() {
|
|
@@ -9174,8 +9325,10 @@ class FixedSizeTableVirtualScrollStrategy {
|
|
|
9174
9325
|
this._updateContent();
|
|
9175
9326
|
}
|
|
9176
9327
|
onContentRendered() {
|
|
9328
|
+
// no-op
|
|
9177
9329
|
}
|
|
9178
9330
|
onRenderedOffsetChanged() {
|
|
9331
|
+
// no-op
|
|
9179
9332
|
}
|
|
9180
9333
|
scrollToIndex(index, behavior) {
|
|
9181
9334
|
if (!this.viewport || !this._rowHeight) {
|
|
@@ -9263,6 +9416,7 @@ class FixedSizeTableVirtualScrollDirective {
|
|
|
9263
9416
|
}
|
|
9264
9417
|
isStickyEnabled() {
|
|
9265
9418
|
return (!!this.scrollStrategy.viewport &&
|
|
9419
|
+
// @ts-expect-error
|
|
9266
9420
|
this.table._headerRowDefs
|
|
9267
9421
|
.map(def => def.sticky)
|
|
9268
9422
|
.reduce((prev, curr) => prev && curr, true));
|
|
@@ -9302,6 +9456,7 @@ FixedSizeTableVirtualScrollDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVers
|
|
|
9302
9456
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: FixedSizeTableVirtualScrollDirective, decorators: [{
|
|
9303
9457
|
type: Directive,
|
|
9304
9458
|
args: [{
|
|
9459
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
9305
9460
|
selector: 'aui-virtual-scroll-viewport[fixedSize]',
|
|
9306
9461
|
exportAs: 'viewPort',
|
|
9307
9462
|
providers: [
|
|
@@ -9338,6 +9493,7 @@ FixedSizeVirtualScrollDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion:
|
|
|
9338
9493
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: FixedSizeVirtualScrollDirective, decorators: [{
|
|
9339
9494
|
type: Directive,
|
|
9340
9495
|
args: [{
|
|
9496
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
9341
9497
|
selector: 'aui-virtual-scroll-viewport[itemSize]',
|
|
9342
9498
|
providers: [
|
|
9343
9499
|
{
|
|
@@ -9427,19 +9583,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
9427
9583
|
}]
|
|
9428
9584
|
}] });
|
|
9429
9585
|
|
|
9586
|
+
/** @docs-private */
|
|
9430
9587
|
function getSortDuplicateSortableIdError(id) {
|
|
9431
9588
|
return new Error(`Cannot have two MatSortables with the same id (${id}).`);
|
|
9432
9589
|
}
|
|
9590
|
+
/** @docs-private */
|
|
9433
9591
|
function getSortHeaderNotContainedWithinSortError() {
|
|
9434
9592
|
return new Error(`MatSortHeader must be placed within a parent element with the MatSort directive.`);
|
|
9435
9593
|
}
|
|
9594
|
+
/** @docs-private */
|
|
9436
9595
|
function getSortHeaderMissingIdError() {
|
|
9437
9596
|
return new Error(`MatSortHeader must be provided with a unique id.`);
|
|
9438
9597
|
}
|
|
9598
|
+
/** @docs-private */
|
|
9439
9599
|
function getSortInvalidDirectionError(direction) {
|
|
9440
9600
|
return new Error(`${direction} is not a valid sort direction ('asc' or 'desc').`);
|
|
9441
9601
|
}
|
|
9442
9602
|
|
|
9603
|
+
// Original code from material2
|
|
9443
9604
|
class SortDirective {
|
|
9444
9605
|
constructor() {
|
|
9445
9606
|
this.sortables = new Map();
|
|
@@ -9659,6 +9820,9 @@ const StepSelectedIcon = {
|
|
|
9659
9820
|
class StepsComponent {
|
|
9660
9821
|
constructor() {
|
|
9661
9822
|
this._steps = [];
|
|
9823
|
+
/**
|
|
9824
|
+
* @deprecated type 为 step 时一般在使用上下文中控制是否可以进行下一步;type 为 progress 时强制按顺序执行
|
|
9825
|
+
*/
|
|
9662
9826
|
this.linear = false;
|
|
9663
9827
|
this.orientation = 'horizontal';
|
|
9664
9828
|
this.type = 'step';
|
|
@@ -9771,6 +9935,7 @@ class StepsComponent {
|
|
|
9771
9935
|
(currentStep.state !== StepState.Done && i > this._currentIndex))) {
|
|
9772
9936
|
return false;
|
|
9773
9937
|
}
|
|
9938
|
+
// eslint-disable-next-line sonarjs/prefer-single-boolean-return
|
|
9774
9939
|
if (i < this._currentIndex && !this.selectable) {
|
|
9775
9940
|
return false;
|
|
9776
9941
|
}
|
|
@@ -10084,6 +10249,7 @@ class TabBodyComponent {
|
|
|
10084
10249
|
constructor() {
|
|
10085
10250
|
this.content$ = new BehaviorSubject(null);
|
|
10086
10251
|
}
|
|
10252
|
+
/** The tab body content to display. */
|
|
10087
10253
|
get content() {
|
|
10088
10254
|
return this._content;
|
|
10089
10255
|
}
|
|
@@ -10108,7 +10274,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
10108
10274
|
}], content: [{
|
|
10109
10275
|
type: Input
|
|
10110
10276
|
}] } });
|
|
10277
|
+
/** Used to flag tab labels for use with the portal directive */
|
|
10111
10278
|
class TabLabelDirective extends CdkPortal {
|
|
10279
|
+
// eslint-disable-next-line @typescript-eslint/no-useless-constructor
|
|
10112
10280
|
constructor(templateRef, viewContainerRef) {
|
|
10113
10281
|
super(templateRef, viewContainerRef);
|
|
10114
10282
|
}
|
|
@@ -10121,6 +10289,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
10121
10289
|
selector: '[auiTabLabel]',
|
|
10122
10290
|
}]
|
|
10123
10291
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
|
|
10292
|
+
/**
|
|
10293
|
+
* Lazy load the embedded template for a tab content.
|
|
10294
|
+
*/
|
|
10124
10295
|
class TabContentDirective {
|
|
10125
10296
|
constructor(template) {
|
|
10126
10297
|
this.template = template;
|
|
@@ -10134,7 +10305,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
10134
10305
|
selector: '[auiTabContent]',
|
|
10135
10306
|
}]
|
|
10136
10307
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
10308
|
+
/** Used to project additional template from host to the tab header. */
|
|
10137
10309
|
class TabHeaderAddonDirective extends CdkPortal {
|
|
10310
|
+
// eslint-disable-next-line @typescript-eslint/no-useless-constructor
|
|
10138
10311
|
constructor(templateRef, viewContainerRef) {
|
|
10139
10312
|
super(templateRef, viewContainerRef);
|
|
10140
10313
|
}
|
|
@@ -10147,10 +10320,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
10147
10320
|
selector: '[auiTabHeaderAddon]',
|
|
10148
10321
|
}]
|
|
10149
10322
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
|
|
10323
|
+
/**
|
|
10324
|
+
* Used in the `aui-tab-group` view to display tab labels.
|
|
10325
|
+
*/
|
|
10150
10326
|
class TabLabelWrapperDirective {
|
|
10151
10327
|
constructor(elementRef) {
|
|
10152
10328
|
this.elementRef = elementRef;
|
|
10153
10329
|
}
|
|
10330
|
+
/** Whether or not the tab is disabled */
|
|
10154
10331
|
get disabled() {
|
|
10155
10332
|
return this._disabled;
|
|
10156
10333
|
}
|
|
@@ -10163,6 +10340,7 @@ class TabLabelWrapperDirective {
|
|
|
10163
10340
|
getOffsetWidth() {
|
|
10164
10341
|
return this.elementRef.nativeElement.offsetWidth;
|
|
10165
10342
|
}
|
|
10343
|
+
/** Sets focus on the wrapper element */
|
|
10166
10344
|
focus() {
|
|
10167
10345
|
this.elementRef.nativeElement.focus();
|
|
10168
10346
|
}
|
|
@@ -10182,6 +10360,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
10182
10360
|
type: Input
|
|
10183
10361
|
}] } });
|
|
10184
10362
|
class TabTitleDirective extends CdkPortal {
|
|
10363
|
+
// eslint-disable-next-line @typescript-eslint/no-useless-constructor
|
|
10185
10364
|
constructor(templateRef, viewContainerRef) {
|
|
10186
10365
|
super(templateRef, viewContainerRef);
|
|
10187
10366
|
}
|
|
@@ -10194,12 +10373,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
10194
10373
|
selector: '[auiTabTitle]',
|
|
10195
10374
|
}]
|
|
10196
10375
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
|
|
10376
|
+
/**
|
|
10377
|
+
* The portal host directive for the contents of the tab.
|
|
10378
|
+
*/
|
|
10197
10379
|
class TabBodyPortalDirective extends CdkPortalOutlet {
|
|
10198
10380
|
constructor(componentFactoryResolver, viewContainerRef, _host) {
|
|
10199
10381
|
super(componentFactoryResolver, viewContainerRef);
|
|
10200
10382
|
this._host = _host;
|
|
10201
10383
|
this._hostSubscription = Subscription.EMPTY;
|
|
10202
10384
|
}
|
|
10385
|
+
/** Set initial visibility or set up subscription for changing visibility. */
|
|
10203
10386
|
ngOnInit() {
|
|
10204
10387
|
super.ngOnInit();
|
|
10205
10388
|
this._hostSubscription = this._host.content$.subscribe(content => {
|
|
@@ -10230,6 +10413,9 @@ class TabContextService {
|
|
|
10230
10413
|
? combineLatest([_parent.active$, this.active$$]).pipe(map(([a, b]) => a && b))
|
|
10231
10414
|
: this.active$$).pipe(distinctUntilChanged());
|
|
10232
10415
|
}
|
|
10416
|
+
/**
|
|
10417
|
+
* Whether the tab is currently active.
|
|
10418
|
+
*/
|
|
10233
10419
|
get isActive() {
|
|
10234
10420
|
return this.active$$.value;
|
|
10235
10421
|
}
|
|
@@ -10249,19 +10435,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
10249
10435
|
}] }];
|
|
10250
10436
|
} });
|
|
10251
10437
|
|
|
10438
|
+
/* eslint-disable no-prototype-builtins */
|
|
10252
10439
|
class TabComponent {
|
|
10253
10440
|
constructor(_viewContainerRef, tabContext) {
|
|
10254
10441
|
this._viewContainerRef = _viewContainerRef;
|
|
10255
10442
|
this.tabContext = tabContext;
|
|
10443
|
+
/** Plain text label for the tab, used when there is no template label. */
|
|
10256
10444
|
this.textLabel = '';
|
|
10445
|
+
/** Whether or not to show the close button in the header */
|
|
10257
10446
|
this.closeable = false;
|
|
10258
10447
|
this.close = new EventEmitter();
|
|
10448
|
+
/**
|
|
10449
|
+
* The relatively indexed position where 0 represents the center, negative is left, and positive
|
|
10450
|
+
* represents the right.
|
|
10451
|
+
*/
|
|
10259
10452
|
this.position = null;
|
|
10453
|
+
/**
|
|
10454
|
+
* The initial relatively index origin of the tab if it was created and selected after there
|
|
10455
|
+
* was already a selected tab. Provides context of what position the tab should originate from.
|
|
10456
|
+
*/
|
|
10260
10457
|
this.origin = null;
|
|
10458
|
+
/** Emits whenever the internal state of the tab changes. */
|
|
10261
10459
|
this._stateChanges = new Subject();
|
|
10460
|
+
/** Portal that will be the hosted content of the tab */
|
|
10262
10461
|
this._contentPortal = null;
|
|
10263
10462
|
this._disabled = false;
|
|
10264
10463
|
}
|
|
10464
|
+
/** Whether or not the tab is disabled */
|
|
10265
10465
|
get disabled() {
|
|
10266
10466
|
return this._disabled;
|
|
10267
10467
|
}
|
|
@@ -10313,8 +10513,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
10313
10513
|
}] } });
|
|
10314
10514
|
|
|
10315
10515
|
const TabSize = {
|
|
10516
|
+
/** 卡片级尺寸 */
|
|
10316
10517
|
Large: 'large',
|
|
10518
|
+
/** 页面级尺寸 */
|
|
10317
10519
|
Medium: 'medium',
|
|
10520
|
+
/** 小尺寸 */
|
|
10318
10521
|
Small: 'small',
|
|
10319
10522
|
};
|
|
10320
10523
|
const TabType = {
|
|
@@ -10329,6 +10532,11 @@ class TabHeaderActiveIndicatorComponent {
|
|
|
10329
10532
|
this.type = TabType.Line;
|
|
10330
10533
|
this.bem = buildBem('aui-tab-header-active-indicator');
|
|
10331
10534
|
}
|
|
10535
|
+
/**
|
|
10536
|
+
* Calculates the styles from the provided element in order to align the indicator to that element.
|
|
10537
|
+
* Shows the indicator if previously set as hidden.
|
|
10538
|
+
* @param element
|
|
10539
|
+
*/
|
|
10332
10540
|
alignToElement(element) {
|
|
10333
10541
|
if (typeof requestAnimationFrame !== 'undefined') {
|
|
10334
10542
|
this._ngZone.runOutsideAngular(() => {
|
|
@@ -10339,6 +10547,10 @@ class TabHeaderActiveIndicatorComponent {
|
|
|
10339
10547
|
this._setStyles(element);
|
|
10340
10548
|
}
|
|
10341
10549
|
}
|
|
10550
|
+
/**
|
|
10551
|
+
* Sets the proper styles to the element.
|
|
10552
|
+
* @param element
|
|
10553
|
+
*/
|
|
10342
10554
|
_setStyles(element) {
|
|
10343
10555
|
const positions = this._getElementPosition(element);
|
|
10344
10556
|
const nativeEl = this._elementRef.nativeElement;
|
|
@@ -10361,6 +10573,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
10361
10573
|
type: Input
|
|
10362
10574
|
}] } });
|
|
10363
10575
|
|
|
10576
|
+
/**
|
|
10577
|
+
* The distance in pixels that will be overshot when scrolling a tab label into view. This helps
|
|
10578
|
+
* provide a small affordance to the label next to it.
|
|
10579
|
+
*/
|
|
10364
10580
|
const EXAGGERATED_OVERSCROLL = 60;
|
|
10365
10581
|
class TabHeaderComponent {
|
|
10366
10582
|
constructor(_changeDetectorRef, _viewportRuler) {
|
|
@@ -10368,18 +10584,27 @@ class TabHeaderComponent {
|
|
|
10368
10584
|
this._viewportRuler = _viewportRuler;
|
|
10369
10585
|
this.bem = buildBem('aui-tab-header');
|
|
10370
10586
|
this._showAddon = false;
|
|
10587
|
+
/** Whether the controls for pagination should be displayed */
|
|
10371
10588
|
this._showPaginationControls = false;
|
|
10589
|
+
/** Whether the tab list can be scrolled more towards the end of the tab label list. */
|
|
10372
10590
|
this._disableScrollAfter = true;
|
|
10591
|
+
/** Whether the tab list can be scrolled more towards the beginning of the tab label list. */
|
|
10373
10592
|
this._disableScrollBefore = true;
|
|
10593
|
+
/** Whether the header should scroll to the selected index after the view has been checked. */
|
|
10374
10594
|
this._selectedIndexChanged = false;
|
|
10595
|
+
/** The distance in pixels that the tab labels should be translated to the left. */
|
|
10375
10596
|
this._scrollDistance = 0;
|
|
10376
10597
|
this._selectedIndex = 0;
|
|
10598
|
+
/** Emits when the component is destroyed. */
|
|
10377
10599
|
this._destroyed = new Subject();
|
|
10378
10600
|
this.type = TabType.Line;
|
|
10379
10601
|
this.size = TabSize.Medium;
|
|
10602
|
+
/** Event emitted when the option is selected. */
|
|
10380
10603
|
this.selectFocusedIndex = new EventEmitter();
|
|
10604
|
+
/** Event emitted when a label is focused. */
|
|
10381
10605
|
this.indexFocused = new EventEmitter();
|
|
10382
10606
|
}
|
|
10607
|
+
/** The index of the active tab. */
|
|
10383
10608
|
get selectedIndex() {
|
|
10384
10609
|
return this._selectedIndex;
|
|
10385
10610
|
}
|
|
@@ -10396,11 +10621,14 @@ class TabHeaderComponent {
|
|
|
10396
10621
|
this._destroyed.complete();
|
|
10397
10622
|
}
|
|
10398
10623
|
ngAfterContentChecked() {
|
|
10624
|
+
// If the number of tab labels have changed, check if scrolling should be enabled
|
|
10399
10625
|
if (this._tabLabelCount !== this._labelWrappers.length) {
|
|
10400
10626
|
this._updatePagination();
|
|
10401
10627
|
this._tabLabelCount = this._labelWrappers.length;
|
|
10402
10628
|
this._changeDetectorRef.markForCheck();
|
|
10403
10629
|
}
|
|
10630
|
+
// If the selected index has changed, scroll to the label and check if the scrolling controls
|
|
10631
|
+
// should be disabled.
|
|
10404
10632
|
if (this._selectedIndexChanged) {
|
|
10405
10633
|
this._scrollToLabel(this._selectedIndex);
|
|
10406
10634
|
this._checkScrollingControls();
|
|
@@ -10408,6 +10636,8 @@ class TabHeaderComponent {
|
|
|
10408
10636
|
this._selectedIndexChanged = false;
|
|
10409
10637
|
this._changeDetectorRef.markForCheck();
|
|
10410
10638
|
}
|
|
10639
|
+
// If the scroll distance has been changed (tab selected, focused, scroll controls activated),
|
|
10640
|
+
// then translate the header to reflect this.
|
|
10411
10641
|
if (this._scrollDistanceChanged) {
|
|
10412
10642
|
this._updateTabScrollPosition();
|
|
10413
10643
|
this._scrollDistanceChanged = false;
|
|
@@ -10419,6 +10649,9 @@ class TabHeaderComponent {
|
|
|
10419
10649
|
this._changeDetectorRef.markForCheck();
|
|
10420
10650
|
}
|
|
10421
10651
|
}
|
|
10652
|
+
/**
|
|
10653
|
+
* Aligns the ink bar to the selected tab on load.
|
|
10654
|
+
*/
|
|
10422
10655
|
ngAfterContentInit() {
|
|
10423
10656
|
const resize = this._viewportRuler.change(150);
|
|
10424
10657
|
const realign = () => {
|
|
@@ -10429,12 +10662,19 @@ class TabHeaderComponent {
|
|
|
10429
10662
|
.withHorizontalOrientation('ltr')
|
|
10430
10663
|
.withWrap();
|
|
10431
10664
|
this._keyManager.updateActiveItem(0);
|
|
10665
|
+
// Defer the first call in order to allow for slower browsers to lay out the elements.
|
|
10666
|
+
// This helps in cases where the user lands directly on a page with paginated tabs.
|
|
10432
10667
|
typeof requestAnimationFrame !== 'undefined'
|
|
10433
10668
|
? requestAnimationFrame(realign)
|
|
10434
10669
|
: realign();
|
|
10670
|
+
// On window resize, realign the ink bar and update the orientation of
|
|
10671
|
+
// the key manager if the direction has changed.
|
|
10435
10672
|
resize.pipe(takeUntil(this._destroyed)).subscribe(() => {
|
|
10436
10673
|
realign();
|
|
10437
10674
|
});
|
|
10675
|
+
// If there is a change in the focus key manager we need to emit the `indexFocused`
|
|
10676
|
+
// event in order to provide a public event that notifies about focus changes. Also we realign
|
|
10677
|
+
// the tabs container by scrolling the new focused tab into the visible section.
|
|
10438
10678
|
this._keyManager.change
|
|
10439
10679
|
.pipe(takeUntil(this._destroyed))
|
|
10440
10680
|
.subscribe(newFocusIndex => {
|
|
@@ -10442,17 +10682,22 @@ class TabHeaderComponent {
|
|
|
10442
10682
|
this._setTabFocus(newFocusIndex);
|
|
10443
10683
|
});
|
|
10444
10684
|
}
|
|
10685
|
+
/** Sets the distance in pixels that the tab header should be transformed in the X-axis. */
|
|
10445
10686
|
get scrollDistance() {
|
|
10446
10687
|
return this._scrollDistance;
|
|
10447
10688
|
}
|
|
10448
10689
|
set scrollDistance(v) {
|
|
10449
10690
|
this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), v));
|
|
10691
|
+
// Mark that the scroll distance has changed so that after the view is checked, the CSS
|
|
10692
|
+
// transformation can move the header.
|
|
10450
10693
|
this._scrollDistanceChanged = true;
|
|
10451
10694
|
this._checkScrollingControls();
|
|
10452
10695
|
}
|
|
10696
|
+
/** Tracks which element has focus; used for keyboard navigation */
|
|
10453
10697
|
get focusIndex() {
|
|
10454
10698
|
return this._keyManager ? this._keyManager.activeItemIndex : 0;
|
|
10455
10699
|
}
|
|
10700
|
+
/** When the focus index is set, we must manually send focus to the correct label */
|
|
10456
10701
|
set focusIndex(value) {
|
|
10457
10702
|
if (!this._isValidIndex(value) ||
|
|
10458
10703
|
this.focusIndex === value ||
|
|
@@ -10461,6 +10706,10 @@ class TabHeaderComponent {
|
|
|
10461
10706
|
}
|
|
10462
10707
|
this._keyManager.setActiveItem(value);
|
|
10463
10708
|
}
|
|
10709
|
+
/**
|
|
10710
|
+
* Determines if an index is valid. If the tabs are not ready yet, we assume that the user is
|
|
10711
|
+
* providing a valid index and return true.
|
|
10712
|
+
*/
|
|
10464
10713
|
_isValidIndex(index) {
|
|
10465
10714
|
if (!this._labelWrappers) {
|
|
10466
10715
|
return true;
|
|
@@ -10489,6 +10738,10 @@ class TabHeaderComponent {
|
|
|
10489
10738
|
this._keyManager.onKeydown(event);
|
|
10490
10739
|
}
|
|
10491
10740
|
}
|
|
10741
|
+
/**
|
|
10742
|
+
* Sets focus on the HTML element for the label wrapper and scrolls it into the view if
|
|
10743
|
+
* scrolling is enabled.
|
|
10744
|
+
*/
|
|
10492
10745
|
_setTabFocus(tabIndex) {
|
|
10493
10746
|
var _a;
|
|
10494
10747
|
if (this._showPaginationControls) {
|
|
@@ -10496,10 +10749,19 @@ class TabHeaderComponent {
|
|
|
10496
10749
|
}
|
|
10497
10750
|
if (((_a = this._labelWrappers) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
10498
10751
|
this._labelWrappers.toArray()[tabIndex].focus();
|
|
10752
|
+
// Do not let the browser manage scrolling to focus the element, this will be handled
|
|
10753
|
+
// by using translation. In LTR, the scroll left should be 0. In RTL, the scroll width
|
|
10754
|
+
// should be the full width minus the offset width.
|
|
10499
10755
|
const containerEl = this._tabListContainer.nativeElement;
|
|
10500
10756
|
containerEl.scrollLeft = 0;
|
|
10501
10757
|
}
|
|
10502
10758
|
}
|
|
10759
|
+
/**
|
|
10760
|
+
* Moves the tab list such that the desired tab label (marked by index) is moved into view.
|
|
10761
|
+
*
|
|
10762
|
+
* This is an expensive call that forces a layout reflow to compute box and scroll metrics and
|
|
10763
|
+
* should be called sparingly.
|
|
10764
|
+
*/
|
|
10503
10765
|
_scrollToLabel(labelIndex) {
|
|
10504
10766
|
const selectedLabel = this._labelWrappers
|
|
10505
10767
|
? this._labelWrappers.toArray()[labelIndex]
|
|
@@ -10507,37 +10769,63 @@ class TabHeaderComponent {
|
|
|
10507
10769
|
if (!selectedLabel) {
|
|
10508
10770
|
return;
|
|
10509
10771
|
}
|
|
10772
|
+
// The view length is the visible width of the tab labels.
|
|
10510
10773
|
const viewLength = this._tabListContainer.nativeElement.offsetWidth;
|
|
10511
10774
|
const labelBeforePos = selectedLabel.getOffsetLeft();
|
|
10512
10775
|
const labelAfterPos = labelBeforePos + selectedLabel.getOffsetWidth();
|
|
10513
10776
|
const beforeVisiblePos = this.scrollDistance;
|
|
10514
10777
|
const afterVisiblePos = this.scrollDistance + viewLength;
|
|
10515
10778
|
if (labelBeforePos < beforeVisiblePos) {
|
|
10779
|
+
// Scroll header to move label to the before direction
|
|
10516
10780
|
this.scrollDistance -=
|
|
10517
10781
|
beforeVisiblePos - labelBeforePos + EXAGGERATED_OVERSCROLL;
|
|
10518
10782
|
}
|
|
10519
10783
|
else if (labelAfterPos > afterVisiblePos) {
|
|
10784
|
+
// Scroll header to move label to the after direction
|
|
10520
10785
|
this.scrollDistance +=
|
|
10521
10786
|
labelAfterPos - afterVisiblePos + EXAGGERATED_OVERSCROLL;
|
|
10522
10787
|
}
|
|
10523
10788
|
}
|
|
10789
|
+
/**
|
|
10790
|
+
* Moves the tab list in the 'before' or 'after' direction (towards the beginning of the list or
|
|
10791
|
+
* the end of the list, respectively). The distance to scroll is computed to be a third of the
|
|
10792
|
+
* length of the tab list view window.
|
|
10793
|
+
*
|
|
10794
|
+
* This is an expensive call that forces a layout reflow to compute box and scroll metrics and
|
|
10795
|
+
* should be called sparingly.
|
|
10796
|
+
*/
|
|
10524
10797
|
_scrollHeader(scrollDir) {
|
|
10525
10798
|
const viewLength = this._tabListContainer.nativeElement.offsetWidth;
|
|
10799
|
+
// Move the scroll distance one-third the length of the tab list's viewport.
|
|
10526
10800
|
this.scrollDistance += ((scrollDir === 'before' ? -1 : 1) * viewLength) / 3;
|
|
10527
10801
|
}
|
|
10802
|
+
/**
|
|
10803
|
+
* Callback for when the MutationObserver detects that the content has changed.
|
|
10804
|
+
*/
|
|
10528
10805
|
_onContentChanges() {
|
|
10529
10806
|
this._updatePagination();
|
|
10530
10807
|
this._alignActiveIndicatorToSelectedTab();
|
|
10531
10808
|
this._changeDetectorRef.markForCheck();
|
|
10532
10809
|
}
|
|
10810
|
+
/**
|
|
10811
|
+
* Updating the view whether pagination should be enabled or not
|
|
10812
|
+
*/
|
|
10533
10813
|
_updatePagination() {
|
|
10534
10814
|
this._checkPaginationEnabled();
|
|
10535
10815
|
this._checkScrollingControls();
|
|
10536
10816
|
this._updateTabScrollPosition();
|
|
10537
10817
|
}
|
|
10818
|
+
/**
|
|
10819
|
+
* Evaluate whether the pagination controls should be displayed. If the scroll width of the
|
|
10820
|
+
* tab list is wider than the size of the header container, then the pagination controls should
|
|
10821
|
+
* be shown.
|
|
10822
|
+
*
|
|
10823
|
+
* This is an expensive call that forces a layout reflow to compute box and scroll metrics and
|
|
10824
|
+
* should be called sparingly.
|
|
10825
|
+
*/
|
|
10538
10826
|
_checkPaginationEnabled() {
|
|
10539
10827
|
const isEnabled = this._tabList.nativeElement.scrollWidth >
|
|
10540
|
-
this._paginationWrapper.nativeElement.offsetWidth + 2;
|
|
10828
|
+
this._paginationWrapper.nativeElement.offsetWidth + 2; // 2 is the border size
|
|
10541
10829
|
if (!isEnabled) {
|
|
10542
10830
|
this.scrollDistance = 0;
|
|
10543
10831
|
}
|
|
@@ -10547,22 +10835,45 @@ class TabHeaderComponent {
|
|
|
10547
10835
|
this._changeDetectorRef.markForCheck();
|
|
10548
10836
|
}
|
|
10549
10837
|
}
|
|
10838
|
+
/**
|
|
10839
|
+
* Evaluate whether the before and after controls should be enabled or disabled.
|
|
10840
|
+
* If the header is at the beginning of the list (scroll distance is equal to 0) then disable the
|
|
10841
|
+
* before button. If the header is at the end of the list (scroll distance is equal to the
|
|
10842
|
+
* maximum distance we can scroll), then disable the after button.
|
|
10843
|
+
*
|
|
10844
|
+
* This is an expensive call that forces a layout reflow to compute box and scroll metrics and
|
|
10845
|
+
* should be called sparingly.
|
|
10846
|
+
*/
|
|
10550
10847
|
_checkScrollingControls() {
|
|
10848
|
+
// Check if the pagination arrows should be activated.
|
|
10551
10849
|
this._disableScrollBefore = this.scrollDistance === 0;
|
|
10552
10850
|
this._disableScrollAfter =
|
|
10553
10851
|
this.scrollDistance === this._getMaxScrollDistance();
|
|
10554
10852
|
this._changeDetectorRef.markForCheck();
|
|
10555
10853
|
}
|
|
10854
|
+
/**
|
|
10855
|
+
* Determines what is the maximum length in pixels that can be set for the scroll distance. This
|
|
10856
|
+
* is equal to the difference in width between the tab list container and tab header container.
|
|
10857
|
+
*
|
|
10858
|
+
* This is an expensive call that forces a layout reflow to compute box and scroll metrics and
|
|
10859
|
+
* should be called sparingly.
|
|
10860
|
+
*/
|
|
10556
10861
|
_getMaxScrollDistance() {
|
|
10557
10862
|
const lengthOfTabList = this._tabList.nativeElement.scrollWidth;
|
|
10558
10863
|
const viewLength = this._tabListContainer.nativeElement.offsetWidth;
|
|
10559
10864
|
return lengthOfTabList - viewLength || 0;
|
|
10560
10865
|
}
|
|
10866
|
+
/** Performs the CSS transformation on the tab list that will cause the list to scroll. */
|
|
10561
10867
|
_updateTabScrollPosition() {
|
|
10562
10868
|
const scrollDistance = this.scrollDistance;
|
|
10563
10869
|
const translateX = -scrollDistance;
|
|
10870
|
+
// Don't use `translate3d` here because we don't want to create a new layer. A new layer
|
|
10871
|
+
// seems to cause flickering and overflow in Internet Explorer. For example, the ink bar
|
|
10872
|
+
// and ripples will exceed the boundaries of the visible tab bar.
|
|
10873
|
+
// See: https://github.com/angular/material2/issues/10276
|
|
10564
10874
|
this._tabList.nativeElement.style.transform = `translateX(${translateX}px)`;
|
|
10565
10875
|
}
|
|
10876
|
+
/** Tells the active indicator to align itself to the current label wrapper */
|
|
10566
10877
|
_alignActiveIndicatorToSelectedTab() {
|
|
10567
10878
|
var _a;
|
|
10568
10879
|
const selectedLabelWrapper = ((_a = this._labelWrappers) === null || _a === void 0 ? void 0 : _a.length) > 0
|
|
@@ -10593,7 +10904,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
10593
10904
|
}], _title: [{
|
|
10594
10905
|
type: ContentChild,
|
|
10595
10906
|
args: [TabTitleDirective, { static: false }]
|
|
10596
|
-
}],
|
|
10907
|
+
}],
|
|
10908
|
+
/**
|
|
10909
|
+
* workaround for @link https://github.com/microsoft/TypeScript/pull/42425
|
|
10910
|
+
*/
|
|
10911
|
+
_labelWrappers: [{
|
|
10597
10912
|
type: ContentChildren,
|
|
10598
10913
|
args: [TabLabelWrapperDirective]
|
|
10599
10914
|
}], _tabListContainer: [{
|
|
@@ -10610,27 +10925,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
10610
10925
|
args: [TabHeaderActiveIndicatorComponent, { static: true }]
|
|
10611
10926
|
}] } });
|
|
10612
10927
|
|
|
10928
|
+
/* eslint-disable no-prototype-builtins */
|
|
10929
|
+
/** A simple change event emitted on focus or selection changes. */
|
|
10613
10930
|
class TabChangeEvent {
|
|
10614
10931
|
}
|
|
10615
10932
|
class TabGroupComponent {
|
|
10616
10933
|
constructor(_changeDetectorRef) {
|
|
10617
10934
|
this._changeDetectorRef = _changeDetectorRef;
|
|
10618
10935
|
this.bem = buildBem('aui-tab-group');
|
|
10936
|
+
/** The tab index that should be selected after the content has been checked. */
|
|
10619
10937
|
this._indexToSelect = 0;
|
|
10938
|
+
/** Subscription to tabs being added/removed. */
|
|
10620
10939
|
this._tabsSubscription = Subscription.EMPTY;
|
|
10940
|
+
/** Subscription to changes in the tab labels. */
|
|
10621
10941
|
this._tabLabelSubscription = Subscription.EMPTY;
|
|
10622
10942
|
this._selectedIndex = null;
|
|
10623
10943
|
this._tab = null;
|
|
10624
10944
|
this._type = TabType.Line;
|
|
10625
10945
|
this._size = TabSize.Medium;
|
|
10946
|
+
/** Emits whenever the type changes */
|
|
10626
10947
|
this._typeChange = new Subject();
|
|
10948
|
+
/** Emits whenever the size changes */
|
|
10627
10949
|
this._sizeChange = new Subject();
|
|
10950
|
+
/** Output to enable support for two-way binding on `[(selectedIndex)]` */
|
|
10628
10951
|
this.selectedIndexChange = new EventEmitter();
|
|
10629
10952
|
this.tabChange = new EventEmitter();
|
|
10953
|
+
/** Event emitted when the tab selection has changed. */
|
|
10630
10954
|
this.selectedTabChange = new EventEmitter(true);
|
|
10955
|
+
/** Event emitted when focus has changed within a tab group. */
|
|
10631
10956
|
this.focusChange = new EventEmitter();
|
|
10632
10957
|
this.activatedTabs = [];
|
|
10633
10958
|
}
|
|
10959
|
+
/** The index of the active tab. */
|
|
10634
10960
|
get selectedIndex() {
|
|
10635
10961
|
return this._selectedIndex;
|
|
10636
10962
|
}
|
|
@@ -10690,20 +11016,34 @@ class TabGroupComponent {
|
|
|
10690
11016
|
this._sizeChange.next();
|
|
10691
11017
|
}
|
|
10692
11018
|
}
|
|
11019
|
+
/**
|
|
11020
|
+
* After the content is checked, this component knows what tabs have been defined
|
|
11021
|
+
* and what the selected index should be. This is where we can know exactly what position
|
|
11022
|
+
* each tab should be in according to the new selected index.
|
|
11023
|
+
*/
|
|
10693
11024
|
ngAfterContentChecked() {
|
|
11025
|
+
// Don't clamp the `indexToSelect` immediately in the setter because it can happen that
|
|
11026
|
+
// the amount of tabs changes before the actual change detection runs.
|
|
10694
11027
|
const indexToSelect = (this._indexToSelect = this._clampTabIndex(this._indexToSelect));
|
|
11028
|
+
// If there is a change in selected index, emit a change event. Should not trigger if
|
|
11029
|
+
// the selected index has not yet been initialized.
|
|
10695
11030
|
if (this._selectedIndex !== indexToSelect && this._selectedIndex != null) {
|
|
10696
11031
|
this._changeActivatedTabs();
|
|
10697
11032
|
const tabChangeEvent = this._createChangeEvent(indexToSelect);
|
|
10698
11033
|
this.selectedTabChange.emit(tabChangeEvent);
|
|
11034
|
+
// Emitting this value after change detection has run
|
|
11035
|
+
// since the checked content may contain this variable'
|
|
10699
11036
|
Promise.resolve().then(() => {
|
|
10700
11037
|
this.selectedIndexChange.emit(indexToSelect);
|
|
10701
11038
|
this.tabChange.emit(this._tabs.get(indexToSelect).name);
|
|
10702
11039
|
});
|
|
10703
11040
|
}
|
|
11041
|
+
// Setup the position for each tab and optionally setup an origin on the next selected tab.
|
|
10704
11042
|
this._tabs.forEach((tab, index) => {
|
|
10705
11043
|
tab.position = index - indexToSelect;
|
|
10706
11044
|
tab.tabContext.isActive = index === indexToSelect;
|
|
11045
|
+
// If there is already a selected tab, then set up an origin for the next selected tab
|
|
11046
|
+
// if it doesn't have one already.
|
|
10707
11047
|
if (this._selectedIndex != null && tab.position === 0 && !tab.origin) {
|
|
10708
11048
|
tab.origin = indexToSelect - this._selectedIndex;
|
|
10709
11049
|
}
|
|
@@ -10723,15 +11063,22 @@ class TabGroupComponent {
|
|
|
10723
11063
|
}
|
|
10724
11064
|
this._changeActivatedTabs();
|
|
10725
11065
|
this._subscribeToTabLabels();
|
|
11066
|
+
// Subscribe to changes in the amount of tabs, in order to be
|
|
11067
|
+
// able to re-render the content as new tabs are added or removed.
|
|
10726
11068
|
this._tabsSubscription = this._tabs.changes.subscribe(() => {
|
|
10727
11069
|
const tabs = this._tabs.toArray();
|
|
10728
11070
|
if (this._lazy) {
|
|
10729
11071
|
this.activatedTabs = this.activatedTabs.filter(tab => tabs.includes(tab));
|
|
10730
11072
|
}
|
|
10731
11073
|
const indexToSelect = this._clampTabIndex(this._indexToSelect);
|
|
11074
|
+
// Maintain the previously-selected tab if a new tab is added or removed and there is no
|
|
11075
|
+
// explicit change that selects a different tab.
|
|
10732
11076
|
if (indexToSelect === this._selectedIndex) {
|
|
10733
11077
|
for (const [i, tab] of tabs.entries()) {
|
|
10734
11078
|
if (tab.tabContext.isActive) {
|
|
11079
|
+
// Assign both to the `_indexToSelect` and `_selectedIndex` so we don't fire a changed
|
|
11080
|
+
// event, otherwise the consumer may end up in an infinite loop in some edge cases like
|
|
11081
|
+
// adding a tab within the `selectedIndexChange` event.
|
|
10735
11082
|
this._indexToSelect = this._selectedIndex = i;
|
|
10736
11083
|
break;
|
|
10737
11084
|
}
|
|
@@ -10748,6 +11095,7 @@ class TabGroupComponent {
|
|
|
10748
11095
|
this._typeChange.complete();
|
|
10749
11096
|
this._sizeChange.complete();
|
|
10750
11097
|
}
|
|
11098
|
+
/** Handle click events, setting new selected index if appropriate. */
|
|
10751
11099
|
_handleClick(tab, idx) {
|
|
10752
11100
|
if (!tab.disabled) {
|
|
10753
11101
|
this.selectedIndex = this._tabHeader.focusIndex = idx;
|
|
@@ -10756,6 +11104,7 @@ class TabGroupComponent {
|
|
|
10756
11104
|
_focusChanged(index) {
|
|
10757
11105
|
this.focusChange.emit(this._createChangeEvent(index));
|
|
10758
11106
|
}
|
|
11107
|
+
/** Re-aligns the ink bar to the selected tab element. */
|
|
10759
11108
|
realignActiveIndicator() {
|
|
10760
11109
|
if (this._tabHeader) {
|
|
10761
11110
|
this._tabHeader._alignActiveIndicatorToSelectedTab();
|
|
@@ -10773,7 +11122,11 @@ class TabGroupComponent {
|
|
|
10773
11122
|
this.activatedTabs.push(tab);
|
|
10774
11123
|
}
|
|
10775
11124
|
}
|
|
11125
|
+
/** Clamps the given index to the bounds of 0 and the tabs length. */
|
|
10776
11126
|
_clampTabIndex(index) {
|
|
11127
|
+
// Note the `|| 0`, which ensures that values like NaN can't get through
|
|
11128
|
+
// and which would otherwise throw the component into an infinite loop
|
|
11129
|
+
// (since Math.max(NaN, 0) === NaN).
|
|
10777
11130
|
return Math.min(this._tabs.length - 1, Math.max(index || 0, 0));
|
|
10778
11131
|
}
|
|
10779
11132
|
_findIndexByTab(name) {
|
|
@@ -10788,6 +11141,12 @@ class TabGroupComponent {
|
|
|
10788
11141
|
}
|
|
10789
11142
|
return event;
|
|
10790
11143
|
}
|
|
11144
|
+
/**
|
|
11145
|
+
* Subscribes to changes in the tab labels. This is needed, because the @Input for the label is
|
|
11146
|
+
* on the Tab component, whereas the data binding is inside the TabGroup. In order for the
|
|
11147
|
+
* binding to be updated, we need to subscribe to changes in it and trigger change detection
|
|
11148
|
+
* manually.
|
|
11149
|
+
*/
|
|
10791
11150
|
_subscribeToTabLabels() {
|
|
10792
11151
|
if (this._tabLabelSubscription) {
|
|
10793
11152
|
this._tabLabelSubscription.unsubscribe();
|
|
@@ -10797,6 +11156,7 @@ class TabGroupComponent {
|
|
|
10797
11156
|
this._changeDetectorRef.markForCheck();
|
|
10798
11157
|
});
|
|
10799
11158
|
}
|
|
11159
|
+
/** Retrieves the tabindex for the tab. */
|
|
10800
11160
|
_getTabIndex(tab, idx) {
|
|
10801
11161
|
if (tab.disabled) {
|
|
10802
11162
|
return null;
|
|
@@ -10951,6 +11311,7 @@ class TreeSelectComponent extends CommonFormControl {
|
|
|
10951
11311
|
this.filterString$ = this.filterString$$.asObservable();
|
|
10952
11312
|
this.displayText = '';
|
|
10953
11313
|
this.flattedNodes = [];
|
|
11314
|
+
// `this` is not available in `trackBy`...
|
|
10954
11315
|
this.trackByLabel = (_, node) => this.getLabelFromNode(node);
|
|
10955
11316
|
}
|
|
10956
11317
|
get nodesData() {
|
|
@@ -11287,5 +11648,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
11287
11648
|
}]
|
|
11288
11649
|
}] });
|
|
11289
11650
|
|
|
11651
|
+
/**
|
|
11652
|
+
* Generated bundle index. Do not edit.
|
|
11653
|
+
*/
|
|
11654
|
+
|
|
11290
11655
|
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 };
|
|
11291
11656
|
//# sourceMappingURL=alauda-ui.mjs.map
|