@alauda/ui 6.5.10-beta.55 → 6.5.10-beta.56

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.
@@ -20,7 +20,6 @@ import { OverlayConfig, OverlayModule, CdkScrollable } from '@angular/cdk/overla
20
20
  import * as i2$2 from '@angular/forms';
21
21
  import { ControlContainer, NgControl, NG_VALUE_ACCESSOR, FormsModule, Validators, ReactiveFormsModule, NG_VALIDATORS } from '@angular/forms';
22
22
  import dayjs from 'dayjs';
23
- import { HOUR_ITEMS as HOUR_ITEMS$1, MINUTE_ITEMS as MINUTE_ITEMS$1, SECOND_ITEMS as SECOND_ITEMS$1 } from 'src/time-picker';
24
23
  import customParseFormat from 'dayjs/plugin/customParseFormat';
25
24
  import isBetween from 'dayjs/plugin/isBetween';
26
25
  import * as i2$4 from '@angular/cdk/bidi';
@@ -4043,1524 +4042,1524 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImpor
4043
4042
  args: ['tooltipRef']
4044
4043
  }] } });
4045
4044
 
4046
- const bem$5 = buildBem('aui-calendar-header');
4047
- class CalendarHeaderComponent {
4048
- dateNavRange = DateNavRange.Month;
4049
- anchor = dayjs();
4050
- maxAvail;
4051
- get _maxAvail() {
4052
- return this.maxAvail ? dayjs(this.maxAvail) : null;
4053
- }
4054
- minAvail;
4055
- get _minAvail() {
4056
- return this.minAvail ? dayjs(this.minAvail) : null;
4057
- }
4058
- navRangeChange = new EventEmitter();
4059
- anchorChange = new EventEmitter();
4060
- get headerRange() {
4061
- return calcRangeValue(this.dateNavRange, this.anchor);
4062
- }
4063
- bem = bem$5;
4064
- DateNavRange = DateNavRange;
4065
- shouldShowNav(type, side) {
4066
- const availValue = (side === Side.Left ? this._minAvail : this._maxAvail)?.clone();
4067
- if (!availValue) {
4068
- return true;
4069
- }
4070
- const constrainDate = [DateNavRange.Month, DateNavRange.Year].includes(type)
4071
- ? availValue.add(side === Side.Left ? 1 : -1, type)
4072
- : availValue;
4073
- return (this.compareNavValue(type, constrainDate, this.anchor) ===
4074
- (side === Side.Left ? -1 : 1));
4075
- }
4076
- compareNavValue(type, constrain, anchor) {
4077
- const range = calcRangeValue(type, anchor);
4078
- const constrainValue = constrain;
4079
- if (type === DateNavRange.Decade) {
4080
- if (constrainValue.isBetween(range.start, range.end, YEAR)) {
4081
- return 0;
4082
- }
4083
- return constrainValue.isBefore(range.start) ? -1 : 1;
4084
- }
4085
- return constrainValue.isSame(range.start, MONTH)
4086
- ? 0
4087
- : constrainValue.isBefore(range.start, MONTH)
4088
- ? -1
4089
- : 1;
4090
- }
4091
- navHead(range, value) {
4092
- let anchor;
4093
- switch (range) {
4094
- case DateNavRange.Month: {
4095
- anchor = this.anchor.add(value, MONTH);
4096
- break;
4097
- }
4098
- case DateNavRange.Year: {
4099
- anchor = this.anchor.add(value, YEAR);
4100
- break;
4101
- }
4102
- case DateNavRange.Decade: {
4103
- anchor = this.anchor.add(value, YEAR);
4104
- break;
4105
- }
4106
- }
4107
- this.anchorChange.next(anchor);
4108
- }
4109
- clickNav = (range) => {
4110
- if (![DateNavRange.Month, DateNavRange.Year].includes(range)) {
4111
- return;
4112
- }
4113
- this.navRangeChange.next(range === DateNavRange.Month ? DateNavRange.Year : DateNavRange.Decade);
4114
- };
4115
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CalendarHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4116
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: CalendarHeaderComponent, selector: "aui-calendar-header", inputs: { dateNavRange: "dateNavRange", anchor: "anchor", maxAvail: "maxAvail", minAvail: "minAvail" }, outputs: { navRangeChange: "navRangeChange", anchorChange: "anchorChange" }, ngImport: i0, template: "<div [class]=\"bem.element('container')\">\n <div>\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n </div>\n <!-- \u5185\u5BB9\u533A -->\n <span\n *ngIf=\"dateNavRange === DateNavRange.Month\"\n [class]=\"bem.element('nav-content')\"\n >\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </a>\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ headerRange?.start?.month() + 1 }}{{ 'month_suffix' | auiI18n }}\n </a>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </a>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [class]=\"bem.element('nav-content')\"\n >\n {{ headerRange?.start.year() }} - {{ headerRange?.end?.year() }}\n </span>\n\n <div [class]=\"bem.element('nav-action')\">\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n </div>\n</div>\n\n<ng-template\n #yearControl\n let-side=\"side\"\n>\n <span class=\"action-bar\">\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'right'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, 1)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Year, side === 'left' ? -1 : 1)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Year, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'left'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, -1)\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template\n #decadeControl\n let-side=\"side\"\n>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Decade, side === 'left' ? -10 : 10)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Decade, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n</ng-template>\n", styles: [".aui-calendar-header__container{height:24px;display:flex;align-items:center;justify-content:space-between}.aui-calendar-header__nav-content{flex:1;display:flex;justify-content:center;align-items:center;font-size:var(--aui-font-size-l);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-bolder)}.aui-calendar-header__nav-content a{color:rgb(var(--aui-color-main-text))}.aui-calendar-header__nav-content a:hover{color:rgb(var(--aui-color-primary));text-decoration:none!important}.aui-calendar-header__nav-content a+a{margin-left:5px}.action-bar{width:52px;display:flex}.action-bar .hidden{opacity:0;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4045
+ class I18nModule {
4046
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: I18nModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4047
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: I18nModule, declarations: [I18nPipe], exports: [I18nPipe] });
4048
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: I18nModule });
4117
4049
  }
4118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CalendarHeaderComponent, decorators: [{
4119
- type: Component,
4120
- args: [{ selector: 'aui-calendar-header', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"bem.element('container')\">\n <div>\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n </div>\n <!-- \u5185\u5BB9\u533A -->\n <span\n *ngIf=\"dateNavRange === DateNavRange.Month\"\n [class]=\"bem.element('nav-content')\"\n >\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </a>\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ headerRange?.start?.month() + 1 }}{{ 'month_suffix' | auiI18n }}\n </a>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </a>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [class]=\"bem.element('nav-content')\"\n >\n {{ headerRange?.start.year() }} - {{ headerRange?.end?.year() }}\n </span>\n\n <div [class]=\"bem.element('nav-action')\">\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n </div>\n</div>\n\n<ng-template\n #yearControl\n let-side=\"side\"\n>\n <span class=\"action-bar\">\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'right'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, 1)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Year, side === 'left' ? -1 : 1)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Year, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'left'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, -1)\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template\n #decadeControl\n let-side=\"side\"\n>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Decade, side === 'left' ? -10 : 10)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Decade, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n</ng-template>\n", styles: [".aui-calendar-header__container{height:24px;display:flex;align-items:center;justify-content:space-between}.aui-calendar-header__nav-content{flex:1;display:flex;justify-content:center;align-items:center;font-size:var(--aui-font-size-l);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-bolder)}.aui-calendar-header__nav-content a{color:rgb(var(--aui-color-main-text))}.aui-calendar-header__nav-content a:hover{color:rgb(var(--aui-color-primary));text-decoration:none!important}.aui-calendar-header__nav-content a+a{margin-left:5px}.action-bar{width:52px;display:flex}.action-bar .hidden{opacity:0;pointer-events:none}\n"] }]
4121
- }], propDecorators: { dateNavRange: [{
4122
- type: Input
4123
- }], anchor: [{
4124
- type: Input
4125
- }], maxAvail: [{
4126
- type: Input
4127
- }], minAvail: [{
4128
- type: Input
4129
- }], navRangeChange: [{
4130
- type: Output
4131
- }], anchorChange: [{
4132
- type: Output
4133
- }] } });
4050
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: I18nModule, decorators: [{
4051
+ type: NgModule,
4052
+ args: [{
4053
+ declarations: [I18nPipe],
4054
+ exports: [I18nPipe],
4055
+ }]
4056
+ }] });
4134
4057
 
4135
- class CalendarFooterComponent {
4136
- clearable = true;
4137
- clearText;
4138
- customAction;
4139
- confirm = new EventEmitter();
4140
- clear = new EventEmitter();
4141
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CalendarFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4142
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: CalendarFooterComponent, selector: "aui-calendar-footer", inputs: { clearable: "clearable", clearText: "clearText", customAction: "customAction" }, outputs: { confirm: "confirm", clear: "clear" }, ngImport: i0, template: "<div class=\"aui-calendar-footer__wrapper\">\n <div style=\"flex: 1\">\n <ng-content></ng-content>\n </div>\n <div>\n <ng-container\n *ngIf=\"customAction; else default\"\n [ngTemplateOutlet]=\"customAction\"\n >\n </ng-container>\n <ng-template #default>\n <button\n aui-button=\"text\"\n *ngIf=\"clearable\"\n (click)=\"clear.emit()\"\n size=\"small\"\n >\n {{ clearText || ('clear' | auiI18n) }}\n </button>\n <button\n aui-button=\"primary\"\n (click)=\"confirm.emit()\"\n size=\"small\"\n >\n {{ 'confirm' | auiI18n }}\n </button>\n </ng-template>\n </div>\n</div>\n", styles: [".aui-calendar-footer__wrapper{display:flex;flex-direction:row;justify-content:space-between;border-top:1px solid rgb(var(--aui-color-n-8));padding:8px 0 0}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4143
- }
4144
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CalendarFooterComponent, decorators: [{
4145
- type: Component,
4146
- args: [{ selector: 'aui-calendar-footer', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"aui-calendar-footer__wrapper\">\n <div style=\"flex: 1\">\n <ng-content></ng-content>\n </div>\n <div>\n <ng-container\n *ngIf=\"customAction; else default\"\n [ngTemplateOutlet]=\"customAction\"\n >\n </ng-container>\n <ng-template #default>\n <button\n aui-button=\"text\"\n *ngIf=\"clearable\"\n (click)=\"clear.emit()\"\n size=\"small\"\n >\n {{ clearText || ('clear' | auiI18n) }}\n </button>\n <button\n aui-button=\"primary\"\n (click)=\"confirm.emit()\"\n size=\"small\"\n >\n {{ 'confirm' | auiI18n }}\n </button>\n </ng-template>\n </div>\n</div>\n", styles: [".aui-calendar-footer__wrapper{display:flex;flex-direction:row;justify-content:space-between;border-top:1px solid rgb(var(--aui-color-n-8));padding:8px 0 0}\n"] }]
4147
- }], propDecorators: { clearable: [{
4148
- type: Input
4149
- }], clearText: [{
4150
- type: Input
4151
- }], customAction: [{
4152
- type: Input
4153
- }], confirm: [{
4154
- type: Output
4155
- }], clear: [{
4156
- type: Output
4157
- }] } });
4058
+ const zh = {
4059
+ locale: 'zh',
4060
+ translation: {
4061
+ start_date: '开始日期',
4062
+ end_date: '结束日期',
4063
+ select_time: '选择时间',
4064
+ select_date: '选择日期',
4065
+ clear: '清除',
4066
+ confirm: '确定',
4067
+ to: '至',
4068
+ year_suffix: '年',
4069
+ month_suffix: '',
4070
+ monday: '一',
4071
+ tuesday: '二',
4072
+ wednesday: '三',
4073
+ thursday: '四',
4074
+ friday: '五',
4075
+ saturday: '六',
4076
+ sunday: '日',
4077
+ now: '此刻',
4078
+ select_all: '全选',
4079
+ today: '今天',
4080
+ },
4081
+ };
4158
4082
 
4159
- dayjs.extend(isBetween);
4160
- const bem$4 = buildBem('aui-picker-panel');
4161
- class PickerPanelComponent {
4162
- cdr;
4163
- navRange;
4164
- type;
4165
- anchor = dayjs();
4166
- matchDates;
4167
- disabledDate = () => false;
4168
- set weekStartDay(day) {
4169
- const normalized = Math.max(Math.min(Math.round(day), 6), 0);
4170
- this.weekDefs = [
4171
- ...this.weekDefs.slice(normalized),
4172
- ...this.weekDefs.slice(0, normalized),
4173
- ];
4174
- this._weekStartDay = normalized;
4175
- }
4176
- get weekStartDay() {
4177
- return this._weekStartDay;
4083
+ let hiddenTextarea;
4084
+ const HIDDEN_STYLE = `
4085
+ height:0 !important;
4086
+ visibility:hidden !important;
4087
+ overflow:hidden !important;
4088
+ position:absolute !important;
4089
+ z-index:-1000 !important;
4090
+ top:0 !important;
4091
+ right:0 !important
4092
+ `;
4093
+ const CONTEXT_STYLE = [
4094
+ 'letter-spacing',
4095
+ 'line-height',
4096
+ 'padding-top',
4097
+ 'padding-bottom',
4098
+ 'font-family',
4099
+ 'font-weight',
4100
+ 'font-size',
4101
+ 'text-rendering',
4102
+ 'text-transform',
4103
+ 'width',
4104
+ 'text-indent',
4105
+ 'padding-left',
4106
+ 'padding-right',
4107
+ 'border-width',
4108
+ 'box-sizing',
4109
+ ];
4110
+ function calculateNodeStyling(targetElement) {
4111
+ const style = window.getComputedStyle(targetElement);
4112
+ const boxSizing = style.getPropertyValue('box-sizing');
4113
+ const paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) +
4114
+ parseFloat(style.getPropertyValue('padding-top'));
4115
+ const borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) +
4116
+ parseFloat(style.getPropertyValue('border-top-width'));
4117
+ const contextStyle = CONTEXT_STYLE.map(name => `${name}:${style.getPropertyValue(name)}`).join(';');
4118
+ return { contextStyle, paddingSize, borderSize, boxSizing };
4119
+ }
4120
+ function calcTextareaHeight(targetElement, minRows = 1, maxRows = null) {
4121
+ if (!hiddenTextarea) {
4122
+ hiddenTextarea = document.createElement('textarea');
4123
+ document.body.append(hiddenTextarea);
4178
4124
  }
4179
- minDate;
4180
- maxDate;
4181
- get disabledDateFn() {
4182
- return composeDisabledDateFn(date => this.minDate && date.isBefore(this.minDate, 'date'), date => this.maxDate && date.isAfter(this.maxDate, 'date'), this.disabledDate);
4125
+ const { paddingSize, borderSize, contextStyle } = calculateNodeStyling(targetElement);
4126
+ hiddenTextarea.setAttribute('style', `${contextStyle};${HIDDEN_STYLE}`);
4127
+ hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';
4128
+ let height = hiddenTextarea.scrollHeight + borderSize;
4129
+ hiddenTextarea.value = '';
4130
+ const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;
4131
+ const result = {};
4132
+ if (minRows !== null) {
4133
+ const minHeight = singleRowHeight * minRows + paddingSize + borderSize;
4134
+ height = Math.max(minHeight, height);
4135
+ result.minHeight = `${minHeight}px`;
4183
4136
  }
4184
- _weekStartDay = 0;
4185
- panelData;
4186
- select = new EventEmitter();
4187
- hovered = new EventEmitter();
4188
- bem = bem$4;
4189
- DateNavRange = DateNavRange;
4190
- weekDefs = [
4191
- 'sunday',
4192
- 'monday',
4193
- 'tuesday',
4194
- 'wednesday',
4195
- 'thursday',
4196
- 'friday',
4197
- 'saturday',
4198
- ];
4199
- constructor(cdr) {
4200
- this.cdr = cdr;
4137
+ if (maxRows !== null) {
4138
+ const maxHeight = singleRowHeight * maxRows + paddingSize + borderSize;
4139
+ height = Math.min(maxHeight, height);
4140
+ result.maxHeight = `${maxHeight}px`;
4201
4141
  }
4202
- ngOnChanges() {
4203
- const headerRange = calcRangeValue(this.navRange, this.anchor);
4204
- this.renderPanelData(headerRange.start, this.navRange);
4142
+ result.height = `${height}px`;
4143
+ if (hiddenTextarea.parentNode) {
4144
+ hiddenTextarea.remove();
4205
4145
  }
4206
- renderPanelData(date, navRange) {
4207
- const value = [];
4208
- let colCounts = 0;
4209
- let rowCounts = 0;
4210
- if (!this.panelData) {
4211
- this.panelData = [[]];
4212
- }
4213
- const [...values] = getDatePanelIterable(date, navRange, this.weekStartDay);
4214
- switch (navRange) {
4215
- case DateNavRange.Month: {
4216
- colCounts = DAY_PANEL_COLUMN_COUNT;
4217
- rowCounts = DAY_PANEL_ROW_COUNT;
4218
- break;
4219
- }
4220
- case DateNavRange.Decade: {
4221
- colCounts = YEAR_PANEL_COLUMN_COUNT;
4222
- rowCounts = YEAR_PANEL_ROW_COUNT;
4223
- break;
4224
- }
4225
- case DateNavRange.Year: {
4226
- colCounts = MONTH_PANEL_COLUMN_COUNT;
4227
- rowCounts = MONTH_PANEL_ROW_COUNT;
4228
- break;
4229
- }
4230
- }
4231
- for (let k = 0; k < rowCounts; k++) {
4232
- const row = [];
4233
- for (let i = 0; i < colCounts; i++) {
4234
- const cell = formatDate(navRange, values[k * colCounts + i], date);
4235
- cell.isDisabled = this.disabledDateFn(cell.value, navRange);
4236
- const sortedDates = sortDates(this.matchDates);
4237
- if (sortedDates?.length === 2 && navRange === DateNavRange.Month) {
4238
- if (cell.value.isBetween(sortedDates[0], sortedDates[1]) &&
4239
- !cell.isBackground) {
4240
- cell.inRange = true;
4241
- }
4242
- cell.isRangeStart =
4243
- cell.value.isSame(sortedDates[0], DAY) && !cell.isBackground;
4244
- cell.isRangeEnd =
4245
- cell.value.isSame(sortedDates[1], DAY) && !cell.isBackground;
4246
- if (cell.isRangeStart && cell.isRangeEnd) {
4247
- cell.isRangeStart = false;
4248
- cell.isRangeEnd = false;
4249
- }
4250
- }
4251
- row.push(cell);
4252
- }
4253
- value.push(row);
4254
- }
4255
- this.panelData = value.slice();
4256
- this.cdr.markForCheck();
4146
+ hiddenTextarea = null;
4147
+ return result;
4148
+ }
4149
+
4150
+ const DEFAULT_VALUE = {
4151
+ minRows: 3,
4152
+ maxRows: 6,
4153
+ };
4154
+ class AutosizeDirective {
4155
+ elRef;
4156
+ ngControl;
4157
+ _autoSize = DEFAULT_VALUE;
4158
+ destroy$$ = new Subject();
4159
+ get autoSize() {
4160
+ return this._autoSize;
4257
4161
  }
4258
- match(value) {
4259
- if (!this.matchDates?.filter(v => !!v)?.length ||
4260
- getNavRangeByType(this.type) !== this.navRange) {
4261
- return false;
4162
+ set autoSize(value) {
4163
+ if (!value) {
4164
+ value = DEFAULT_VALUE;
4262
4165
  }
4263
- return this.matchDates?.some(dateValue => this.navRange === DateNavRange.Decade
4264
- ? value.isSame(dateValue, YEAR)
4265
- : this.navRange === DateNavRange.Year
4266
- ? value.isSame(dateValue, MONTH)
4267
- : value.isSame(dateValue, DAY));
4166
+ this._autoSize = value;
4167
+ this.resizeTextarea();
4268
4168
  }
4269
- matchToday(value) {
4270
- return value.isSame(dayjs(), getTypeByNavRange(this.navRange));
4169
+ constructor(elRef, ngControl) {
4170
+ this.elRef = elRef;
4171
+ this.ngControl = ngControl;
4271
4172
  }
4272
- selectValue(value) {
4273
- this.select.next(value);
4173
+ resizeTextarea() {
4174
+ const el = this.elRef.nativeElement;
4175
+ const autoSize = this._autoSize;
4176
+ Object.assign(el.style, calcTextareaHeight(el, autoSize.minRows ?? DEFAULT_VALUE.minRows, autoSize.maxRows || DEFAULT_VALUE.maxRows));
4274
4177
  }
4275
- trackByFn() {
4276
- return this.navRange;
4178
+ ngAfterViewInit() {
4179
+ this.ngControl.valueChanges
4180
+ .pipe(startWith(null), takeUntil(this.destroy$$))
4181
+ .subscribe(() => this.resizeTextarea());
4277
4182
  }
4278
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: PickerPanelComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
4279
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: PickerPanelComponent, selector: "aui-picker-panel", inputs: { navRange: "navRange", type: "type", anchor: "anchor", matchDates: "matchDates", disabledDate: "disabledDate", weekStartDay: "weekStartDay", minDate: "minDate", maxDate: "maxDate" }, outputs: { select: "select", hovered: "hovered" }, usesOnChanges: true, ngImport: i0, template: "<div\n [class]=\"bem.element('container')\"\n [ngClass]=\"{\n 'day-panel-container': navRange === DateNavRange.Month,\n 'month-panel-container': navRange === DateNavRange.Year,\n 'year-panel-container': navRange === DateNavRange.Decade\n }\"\n>\n <div\n [class]=\"[bem.element('row'), 'week-header'].join(' ')\"\n *ngIf=\"navRange === DateNavRange.Month\"\n >\n <span\n *ngFor=\"let item of weekDefs\"\n [class]=\"bem.element('cell')\"\n >\n {{ item | auiI18n }}\n </span>\n </div>\n <div\n [class]=\"bem.element('row')\"\n *ngFor=\"let row of panelData; trackBy: trackByFn\"\n >\n <span\n *ngFor=\"let item of row; trackBy: trackByFn\"\n [class]=\"bem.element('cell')\"\n [ngClass]=\"{\n inRange: item.inRange && !item.isDisabled,\n isActive: match(item.value),\n isBackground: item.isBackground && !item.isDisabled,\n isRangeStart: item.isRangeStart,\n isRangeEnd: item.isRangeEnd,\n isToday: matchToday(item.value) && !item.isBackground,\n isDisabled: item.isDisabled\n }\"\n ><button\n aui-button=\"text\"\n [plain]=\"true\"\n [size]=\"navRange === DateNavRange.Month ? 'mini' : 'small'\"\n [disabled]=\"item.isDisabled\"\n (click)=\"selectValue(item.value)\"\n (mouseenter)=\"hovered.next(item.value)\"\n >\n {{ item.label\n }}<ng-container *ngIf=\"navRange === DateNavRange.Year\">{{\n 'month_suffix' | auiI18n\n }}</ng-container>\n </button>\n </span>\n </div>\n</div>\n", styles: [".aui-picker-panel__container{height:min-content;box-sizing:border-box;justify-content:stretch;display:flex;flex-direction:column;margin:12px 9px;align-items:center}.aui-picker-panel__container .aui-button{box-sizing:border-box}.aui-picker-panel__container .aui-button__content{padding:0!important}.aui-picker-panel__container.month-panel-container button,.aui-picker-panel__container.year-panel-container button{width:56px;height:28px!important}.aui-picker-panel__container.day-panel-container{height:min-content;padding:0;margin:0}.aui-picker-panel__container.day-panel-container button{height:24px!important;width:24px!important}.aui-picker-panel__container.day-panel-container .aui-picker-panel__row+.aui-picker-panel__row{margin-top:8px}.aui-picker-panel__row+.aui-picker-panel__row{margin-top:20px}.aui-picker-panel__row{flex:1;display:flex;align-items:center;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);width:100%}.aui-picker-panel__row.week-header{color:rgb(var(--aui-color-help-text));margin-bottom:8px}.aui-picker-panel__row.week-header span{display:inline-block;margin:0;width:36px;text-align:center}.aui-picker-panel__cell{display:inline-flex;position:relative;align-items:center;justify-content:center;margin-inline:6px}.aui-picker-panel__cell button{box-sizing:content-box;transition:color .3s ease,background-color .3s ease}.aui-picker-panel__cell.inRange{background-color:rgb(var(--aui-color-p-6));box-shadow:-6px 0 0 0 rgb(var(--aui-color-p-6)),6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeEnd{box-shadow:-6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeStart{box-shadow:6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isDisabled{background-color:rgb(var(--aui-color-n-8));box-shadow:-6px 0 0 0 rgb(var(--aui-color-n-8)),6px 0 0 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isDisabled button{color:rgb(var(--aui-color-disabled-text))!important;border-color:rgb(var(--aui-color-disabled-text))!important}.aui-picker-panel__cell.isDisabled.isActive button,.aui-picker-panel__cell.isDisabled.isToday button{color:#fff!important;border-color:rgb(var(--aui-color-p-4))!important;background-color:rgb(var(--aui-color-p-4))!important}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled,.isRangeStart){box-shadow:-12px 0 0 0 rgb(var(--aui-color-popper-bg))}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled).isRangeStart{box-shadow:-12px 0 0 0 rgb(var(--aui-color-popper-bg)),6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell:not(.isDisabled)+.aui-picker-panel__cell.isDisabled{box-shadow:6px 0 0 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isToday button{border:rgb(var(--aui-color-primary)) 1px solid;color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-7))}.aui-picker-panel__cell.isActive button{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-picker-panel__cell.isBackground button{background-color:initial!important;color:rgb(var(--aui-color-disabled-text))}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4183
+ ngOnDestroy() {
4184
+ this.destroy$$.next();
4185
+ this.destroy$$.complete();
4186
+ }
4187
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AutosizeDirective, deps: [{ token: i0.ElementRef }, { token: i2$2.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
4188
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: AutosizeDirective, selector: "textarea[autosize][ngModel],textarea[autosize][formControl],textarea[autosize][formControlName]", inputs: { autoSize: ["autosize", "autoSize"] }, exportAs: ["TextareaAutosize"], ngImport: i0 });
4280
4189
  }
4281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: PickerPanelComponent, decorators: [{
4190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AutosizeDirective, decorators: [{
4191
+ type: Directive,
4192
+ args: [{
4193
+ selector: 'textarea[autosize][ngModel],textarea[autosize][formControl],textarea[autosize][formControlName]',
4194
+ exportAs: 'TextareaAutosize',
4195
+ }]
4196
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i2$2.NgControl }]; }, propDecorators: { autoSize: [{
4197
+ type: Input,
4198
+ args: ['autosize']
4199
+ }] } });
4200
+
4201
+ class ClickOutsideDirective {
4202
+ el;
4203
+ auiClickOutside = new EventEmitter();
4204
+ onBodyClick(event) {
4205
+ if (!this.el.nativeElement.contains(event.target)) {
4206
+ this.auiClickOutside.emit(event);
4207
+ }
4208
+ }
4209
+ constructor(el) {
4210
+ this.el = el;
4211
+ }
4212
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
4213
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: ClickOutsideDirective, selector: "[auiClickOutside]", outputs: { auiClickOutside: "auiClickOutside" }, host: { listeners: { "document:click": "onBodyClick($event)" } }, exportAs: ["auiClickOutside"], ngImport: i0 });
4214
+ }
4215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ClickOutsideDirective, decorators: [{
4216
+ type: Directive,
4217
+ args: [{
4218
+ selector: '[auiClickOutside]',
4219
+ exportAs: 'auiClickOutside',
4220
+ }]
4221
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { auiClickOutside: [{
4222
+ type: Output
4223
+ }], onBodyClick: [{
4224
+ type: HostListener,
4225
+ args: ['document:click', ['$event']]
4226
+ }] } });
4227
+
4228
+ class SharedModule {
4229
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4230
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: SharedModule, declarations: [ClickOutsideDirective], exports: [ClickOutsideDirective] });
4231
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SharedModule });
4232
+ }
4233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SharedModule, decorators: [{
4234
+ type: NgModule,
4235
+ args: [{
4236
+ declarations: [ClickOutsideDirective],
4237
+ exports: [ClickOutsideDirective],
4238
+ }]
4239
+ }] });
4240
+
4241
+ const TagType = {
4242
+ Primary: 'primary',
4243
+ Success: 'success',
4244
+ Warning: 'warning',
4245
+ Error: 'error',
4246
+ Info: 'info',
4247
+ };
4248
+
4249
+ class CheckTagComponent {
4250
+ bem = buildBem('aui-tag');
4251
+ hovered = false;
4252
+ checked = false;
4253
+ size = ComponentSize.Medium;
4254
+ round = true;
4255
+ checkedChange = new EventEmitter();
4256
+ get rootClass() {
4257
+ return `aui-check-tag ${this.bem.block(this.size, this.checked || this.hovered ? TagType.Primary : TagType.Info)} ${this.round ? 'isRound' : ''}`;
4258
+ }
4259
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CheckTagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4260
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: CheckTagComponent, selector: "aui-check-tag", inputs: { checked: "checked", size: "size", round: "round" }, outputs: { checkedChange: "checkedChange" }, ngImport: i0, template: "<div\n [class]=\"rootClass\"\n (click)=\"checkedChange.emit(!checked)\"\n (mouseenter)=\"hovered = true\"\n (mouseleave)=\"hovered = false\"\n [class.isSolid]=\"checked\"\n>\n <span class=\"aui-tag__content\"><ng-content></ng-content></span>\n</div>\n", styles: [".aui-check-tag{cursor:pointer}.aui-check-tag .aui-tag__content{display:flex;-webkit-user-select:none;user-select:none}.aui-check-tag .aui-tag__checkbox{align-self:center}.aui-check-tag.aui-tag--info{color:rgb(var(--aui-color-n-1))}.aui-check-tag.aui-tag--medium{font-size:var(--aui-font-size-m)}.aui-check-tag.aui-tag--medium.isRound{border-radius:calc(var(--aui-inline-height-s) / 2)}aui-check-tag+aui-check-tag .aui-check-tag{margin-left:8px}\n", ".aui-tag{display:inline-flex;align-items:center;border-radius:var(--aui-border-radius-m);border:1px solid transparent;max-width:240px;vertical-align:middle;transition:background-color .3s ease}.aui-tag__content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-tag .aui-tag__close .aui-icon{margin-left:4px;border-radius:50%;cursor:pointer;transition:all .3s ease}.aui-tag--large{padding:0 var(--aui-inline-padding-m);height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tag--large.isRound{border-radius:calc(var(--aui-inline-height-m) / 2)}.aui-tag--medium{padding:0 var(--aui-inline-padding-s);height:var(--aui-inline-height-s);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--medium.isRound{border-radius:calc(var(--aui-inline-height-s) / 2)}.aui-tag--small{padding:0 var(--aui-inline-padding-xs);height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--small.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--mini{padding:0 var(--aui-inline-padding-xs);height:20px;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--mini.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--primary{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary.hasBorder{border-color:rgb(var(--aui-color-p-2))}.aui-tag--primary.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-p-1))}.aui-tag--primary.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-p-0))}.aui-tag--primary.allowClick:hover{background-color:rgb(var(--aui-color-p-7));cursor:pointer}.aui-tag--primary.allowClick:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-p-6));background-color:rgb(var(--aui-color-primary))}.aui-tag--success{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success.hasBorder{border-color:rgb(var(--aui-color-g-2))}.aui-tag--success.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-g-1))}.aui-tag--success.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-g-0))}.aui-tag--success.allowClick:hover{background-color:rgb(var(--aui-color-g-7));cursor:pointer}.aui-tag--success.allowClick:active{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-g-6));background-color:rgb(var(--aui-color-green))}.aui-tag--warning{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning.hasBorder{border-color:rgb(var(--aui-color-y-2))}.aui-tag--warning.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-y-1))}.aui-tag--warning.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-y-0))}.aui-tag--warning.allowClick:hover{background-color:rgb(var(--aui-color-y-7));cursor:pointer}.aui-tag--warning.allowClick:active{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-y-6));background-color:rgb(var(--aui-color-yellow))}.aui-tag--error{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error.hasBorder{border-color:rgb(var(--aui-color-r-2))}.aui-tag--error.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-r-1))}.aui-tag--error.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-r-0))}.aui-tag--error.allowClick:hover{background-color:rgb(var(--aui-color-r-7));cursor:pointer}.aui-tag--error.allowClick:active{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-r-6));background-color:rgb(var(--aui-color-red))}.aui-tag--info{color:rgb(var(--aui-color-n-2));background-color:rgb(var(--aui-color-n-8))}.aui-tag--info.hasBorder{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-button-bg))}.aui-tag--info .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tag.isInvalid{text-decoration:line-through}.aui-tag.isSolid.aui-tag--primary{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-tag.isSolid.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-primary));background-color:#fff}.aui-tag.isSolid.aui-tag--success{color:#fff;background-color:rgb(var(--aui-color-green))}.aui-tag.isSolid.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-green));background-color:#fff}.aui-tag.isSolid.aui-tag--warning{color:#fff;background-color:rgb(var(--aui-color-yellow))}.aui-tag.isSolid.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-yellow));background-color:#fff}.aui-tag.isSolid.aui-tag--error{color:#fff;background-color:rgb(var(--aui-color-red))}.aui-tag.isSolid.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-red));background-color:#fff}.aui-tag.allowClick a{color:inherit}.aui-tag.allowClick:hover{cursor:pointer}aui-tag+aui-tag .aui-tag--large,aui-tag+aui-tag .aui-tag--medium,aui-tag+aui-tag .aui-tag--small{margin-left:var(--aui-spacing-m)}aui-tag+aui-tag .aui-tag--mini{margin-left:6px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4261
+ }
4262
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CheckTagComponent, decorators: [{
4282
4263
  type: Component,
4283
- args: [{ selector: 'aui-picker-panel', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [class]=\"bem.element('container')\"\n [ngClass]=\"{\n 'day-panel-container': navRange === DateNavRange.Month,\n 'month-panel-container': navRange === DateNavRange.Year,\n 'year-panel-container': navRange === DateNavRange.Decade\n }\"\n>\n <div\n [class]=\"[bem.element('row'), 'week-header'].join(' ')\"\n *ngIf=\"navRange === DateNavRange.Month\"\n >\n <span\n *ngFor=\"let item of weekDefs\"\n [class]=\"bem.element('cell')\"\n >\n {{ item | auiI18n }}\n </span>\n </div>\n <div\n [class]=\"bem.element('row')\"\n *ngFor=\"let row of panelData; trackBy: trackByFn\"\n >\n <span\n *ngFor=\"let item of row; trackBy: trackByFn\"\n [class]=\"bem.element('cell')\"\n [ngClass]=\"{\n inRange: item.inRange && !item.isDisabled,\n isActive: match(item.value),\n isBackground: item.isBackground && !item.isDisabled,\n isRangeStart: item.isRangeStart,\n isRangeEnd: item.isRangeEnd,\n isToday: matchToday(item.value) && !item.isBackground,\n isDisabled: item.isDisabled\n }\"\n ><button\n aui-button=\"text\"\n [plain]=\"true\"\n [size]=\"navRange === DateNavRange.Month ? 'mini' : 'small'\"\n [disabled]=\"item.isDisabled\"\n (click)=\"selectValue(item.value)\"\n (mouseenter)=\"hovered.next(item.value)\"\n >\n {{ item.label\n }}<ng-container *ngIf=\"navRange === DateNavRange.Year\">{{\n 'month_suffix' | auiI18n\n }}</ng-container>\n </button>\n </span>\n </div>\n</div>\n", styles: [".aui-picker-panel__container{height:min-content;box-sizing:border-box;justify-content:stretch;display:flex;flex-direction:column;margin:12px 9px;align-items:center}.aui-picker-panel__container .aui-button{box-sizing:border-box}.aui-picker-panel__container .aui-button__content{padding:0!important}.aui-picker-panel__container.month-panel-container button,.aui-picker-panel__container.year-panel-container button{width:56px;height:28px!important}.aui-picker-panel__container.day-panel-container{height:min-content;padding:0;margin:0}.aui-picker-panel__container.day-panel-container button{height:24px!important;width:24px!important}.aui-picker-panel__container.day-panel-container .aui-picker-panel__row+.aui-picker-panel__row{margin-top:8px}.aui-picker-panel__row+.aui-picker-panel__row{margin-top:20px}.aui-picker-panel__row{flex:1;display:flex;align-items:center;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);width:100%}.aui-picker-panel__row.week-header{color:rgb(var(--aui-color-help-text));margin-bottom:8px}.aui-picker-panel__row.week-header span{display:inline-block;margin:0;width:36px;text-align:center}.aui-picker-panel__cell{display:inline-flex;position:relative;align-items:center;justify-content:center;margin-inline:6px}.aui-picker-panel__cell button{box-sizing:content-box;transition:color .3s ease,background-color .3s ease}.aui-picker-panel__cell.inRange{background-color:rgb(var(--aui-color-p-6));box-shadow:-6px 0 0 0 rgb(var(--aui-color-p-6)),6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeEnd{box-shadow:-6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeStart{box-shadow:6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isDisabled{background-color:rgb(var(--aui-color-n-8));box-shadow:-6px 0 0 0 rgb(var(--aui-color-n-8)),6px 0 0 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isDisabled button{color:rgb(var(--aui-color-disabled-text))!important;border-color:rgb(var(--aui-color-disabled-text))!important}.aui-picker-panel__cell.isDisabled.isActive button,.aui-picker-panel__cell.isDisabled.isToday button{color:#fff!important;border-color:rgb(var(--aui-color-p-4))!important;background-color:rgb(var(--aui-color-p-4))!important}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled,.isRangeStart){box-shadow:-12px 0 0 0 rgb(var(--aui-color-popper-bg))}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled).isRangeStart{box-shadow:-12px 0 0 0 rgb(var(--aui-color-popper-bg)),6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell:not(.isDisabled)+.aui-picker-panel__cell.isDisabled{box-shadow:6px 0 0 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isToday button{border:rgb(var(--aui-color-primary)) 1px solid;color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-7))}.aui-picker-panel__cell.isActive button{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-picker-panel__cell.isBackground button{background-color:initial!important;color:rgb(var(--aui-color-disabled-text))}\n"] }]
4284
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { navRange: [{
4285
- type: Input
4286
- }], type: [{
4287
- type: Input
4288
- }], anchor: [{
4289
- type: Input
4290
- }], matchDates: [{
4291
- type: Input
4292
- }], disabledDate: [{
4293
- type: Input
4294
- }], weekStartDay: [{
4264
+ args: [{ selector: 'aui-check-tag', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, template: "<div\n [class]=\"rootClass\"\n (click)=\"checkedChange.emit(!checked)\"\n (mouseenter)=\"hovered = true\"\n (mouseleave)=\"hovered = false\"\n [class.isSolid]=\"checked\"\n>\n <span class=\"aui-tag__content\"><ng-content></ng-content></span>\n</div>\n", styles: [".aui-check-tag{cursor:pointer}.aui-check-tag .aui-tag__content{display:flex;-webkit-user-select:none;user-select:none}.aui-check-tag .aui-tag__checkbox{align-self:center}.aui-check-tag.aui-tag--info{color:rgb(var(--aui-color-n-1))}.aui-check-tag.aui-tag--medium{font-size:var(--aui-font-size-m)}.aui-check-tag.aui-tag--medium.isRound{border-radius:calc(var(--aui-inline-height-s) / 2)}aui-check-tag+aui-check-tag .aui-check-tag{margin-left:8px}\n", ".aui-tag{display:inline-flex;align-items:center;border-radius:var(--aui-border-radius-m);border:1px solid transparent;max-width:240px;vertical-align:middle;transition:background-color .3s ease}.aui-tag__content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-tag .aui-tag__close .aui-icon{margin-left:4px;border-radius:50%;cursor:pointer;transition:all .3s ease}.aui-tag--large{padding:0 var(--aui-inline-padding-m);height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tag--large.isRound{border-radius:calc(var(--aui-inline-height-m) / 2)}.aui-tag--medium{padding:0 var(--aui-inline-padding-s);height:var(--aui-inline-height-s);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--medium.isRound{border-radius:calc(var(--aui-inline-height-s) / 2)}.aui-tag--small{padding:0 var(--aui-inline-padding-xs);height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--small.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--mini{padding:0 var(--aui-inline-padding-xs);height:20px;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--mini.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--primary{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary.hasBorder{border-color:rgb(var(--aui-color-p-2))}.aui-tag--primary.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-p-1))}.aui-tag--primary.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-p-0))}.aui-tag--primary.allowClick:hover{background-color:rgb(var(--aui-color-p-7));cursor:pointer}.aui-tag--primary.allowClick:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-p-6));background-color:rgb(var(--aui-color-primary))}.aui-tag--success{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success.hasBorder{border-color:rgb(var(--aui-color-g-2))}.aui-tag--success.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-g-1))}.aui-tag--success.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-g-0))}.aui-tag--success.allowClick:hover{background-color:rgb(var(--aui-color-g-7));cursor:pointer}.aui-tag--success.allowClick:active{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-g-6));background-color:rgb(var(--aui-color-green))}.aui-tag--warning{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning.hasBorder{border-color:rgb(var(--aui-color-y-2))}.aui-tag--warning.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-y-1))}.aui-tag--warning.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-y-0))}.aui-tag--warning.allowClick:hover{background-color:rgb(var(--aui-color-y-7));cursor:pointer}.aui-tag--warning.allowClick:active{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-y-6));background-color:rgb(var(--aui-color-yellow))}.aui-tag--error{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error.hasBorder{border-color:rgb(var(--aui-color-r-2))}.aui-tag--error.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-r-1))}.aui-tag--error.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-r-0))}.aui-tag--error.allowClick:hover{background-color:rgb(var(--aui-color-r-7));cursor:pointer}.aui-tag--error.allowClick:active{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-r-6));background-color:rgb(var(--aui-color-red))}.aui-tag--info{color:rgb(var(--aui-color-n-2));background-color:rgb(var(--aui-color-n-8))}.aui-tag--info.hasBorder{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-button-bg))}.aui-tag--info .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tag.isInvalid{text-decoration:line-through}.aui-tag.isSolid.aui-tag--primary{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-tag.isSolid.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-primary));background-color:#fff}.aui-tag.isSolid.aui-tag--success{color:#fff;background-color:rgb(var(--aui-color-green))}.aui-tag.isSolid.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-green));background-color:#fff}.aui-tag.isSolid.aui-tag--warning{color:#fff;background-color:rgb(var(--aui-color-yellow))}.aui-tag.isSolid.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-yellow));background-color:#fff}.aui-tag.isSolid.aui-tag--error{color:#fff;background-color:rgb(var(--aui-color-red))}.aui-tag.isSolid.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-red));background-color:#fff}.aui-tag.allowClick a{color:inherit}.aui-tag.allowClick:hover{cursor:pointer}aui-tag+aui-tag .aui-tag--large,aui-tag+aui-tag .aui-tag--medium,aui-tag+aui-tag .aui-tag--small{margin-left:var(--aui-spacing-m)}aui-tag+aui-tag .aui-tag--mini{margin-left:6px}\n"] }]
4265
+ }], propDecorators: { checked: [{
4295
4266
  type: Input
4296
- }], minDate: [{
4267
+ }], size: [{
4297
4268
  type: Input
4298
- }], maxDate: [{
4269
+ }], round: [{
4299
4270
  type: Input
4300
- }], select: [{
4301
- type: Output
4302
- }], hovered: [{
4271
+ }], checkedChange: [{
4303
4272
  type: Output
4304
4273
  }] } });
4305
4274
 
4306
- class DatePickerPanelComponent extends CommonFormControl {
4307
- clearable = true;
4308
- clearText;
4309
- set type(type) {
4310
- this.navRange = getNavRangeByType(type);
4311
- this._type = type;
4312
- }
4313
- get type() {
4314
- return this._type;
4315
- }
4316
- _type;
4317
- showTime = false;
4318
- disabledDate = () => false;
4319
- disabledTime = () => null;
4320
- weekStartDay = 0;
4321
- showFooter = true;
4322
- footerTemplate;
4323
- extraFooter;
4324
- minDate;
4325
- maxDate;
4326
- confirm = new EventEmitter();
4327
- clear = new EventEmitter();
4328
- _cacheSelectedDate;
4329
- _cacheDisabledTimeFn;
4330
- getDisabledTimeFn(selectedDate, type) {
4331
- if (selectedDate !== this._cacheSelectedDate) {
4332
- this._cacheDisabledTimeFn = combineDisabledTimeFn(this._disabledTimeFn.bind(this), this.disabledTime)(selectedDate);
4333
- this._cacheSelectedDate = selectedDate;
4334
- }
4335
- return this._cacheDisabledTimeFn?.[type];
4336
- }
4337
- navRange;
4338
- get currentNavType() {
4339
- return getTypeByNavRange(this.navRange);
4340
- }
4341
- anchor;
4342
- selectedDate;
4343
- selectedTime;
4344
- DateNavRange = DateNavRange;
4345
- DatePickerType = DatePickerType;
4346
- writeValue(obj) {
4347
- super.writeValue(obj);
4348
- this.selectedDate = obj;
4349
- this.selectedTime = getTimePickerModel(obj);
4350
- this.anchor = obj || dayjs();
4351
- this.cdr.markForCheck();
4352
- }
4353
- panelValueChange(value) {
4354
- this.selectedDate = updateDate(this.selectedDate || dayjs(), value, this.currentNavType);
4355
- this.anchor = this.selectedDate;
4356
- this.selectedDate = updateDateByTimeModel(this.selectedDate, this.selectedTime);
4357
- if (this.type === this.currentNavType) {
4358
- this.confirmValue(this.selectedDate, !this.showTime);
4359
- }
4360
- const nextNavRange = nextNavRangeType(this.navRange, getNavRangeByType(this.type));
4361
- if (this.navRange !== nextNavRange) {
4362
- this.navRange = nextNavRange;
4363
- }
4364
- }
4365
- confirmValue(value, closeAfterConfirm = true) {
4366
- this.emitValue(value ? dayjs(value) : this.selectedDate);
4367
- closeAfterConfirm && this.confirm.next(null);
4368
- }
4369
- timeDateChange(time) {
4370
- if (!this.selectedDate) {
4371
- return;
4372
- }
4373
- this.selectedDate = updateDateByTimeModel(this.selectedDate, time);
4374
- this.emitValue(this.selectedDate);
4375
- }
4376
- setToday() {
4377
- this.confirmValue(dayjs(), true);
4275
+ class TagComponent {
4276
+ bem = buildBem('aui-tag');
4277
+ type = TagType.Primary;
4278
+ size = ComponentSize.Medium;
4279
+ closeable = false;
4280
+ border = false;
4281
+ solid = false;
4282
+ invalid = false;
4283
+ round = true;
4284
+ color = '';
4285
+ allowClick = false;
4286
+ close = new EventEmitter();
4287
+ get rootClass() {
4288
+ 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' : ''}`;
4378
4289
  }
4379
- clearValue() {
4380
- this.selectedTime = null;
4381
- this.clear.next();
4290
+ get isNormalTag() {
4291
+ return !this.solid && !this.closeable && !this.invalid;
4382
4292
  }
4383
- _disabledTimeFn(selectedDate) {
4384
- const getTimeFilter = (date, comparator) => ({
4385
- hours: () => HOUR_ITEMS$1.filter(item => comparator(item, date.hour())),
4386
- minutes: (hour) => hour === date.hour()
4387
- ? MINUTE_ITEMS$1.filter(item => comparator(item, date.minute()))
4388
- : [],
4389
- seconds: (hour, minute) => hour === date.hour() && minute === date.minute()
4390
- ? SECOND_ITEMS$1.filter(item => comparator(item, date.second()))
4391
- : [],
4392
- });
4393
- if (selectedDate) {
4394
- if (this.minDate &&
4395
- selectedDate?.isSame(this.minDate, 'date')) {
4396
- return getTimeFilter(this.minDate, (a, b) => a < b);
4397
- }
4398
- if (this.maxDate &&
4399
- selectedDate?.isSame(this.maxDate, 'date')) {
4400
- return getTimeFilter(this.maxDate, (a, b) => a > b);
4401
- }
4402
- }
4293
+ get customStyle() {
4294
+ const arr = this.color.split(',');
4295
+ const main = arr[0].trim();
4296
+ const secondary = (arr[1] || arr[0]).trim();
4403
4297
  return {
4404
- hours: () => [],
4405
- minutes: () => [],
4406
- seconds: () => [],
4298
+ color: main,
4299
+ 'border-color': this.solid ? secondary : main,
4300
+ 'background-color': secondary,
4407
4301
  };
4408
4302
  }
4409
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: DatePickerPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4410
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: DatePickerPanelComponent, selector: "aui-date-picker-panel", inputs: { clearable: "clearable", clearText: "clearText", type: "type", showTime: "showTime", disabledDate: "disabledDate", disabledTime: "disabledTime", weekStartDay: "weekStartDay", showFooter: "showFooter", footerTemplate: "footerTemplate", extraFooter: "extraFooter", minDate: "minDate", maxDate: "maxDate" }, outputs: { confirm: "confirm", clear: "clear" }, providers: [
4411
- {
4412
- provide: NG_VALUE_ACCESSOR,
4413
- useExisting: forwardRef(() => DatePickerPanelComponent),
4414
- multi: true,
4415
- },
4416
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"aui-date-picker-panel__wrapper\">\n <aui-calendar-header\n [dateNavRange]=\"navRange\"\n [anchor]=\"anchor\"\n [minAvail]=\"minDate\"\n [maxAvail]=\"maxDate\"\n [style.margin-inline.px]=\"4\"\n (navRangeChange)=\"navRange = $event\"\n (anchorChange)=\"anchor = $event\"\n ></aui-calendar-header>\n\n <aui-picker-panel\n [style.margin]=\"'16px 0'\"\n [anchor]=\"anchor\"\n [navRange]=\"navRange\"\n [disabledDate]=\"disabledDate\"\n [weekStartDay]=\"weekStartDay\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [type]=\"type\"\n [matchDates]=\"[selectedDate]\"\n (select)=\"panelValueChange($event)\"\n ></aui-picker-panel>\n\n <ng-container\n *ngIf=\"extraFooter\"\n [ngTemplateOutlet]=\"extraFooter\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-container *ngIf=\"showFooter\">\n <aui-calendar-footer\n (clear)=\"clear.next()\"\n (confirm)=\"confirmValue()\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n *ngIf=\"showTime; else today\"\n >\n <ng-container\n *ngIf=\"footerTemplate; else default\"\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-template #default>\n <aui-time-picker\n *ngIf=\"currentNavType === DatePickerType.Day && showTime\"\n [showIcon]=\"false\"\n size=\"small\"\n [(ngModel)]=\"selectedTime\"\n [disableHours]=\"getDisabledTimeFn(selectedDate, 'hours')\"\n [disableMinutes]=\"getDisabledTimeFn(selectedDate, 'minutes')\"\n [disableSeconds]=\"getDisabledTimeFn(selectedDate, 'seconds')\"\n tooltipPosition=\"top start\"\n (ngModelChange)=\"timeDateChange($event)\"\n [placeholder]=\"'select_time' | auiI18n\"\n ></aui-time-picker>\n </ng-template>\n </aui-calendar-footer>\n\n <ng-template #today>\n <aui-calendar-footer\n *ngIf=\"type === DatePickerType.Day\"\n (clear)=\"clearValue()\"\n [clearable]=\"false\"\n [customAction]=\"todayBtn\"\n >\n </aui-calendar-footer>\n <ng-template #todayBtn>\n <button\n aui-button=\"inline\"\n (click)=\"setToday()\"\n >\n {{ 'today' | auiI18n }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</div>\n", styles: [".aui-date-picker-panel__wrapper{display:flex;flex-direction:column;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-date-picker-panel__wrapper .aui-time-picker{width:88px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: TimePickerComponent, selector: "aui-time-picker", inputs: ["format", "size", "placeholder", "clearable", "showIcon", "disableHours", "disableMinutes", "disableSeconds", "hourStep", "minuteStep", "secondStep", "footerTemplate"], outputs: ["open", "close"] }, { kind: "component", type: CalendarHeaderComponent, selector: "aui-calendar-header", inputs: ["dateNavRange", "anchor", "maxAvail", "minAvail"], outputs: ["navRangeChange", "anchorChange"] }, { kind: "component", type: CalendarFooterComponent, selector: "aui-calendar-footer", inputs: ["clearable", "clearText", "customAction"], outputs: ["confirm", "clear"] }, { kind: "component", type: PickerPanelComponent, selector: "aui-picker-panel", inputs: ["navRange", "type", "anchor", "matchDates", "disabledDate", "weekStartDay", "minDate", "maxDate"], outputs: ["select", "hovered"] }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4303
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4304
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: TagComponent, selector: "aui-tag", inputs: { type: "type", size: "size", closeable: "closeable", border: "border", solid: "solid", invalid: "invalid", round: "round", color: "color", allowClick: "allowClick" }, outputs: { close: "close" }, ngImport: i0, template: "<div\n [class]=\"rootClass\"\n [ngStyle]=\"customStyle\"\n>\n <span class=\"aui-tag__content\"><ng-content></ng-content></span>\n <aui-icon\n *ngIf=\"closeable\"\n class=\"aui-tag__close\"\n icon=\"xmark_small\"\n (click)=\"close.emit(); $event.stopPropagation()\"\n ></aui-icon>\n</div>\n", styles: [".aui-tag{display:inline-flex;align-items:center;border-radius:var(--aui-border-radius-m);border:1px solid transparent;max-width:240px;vertical-align:middle;transition:background-color .3s ease}.aui-tag__content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-tag .aui-tag__close .aui-icon{margin-left:4px;border-radius:50%;cursor:pointer;transition:all .3s ease}.aui-tag--large{padding:0 var(--aui-inline-padding-m);height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tag--large.isRound{border-radius:calc(var(--aui-inline-height-m) / 2)}.aui-tag--medium{padding:0 var(--aui-inline-padding-s);height:var(--aui-inline-height-s);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--medium.isRound{border-radius:calc(var(--aui-inline-height-s) / 2)}.aui-tag--small{padding:0 var(--aui-inline-padding-xs);height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--small.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--mini{padding:0 var(--aui-inline-padding-xs);height:20px;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--mini.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--primary{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary.hasBorder{border-color:rgb(var(--aui-color-p-2))}.aui-tag--primary.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-p-1))}.aui-tag--primary.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-p-0))}.aui-tag--primary.allowClick:hover{background-color:rgb(var(--aui-color-p-7));cursor:pointer}.aui-tag--primary.allowClick:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-p-6));background-color:rgb(var(--aui-color-primary))}.aui-tag--success{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success.hasBorder{border-color:rgb(var(--aui-color-g-2))}.aui-tag--success.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-g-1))}.aui-tag--success.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-g-0))}.aui-tag--success.allowClick:hover{background-color:rgb(var(--aui-color-g-7));cursor:pointer}.aui-tag--success.allowClick:active{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-g-6));background-color:rgb(var(--aui-color-green))}.aui-tag--warning{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning.hasBorder{border-color:rgb(var(--aui-color-y-2))}.aui-tag--warning.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-y-1))}.aui-tag--warning.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-y-0))}.aui-tag--warning.allowClick:hover{background-color:rgb(var(--aui-color-y-7));cursor:pointer}.aui-tag--warning.allowClick:active{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-y-6));background-color:rgb(var(--aui-color-yellow))}.aui-tag--error{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error.hasBorder{border-color:rgb(var(--aui-color-r-2))}.aui-tag--error.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-r-1))}.aui-tag--error.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-r-0))}.aui-tag--error.allowClick:hover{background-color:rgb(var(--aui-color-r-7));cursor:pointer}.aui-tag--error.allowClick:active{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-r-6));background-color:rgb(var(--aui-color-red))}.aui-tag--info{color:rgb(var(--aui-color-n-2));background-color:rgb(var(--aui-color-n-8))}.aui-tag--info.hasBorder{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-button-bg))}.aui-tag--info .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tag.isInvalid{text-decoration:line-through}.aui-tag.isSolid.aui-tag--primary{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-tag.isSolid.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-primary));background-color:#fff}.aui-tag.isSolid.aui-tag--success{color:#fff;background-color:rgb(var(--aui-color-green))}.aui-tag.isSolid.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-green));background-color:#fff}.aui-tag.isSolid.aui-tag--warning{color:#fff;background-color:rgb(var(--aui-color-yellow))}.aui-tag.isSolid.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-yellow));background-color:#fff}.aui-tag.isSolid.aui-tag--error{color:#fff;background-color:rgb(var(--aui-color-red))}.aui-tag.isSolid.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-red));background-color:#fff}.aui-tag.allowClick a{color:inherit}.aui-tag.allowClick:hover{cursor:pointer}aui-tag+aui-tag .aui-tag--large,aui-tag+aui-tag .aui-tag--medium,aui-tag+aui-tag .aui-tag--small{margin-left:var(--aui-spacing-m)}aui-tag+aui-tag .aui-tag--mini{margin-left:6px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4417
4305
  }
4418
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: DatePickerPanelComponent, decorators: [{
4306
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TagComponent, decorators: [{
4419
4307
  type: Component,
4420
- args: [{ selector: 'aui-date-picker-panel', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
4421
- {
4422
- provide: NG_VALUE_ACCESSOR,
4423
- useExisting: forwardRef(() => DatePickerPanelComponent),
4424
- multi: true,
4425
- },
4426
- ], template: "<div class=\"aui-date-picker-panel__wrapper\">\n <aui-calendar-header\n [dateNavRange]=\"navRange\"\n [anchor]=\"anchor\"\n [minAvail]=\"minDate\"\n [maxAvail]=\"maxDate\"\n [style.margin-inline.px]=\"4\"\n (navRangeChange)=\"navRange = $event\"\n (anchorChange)=\"anchor = $event\"\n ></aui-calendar-header>\n\n <aui-picker-panel\n [style.margin]=\"'16px 0'\"\n [anchor]=\"anchor\"\n [navRange]=\"navRange\"\n [disabledDate]=\"disabledDate\"\n [weekStartDay]=\"weekStartDay\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [type]=\"type\"\n [matchDates]=\"[selectedDate]\"\n (select)=\"panelValueChange($event)\"\n ></aui-picker-panel>\n\n <ng-container\n *ngIf=\"extraFooter\"\n [ngTemplateOutlet]=\"extraFooter\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-container *ngIf=\"showFooter\">\n <aui-calendar-footer\n (clear)=\"clear.next()\"\n (confirm)=\"confirmValue()\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n *ngIf=\"showTime; else today\"\n >\n <ng-container\n *ngIf=\"footerTemplate; else default\"\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-template #default>\n <aui-time-picker\n *ngIf=\"currentNavType === DatePickerType.Day && showTime\"\n [showIcon]=\"false\"\n size=\"small\"\n [(ngModel)]=\"selectedTime\"\n [disableHours]=\"getDisabledTimeFn(selectedDate, 'hours')\"\n [disableMinutes]=\"getDisabledTimeFn(selectedDate, 'minutes')\"\n [disableSeconds]=\"getDisabledTimeFn(selectedDate, 'seconds')\"\n tooltipPosition=\"top start\"\n (ngModelChange)=\"timeDateChange($event)\"\n [placeholder]=\"'select_time' | auiI18n\"\n ></aui-time-picker>\n </ng-template>\n </aui-calendar-footer>\n\n <ng-template #today>\n <aui-calendar-footer\n *ngIf=\"type === DatePickerType.Day\"\n (clear)=\"clearValue()\"\n [clearable]=\"false\"\n [customAction]=\"todayBtn\"\n >\n </aui-calendar-footer>\n <ng-template #todayBtn>\n <button\n aui-button=\"inline\"\n (click)=\"setToday()\"\n >\n {{ 'today' | auiI18n }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</div>\n", styles: [".aui-date-picker-panel__wrapper{display:flex;flex-direction:column;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-date-picker-panel__wrapper .aui-time-picker{width:88px}\n"] }]
4427
- }], propDecorators: { clearable: [{
4428
- type: Input
4429
- }], clearText: [{
4430
- type: Input
4431
- }], type: [{
4432
- type: Input
4433
- }], showTime: [{
4308
+ args: [{ selector: 'aui-tag', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, template: "<div\n [class]=\"rootClass\"\n [ngStyle]=\"customStyle\"\n>\n <span class=\"aui-tag__content\"><ng-content></ng-content></span>\n <aui-icon\n *ngIf=\"closeable\"\n class=\"aui-tag__close\"\n icon=\"xmark_small\"\n (click)=\"close.emit(); $event.stopPropagation()\"\n ></aui-icon>\n</div>\n", styles: [".aui-tag{display:inline-flex;align-items:center;border-radius:var(--aui-border-radius-m);border:1px solid transparent;max-width:240px;vertical-align:middle;transition:background-color .3s ease}.aui-tag__content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-tag .aui-tag__close .aui-icon{margin-left:4px;border-radius:50%;cursor:pointer;transition:all .3s ease}.aui-tag--large{padding:0 var(--aui-inline-padding-m);height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tag--large.isRound{border-radius:calc(var(--aui-inline-height-m) / 2)}.aui-tag--medium{padding:0 var(--aui-inline-padding-s);height:var(--aui-inline-height-s);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--medium.isRound{border-radius:calc(var(--aui-inline-height-s) / 2)}.aui-tag--small{padding:0 var(--aui-inline-padding-xs);height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--small.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--mini{padding:0 var(--aui-inline-padding-xs);height:20px;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--mini.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--primary{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary.hasBorder{border-color:rgb(var(--aui-color-p-2))}.aui-tag--primary.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-p-1))}.aui-tag--primary.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-p-0))}.aui-tag--primary.allowClick:hover{background-color:rgb(var(--aui-color-p-7));cursor:pointer}.aui-tag--primary.allowClick:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-p-6));background-color:rgb(var(--aui-color-primary))}.aui-tag--success{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success.hasBorder{border-color:rgb(var(--aui-color-g-2))}.aui-tag--success.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-g-1))}.aui-tag--success.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-g-0))}.aui-tag--success.allowClick:hover{background-color:rgb(var(--aui-color-g-7));cursor:pointer}.aui-tag--success.allowClick:active{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-g-6));background-color:rgb(var(--aui-color-green))}.aui-tag--warning{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning.hasBorder{border-color:rgb(var(--aui-color-y-2))}.aui-tag--warning.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-y-1))}.aui-tag--warning.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-y-0))}.aui-tag--warning.allowClick:hover{background-color:rgb(var(--aui-color-y-7));cursor:pointer}.aui-tag--warning.allowClick:active{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-y-6));background-color:rgb(var(--aui-color-yellow))}.aui-tag--error{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error.hasBorder{border-color:rgb(var(--aui-color-r-2))}.aui-tag--error.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-r-1))}.aui-tag--error.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-r-0))}.aui-tag--error.allowClick:hover{background-color:rgb(var(--aui-color-r-7));cursor:pointer}.aui-tag--error.allowClick:active{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-r-6));background-color:rgb(var(--aui-color-red))}.aui-tag--info{color:rgb(var(--aui-color-n-2));background-color:rgb(var(--aui-color-n-8))}.aui-tag--info.hasBorder{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-button-bg))}.aui-tag--info .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tag.isInvalid{text-decoration:line-through}.aui-tag.isSolid.aui-tag--primary{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-tag.isSolid.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-primary));background-color:#fff}.aui-tag.isSolid.aui-tag--success{color:#fff;background-color:rgb(var(--aui-color-green))}.aui-tag.isSolid.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-green));background-color:#fff}.aui-tag.isSolid.aui-tag--warning{color:#fff;background-color:rgb(var(--aui-color-yellow))}.aui-tag.isSolid.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-yellow));background-color:#fff}.aui-tag.isSolid.aui-tag--error{color:#fff;background-color:rgb(var(--aui-color-red))}.aui-tag.isSolid.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-red));background-color:#fff}.aui-tag.allowClick a{color:inherit}.aui-tag.allowClick:hover{cursor:pointer}aui-tag+aui-tag .aui-tag--large,aui-tag+aui-tag .aui-tag--medium,aui-tag+aui-tag .aui-tag--small{margin-left:var(--aui-spacing-m)}aui-tag+aui-tag .aui-tag--mini{margin-left:6px}\n"] }]
4309
+ }], propDecorators: { type: [{
4434
4310
  type: Input
4435
- }], disabledDate: [{
4311
+ }], size: [{
4436
4312
  type: Input
4437
- }], disabledTime: [{
4313
+ }], closeable: [{
4438
4314
  type: Input
4439
- }], weekStartDay: [{
4315
+ }], border: [{
4440
4316
  type: Input
4441
- }], showFooter: [{
4317
+ }], solid: [{
4442
4318
  type: Input
4443
- }], footerTemplate: [{
4319
+ }], invalid: [{
4444
4320
  type: Input
4445
- }], extraFooter: [{
4321
+ }], round: [{
4446
4322
  type: Input
4447
- }], minDate: [{
4323
+ }], color: [{
4448
4324
  type: Input
4449
- }], maxDate: [{
4325
+ }], allowClick: [{
4450
4326
  type: Input
4451
- }], confirm: [{
4452
- type: Output
4453
- }], clear: [{
4327
+ }], close: [{
4454
4328
  type: Output
4455
4329
  }] } });
4456
- function combineDisabledTimeFn(...disabledFnList) {
4457
- return (date) => ({
4458
- hours: () => Array.from(new Set(disabledFnList.flatMap(fn => fn(date)?.hours?.() || []))),
4459
- minutes: (hour) => Array.from(new Set(disabledFnList.flatMap(fn => fn(date)?.minutes?.(hour) || []))),
4460
- seconds: (hour, minute) => Array.from(new Set(disabledFnList.flatMap(fn => fn(date)?.seconds?.(hour, minute) || []))),
4461
- });
4330
+
4331
+ class TagModule {
4332
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TagModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4333
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: TagModule, declarations: [TagComponent, CheckTagComponent], imports: [CommonModule, IconModule], exports: [TagComponent, CheckTagComponent] });
4334
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TagModule, imports: [CommonModule, IconModule] });
4462
4335
  }
4336
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TagModule, decorators: [{
4337
+ type: NgModule,
4338
+ args: [{
4339
+ imports: [CommonModule, IconModule],
4340
+ declarations: [TagComponent, CheckTagComponent],
4341
+ exports: [TagComponent, CheckTagComponent],
4342
+ }]
4343
+ }] });
4463
4344
 
4464
- const bem$3 = buildBem('aui-date-range-picker-panel');
4465
- class DateRangePickerPanelComponent extends CommonFormControl {
4466
- clearable = true;
4467
- clearText;
4468
- showTime = true;
4469
- showFooter = true;
4470
- disabledDate = () => false;
4471
- disabledTime = {
4472
- left: () => null,
4473
- right: () => null,
4474
- };
4475
- weekStartDay = 0;
4476
- minDate;
4477
- maxDate;
4478
- clear = new EventEmitter();
4479
- confirm = new EventEmitter();
4480
- bem = bem$3;
4481
- Side = Side;
4482
- DatePickerType = DatePickerType;
4483
- leftDateRange = DateNavRange.Month;
4484
- rightDateRange = DateNavRange.Month;
4485
- FOOTER_DATE_FORMAT = 'YYYY-MM-dd';
4486
- leftAnchor = dayjs();
4487
- rightAnchor = dayjs().add(1, MONTH);
4488
- get maxHeaderAvail() {
4489
- return minDate(this.rightAnchor, this.maxDate);
4490
- }
4491
- get minHeaderAvail() {
4492
- return maxDate(this.minDate, this.leftAnchor);
4345
+ class NumberInputComponent extends CommonFormControl {
4346
+ bem = buildBem('aui-number-input');
4347
+ size = ComponentSize.Medium;
4348
+ min = Number.MIN_SAFE_INTEGER;
4349
+ max = Number.MAX_SAFE_INTEGER;
4350
+ step = 1;
4351
+ precision;
4352
+ controls = true;
4353
+ placeholder = '';
4354
+ controlsPosition = '';
4355
+ angleControls = false;
4356
+ clearable = false;
4357
+ inputRef;
4358
+ addonBeforeRefs;
4359
+ addonAfterRefs;
4360
+ isFocus = false;
4361
+ hasAddonBefore$;
4362
+ hasAddonAfter$;
4363
+ ngAfterContentInit() {
4364
+ this.hasAddonBefore$ = watchContentExist(this.addonBeforeRefs);
4365
+ this.hasAddonAfter$ = watchContentExist(this.addonAfterRefs);
4493
4366
  }
4494
- rangeValue = [];
4495
- matchValues;
4496
- startTime;
4497
- endTime;
4498
- writeValue(obj) {
4499
- super.writeValue(obj);
4500
- this.rangeValue = obj || [];
4501
- this.matchValues = [...this.rangeValue];
4502
- this.startTime = getTimePickerModel(obj?.[0]);
4503
- this.endTime = getTimePickerModel(obj?.[1]);
4504
- if (obj?.length === 2) {
4505
- this.reorder(sortDates(obj));
4506
- }
4507
- this.cdr.markForCheck();
4367
+ ngAfterViewInit() {
4368
+ this.inputRef.nativeElement.value = (this.model ?? '') + '';
4508
4369
  }
4509
- calendarRangeChange(type, side) {
4510
- if (side === Side.Left) {
4511
- this.leftDateRange = type;
4512
- }
4513
- else {
4514
- this.rightDateRange = type;
4370
+ valueIn(v) {
4371
+ if (this.inputRef) {
4372
+ this.inputRef.nativeElement.value = (v ?? '') + '';
4515
4373
  }
4374
+ return v;
4516
4375
  }
4517
- getDateDisabledFn(side, constrainValue) {
4518
- return composeDisabledDateFn((date, navRange) => {
4519
- if (navRange === DateNavRange.Month) {
4520
- return false;
4521
- }
4522
- if (navRange === DateNavRange.Decade) {
4523
- return date[side === Side.Left ? 'isAfter' : 'isBefore'](constrainValue, YEAR);
4524
- }
4525
- return !date[side === Side.Left ? 'isBefore' : 'isAfter'](constrainValue, MONTH);
4526
- }, (...arg) => this.disabledDate(...arg, this.rangeValue[0]));
4376
+ modelOut(value) {
4377
+ return value === null && this.clearable
4378
+ ? value
4379
+ : Math.max(this.min, Math.min(this.max, this.parsePrecision(value)));
4527
4380
  }
4528
- getDisabledTimeCachedFn(side) {
4529
- let cacheSelectedDate;
4530
- let cacheDisabledTimeFn;
4531
- return (value, key) => {
4532
- if (value !== cacheSelectedDate) {
4533
- cacheDisabledTimeFn = (this.disabledTime?.[side] || (() => null))(value);
4534
- cacheSelectedDate = value;
4535
- }
4536
- return cacheDisabledTimeFn?.[key];
4537
- };
4381
+ inputChanged(value) {
4382
+ this.emitModel(numberAttribute(value, !value && this.clearable ? null : this.model));
4538
4383
  }
4539
- leftDisabledTimeFn = this.getDisabledTimeCachedFn(Side.Left);
4540
- rightDisabledTimeFn = this.getDisabledTimeCachedFn(Side.Right);
4541
- selectPickerPanel(value, side) {
4542
- const navRange = side === Side.Left ? this.leftDateRange : this.rightDateRange;
4543
- const type = getTypeByNavRange(navRange);
4544
- const dateValue = updateDate(side === Side.Left ? this.leftAnchor : this.rightAnchor, value, type);
4545
- const nextRange = nextNavRangeType(navRange, DateNavRange.Month);
4546
- if (side === Side.Left) {
4547
- this.leftAnchor = dateValue;
4548
- this.leftDateRange = nextRange;
4384
+ takeOneStep(positive) {
4385
+ if (positive) {
4386
+ this.emitModel((this.model ?? 0) + this.step);
4549
4387
  }
4550
4388
  else {
4551
- this.rightAnchor = dateValue;
4552
- this.rightDateRange = nextRange;
4553
- }
4554
- if (navRange !== DateNavRange.Month) {
4555
- return;
4556
- }
4557
- if (this.leftAnchor.isSame(this.rightAnchor, MONTH)) {
4558
- this.rightAnchor = this.rightAnchor.add(1, MONTH);
4559
- }
4560
- this.rangeValue =
4561
- this.rangeValue.length === 2
4562
- ? [dateValue]
4563
- : sortDates([...this.rangeValue, dateValue]);
4564
- this.matchValues = [...this.rangeValue];
4565
- this.syncTime();
4566
- if (this.rangeValue.length === 2) {
4567
- this.reorder(this.rangeValue);
4568
- this.confirmValue(this.rangeValue, !this.showTime);
4569
- }
4570
- }
4571
- reorder(sortedDate) {
4572
- if (!sortedDate[0].isSame(sortedDate[1], MONTH)) {
4573
- this.leftAnchor = updateDate(this.leftAnchor, sortedDate[0], DatePickerType.Day);
4574
- this.rightAnchor = updateDate(this.leftAnchor, sortedDate[1], DatePickerType.Day);
4575
- }
4576
- }
4577
- hoverItem(date) {
4578
- if (this.rangeValue.length === 1) {
4579
- this.matchValues[1] = date;
4389
+ this.emitModel((this.model ?? 0) - this.step);
4580
4390
  }
4581
4391
  }
4582
- confirmValue(value, closeThen = true) {
4583
- this.emitValue(value);
4584
- closeThen && this.confirm.next();
4585
- }
4586
- timeChange(time) {
4587
- if (!time) {
4588
- return;
4589
- }
4590
- this.syncTime();
4591
- if (!this.rangeValue?.length) {
4592
- const date = updateDateByTimeModel(dayjs(), time);
4593
- this.rangeValue = [date, date];
4594
- this.matchValues = [...this.rangeValue];
4595
- this.startTime = this.endTime = time;
4596
- }
4597
- this.emitValue(this.rangeValue);
4392
+ parsePrecision(value) {
4393
+ const precision = this.precision ?? this.getStepPrecision();
4394
+ return parseFloat(value.toFixed(precision));
4598
4395
  }
4599
- syncTime() {
4600
- if (this.showTime && !!this.rangeValue?.length) {
4601
- const startDate = this.rangeValue[0]
4602
- ? updateDateByTimeModel(this.rangeValue[0], this.startTime)
4603
- : null;
4604
- const endDate = this.rangeValue[1]
4605
- ? updateDateByTimeModel(this.rangeValue[1], this.endTime)
4606
- : null;
4607
- if (!this.startTime && startDate) {
4608
- this.startTime = getTimePickerModel(this.rangeValue[0]);
4609
- }
4610
- if (!this.endTime && endDate) {
4611
- this.endTime = getTimePickerModel(this.rangeValue[1]);
4612
- }
4613
- this.rangeValue = [startDate, endDate].filter(i => !!i);
4614
- }
4396
+ getStepPrecision() {
4397
+ const step = this.step + '';
4398
+ const index = step.indexOf('.');
4399
+ return index < 0 ? 0 : step.slice(index + 1).length;
4615
4400
  }
4616
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: DateRangePickerPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4617
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: DateRangePickerPanelComponent, selector: "aui-date-range-picker-panel", inputs: { clearable: "clearable", clearText: "clearText", showTime: "showTime", showFooter: "showFooter", disabledDate: "disabledDate", disabledTime: "disabledTime", weekStartDay: "weekStartDay", minDate: "minDate", maxDate: "maxDate" }, outputs: { clear: "clear", confirm: "confirm" }, providers: [
4401
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NumberInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4402
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: NumberInputComponent, selector: "aui-number-input", inputs: { size: "size", min: ["min", "min", (val) => numberAttribute(val, Number.MIN_SAFE_INTEGER)], max: ["max", "max", (val) => numberAttribute(val, Number.MAX_SAFE_INTEGER)], step: "step", precision: "precision", controls: "controls", placeholder: "placeholder", controlsPosition: "controlsPosition", angleControls: "angleControls", clearable: "clearable" }, providers: [
4618
4403
  {
4619
4404
  provide: NG_VALUE_ACCESSOR,
4620
- useExisting: forwardRef(() => DateRangePickerPanelComponent),
4405
+ useExisting: forwardRef(() => NumberInputComponent),
4621
4406
  multi: true,
4622
4407
  },
4623
- ], usesInheritance: true, ngImport: i0, template: "<div [class]=\"bem.element('container')\">\n <div [class]=\"bem.element('header')\">\n <aui-calendar-header\n [dateNavRange]=\"leftDateRange\"\n [anchor]=\"leftAnchor\"\n (navRangeChange)=\"calendarRangeChange($event, Side.Left)\"\n (anchorChange)=\"leftAnchor = $event\"\n [maxAvail]=\"maxHeaderAvail\"\n [minAvail]=\"minDate\"\n ></aui-calendar-header>\n <aui-calendar-header\n [dateNavRange]=\"rightDateRange\"\n [anchor]=\"rightAnchor\"\n (navRangeChange)=\"calendarRangeChange($event, Side.Right)\"\n (anchorChange)=\"rightAnchor = $event\"\n [minAvail]=\"minHeaderAvail\"\n [maxAvail]=\"maxDate\"\n ></aui-calendar-header>\n </div>\n <div [class]=\"bem.element('body')\">\n <aui-picker-panel\n class=\"panel__wrapper\"\n [navRange]=\"leftDateRange\"\n [type]=\"DatePickerType.Day\"\n [anchor]=\"leftAnchor\"\n [matchDates]=\"matchValues\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [disabledDate]=\"getDateDisabledFn(Side.Left, rightAnchor)\"\n [weekStartDay]=\"weekStartDay\"\n (hovered)=\"hoverItem($event)\"\n (select)=\"selectPickerPanel($event, Side.Left)\"\n ></aui-picker-panel>\n <aui-picker-panel\n class=\"panel__wrapper\"\n [navRange]=\"rightDateRange\"\n [type]=\"DatePickerType.Day\"\n [anchor]=\"rightAnchor\"\n [weekStartDay]=\"weekStartDay\"\n [matchDates]=\"matchValues\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [disabledDate]=\"getDateDisabledFn(Side.Right, leftAnchor)\"\n (hovered)=\"hoverItem($event)\"\n (select)=\"selectPickerPanel($event, Side.Right)\"\n ></aui-picker-panel>\n </div>\n\n <aui-calendar-footer\n [class]=\"bem.element('footer')\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n (clear)=\"clear.next()\"\n (confirm)=\"confirmValue(rangeValue)\"\n *ngIf=\"showFooter && showTime\"\n >\n <div\n [class]=\"bem.element('footer-content')\"\n *ngIf=\"showTime\"\n >\n <ng-container\n [ngTemplateOutlet]=\"datePlaceholder\"\n [ngTemplateOutletContext]=\"{\n placeholder: 'start_date' | auiI18n,\n value: rangeValue[0]\n }\"\n ></ng-container>\n <aui-time-picker\n [showIcon]=\"false\"\n [(ngModel)]=\"startTime\"\n size=\"small\"\n (ngModelChange)=\"timeChange($event)\"\n [disableHours]=\"leftDisabledTimeFn(rangeValue[0], 'hours')\"\n [disableMinutes]=\"leftDisabledTimeFn(rangeValue[0], 'minutes')\"\n [disableSeconds]=\"leftDisabledTimeFn(rangeValue[0], 'seconds')\"\n [placeholder]=\"'select_time' | auiI18n\"\n tooltipPosition=\"top start\"\n ></aui-time-picker>\n\n <span class=\"placeholder separator\">{{ 'to' | auiI18n }}</span>\n <ng-container\n [ngTemplateOutlet]=\"datePlaceholder\"\n [ngTemplateOutletContext]=\"{\n placeholder: 'end_date' | auiI18n,\n value: rangeValue[1]\n }\"\n ></ng-container>\n <aui-time-picker\n [showIcon]=\"false\"\n size=\"small\"\n [(ngModel)]=\"endTime\"\n [disableHours]=\"rightDisabledTimeFn(rangeValue[1], 'hours')\"\n [disableMinutes]=\"rightDisabledTimeFn(rangeValue[1], 'minutes')\"\n [disableSeconds]=\"rightDisabledTimeFn(rangeValue[1], 'seconds')\"\n (ngModelChange)=\"timeChange($event)\"\n [placeholder]=\"'select_time' | auiI18n\"\n tooltipPosition=\"top start\"\n ></aui-time-picker>\n </div>\n </aui-calendar-footer>\n</div>\n\n<ng-template\n #datePlaceholder\n let-placeholder=\"placeholder\"\n let-value=\"value\"\n>\n <span\n *ngIf=\"!value\"\n class=\"placeholder date-holder\"\n >{{ placeholder }}</span\n >\n <span\n *ngIf=\"value\"\n class=\"date-value date-holder\"\n >{{ value | date: FOOTER_DATE_FORMAT }}</span\n >\n</ng-template>\n", styles: [".aui-date-range-picker-panel__container{display:flex;flex-direction:column;width:524px;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-date-range-picker-panel__container .placeholder{color:rgb(var(--aui-color-placeholder-text))}.aui-date-range-picker-panel__container .placeholder.separator{margin-inline:12px}.aui-date-range-picker-panel__container .date-value{color:rgb(var(--aui-color-main-text))}.aui-date-range-picker-panel__container .date-holder{display:inline-block;margin-right:8px;width:82px}.aui-date-range-picker-panel__container .panel__wrapper{width:246px;display:flex;justify-content:center}.aui-date-range-picker-panel__header{display:flex;justify-content:space-between}.aui-date-range-picker-panel__header aui-calendar-header{flex:0 0 246px}.aui-date-range-picker-panel__body{display:flex;justify-content:space-between;margin:16px 0}.aui-date-range-picker-panel__footer .aui-time-picker{width:88px}.aui-date-range-picker-panel__footer-content{display:flex;align-items:center;height:100%}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: TimePickerComponent, selector: "aui-time-picker", inputs: ["format", "size", "placeholder", "clearable", "showIcon", "disableHours", "disableMinutes", "disableSeconds", "hourStep", "minuteStep", "secondStep", "footerTemplate"], outputs: ["open", "close"] }, { kind: "component", type: CalendarHeaderComponent, selector: "aui-calendar-header", inputs: ["dateNavRange", "anchor", "maxAvail", "minAvail"], outputs: ["navRangeChange", "anchorChange"] }, { kind: "component", type: CalendarFooterComponent, selector: "aui-calendar-footer", inputs: ["clearable", "clearText", "customAction"], outputs: ["confirm", "clear"] }, { kind: "component", type: PickerPanelComponent, selector: "aui-picker-panel", inputs: ["navRange", "type", "anchor", "matchDates", "disabledDate", "weekStartDay", "minDate", "maxDate"], outputs: ["select", "hovered"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4408
+ ], queries: [{ propertyName: "addonBeforeRefs", predicate: InputAddonBeforeDirective }, { propertyName: "addonAfterRefs", predicate: InputAddonAfterDirective }], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div\n [class]=\"bem.block(size)\"\n [ngClass]=\"{\n isFocused: isFocus,\n isDisabled: disabled,\n hasBefore: hasAddonBefore$ | async,\n hasAfter: hasAddonAfter$ | async\n }\"\n>\n <div\n *ngIf=\"hasAddonBefore$ | async\"\n [class]=\"bem.element('addon', 'before')\"\n >\n <ng-content select=\"[auiInputAddonBefore]\"></ng-content>\n </div>\n <div\n [class]=\"bem.element('inner')\"\n auiClickOutside\n (auiClickOutside)=\"isFocus = false\"\n >\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'decrease')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"minus\"></aui-icon>\n </button>\n <input\n #inputRef\n autocomplete=\"off\"\n (change)=\"inputChanged($any($event).target.value)\"\n [disabled]=\"disabled\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n (focus)=\"isFocus = true\"\n (blur)=\"isFocus = false\"\n [ngStyle]=\"{ 'text-align': angleControls ? 'left' : 'center' }\"\n />\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'increase')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"plus\"></aui-icon>\n </button>\n <div\n *ngIf=\"controls && angleControls\"\n class=\"aui-number-input__controls\"\n >\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-up')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"angle_up\"></aui-icon>\n </button>\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-down')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"angle_down\"></aui-icon>\n </button>\n </div>\n </div>\n <div\n *ngIf=\"hasAddonAfter$ | async\"\n [class]=\"bem.element('addon', 'after')\"\n >\n <ng-content select=\"[auiInputAddonAfter]\"></ng-content>\n </div>\n</div>\n", styles: [".aui-number-input{display:inline-flex;height:var(--aui-inline-height-m);color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-main-bg));border-radius:var(--aui-border-radius-m)}.aui-number-input--small{height:var(--aui-inline-height-s)}.aui-number-input--small .aui-number-input__inner{width:132px}.aui-number-input--small .aui-number-input__control{width:var(--aui-inline-height-s)}.aui-number-input--small .aui-number-input__control--angle-up,.aui-number-input--small .aui-number-input__control--angle-down{width:calc(var(--aui-inline-height-s) - 2px)}.aui-number-input__inner{display:flex;width:var(--aui-form-item-width-s);height:100%;border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-m);color:inherit;background-color:inherit;z-index:1}.aui-number-input__inner:hover{border-color:rgb(var(--aui-color-primary))}.aui-number-input__input{margin:0;padding:0 calc(var(--aui-spacing-m) + 1px);min-width:0;height:100%;border:0;border-radius:inherit;background-color:inherit;color:inherit;-webkit-text-fill-color:inherit;cursor:inherit;outline:none}.aui-number-input:hover:not(.isDisabled) .aui-number-input__inner .aui-number-input__controls{display:flex}.aui-number-input.isFocused .aui-number-input__inner{border-color:rgb(var(--aui-color-primary))}:root .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-number-input.isDisabled{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8));cursor:not-allowed}.aui-number-input.isDisabled .aui-number-input__inner{border:1px solid rgb(var(--aui-color-n-7))}.aui-number-input.hasBefore .aui-number-input__inner{border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}.aui-number-input.hasAfter .aui-number-input__inner{border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input.hasBefore.hasAfter .aui-number-input__inner{border-radius:0}.aui-number-input:not(.hasAfter) .aui-number-input__control--angle-up{border-top-right-radius:var(--aui-border-radius-m)}.aui-number-input:not(.hasAfter) .aui-number-input__control--angle-down{border-bottom-right-radius:var(--aui-border-radius-m)}.aui-number-input__control{flex-shrink:0;width:calc(var(--aui-inline-height-m) - 2px);border:none;color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-main-bg));background-clip:padding-box;cursor:pointer;outline:none;position:relative;height:100%;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-number-input__control:hover{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-number-input__control:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-5))}:root .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-number-input__control[disabled]{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8));cursor:not-allowed}.aui-number-input__control:before{content:\"\";display:block;position:absolute;top:0;left:-1px;width:0;height:100%;border-right:1px solid rgb(var(--aui-color-border))}.aui-number-input__control--decrease{border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input__control--decrease:before{left:100%}.aui-number-input__control--increase{border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}.aui-number-input__control--angle-up,.aui-number-input__control--angle-down{width:calc(var(--aui-inline-height-m) - 2px);height:calc(50% - .5px)!important;border:none;display:flex;align-items:center;justify-content:center}.aui-number-input__control--angle-up:focus,.aui-number-input__control--angle-down:focus{z-index:1}.aui-number-input__control--angle-down{margin-top:1px}.aui-number-input__controls{display:none;flex-direction:column;border-left:1px solid rgb(var(--aui-color-border));position:relative}.aui-number-input__controls:after{content:\"\";display:block;width:100%;height:1px;position:absolute;left:0;top:50%;transform:translateY(-50%);background-color:rgb(var(--aui-color-border))}.aui-number-input__addon{display:flex;align-items:center;flex-shrink:0;padding:0 var(--aui-inline-padding-xs);border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-8));font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-number-input__addon--before{border-right:none;border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input__addon--after{border-left:none;border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}aui-number-input.ng-invalid.ng-dirty .aui-number-input__inner,.ng-submitted aui-number-input.ng-invalid .aui-number-input__inner{border-color:rgb(var(--aui-color-red))}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[auiClickOutside]", outputs: ["auiClickOutside"], exportAs: ["auiClickOutside"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4624
4409
  }
4625
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: DateRangePickerPanelComponent, decorators: [{
4410
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NumberInputComponent, decorators: [{
4626
4411
  type: Component,
4627
- args: [{ selector: 'aui-date-range-picker-panel', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
4412
+ args: [{ selector: 'aui-number-input', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, providers: [
4628
4413
  {
4629
4414
  provide: NG_VALUE_ACCESSOR,
4630
- useExisting: forwardRef(() => DateRangePickerPanelComponent),
4415
+ useExisting: forwardRef(() => NumberInputComponent),
4631
4416
  multi: true,
4632
4417
  },
4633
- ], template: "<div [class]=\"bem.element('container')\">\n <div [class]=\"bem.element('header')\">\n <aui-calendar-header\n [dateNavRange]=\"leftDateRange\"\n [anchor]=\"leftAnchor\"\n (navRangeChange)=\"calendarRangeChange($event, Side.Left)\"\n (anchorChange)=\"leftAnchor = $event\"\n [maxAvail]=\"maxHeaderAvail\"\n [minAvail]=\"minDate\"\n ></aui-calendar-header>\n <aui-calendar-header\n [dateNavRange]=\"rightDateRange\"\n [anchor]=\"rightAnchor\"\n (navRangeChange)=\"calendarRangeChange($event, Side.Right)\"\n (anchorChange)=\"rightAnchor = $event\"\n [minAvail]=\"minHeaderAvail\"\n [maxAvail]=\"maxDate\"\n ></aui-calendar-header>\n </div>\n <div [class]=\"bem.element('body')\">\n <aui-picker-panel\n class=\"panel__wrapper\"\n [navRange]=\"leftDateRange\"\n [type]=\"DatePickerType.Day\"\n [anchor]=\"leftAnchor\"\n [matchDates]=\"matchValues\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [disabledDate]=\"getDateDisabledFn(Side.Left, rightAnchor)\"\n [weekStartDay]=\"weekStartDay\"\n (hovered)=\"hoverItem($event)\"\n (select)=\"selectPickerPanel($event, Side.Left)\"\n ></aui-picker-panel>\n <aui-picker-panel\n class=\"panel__wrapper\"\n [navRange]=\"rightDateRange\"\n [type]=\"DatePickerType.Day\"\n [anchor]=\"rightAnchor\"\n [weekStartDay]=\"weekStartDay\"\n [matchDates]=\"matchValues\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [disabledDate]=\"getDateDisabledFn(Side.Right, leftAnchor)\"\n (hovered)=\"hoverItem($event)\"\n (select)=\"selectPickerPanel($event, Side.Right)\"\n ></aui-picker-panel>\n </div>\n\n <aui-calendar-footer\n [class]=\"bem.element('footer')\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n (clear)=\"clear.next()\"\n (confirm)=\"confirmValue(rangeValue)\"\n *ngIf=\"showFooter && showTime\"\n >\n <div\n [class]=\"bem.element('footer-content')\"\n *ngIf=\"showTime\"\n >\n <ng-container\n [ngTemplateOutlet]=\"datePlaceholder\"\n [ngTemplateOutletContext]=\"{\n placeholder: 'start_date' | auiI18n,\n value: rangeValue[0]\n }\"\n ></ng-container>\n <aui-time-picker\n [showIcon]=\"false\"\n [(ngModel)]=\"startTime\"\n size=\"small\"\n (ngModelChange)=\"timeChange($event)\"\n [disableHours]=\"leftDisabledTimeFn(rangeValue[0], 'hours')\"\n [disableMinutes]=\"leftDisabledTimeFn(rangeValue[0], 'minutes')\"\n [disableSeconds]=\"leftDisabledTimeFn(rangeValue[0], 'seconds')\"\n [placeholder]=\"'select_time' | auiI18n\"\n tooltipPosition=\"top start\"\n ></aui-time-picker>\n\n <span class=\"placeholder separator\">{{ 'to' | auiI18n }}</span>\n <ng-container\n [ngTemplateOutlet]=\"datePlaceholder\"\n [ngTemplateOutletContext]=\"{\n placeholder: 'end_date' | auiI18n,\n value: rangeValue[1]\n }\"\n ></ng-container>\n <aui-time-picker\n [showIcon]=\"false\"\n size=\"small\"\n [(ngModel)]=\"endTime\"\n [disableHours]=\"rightDisabledTimeFn(rangeValue[1], 'hours')\"\n [disableMinutes]=\"rightDisabledTimeFn(rangeValue[1], 'minutes')\"\n [disableSeconds]=\"rightDisabledTimeFn(rangeValue[1], 'seconds')\"\n (ngModelChange)=\"timeChange($event)\"\n [placeholder]=\"'select_time' | auiI18n\"\n tooltipPosition=\"top start\"\n ></aui-time-picker>\n </div>\n </aui-calendar-footer>\n</div>\n\n<ng-template\n #datePlaceholder\n let-placeholder=\"placeholder\"\n let-value=\"value\"\n>\n <span\n *ngIf=\"!value\"\n class=\"placeholder date-holder\"\n >{{ placeholder }}</span\n >\n <span\n *ngIf=\"value\"\n class=\"date-value date-holder\"\n >{{ value | date: FOOTER_DATE_FORMAT }}</span\n >\n</ng-template>\n", styles: [".aui-date-range-picker-panel__container{display:flex;flex-direction:column;width:524px;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-date-range-picker-panel__container .placeholder{color:rgb(var(--aui-color-placeholder-text))}.aui-date-range-picker-panel__container .placeholder.separator{margin-inline:12px}.aui-date-range-picker-panel__container .date-value{color:rgb(var(--aui-color-main-text))}.aui-date-range-picker-panel__container .date-holder{display:inline-block;margin-right:8px;width:82px}.aui-date-range-picker-panel__container .panel__wrapper{width:246px;display:flex;justify-content:center}.aui-date-range-picker-panel__header{display:flex;justify-content:space-between}.aui-date-range-picker-panel__header aui-calendar-header{flex:0 0 246px}.aui-date-range-picker-panel__body{display:flex;justify-content:space-between;margin:16px 0}.aui-date-range-picker-panel__footer .aui-time-picker{width:88px}.aui-date-range-picker-panel__footer-content{display:flex;align-items:center;height:100%}\n"] }]
4634
- }], propDecorators: { clearable: [{
4418
+ ], template: "<div\n [class]=\"bem.block(size)\"\n [ngClass]=\"{\n isFocused: isFocus,\n isDisabled: disabled,\n hasBefore: hasAddonBefore$ | async,\n hasAfter: hasAddonAfter$ | async\n }\"\n>\n <div\n *ngIf=\"hasAddonBefore$ | async\"\n [class]=\"bem.element('addon', 'before')\"\n >\n <ng-content select=\"[auiInputAddonBefore]\"></ng-content>\n </div>\n <div\n [class]=\"bem.element('inner')\"\n auiClickOutside\n (auiClickOutside)=\"isFocus = false\"\n >\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'decrease')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"minus\"></aui-icon>\n </button>\n <input\n #inputRef\n autocomplete=\"off\"\n (change)=\"inputChanged($any($event).target.value)\"\n [disabled]=\"disabled\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n (focus)=\"isFocus = true\"\n (blur)=\"isFocus = false\"\n [ngStyle]=\"{ 'text-align': angleControls ? 'left' : 'center' }\"\n />\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'increase')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"plus\"></aui-icon>\n </button>\n <div\n *ngIf=\"controls && angleControls\"\n class=\"aui-number-input__controls\"\n >\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-up')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"angle_up\"></aui-icon>\n </button>\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-down')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"angle_down\"></aui-icon>\n </button>\n </div>\n </div>\n <div\n *ngIf=\"hasAddonAfter$ | async\"\n [class]=\"bem.element('addon', 'after')\"\n >\n <ng-content select=\"[auiInputAddonAfter]\"></ng-content>\n </div>\n</div>\n", styles: [".aui-number-input{display:inline-flex;height:var(--aui-inline-height-m);color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-main-bg));border-radius:var(--aui-border-radius-m)}.aui-number-input--small{height:var(--aui-inline-height-s)}.aui-number-input--small .aui-number-input__inner{width:132px}.aui-number-input--small .aui-number-input__control{width:var(--aui-inline-height-s)}.aui-number-input--small .aui-number-input__control--angle-up,.aui-number-input--small .aui-number-input__control--angle-down{width:calc(var(--aui-inline-height-s) - 2px)}.aui-number-input__inner{display:flex;width:var(--aui-form-item-width-s);height:100%;border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-m);color:inherit;background-color:inherit;z-index:1}.aui-number-input__inner:hover{border-color:rgb(var(--aui-color-primary))}.aui-number-input__input{margin:0;padding:0 calc(var(--aui-spacing-m) + 1px);min-width:0;height:100%;border:0;border-radius:inherit;background-color:inherit;color:inherit;-webkit-text-fill-color:inherit;cursor:inherit;outline:none}.aui-number-input:hover:not(.isDisabled) .aui-number-input__inner .aui-number-input__controls{display:flex}.aui-number-input.isFocused .aui-number-input__inner{border-color:rgb(var(--aui-color-primary))}:root .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-number-input.isDisabled{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8));cursor:not-allowed}.aui-number-input.isDisabled .aui-number-input__inner{border:1px solid rgb(var(--aui-color-n-7))}.aui-number-input.hasBefore .aui-number-input__inner{border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}.aui-number-input.hasAfter .aui-number-input__inner{border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input.hasBefore.hasAfter .aui-number-input__inner{border-radius:0}.aui-number-input:not(.hasAfter) .aui-number-input__control--angle-up{border-top-right-radius:var(--aui-border-radius-m)}.aui-number-input:not(.hasAfter) .aui-number-input__control--angle-down{border-bottom-right-radius:var(--aui-border-radius-m)}.aui-number-input__control{flex-shrink:0;width:calc(var(--aui-inline-height-m) - 2px);border:none;color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-main-bg));background-clip:padding-box;cursor:pointer;outline:none;position:relative;height:100%;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-number-input__control:hover{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-number-input__control:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-5))}:root .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-number-input__control[disabled]{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8));cursor:not-allowed}.aui-number-input__control:before{content:\"\";display:block;position:absolute;top:0;left:-1px;width:0;height:100%;border-right:1px solid rgb(var(--aui-color-border))}.aui-number-input__control--decrease{border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input__control--decrease:before{left:100%}.aui-number-input__control--increase{border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}.aui-number-input__control--angle-up,.aui-number-input__control--angle-down{width:calc(var(--aui-inline-height-m) - 2px);height:calc(50% - .5px)!important;border:none;display:flex;align-items:center;justify-content:center}.aui-number-input__control--angle-up:focus,.aui-number-input__control--angle-down:focus{z-index:1}.aui-number-input__control--angle-down{margin-top:1px}.aui-number-input__controls{display:none;flex-direction:column;border-left:1px solid rgb(var(--aui-color-border));position:relative}.aui-number-input__controls:after{content:\"\";display:block;width:100%;height:1px;position:absolute;left:0;top:50%;transform:translateY(-50%);background-color:rgb(var(--aui-color-border))}.aui-number-input__addon{display:flex;align-items:center;flex-shrink:0;padding:0 var(--aui-inline-padding-xs);border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-8));font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-number-input__addon--before{border-right:none;border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input__addon--after{border-left:none;border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}aui-number-input.ng-invalid.ng-dirty .aui-number-input__inner,.ng-submitted aui-number-input.ng-invalid .aui-number-input__inner{border-color:rgb(var(--aui-color-red))}\n"] }]
4419
+ }], propDecorators: { size: [{
4635
4420
  type: Input
4636
- }], clearText: [{
4421
+ }], min: [{
4422
+ type: Input,
4423
+ args: [{
4424
+ transform: (val) => numberAttribute(val, Number.MIN_SAFE_INTEGER),
4425
+ }]
4426
+ }], max: [{
4427
+ type: Input,
4428
+ args: [{
4429
+ transform: (val) => numberAttribute(val, Number.MAX_SAFE_INTEGER),
4430
+ }]
4431
+ }], step: [{
4637
4432
  type: Input
4638
- }], showTime: [{
4433
+ }], precision: [{
4639
4434
  type: Input
4640
- }], showFooter: [{
4435
+ }], controls: [{
4641
4436
  type: Input
4642
- }], disabledDate: [{
4437
+ }], placeholder: [{
4643
4438
  type: Input
4644
- }], disabledTime: [{
4439
+ }], controlsPosition: [{
4645
4440
  type: Input
4646
- }], weekStartDay: [{
4441
+ }], angleControls: [{
4647
4442
  type: Input
4648
- }], minDate: [{
4443
+ }], clearable: [{
4649
4444
  type: Input
4650
- }], maxDate: [{
4445
+ }], inputRef: [{
4446
+ type: ViewChild,
4447
+ args: ['inputRef', { read: ElementRef }]
4448
+ }], addonBeforeRefs: [{
4449
+ type: ContentChildren,
4450
+ args: [InputAddonBeforeDirective]
4451
+ }], addonAfterRefs: [{
4452
+ type: ContentChildren,
4453
+ args: [InputAddonAfterDirective]
4454
+ }] } });
4455
+
4456
+ class SearchComponent {
4457
+ bem = buildBem('aui-search');
4458
+ size = ComponentSize.Medium;
4459
+ searchButton = false;
4460
+ clearable = true;
4461
+ searching = false;
4462
+ placeholder = '';
4463
+ disabled = false;
4464
+ get keyword() {
4465
+ return this.value;
4466
+ }
4467
+ set keyword(value) {
4468
+ this.value = value;
4469
+ }
4470
+ keywordChange = new EventEmitter();
4471
+ search = new EventEmitter();
4472
+ clear = new EventEmitter();
4473
+ inputRef;
4474
+ value = '';
4475
+ get showSpinner() {
4476
+ return this.searching && !this.searchButton;
4477
+ }
4478
+ get showClear() {
4479
+ return !this.disabled && this.clearable && this.value && !this.showSpinner;
4480
+ }
4481
+ focus() {
4482
+ this.inputRef.nativeElement.focus();
4483
+ }
4484
+ emitChange(value) {
4485
+ this.value = value;
4486
+ this.keywordChange.emit(value);
4487
+ }
4488
+ emitSearch() {
4489
+ if (this.disabled) {
4490
+ return;
4491
+ }
4492
+ this.search.emit(this.value);
4493
+ }
4494
+ emitClear() {
4495
+ if (this.disabled) {
4496
+ return;
4497
+ }
4498
+ this.value = '';
4499
+ this.keywordChange.emit('');
4500
+ this.search.emit('');
4501
+ this.clear.emit();
4502
+ this.inputRef.nativeElement.focus();
4503
+ }
4504
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4505
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", 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]=\"showClear\"\n [class.isSearching]=\"searching\"\n [class.isDisabled]=\"disabled\"\n>\n <div\n *ngIf=\"!searchButton\"\n [class]=\"bem.element('icon')\"\n >\n <aui-icon icon=\"magnifier\"></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=\"xmark_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' : 'magnifier'\"></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);color:rgb(var(--aui-color-n-2))}.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);color:rgb(var(--aui-color-n-2))}.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);color:rgb(var(--aui-color-n-2))}.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);color:rgb(var(--aui-color-n-2))}.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,.isSearching) .aui-search__button{cursor:pointer}.aui-search:not(.isDisabled,.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"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "component", type: InputComponent, selector: "input[aui-input],textarea[aui-input]", inputs: ["size", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4506
+ }
4507
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SearchComponent, decorators: [{
4508
+ type: Component,
4509
+ 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]=\"showClear\"\n [class.isSearching]=\"searching\"\n [class.isDisabled]=\"disabled\"\n>\n <div\n *ngIf=\"!searchButton\"\n [class]=\"bem.element('icon')\"\n >\n <aui-icon icon=\"magnifier\"></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=\"xmark_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' : 'magnifier'\"></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);color:rgb(var(--aui-color-n-2))}.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);color:rgb(var(--aui-color-n-2))}.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);color:rgb(var(--aui-color-n-2))}.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);color:rgb(var(--aui-color-n-2))}.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,.isSearching) .aui-search__button{cursor:pointer}.aui-search:not(.isDisabled,.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"] }]
4510
+ }], propDecorators: { size: [{
4651
4511
  type: Input
4652
- }], clear: [{
4512
+ }], searchButton: [{
4513
+ type: Input
4514
+ }], clearable: [{
4515
+ type: Input
4516
+ }], searching: [{
4517
+ type: Input
4518
+ }], placeholder: [{
4519
+ type: Input
4520
+ }], disabled: [{
4521
+ type: Input
4522
+ }], keyword: [{
4523
+ type: Input
4524
+ }], keywordChange: [{
4653
4525
  type: Output
4654
- }], confirm: [{
4526
+ }], search: [{
4527
+ type: Output
4528
+ }], clear: [{
4655
4529
  type: Output
4530
+ }], inputRef: [{
4531
+ type: ViewChild,
4532
+ args: ['input', { read: ElementRef }]
4656
4533
  }] } });
4657
4534
 
4658
- class I18nModule {
4659
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: I18nModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4660
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: I18nModule, declarations: [I18nPipe], exports: [I18nPipe] });
4661
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: I18nModule });
4535
+ function getRowHeight(size) {
4536
+ switch (size) {
4537
+ case ComponentSize.Large: {
4538
+ return 33;
4539
+ }
4540
+ case ComponentSize.Small: {
4541
+ return 23;
4542
+ }
4543
+ case ComponentSize.Mini: {
4544
+ return 21;
4545
+ }
4546
+ default: {
4547
+ return 25;
4548
+ }
4549
+ }
4662
4550
  }
4663
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: I18nModule, decorators: [{
4664
- type: NgModule,
4665
- args: [{
4666
- declarations: [I18nPipe],
4667
- exports: [I18nPipe],
4668
- }]
4669
- }] });
4670
-
4671
- const zh = {
4672
- locale: 'zh',
4673
- translation: {
4674
- start_date: '开始日期',
4675
- end_date: '结束日期',
4676
- select_time: '选择时间',
4677
- select_date: '选择日期',
4678
- clear: '清除',
4679
- confirm: '确定',
4680
- to: '至',
4681
- year_suffix: '年',
4682
- month_suffix: '月',
4683
- monday: '一',
4684
- tuesday: '二',
4685
- wednesday: '三',
4686
- thursday: '四',
4687
- friday: '五',
4688
- saturday: '六',
4689
- sunday: '日',
4690
- now: '此刻',
4691
- select_all: '全选',
4692
- today: '今天',
4693
- },
4694
- };
4695
-
4696
- let hiddenTextarea;
4697
- const HIDDEN_STYLE = `
4698
- height:0 !important;
4699
- visibility:hidden !important;
4700
- overflow:hidden !important;
4701
- position:absolute !important;
4702
- z-index:-1000 !important;
4703
- top:0 !important;
4704
- right:0 !important
4705
- `;
4706
- const CONTEXT_STYLE = [
4707
- 'letter-spacing',
4708
- 'line-height',
4709
- 'padding-top',
4710
- 'padding-bottom',
4711
- 'font-family',
4712
- 'font-weight',
4713
- 'font-size',
4714
- 'text-rendering',
4715
- 'text-transform',
4716
- 'width',
4717
- 'text-indent',
4718
- 'padding-left',
4719
- 'padding-right',
4720
- 'border-width',
4721
- 'box-sizing',
4722
- ];
4723
- function calculateNodeStyling(targetElement) {
4724
- const style = window.getComputedStyle(targetElement);
4725
- const boxSizing = style.getPropertyValue('box-sizing');
4726
- const paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) +
4727
- parseFloat(style.getPropertyValue('padding-top'));
4728
- const borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) +
4729
- parseFloat(style.getPropertyValue('border-top-width'));
4730
- const contextStyle = CONTEXT_STYLE.map(name => `${name}:${style.getPropertyValue(name)}`).join(';');
4731
- return { contextStyle, paddingSize, borderSize, boxSizing };
4551
+ function getContainerPaddingPatch(size) {
4552
+ switch (size) {
4553
+ case ComponentSize.Mini: {
4554
+ return 3;
4555
+ }
4556
+ case ComponentSize.Small: {
4557
+ return 5;
4558
+ }
4559
+ default: {
4560
+ return 7;
4561
+ }
4562
+ }
4732
4563
  }
4733
- function calcTextareaHeight(targetElement, minRows = 1, maxRows = null) {
4734
- if (!hiddenTextarea) {
4735
- hiddenTextarea = document.createElement('textarea');
4736
- document.body.append(hiddenTextarea);
4564
+ function createWithMaxRowCount(component) {
4565
+ const hostPosition = () => (component.maxRowCount > 0 ? 'relative' : null);
4566
+ const hostDisplay = () => (component.maxRowCount ? 'block' : null);
4567
+ const maxHeight = () => {
4568
+ if (component.maxRowCount <= 0) {
4569
+ return null;
4570
+ }
4571
+ const paddingPatch = getContainerPaddingPatch(component.size);
4572
+ const rowHeight = isNaN(component.customRowHeight) || component.customRowHeight <= 0
4573
+ ? getRowHeight(component.size)
4574
+ : component.customRowHeight;
4575
+ return `${rowHeight * component.maxRowCount + paddingPatch}px`;
4576
+ };
4577
+ return {
4578
+ hostPosition,
4579
+ hostDisplay,
4580
+ maxHeight,
4581
+ };
4582
+ }
4583
+
4584
+ const INPUT_ERROR_KEY = 'input_data_error';
4585
+ class TagsInputComponent extends CommonFormControl {
4586
+ fb;
4587
+ renderer;
4588
+ injector;
4589
+ bem = buildBem('aui-tags-input');
4590
+ placeholder = '';
4591
+ size = ComponentSize.Medium;
4592
+ clearable = false;
4593
+ allowRepeat = false;
4594
+ allowEmpty = false;
4595
+ readonlyTags = [];
4596
+ maxRowCount = 0;
4597
+ customRowHeight = 0;
4598
+ _inputValidator;
4599
+ _inputAsyncValidator;
4600
+ set inputValidator(fn) {
4601
+ this._inputValidator = Array.isArray(fn) ? Validators.compose(fn) : fn;
4737
4602
  }
4738
- const { paddingSize, borderSize, contextStyle } = calculateNodeStyling(targetElement);
4739
- hiddenTextarea.setAttribute('style', `${contextStyle};${HIDDEN_STYLE}`);
4740
- hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';
4741
- let height = hiddenTextarea.scrollHeight + borderSize;
4742
- hiddenTextarea.value = '';
4743
- const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;
4744
- const result = {};
4745
- if (minRows !== null) {
4746
- const minHeight = singleRowHeight * minRows + paddingSize + borderSize;
4747
- height = Math.max(minHeight, height);
4748
- result.minHeight = `${minHeight}px`;
4603
+ get inputValidator() {
4604
+ return this._inputValidator;
4749
4605
  }
4750
- if (maxRows !== null) {
4751
- const maxHeight = singleRowHeight * maxRows + paddingSize + borderSize;
4752
- height = Math.min(maxHeight, height);
4753
- result.maxHeight = `${maxHeight}px`;
4606
+ set inputAsyncValidator(fn) {
4607
+ this._inputAsyncValidator = Array.isArray(fn)
4608
+ ? Validators.composeAsync(fn)
4609
+ : fn;
4754
4610
  }
4755
- result.height = `${height}px`;
4756
- if (hiddenTextarea.parentNode) {
4757
- hiddenTextarea.remove();
4611
+ get inputAsyncValidator() {
4612
+ return this._inputAsyncValidator;
4758
4613
  }
4759
- hiddenTextarea = null;
4760
- return result;
4761
- }
4762
-
4763
- const DEFAULT_VALUE = {
4764
- minRows: 3,
4765
- maxRows: 6,
4766
- };
4767
- class AutosizeDirective {
4768
- elRef;
4769
- ngControl;
4770
- _autoSize = DEFAULT_VALUE;
4771
- destroy$$ = new Subject();
4772
- get autoSize() {
4773
- return this._autoSize;
4614
+ inputRef;
4615
+ inputValueMirror;
4616
+ get hostPosition() {
4617
+ return this.withMaxRowCount.hostPosition();
4774
4618
  }
4775
- set autoSize(value) {
4776
- if (!value) {
4777
- value = DEFAULT_VALUE;
4778
- }
4779
- this._autoSize = value;
4780
- this.resizeTextarea();
4619
+ get hostDisplay() {
4620
+ return this.withMaxRowCount.hostDisplay();
4781
4621
  }
4782
- constructor(elRef, ngControl) {
4783
- this.elRef = elRef;
4784
- this.ngControl = ngControl;
4622
+ get maxHeight() {
4623
+ return this.withMaxRowCount.maxHeight();
4785
4624
  }
4786
- resizeTextarea() {
4787
- const el = this.elRef.nativeElement;
4788
- const autoSize = this._autoSize;
4789
- Object.assign(el.style, calcTextareaHeight(el, autoSize.minRows ?? DEFAULT_VALUE.minRows, autoSize.maxRows || DEFAULT_VALUE.maxRows));
4625
+ withMaxRowCount = createWithMaxRowCount(this);
4626
+ focused = false;
4627
+ model = [];
4628
+ inputControl;
4629
+ controlContainer;
4630
+ get rootClass() {
4631
+ const size = this.size || ComponentSize.Medium;
4632
+ return `aui-input ${this.bem.block(size)} ${this.disabled ? 'isDisabled' : ''} ${this.focused ? 'isFocused' : ''} ${this.clearable ? 'isClearable' : ''} ${this.maxRowCount > 0 ? 'withHeightLimit' : ''}`;
4633
+ }
4634
+ get tagSize() {
4635
+ return this.size === ComponentSize.Large
4636
+ ? ComponentSize.Medium
4637
+ : ComponentSize.Mini;
4638
+ }
4639
+ get inputClass() {
4640
+ return `${this.bem.element('input', {
4641
+ hidden: this.disabled || (!this.focused && !this.inputRef?.nativeElement.value),
4642
+ })} aui-tag aui-tag--${this.tagSize}`;
4643
+ }
4644
+ constructor(cdr, fb, renderer, injector) {
4645
+ super(cdr);
4646
+ this.fb = fb;
4647
+ this.renderer = renderer;
4648
+ this.injector = injector;
4649
+ this.inputControl = this.fb.control('');
4650
+ }
4651
+ ngOnChanges({ inputValidator, inputAsyncValidator, disabled, }) {
4652
+ if (disabled) {
4653
+ this.inputControl[disabled.currentValue ? 'disable' : 'enable']({
4654
+ emitEvent: false,
4655
+ });
4656
+ }
4657
+ if (inputValidator) {
4658
+ this.inputControl.setValidators(this.inputValidator);
4659
+ }
4660
+ if (inputAsyncValidator) {
4661
+ this.inputControl.setAsyncValidators(this.inputAsyncValidator);
4662
+ }
4790
4663
  }
4791
4664
  ngAfterViewInit() {
4792
- this.ngControl.valueChanges
4793
- .pipe(startWith(null), takeUntil(this.destroy$$))
4794
- .subscribe(() => this.resizeTextarea());
4665
+ this.controlContainer = this.injector.get(NgControl, null);
4795
4666
  }
4796
- ngOnDestroy() {
4797
- this.destroy$$.next();
4798
- this.destroy$$.complete();
4667
+ onRemove(index) {
4668
+ const target = this.model[index];
4669
+ if (target && this.readonlyTags.includes(target)) {
4670
+ return;
4671
+ }
4672
+ this.emitValue(this.model.filter((_, i) => i !== index));
4799
4673
  }
4800
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AutosizeDirective, deps: [{ token: i0.ElementRef }, { token: i2$2.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
4801
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: AutosizeDirective, selector: "textarea[autosize][ngModel],textarea[autosize][formControl],textarea[autosize][formControlName]", inputs: { autoSize: ["autosize", "autoSize"] }, exportAs: ["TextareaAutosize"], ngImport: i0 });
4802
- }
4803
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AutosizeDirective, decorators: [{
4804
- type: Directive,
4805
- args: [{
4806
- selector: 'textarea[autosize][ngModel],textarea[autosize][formControl],textarea[autosize][formControlName]',
4807
- exportAs: 'TextareaAutosize',
4808
- }]
4809
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i2$2.NgControl }]; }, propDecorators: { autoSize: [{
4810
- type: Input,
4811
- args: ['autosize']
4812
- }] } });
4813
-
4814
- class ClickOutsideDirective {
4815
- el;
4816
- auiClickOutside = new EventEmitter();
4817
- onBodyClick(event) {
4818
- if (!this.el.nativeElement.contains(event.target)) {
4819
- this.auiClickOutside.emit(event);
4674
+ onInput() {
4675
+ const value = this.inputRef.nativeElement.value;
4676
+ requestAnimationFrame(() => {
4677
+ if (value.length) {
4678
+ this.renderer.setStyle(this.inputRef.nativeElement, 'width', this.inputValueMirror.nativeElement.scrollWidth + 'px');
4679
+ }
4680
+ else {
4681
+ this.renderer.removeStyle(this.inputRef.nativeElement, 'width');
4682
+ }
4683
+ });
4684
+ if (this.controlContainer?.control?.errors?.[INPUT_ERROR_KEY] &&
4685
+ Object.keys(this.controlContainer.control.errors).length === 1) {
4686
+ this.controlContainer.control.setErrors(null);
4820
4687
  }
4821
4688
  }
4822
- constructor(el) {
4823
- this.el = el;
4689
+ onKeyDown(event) {
4690
+ const inputEl = event.target;
4691
+ if (event.key === 'Backspace' && inputEl.value === '') {
4692
+ this.onRemove(this.model.length - 1);
4693
+ event.stopPropagation();
4694
+ event.preventDefault();
4695
+ }
4696
+ else if (event.key === 'Enter') {
4697
+ event.stopPropagation();
4698
+ event.preventDefault();
4699
+ requestAnimationFrame(() => {
4700
+ this.pushValue(inputEl.value);
4701
+ });
4702
+ }
4824
4703
  }
4825
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
4826
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: ClickOutsideDirective, selector: "[auiClickOutside]", outputs: { auiClickOutside: "auiClickOutside" }, host: { listeners: { "document:click": "onBodyClick($event)" } }, exportAs: ["auiClickOutside"], ngImport: i0 });
4827
- }
4828
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ClickOutsideDirective, decorators: [{
4829
- type: Directive,
4830
- args: [{
4831
- selector: '[auiClickOutside]',
4832
- exportAs: 'auiClickOutside',
4833
- }]
4834
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { auiClickOutside: [{
4835
- type: Output
4836
- }], onBodyClick: [{
4837
- type: HostListener,
4838
- args: ['document:click', ['$event']]
4839
- }] } });
4840
-
4841
- class SharedModule {
4842
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4843
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: SharedModule, declarations: [ClickOutsideDirective], exports: [ClickOutsideDirective] });
4844
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SharedModule });
4845
- }
4846
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SharedModule, decorators: [{
4847
- type: NgModule,
4848
- args: [{
4849
- declarations: [ClickOutsideDirective],
4850
- exports: [ClickOutsideDirective],
4851
- }]
4852
- }] });
4853
-
4854
- const TagType = {
4855
- Primary: 'primary',
4856
- Success: 'success',
4857
- Warning: 'warning',
4858
- Error: 'error',
4859
- Info: 'info',
4860
- };
4861
-
4862
- class CheckTagComponent {
4863
- bem = buildBem('aui-tag');
4864
- hovered = false;
4865
- checked = false;
4866
- size = ComponentSize.Medium;
4867
- round = true;
4868
- checkedChange = new EventEmitter();
4869
- get rootClass() {
4870
- return `aui-check-tag ${this.bem.block(this.size, this.checked || this.hovered ? TagType.Primary : TagType.Info)} ${this.round ? 'isRound' : ''}`;
4704
+ onInputFocus() {
4705
+ this.focused = true;
4706
+ }
4707
+ onInputBlur(event) {
4708
+ this.focused = false;
4709
+ this.pushValue(event.target.value);
4710
+ if (this.onTouched) {
4711
+ this.onTouched();
4712
+ }
4713
+ }
4714
+ trackByValue(_, value) {
4715
+ return value;
4716
+ }
4717
+ valueIn(v) {
4718
+ this.clearInput();
4719
+ return this.sortByReadonly(v || []);
4720
+ }
4721
+ sortByReadonly(items) {
4722
+ return this.readonlyTags.length
4723
+ ? [
4724
+ ...items.reduce((acc, curr) => acc.add(curr), new Set(this.readonlyTags)),
4725
+ ]
4726
+ : items;
4727
+ }
4728
+ pushValue(value) {
4729
+ if (!this.allowEmpty && !value) {
4730
+ this.removeInputControlError();
4731
+ return;
4732
+ }
4733
+ if (!this.allowRepeat && this.model.includes(value)) {
4734
+ return;
4735
+ }
4736
+ this.inputControl.setValue(this.inputRef.nativeElement.value);
4737
+ this.syncControlStatus();
4738
+ if (this.inputControl.valid) {
4739
+ this.emitValue(this.model.concat(value));
4740
+ }
4741
+ else if (this.inputControl.pending) {
4742
+ this.inputControl.statusChanges.pipe(take(1)).subscribe(_ => {
4743
+ this.syncControlStatus();
4744
+ if (this.inputControl.valid) {
4745
+ this.emitValue(this.model.concat(value));
4746
+ }
4747
+ });
4748
+ }
4871
4749
  }
4872
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CheckTagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4873
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: CheckTagComponent, selector: "aui-check-tag", inputs: { checked: "checked", size: "size", round: "round" }, outputs: { checkedChange: "checkedChange" }, ngImport: i0, template: "<div\n [class]=\"rootClass\"\n (click)=\"checkedChange.emit(!checked)\"\n (mouseenter)=\"hovered = true\"\n (mouseleave)=\"hovered = false\"\n [class.isSolid]=\"checked\"\n>\n <span class=\"aui-tag__content\"><ng-content></ng-content></span>\n</div>\n", styles: [".aui-check-tag{cursor:pointer}.aui-check-tag .aui-tag__content{display:flex;-webkit-user-select:none;user-select:none}.aui-check-tag .aui-tag__checkbox{align-self:center}.aui-check-tag.aui-tag--info{color:rgb(var(--aui-color-n-1))}.aui-check-tag.aui-tag--medium{font-size:var(--aui-font-size-m)}.aui-check-tag.aui-tag--medium.isRound{border-radius:calc(var(--aui-inline-height-s) / 2)}aui-check-tag+aui-check-tag .aui-check-tag{margin-left:8px}\n", ".aui-tag{display:inline-flex;align-items:center;border-radius:var(--aui-border-radius-m);border:1px solid transparent;max-width:240px;vertical-align:middle;transition:background-color .3s ease}.aui-tag__content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-tag .aui-tag__close .aui-icon{margin-left:4px;border-radius:50%;cursor:pointer;transition:all .3s ease}.aui-tag--large{padding:0 var(--aui-inline-padding-m);height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tag--large.isRound{border-radius:calc(var(--aui-inline-height-m) / 2)}.aui-tag--medium{padding:0 var(--aui-inline-padding-s);height:var(--aui-inline-height-s);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--medium.isRound{border-radius:calc(var(--aui-inline-height-s) / 2)}.aui-tag--small{padding:0 var(--aui-inline-padding-xs);height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--small.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--mini{padding:0 var(--aui-inline-padding-xs);height:20px;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--mini.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--primary{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary.hasBorder{border-color:rgb(var(--aui-color-p-2))}.aui-tag--primary.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-p-1))}.aui-tag--primary.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-p-0))}.aui-tag--primary.allowClick:hover{background-color:rgb(var(--aui-color-p-7));cursor:pointer}.aui-tag--primary.allowClick:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-p-6));background-color:rgb(var(--aui-color-primary))}.aui-tag--success{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success.hasBorder{border-color:rgb(var(--aui-color-g-2))}.aui-tag--success.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-g-1))}.aui-tag--success.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-g-0))}.aui-tag--success.allowClick:hover{background-color:rgb(var(--aui-color-g-7));cursor:pointer}.aui-tag--success.allowClick:active{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-g-6));background-color:rgb(var(--aui-color-green))}.aui-tag--warning{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning.hasBorder{border-color:rgb(var(--aui-color-y-2))}.aui-tag--warning.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-y-1))}.aui-tag--warning.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-y-0))}.aui-tag--warning.allowClick:hover{background-color:rgb(var(--aui-color-y-7));cursor:pointer}.aui-tag--warning.allowClick:active{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-y-6));background-color:rgb(var(--aui-color-yellow))}.aui-tag--error{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error.hasBorder{border-color:rgb(var(--aui-color-r-2))}.aui-tag--error.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-r-1))}.aui-tag--error.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-r-0))}.aui-tag--error.allowClick:hover{background-color:rgb(var(--aui-color-r-7));cursor:pointer}.aui-tag--error.allowClick:active{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-r-6));background-color:rgb(var(--aui-color-red))}.aui-tag--info{color:rgb(var(--aui-color-n-2));background-color:rgb(var(--aui-color-n-8))}.aui-tag--info.hasBorder{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-button-bg))}.aui-tag--info .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tag.isInvalid{text-decoration:line-through}.aui-tag.isSolid.aui-tag--primary{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-tag.isSolid.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-primary));background-color:#fff}.aui-tag.isSolid.aui-tag--success{color:#fff;background-color:rgb(var(--aui-color-green))}.aui-tag.isSolid.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-green));background-color:#fff}.aui-tag.isSolid.aui-tag--warning{color:#fff;background-color:rgb(var(--aui-color-yellow))}.aui-tag.isSolid.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-yellow));background-color:#fff}.aui-tag.isSolid.aui-tag--error{color:#fff;background-color:rgb(var(--aui-color-red))}.aui-tag.isSolid.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-red));background-color:#fff}.aui-tag.allowClick a{color:inherit}.aui-tag.allowClick:hover{cursor:pointer}aui-tag+aui-tag .aui-tag--large,aui-tag+aui-tag .aui-tag--medium,aui-tag+aui-tag .aui-tag--small{margin-left:var(--aui-spacing-m)}aui-tag+aui-tag .aui-tag--mini{margin-left:6px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4874
- }
4875
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CheckTagComponent, decorators: [{
4876
- type: Component,
4877
- args: [{ selector: 'aui-check-tag', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, template: "<div\n [class]=\"rootClass\"\n (click)=\"checkedChange.emit(!checked)\"\n (mouseenter)=\"hovered = true\"\n (mouseleave)=\"hovered = false\"\n [class.isSolid]=\"checked\"\n>\n <span class=\"aui-tag__content\"><ng-content></ng-content></span>\n</div>\n", styles: [".aui-check-tag{cursor:pointer}.aui-check-tag .aui-tag__content{display:flex;-webkit-user-select:none;user-select:none}.aui-check-tag .aui-tag__checkbox{align-self:center}.aui-check-tag.aui-tag--info{color:rgb(var(--aui-color-n-1))}.aui-check-tag.aui-tag--medium{font-size:var(--aui-font-size-m)}.aui-check-tag.aui-tag--medium.isRound{border-radius:calc(var(--aui-inline-height-s) / 2)}aui-check-tag+aui-check-tag .aui-check-tag{margin-left:8px}\n", ".aui-tag{display:inline-flex;align-items:center;border-radius:var(--aui-border-radius-m);border:1px solid transparent;max-width:240px;vertical-align:middle;transition:background-color .3s ease}.aui-tag__content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-tag .aui-tag__close .aui-icon{margin-left:4px;border-radius:50%;cursor:pointer;transition:all .3s ease}.aui-tag--large{padding:0 var(--aui-inline-padding-m);height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tag--large.isRound{border-radius:calc(var(--aui-inline-height-m) / 2)}.aui-tag--medium{padding:0 var(--aui-inline-padding-s);height:var(--aui-inline-height-s);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--medium.isRound{border-radius:calc(var(--aui-inline-height-s) / 2)}.aui-tag--small{padding:0 var(--aui-inline-padding-xs);height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--small.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--mini{padding:0 var(--aui-inline-padding-xs);height:20px;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--mini.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--primary{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary.hasBorder{border-color:rgb(var(--aui-color-p-2))}.aui-tag--primary.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-p-1))}.aui-tag--primary.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-p-0))}.aui-tag--primary.allowClick:hover{background-color:rgb(var(--aui-color-p-7));cursor:pointer}.aui-tag--primary.allowClick:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-p-6));background-color:rgb(var(--aui-color-primary))}.aui-tag--success{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success.hasBorder{border-color:rgb(var(--aui-color-g-2))}.aui-tag--success.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-g-1))}.aui-tag--success.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-g-0))}.aui-tag--success.allowClick:hover{background-color:rgb(var(--aui-color-g-7));cursor:pointer}.aui-tag--success.allowClick:active{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-g-6));background-color:rgb(var(--aui-color-green))}.aui-tag--warning{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning.hasBorder{border-color:rgb(var(--aui-color-y-2))}.aui-tag--warning.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-y-1))}.aui-tag--warning.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-y-0))}.aui-tag--warning.allowClick:hover{background-color:rgb(var(--aui-color-y-7));cursor:pointer}.aui-tag--warning.allowClick:active{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-y-6));background-color:rgb(var(--aui-color-yellow))}.aui-tag--error{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error.hasBorder{border-color:rgb(var(--aui-color-r-2))}.aui-tag--error.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-r-1))}.aui-tag--error.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-r-0))}.aui-tag--error.allowClick:hover{background-color:rgb(var(--aui-color-r-7));cursor:pointer}.aui-tag--error.allowClick:active{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-r-6));background-color:rgb(var(--aui-color-red))}.aui-tag--info{color:rgb(var(--aui-color-n-2));background-color:rgb(var(--aui-color-n-8))}.aui-tag--info.hasBorder{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-button-bg))}.aui-tag--info .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tag.isInvalid{text-decoration:line-through}.aui-tag.isSolid.aui-tag--primary{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-tag.isSolid.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-primary));background-color:#fff}.aui-tag.isSolid.aui-tag--success{color:#fff;background-color:rgb(var(--aui-color-green))}.aui-tag.isSolid.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-green));background-color:#fff}.aui-tag.isSolid.aui-tag--warning{color:#fff;background-color:rgb(var(--aui-color-yellow))}.aui-tag.isSolid.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-yellow));background-color:#fff}.aui-tag.isSolid.aui-tag--error{color:#fff;background-color:rgb(var(--aui-color-red))}.aui-tag.isSolid.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-red));background-color:#fff}.aui-tag.allowClick a{color:inherit}.aui-tag.allowClick:hover{cursor:pointer}aui-tag+aui-tag .aui-tag--large,aui-tag+aui-tag .aui-tag--medium,aui-tag+aui-tag .aui-tag--small{margin-left:var(--aui-spacing-m)}aui-tag+aui-tag .aui-tag--mini{margin-left:6px}\n"] }]
4878
- }], propDecorators: { checked: [{
4879
- type: Input
4880
- }], size: [{
4881
- type: Input
4882
- }], round: [{
4883
- type: Input
4884
- }], checkedChange: [{
4885
- type: Output
4886
- }] } });
4887
-
4888
- class TagComponent {
4889
- bem = buildBem('aui-tag');
4890
- type = TagType.Primary;
4891
- size = ComponentSize.Medium;
4892
- closeable = false;
4893
- border = false;
4894
- solid = false;
4895
- invalid = false;
4896
- round = true;
4897
- color = '';
4898
- allowClick = false;
4899
- close = new EventEmitter();
4900
- get rootClass() {
4901
- 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' : ''}`;
4750
+ syncControlStatus() {
4751
+ const { pending, valid, invalid, disabled, errors } = this.inputControl;
4752
+ if (valid) {
4753
+ this.removeInputControlError();
4754
+ this.controlContainer?.control.markAsDirty();
4755
+ }
4756
+ else if (pending) {
4757
+ this.controlContainer?.control.markAsPending();
4758
+ }
4759
+ else if (invalid) {
4760
+ this.controlContainer?.control.markAsDirty();
4761
+ this.controlContainer?.control.setErrors({
4762
+ ...this.controlContainer?.control?.errors,
4763
+ [INPUT_ERROR_KEY]: errors,
4764
+ });
4765
+ }
4766
+ else if (disabled) {
4767
+ this.controlContainer?.control?.updateValueAndValidity();
4768
+ }
4902
4769
  }
4903
- get isNormalTag() {
4904
- return !this.solid && !this.closeable && !this.invalid;
4770
+ removeInputControlError() {
4771
+ let errors = this.controlContainer?.control.errors;
4772
+ if (errors?.[INPUT_ERROR_KEY]) {
4773
+ delete errors[INPUT_ERROR_KEY];
4774
+ }
4775
+ if (Object.keys(errors || {}).length === 0) {
4776
+ errors = null;
4777
+ }
4778
+ this.controlContainer?.control.setErrors(errors);
4905
4779
  }
4906
- get customStyle() {
4907
- const arr = this.color.split(',');
4908
- const main = arr[0].trim();
4909
- const secondary = (arr[1] || arr[0]).trim();
4910
- return {
4911
- color: main,
4912
- 'border-color': this.solid ? secondary : main,
4913
- 'background-color': secondary,
4914
- };
4780
+ clearInput() {
4781
+ this.renderer.removeStyle(this.inputRef.nativeElement, 'width');
4782
+ this.inputRef.nativeElement.value = '';
4783
+ this.inputControl.setValue('');
4915
4784
  }
4916
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4917
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: TagComponent, selector: "aui-tag", inputs: { type: "type", size: "size", closeable: "closeable", border: "border", solid: "solid", invalid: "invalid", round: "round", color: "color", allowClick: "allowClick" }, outputs: { close: "close" }, ngImport: i0, template: "<div\n [class]=\"rootClass\"\n [ngStyle]=\"customStyle\"\n>\n <span class=\"aui-tag__content\"><ng-content></ng-content></span>\n <aui-icon\n *ngIf=\"closeable\"\n class=\"aui-tag__close\"\n icon=\"xmark_small\"\n (click)=\"close.emit(); $event.stopPropagation()\"\n ></aui-icon>\n</div>\n", styles: [".aui-tag{display:inline-flex;align-items:center;border-radius:var(--aui-border-radius-m);border:1px solid transparent;max-width:240px;vertical-align:middle;transition:background-color .3s ease}.aui-tag__content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-tag .aui-tag__close .aui-icon{margin-left:4px;border-radius:50%;cursor:pointer;transition:all .3s ease}.aui-tag--large{padding:0 var(--aui-inline-padding-m);height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tag--large.isRound{border-radius:calc(var(--aui-inline-height-m) / 2)}.aui-tag--medium{padding:0 var(--aui-inline-padding-s);height:var(--aui-inline-height-s);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--medium.isRound{border-radius:calc(var(--aui-inline-height-s) / 2)}.aui-tag--small{padding:0 var(--aui-inline-padding-xs);height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--small.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--mini{padding:0 var(--aui-inline-padding-xs);height:20px;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--mini.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--primary{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary.hasBorder{border-color:rgb(var(--aui-color-p-2))}.aui-tag--primary.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-p-1))}.aui-tag--primary.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-p-0))}.aui-tag--primary.allowClick:hover{background-color:rgb(var(--aui-color-p-7));cursor:pointer}.aui-tag--primary.allowClick:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-p-6));background-color:rgb(var(--aui-color-primary))}.aui-tag--success{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success.hasBorder{border-color:rgb(var(--aui-color-g-2))}.aui-tag--success.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-g-1))}.aui-tag--success.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-g-0))}.aui-tag--success.allowClick:hover{background-color:rgb(var(--aui-color-g-7));cursor:pointer}.aui-tag--success.allowClick:active{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-g-6));background-color:rgb(var(--aui-color-green))}.aui-tag--warning{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning.hasBorder{border-color:rgb(var(--aui-color-y-2))}.aui-tag--warning.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-y-1))}.aui-tag--warning.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-y-0))}.aui-tag--warning.allowClick:hover{background-color:rgb(var(--aui-color-y-7));cursor:pointer}.aui-tag--warning.allowClick:active{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-y-6));background-color:rgb(var(--aui-color-yellow))}.aui-tag--error{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error.hasBorder{border-color:rgb(var(--aui-color-r-2))}.aui-tag--error.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-r-1))}.aui-tag--error.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-r-0))}.aui-tag--error.allowClick:hover{background-color:rgb(var(--aui-color-r-7));cursor:pointer}.aui-tag--error.allowClick:active{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-r-6));background-color:rgb(var(--aui-color-red))}.aui-tag--info{color:rgb(var(--aui-color-n-2));background-color:rgb(var(--aui-color-n-8))}.aui-tag--info.hasBorder{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-button-bg))}.aui-tag--info .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tag.isInvalid{text-decoration:line-through}.aui-tag.isSolid.aui-tag--primary{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-tag.isSolid.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-primary));background-color:#fff}.aui-tag.isSolid.aui-tag--success{color:#fff;background-color:rgb(var(--aui-color-green))}.aui-tag.isSolid.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-green));background-color:#fff}.aui-tag.isSolid.aui-tag--warning{color:#fff;background-color:rgb(var(--aui-color-yellow))}.aui-tag.isSolid.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-yellow));background-color:#fff}.aui-tag.isSolid.aui-tag--error{color:#fff;background-color:rgb(var(--aui-color-red))}.aui-tag.isSolid.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-red));background-color:#fff}.aui-tag.allowClick a{color:inherit}.aui-tag.allowClick:hover{cursor:pointer}aui-tag+aui-tag .aui-tag--large,aui-tag+aui-tag .aui-tag--medium,aui-tag+aui-tag .aui-tag--small{margin-left:var(--aui-spacing-m)}aui-tag+aui-tag .aui-tag--mini{margin-left:6px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4785
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TagsInputComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i2$2.FormBuilder }, { token: i0.Renderer2 }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
4786
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: TagsInputComponent, selector: "aui-tags-input", inputs: { placeholder: "placeholder", size: "size", clearable: "clearable", allowRepeat: "allowRepeat", allowEmpty: "allowEmpty", readonlyTags: "readonlyTags", maxRowCount: "maxRowCount", customRowHeight: "customRowHeight", inputValidator: "inputValidator", inputAsyncValidator: "inputAsyncValidator" }, host: { properties: { "style.position": "this.hostPosition", "style.display": "this.hostDisplay" } }, providers: [
4787
+ {
4788
+ provide: NG_VALUE_ACCESSOR,
4789
+ useExisting: forwardRef(() => TagsInputComponent),
4790
+ multi: true,
4791
+ },
4792
+ ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, static: true }, { propertyName: "inputValueMirror", first: true, predicate: ["inputValueMirror"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\n [class]=\"rootClass\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"inputRef.focus()\"\n [style.max-height]=\"maxHeight\"\n>\n <span\n [hidden]=\"model.length || inputRef.value.length\"\n [class]=\"bem.element('placeholder')\"\n >\n {{ placeholder }}\n </span>\n <aui-tag\n *ngFor=\"let tag of model; let index = index; trackBy: trackByValue\"\n type=\"info\"\n [title]=\"tag\"\n [size]=\"tagSize\"\n [round]=\"true\"\n [border]=\"true\"\n [closeable]=\"!(disabled || readonlyTags.includes(tag))\"\n (close)=\"onRemove(index)\"\n >\n {{ tag }}\n </aui-tag>\n <input\n #inputRef\n [class]=\"inputClass\"\n [disabled]=\"disabled\"\n autocomplete=\"off\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur($event)\"\n (keydown)=\"onKeyDown($event)\"\n (input)=\"onInput()\"\n />\n <span\n #inputValueMirror\n [class]=\"bem.element('mirror')\"\n >{{ inputRef.value }}</span\n >\n</div>\n", styles: [".aui-input{display:inline-block;padding:0 var(--aui-inline-padding-xs);width:100%;min-width:0;border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-main-bg));color:rgb(var(--aui-color-main-text));outline:none;text-overflow:ellipsis;font-weight:var(--aui-font-weight-normal)}@keyframes cdk-text-field-autofill-color-0{to{background:rgb(var(--aui-color-n-9));color:rgb(var(--aui-color-main-text))}}.aui-input:-webkit-autofill{animation:cdk-text-field-autofill-color-0 both}.aui-input.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms,cdk-text-field-autofill-color-0 both}.aui-input::-webkit-outer-spin-button,.aui-input::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}.aui-input[type=number]{-webkit-appearance:textfield;appearance:textfield}.aui-input::placeholder{color:rgb(var(--aui-color-placeholder-text))}.aui-input:invalid,.aui-input:required{box-shadow:none}.aui-input:hover{border-color:rgb(var(--aui-color-primary))}.aui-input:focus,.aui-input.isFocused{border-color:rgb(var(--aui-color-primary))}:root .aui-input:focus,:root .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-input:focus,html[aui-theme-mode=light] .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-input:focus,html[aui-theme-mode=system] .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-input:focus,html[aui-theme-mode=dark] .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-input[readonly]{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))!important;cursor:default}.aui-input[disabled]{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))!important;color:rgb(var(--aui-color-disabled-text));-webkit-text-fill-color:rgb(var(--aui-color-disabled-text));cursor:not-allowed}.aui-input--large{height:var(--aui-inline-height-l);font-size:var(--aui-font-size-l)}.aui-input--medium{height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m)}.aui-input--small{height:var(--aui-inline-height-s);font-size:var(--aui-font-size-m)}.aui-input--mini{height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s)}textarea.aui-input{padding:var(--aui-inline-padding-xxs) var(--aui-inline-padding-xs);height:calc(var(--aui-inline-padding-xxs) * 2 + var(--aui-line-height-m) * 3 + 2px);max-height:calc(var(--aui-inline-padding-xxs) * 2 + var(--aui-line-height-m) * 6 + 2px);min-height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-main-text));resize:vertical;overflow:auto}.aui-input.ng-invalid.ng-dirty,.ng-submitted .aui-input.ng-invalid{border-color:rgb(var(--aui-color-red))!important}:root .aui-input.ng-invalid.ng-dirty:focus,:root .aui-input.ng-invalid.ng-dirty.isFocused,:root .ng-submitted .aui-input.ng-invalid:focus,:root .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] .aui-input.ng-invalid.ng-dirty:focus,html[aui-theme-mode=light] .aui-input.ng-invalid.ng-dirty.isFocused,html[aui-theme-mode=light] .ng-submitted .aui-input.ng-invalid:focus,html[aui-theme-mode=light] .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-input.ng-invalid.ng-dirty:focus,html[aui-theme-mode=system] .aui-input.ng-invalid.ng-dirty.isFocused,html[aui-theme-mode=system] .ng-submitted .aui-input.ng-invalid:focus,html[aui-theme-mode=system] .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] .aui-input.ng-invalid.ng-dirty:focus,html[aui-theme-mode=dark] .aui-input.ng-invalid.ng-dirty.isFocused,html[aui-theme-mode=dark] .ng-submitted .aui-input.ng-invalid:focus,html[aui-theme-mode=dark] .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n", ".aui-tag{display:inline-flex;align-items:center;border-radius:var(--aui-border-radius-m);border:1px solid transparent;max-width:240px;vertical-align:middle;transition:background-color .3s ease}.aui-tag__content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-tag .aui-tag__close .aui-icon{margin-left:4px;border-radius:50%;cursor:pointer;transition:all .3s ease}.aui-tag--large{padding:0 var(--aui-inline-padding-m);height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tag--large.isRound{border-radius:calc(var(--aui-inline-height-m) / 2)}.aui-tag--medium{padding:0 var(--aui-inline-padding-s);height:var(--aui-inline-height-s);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--medium.isRound{border-radius:calc(var(--aui-inline-height-s) / 2)}.aui-tag--small{padding:0 var(--aui-inline-padding-xs);height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--small.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--mini{padding:0 var(--aui-inline-padding-xs);height:20px;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--mini.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--primary{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary.hasBorder{border-color:rgb(var(--aui-color-p-2))}.aui-tag--primary.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-p-1))}.aui-tag--primary.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-p-0))}.aui-tag--primary.allowClick:hover{background-color:rgb(var(--aui-color-p-7));cursor:pointer}.aui-tag--primary.allowClick:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-p-6));background-color:rgb(var(--aui-color-primary))}.aui-tag--success{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success.hasBorder{border-color:rgb(var(--aui-color-g-2))}.aui-tag--success.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-g-1))}.aui-tag--success.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-g-0))}.aui-tag--success.allowClick:hover{background-color:rgb(var(--aui-color-g-7));cursor:pointer}.aui-tag--success.allowClick:active{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-g-6));background-color:rgb(var(--aui-color-green))}.aui-tag--warning{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning.hasBorder{border-color:rgb(var(--aui-color-y-2))}.aui-tag--warning.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-y-1))}.aui-tag--warning.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-y-0))}.aui-tag--warning.allowClick:hover{background-color:rgb(var(--aui-color-y-7));cursor:pointer}.aui-tag--warning.allowClick:active{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-y-6));background-color:rgb(var(--aui-color-yellow))}.aui-tag--error{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error.hasBorder{border-color:rgb(var(--aui-color-r-2))}.aui-tag--error.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-r-1))}.aui-tag--error.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-r-0))}.aui-tag--error.allowClick:hover{background-color:rgb(var(--aui-color-r-7));cursor:pointer}.aui-tag--error.allowClick:active{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-r-6));background-color:rgb(var(--aui-color-red))}.aui-tag--info{color:rgb(var(--aui-color-n-2));background-color:rgb(var(--aui-color-n-8))}.aui-tag--info.hasBorder{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-button-bg))}.aui-tag--info .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tag.isInvalid{text-decoration:line-through}.aui-tag.isSolid.aui-tag--primary{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-tag.isSolid.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-primary));background-color:#fff}.aui-tag.isSolid.aui-tag--success{color:#fff;background-color:rgb(var(--aui-color-green))}.aui-tag.isSolid.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-green));background-color:#fff}.aui-tag.isSolid.aui-tag--warning{color:#fff;background-color:rgb(var(--aui-color-yellow))}.aui-tag.isSolid.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-yellow));background-color:#fff}.aui-tag.isSolid.aui-tag--error{color:#fff;background-color:rgb(var(--aui-color-red))}.aui-tag.isSolid.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-red));background-color:#fff}.aui-tag.allowClick a{color:inherit}.aui-tag.allowClick:hover{cursor:pointer}aui-tag+aui-tag .aui-tag--large,aui-tag+aui-tag .aui-tag--medium,aui-tag+aui-tag .aui-tag--small{margin-left:var(--aui-spacing-m)}aui-tag+aui-tag .aui-tag--mini{margin-left:6px}\n", ".aui-tags-input{display:inline-block;position:relative;width:100%;color:rgb(var(--aui-color-main-text));vertical-align:middle}.aui-tags-input:hover{cursor:text}.aui-tags-input .aui-tag{max-width:100%}.aui-tags-input.isDisabled{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7));cursor:not-allowed}.aui-tags-input.isDisabled .aui-tag{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8))}.aui-tags-input__placeholder{display:inline-block;width:100%;color:rgb(var(--aui-color-placeholder-text));vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:absolute;right:0;left:0;padding-left:inherit;padding-right:inherit;margin-left:1px}.aui-tags-input__placeholder[hidden]{display:none}.aui-tags-input__mirror{opacity:0;left:0;z-index:-99;position:absolute;padding-left:1px}.aui-tags-input--large{min-height:var(--aui-inline-height-l);padding:calc((var(--aui-inline-height-l) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l);font-weight:var(--aui-font-weight-normal)}.aui-tags-input--large .aui-tag{margin:0 4px calc((var(--aui-inline-height-l) - 20px) / 2 - 1px) 0}.aui-tags-input--medium{min-height:var(--aui-inline-height-m);padding:calc((var(--aui-inline-height-m) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tags-input--medium .aui-tag{margin:0 4px calc((var(--aui-inline-height-m) - 20px) / 2 - 1px) 0}.aui-tags-input--small{min-height:var(--aui-inline-height-s);padding:calc((var(--aui-inline-height-s) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tags-input--small .aui-tag{margin:0 4px calc((var(--aui-inline-height-s) - 20px) / 2 - 1px) 0}.aui-tags-input--mini{min-height:var(--aui-inline-height-xs);padding:calc((var(--aui-inline-height-xs) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tags-input--mini .aui-tag{margin:0 4px calc((var(--aui-inline-height-xs) - 20px) / 2 - 1px) 0}.aui-tags-input__suffix{position:absolute;top:50%;right:var(--aui-inline-padding-xs);transform:translateY(-50%)}.aui-tags-input .aui-tag.aui-tags-input__input{margin-right:0;padding:0;width:1em;max-width:100%;border:none;outline:none;background:none;color:rgb(var(--aui-color-main-text));font-family:inherit;font-size:inherit}.aui-tags-input .aui-tag.aui-tags-input__input--hidden{opacity:0;width:0;padding:0;margin:0;position:absolute}aui-tags-input.ng-invalid.ng-dirty .aui-input,aui-tags-input.ng-invalid.ng-dirty .aui-tags-input,.ng-submitted aui-tags-input.ng-invalid .aui-input,.ng-submitted aui-tags-input.ng-invalid .aui-tags-input{border-color:rgb(var(--aui-color-red))!important}:root aui-tags-input.ng-invalid.ng-dirty .aui-input:focus,:root aui-tags-input.ng-invalid.ng-dirty .aui-input.isFocused,:root aui-tags-input.ng-invalid.ng-dirty .aui-tags-input:focus,:root aui-tags-input.ng-invalid.ng-dirty .aui-tags-input.isFocused,:root .ng-submitted aui-tags-input.ng-invalid .aui-input:focus,:root .ng-submitted aui-tags-input.ng-invalid .aui-input.isFocused,:root .ng-submitted aui-tags-input.ng-invalid .aui-tags-input:focus,:root .ng-submitted aui-tags-input.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-tags-input.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-tags-input.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input:focus,html[aui-theme-mode=light] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-tags-input.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-tags-input.ng-invalid .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input:focus,html[aui-theme-mode=light] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-tags-input.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-tags-input.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input:focus,html[aui-theme-mode=system] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-tags-input.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-tags-input.ng-invalid .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input:focus,html[aui-theme-mode=system] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-tags-input.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-tags-input.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input:focus,html[aui-theme-mode=dark] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-tags-input.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-tags-input.ng-invalid .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}aui-tags-input.ng-invalid.ng-dirty .aui-input .aui-tags-input__input,aui-tags-input.ng-invalid.ng-dirty .aui-tags-input .aui-tags-input__input,.ng-submitted aui-tags-input.ng-invalid .aui-input .aui-tags-input__input,.ng-submitted aui-tags-input.ng-invalid .aui-tags-input .aui-tags-input__input{color:rgb(var(--aui-color-red))}.aui-tags-input.withHeightLimit{overflow:auto;position:static}.aui-tags-input.withHeightLimit::-webkit-scrollbar{width:4px;height:4px}.aui-tags-input.withHeightLimit::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-tags-input.withHeightLimit::-webkit-scrollbar-corner{background-color:transparent}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TagComponent, selector: "aui-tag", inputs: ["type", "size", "closeable", "border", "solid", "invalid", "round", "color", "allowClick"], outputs: ["close"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4918
4793
  }
4919
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TagComponent, decorators: [{
4794
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TagsInputComponent, decorators: [{
4920
4795
  type: Component,
4921
- args: [{ selector: 'aui-tag', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, template: "<div\n [class]=\"rootClass\"\n [ngStyle]=\"customStyle\"\n>\n <span class=\"aui-tag__content\"><ng-content></ng-content></span>\n <aui-icon\n *ngIf=\"closeable\"\n class=\"aui-tag__close\"\n icon=\"xmark_small\"\n (click)=\"close.emit(); $event.stopPropagation()\"\n ></aui-icon>\n</div>\n", styles: [".aui-tag{display:inline-flex;align-items:center;border-radius:var(--aui-border-radius-m);border:1px solid transparent;max-width:240px;vertical-align:middle;transition:background-color .3s ease}.aui-tag__content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-tag .aui-tag__close .aui-icon{margin-left:4px;border-radius:50%;cursor:pointer;transition:all .3s ease}.aui-tag--large{padding:0 var(--aui-inline-padding-m);height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tag--large.isRound{border-radius:calc(var(--aui-inline-height-m) / 2)}.aui-tag--medium{padding:0 var(--aui-inline-padding-s);height:var(--aui-inline-height-s);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--medium.isRound{border-radius:calc(var(--aui-inline-height-s) / 2)}.aui-tag--small{padding:0 var(--aui-inline-padding-xs);height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--small.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--mini{padding:0 var(--aui-inline-padding-xs);height:20px;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--mini.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--primary{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary.hasBorder{border-color:rgb(var(--aui-color-p-2))}.aui-tag--primary.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-p-1))}.aui-tag--primary.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-p-0))}.aui-tag--primary.allowClick:hover{background-color:rgb(var(--aui-color-p-7));cursor:pointer}.aui-tag--primary.allowClick:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-p-6));background-color:rgb(var(--aui-color-primary))}.aui-tag--success{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success.hasBorder{border-color:rgb(var(--aui-color-g-2))}.aui-tag--success.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-g-1))}.aui-tag--success.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-g-0))}.aui-tag--success.allowClick:hover{background-color:rgb(var(--aui-color-g-7));cursor:pointer}.aui-tag--success.allowClick:active{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-g-6));background-color:rgb(var(--aui-color-green))}.aui-tag--warning{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning.hasBorder{border-color:rgb(var(--aui-color-y-2))}.aui-tag--warning.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-y-1))}.aui-tag--warning.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-y-0))}.aui-tag--warning.allowClick:hover{background-color:rgb(var(--aui-color-y-7));cursor:pointer}.aui-tag--warning.allowClick:active{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-y-6));background-color:rgb(var(--aui-color-yellow))}.aui-tag--error{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error.hasBorder{border-color:rgb(var(--aui-color-r-2))}.aui-tag--error.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-r-1))}.aui-tag--error.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-r-0))}.aui-tag--error.allowClick:hover{background-color:rgb(var(--aui-color-r-7));cursor:pointer}.aui-tag--error.allowClick:active{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-r-6));background-color:rgb(var(--aui-color-red))}.aui-tag--info{color:rgb(var(--aui-color-n-2));background-color:rgb(var(--aui-color-n-8))}.aui-tag--info.hasBorder{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-button-bg))}.aui-tag--info .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tag.isInvalid{text-decoration:line-through}.aui-tag.isSolid.aui-tag--primary{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-tag.isSolid.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-primary));background-color:#fff}.aui-tag.isSolid.aui-tag--success{color:#fff;background-color:rgb(var(--aui-color-green))}.aui-tag.isSolid.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-green));background-color:#fff}.aui-tag.isSolid.aui-tag--warning{color:#fff;background-color:rgb(var(--aui-color-yellow))}.aui-tag.isSolid.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-yellow));background-color:#fff}.aui-tag.isSolid.aui-tag--error{color:#fff;background-color:rgb(var(--aui-color-red))}.aui-tag.isSolid.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-red));background-color:#fff}.aui-tag.allowClick a{color:inherit}.aui-tag.allowClick:hover{cursor:pointer}aui-tag+aui-tag .aui-tag--large,aui-tag+aui-tag .aui-tag--medium,aui-tag+aui-tag .aui-tag--small{margin-left:var(--aui-spacing-m)}aui-tag+aui-tag .aui-tag--mini{margin-left:6px}\n"] }]
4922
- }], propDecorators: { type: [{
4796
+ args: [{ selector: 'aui-tags-input', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, providers: [
4797
+ {
4798
+ provide: NG_VALUE_ACCESSOR,
4799
+ useExisting: forwardRef(() => TagsInputComponent),
4800
+ multi: true,
4801
+ },
4802
+ ], template: "<div\n [class]=\"rootClass\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"inputRef.focus()\"\n [style.max-height]=\"maxHeight\"\n>\n <span\n [hidden]=\"model.length || inputRef.value.length\"\n [class]=\"bem.element('placeholder')\"\n >\n {{ placeholder }}\n </span>\n <aui-tag\n *ngFor=\"let tag of model; let index = index; trackBy: trackByValue\"\n type=\"info\"\n [title]=\"tag\"\n [size]=\"tagSize\"\n [round]=\"true\"\n [border]=\"true\"\n [closeable]=\"!(disabled || readonlyTags.includes(tag))\"\n (close)=\"onRemove(index)\"\n >\n {{ tag }}\n </aui-tag>\n <input\n #inputRef\n [class]=\"inputClass\"\n [disabled]=\"disabled\"\n autocomplete=\"off\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur($event)\"\n (keydown)=\"onKeyDown($event)\"\n (input)=\"onInput()\"\n />\n <span\n #inputValueMirror\n [class]=\"bem.element('mirror')\"\n >{{ inputRef.value }}</span\n >\n</div>\n", styles: [".aui-input{display:inline-block;padding:0 var(--aui-inline-padding-xs);width:100%;min-width:0;border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-main-bg));color:rgb(var(--aui-color-main-text));outline:none;text-overflow:ellipsis;font-weight:var(--aui-font-weight-normal)}@keyframes cdk-text-field-autofill-color-0{to{background:rgb(var(--aui-color-n-9));color:rgb(var(--aui-color-main-text))}}.aui-input:-webkit-autofill{animation:cdk-text-field-autofill-color-0 both}.aui-input.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms,cdk-text-field-autofill-color-0 both}.aui-input::-webkit-outer-spin-button,.aui-input::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}.aui-input[type=number]{-webkit-appearance:textfield;appearance:textfield}.aui-input::placeholder{color:rgb(var(--aui-color-placeholder-text))}.aui-input:invalid,.aui-input:required{box-shadow:none}.aui-input:hover{border-color:rgb(var(--aui-color-primary))}.aui-input:focus,.aui-input.isFocused{border-color:rgb(var(--aui-color-primary))}:root .aui-input:focus,:root .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-input:focus,html[aui-theme-mode=light] .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-input:focus,html[aui-theme-mode=system] .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-input:focus,html[aui-theme-mode=dark] .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-input[readonly]{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))!important;cursor:default}.aui-input[disabled]{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))!important;color:rgb(var(--aui-color-disabled-text));-webkit-text-fill-color:rgb(var(--aui-color-disabled-text));cursor:not-allowed}.aui-input--large{height:var(--aui-inline-height-l);font-size:var(--aui-font-size-l)}.aui-input--medium{height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m)}.aui-input--small{height:var(--aui-inline-height-s);font-size:var(--aui-font-size-m)}.aui-input--mini{height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s)}textarea.aui-input{padding:var(--aui-inline-padding-xxs) var(--aui-inline-padding-xs);height:calc(var(--aui-inline-padding-xxs) * 2 + var(--aui-line-height-m) * 3 + 2px);max-height:calc(var(--aui-inline-padding-xxs) * 2 + var(--aui-line-height-m) * 6 + 2px);min-height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-main-text));resize:vertical;overflow:auto}.aui-input.ng-invalid.ng-dirty,.ng-submitted .aui-input.ng-invalid{border-color:rgb(var(--aui-color-red))!important}:root .aui-input.ng-invalid.ng-dirty:focus,:root .aui-input.ng-invalid.ng-dirty.isFocused,:root .ng-submitted .aui-input.ng-invalid:focus,:root .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] .aui-input.ng-invalid.ng-dirty:focus,html[aui-theme-mode=light] .aui-input.ng-invalid.ng-dirty.isFocused,html[aui-theme-mode=light] .ng-submitted .aui-input.ng-invalid:focus,html[aui-theme-mode=light] .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-input.ng-invalid.ng-dirty:focus,html[aui-theme-mode=system] .aui-input.ng-invalid.ng-dirty.isFocused,html[aui-theme-mode=system] .ng-submitted .aui-input.ng-invalid:focus,html[aui-theme-mode=system] .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] .aui-input.ng-invalid.ng-dirty:focus,html[aui-theme-mode=dark] .aui-input.ng-invalid.ng-dirty.isFocused,html[aui-theme-mode=dark] .ng-submitted .aui-input.ng-invalid:focus,html[aui-theme-mode=dark] .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n", ".aui-tag{display:inline-flex;align-items:center;border-radius:var(--aui-border-radius-m);border:1px solid transparent;max-width:240px;vertical-align:middle;transition:background-color .3s ease}.aui-tag__content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-tag .aui-tag__close .aui-icon{margin-left:4px;border-radius:50%;cursor:pointer;transition:all .3s ease}.aui-tag--large{padding:0 var(--aui-inline-padding-m);height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tag--large.isRound{border-radius:calc(var(--aui-inline-height-m) / 2)}.aui-tag--medium{padding:0 var(--aui-inline-padding-s);height:var(--aui-inline-height-s);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--medium.isRound{border-radius:calc(var(--aui-inline-height-s) / 2)}.aui-tag--small{padding:0 var(--aui-inline-padding-xs);height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--small.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--mini{padding:0 var(--aui-inline-padding-xs);height:20px;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--mini.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--primary{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary.hasBorder{border-color:rgb(var(--aui-color-p-2))}.aui-tag--primary.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-p-1))}.aui-tag--primary.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-p-0))}.aui-tag--primary.allowClick:hover{background-color:rgb(var(--aui-color-p-7));cursor:pointer}.aui-tag--primary.allowClick:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-p-6));background-color:rgb(var(--aui-color-primary))}.aui-tag--success{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success.hasBorder{border-color:rgb(var(--aui-color-g-2))}.aui-tag--success.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-g-1))}.aui-tag--success.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-g-0))}.aui-tag--success.allowClick:hover{background-color:rgb(var(--aui-color-g-7));cursor:pointer}.aui-tag--success.allowClick:active{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-g-6));background-color:rgb(var(--aui-color-green))}.aui-tag--warning{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning.hasBorder{border-color:rgb(var(--aui-color-y-2))}.aui-tag--warning.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-y-1))}.aui-tag--warning.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-y-0))}.aui-tag--warning.allowClick:hover{background-color:rgb(var(--aui-color-y-7));cursor:pointer}.aui-tag--warning.allowClick:active{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-y-6));background-color:rgb(var(--aui-color-yellow))}.aui-tag--error{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error.hasBorder{border-color:rgb(var(--aui-color-r-2))}.aui-tag--error.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-r-1))}.aui-tag--error.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-r-0))}.aui-tag--error.allowClick:hover{background-color:rgb(var(--aui-color-r-7));cursor:pointer}.aui-tag--error.allowClick:active{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-r-6));background-color:rgb(var(--aui-color-red))}.aui-tag--info{color:rgb(var(--aui-color-n-2));background-color:rgb(var(--aui-color-n-8))}.aui-tag--info.hasBorder{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-button-bg))}.aui-tag--info .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tag.isInvalid{text-decoration:line-through}.aui-tag.isSolid.aui-tag--primary{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-tag.isSolid.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-primary));background-color:#fff}.aui-tag.isSolid.aui-tag--success{color:#fff;background-color:rgb(var(--aui-color-green))}.aui-tag.isSolid.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-green));background-color:#fff}.aui-tag.isSolid.aui-tag--warning{color:#fff;background-color:rgb(var(--aui-color-yellow))}.aui-tag.isSolid.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-yellow));background-color:#fff}.aui-tag.isSolid.aui-tag--error{color:#fff;background-color:rgb(var(--aui-color-red))}.aui-tag.isSolid.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-red));background-color:#fff}.aui-tag.allowClick a{color:inherit}.aui-tag.allowClick:hover{cursor:pointer}aui-tag+aui-tag .aui-tag--large,aui-tag+aui-tag .aui-tag--medium,aui-tag+aui-tag .aui-tag--small{margin-left:var(--aui-spacing-m)}aui-tag+aui-tag .aui-tag--mini{margin-left:6px}\n", ".aui-tags-input{display:inline-block;position:relative;width:100%;color:rgb(var(--aui-color-main-text));vertical-align:middle}.aui-tags-input:hover{cursor:text}.aui-tags-input .aui-tag{max-width:100%}.aui-tags-input.isDisabled{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7));cursor:not-allowed}.aui-tags-input.isDisabled .aui-tag{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8))}.aui-tags-input__placeholder{display:inline-block;width:100%;color:rgb(var(--aui-color-placeholder-text));vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:absolute;right:0;left:0;padding-left:inherit;padding-right:inherit;margin-left:1px}.aui-tags-input__placeholder[hidden]{display:none}.aui-tags-input__mirror{opacity:0;left:0;z-index:-99;position:absolute;padding-left:1px}.aui-tags-input--large{min-height:var(--aui-inline-height-l);padding:calc((var(--aui-inline-height-l) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l);font-weight:var(--aui-font-weight-normal)}.aui-tags-input--large .aui-tag{margin:0 4px calc((var(--aui-inline-height-l) - 20px) / 2 - 1px) 0}.aui-tags-input--medium{min-height:var(--aui-inline-height-m);padding:calc((var(--aui-inline-height-m) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tags-input--medium .aui-tag{margin:0 4px calc((var(--aui-inline-height-m) - 20px) / 2 - 1px) 0}.aui-tags-input--small{min-height:var(--aui-inline-height-s);padding:calc((var(--aui-inline-height-s) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tags-input--small .aui-tag{margin:0 4px calc((var(--aui-inline-height-s) - 20px) / 2 - 1px) 0}.aui-tags-input--mini{min-height:var(--aui-inline-height-xs);padding:calc((var(--aui-inline-height-xs) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tags-input--mini .aui-tag{margin:0 4px calc((var(--aui-inline-height-xs) - 20px) / 2 - 1px) 0}.aui-tags-input__suffix{position:absolute;top:50%;right:var(--aui-inline-padding-xs);transform:translateY(-50%)}.aui-tags-input .aui-tag.aui-tags-input__input{margin-right:0;padding:0;width:1em;max-width:100%;border:none;outline:none;background:none;color:rgb(var(--aui-color-main-text));font-family:inherit;font-size:inherit}.aui-tags-input .aui-tag.aui-tags-input__input--hidden{opacity:0;width:0;padding:0;margin:0;position:absolute}aui-tags-input.ng-invalid.ng-dirty .aui-input,aui-tags-input.ng-invalid.ng-dirty .aui-tags-input,.ng-submitted aui-tags-input.ng-invalid .aui-input,.ng-submitted aui-tags-input.ng-invalid .aui-tags-input{border-color:rgb(var(--aui-color-red))!important}:root aui-tags-input.ng-invalid.ng-dirty .aui-input:focus,:root aui-tags-input.ng-invalid.ng-dirty .aui-input.isFocused,:root aui-tags-input.ng-invalid.ng-dirty .aui-tags-input:focus,:root aui-tags-input.ng-invalid.ng-dirty .aui-tags-input.isFocused,:root .ng-submitted aui-tags-input.ng-invalid .aui-input:focus,:root .ng-submitted aui-tags-input.ng-invalid .aui-input.isFocused,:root .ng-submitted aui-tags-input.ng-invalid .aui-tags-input:focus,:root .ng-submitted aui-tags-input.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-tags-input.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-tags-input.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input:focus,html[aui-theme-mode=light] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-tags-input.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-tags-input.ng-invalid .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input:focus,html[aui-theme-mode=light] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-tags-input.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-tags-input.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input:focus,html[aui-theme-mode=system] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-tags-input.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-tags-input.ng-invalid .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input:focus,html[aui-theme-mode=system] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-tags-input.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-tags-input.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input:focus,html[aui-theme-mode=dark] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-tags-input.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-tags-input.ng-invalid .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}aui-tags-input.ng-invalid.ng-dirty .aui-input .aui-tags-input__input,aui-tags-input.ng-invalid.ng-dirty .aui-tags-input .aui-tags-input__input,.ng-submitted aui-tags-input.ng-invalid .aui-input .aui-tags-input__input,.ng-submitted aui-tags-input.ng-invalid .aui-tags-input .aui-tags-input__input{color:rgb(var(--aui-color-red))}.aui-tags-input.withHeightLimit{overflow:auto;position:static}.aui-tags-input.withHeightLimit::-webkit-scrollbar{width:4px;height:4px}.aui-tags-input.withHeightLimit::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-tags-input.withHeightLimit::-webkit-scrollbar-corner{background-color:transparent}\n"] }]
4803
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i2$2.FormBuilder }, { type: i0.Renderer2 }, { type: i0.Injector }]; }, propDecorators: { placeholder: [{
4923
4804
  type: Input
4924
4805
  }], size: [{
4925
4806
  type: Input
4926
- }], closeable: [{
4807
+ }], clearable: [{
4927
4808
  type: Input
4928
- }], border: [{
4809
+ }], allowRepeat: [{
4929
4810
  type: Input
4930
- }], solid: [{
4811
+ }], allowEmpty: [{
4931
4812
  type: Input
4932
- }], invalid: [{
4813
+ }], readonlyTags: [{
4933
4814
  type: Input
4934
- }], round: [{
4815
+ }], maxRowCount: [{
4935
4816
  type: Input
4936
- }], color: [{
4817
+ }], customRowHeight: [{
4937
4818
  type: Input
4938
- }], allowClick: [{
4819
+ }], inputValidator: [{
4939
4820
  type: Input
4940
- }], close: [{
4941
- type: Output
4821
+ }], inputAsyncValidator: [{
4822
+ type: Input
4823
+ }], inputRef: [{
4824
+ type: ViewChild,
4825
+ args: ['inputRef', { static: true }]
4826
+ }], inputValueMirror: [{
4827
+ type: ViewChild,
4828
+ args: ['inputValueMirror', { static: true }]
4829
+ }], hostPosition: [{
4830
+ type: HostBinding,
4831
+ args: ['style.position']
4832
+ }], hostDisplay: [{
4833
+ type: HostBinding,
4834
+ args: ['style.display']
4942
4835
  }] } });
4943
4836
 
4944
- class TagModule {
4945
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TagModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4946
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: TagModule, declarations: [TagComponent, CheckTagComponent], imports: [CommonModule, IconModule], exports: [TagComponent, CheckTagComponent] });
4947
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TagModule, imports: [CommonModule, IconModule] });
4837
+ class InputModule {
4838
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: InputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4839
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: InputModule, declarations: [AutosizeDirective,
4840
+ InputComponent,
4841
+ InputGroupComponent,
4842
+ InputAddonBeforeDirective,
4843
+ InputAddonAfterDirective,
4844
+ InputPrefixDirective,
4845
+ InputSuffixDirective,
4846
+ SearchComponent,
4847
+ TagsInputComponent,
4848
+ NumberInputComponent], imports: [CommonModule,
4849
+ FormsModule,
4850
+ ReactiveFormsModule,
4851
+ IconModule,
4852
+ TagModule,
4853
+ SharedModule], exports: [AutosizeDirective,
4854
+ InputComponent,
4855
+ InputGroupComponent,
4856
+ InputAddonBeforeDirective,
4857
+ InputAddonAfterDirective,
4858
+ InputPrefixDirective,
4859
+ InputSuffixDirective,
4860
+ SearchComponent,
4861
+ TagsInputComponent,
4862
+ NumberInputComponent] });
4863
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: InputModule, imports: [CommonModule,
4864
+ FormsModule,
4865
+ ReactiveFormsModule,
4866
+ IconModule,
4867
+ TagModule,
4868
+ SharedModule] });
4948
4869
  }
4949
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TagModule, decorators: [{
4870
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: InputModule, decorators: [{
4950
4871
  type: NgModule,
4951
4872
  args: [{
4952
- imports: [CommonModule, IconModule],
4953
- declarations: [TagComponent, CheckTagComponent],
4954
- exports: [TagComponent, CheckTagComponent],
4873
+ imports: [
4874
+ CommonModule,
4875
+ FormsModule,
4876
+ ReactiveFormsModule,
4877
+ IconModule,
4878
+ TagModule,
4879
+ SharedModule,
4880
+ ],
4881
+ declarations: [
4882
+ AutosizeDirective,
4883
+ InputComponent,
4884
+ InputGroupComponent,
4885
+ InputAddonBeforeDirective,
4886
+ InputAddonAfterDirective,
4887
+ InputPrefixDirective,
4888
+ InputSuffixDirective,
4889
+ SearchComponent,
4890
+ TagsInputComponent,
4891
+ NumberInputComponent,
4892
+ ],
4893
+ exports: [
4894
+ AutosizeDirective,
4895
+ InputComponent,
4896
+ InputGroupComponent,
4897
+ InputAddonBeforeDirective,
4898
+ InputAddonAfterDirective,
4899
+ InputPrefixDirective,
4900
+ InputSuffixDirective,
4901
+ SearchComponent,
4902
+ TagsInputComponent,
4903
+ NumberInputComponent,
4904
+ ],
4955
4905
  }]
4956
4906
  }] });
4957
4907
 
4958
- class NumberInputComponent extends CommonFormControl {
4959
- bem = buildBem('aui-number-input');
4960
- size = ComponentSize.Medium;
4961
- min = Number.MIN_SAFE_INTEGER;
4962
- max = Number.MAX_SAFE_INTEGER;
4963
- step = 1;
4964
- precision;
4965
- controls = true;
4966
- placeholder = '';
4967
- controlsPosition = '';
4968
- angleControls = false;
4969
- clearable = false;
4970
- inputRef;
4971
- addonBeforeRefs;
4972
- addonAfterRefs;
4973
- isFocus = false;
4974
- hasAddonBefore$;
4975
- hasAddonAfter$;
4976
- ngAfterContentInit() {
4977
- this.hasAddonBefore$ = watchContentExist(this.addonBeforeRefs);
4978
- this.hasAddonAfter$ = watchContentExist(this.addonAfterRefs);
4979
- }
4980
- ngAfterViewInit() {
4981
- this.inputRef.nativeElement.value = (this.model ?? '') + '';
4982
- }
4983
- valueIn(v) {
4984
- if (this.inputRef) {
4985
- this.inputRef.nativeElement.value = (v ?? '') + '';
4986
- }
4987
- return v;
4908
+ class TimePickerModule {
4909
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4910
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: TimePickerModule, declarations: [TimePickerComponent, TimePickerPanelComponent], imports: [FormsModule,
4911
+ ReactiveFormsModule,
4912
+ PortalModule,
4913
+ OverlayModule,
4914
+ CommonModule,
4915
+ InputModule,
4916
+ TooltipModule,
4917
+ IconModule,
4918
+ ButtonModule,
4919
+ I18nModule], exports: [TimePickerComponent, TimePickerPanelComponent] });
4920
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TimePickerModule, imports: [FormsModule,
4921
+ ReactiveFormsModule,
4922
+ PortalModule,
4923
+ OverlayModule,
4924
+ CommonModule,
4925
+ InputModule,
4926
+ TooltipModule,
4927
+ IconModule,
4928
+ ButtonModule,
4929
+ I18nModule] });
4930
+ }
4931
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TimePickerModule, decorators: [{
4932
+ type: NgModule,
4933
+ args: [{
4934
+ imports: [
4935
+ FormsModule,
4936
+ ReactiveFormsModule,
4937
+ PortalModule,
4938
+ OverlayModule,
4939
+ CommonModule,
4940
+ InputModule,
4941
+ TooltipModule,
4942
+ IconModule,
4943
+ ButtonModule,
4944
+ I18nModule,
4945
+ ],
4946
+ declarations: [TimePickerComponent, TimePickerPanelComponent],
4947
+ exports: [TimePickerComponent, TimePickerPanelComponent],
4948
+ }]
4949
+ }] });
4950
+
4951
+ const bem$5 = buildBem('aui-calendar-header');
4952
+ class CalendarHeaderComponent {
4953
+ dateNavRange = DateNavRange.Month;
4954
+ anchor = dayjs();
4955
+ maxAvail;
4956
+ get _maxAvail() {
4957
+ return this.maxAvail ? dayjs(this.maxAvail) : null;
4988
4958
  }
4989
- modelOut(value) {
4990
- return value === null && this.clearable
4991
- ? value
4992
- : Math.max(this.min, Math.min(this.max, this.parsePrecision(value)));
4959
+ minAvail;
4960
+ get _minAvail() {
4961
+ return this.minAvail ? dayjs(this.minAvail) : null;
4993
4962
  }
4994
- inputChanged(value) {
4995
- this.emitModel(numberAttribute(value, !value && this.clearable ? null : this.model));
4963
+ navRangeChange = new EventEmitter();
4964
+ anchorChange = new EventEmitter();
4965
+ get headerRange() {
4966
+ return calcRangeValue(this.dateNavRange, this.anchor);
4996
4967
  }
4997
- takeOneStep(positive) {
4998
- if (positive) {
4999
- this.emitModel((this.model ?? 0) + this.step);
5000
- }
5001
- else {
5002
- this.emitModel((this.model ?? 0) - this.step);
4968
+ bem = bem$5;
4969
+ DateNavRange = DateNavRange;
4970
+ shouldShowNav(type, side) {
4971
+ const availValue = (side === Side.Left ? this._minAvail : this._maxAvail)?.clone();
4972
+ if (!availValue) {
4973
+ return true;
5003
4974
  }
4975
+ const constrainDate = [DateNavRange.Month, DateNavRange.Year].includes(type)
4976
+ ? availValue.add(side === Side.Left ? 1 : -1, type)
4977
+ : availValue;
4978
+ return (this.compareNavValue(type, constrainDate, this.anchor) ===
4979
+ (side === Side.Left ? -1 : 1));
5004
4980
  }
5005
- parsePrecision(value) {
5006
- const precision = this.precision ?? this.getStepPrecision();
5007
- return parseFloat(value.toFixed(precision));
4981
+ compareNavValue(type, constrain, anchor) {
4982
+ const range = calcRangeValue(type, anchor);
4983
+ const constrainValue = constrain;
4984
+ if (type === DateNavRange.Decade) {
4985
+ if (constrainValue.isBetween(range.start, range.end, YEAR)) {
4986
+ return 0;
4987
+ }
4988
+ return constrainValue.isBefore(range.start) ? -1 : 1;
4989
+ }
4990
+ return constrainValue.isSame(range.start, MONTH)
4991
+ ? 0
4992
+ : constrainValue.isBefore(range.start, MONTH)
4993
+ ? -1
4994
+ : 1;
5008
4995
  }
5009
- getStepPrecision() {
5010
- const step = this.step + '';
5011
- const index = step.indexOf('.');
5012
- return index < 0 ? 0 : step.slice(index + 1).length;
4996
+ navHead(range, value) {
4997
+ let anchor;
4998
+ switch (range) {
4999
+ case DateNavRange.Month: {
5000
+ anchor = this.anchor.add(value, MONTH);
5001
+ break;
5002
+ }
5003
+ case DateNavRange.Year: {
5004
+ anchor = this.anchor.add(value, YEAR);
5005
+ break;
5006
+ }
5007
+ case DateNavRange.Decade: {
5008
+ anchor = this.anchor.add(value, YEAR);
5009
+ break;
5010
+ }
5011
+ }
5012
+ this.anchorChange.next(anchor);
5013
5013
  }
5014
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NumberInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
5015
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: NumberInputComponent, selector: "aui-number-input", inputs: { size: "size", min: ["min", "min", (val) => numberAttribute(val, Number.MIN_SAFE_INTEGER)], max: ["max", "max", (val) => numberAttribute(val, Number.MAX_SAFE_INTEGER)], step: "step", precision: "precision", controls: "controls", placeholder: "placeholder", controlsPosition: "controlsPosition", angleControls: "angleControls", clearable: "clearable" }, providers: [
5016
- {
5017
- provide: NG_VALUE_ACCESSOR,
5018
- useExisting: forwardRef(() => NumberInputComponent),
5019
- multi: true,
5020
- },
5021
- ], queries: [{ propertyName: "addonBeforeRefs", predicate: InputAddonBeforeDirective }, { propertyName: "addonAfterRefs", predicate: InputAddonAfterDirective }], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div\n [class]=\"bem.block(size)\"\n [ngClass]=\"{\n isFocused: isFocus,\n isDisabled: disabled,\n hasBefore: hasAddonBefore$ | async,\n hasAfter: hasAddonAfter$ | async\n }\"\n>\n <div\n *ngIf=\"hasAddonBefore$ | async\"\n [class]=\"bem.element('addon', 'before')\"\n >\n <ng-content select=\"[auiInputAddonBefore]\"></ng-content>\n </div>\n <div\n [class]=\"bem.element('inner')\"\n auiClickOutside\n (auiClickOutside)=\"isFocus = false\"\n >\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'decrease')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"minus\"></aui-icon>\n </button>\n <input\n #inputRef\n autocomplete=\"off\"\n (change)=\"inputChanged($any($event).target.value)\"\n [disabled]=\"disabled\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n (focus)=\"isFocus = true\"\n (blur)=\"isFocus = false\"\n [ngStyle]=\"{ 'text-align': angleControls ? 'left' : 'center' }\"\n />\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'increase')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"plus\"></aui-icon>\n </button>\n <div\n *ngIf=\"controls && angleControls\"\n class=\"aui-number-input__controls\"\n >\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-up')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"angle_up\"></aui-icon>\n </button>\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-down')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"angle_down\"></aui-icon>\n </button>\n </div>\n </div>\n <div\n *ngIf=\"hasAddonAfter$ | async\"\n [class]=\"bem.element('addon', 'after')\"\n >\n <ng-content select=\"[auiInputAddonAfter]\"></ng-content>\n </div>\n</div>\n", styles: [".aui-number-input{display:inline-flex;height:var(--aui-inline-height-m);color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-main-bg));border-radius:var(--aui-border-radius-m)}.aui-number-input--small{height:var(--aui-inline-height-s)}.aui-number-input--small .aui-number-input__inner{width:132px}.aui-number-input--small .aui-number-input__control{width:var(--aui-inline-height-s)}.aui-number-input--small .aui-number-input__control--angle-up,.aui-number-input--small .aui-number-input__control--angle-down{width:calc(var(--aui-inline-height-s) - 2px)}.aui-number-input__inner{display:flex;width:var(--aui-form-item-width-s);height:100%;border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-m);color:inherit;background-color:inherit;z-index:1}.aui-number-input__inner:hover{border-color:rgb(var(--aui-color-primary))}.aui-number-input__input{margin:0;padding:0 calc(var(--aui-spacing-m) + 1px);min-width:0;height:100%;border:0;border-radius:inherit;background-color:inherit;color:inherit;-webkit-text-fill-color:inherit;cursor:inherit;outline:none}.aui-number-input:hover:not(.isDisabled) .aui-number-input__inner .aui-number-input__controls{display:flex}.aui-number-input.isFocused .aui-number-input__inner{border-color:rgb(var(--aui-color-primary))}:root .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-number-input.isDisabled{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8));cursor:not-allowed}.aui-number-input.isDisabled .aui-number-input__inner{border:1px solid rgb(var(--aui-color-n-7))}.aui-number-input.hasBefore .aui-number-input__inner{border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}.aui-number-input.hasAfter .aui-number-input__inner{border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input.hasBefore.hasAfter .aui-number-input__inner{border-radius:0}.aui-number-input:not(.hasAfter) .aui-number-input__control--angle-up{border-top-right-radius:var(--aui-border-radius-m)}.aui-number-input:not(.hasAfter) .aui-number-input__control--angle-down{border-bottom-right-radius:var(--aui-border-radius-m)}.aui-number-input__control{flex-shrink:0;width:calc(var(--aui-inline-height-m) - 2px);border:none;color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-main-bg));background-clip:padding-box;cursor:pointer;outline:none;position:relative;height:100%;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-number-input__control:hover{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-number-input__control:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-5))}:root .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-number-input__control[disabled]{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8));cursor:not-allowed}.aui-number-input__control:before{content:\"\";display:block;position:absolute;top:0;left:-1px;width:0;height:100%;border-right:1px solid rgb(var(--aui-color-border))}.aui-number-input__control--decrease{border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input__control--decrease:before{left:100%}.aui-number-input__control--increase{border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}.aui-number-input__control--angle-up,.aui-number-input__control--angle-down{width:calc(var(--aui-inline-height-m) - 2px);height:calc(50% - .5px)!important;border:none;display:flex;align-items:center;justify-content:center}.aui-number-input__control--angle-up:focus,.aui-number-input__control--angle-down:focus{z-index:1}.aui-number-input__control--angle-down{margin-top:1px}.aui-number-input__controls{display:none;flex-direction:column;border-left:1px solid rgb(var(--aui-color-border));position:relative}.aui-number-input__controls:after{content:\"\";display:block;width:100%;height:1px;position:absolute;left:0;top:50%;transform:translateY(-50%);background-color:rgb(var(--aui-color-border))}.aui-number-input__addon{display:flex;align-items:center;flex-shrink:0;padding:0 var(--aui-inline-padding-xs);border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-8));font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-number-input__addon--before{border-right:none;border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input__addon--after{border-left:none;border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}aui-number-input.ng-invalid.ng-dirty .aui-number-input__inner,.ng-submitted aui-number-input.ng-invalid .aui-number-input__inner{border-color:rgb(var(--aui-color-red))}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[auiClickOutside]", outputs: ["auiClickOutside"], exportAs: ["auiClickOutside"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
5014
+ clickNav = (range) => {
5015
+ if (![DateNavRange.Month, DateNavRange.Year].includes(range)) {
5016
+ return;
5017
+ }
5018
+ this.navRangeChange.next(range === DateNavRange.Month ? DateNavRange.Year : DateNavRange.Decade);
5019
+ };
5020
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CalendarHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5021
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: CalendarHeaderComponent, selector: "aui-calendar-header", inputs: { dateNavRange: "dateNavRange", anchor: "anchor", maxAvail: "maxAvail", minAvail: "minAvail" }, outputs: { navRangeChange: "navRangeChange", anchorChange: "anchorChange" }, ngImport: i0, template: "<div [class]=\"bem.element('container')\">\n <div>\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n </div>\n <!-- \u5185\u5BB9\u533A -->\n <span\n *ngIf=\"dateNavRange === DateNavRange.Month\"\n [class]=\"bem.element('nav-content')\"\n >\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </a>\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ headerRange?.start?.month() + 1 }}{{ 'month_suffix' | auiI18n }}\n </a>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </a>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [class]=\"bem.element('nav-content')\"\n >\n {{ headerRange?.start.year() }} - {{ headerRange?.end?.year() }}\n </span>\n\n <div [class]=\"bem.element('nav-action')\">\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n </div>\n</div>\n\n<ng-template\n #yearControl\n let-side=\"side\"\n>\n <span class=\"action-bar\">\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'right'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, 1)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Year, side === 'left' ? -1 : 1)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Year, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'left'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, -1)\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template\n #decadeControl\n let-side=\"side\"\n>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Decade, side === 'left' ? -10 : 10)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Decade, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n</ng-template>\n", styles: [".aui-calendar-header__container{height:24px;display:flex;align-items:center;justify-content:space-between}.aui-calendar-header__nav-content{flex:1;display:flex;justify-content:center;align-items:center;font-size:var(--aui-font-size-l);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-bolder)}.aui-calendar-header__nav-content a{color:rgb(var(--aui-color-main-text))}.aui-calendar-header__nav-content a:hover{color:rgb(var(--aui-color-primary));text-decoration:none!important}.aui-calendar-header__nav-content a+a{margin-left:5px}.action-bar{width:52px;display:flex}.action-bar .hidden{opacity:0;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
5022
5022
  }
5023
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NumberInputComponent, decorators: [{
5023
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CalendarHeaderComponent, decorators: [{
5024
5024
  type: Component,
5025
- args: [{ selector: 'aui-number-input', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, providers: [
5026
- {
5027
- provide: NG_VALUE_ACCESSOR,
5028
- useExisting: forwardRef(() => NumberInputComponent),
5029
- multi: true,
5030
- },
5031
- ], template: "<div\n [class]=\"bem.block(size)\"\n [ngClass]=\"{\n isFocused: isFocus,\n isDisabled: disabled,\n hasBefore: hasAddonBefore$ | async,\n hasAfter: hasAddonAfter$ | async\n }\"\n>\n <div\n *ngIf=\"hasAddonBefore$ | async\"\n [class]=\"bem.element('addon', 'before')\"\n >\n <ng-content select=\"[auiInputAddonBefore]\"></ng-content>\n </div>\n <div\n [class]=\"bem.element('inner')\"\n auiClickOutside\n (auiClickOutside)=\"isFocus = false\"\n >\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'decrease')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"minus\"></aui-icon>\n </button>\n <input\n #inputRef\n autocomplete=\"off\"\n (change)=\"inputChanged($any($event).target.value)\"\n [disabled]=\"disabled\"\n [ngClass]=\"bem.element('input')\"\n [placeholder]=\"placeholder\"\n (focus)=\"isFocus = true\"\n (blur)=\"isFocus = false\"\n [ngStyle]=\"{ 'text-align': angleControls ? 'left' : 'center' }\"\n />\n <button\n *ngIf=\"controls && !angleControls\"\n type=\"button\"\n [ngClass]=\"bem.element('control', 'increase')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"plus\"></aui-icon>\n </button>\n <div\n *ngIf=\"controls && angleControls\"\n class=\"aui-number-input__controls\"\n >\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-up')\"\n [disabled]=\"disabled || model >= max\"\n (click)=\"takeOneStep(true); isFocus = true\"\n >\n <aui-icon icon=\"angle_up\"></aui-icon>\n </button>\n <button\n type=\"button\"\n [ngClass]=\"bem.element('control', 'angle-down')\"\n [disabled]=\"disabled || model <= min\"\n (click)=\"takeOneStep(false); isFocus = true\"\n >\n <aui-icon icon=\"angle_down\"></aui-icon>\n </button>\n </div>\n </div>\n <div\n *ngIf=\"hasAddonAfter$ | async\"\n [class]=\"bem.element('addon', 'after')\"\n >\n <ng-content select=\"[auiInputAddonAfter]\"></ng-content>\n </div>\n</div>\n", styles: [".aui-number-input{display:inline-flex;height:var(--aui-inline-height-m);color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-main-bg));border-radius:var(--aui-border-radius-m)}.aui-number-input--small{height:var(--aui-inline-height-s)}.aui-number-input--small .aui-number-input__inner{width:132px}.aui-number-input--small .aui-number-input__control{width:var(--aui-inline-height-s)}.aui-number-input--small .aui-number-input__control--angle-up,.aui-number-input--small .aui-number-input__control--angle-down{width:calc(var(--aui-inline-height-s) - 2px)}.aui-number-input__inner{display:flex;width:var(--aui-form-item-width-s);height:100%;border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-m);color:inherit;background-color:inherit;z-index:1}.aui-number-input__inner:hover{border-color:rgb(var(--aui-color-primary))}.aui-number-input__input{margin:0;padding:0 calc(var(--aui-spacing-m) + 1px);min-width:0;height:100%;border:0;border-radius:inherit;background-color:inherit;color:inherit;-webkit-text-fill-color:inherit;cursor:inherit;outline:none}.aui-number-input:hover:not(.isDisabled) .aui-number-input__inner .aui-number-input__controls{display:flex}.aui-number-input.isFocused .aui-number-input__inner{border-color:rgb(var(--aui-color-primary))}:root .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-number-input.isFocused .aui-number-input__inner{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-number-input.isDisabled{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8));cursor:not-allowed}.aui-number-input.isDisabled .aui-number-input__inner{border:1px solid rgb(var(--aui-color-n-7))}.aui-number-input.hasBefore .aui-number-input__inner{border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}.aui-number-input.hasAfter .aui-number-input__inner{border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input.hasBefore.hasAfter .aui-number-input__inner{border-radius:0}.aui-number-input:not(.hasAfter) .aui-number-input__control--angle-up{border-top-right-radius:var(--aui-border-radius-m)}.aui-number-input:not(.hasAfter) .aui-number-input__control--angle-down{border-bottom-right-radius:var(--aui-border-radius-m)}.aui-number-input__control{flex-shrink:0;width:calc(var(--aui-inline-height-m) - 2px);border:none;color:rgb(var(--aui-color-main-text));background-color:rgb(var(--aui-color-main-bg));background-clip:padding-box;cursor:pointer;outline:none;position:relative;height:100%;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-number-input__control:hover{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-number-input__control:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-5))}:root .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-number-input__control:focus-visible{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-number-input__control[disabled]{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8));cursor:not-allowed}.aui-number-input__control:before{content:\"\";display:block;position:absolute;top:0;left:-1px;width:0;height:100%;border-right:1px solid rgb(var(--aui-color-border))}.aui-number-input__control--decrease{border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input__control--decrease:before{left:100%}.aui-number-input__control--increase{border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}.aui-number-input__control--angle-up,.aui-number-input__control--angle-down{width:calc(var(--aui-inline-height-m) - 2px);height:calc(50% - .5px)!important;border:none;display:flex;align-items:center;justify-content:center}.aui-number-input__control--angle-up:focus,.aui-number-input__control--angle-down:focus{z-index:1}.aui-number-input__control--angle-down{margin-top:1px}.aui-number-input__controls{display:none;flex-direction:column;border-left:1px solid rgb(var(--aui-color-border));position:relative}.aui-number-input__controls:after{content:\"\";display:block;width:100%;height:1px;position:absolute;left:0;top:50%;transform:translateY(-50%);background-color:rgb(var(--aui-color-border))}.aui-number-input__addon{display:flex;align-items:center;flex-shrink:0;padding:0 var(--aui-inline-padding-xs);border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-8));font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-number-input__addon--before{border-right:none;border-radius:var(--aui-border-radius-m) 0 0 var(--aui-border-radius-m)}.aui-number-input__addon--after{border-left:none;border-radius:0 var(--aui-border-radius-m) var(--aui-border-radius-m) 0}aui-number-input.ng-invalid.ng-dirty .aui-number-input__inner,.ng-submitted aui-number-input.ng-invalid .aui-number-input__inner{border-color:rgb(var(--aui-color-red))}\n"] }]
5032
- }], propDecorators: { size: [{
5033
- type: Input
5034
- }], min: [{
5035
- type: Input,
5036
- args: [{
5037
- transform: (val) => numberAttribute(val, Number.MIN_SAFE_INTEGER),
5038
- }]
5039
- }], max: [{
5040
- type: Input,
5041
- args: [{
5042
- transform: (val) => numberAttribute(val, Number.MAX_SAFE_INTEGER),
5043
- }]
5044
- }], step: [{
5025
+ args: [{ selector: 'aui-calendar-header', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"bem.element('container')\">\n <div>\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'left' }\"\n ></ng-container>\n </div>\n <!-- \u5185\u5BB9\u533A -->\n <span\n *ngIf=\"dateNavRange === DateNavRange.Month\"\n [class]=\"bem.element('nav-content')\"\n >\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </a>\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Month)\"\n >\n {{ headerRange?.start?.month() + 1 }}{{ 'month_suffix' | auiI18n }}\n </a>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Year\"\n [class]=\"bem.element('nav-content')\"\n >\n <a\n href=\"javascript:;\"\n (click)=\"clickNav(DateNavRange.Year)\"\n >\n {{ headerRange?.start?.year() }}{{ 'year_suffix' | auiI18n }}\n </a>\n </span>\n\n <span\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [class]=\"bem.element('nav-content')\"\n >\n {{ headerRange?.start.year() }} - {{ headerRange?.end?.year() }}\n </span>\n\n <div [class]=\"bem.element('nav-action')\">\n <ng-container\n *ngIf=\"dateNavRange !== DateNavRange.Decade\"\n [ngTemplateOutlet]=\"yearControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"dateNavRange === DateNavRange.Decade\"\n [ngTemplateOutlet]=\"decadeControl\"\n [ngTemplateOutletContext]=\"{ side: 'right' }\"\n ></ng-container>\n </div>\n</div>\n\n<ng-template\n #yearControl\n let-side=\"side\"\n>\n <span class=\"action-bar\">\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'right'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, 1)\"\n >\n <aui-icon icon=\"angle_right\"></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Year, side === 'left' ? -1 : 1)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Year, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n <button\n aui-button=\"text\"\n *ngIf=\"side === 'left'\"\n [class.hidden]=\"\n !shouldShowNav(DateNavRange.Month, side) ||\n dateNavRange !== DateNavRange.Month\n \"\n (click)=\"navHead(DateNavRange.Month, -1)\"\n >\n <aui-icon icon=\"angle_left\"></aui-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template\n #decadeControl\n let-side=\"side\"\n>\n <button\n aui-button=\"text\"\n (click)=\"navHead(DateNavRange.Decade, side === 'left' ? -10 : 10)\"\n [class.hidden]=\"!shouldShowNav(DateNavRange.Decade, side)\"\n >\n <aui-icon\n [icon]=\"side === 'left' ? 'angles_left' : 'angles_right'\"\n ></aui-icon>\n </button>\n</ng-template>\n", styles: [".aui-calendar-header__container{height:24px;display:flex;align-items:center;justify-content:space-between}.aui-calendar-header__nav-content{flex:1;display:flex;justify-content:center;align-items:center;font-size:var(--aui-font-size-l);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-bolder)}.aui-calendar-header__nav-content a{color:rgb(var(--aui-color-main-text))}.aui-calendar-header__nav-content a:hover{color:rgb(var(--aui-color-primary));text-decoration:none!important}.aui-calendar-header__nav-content a+a{margin-left:5px}.action-bar{width:52px;display:flex}.action-bar .hidden{opacity:0;pointer-events:none}\n"] }]
5026
+ }], propDecorators: { dateNavRange: [{
5045
5027
  type: Input
5046
- }], precision: [{
5028
+ }], anchor: [{
5047
5029
  type: Input
5048
- }], controls: [{
5030
+ }], maxAvail: [{
5049
5031
  type: Input
5050
- }], placeholder: [{
5032
+ }], minAvail: [{
5051
5033
  type: Input
5052
- }], controlsPosition: [{
5034
+ }], navRangeChange: [{
5035
+ type: Output
5036
+ }], anchorChange: [{
5037
+ type: Output
5038
+ }] } });
5039
+
5040
+ class CalendarFooterComponent {
5041
+ clearable = true;
5042
+ clearText;
5043
+ customAction;
5044
+ confirm = new EventEmitter();
5045
+ clear = new EventEmitter();
5046
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CalendarFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5047
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: CalendarFooterComponent, selector: "aui-calendar-footer", inputs: { clearable: "clearable", clearText: "clearText", customAction: "customAction" }, outputs: { confirm: "confirm", clear: "clear" }, ngImport: i0, template: "<div class=\"aui-calendar-footer__wrapper\">\n <div style=\"flex: 1\">\n <ng-content></ng-content>\n </div>\n <div>\n <ng-container\n *ngIf=\"customAction; else default\"\n [ngTemplateOutlet]=\"customAction\"\n >\n </ng-container>\n <ng-template #default>\n <button\n aui-button=\"text\"\n *ngIf=\"clearable\"\n (click)=\"clear.emit()\"\n size=\"small\"\n >\n {{ clearText || ('clear' | auiI18n) }}\n </button>\n <button\n aui-button=\"primary\"\n (click)=\"confirm.emit()\"\n size=\"small\"\n >\n {{ 'confirm' | auiI18n }}\n </button>\n </ng-template>\n </div>\n</div>\n", styles: [".aui-calendar-footer__wrapper{display:flex;flex-direction:row;justify-content:space-between;border-top:1px solid rgb(var(--aui-color-n-8));padding:8px 0 0}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
5048
+ }
5049
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: CalendarFooterComponent, decorators: [{
5050
+ type: Component,
5051
+ args: [{ selector: 'aui-calendar-footer', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"aui-calendar-footer__wrapper\">\n <div style=\"flex: 1\">\n <ng-content></ng-content>\n </div>\n <div>\n <ng-container\n *ngIf=\"customAction; else default\"\n [ngTemplateOutlet]=\"customAction\"\n >\n </ng-container>\n <ng-template #default>\n <button\n aui-button=\"text\"\n *ngIf=\"clearable\"\n (click)=\"clear.emit()\"\n size=\"small\"\n >\n {{ clearText || ('clear' | auiI18n) }}\n </button>\n <button\n aui-button=\"primary\"\n (click)=\"confirm.emit()\"\n size=\"small\"\n >\n {{ 'confirm' | auiI18n }}\n </button>\n </ng-template>\n </div>\n</div>\n", styles: [".aui-calendar-footer__wrapper{display:flex;flex-direction:row;justify-content:space-between;border-top:1px solid rgb(var(--aui-color-n-8));padding:8px 0 0}\n"] }]
5052
+ }], propDecorators: { clearable: [{
5053
5053
  type: Input
5054
- }], angleControls: [{
5054
+ }], clearText: [{
5055
5055
  type: Input
5056
- }], clearable: [{
5056
+ }], customAction: [{
5057
5057
  type: Input
5058
- }], inputRef: [{
5059
- type: ViewChild,
5060
- args: ['inputRef', { read: ElementRef }]
5061
- }], addonBeforeRefs: [{
5062
- type: ContentChildren,
5063
- args: [InputAddonBeforeDirective]
5064
- }], addonAfterRefs: [{
5065
- type: ContentChildren,
5066
- args: [InputAddonAfterDirective]
5058
+ }], confirm: [{
5059
+ type: Output
5060
+ }], clear: [{
5061
+ type: Output
5067
5062
  }] } });
5068
5063
 
5069
- class SearchComponent {
5070
- bem = buildBem('aui-search');
5071
- size = ComponentSize.Medium;
5072
- searchButton = false;
5073
- clearable = true;
5074
- searching = false;
5075
- placeholder = '';
5076
- disabled = false;
5077
- get keyword() {
5078
- return this.value;
5079
- }
5080
- set keyword(value) {
5081
- this.value = value;
5064
+ dayjs.extend(isBetween);
5065
+ const bem$4 = buildBem('aui-picker-panel');
5066
+ class PickerPanelComponent {
5067
+ cdr;
5068
+ navRange;
5069
+ type;
5070
+ anchor = dayjs();
5071
+ matchDates;
5072
+ disabledDate = () => false;
5073
+ set weekStartDay(day) {
5074
+ const normalized = Math.max(Math.min(Math.round(day), 6), 0);
5075
+ this.weekDefs = [
5076
+ ...this.weekDefs.slice(normalized),
5077
+ ...this.weekDefs.slice(0, normalized),
5078
+ ];
5079
+ this._weekStartDay = normalized;
5082
5080
  }
5083
- keywordChange = new EventEmitter();
5084
- search = new EventEmitter();
5085
- clear = new EventEmitter();
5086
- inputRef;
5087
- value = '';
5088
- get showSpinner() {
5089
- return this.searching && !this.searchButton;
5081
+ get weekStartDay() {
5082
+ return this._weekStartDay;
5090
5083
  }
5091
- get showClear() {
5092
- return !this.disabled && this.clearable && this.value && !this.showSpinner;
5084
+ minDate;
5085
+ maxDate;
5086
+ get disabledDateFn() {
5087
+ return composeDisabledDateFn(date => this.minDate && date.isBefore(this.minDate, 'date'), date => this.maxDate && date.isAfter(this.maxDate, 'date'), this.disabledDate);
5093
5088
  }
5094
- focus() {
5095
- this.inputRef.nativeElement.focus();
5089
+ _weekStartDay = 0;
5090
+ panelData;
5091
+ select = new EventEmitter();
5092
+ hovered = new EventEmitter();
5093
+ bem = bem$4;
5094
+ DateNavRange = DateNavRange;
5095
+ weekDefs = [
5096
+ 'sunday',
5097
+ 'monday',
5098
+ 'tuesday',
5099
+ 'wednesday',
5100
+ 'thursday',
5101
+ 'friday',
5102
+ 'saturday',
5103
+ ];
5104
+ constructor(cdr) {
5105
+ this.cdr = cdr;
5096
5106
  }
5097
- emitChange(value) {
5098
- this.value = value;
5099
- this.keywordChange.emit(value);
5107
+ ngOnChanges() {
5108
+ const headerRange = calcRangeValue(this.navRange, this.anchor);
5109
+ this.renderPanelData(headerRange.start, this.navRange);
5100
5110
  }
5101
- emitSearch() {
5102
- if (this.disabled) {
5103
- return;
5111
+ renderPanelData(date, navRange) {
5112
+ const value = [];
5113
+ let colCounts = 0;
5114
+ let rowCounts = 0;
5115
+ if (!this.panelData) {
5116
+ this.panelData = [[]];
5104
5117
  }
5105
- this.search.emit(this.value);
5118
+ const [...values] = getDatePanelIterable(date, navRange, this.weekStartDay);
5119
+ switch (navRange) {
5120
+ case DateNavRange.Month: {
5121
+ colCounts = DAY_PANEL_COLUMN_COUNT;
5122
+ rowCounts = DAY_PANEL_ROW_COUNT;
5123
+ break;
5124
+ }
5125
+ case DateNavRange.Decade: {
5126
+ colCounts = YEAR_PANEL_COLUMN_COUNT;
5127
+ rowCounts = YEAR_PANEL_ROW_COUNT;
5128
+ break;
5129
+ }
5130
+ case DateNavRange.Year: {
5131
+ colCounts = MONTH_PANEL_COLUMN_COUNT;
5132
+ rowCounts = MONTH_PANEL_ROW_COUNT;
5133
+ break;
5134
+ }
5135
+ }
5136
+ for (let k = 0; k < rowCounts; k++) {
5137
+ const row = [];
5138
+ for (let i = 0; i < colCounts; i++) {
5139
+ const cell = formatDate(navRange, values[k * colCounts + i], date);
5140
+ cell.isDisabled = this.disabledDateFn(cell.value, navRange);
5141
+ const sortedDates = sortDates(this.matchDates);
5142
+ if (sortedDates?.length === 2 && navRange === DateNavRange.Month) {
5143
+ if (cell.value.isBetween(sortedDates[0], sortedDates[1]) &&
5144
+ !cell.isBackground) {
5145
+ cell.inRange = true;
5146
+ }
5147
+ cell.isRangeStart =
5148
+ cell.value.isSame(sortedDates[0], DAY) && !cell.isBackground;
5149
+ cell.isRangeEnd =
5150
+ cell.value.isSame(sortedDates[1], DAY) && !cell.isBackground;
5151
+ if (cell.isRangeStart && cell.isRangeEnd) {
5152
+ cell.isRangeStart = false;
5153
+ cell.isRangeEnd = false;
5154
+ }
5155
+ }
5156
+ row.push(cell);
5157
+ }
5158
+ value.push(row);
5159
+ }
5160
+ this.panelData = value.slice();
5161
+ this.cdr.markForCheck();
5106
5162
  }
5107
- emitClear() {
5108
- if (this.disabled) {
5109
- return;
5163
+ match(value) {
5164
+ if (!this.matchDates?.filter(v => !!v)?.length ||
5165
+ getNavRangeByType(this.type) !== this.navRange) {
5166
+ return false;
5110
5167
  }
5111
- this.value = '';
5112
- this.keywordChange.emit('');
5113
- this.search.emit('');
5114
- this.clear.emit();
5115
- this.inputRef.nativeElement.focus();
5168
+ return this.matchDates?.some(dateValue => this.navRange === DateNavRange.Decade
5169
+ ? value.isSame(dateValue, YEAR)
5170
+ : this.navRange === DateNavRange.Year
5171
+ ? value.isSame(dateValue, MONTH)
5172
+ : value.isSame(dateValue, DAY));
5116
5173
  }
5117
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5118
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", 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]=\"showClear\"\n [class.isSearching]=\"searching\"\n [class.isDisabled]=\"disabled\"\n>\n <div\n *ngIf=\"!searchButton\"\n [class]=\"bem.element('icon')\"\n >\n <aui-icon icon=\"magnifier\"></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=\"xmark_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' : 'magnifier'\"></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);color:rgb(var(--aui-color-n-2))}.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);color:rgb(var(--aui-color-n-2))}.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);color:rgb(var(--aui-color-n-2))}.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);color:rgb(var(--aui-color-n-2))}.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,.isSearching) .aui-search__button{cursor:pointer}.aui-search:not(.isDisabled,.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"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "component", type: InputComponent, selector: "input[aui-input],textarea[aui-input]", inputs: ["size", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
5174
+ matchToday(value) {
5175
+ return value.isSame(dayjs(), getTypeByNavRange(this.navRange));
5176
+ }
5177
+ selectValue(value) {
5178
+ this.select.next(value);
5179
+ }
5180
+ trackByFn() {
5181
+ return this.navRange;
5182
+ }
5183
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: PickerPanelComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
5184
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: PickerPanelComponent, selector: "aui-picker-panel", inputs: { navRange: "navRange", type: "type", anchor: "anchor", matchDates: "matchDates", disabledDate: "disabledDate", weekStartDay: "weekStartDay", minDate: "minDate", maxDate: "maxDate" }, outputs: { select: "select", hovered: "hovered" }, usesOnChanges: true, ngImport: i0, template: "<div\n [class]=\"bem.element('container')\"\n [ngClass]=\"{\n 'day-panel-container': navRange === DateNavRange.Month,\n 'month-panel-container': navRange === DateNavRange.Year,\n 'year-panel-container': navRange === DateNavRange.Decade\n }\"\n>\n <div\n [class]=\"[bem.element('row'), 'week-header'].join(' ')\"\n *ngIf=\"navRange === DateNavRange.Month\"\n >\n <span\n *ngFor=\"let item of weekDefs\"\n [class]=\"bem.element('cell')\"\n >\n {{ item | auiI18n }}\n </span>\n </div>\n <div\n [class]=\"bem.element('row')\"\n *ngFor=\"let row of panelData; trackBy: trackByFn\"\n >\n <span\n *ngFor=\"let item of row; trackBy: trackByFn\"\n [class]=\"bem.element('cell')\"\n [ngClass]=\"{\n inRange: item.inRange && !item.isDisabled,\n isActive: match(item.value),\n isBackground: item.isBackground && !item.isDisabled,\n isRangeStart: item.isRangeStart,\n isRangeEnd: item.isRangeEnd,\n isToday: matchToday(item.value) && !item.isBackground,\n isDisabled: item.isDisabled\n }\"\n ><button\n aui-button=\"text\"\n [plain]=\"true\"\n [size]=\"navRange === DateNavRange.Month ? 'mini' : 'small'\"\n [disabled]=\"item.isDisabled\"\n (click)=\"selectValue(item.value)\"\n (mouseenter)=\"hovered.next(item.value)\"\n >\n {{ item.label\n }}<ng-container *ngIf=\"navRange === DateNavRange.Year\">{{\n 'month_suffix' | auiI18n\n }}</ng-container>\n </button>\n </span>\n </div>\n</div>\n", styles: [".aui-picker-panel__container{height:min-content;box-sizing:border-box;justify-content:stretch;display:flex;flex-direction:column;margin:12px 9px;align-items:center}.aui-picker-panel__container .aui-button{box-sizing:border-box}.aui-picker-panel__container .aui-button__content{padding:0!important}.aui-picker-panel__container.month-panel-container button,.aui-picker-panel__container.year-panel-container button{width:56px;height:28px!important}.aui-picker-panel__container.day-panel-container{height:min-content;padding:0;margin:0}.aui-picker-panel__container.day-panel-container button{height:24px!important;width:24px!important}.aui-picker-panel__container.day-panel-container .aui-picker-panel__row+.aui-picker-panel__row{margin-top:8px}.aui-picker-panel__row+.aui-picker-panel__row{margin-top:20px}.aui-picker-panel__row{flex:1;display:flex;align-items:center;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);width:100%}.aui-picker-panel__row.week-header{color:rgb(var(--aui-color-help-text));margin-bottom:8px}.aui-picker-panel__row.week-header span{display:inline-block;margin:0;width:36px;text-align:center}.aui-picker-panel__cell{display:inline-flex;position:relative;align-items:center;justify-content:center;margin-inline:6px}.aui-picker-panel__cell button{box-sizing:content-box;transition:color .3s ease,background-color .3s ease}.aui-picker-panel__cell.inRange{background-color:rgb(var(--aui-color-p-6));box-shadow:-6px 0 0 0 rgb(var(--aui-color-p-6)),6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeEnd{box-shadow:-6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeStart{box-shadow:6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isDisabled{background-color:rgb(var(--aui-color-n-8));box-shadow:-6px 0 0 0 rgb(var(--aui-color-n-8)),6px 0 0 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isDisabled button{color:rgb(var(--aui-color-disabled-text))!important;border-color:rgb(var(--aui-color-disabled-text))!important}.aui-picker-panel__cell.isDisabled.isActive button,.aui-picker-panel__cell.isDisabled.isToday button{color:#fff!important;border-color:rgb(var(--aui-color-p-4))!important;background-color:rgb(var(--aui-color-p-4))!important}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled,.isRangeStart){box-shadow:-12px 0 0 0 rgb(var(--aui-color-popper-bg))}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled).isRangeStart{box-shadow:-12px 0 0 0 rgb(var(--aui-color-popper-bg)),6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell:not(.isDisabled)+.aui-picker-panel__cell.isDisabled{box-shadow:6px 0 0 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isToday button{border:rgb(var(--aui-color-primary)) 1px solid;color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-7))}.aui-picker-panel__cell.isActive button{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-picker-panel__cell.isBackground button{background-color:initial!important;color:rgb(var(--aui-color-disabled-text))}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
5119
5185
  }
5120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: SearchComponent, decorators: [{
5186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: PickerPanelComponent, decorators: [{
5121
5187
  type: Component,
5122
- 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]=\"showClear\"\n [class.isSearching]=\"searching\"\n [class.isDisabled]=\"disabled\"\n>\n <div\n *ngIf=\"!searchButton\"\n [class]=\"bem.element('icon')\"\n >\n <aui-icon icon=\"magnifier\"></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=\"xmark_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' : 'magnifier'\"></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);color:rgb(var(--aui-color-n-2))}.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);color:rgb(var(--aui-color-n-2))}.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);color:rgb(var(--aui-color-n-2))}.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);color:rgb(var(--aui-color-n-2))}.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,.isSearching) .aui-search__button{cursor:pointer}.aui-search:not(.isDisabled,.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"] }]
5123
- }], propDecorators: { size: [{
5188
+ args: [{ selector: 'aui-picker-panel', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [class]=\"bem.element('container')\"\n [ngClass]=\"{\n 'day-panel-container': navRange === DateNavRange.Month,\n 'month-panel-container': navRange === DateNavRange.Year,\n 'year-panel-container': navRange === DateNavRange.Decade\n }\"\n>\n <div\n [class]=\"[bem.element('row'), 'week-header'].join(' ')\"\n *ngIf=\"navRange === DateNavRange.Month\"\n >\n <span\n *ngFor=\"let item of weekDefs\"\n [class]=\"bem.element('cell')\"\n >\n {{ item | auiI18n }}\n </span>\n </div>\n <div\n [class]=\"bem.element('row')\"\n *ngFor=\"let row of panelData; trackBy: trackByFn\"\n >\n <span\n *ngFor=\"let item of row; trackBy: trackByFn\"\n [class]=\"bem.element('cell')\"\n [ngClass]=\"{\n inRange: item.inRange && !item.isDisabled,\n isActive: match(item.value),\n isBackground: item.isBackground && !item.isDisabled,\n isRangeStart: item.isRangeStart,\n isRangeEnd: item.isRangeEnd,\n isToday: matchToday(item.value) && !item.isBackground,\n isDisabled: item.isDisabled\n }\"\n ><button\n aui-button=\"text\"\n [plain]=\"true\"\n [size]=\"navRange === DateNavRange.Month ? 'mini' : 'small'\"\n [disabled]=\"item.isDisabled\"\n (click)=\"selectValue(item.value)\"\n (mouseenter)=\"hovered.next(item.value)\"\n >\n {{ item.label\n }}<ng-container *ngIf=\"navRange === DateNavRange.Year\">{{\n 'month_suffix' | auiI18n\n }}</ng-container>\n </button>\n </span>\n </div>\n</div>\n", styles: [".aui-picker-panel__container{height:min-content;box-sizing:border-box;justify-content:stretch;display:flex;flex-direction:column;margin:12px 9px;align-items:center}.aui-picker-panel__container .aui-button{box-sizing:border-box}.aui-picker-panel__container .aui-button__content{padding:0!important}.aui-picker-panel__container.month-panel-container button,.aui-picker-panel__container.year-panel-container button{width:56px;height:28px!important}.aui-picker-panel__container.day-panel-container{height:min-content;padding:0;margin:0}.aui-picker-panel__container.day-panel-container button{height:24px!important;width:24px!important}.aui-picker-panel__container.day-panel-container .aui-picker-panel__row+.aui-picker-panel__row{margin-top:8px}.aui-picker-panel__row+.aui-picker-panel__row{margin-top:20px}.aui-picker-panel__row{flex:1;display:flex;align-items:center;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);width:100%}.aui-picker-panel__row.week-header{color:rgb(var(--aui-color-help-text));margin-bottom:8px}.aui-picker-panel__row.week-header span{display:inline-block;margin:0;width:36px;text-align:center}.aui-picker-panel__cell{display:inline-flex;position:relative;align-items:center;justify-content:center;margin-inline:6px}.aui-picker-panel__cell button{box-sizing:content-box;transition:color .3s ease,background-color .3s ease}.aui-picker-panel__cell.inRange{background-color:rgb(var(--aui-color-p-6));box-shadow:-6px 0 0 0 rgb(var(--aui-color-p-6)),6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeEnd{box-shadow:-6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeStart{box-shadow:6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isDisabled{background-color:rgb(var(--aui-color-n-8));box-shadow:-6px 0 0 0 rgb(var(--aui-color-n-8)),6px 0 0 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isDisabled button{color:rgb(var(--aui-color-disabled-text))!important;border-color:rgb(var(--aui-color-disabled-text))!important}.aui-picker-panel__cell.isDisabled.isActive button,.aui-picker-panel__cell.isDisabled.isToday button{color:#fff!important;border-color:rgb(var(--aui-color-p-4))!important;background-color:rgb(var(--aui-color-p-4))!important}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled,.isRangeStart){box-shadow:-12px 0 0 0 rgb(var(--aui-color-popper-bg))}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled).isRangeStart{box-shadow:-12px 0 0 0 rgb(var(--aui-color-popper-bg)),6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell:not(.isDisabled)+.aui-picker-panel__cell.isDisabled{box-shadow:6px 0 0 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isToday button{border:rgb(var(--aui-color-primary)) 1px solid;color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-7))}.aui-picker-panel__cell.isActive button{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-picker-panel__cell.isBackground button{background-color:initial!important;color:rgb(var(--aui-color-disabled-text))}\n"] }]
5189
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { navRange: [{
5124
5190
  type: Input
5125
- }], searchButton: [{
5191
+ }], type: [{
5126
5192
  type: Input
5127
- }], clearable: [{
5193
+ }], anchor: [{
5128
5194
  type: Input
5129
- }], searching: [{
5195
+ }], matchDates: [{
5130
5196
  type: Input
5131
- }], placeholder: [{
5197
+ }], disabledDate: [{
5132
5198
  type: Input
5133
- }], disabled: [{
5199
+ }], weekStartDay: [{
5134
5200
  type: Input
5135
- }], keyword: [{
5201
+ }], minDate: [{
5136
5202
  type: Input
5137
- }], keywordChange: [{
5138
- type: Output
5139
- }], search: [{
5203
+ }], maxDate: [{
5204
+ type: Input
5205
+ }], select: [{
5140
5206
  type: Output
5141
- }], clear: [{
5207
+ }], hovered: [{
5142
5208
  type: Output
5143
- }], inputRef: [{
5144
- type: ViewChild,
5145
- args: ['input', { read: ElementRef }]
5146
5209
  }] } });
5147
5210
 
5148
- function getRowHeight(size) {
5149
- switch (size) {
5150
- case ComponentSize.Large: {
5151
- return 33;
5152
- }
5153
- case ComponentSize.Small: {
5154
- return 23;
5155
- }
5156
- case ComponentSize.Mini: {
5157
- return 21;
5158
- }
5159
- default: {
5160
- return 25;
5161
- }
5162
- }
5163
- }
5164
- function getContainerPaddingPatch(size) {
5165
- switch (size) {
5166
- case ComponentSize.Mini: {
5167
- return 3;
5168
- }
5169
- case ComponentSize.Small: {
5170
- return 5;
5171
- }
5172
- default: {
5173
- return 7;
5174
- }
5175
- }
5176
- }
5177
- function createWithMaxRowCount(component) {
5178
- const hostPosition = () => (component.maxRowCount > 0 ? 'relative' : null);
5179
- const hostDisplay = () => (component.maxRowCount ? 'block' : null);
5180
- const maxHeight = () => {
5181
- if (component.maxRowCount <= 0) {
5182
- return null;
5183
- }
5184
- const paddingPatch = getContainerPaddingPatch(component.size);
5185
- const rowHeight = isNaN(component.customRowHeight) || component.customRowHeight <= 0
5186
- ? getRowHeight(component.size)
5187
- : component.customRowHeight;
5188
- return `${rowHeight * component.maxRowCount + paddingPatch}px`;
5189
- };
5190
- return {
5191
- hostPosition,
5192
- hostDisplay,
5193
- maxHeight,
5194
- };
5195
- }
5196
-
5197
- const INPUT_ERROR_KEY = 'input_data_error';
5198
- class TagsInputComponent extends CommonFormControl {
5199
- fb;
5200
- renderer;
5201
- injector;
5202
- bem = buildBem('aui-tags-input');
5203
- placeholder = '';
5204
- size = ComponentSize.Medium;
5205
- clearable = false;
5206
- allowRepeat = false;
5207
- allowEmpty = false;
5208
- readonlyTags = [];
5209
- maxRowCount = 0;
5210
- customRowHeight = 0;
5211
- _inputValidator;
5212
- _inputAsyncValidator;
5213
- set inputValidator(fn) {
5214
- this._inputValidator = Array.isArray(fn) ? Validators.compose(fn) : fn;
5215
- }
5216
- get inputValidator() {
5217
- return this._inputValidator;
5218
- }
5219
- set inputAsyncValidator(fn) {
5220
- this._inputAsyncValidator = Array.isArray(fn)
5221
- ? Validators.composeAsync(fn)
5222
- : fn;
5223
- }
5224
- get inputAsyncValidator() {
5225
- return this._inputAsyncValidator;
5226
- }
5227
- inputRef;
5228
- inputValueMirror;
5229
- get hostPosition() {
5230
- return this.withMaxRowCount.hostPosition();
5231
- }
5232
- get hostDisplay() {
5233
- return this.withMaxRowCount.hostDisplay();
5234
- }
5235
- get maxHeight() {
5236
- return this.withMaxRowCount.maxHeight();
5237
- }
5238
- withMaxRowCount = createWithMaxRowCount(this);
5239
- focused = false;
5240
- model = [];
5241
- inputControl;
5242
- controlContainer;
5243
- get rootClass() {
5244
- const size = this.size || ComponentSize.Medium;
5245
- return `aui-input ${this.bem.block(size)} ${this.disabled ? 'isDisabled' : ''} ${this.focused ? 'isFocused' : ''} ${this.clearable ? 'isClearable' : ''} ${this.maxRowCount > 0 ? 'withHeightLimit' : ''}`;
5246
- }
5247
- get tagSize() {
5248
- return this.size === ComponentSize.Large
5249
- ? ComponentSize.Medium
5250
- : ComponentSize.Mini;
5251
- }
5252
- get inputClass() {
5253
- return `${this.bem.element('input', {
5254
- hidden: this.disabled || (!this.focused && !this.inputRef?.nativeElement.value),
5255
- })} aui-tag aui-tag--${this.tagSize}`;
5211
+ class DatePickerPanelComponent extends CommonFormControl {
5212
+ clearable = true;
5213
+ clearText;
5214
+ set type(type) {
5215
+ this.navRange = getNavRangeByType(type);
5216
+ this._type = type;
5256
5217
  }
5257
- constructor(cdr, fb, renderer, injector) {
5258
- super(cdr);
5259
- this.fb = fb;
5260
- this.renderer = renderer;
5261
- this.injector = injector;
5262
- this.inputControl = this.fb.control('');
5218
+ get type() {
5219
+ return this._type;
5263
5220
  }
5264
- ngOnChanges({ inputValidator, inputAsyncValidator, disabled, }) {
5265
- if (disabled) {
5266
- this.inputControl[disabled.currentValue ? 'disable' : 'enable']({
5267
- emitEvent: false,
5268
- });
5221
+ _type;
5222
+ showTime = false;
5223
+ disabledDate = () => false;
5224
+ disabledTime = () => null;
5225
+ weekStartDay = 0;
5226
+ showFooter = true;
5227
+ footerTemplate;
5228
+ extraFooter;
5229
+ minDate;
5230
+ maxDate;
5231
+ confirm = new EventEmitter();
5232
+ clear = new EventEmitter();
5233
+ _cacheSelectedDate;
5234
+ _cacheDisabledTimeFn;
5235
+ getDisabledTimeFn(selectedDate, type) {
5236
+ if (selectedDate !== this._cacheSelectedDate) {
5237
+ this._cacheDisabledTimeFn = combineDisabledTimeFn(this._disabledTimeFn.bind(this), this.disabledTime)(selectedDate);
5238
+ this._cacheSelectedDate = selectedDate;
5269
5239
  }
5270
- if (inputValidator) {
5271
- this.inputControl.setValidators(this.inputValidator);
5240
+ return this._cacheDisabledTimeFn?.[type];
5241
+ }
5242
+ navRange;
5243
+ get currentNavType() {
5244
+ return getTypeByNavRange(this.navRange);
5245
+ }
5246
+ anchor;
5247
+ selectedDate;
5248
+ selectedTime;
5249
+ DateNavRange = DateNavRange;
5250
+ DatePickerType = DatePickerType;
5251
+ writeValue(obj) {
5252
+ super.writeValue(obj);
5253
+ this.selectedDate = obj;
5254
+ this.selectedTime = getTimePickerModel(obj);
5255
+ this.anchor = obj || dayjs();
5256
+ this.cdr.markForCheck();
5257
+ }
5258
+ panelValueChange(value) {
5259
+ this.selectedDate = updateDate(this.selectedDate || dayjs(), value, this.currentNavType);
5260
+ this.anchor = this.selectedDate;
5261
+ this.selectedDate = updateDateByTimeModel(this.selectedDate, this.selectedTime);
5262
+ if (this.type === this.currentNavType) {
5263
+ this.confirmValue(this.selectedDate, !this.showTime);
5272
5264
  }
5273
- if (inputAsyncValidator) {
5274
- this.inputControl.setAsyncValidators(this.inputAsyncValidator);
5265
+ const nextNavRange = nextNavRangeType(this.navRange, getNavRangeByType(this.type));
5266
+ if (this.navRange !== nextNavRange) {
5267
+ this.navRange = nextNavRange;
5275
5268
  }
5276
5269
  }
5277
- ngAfterViewInit() {
5278
- this.controlContainer = this.injector.get(NgControl, null);
5270
+ confirmValue(value, closeAfterConfirm = true) {
5271
+ this.emitValue(value ? dayjs(value) : this.selectedDate);
5272
+ closeAfterConfirm && this.confirm.next(null);
5279
5273
  }
5280
- onRemove(index) {
5281
- const target = this.model[index];
5282
- if (target && this.readonlyTags.includes(target)) {
5274
+ timeDateChange(time) {
5275
+ if (!this.selectedDate) {
5283
5276
  return;
5284
5277
  }
5285
- this.emitValue(this.model.filter((_, i) => i !== index));
5278
+ this.selectedDate = updateDateByTimeModel(this.selectedDate, time);
5279
+ this.emitValue(this.selectedDate);
5286
5280
  }
5287
- onInput() {
5288
- const value = this.inputRef.nativeElement.value;
5289
- requestAnimationFrame(() => {
5290
- if (value.length) {
5291
- this.renderer.setStyle(this.inputRef.nativeElement, 'width', this.inputValueMirror.nativeElement.scrollWidth + 'px');
5281
+ setToday() {
5282
+ this.confirmValue(dayjs(), true);
5283
+ }
5284
+ clearValue() {
5285
+ this.selectedTime = null;
5286
+ this.clear.next();
5287
+ }
5288
+ _disabledTimeFn(selectedDate) {
5289
+ const getTimeFilter = (date, comparator) => ({
5290
+ hours: () => HOUR_ITEMS.filter(item => comparator(item, date.hour())),
5291
+ minutes: (hour) => hour === date.hour()
5292
+ ? MINUTE_ITEMS.filter(item => comparator(item, date.minute()))
5293
+ : [],
5294
+ seconds: (hour, minute) => hour === date.hour() && minute === date.minute()
5295
+ ? SECOND_ITEMS.filter(item => comparator(item, date.second()))
5296
+ : [],
5297
+ });
5298
+ if (selectedDate) {
5299
+ if (this.minDate &&
5300
+ selectedDate?.isSame(this.minDate, 'date')) {
5301
+ return getTimeFilter(this.minDate, (a, b) => a < b);
5292
5302
  }
5293
- else {
5294
- this.renderer.removeStyle(this.inputRef.nativeElement, 'width');
5303
+ if (this.maxDate &&
5304
+ selectedDate?.isSame(this.maxDate, 'date')) {
5305
+ return getTimeFilter(this.maxDate, (a, b) => a > b);
5295
5306
  }
5296
- });
5297
- if (this.controlContainer?.control?.errors?.[INPUT_ERROR_KEY] &&
5298
- Object.keys(this.controlContainer.control.errors).length === 1) {
5299
- this.controlContainer.control.setErrors(null);
5300
5307
  }
5308
+ return {
5309
+ hours: () => [],
5310
+ minutes: () => [],
5311
+ seconds: () => [],
5312
+ };
5301
5313
  }
5302
- onKeyDown(event) {
5303
- const inputEl = event.target;
5304
- if (event.key === 'Backspace' && inputEl.value === '') {
5305
- this.onRemove(this.model.length - 1);
5306
- event.stopPropagation();
5307
- event.preventDefault();
5308
- }
5309
- else if (event.key === 'Enter') {
5310
- event.stopPropagation();
5311
- event.preventDefault();
5312
- requestAnimationFrame(() => {
5313
- this.pushValue(inputEl.value);
5314
- });
5315
- }
5314
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: DatePickerPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
5315
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: DatePickerPanelComponent, selector: "aui-date-picker-panel", inputs: { clearable: "clearable", clearText: "clearText", type: "type", showTime: "showTime", disabledDate: "disabledDate", disabledTime: "disabledTime", weekStartDay: "weekStartDay", showFooter: "showFooter", footerTemplate: "footerTemplate", extraFooter: "extraFooter", minDate: "minDate", maxDate: "maxDate" }, outputs: { confirm: "confirm", clear: "clear" }, providers: [
5316
+ {
5317
+ provide: NG_VALUE_ACCESSOR,
5318
+ useExisting: forwardRef(() => DatePickerPanelComponent),
5319
+ multi: true,
5320
+ },
5321
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"aui-date-picker-panel__wrapper\">\n <aui-calendar-header\n [dateNavRange]=\"navRange\"\n [anchor]=\"anchor\"\n [minAvail]=\"minDate\"\n [maxAvail]=\"maxDate\"\n [style.margin-inline.px]=\"4\"\n (navRangeChange)=\"navRange = $event\"\n (anchorChange)=\"anchor = $event\"\n ></aui-calendar-header>\n\n <aui-picker-panel\n [style.margin]=\"'16px 0'\"\n [anchor]=\"anchor\"\n [navRange]=\"navRange\"\n [disabledDate]=\"disabledDate\"\n [weekStartDay]=\"weekStartDay\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [type]=\"type\"\n [matchDates]=\"[selectedDate]\"\n (select)=\"panelValueChange($event)\"\n ></aui-picker-panel>\n\n <ng-container\n *ngIf=\"extraFooter\"\n [ngTemplateOutlet]=\"extraFooter\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-container *ngIf=\"showFooter\">\n <aui-calendar-footer\n (clear)=\"clear.next()\"\n (confirm)=\"confirmValue()\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n *ngIf=\"showTime; else today\"\n >\n <ng-container\n *ngIf=\"footerTemplate; else default\"\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-template #default>\n <aui-time-picker\n *ngIf=\"currentNavType === DatePickerType.Day && showTime\"\n [showIcon]=\"false\"\n size=\"small\"\n [(ngModel)]=\"selectedTime\"\n [disableHours]=\"getDisabledTimeFn(selectedDate, 'hours')\"\n [disableMinutes]=\"getDisabledTimeFn(selectedDate, 'minutes')\"\n [disableSeconds]=\"getDisabledTimeFn(selectedDate, 'seconds')\"\n tooltipPosition=\"top start\"\n (ngModelChange)=\"timeDateChange($event)\"\n [placeholder]=\"'select_time' | auiI18n\"\n ></aui-time-picker>\n </ng-template>\n </aui-calendar-footer>\n\n <ng-template #today>\n <aui-calendar-footer\n *ngIf=\"type === DatePickerType.Day\"\n (clear)=\"clearValue()\"\n [clearable]=\"false\"\n [customAction]=\"todayBtn\"\n >\n </aui-calendar-footer>\n <ng-template #todayBtn>\n <button\n aui-button=\"inline\"\n (click)=\"setToday()\"\n >\n {{ 'today' | auiI18n }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</div>\n", styles: [".aui-date-picker-panel__wrapper{display:flex;flex-direction:column;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-date-picker-panel__wrapper .aui-time-picker{width:88px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: TimePickerComponent, selector: "aui-time-picker", inputs: ["format", "size", "placeholder", "clearable", "showIcon", "disableHours", "disableMinutes", "disableSeconds", "hourStep", "minuteStep", "secondStep", "footerTemplate"], outputs: ["open", "close"] }, { kind: "component", type: CalendarHeaderComponent, selector: "aui-calendar-header", inputs: ["dateNavRange", "anchor", "maxAvail", "minAvail"], outputs: ["navRangeChange", "anchorChange"] }, { kind: "component", type: CalendarFooterComponent, selector: "aui-calendar-footer", inputs: ["clearable", "clearText", "customAction"], outputs: ["confirm", "clear"] }, { kind: "component", type: PickerPanelComponent, selector: "aui-picker-panel", inputs: ["navRange", "type", "anchor", "matchDates", "disabledDate", "weekStartDay", "minDate", "maxDate"], outputs: ["select", "hovered"] }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
5322
+ }
5323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: DatePickerPanelComponent, decorators: [{
5324
+ type: Component,
5325
+ args: [{ selector: 'aui-date-picker-panel', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
5326
+ {
5327
+ provide: NG_VALUE_ACCESSOR,
5328
+ useExisting: forwardRef(() => DatePickerPanelComponent),
5329
+ multi: true,
5330
+ },
5331
+ ], template: "<div class=\"aui-date-picker-panel__wrapper\">\n <aui-calendar-header\n [dateNavRange]=\"navRange\"\n [anchor]=\"anchor\"\n [minAvail]=\"minDate\"\n [maxAvail]=\"maxDate\"\n [style.margin-inline.px]=\"4\"\n (navRangeChange)=\"navRange = $event\"\n (anchorChange)=\"anchor = $event\"\n ></aui-calendar-header>\n\n <aui-picker-panel\n [style.margin]=\"'16px 0'\"\n [anchor]=\"anchor\"\n [navRange]=\"navRange\"\n [disabledDate]=\"disabledDate\"\n [weekStartDay]=\"weekStartDay\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [type]=\"type\"\n [matchDates]=\"[selectedDate]\"\n (select)=\"panelValueChange($event)\"\n ></aui-picker-panel>\n\n <ng-container\n *ngIf=\"extraFooter\"\n [ngTemplateOutlet]=\"extraFooter\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-container *ngIf=\"showFooter\">\n <aui-calendar-footer\n (clear)=\"clear.next()\"\n (confirm)=\"confirmValue()\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n *ngIf=\"showTime; else today\"\n >\n <ng-container\n *ngIf=\"footerTemplate; else default\"\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ context: this }\"\n ></ng-container>\n\n <ng-template #default>\n <aui-time-picker\n *ngIf=\"currentNavType === DatePickerType.Day && showTime\"\n [showIcon]=\"false\"\n size=\"small\"\n [(ngModel)]=\"selectedTime\"\n [disableHours]=\"getDisabledTimeFn(selectedDate, 'hours')\"\n [disableMinutes]=\"getDisabledTimeFn(selectedDate, 'minutes')\"\n [disableSeconds]=\"getDisabledTimeFn(selectedDate, 'seconds')\"\n tooltipPosition=\"top start\"\n (ngModelChange)=\"timeDateChange($event)\"\n [placeholder]=\"'select_time' | auiI18n\"\n ></aui-time-picker>\n </ng-template>\n </aui-calendar-footer>\n\n <ng-template #today>\n <aui-calendar-footer\n *ngIf=\"type === DatePickerType.Day\"\n (clear)=\"clearValue()\"\n [clearable]=\"false\"\n [customAction]=\"todayBtn\"\n >\n </aui-calendar-footer>\n <ng-template #todayBtn>\n <button\n aui-button=\"inline\"\n (click)=\"setToday()\"\n >\n {{ 'today' | auiI18n }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</div>\n", styles: [".aui-date-picker-panel__wrapper{display:flex;flex-direction:column;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-date-picker-panel__wrapper .aui-time-picker{width:88px}\n"] }]
5332
+ }], propDecorators: { clearable: [{
5333
+ type: Input
5334
+ }], clearText: [{
5335
+ type: Input
5336
+ }], type: [{
5337
+ type: Input
5338
+ }], showTime: [{
5339
+ type: Input
5340
+ }], disabledDate: [{
5341
+ type: Input
5342
+ }], disabledTime: [{
5343
+ type: Input
5344
+ }], weekStartDay: [{
5345
+ type: Input
5346
+ }], showFooter: [{
5347
+ type: Input
5348
+ }], footerTemplate: [{
5349
+ type: Input
5350
+ }], extraFooter: [{
5351
+ type: Input
5352
+ }], minDate: [{
5353
+ type: Input
5354
+ }], maxDate: [{
5355
+ type: Input
5356
+ }], confirm: [{
5357
+ type: Output
5358
+ }], clear: [{
5359
+ type: Output
5360
+ }] } });
5361
+ function combineDisabledTimeFn(...disabledFnList) {
5362
+ return (date) => ({
5363
+ hours: () => Array.from(new Set(disabledFnList.flatMap(fn => fn(date)?.hours?.() || []))),
5364
+ minutes: (hour) => Array.from(new Set(disabledFnList.flatMap(fn => fn(date)?.minutes?.(hour) || []))),
5365
+ seconds: (hour, minute) => Array.from(new Set(disabledFnList.flatMap(fn => fn(date)?.seconds?.(hour, minute) || []))),
5366
+ });
5367
+ }
5368
+
5369
+ const bem$3 = buildBem('aui-date-range-picker-panel');
5370
+ class DateRangePickerPanelComponent extends CommonFormControl {
5371
+ clearable = true;
5372
+ clearText;
5373
+ showTime = true;
5374
+ showFooter = true;
5375
+ disabledDate = () => false;
5376
+ disabledTime = {
5377
+ left: () => null,
5378
+ right: () => null,
5379
+ };
5380
+ weekStartDay = 0;
5381
+ minDate;
5382
+ maxDate;
5383
+ clear = new EventEmitter();
5384
+ confirm = new EventEmitter();
5385
+ bem = bem$3;
5386
+ Side = Side;
5387
+ DatePickerType = DatePickerType;
5388
+ leftDateRange = DateNavRange.Month;
5389
+ rightDateRange = DateNavRange.Month;
5390
+ FOOTER_DATE_FORMAT = 'YYYY-MM-dd';
5391
+ leftAnchor = dayjs();
5392
+ rightAnchor = dayjs().add(1, MONTH);
5393
+ get maxHeaderAvail() {
5394
+ return minDate(this.rightAnchor, this.maxDate);
5316
5395
  }
5317
- onInputFocus() {
5318
- this.focused = true;
5396
+ get minHeaderAvail() {
5397
+ return maxDate(this.minDate, this.leftAnchor);
5319
5398
  }
5320
- onInputBlur(event) {
5321
- this.focused = false;
5322
- this.pushValue(event.target.value);
5323
- if (this.onTouched) {
5324
- this.onTouched();
5399
+ rangeValue = [];
5400
+ matchValues;
5401
+ startTime;
5402
+ endTime;
5403
+ writeValue(obj) {
5404
+ super.writeValue(obj);
5405
+ this.rangeValue = obj || [];
5406
+ this.matchValues = [...this.rangeValue];
5407
+ this.startTime = getTimePickerModel(obj?.[0]);
5408
+ this.endTime = getTimePickerModel(obj?.[1]);
5409
+ if (obj?.length === 2) {
5410
+ this.reorder(sortDates(obj));
5325
5411
  }
5412
+ this.cdr.markForCheck();
5326
5413
  }
5327
- trackByValue(_, value) {
5328
- return value;
5414
+ calendarRangeChange(type, side) {
5415
+ if (side === Side.Left) {
5416
+ this.leftDateRange = type;
5417
+ }
5418
+ else {
5419
+ this.rightDateRange = type;
5420
+ }
5329
5421
  }
5330
- valueIn(v) {
5331
- this.clearInput();
5332
- return this.sortByReadonly(v || []);
5422
+ getDateDisabledFn(side, constrainValue) {
5423
+ return composeDisabledDateFn((date, navRange) => {
5424
+ if (navRange === DateNavRange.Month) {
5425
+ return false;
5426
+ }
5427
+ if (navRange === DateNavRange.Decade) {
5428
+ return date[side === Side.Left ? 'isAfter' : 'isBefore'](constrainValue, YEAR);
5429
+ }
5430
+ return !date[side === Side.Left ? 'isBefore' : 'isAfter'](constrainValue, MONTH);
5431
+ }, (...arg) => this.disabledDate(...arg, this.rangeValue[0]));
5333
5432
  }
5334
- sortByReadonly(items) {
5335
- return this.readonlyTags.length
5336
- ? [
5337
- ...items.reduce((acc, curr) => acc.add(curr), new Set(this.readonlyTags)),
5338
- ]
5339
- : items;
5433
+ getDisabledTimeCachedFn(side) {
5434
+ let cacheSelectedDate;
5435
+ let cacheDisabledTimeFn;
5436
+ return (value, key) => {
5437
+ if (value !== cacheSelectedDate) {
5438
+ cacheDisabledTimeFn = (this.disabledTime?.[side] || (() => null))(value);
5439
+ cacheSelectedDate = value;
5440
+ }
5441
+ return cacheDisabledTimeFn?.[key];
5442
+ };
5340
5443
  }
5341
- pushValue(value) {
5342
- if (!this.allowEmpty && !value) {
5343
- this.removeInputControlError();
5344
- return;
5444
+ leftDisabledTimeFn = this.getDisabledTimeCachedFn(Side.Left);
5445
+ rightDisabledTimeFn = this.getDisabledTimeCachedFn(Side.Right);
5446
+ selectPickerPanel(value, side) {
5447
+ const navRange = side === Side.Left ? this.leftDateRange : this.rightDateRange;
5448
+ const type = getTypeByNavRange(navRange);
5449
+ const dateValue = updateDate(side === Side.Left ? this.leftAnchor : this.rightAnchor, value, type);
5450
+ const nextRange = nextNavRangeType(navRange, DateNavRange.Month);
5451
+ if (side === Side.Left) {
5452
+ this.leftAnchor = dateValue;
5453
+ this.leftDateRange = nextRange;
5454
+ }
5455
+ else {
5456
+ this.rightAnchor = dateValue;
5457
+ this.rightDateRange = nextRange;
5345
5458
  }
5346
- if (!this.allowRepeat && this.model.includes(value)) {
5459
+ if (navRange !== DateNavRange.Month) {
5347
5460
  return;
5348
5461
  }
5349
- this.inputControl.setValue(this.inputRef.nativeElement.value);
5350
- this.syncControlStatus();
5351
- if (this.inputControl.valid) {
5352
- this.emitValue(this.model.concat(value));
5462
+ if (this.leftAnchor.isSame(this.rightAnchor, MONTH)) {
5463
+ this.rightAnchor = this.rightAnchor.add(1, MONTH);
5353
5464
  }
5354
- else if (this.inputControl.pending) {
5355
- this.inputControl.statusChanges.pipe(take(1)).subscribe(_ => {
5356
- this.syncControlStatus();
5357
- if (this.inputControl.valid) {
5358
- this.emitValue(this.model.concat(value));
5359
- }
5360
- });
5465
+ this.rangeValue =
5466
+ this.rangeValue.length === 2
5467
+ ? [dateValue]
5468
+ : sortDates([...this.rangeValue, dateValue]);
5469
+ this.matchValues = [...this.rangeValue];
5470
+ this.syncTime();
5471
+ if (this.rangeValue.length === 2) {
5472
+ this.reorder(this.rangeValue);
5473
+ this.confirmValue(this.rangeValue, !this.showTime);
5361
5474
  }
5362
5475
  }
5363
- syncControlStatus() {
5364
- const { pending, valid, invalid, disabled, errors } = this.inputControl;
5365
- if (valid) {
5366
- this.removeInputControlError();
5367
- this.controlContainer?.control.markAsDirty();
5368
- }
5369
- else if (pending) {
5370
- this.controlContainer?.control.markAsPending();
5371
- }
5372
- else if (invalid) {
5373
- this.controlContainer?.control.markAsDirty();
5374
- this.controlContainer?.control.setErrors({
5375
- ...this.controlContainer?.control?.errors,
5376
- [INPUT_ERROR_KEY]: errors,
5377
- });
5476
+ reorder(sortedDate) {
5477
+ if (!sortedDate[0].isSame(sortedDate[1], MONTH)) {
5478
+ this.leftAnchor = updateDate(this.leftAnchor, sortedDate[0], DatePickerType.Day);
5479
+ this.rightAnchor = updateDate(this.leftAnchor, sortedDate[1], DatePickerType.Day);
5378
5480
  }
5379
- else if (disabled) {
5380
- this.controlContainer?.control?.updateValueAndValidity();
5481
+ }
5482
+ hoverItem(date) {
5483
+ if (this.rangeValue.length === 1) {
5484
+ this.matchValues[1] = date;
5381
5485
  }
5382
5486
  }
5383
- removeInputControlError() {
5384
- let errors = this.controlContainer?.control.errors;
5385
- if (errors?.[INPUT_ERROR_KEY]) {
5386
- delete errors[INPUT_ERROR_KEY];
5487
+ confirmValue(value, closeThen = true) {
5488
+ this.emitValue(value);
5489
+ closeThen && this.confirm.next();
5490
+ }
5491
+ timeChange(time) {
5492
+ if (!time) {
5493
+ return;
5387
5494
  }
5388
- if (Object.keys(errors || {}).length === 0) {
5389
- errors = null;
5495
+ this.syncTime();
5496
+ if (!this.rangeValue?.length) {
5497
+ const date = updateDateByTimeModel(dayjs(), time);
5498
+ this.rangeValue = [date, date];
5499
+ this.matchValues = [...this.rangeValue];
5500
+ this.startTime = this.endTime = time;
5390
5501
  }
5391
- this.controlContainer?.control.setErrors(errors);
5502
+ this.emitValue(this.rangeValue);
5392
5503
  }
5393
- clearInput() {
5394
- this.renderer.removeStyle(this.inputRef.nativeElement, 'width');
5395
- this.inputRef.nativeElement.value = '';
5396
- this.inputControl.setValue('');
5504
+ syncTime() {
5505
+ if (this.showTime && !!this.rangeValue?.length) {
5506
+ const startDate = this.rangeValue[0]
5507
+ ? updateDateByTimeModel(this.rangeValue[0], this.startTime)
5508
+ : null;
5509
+ const endDate = this.rangeValue[1]
5510
+ ? updateDateByTimeModel(this.rangeValue[1], this.endTime)
5511
+ : null;
5512
+ if (!this.startTime && startDate) {
5513
+ this.startTime = getTimePickerModel(this.rangeValue[0]);
5514
+ }
5515
+ if (!this.endTime && endDate) {
5516
+ this.endTime = getTimePickerModel(this.rangeValue[1]);
5517
+ }
5518
+ this.rangeValue = [startDate, endDate].filter(i => !!i);
5519
+ }
5397
5520
  }
5398
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TagsInputComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i2$2.FormBuilder }, { token: i0.Renderer2 }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
5399
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: TagsInputComponent, selector: "aui-tags-input", inputs: { placeholder: "placeholder", size: "size", clearable: "clearable", allowRepeat: "allowRepeat", allowEmpty: "allowEmpty", readonlyTags: "readonlyTags", maxRowCount: "maxRowCount", customRowHeight: "customRowHeight", inputValidator: "inputValidator", inputAsyncValidator: "inputAsyncValidator" }, host: { properties: { "style.position": "this.hostPosition", "style.display": "this.hostDisplay" } }, providers: [
5521
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: DateRangePickerPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
5522
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: DateRangePickerPanelComponent, selector: "aui-date-range-picker-panel", inputs: { clearable: "clearable", clearText: "clearText", showTime: "showTime", showFooter: "showFooter", disabledDate: "disabledDate", disabledTime: "disabledTime", weekStartDay: "weekStartDay", minDate: "minDate", maxDate: "maxDate" }, outputs: { clear: "clear", confirm: "confirm" }, providers: [
5400
5523
  {
5401
5524
  provide: NG_VALUE_ACCESSOR,
5402
- useExisting: forwardRef(() => TagsInputComponent),
5525
+ useExisting: forwardRef(() => DateRangePickerPanelComponent),
5403
5526
  multi: true,
5404
5527
  },
5405
- ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, static: true }, { propertyName: "inputValueMirror", first: true, predicate: ["inputValueMirror"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\n [class]=\"rootClass\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"inputRef.focus()\"\n [style.max-height]=\"maxHeight\"\n>\n <span\n [hidden]=\"model.length || inputRef.value.length\"\n [class]=\"bem.element('placeholder')\"\n >\n {{ placeholder }}\n </span>\n <aui-tag\n *ngFor=\"let tag of model; let index = index; trackBy: trackByValue\"\n type=\"info\"\n [title]=\"tag\"\n [size]=\"tagSize\"\n [round]=\"true\"\n [border]=\"true\"\n [closeable]=\"!(disabled || readonlyTags.includes(tag))\"\n (close)=\"onRemove(index)\"\n >\n {{ tag }}\n </aui-tag>\n <input\n #inputRef\n [class]=\"inputClass\"\n [disabled]=\"disabled\"\n autocomplete=\"off\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur($event)\"\n (keydown)=\"onKeyDown($event)\"\n (input)=\"onInput()\"\n />\n <span\n #inputValueMirror\n [class]=\"bem.element('mirror')\"\n >{{ inputRef.value }}</span\n >\n</div>\n", styles: [".aui-input{display:inline-block;padding:0 var(--aui-inline-padding-xs);width:100%;min-width:0;border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-main-bg));color:rgb(var(--aui-color-main-text));outline:none;text-overflow:ellipsis;font-weight:var(--aui-font-weight-normal)}@keyframes cdk-text-field-autofill-color-0{to{background:rgb(var(--aui-color-n-9));color:rgb(var(--aui-color-main-text))}}.aui-input:-webkit-autofill{animation:cdk-text-field-autofill-color-0 both}.aui-input.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms,cdk-text-field-autofill-color-0 both}.aui-input::-webkit-outer-spin-button,.aui-input::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}.aui-input[type=number]{-webkit-appearance:textfield;appearance:textfield}.aui-input::placeholder{color:rgb(var(--aui-color-placeholder-text))}.aui-input:invalid,.aui-input:required{box-shadow:none}.aui-input:hover{border-color:rgb(var(--aui-color-primary))}.aui-input:focus,.aui-input.isFocused{border-color:rgb(var(--aui-color-primary))}:root .aui-input:focus,:root .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-input:focus,html[aui-theme-mode=light] .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-input:focus,html[aui-theme-mode=system] .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-input:focus,html[aui-theme-mode=dark] .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-input[readonly]{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))!important;cursor:default}.aui-input[disabled]{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))!important;color:rgb(var(--aui-color-disabled-text));-webkit-text-fill-color:rgb(var(--aui-color-disabled-text));cursor:not-allowed}.aui-input--large{height:var(--aui-inline-height-l);font-size:var(--aui-font-size-l)}.aui-input--medium{height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m)}.aui-input--small{height:var(--aui-inline-height-s);font-size:var(--aui-font-size-m)}.aui-input--mini{height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s)}textarea.aui-input{padding:var(--aui-inline-padding-xxs) var(--aui-inline-padding-xs);height:calc(var(--aui-inline-padding-xxs) * 2 + var(--aui-line-height-m) * 3 + 2px);max-height:calc(var(--aui-inline-padding-xxs) * 2 + var(--aui-line-height-m) * 6 + 2px);min-height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-main-text));resize:vertical;overflow:auto}.aui-input.ng-invalid.ng-dirty,.ng-submitted .aui-input.ng-invalid{border-color:rgb(var(--aui-color-red))!important}:root .aui-input.ng-invalid.ng-dirty:focus,:root .aui-input.ng-invalid.ng-dirty.isFocused,:root .ng-submitted .aui-input.ng-invalid:focus,:root .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] .aui-input.ng-invalid.ng-dirty:focus,html[aui-theme-mode=light] .aui-input.ng-invalid.ng-dirty.isFocused,html[aui-theme-mode=light] .ng-submitted .aui-input.ng-invalid:focus,html[aui-theme-mode=light] .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-input.ng-invalid.ng-dirty:focus,html[aui-theme-mode=system] .aui-input.ng-invalid.ng-dirty.isFocused,html[aui-theme-mode=system] .ng-submitted .aui-input.ng-invalid:focus,html[aui-theme-mode=system] .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] .aui-input.ng-invalid.ng-dirty:focus,html[aui-theme-mode=dark] .aui-input.ng-invalid.ng-dirty.isFocused,html[aui-theme-mode=dark] .ng-submitted .aui-input.ng-invalid:focus,html[aui-theme-mode=dark] .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n", ".aui-tag{display:inline-flex;align-items:center;border-radius:var(--aui-border-radius-m);border:1px solid transparent;max-width:240px;vertical-align:middle;transition:background-color .3s ease}.aui-tag__content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-tag .aui-tag__close .aui-icon{margin-left:4px;border-radius:50%;cursor:pointer;transition:all .3s ease}.aui-tag--large{padding:0 var(--aui-inline-padding-m);height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tag--large.isRound{border-radius:calc(var(--aui-inline-height-m) / 2)}.aui-tag--medium{padding:0 var(--aui-inline-padding-s);height:var(--aui-inline-height-s);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--medium.isRound{border-radius:calc(var(--aui-inline-height-s) / 2)}.aui-tag--small{padding:0 var(--aui-inline-padding-xs);height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--small.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--mini{padding:0 var(--aui-inline-padding-xs);height:20px;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--mini.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--primary{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary.hasBorder{border-color:rgb(var(--aui-color-p-2))}.aui-tag--primary.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-p-1))}.aui-tag--primary.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-p-0))}.aui-tag--primary.allowClick:hover{background-color:rgb(var(--aui-color-p-7));cursor:pointer}.aui-tag--primary.allowClick:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-p-6));background-color:rgb(var(--aui-color-primary))}.aui-tag--success{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success.hasBorder{border-color:rgb(var(--aui-color-g-2))}.aui-tag--success.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-g-1))}.aui-tag--success.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-g-0))}.aui-tag--success.allowClick:hover{background-color:rgb(var(--aui-color-g-7));cursor:pointer}.aui-tag--success.allowClick:active{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-g-6));background-color:rgb(var(--aui-color-green))}.aui-tag--warning{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning.hasBorder{border-color:rgb(var(--aui-color-y-2))}.aui-tag--warning.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-y-1))}.aui-tag--warning.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-y-0))}.aui-tag--warning.allowClick:hover{background-color:rgb(var(--aui-color-y-7));cursor:pointer}.aui-tag--warning.allowClick:active{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-y-6));background-color:rgb(var(--aui-color-yellow))}.aui-tag--error{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error.hasBorder{border-color:rgb(var(--aui-color-r-2))}.aui-tag--error.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-r-1))}.aui-tag--error.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-r-0))}.aui-tag--error.allowClick:hover{background-color:rgb(var(--aui-color-r-7));cursor:pointer}.aui-tag--error.allowClick:active{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-r-6));background-color:rgb(var(--aui-color-red))}.aui-tag--info{color:rgb(var(--aui-color-n-2));background-color:rgb(var(--aui-color-n-8))}.aui-tag--info.hasBorder{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-button-bg))}.aui-tag--info .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tag.isInvalid{text-decoration:line-through}.aui-tag.isSolid.aui-tag--primary{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-tag.isSolid.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-primary));background-color:#fff}.aui-tag.isSolid.aui-tag--success{color:#fff;background-color:rgb(var(--aui-color-green))}.aui-tag.isSolid.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-green));background-color:#fff}.aui-tag.isSolid.aui-tag--warning{color:#fff;background-color:rgb(var(--aui-color-yellow))}.aui-tag.isSolid.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-yellow));background-color:#fff}.aui-tag.isSolid.aui-tag--error{color:#fff;background-color:rgb(var(--aui-color-red))}.aui-tag.isSolid.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-red));background-color:#fff}.aui-tag.allowClick a{color:inherit}.aui-tag.allowClick:hover{cursor:pointer}aui-tag+aui-tag .aui-tag--large,aui-tag+aui-tag .aui-tag--medium,aui-tag+aui-tag .aui-tag--small{margin-left:var(--aui-spacing-m)}aui-tag+aui-tag .aui-tag--mini{margin-left:6px}\n", ".aui-tags-input{display:inline-block;position:relative;width:100%;color:rgb(var(--aui-color-main-text));vertical-align:middle}.aui-tags-input:hover{cursor:text}.aui-tags-input .aui-tag{max-width:100%}.aui-tags-input.isDisabled{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7));cursor:not-allowed}.aui-tags-input.isDisabled .aui-tag{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8))}.aui-tags-input__placeholder{display:inline-block;width:100%;color:rgb(var(--aui-color-placeholder-text));vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:absolute;right:0;left:0;padding-left:inherit;padding-right:inherit;margin-left:1px}.aui-tags-input__placeholder[hidden]{display:none}.aui-tags-input__mirror{opacity:0;left:0;z-index:-99;position:absolute;padding-left:1px}.aui-tags-input--large{min-height:var(--aui-inline-height-l);padding:calc((var(--aui-inline-height-l) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l);font-weight:var(--aui-font-weight-normal)}.aui-tags-input--large .aui-tag{margin:0 4px calc((var(--aui-inline-height-l) - 20px) / 2 - 1px) 0}.aui-tags-input--medium{min-height:var(--aui-inline-height-m);padding:calc((var(--aui-inline-height-m) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tags-input--medium .aui-tag{margin:0 4px calc((var(--aui-inline-height-m) - 20px) / 2 - 1px) 0}.aui-tags-input--small{min-height:var(--aui-inline-height-s);padding:calc((var(--aui-inline-height-s) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tags-input--small .aui-tag{margin:0 4px calc((var(--aui-inline-height-s) - 20px) / 2 - 1px) 0}.aui-tags-input--mini{min-height:var(--aui-inline-height-xs);padding:calc((var(--aui-inline-height-xs) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tags-input--mini .aui-tag{margin:0 4px calc((var(--aui-inline-height-xs) - 20px) / 2 - 1px) 0}.aui-tags-input__suffix{position:absolute;top:50%;right:var(--aui-inline-padding-xs);transform:translateY(-50%)}.aui-tags-input .aui-tag.aui-tags-input__input{margin-right:0;padding:0;width:1em;max-width:100%;border:none;outline:none;background:none;color:rgb(var(--aui-color-main-text));font-family:inherit;font-size:inherit}.aui-tags-input .aui-tag.aui-tags-input__input--hidden{opacity:0;width:0;padding:0;margin:0;position:absolute}aui-tags-input.ng-invalid.ng-dirty .aui-input,aui-tags-input.ng-invalid.ng-dirty .aui-tags-input,.ng-submitted aui-tags-input.ng-invalid .aui-input,.ng-submitted aui-tags-input.ng-invalid .aui-tags-input{border-color:rgb(var(--aui-color-red))!important}:root aui-tags-input.ng-invalid.ng-dirty .aui-input:focus,:root aui-tags-input.ng-invalid.ng-dirty .aui-input.isFocused,:root aui-tags-input.ng-invalid.ng-dirty .aui-tags-input:focus,:root aui-tags-input.ng-invalid.ng-dirty .aui-tags-input.isFocused,:root .ng-submitted aui-tags-input.ng-invalid .aui-input:focus,:root .ng-submitted aui-tags-input.ng-invalid .aui-input.isFocused,:root .ng-submitted aui-tags-input.ng-invalid .aui-tags-input:focus,:root .ng-submitted aui-tags-input.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-tags-input.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-tags-input.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input:focus,html[aui-theme-mode=light] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-tags-input.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-tags-input.ng-invalid .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input:focus,html[aui-theme-mode=light] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-tags-input.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-tags-input.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input:focus,html[aui-theme-mode=system] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-tags-input.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-tags-input.ng-invalid .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input:focus,html[aui-theme-mode=system] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-tags-input.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-tags-input.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input:focus,html[aui-theme-mode=dark] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-tags-input.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-tags-input.ng-invalid .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}aui-tags-input.ng-invalid.ng-dirty .aui-input .aui-tags-input__input,aui-tags-input.ng-invalid.ng-dirty .aui-tags-input .aui-tags-input__input,.ng-submitted aui-tags-input.ng-invalid .aui-input .aui-tags-input__input,.ng-submitted aui-tags-input.ng-invalid .aui-tags-input .aui-tags-input__input{color:rgb(var(--aui-color-red))}.aui-tags-input.withHeightLimit{overflow:auto;position:static}.aui-tags-input.withHeightLimit::-webkit-scrollbar{width:4px;height:4px}.aui-tags-input.withHeightLimit::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-tags-input.withHeightLimit::-webkit-scrollbar-corner{background-color:transparent}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TagComponent, selector: "aui-tag", inputs: ["type", "size", "closeable", "border", "solid", "invalid", "round", "color", "allowClick"], outputs: ["close"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
5528
+ ], usesInheritance: true, ngImport: i0, template: "<div [class]=\"bem.element('container')\">\n <div [class]=\"bem.element('header')\">\n <aui-calendar-header\n [dateNavRange]=\"leftDateRange\"\n [anchor]=\"leftAnchor\"\n (navRangeChange)=\"calendarRangeChange($event, Side.Left)\"\n (anchorChange)=\"leftAnchor = $event\"\n [maxAvail]=\"maxHeaderAvail\"\n [minAvail]=\"minDate\"\n ></aui-calendar-header>\n <aui-calendar-header\n [dateNavRange]=\"rightDateRange\"\n [anchor]=\"rightAnchor\"\n (navRangeChange)=\"calendarRangeChange($event, Side.Right)\"\n (anchorChange)=\"rightAnchor = $event\"\n [minAvail]=\"minHeaderAvail\"\n [maxAvail]=\"maxDate\"\n ></aui-calendar-header>\n </div>\n <div [class]=\"bem.element('body')\">\n <aui-picker-panel\n class=\"panel__wrapper\"\n [navRange]=\"leftDateRange\"\n [type]=\"DatePickerType.Day\"\n [anchor]=\"leftAnchor\"\n [matchDates]=\"matchValues\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [disabledDate]=\"getDateDisabledFn(Side.Left, rightAnchor)\"\n [weekStartDay]=\"weekStartDay\"\n (hovered)=\"hoverItem($event)\"\n (select)=\"selectPickerPanel($event, Side.Left)\"\n ></aui-picker-panel>\n <aui-picker-panel\n class=\"panel__wrapper\"\n [navRange]=\"rightDateRange\"\n [type]=\"DatePickerType.Day\"\n [anchor]=\"rightAnchor\"\n [weekStartDay]=\"weekStartDay\"\n [matchDates]=\"matchValues\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [disabledDate]=\"getDateDisabledFn(Side.Right, leftAnchor)\"\n (hovered)=\"hoverItem($event)\"\n (select)=\"selectPickerPanel($event, Side.Right)\"\n ></aui-picker-panel>\n </div>\n\n <aui-calendar-footer\n [class]=\"bem.element('footer')\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n (clear)=\"clear.next()\"\n (confirm)=\"confirmValue(rangeValue)\"\n *ngIf=\"showFooter && showTime\"\n >\n <div\n [class]=\"bem.element('footer-content')\"\n *ngIf=\"showTime\"\n >\n <ng-container\n [ngTemplateOutlet]=\"datePlaceholder\"\n [ngTemplateOutletContext]=\"{\n placeholder: 'start_date' | auiI18n,\n value: rangeValue[0]\n }\"\n ></ng-container>\n <aui-time-picker\n [showIcon]=\"false\"\n [(ngModel)]=\"startTime\"\n size=\"small\"\n (ngModelChange)=\"timeChange($event)\"\n [disableHours]=\"leftDisabledTimeFn(rangeValue[0], 'hours')\"\n [disableMinutes]=\"leftDisabledTimeFn(rangeValue[0], 'minutes')\"\n [disableSeconds]=\"leftDisabledTimeFn(rangeValue[0], 'seconds')\"\n [placeholder]=\"'select_time' | auiI18n\"\n tooltipPosition=\"top start\"\n ></aui-time-picker>\n\n <span class=\"placeholder separator\">{{ 'to' | auiI18n }}</span>\n <ng-container\n [ngTemplateOutlet]=\"datePlaceholder\"\n [ngTemplateOutletContext]=\"{\n placeholder: 'end_date' | auiI18n,\n value: rangeValue[1]\n }\"\n ></ng-container>\n <aui-time-picker\n [showIcon]=\"false\"\n size=\"small\"\n [(ngModel)]=\"endTime\"\n [disableHours]=\"rightDisabledTimeFn(rangeValue[1], 'hours')\"\n [disableMinutes]=\"rightDisabledTimeFn(rangeValue[1], 'minutes')\"\n [disableSeconds]=\"rightDisabledTimeFn(rangeValue[1], 'seconds')\"\n (ngModelChange)=\"timeChange($event)\"\n [placeholder]=\"'select_time' | auiI18n\"\n tooltipPosition=\"top start\"\n ></aui-time-picker>\n </div>\n </aui-calendar-footer>\n</div>\n\n<ng-template\n #datePlaceholder\n let-placeholder=\"placeholder\"\n let-value=\"value\"\n>\n <span\n *ngIf=\"!value\"\n class=\"placeholder date-holder\"\n >{{ placeholder }}</span\n >\n <span\n *ngIf=\"value\"\n class=\"date-value date-holder\"\n >{{ value | date: FOOTER_DATE_FORMAT }}</span\n >\n</ng-template>\n", styles: [".aui-date-range-picker-panel__container{display:flex;flex-direction:column;width:524px;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-date-range-picker-panel__container .placeholder{color:rgb(var(--aui-color-placeholder-text))}.aui-date-range-picker-panel__container .placeholder.separator{margin-inline:12px}.aui-date-range-picker-panel__container .date-value{color:rgb(var(--aui-color-main-text))}.aui-date-range-picker-panel__container .date-holder{display:inline-block;margin-right:8px;width:82px}.aui-date-range-picker-panel__container .panel__wrapper{width:246px;display:flex;justify-content:center}.aui-date-range-picker-panel__header{display:flex;justify-content:space-between}.aui-date-range-picker-panel__header aui-calendar-header{flex:0 0 246px}.aui-date-range-picker-panel__body{display:flex;justify-content:space-between;margin:16px 0}.aui-date-range-picker-panel__footer .aui-time-picker{width:88px}.aui-date-range-picker-panel__footer-content{display:flex;align-items:center;height:100%}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: TimePickerComponent, selector: "aui-time-picker", inputs: ["format", "size", "placeholder", "clearable", "showIcon", "disableHours", "disableMinutes", "disableSeconds", "hourStep", "minuteStep", "secondStep", "footerTemplate"], outputs: ["open", "close"] }, { kind: "component", type: CalendarHeaderComponent, selector: "aui-calendar-header", inputs: ["dateNavRange", "anchor", "maxAvail", "minAvail"], outputs: ["navRangeChange", "anchorChange"] }, { kind: "component", type: CalendarFooterComponent, selector: "aui-calendar-footer", inputs: ["clearable", "clearText", "customAction"], outputs: ["confirm", "clear"] }, { kind: "component", type: PickerPanelComponent, selector: "aui-picker-panel", inputs: ["navRange", "type", "anchor", "matchDates", "disabledDate", "weekStartDay", "minDate", "maxDate"], outputs: ["select", "hovered"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
5406
5529
  }
5407
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TagsInputComponent, decorators: [{
5530
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: DateRangePickerPanelComponent, decorators: [{
5408
5531
  type: Component,
5409
- args: [{ selector: 'aui-tags-input', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, providers: [
5532
+ args: [{ selector: 'aui-date-range-picker-panel', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
5410
5533
  {
5411
5534
  provide: NG_VALUE_ACCESSOR,
5412
- useExisting: forwardRef(() => TagsInputComponent),
5535
+ useExisting: forwardRef(() => DateRangePickerPanelComponent),
5413
5536
  multi: true,
5414
5537
  },
5415
- ], template: "<div\n [class]=\"rootClass\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"inputRef.focus()\"\n [style.max-height]=\"maxHeight\"\n>\n <span\n [hidden]=\"model.length || inputRef.value.length\"\n [class]=\"bem.element('placeholder')\"\n >\n {{ placeholder }}\n </span>\n <aui-tag\n *ngFor=\"let tag of model; let index = index; trackBy: trackByValue\"\n type=\"info\"\n [title]=\"tag\"\n [size]=\"tagSize\"\n [round]=\"true\"\n [border]=\"true\"\n [closeable]=\"!(disabled || readonlyTags.includes(tag))\"\n (close)=\"onRemove(index)\"\n >\n {{ tag }}\n </aui-tag>\n <input\n #inputRef\n [class]=\"inputClass\"\n [disabled]=\"disabled\"\n autocomplete=\"off\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur($event)\"\n (keydown)=\"onKeyDown($event)\"\n (input)=\"onInput()\"\n />\n <span\n #inputValueMirror\n [class]=\"bem.element('mirror')\"\n >{{ inputRef.value }}</span\n >\n</div>\n", styles: [".aui-input{display:inline-block;padding:0 var(--aui-inline-padding-xs);width:100%;min-width:0;border:1px solid rgb(var(--aui-color-n-7));border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-main-bg));color:rgb(var(--aui-color-main-text));outline:none;text-overflow:ellipsis;font-weight:var(--aui-font-weight-normal)}@keyframes cdk-text-field-autofill-color-0{to{background:rgb(var(--aui-color-n-9));color:rgb(var(--aui-color-main-text))}}.aui-input:-webkit-autofill{animation:cdk-text-field-autofill-color-0 both}.aui-input.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms,cdk-text-field-autofill-color-0 both}.aui-input::-webkit-outer-spin-button,.aui-input::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}.aui-input[type=number]{-webkit-appearance:textfield;appearance:textfield}.aui-input::placeholder{color:rgb(var(--aui-color-placeholder-text))}.aui-input:invalid,.aui-input:required{box-shadow:none}.aui-input:hover{border-color:rgb(var(--aui-color-primary))}.aui-input:focus,.aui-input.isFocused{border-color:rgb(var(--aui-color-primary))}:root .aui-input:focus,:root .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-input:focus,html[aui-theme-mode=light] .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-input:focus,html[aui-theme-mode=system] .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-input:focus,html[aui-theme-mode=dark] .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-input[readonly]{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))!important;cursor:default}.aui-input[disabled]{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))!important;color:rgb(var(--aui-color-disabled-text));-webkit-text-fill-color:rgb(var(--aui-color-disabled-text));cursor:not-allowed}.aui-input--large{height:var(--aui-inline-height-l);font-size:var(--aui-font-size-l)}.aui-input--medium{height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m)}.aui-input--small{height:var(--aui-inline-height-s);font-size:var(--aui-font-size-m)}.aui-input--mini{height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s)}textarea.aui-input{padding:var(--aui-inline-padding-xxs) var(--aui-inline-padding-xs);height:calc(var(--aui-inline-padding-xxs) * 2 + var(--aui-line-height-m) * 3 + 2px);max-height:calc(var(--aui-inline-padding-xxs) * 2 + var(--aui-line-height-m) * 6 + 2px);min-height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);color:rgb(var(--aui-color-main-text));resize:vertical;overflow:auto}.aui-input.ng-invalid.ng-dirty,.ng-submitted .aui-input.ng-invalid{border-color:rgb(var(--aui-color-red))!important}:root .aui-input.ng-invalid.ng-dirty:focus,:root .aui-input.ng-invalid.ng-dirty.isFocused,:root .ng-submitted .aui-input.ng-invalid:focus,:root .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] .aui-input.ng-invalid.ng-dirty:focus,html[aui-theme-mode=light] .aui-input.ng-invalid.ng-dirty.isFocused,html[aui-theme-mode=light] .ng-submitted .aui-input.ng-invalid:focus,html[aui-theme-mode=light] .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-input.ng-invalid.ng-dirty:focus,html[aui-theme-mode=system] .aui-input.ng-invalid.ng-dirty.isFocused,html[aui-theme-mode=system] .ng-submitted .aui-input.ng-invalid:focus,html[aui-theme-mode=system] .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] .aui-input.ng-invalid.ng-dirty:focus,html[aui-theme-mode=dark] .aui-input.ng-invalid.ng-dirty.isFocused,html[aui-theme-mode=dark] .ng-submitted .aui-input.ng-invalid:focus,html[aui-theme-mode=dark] .ng-submitted .aui-input.ng-invalid.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n", ".aui-tag{display:inline-flex;align-items:center;border-radius:var(--aui-border-radius-m);border:1px solid transparent;max-width:240px;vertical-align:middle;transition:background-color .3s ease}.aui-tag__content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-tag .aui-tag__close .aui-icon{margin-left:4px;border-radius:50%;cursor:pointer;transition:all .3s ease}.aui-tag--large{padding:0 var(--aui-inline-padding-m);height:var(--aui-inline-height-m);font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tag--large.isRound{border-radius:calc(var(--aui-inline-height-m) / 2)}.aui-tag--medium{padding:0 var(--aui-inline-padding-s);height:var(--aui-inline-height-s);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--medium.isRound{border-radius:calc(var(--aui-inline-height-s) / 2)}.aui-tag--small{padding:0 var(--aui-inline-padding-xs);height:var(--aui-inline-height-xs);font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--small.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--mini{padding:0 var(--aui-inline-padding-xs);height:20px;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tag--mini.isRound{border-radius:calc(var(--aui-inline-height-xs) / 2)}.aui-tag--primary{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary.hasBorder{border-color:rgb(var(--aui-color-p-2))}.aui-tag--primary.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-p-1))}.aui-tag--primary.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-p-0))}.aui-tag--primary.allowClick:hover{background-color:rgb(var(--aui-color-p-7));cursor:pointer}.aui-tag--primary.allowClick:active{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-p-6));background-color:rgb(var(--aui-color-primary))}.aui-tag--success{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success.hasBorder{border-color:rgb(var(--aui-color-g-2))}.aui-tag--success.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-g-1))}.aui-tag--success.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-g-0))}.aui-tag--success.allowClick:hover{background-color:rgb(var(--aui-color-g-7));cursor:pointer}.aui-tag--success.allowClick:active{color:rgb(var(--aui-color-green));background-color:rgb(var(--aui-color-g-6))}.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-g-6));background-color:rgb(var(--aui-color-green))}.aui-tag--warning{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning.hasBorder{border-color:rgb(var(--aui-color-y-2))}.aui-tag--warning.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-y-1))}.aui-tag--warning.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-y-0))}.aui-tag--warning.allowClick:hover{background-color:rgb(var(--aui-color-y-7));cursor:pointer}.aui-tag--warning.allowClick:active{color:rgb(var(--aui-color-yellow));background-color:rgb(var(--aui-color-y-6))}.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-y-6));background-color:rgb(var(--aui-color-yellow))}.aui-tag--error{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error.hasBorder{border-color:rgb(var(--aui-color-r-2))}.aui-tag--error.hasBorder.allowClick:hover{border-color:rgb(var(--aui-color-r-1))}.aui-tag--error.hasBorder.allowClick:active{border-color:rgb(var(--aui-color-r-0))}.aui-tag--error.allowClick:hover{background-color:rgb(var(--aui-color-r-7));cursor:pointer}.aui-tag--error.allowClick:active{color:rgb(var(--aui-color-red));background-color:rgb(var(--aui-color-r-6))}.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-r-6));background-color:rgb(var(--aui-color-red))}.aui-tag--info{color:rgb(var(--aui-color-n-2));background-color:rgb(var(--aui-color-n-8))}.aui-tag--info.hasBorder{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-button-bg))}.aui-tag--info .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-n-9));background-color:rgb(var(--aui-color-n-4))}.aui-tag.isInvalid{text-decoration:line-through}.aui-tag.isSolid.aui-tag--primary{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-tag.isSolid.aui-tag--primary .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-primary));background-color:#fff}.aui-tag.isSolid.aui-tag--success{color:#fff;background-color:rgb(var(--aui-color-green))}.aui-tag.isSolid.aui-tag--success .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-green));background-color:#fff}.aui-tag.isSolid.aui-tag--warning{color:#fff;background-color:rgb(var(--aui-color-yellow))}.aui-tag.isSolid.aui-tag--warning .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-yellow));background-color:#fff}.aui-tag.isSolid.aui-tag--error{color:#fff;background-color:rgb(var(--aui-color-red))}.aui-tag.isSolid.aui-tag--error .aui-tag__close .aui-icon:hover{color:rgb(var(--aui-color-red));background-color:#fff}.aui-tag.allowClick a{color:inherit}.aui-tag.allowClick:hover{cursor:pointer}aui-tag+aui-tag .aui-tag--large,aui-tag+aui-tag .aui-tag--medium,aui-tag+aui-tag .aui-tag--small{margin-left:var(--aui-spacing-m)}aui-tag+aui-tag .aui-tag--mini{margin-left:6px}\n", ".aui-tags-input{display:inline-block;position:relative;width:100%;color:rgb(var(--aui-color-main-text));vertical-align:middle}.aui-tags-input:hover{cursor:text}.aui-tags-input .aui-tag{max-width:100%}.aui-tags-input.isDisabled{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7));cursor:not-allowed}.aui-tags-input.isDisabled .aui-tag{color:rgb(var(--aui-color-disabled-text));background-color:rgb(var(--aui-color-n-8))}.aui-tags-input__placeholder{display:inline-block;width:100%;color:rgb(var(--aui-color-placeholder-text));vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:absolute;right:0;left:0;padding-left:inherit;padding-right:inherit;margin-left:1px}.aui-tags-input__placeholder[hidden]{display:none}.aui-tags-input__mirror{opacity:0;left:0;z-index:-99;position:absolute;padding-left:1px}.aui-tags-input--large{min-height:var(--aui-inline-height-l);padding:calc((var(--aui-inline-height-l) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-l);line-height:var(--aui-line-height-l);font-weight:var(--aui-font-weight-normal)}.aui-tags-input--large .aui-tag{margin:0 4px calc((var(--aui-inline-height-l) - 20px) / 2 - 1px) 0}.aui-tags-input--medium{min-height:var(--aui-inline-height-m);padding:calc((var(--aui-inline-height-m) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-tags-input--medium .aui-tag{margin:0 4px calc((var(--aui-inline-height-m) - 20px) / 2 - 1px) 0}.aui-tags-input--small{min-height:var(--aui-inline-height-s);padding:calc((var(--aui-inline-height-s) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tags-input--small .aui-tag{margin:0 4px calc((var(--aui-inline-height-s) - 20px) / 2 - 1px) 0}.aui-tags-input--mini{min-height:var(--aui-inline-height-xs);padding:calc((var(--aui-inline-height-xs) - 20px) / 2 - 1px) var(--aui-inline-padding-xs) 0;font-size:var(--aui-font-size-s);line-height:var(--aui-line-height-s);font-weight:var(--aui-font-weight-normal)}.aui-tags-input--mini .aui-tag{margin:0 4px calc((var(--aui-inline-height-xs) - 20px) / 2 - 1px) 0}.aui-tags-input__suffix{position:absolute;top:50%;right:var(--aui-inline-padding-xs);transform:translateY(-50%)}.aui-tags-input .aui-tag.aui-tags-input__input{margin-right:0;padding:0;width:1em;max-width:100%;border:none;outline:none;background:none;color:rgb(var(--aui-color-main-text));font-family:inherit;font-size:inherit}.aui-tags-input .aui-tag.aui-tags-input__input--hidden{opacity:0;width:0;padding:0;margin:0;position:absolute}aui-tags-input.ng-invalid.ng-dirty .aui-input,aui-tags-input.ng-invalid.ng-dirty .aui-tags-input,.ng-submitted aui-tags-input.ng-invalid .aui-input,.ng-submitted aui-tags-input.ng-invalid .aui-tags-input{border-color:rgb(var(--aui-color-red))!important}:root aui-tags-input.ng-invalid.ng-dirty .aui-input:focus,:root aui-tags-input.ng-invalid.ng-dirty .aui-input.isFocused,:root aui-tags-input.ng-invalid.ng-dirty .aui-tags-input:focus,:root aui-tags-input.ng-invalid.ng-dirty .aui-tags-input.isFocused,:root .ng-submitted aui-tags-input.ng-invalid .aui-input:focus,:root .ng-submitted aui-tags-input.ng-invalid .aui-input.isFocused,:root .ng-submitted aui-tags-input.ng-invalid .aui-tags-input:focus,:root .ng-submitted aui-tags-input.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-tags-input.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-tags-input.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input:focus,html[aui-theme-mode=light] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-tags-input.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-tags-input.ng-invalid .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input:focus,html[aui-theme-mode=light] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-tags-input.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-tags-input.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input:focus,html[aui-theme-mode=system] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-tags-input.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-tags-input.ng-invalid .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input:focus,html[aui-theme-mode=system] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-tags-input.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-tags-input.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input:focus,html[aui-theme-mode=dark] aui-tags-input.ng-invalid.ng-dirty .aui-tags-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-tags-input.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-tags-input.ng-invalid .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-tags-input.ng-invalid .aui-tags-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}aui-tags-input.ng-invalid.ng-dirty .aui-input .aui-tags-input__input,aui-tags-input.ng-invalid.ng-dirty .aui-tags-input .aui-tags-input__input,.ng-submitted aui-tags-input.ng-invalid .aui-input .aui-tags-input__input,.ng-submitted aui-tags-input.ng-invalid .aui-tags-input .aui-tags-input__input{color:rgb(var(--aui-color-red))}.aui-tags-input.withHeightLimit{overflow:auto;position:static}.aui-tags-input.withHeightLimit::-webkit-scrollbar{width:4px;height:4px}.aui-tags-input.withHeightLimit::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-tags-input.withHeightLimit::-webkit-scrollbar-corner{background-color:transparent}\n"] }]
5416
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i2$2.FormBuilder }, { type: i0.Renderer2 }, { type: i0.Injector }]; }, propDecorators: { placeholder: [{
5417
- type: Input
5418
- }], size: [{
5538
+ ], template: "<div [class]=\"bem.element('container')\">\n <div [class]=\"bem.element('header')\">\n <aui-calendar-header\n [dateNavRange]=\"leftDateRange\"\n [anchor]=\"leftAnchor\"\n (navRangeChange)=\"calendarRangeChange($event, Side.Left)\"\n (anchorChange)=\"leftAnchor = $event\"\n [maxAvail]=\"maxHeaderAvail\"\n [minAvail]=\"minDate\"\n ></aui-calendar-header>\n <aui-calendar-header\n [dateNavRange]=\"rightDateRange\"\n [anchor]=\"rightAnchor\"\n (navRangeChange)=\"calendarRangeChange($event, Side.Right)\"\n (anchorChange)=\"rightAnchor = $event\"\n [minAvail]=\"minHeaderAvail\"\n [maxAvail]=\"maxDate\"\n ></aui-calendar-header>\n </div>\n <div [class]=\"bem.element('body')\">\n <aui-picker-panel\n class=\"panel__wrapper\"\n [navRange]=\"leftDateRange\"\n [type]=\"DatePickerType.Day\"\n [anchor]=\"leftAnchor\"\n [matchDates]=\"matchValues\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [disabledDate]=\"getDateDisabledFn(Side.Left, rightAnchor)\"\n [weekStartDay]=\"weekStartDay\"\n (hovered)=\"hoverItem($event)\"\n (select)=\"selectPickerPanel($event, Side.Left)\"\n ></aui-picker-panel>\n <aui-picker-panel\n class=\"panel__wrapper\"\n [navRange]=\"rightDateRange\"\n [type]=\"DatePickerType.Day\"\n [anchor]=\"rightAnchor\"\n [weekStartDay]=\"weekStartDay\"\n [matchDates]=\"matchValues\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [disabledDate]=\"getDateDisabledFn(Side.Right, leftAnchor)\"\n (hovered)=\"hoverItem($event)\"\n (select)=\"selectPickerPanel($event, Side.Right)\"\n ></aui-picker-panel>\n </div>\n\n <aui-calendar-footer\n [class]=\"bem.element('footer')\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n (clear)=\"clear.next()\"\n (confirm)=\"confirmValue(rangeValue)\"\n *ngIf=\"showFooter && showTime\"\n >\n <div\n [class]=\"bem.element('footer-content')\"\n *ngIf=\"showTime\"\n >\n <ng-container\n [ngTemplateOutlet]=\"datePlaceholder\"\n [ngTemplateOutletContext]=\"{\n placeholder: 'start_date' | auiI18n,\n value: rangeValue[0]\n }\"\n ></ng-container>\n <aui-time-picker\n [showIcon]=\"false\"\n [(ngModel)]=\"startTime\"\n size=\"small\"\n (ngModelChange)=\"timeChange($event)\"\n [disableHours]=\"leftDisabledTimeFn(rangeValue[0], 'hours')\"\n [disableMinutes]=\"leftDisabledTimeFn(rangeValue[0], 'minutes')\"\n [disableSeconds]=\"leftDisabledTimeFn(rangeValue[0], 'seconds')\"\n [placeholder]=\"'select_time' | auiI18n\"\n tooltipPosition=\"top start\"\n ></aui-time-picker>\n\n <span class=\"placeholder separator\">{{ 'to' | auiI18n }}</span>\n <ng-container\n [ngTemplateOutlet]=\"datePlaceholder\"\n [ngTemplateOutletContext]=\"{\n placeholder: 'end_date' | auiI18n,\n value: rangeValue[1]\n }\"\n ></ng-container>\n <aui-time-picker\n [showIcon]=\"false\"\n size=\"small\"\n [(ngModel)]=\"endTime\"\n [disableHours]=\"rightDisabledTimeFn(rangeValue[1], 'hours')\"\n [disableMinutes]=\"rightDisabledTimeFn(rangeValue[1], 'minutes')\"\n [disableSeconds]=\"rightDisabledTimeFn(rangeValue[1], 'seconds')\"\n (ngModelChange)=\"timeChange($event)\"\n [placeholder]=\"'select_time' | auiI18n\"\n tooltipPosition=\"top start\"\n ></aui-time-picker>\n </div>\n </aui-calendar-footer>\n</div>\n\n<ng-template\n #datePlaceholder\n let-placeholder=\"placeholder\"\n let-value=\"value\"\n>\n <span\n *ngIf=\"!value\"\n class=\"placeholder date-holder\"\n >{{ placeholder }}</span\n >\n <span\n *ngIf=\"value\"\n class=\"date-value date-holder\"\n >{{ value | date: FOOTER_DATE_FORMAT }}</span\n >\n</ng-template>\n", styles: [".aui-date-range-picker-panel__container{display:flex;flex-direction:column;width:524px;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-date-range-picker-panel__container .placeholder{color:rgb(var(--aui-color-placeholder-text))}.aui-date-range-picker-panel__container .placeholder.separator{margin-inline:12px}.aui-date-range-picker-panel__container .date-value{color:rgb(var(--aui-color-main-text))}.aui-date-range-picker-panel__container .date-holder{display:inline-block;margin-right:8px;width:82px}.aui-date-range-picker-panel__container .panel__wrapper{width:246px;display:flex;justify-content:center}.aui-date-range-picker-panel__header{display:flex;justify-content:space-between}.aui-date-range-picker-panel__header aui-calendar-header{flex:0 0 246px}.aui-date-range-picker-panel__body{display:flex;justify-content:space-between;margin:16px 0}.aui-date-range-picker-panel__footer .aui-time-picker{width:88px}.aui-date-range-picker-panel__footer-content{display:flex;align-items:center;height:100%}\n"] }]
5539
+ }], propDecorators: { clearable: [{
5419
5540
  type: Input
5420
- }], clearable: [{
5541
+ }], clearText: [{
5421
5542
  type: Input
5422
- }], allowRepeat: [{
5543
+ }], showTime: [{
5423
5544
  type: Input
5424
- }], allowEmpty: [{
5545
+ }], showFooter: [{
5425
5546
  type: Input
5426
- }], readonlyTags: [{
5547
+ }], disabledDate: [{
5427
5548
  type: Input
5428
- }], maxRowCount: [{
5549
+ }], disabledTime: [{
5429
5550
  type: Input
5430
- }], customRowHeight: [{
5551
+ }], weekStartDay: [{
5431
5552
  type: Input
5432
- }], inputValidator: [{
5553
+ }], minDate: [{
5433
5554
  type: Input
5434
- }], inputAsyncValidator: [{
5555
+ }], maxDate: [{
5435
5556
  type: Input
5436
- }], inputRef: [{
5437
- type: ViewChild,
5438
- args: ['inputRef', { static: true }]
5439
- }], inputValueMirror: [{
5440
- type: ViewChild,
5441
- args: ['inputValueMirror', { static: true }]
5442
- }], hostPosition: [{
5443
- type: HostBinding,
5444
- args: ['style.position']
5445
- }], hostDisplay: [{
5446
- type: HostBinding,
5447
- args: ['style.display']
5557
+ }], clear: [{
5558
+ type: Output
5559
+ }], confirm: [{
5560
+ type: Output
5448
5561
  }] } });
5449
5562
 
5450
- class InputModule {
5451
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: InputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5452
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: InputModule, declarations: [AutosizeDirective,
5453
- InputComponent,
5454
- InputGroupComponent,
5455
- InputAddonBeforeDirective,
5456
- InputAddonAfterDirective,
5457
- InputPrefixDirective,
5458
- InputSuffixDirective,
5459
- SearchComponent,
5460
- TagsInputComponent,
5461
- NumberInputComponent], imports: [CommonModule,
5462
- FormsModule,
5463
- ReactiveFormsModule,
5464
- IconModule,
5465
- TagModule,
5466
- SharedModule], exports: [AutosizeDirective,
5467
- InputComponent,
5468
- InputGroupComponent,
5469
- InputAddonBeforeDirective,
5470
- InputAddonAfterDirective,
5471
- InputPrefixDirective,
5472
- InputSuffixDirective,
5473
- SearchComponent,
5474
- TagsInputComponent,
5475
- NumberInputComponent] });
5476
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: InputModule, imports: [CommonModule,
5477
- FormsModule,
5478
- ReactiveFormsModule,
5479
- IconModule,
5480
- TagModule,
5481
- SharedModule] });
5482
- }
5483
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: InputModule, decorators: [{
5484
- type: NgModule,
5485
- args: [{
5486
- imports: [
5487
- CommonModule,
5488
- FormsModule,
5489
- ReactiveFormsModule,
5490
- IconModule,
5491
- TagModule,
5492
- SharedModule,
5493
- ],
5494
- declarations: [
5495
- AutosizeDirective,
5496
- InputComponent,
5497
- InputGroupComponent,
5498
- InputAddonBeforeDirective,
5499
- InputAddonAfterDirective,
5500
- InputPrefixDirective,
5501
- InputSuffixDirective,
5502
- SearchComponent,
5503
- TagsInputComponent,
5504
- NumberInputComponent,
5505
- ],
5506
- exports: [
5507
- AutosizeDirective,
5508
- InputComponent,
5509
- InputGroupComponent,
5510
- InputAddonBeforeDirective,
5511
- InputAddonAfterDirective,
5512
- InputPrefixDirective,
5513
- InputSuffixDirective,
5514
- SearchComponent,
5515
- TagsInputComponent,
5516
- NumberInputComponent,
5517
- ],
5518
- }]
5519
- }] });
5520
-
5521
- class TimePickerModule {
5522
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5523
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: TimePickerModule, declarations: [TimePickerComponent, TimePickerPanelComponent], imports: [FormsModule,
5524
- ReactiveFormsModule,
5525
- PortalModule,
5526
- OverlayModule,
5527
- CommonModule,
5528
- InputModule,
5529
- TooltipModule,
5530
- IconModule,
5531
- ButtonModule,
5532
- I18nModule], exports: [TimePickerComponent, TimePickerPanelComponent] });
5533
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TimePickerModule, imports: [FormsModule,
5534
- ReactiveFormsModule,
5535
- PortalModule,
5536
- OverlayModule,
5537
- CommonModule,
5538
- InputModule,
5539
- TooltipModule,
5540
- IconModule,
5541
- ButtonModule,
5542
- I18nModule] });
5543
- }
5544
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TimePickerModule, decorators: [{
5545
- type: NgModule,
5546
- args: [{
5547
- imports: [
5548
- FormsModule,
5549
- ReactiveFormsModule,
5550
- PortalModule,
5551
- OverlayModule,
5552
- CommonModule,
5553
- InputModule,
5554
- TooltipModule,
5555
- IconModule,
5556
- ButtonModule,
5557
- I18nModule,
5558
- ],
5559
- declarations: [TimePickerComponent, TimePickerPanelComponent],
5560
- exports: [TimePickerComponent, TimePickerPanelComponent],
5561
- }]
5562
- }] });
5563
-
5564
5563
  const bem$2 = buildBem('aui-date-picker-trigger');
5565
5564
  class DatePickerTriggerComponent {
5566
5565
  format = 'YYYY-MM-DD';