@sd-angular/core 1.0.73 → 1.0.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/autocomplete/sd-angular-core-autocomplete.metadata.json +1 -1
- package/bundles/sd-angular-core-autocomplete.umd.js +23 -8
- package/bundles/sd-angular-core-autocomplete.umd.js.map +1 -1
- package/bundles/sd-angular-core-autocomplete.umd.min.js +1 -1
- package/bundles/sd-angular-core-autocomplete.umd.min.js.map +1 -1
- package/esm2015/autocomplete/src/lib/autocomplete.component.js +24 -9
- package/fesm2015/sd-angular-core-autocomplete.js +24 -9
- package/fesm2015/sd-angular-core-autocomplete.js.map +1 -1
- package/package.json +1 -1
- package/{sd-angular-core-1.0.73.tgz → sd-angular-core-1.0.74.tgz} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"SdAutocompleteModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":16,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":21,"character":4},{"__symbolic":"reference","module":"@angular/material/autocomplete","name":"MatAutocompleteModule","line":22,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":23,"character":4},{"__symbolic":"reference","module":"@angular/material/progress-spinner","name":"MatProgressSpinnerModule","line":24,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/translate","name":"SdTranslateModule","line":25,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":26,"character":4}],"declarations":[{"__symbolic":"reference","name":"SdAutocomplete"},{"__symbolic":"reference","name":"SdAutocompleteDisplayDefDirective"}],"exports":[{"__symbolic":"reference","name":"SdAutocomplete"},{"__symbolic":"reference","name":"SdAutocompleteDisplayDefDirective"},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":35,"character":4}],"providers":[]}]}],"members":{}},"SdAutocomplete":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":32,"character":1},"arguments":[{"selector":"sd-autocomplete","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":36,"character":19},"member":"OnPush"},"template":"<div class=\"d-flex align-items-center\" [class.sd-view]=\"sdView?.templateRef\" [class.c-focused]=\"isFocused\"\r\n[class.c-disabled]=\"formControl.disabled\" (click)=\"onClick()\">\r\n <ng-container *ngIf=\"sdView?.templateRef && !autocompleteTrigger?.panelOpen && !isFocused; else default\">\r\n <ng-container *ngTemplateOutlet=\"sdView.templateRef;context: { value: formControl.value, selectedItem: selected | async }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class=\"sd-md\" [ngClass]=\"{'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage}\"\r\n [floatLabel]=\"size === 'sm' || formControl.value ? 'always':'auto'\" appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\r\n <input [id]=\"id\" #autocompleteTrigger [formControl]=\"inputControl\" [placeholder]=\"controlPlaceHolder | async\"\r\n [ngClass]=\"{'c-selected': formControl?.value}\" [matAutocomplete]=\"auto\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"\r\n matInput [autocomplete]=\"id\" autocorrect=\"off\" [errorStateMatcher]=\"matcher\" [required]=\"isRequired\" #input />\r\n <mat-icon *ngIf=\"!loading && formControl?.value && !inputControl.disabled\" class=\"pointer sd-suffix-icon\"\r\n (click)=\"clear($event)\" matSuffix>cancel\r\n </mat-icon>\r\n <mat-icon *ngIf=\"actionIcon && !loading && !formControl?.value && !inputControl.disabled\"\r\n class=\"pointer sd-suffix-icon\" (click)=\"onAction($event)\" matSuffix>{{actionIcon}}\r\n </mat-icon>\r\n <mat-spinner *ngIf=\"loading\" strokeWidth=\"2\" mode=\"indeterminate\" diameter=\"18\" value=\"100\" matSuffix>\r\n </mat-spinner>\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onSelect($event.option.value)\">\r\n <mat-option *ngFor=\"let item of filteredItems | async\" [value]=\"item\" matTooltipPosition=\"above\"\r\n [matTooltip]=\"displayField ? item[displayField] : item\">\r\n <ng-container *ngIf=\"autocompleteDisplayDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"autocompleteDisplayDef.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!autocompleteDisplayDef?.templateRef\">\r\n {{ displayField ? item[displayField] : item }}\r\n </ng-container>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-error *ngIf=\"formControl?.errors?.required && !disableErrorMessage\">\r\n {{ \"This field is required\" | sdTranslate }}\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n</div>","styles":[":host{display:block;padding-top:5px}:host ::ng-deep .mat-form-field.no-padding-wrapper .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field input.c-selected::-moz-placeholder{color:#000;opacity:1}:host ::ng-deep .mat-form-field input.c-selected::placeholder{color:#000;opacity:1}:host ::ng-deep .mat-form-field input.c-selected:-ms-input-placeholder{color:#000}:host ::ng-deep .mat-form-field input.c-selected::-ms-input-placeholder{color:#000}:host ::ng-deep .mat-form-field input.mat-input-element:disabled{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected::-moz-placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected::placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected:-ms-input-placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected::-ms-input-placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:#f82c13}.sd-view:not(.c-focused):not(.c-disabled):hover{background-color:#ebecf0}"]}]}],"members":{"key":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"autocompleteTrigger":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":43,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material/autocomplete","name":"MatAutocompleteTrigger","line":43,"character":13},{"read":{"__symbolic":"reference","module":"@angular/material/autocomplete","name":"MatAutocompleteTrigger","line":43,"character":45}}]}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"valueField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":70,"character":3}}]}],"displayField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":71,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":72,"character":3}}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3}}]}],"limit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":87,"character":3}}]}],"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":92,"character":3}}]}],"autocompleteDisplayDef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":97,"character":3},"arguments":[{"__symbolic":"reference","name":"SdAutocompleteDisplayDefDirective"}]}]}],"actionIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":98,"character":3}}]}],"action":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":99,"character":3}}]}],"modelChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":100,"character":3}}]}],"sdChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":101,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":104,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":115,"character":3}}]}],"_disableErrorMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":124,"character":3},"arguments":["disableErrorMessage"]}]}],"input":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":129,"character":3},"arguments":["input"]}]}],"sdView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":130,"character":3},"arguments":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdViewDefDirective","line":130,"character":16}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":141,"character":17}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"SdAutocompleteDisplayDefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[sdAutocompleteDisplayDef]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}}},"origins":{"SdAutocompleteModule":"./src/lib/autocomplete.module","SdAutocomplete":"./src/lib/autocomplete.component","SdAutocompleteDisplayDefDirective":"./src/lib/autocomplete-display-def.directive"},"importAs":"@sd-angular/core/autocomplete"}
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"SdAutocompleteModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":16,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":21,"character":4},{"__symbolic":"reference","module":"@angular/material/autocomplete","name":"MatAutocompleteModule","line":22,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":23,"character":4},{"__symbolic":"reference","module":"@angular/material/progress-spinner","name":"MatProgressSpinnerModule","line":24,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/translate","name":"SdTranslateModule","line":25,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":26,"character":4}],"declarations":[{"__symbolic":"reference","name":"SdAutocomplete"},{"__symbolic":"reference","name":"SdAutocompleteDisplayDefDirective"}],"exports":[{"__symbolic":"reference","name":"SdAutocomplete"},{"__symbolic":"reference","name":"SdAutocompleteDisplayDefDirective"},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":35,"character":4}],"providers":[]}]}],"members":{}},"SdAutocomplete":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":32,"character":1},"arguments":[{"selector":"sd-autocomplete","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":36,"character":19},"member":"OnPush"},"template":"<div class=\"d-flex align-items-center\" [class.sd-view]=\"sdView?.templateRef\" [class.c-focused]=\"isFocused\"\r\n[class.c-disabled]=\"formControl.disabled\" (click)=\"onClick()\">\r\n <ng-container *ngIf=\"sdView?.templateRef && !autocompleteTrigger?.panelOpen && !isFocused; else default\">\r\n <ng-container *ngTemplateOutlet=\"sdView.templateRef;context: { value: formControl.value, selectedItem: selected | async }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class=\"sd-md\" [ngClass]=\"{'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage}\"\r\n [floatLabel]=\"size === 'sm' || formControl.value ? 'always':'auto'\" appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\r\n <input [id]=\"id\" #autocompleteTrigger [formControl]=\"inputControl\" [placeholder]=\"controlPlaceHolder | async\"\r\n [ngClass]=\"{'c-selected': formControl?.value}\" [matAutocomplete]=\"auto\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"\r\n matInput [autocomplete]=\"id\" autocorrect=\"off\" [errorStateMatcher]=\"matcher\" [required]=\"isRequired\" #input />\r\n <mat-icon *ngIf=\"!loading && formControl?.value && !inputControl.disabled\" class=\"pointer sd-suffix-icon\"\r\n (click)=\"clear($event)\" matSuffix>cancel\r\n </mat-icon>\r\n <mat-icon *ngIf=\"actionIcon && !loading && !formControl?.value && !inputControl.disabled\"\r\n class=\"pointer sd-suffix-icon\" (click)=\"onAction($event)\" matSuffix>{{actionIcon}}\r\n </mat-icon>\r\n <mat-spinner *ngIf=\"loading\" strokeWidth=\"2\" mode=\"indeterminate\" diameter=\"18\" value=\"100\" matSuffix>\r\n </mat-spinner>\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onSelect($event.option.value)\">\r\n <mat-option *ngFor=\"let item of filteredItems | async\" [value]=\"item\" matTooltipPosition=\"above\"\r\n [matTooltip]=\"displayField ? item[displayField] : item\">\r\n <ng-container *ngIf=\"autocompleteDisplayDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"autocompleteDisplayDef.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!autocompleteDisplayDef?.templateRef\">\r\n {{ displayField ? item[displayField] : item }}\r\n </ng-container>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-error *ngIf=\"formControl?.errors?.required && !disableErrorMessage\">\r\n {{ \"This field is required\" | sdTranslate }}\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n</div>","styles":[":host{display:block;padding-top:5px}:host ::ng-deep .mat-form-field.no-padding-wrapper .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field input.c-selected::-moz-placeholder{color:#000;opacity:1}:host ::ng-deep .mat-form-field input.c-selected::placeholder{color:#000;opacity:1}:host ::ng-deep .mat-form-field input.c-selected:-ms-input-placeholder{color:#000}:host ::ng-deep .mat-form-field input.c-selected::-ms-input-placeholder{color:#000}:host ::ng-deep .mat-form-field input.mat-input-element:disabled{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected::-moz-placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected::placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected:-ms-input-placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected::-ms-input-placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:#f82c13}.sd-view:not(.c-focused):not(.c-disabled):hover{background-color:#ebecf0}"]}]}],"members":{"key":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"autocompleteTrigger":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":43,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material/autocomplete","name":"MatAutocompleteTrigger","line":43,"character":13},{"read":{"__symbolic":"reference","module":"@angular/material/autocomplete","name":"MatAutocompleteTrigger","line":43,"character":45}}]}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"valueField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":70,"character":3}}]}],"displayField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":71,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":72,"character":3}}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3}}]}],"limit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":87,"character":3}}]}],"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":92,"character":3}}]}],"autocompleteDisplayDef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":97,"character":3},"arguments":[{"__symbolic":"reference","name":"SdAutocompleteDisplayDefDirective"}]}]}],"actionIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":98,"character":3}}]}],"action":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":99,"character":3}}]}],"modelChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":100,"character":3}}]}],"sdChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":101,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":104,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":115,"character":3}}]}],"_disableErrorMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":125,"character":3},"arguments":["disableErrorMessage"]}]}],"input":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":130,"character":3},"arguments":["input"]}]}],"sdView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":131,"character":3},"arguments":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdViewDefDirective","line":131,"character":16}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":142,"character":17}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"SdAutocompleteDisplayDefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[sdAutocompleteDisplayDef]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}}},"origins":{"SdAutocompleteModule":"./src/lib/autocomplete.module","SdAutocomplete":"./src/lib/autocomplete.component","SdAutocompleteDisplayDefDirective":"./src/lib/autocomplete-display-def.directive"},"importAs":"@sd-angular/core/autocomplete"}
|
|
@@ -337,7 +337,7 @@
|
|
|
337
337
|
{ type: core.TemplateRef }
|
|
338
338
|
]; };
|
|
339
339
|
|
|
340
|
-
var _model, _delay, _name, _form, _itemsChanges, _subscription, _cache, _item;
|
|
340
|
+
var _model, _delay, _name, _form, _itemsChanges, _subscription, _cache, _item, _updateValidator;
|
|
341
341
|
var SdAutocompleteErrotStateMatcher = /** @class */ (function () {
|
|
342
342
|
function SdAutocompleteErrotStateMatcher(formControl) {
|
|
343
343
|
this.formControl = formControl;
|
|
@@ -445,6 +445,21 @@
|
|
|
445
445
|
this.reValidate = function () {
|
|
446
446
|
_this.inputControl.updateValueAndValidity({ emitEvent: true });
|
|
447
447
|
};
|
|
448
|
+
_updateValidator.set(this, function () {
|
|
449
|
+
_this.formControl.clearValidators();
|
|
450
|
+
_this.formControl.clearAsyncValidators();
|
|
451
|
+
var validators = [];
|
|
452
|
+
// const asyncValidators: AsyncValidatorFn[] = [];
|
|
453
|
+
if (_this.isRequired) {
|
|
454
|
+
validators.push(forms.Validators.required);
|
|
455
|
+
}
|
|
456
|
+
// if (this.#validator) {
|
|
457
|
+
// asyncValidators.push(this.#customValidator(this.#validator));
|
|
458
|
+
// }
|
|
459
|
+
_this.formControl.setValidators(validators);
|
|
460
|
+
// this.formControl.setAsyncValidators(asyncValidators);
|
|
461
|
+
_this.formControl.updateValueAndValidity();
|
|
462
|
+
});
|
|
448
463
|
}
|
|
449
464
|
Object.defineProperty(SdAutocomplete.prototype, "key", {
|
|
450
465
|
set: function (value) {
|
|
@@ -521,12 +536,12 @@
|
|
|
521
536
|
Object.defineProperty(SdAutocomplete.prototype, "required", {
|
|
522
537
|
set: function (val) {
|
|
523
538
|
this.isRequired = (val === '') || val;
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
else {
|
|
528
|
-
|
|
529
|
-
}
|
|
539
|
+
__classPrivateFieldGet(this, _updateValidator).call(this);
|
|
540
|
+
// if (this.isRequired) {
|
|
541
|
+
// this.formControl.setValidators([Validators.required]);
|
|
542
|
+
// } else {
|
|
543
|
+
// this.formControl.clearValidators();
|
|
544
|
+
// }
|
|
530
545
|
},
|
|
531
546
|
enumerable: false,
|
|
532
547
|
configurable: true
|
|
@@ -628,7 +643,7 @@
|
|
|
628
643
|
};
|
|
629
644
|
return SdAutocomplete;
|
|
630
645
|
}());
|
|
631
|
-
_model = new WeakMap(), _delay = new WeakMap(), _name = new WeakMap(), _form = new WeakMap(), _itemsChanges = new WeakMap(), _subscription = new WeakMap(), _cache = new WeakMap(), _item = new WeakMap();
|
|
646
|
+
_model = new WeakMap(), _delay = new WeakMap(), _name = new WeakMap(), _form = new WeakMap(), _itemsChanges = new WeakMap(), _subscription = new WeakMap(), _cache = new WeakMap(), _item = new WeakMap(), _updateValidator = new WeakMap();
|
|
632
647
|
SdAutocomplete.decorators = [
|
|
633
648
|
{ type: core.Component, args: [{
|
|
634
649
|
selector: 'sd-autocomplete',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core-autocomplete.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/autocomplete/src/lib/autocomplete-display-def.directive.ts","../../../../projects/sd-core/autocomplete/src/lib/autocomplete.component.ts","../../../../projects/sd-core/autocomplete/src/lib/autocomplete.module.ts","../../../../projects/sd-core/autocomplete/src/public-api.ts","../../../../projects/sd-core/autocomplete/sd-angular-core-autocomplete.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdAutocompleteDisplayDef]'\r\n})\r\nexport class SdAutocompleteDisplayDefDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ViewChild,\r\n Output,\r\n EventEmitter,\r\n OnInit,\r\n OnDestroy,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ContentChild,\r\n ChangeDetectionStrategy,\r\n ElementRef\r\n} from '@angular/core';\r\nimport { startWith, switchMap, debounceTime, map, finalize } from 'rxjs/operators';\r\n\r\nimport * as uuid from 'uuid';\r\nimport { FormControl, NgForm, Validators, FormGroupDirective, FormGroup } from '@angular/forms';\r\nimport { BehaviorSubject, combineLatest, defer, from, Observable, of, Subscription } from 'rxjs';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { SdAutocompleteDisplayDefDirective } from './autocomplete-display-def.directive';\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { SdFormControl, SdViewDefDirective } from '@sd-angular/core/common';\r\n\r\nclass SdAutocompleteErrotStateMatcher implements ErrorStateMatcher {\r\n constructor(private formControl: FormControl) { }\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n const isSubmitted = form && form.submitted;\r\n return !!(this.formControl?.invalid && (this.formControl?.dirty || this.formControl?.touched || isSubmitted));\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'sd-autocomplete',\r\n templateUrl: './autocomplete.component.html',\r\n styleUrls: ['./autocomplete.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdAutocomplete implements OnInit, OnDestroy, AfterViewInit {\r\n @Input() set key(value: any) {\r\n this.#cache = {};\r\n this.#item = {};\r\n }\r\n @ViewChild(MatAutocompleteTrigger, { read: MatAutocompleteTrigger }) autocompleteTrigger: MatAutocompleteTrigger;\r\n id = `I${uuid.v4()}`;\r\n #model: string | number;\r\n\r\n #delay = 0; // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện gọi hàm\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n loading = false;\r\n inputControl = new SdFormControl();\r\n formControl = new SdFormControl();\r\n matcher = new SdAutocompleteErrotStateMatcher(this.formControl);\r\n @Input() size: 'sm' | 'lg';\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n @Input() label: string;\r\n @Input() valueField: string;\r\n @Input() displayField: string;\r\n @Input() placeholder: string;\r\n\r\n #itemsChanges = new BehaviorSubject<any[] | SearchFunc>([]);\r\n @Input() set items(items: undefined | any[] | SearchFunc) {\r\n if (!items) {\r\n this.#itemsChanges.next([]);\r\n } else if (Array.isArray(items)) {\r\n this.#itemsChanges.next(items.filter(e => e !== null && e !== undefined));\r\n } else {\r\n this.#itemsChanges.next(items);\r\n this.#delay = 500;\r\n }\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n @Input() limit = 100;\r\n\r\n filteredItems: Observable<any[]>;\r\n controlPlaceHolder: Observable<string | number>;\r\n controlPlaceHolder2: Observable<string | number>;\r\n @Input() set model(value: undefined | number | string) {\r\n this.#model = value;\r\n this.formControl.setValue(value);\r\n }\r\n\r\n @ContentChild(SdAutocompleteDisplayDefDirective) autocompleteDisplayDef: SdAutocompleteDisplayDefDirective;\r\n @Input() actionIcon: string;\r\n @Output() action = new EventEmitter();\r\n @Output() modelChange = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n\r\n // Optional\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.inputControl.disable();\r\n this.formControl.disable();\r\n } else {\r\n this.inputControl.enable();\r\n this.formControl.disable();\r\n }\r\n }\r\n isRequired = false;\r\n @Input() set required(val: boolean | '') {\r\n this.isRequired = (val === '') || val;\r\n if (this.isRequired) {\r\n this.formControl.setValidators([Validators.required]);\r\n } else {\r\n this.formControl.clearValidators();\r\n }\r\n }\r\n disableErrorMessage = false;\r\n @Input('disableErrorMessage') set _disableErrorMessage(val: boolean | '') {\r\n this.disableErrorMessage = (val === '') || val;\r\n val = (val === '') || val;\r\n }\r\n #subscription = new Subscription();\r\n @ViewChild('input') input: ElementRef;\r\n @ContentChild(SdViewDefDirective) sdView: SdViewDefDirective;\r\n isFocused = false;\r\n selected: Observable<any>;\r\n\r\n #cache: {\r\n [key: string]: any[]\r\n } = {};\r\n #item: {\r\n [key: string]: any\r\n } = {};\r\n constructor(\r\n private ref: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.#subscription.add(this.formControl.changes.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n this.#subscription.add(this.inputControl.changes.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n this.filteredItems = combineLatest([\r\n this.#itemsChanges.asObservable(),\r\n this.inputControl.valueChanges.pipe(debounceTime(this.#delay))]).pipe(\r\n switchMap(([items, searchText]) => {\r\n searchText = searchText || '';\r\n if (typeof (items) === 'function') {\r\n if (this.#cache[searchText] !== undefined) {\r\n return this.#cache[searchText].asObservable();\r\n }\r\n let obs: Observable<any[]>;\r\n const func = items(searchText, false);\r\n if (func instanceof Promise) {\r\n obs = defer(() => from(func));\r\n } else {\r\n obs = func\r\n }\r\n this.loading = true;\r\n return obs.pipe(map(data => {\r\n this.#cache[searchText] = data || [];\r\n Object.assign(this.#item, Array.toObject(this.#cache[searchText], this.valueField));\r\n return this.#cache[searchText];\r\n }), finalize(() => this.loading = false));\r\n }\r\n return items\r\n .search(searchText, [this.valueField, this.displayField])\r\n .paging(this.limit)\r\n .asObservable();\r\n })\r\n );\r\n this.selected = combineLatest([\r\n this.#itemsChanges.asObservable(),\r\n this.formControl.valueChanges.pipe(startWith(this.formControl.value))])\r\n .pipe(\r\n switchMap(([items, val]) => {\r\n // Vì một số lý do chưa xác định mà khi sử dụng sdViewDef thì khi chuyển sang dạng view sẽ trigger val = null\r\n // Nhưng formControl.value vẫn có giá trị đúng nên thực hiện gán val = this.formControl.value;\r\n val = this.formControl.value;\r\n if (!this.valueField) {\r\n return of(val);\r\n }\r\n if (val || val === 0) {\r\n if (typeof (items) === 'function') {\r\n if (this.#item[val]) {\r\n return of(this.#item[val]);\r\n }\r\n let obs: Observable<any[]>;\r\n const func = items(val, true);\r\n if (func instanceof Promise) {\r\n obs = defer(() => from(func));\r\n } else {\r\n obs = func;\r\n }\r\n return obs.pipe(map(data => {\r\n Object.assign(this.#item, Array.toObject(data, this.valueField));\r\n return this.#item[val] || {\r\n [this.valueField]: val,\r\n [this.displayField]: val\r\n };\r\n }));\r\n }\r\n return of(items.find(e => e[this.valueField] === val));\r\n }\r\n return of('');\r\n })\r\n );\r\n this.controlPlaceHolder = this.selected.pipe(map(item => item?.[this.displayField] ?? item ?? this.placeholder ?? this.label ?? ''));\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#form?.addControl(this.#name, this.formControl);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#subscription.unsubscribe();\r\n this.#form?.removeControl(this.#name);\r\n }\r\n onSelect = (item: any) => {\r\n if (item) {\r\n if (typeof (item) === 'string' || typeof (item) === 'number') {\r\n if (this.formControl.value !== item) {\r\n this.formControl.setValue(item);\r\n this.modelChange.emit(item);\r\n this.sdChange.emit(item);\r\n }\r\n } else if (this.valueField && this.displayField) {\r\n const val = item?.[this.valueField] || null;\r\n if (this.formControl.value !== val) {\r\n this.formControl.setValue(val);\r\n this.modelChange.emit(val);\r\n this.sdChange.emit(item);\r\n }\r\n }\r\n this.inputControl.setValue('', {\r\n emitEvent: false\r\n });\r\n }\r\n }\r\n\r\n onFocus = () => {\r\n this.isFocused = true;\r\n this.inputControl.setValue('');\r\n // this.inputControl.updateValueAndValidity();\r\n }\r\n\r\n onBlur = () => {\r\n this.isFocused = false;\r\n this.inputControl.setValue('', {\r\n emitEvent: false\r\n });\r\n }\r\n\r\n onClick = () => {\r\n if (this.sdView?.templateRef) {\r\n if (!this.formControl.disabled && !this.isFocused) {\r\n this.focus();\r\n }\r\n }\r\n }\r\n\r\n blur = () => {\r\n this.input?.nativeElement?.blur();\r\n }\r\n\r\n focus = () => {\r\n this.isFocused = true;\r\n setTimeout(() => {\r\n this.autocompleteTrigger?.openPanel();\r\n this.input?.nativeElement?.focus();\r\n }, 100);\r\n }\r\n\r\n clear = ($event?: any) => {\r\n $event?.stopPropagation();\r\n this.inputControl?.setValue('');\r\n if (this.#model) {\r\n this.formControl.setValue(null);\r\n this.modelChange.emit(null);\r\n this.sdChange.emit(null);\r\n }\r\n }\r\n\r\n onAction = ($event: Event) => {\r\n $event?.stopPropagation();\r\n this.autocompleteTrigger?.closePanel();\r\n this.action.emit();\r\n }\r\n\r\n reValidate = () => {\r\n this.inputControl.updateValueAndValidity({ emitEvent: true });\r\n }\r\n}\r\n\r\ntype SearchFunc = (searchText?: string | number, isFormValue?: boolean) => Promise<any[]> | Observable<any[]>;","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { SdAutocomplete } from './autocomplete.component';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { SdAutocompleteDisplayDefDirective } from './autocomplete-display-def.directive';\r\nimport { SdCommonModule } from '@sd-angular/core/common';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatAutocompleteModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n SdTranslateModule,\r\n SdCommonModule\r\n ],\r\n declarations: [\r\n SdAutocomplete,\r\n SdAutocompleteDisplayDefDirective\r\n ],\r\n exports: [\r\n SdAutocomplete,\r\n SdAutocompleteDisplayDefDirective,\r\n SdCommonModule\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdAutocompleteModule {\r\n\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/autocomplete.module';\r\nexport * from './lib/autocomplete.component';\r\nexport * from './lib/autocomplete-display-def.directive';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Directive","TemplateRef","uuid.v4","SdFormControl","BehaviorSubject","EventEmitter","Subscription","NgForm","Validators","combineLatest","debounceTime","switchMap","defer","from","map","finalize","startWith","of","Component","ChangeDetectionStrategy","ChangeDetectorRef","Input","ViewChild","MatAutocompleteTrigger","ContentChild","Output","SdViewDefDirective","NgModule","CommonModule","FormsModule","ReactiveFormsModule","MatInputModule","MatTooltipModule","MatFormFieldModule","MatAutocompleteModule","MatIconModule","MatProgressSpinnerModule","SdTranslateModule","SdCommonModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sd-angular-core-autocomplete.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/autocomplete/src/lib/autocomplete-display-def.directive.ts","../../../../projects/sd-core/autocomplete/src/lib/autocomplete.component.ts","../../../../projects/sd-core/autocomplete/src/lib/autocomplete.module.ts","../../../../projects/sd-core/autocomplete/src/public-api.ts","../../../../projects/sd-core/autocomplete/sd-angular-core-autocomplete.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdAutocompleteDisplayDef]'\r\n})\r\nexport class SdAutocompleteDisplayDefDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ViewChild,\r\n Output,\r\n EventEmitter,\r\n OnInit,\r\n OnDestroy,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ContentChild,\r\n ChangeDetectionStrategy,\r\n ElementRef\r\n} from '@angular/core';\r\nimport { startWith, switchMap, debounceTime, map, finalize } from 'rxjs/operators';\r\n\r\nimport * as uuid from 'uuid';\r\nimport { FormControl, NgForm, Validators, FormGroupDirective, FormGroup, ValidatorFn, AsyncValidatorFn } from '@angular/forms';\r\nimport { BehaviorSubject, combineLatest, defer, from, Observable, of, Subscription } from 'rxjs';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { SdAutocompleteDisplayDefDirective } from './autocomplete-display-def.directive';\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { SdFormControl, SdViewDefDirective } from '@sd-angular/core/common';\r\n\r\nclass SdAutocompleteErrotStateMatcher implements ErrorStateMatcher {\r\n constructor(private formControl: FormControl) { }\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n const isSubmitted = form && form.submitted;\r\n return !!(this.formControl?.invalid && (this.formControl?.dirty || this.formControl?.touched || isSubmitted));\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'sd-autocomplete',\r\n templateUrl: './autocomplete.component.html',\r\n styleUrls: ['./autocomplete.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdAutocomplete implements OnInit, OnDestroy, AfterViewInit {\r\n @Input() set key(value: any) {\r\n this.#cache = {};\r\n this.#item = {};\r\n }\r\n @ViewChild(MatAutocompleteTrigger, { read: MatAutocompleteTrigger }) autocompleteTrigger: MatAutocompleteTrigger;\r\n id = `I${uuid.v4()}`;\r\n #model: string | number;\r\n\r\n #delay = 0; // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện gọi hàm\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n loading = false;\r\n inputControl = new SdFormControl();\r\n formControl = new SdFormControl();\r\n matcher = new SdAutocompleteErrotStateMatcher(this.formControl);\r\n @Input() size: 'sm' | 'lg';\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n @Input() label: string;\r\n @Input() valueField: string;\r\n @Input() displayField: string;\r\n @Input() placeholder: string;\r\n\r\n #itemsChanges = new BehaviorSubject<any[] | SearchFunc>([]);\r\n @Input() set items(items: undefined | any[] | SearchFunc) {\r\n if (!items) {\r\n this.#itemsChanges.next([]);\r\n } else if (Array.isArray(items)) {\r\n this.#itemsChanges.next(items.filter(e => e !== null && e !== undefined));\r\n } else {\r\n this.#itemsChanges.next(items);\r\n this.#delay = 500;\r\n }\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n @Input() limit = 100;\r\n\r\n filteredItems: Observable<any[]>;\r\n controlPlaceHolder: Observable<string | number>;\r\n controlPlaceHolder2: Observable<string | number>;\r\n @Input() set model(value: undefined | number | string) {\r\n this.#model = value;\r\n this.formControl.setValue(value);\r\n }\r\n\r\n @ContentChild(SdAutocompleteDisplayDefDirective) autocompleteDisplayDef: SdAutocompleteDisplayDefDirective;\r\n @Input() actionIcon: string;\r\n @Output() action = new EventEmitter();\r\n @Output() modelChange = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n\r\n // Optional\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.inputControl.disable();\r\n this.formControl.disable();\r\n } else {\r\n this.inputControl.enable();\r\n this.formControl.disable();\r\n }\r\n }\r\n isRequired = false;\r\n @Input() set required(val: boolean | '') {\r\n this.isRequired = (val === '') || val;\r\n this.#updateValidator();\r\n // if (this.isRequired) {\r\n // this.formControl.setValidators([Validators.required]);\r\n // } else {\r\n // this.formControl.clearValidators();\r\n // }\r\n }\r\n disableErrorMessage = false;\r\n @Input('disableErrorMessage') set _disableErrorMessage(val: boolean | '') {\r\n this.disableErrorMessage = (val === '') || val;\r\n val = (val === '') || val;\r\n }\r\n #subscription = new Subscription();\r\n @ViewChild('input') input: ElementRef;\r\n @ContentChild(SdViewDefDirective) sdView: SdViewDefDirective;\r\n isFocused = false;\r\n selected: Observable<any>;\r\n\r\n #cache: {\r\n [key: string]: any[]\r\n } = {};\r\n #item: {\r\n [key: string]: any\r\n } = {};\r\n constructor(\r\n private ref: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.#subscription.add(this.formControl.changes.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n this.#subscription.add(this.inputControl.changes.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n this.filteredItems = combineLatest([\r\n this.#itemsChanges.asObservable(),\r\n this.inputControl.valueChanges.pipe(debounceTime(this.#delay))]).pipe(\r\n switchMap(([items, searchText]) => {\r\n searchText = searchText || '';\r\n if (typeof (items) === 'function') {\r\n if (this.#cache[searchText] !== undefined) {\r\n return this.#cache[searchText].asObservable();\r\n }\r\n let obs: Observable<any[]>;\r\n const func = items(searchText, false);\r\n if (func instanceof Promise) {\r\n obs = defer(() => from(func));\r\n } else {\r\n obs = func\r\n }\r\n this.loading = true;\r\n return obs.pipe(map(data => {\r\n this.#cache[searchText] = data || [];\r\n Object.assign(this.#item, Array.toObject(this.#cache[searchText], this.valueField));\r\n return this.#cache[searchText];\r\n }), finalize(() => this.loading = false));\r\n }\r\n return items\r\n .search(searchText, [this.valueField, this.displayField])\r\n .paging(this.limit)\r\n .asObservable();\r\n })\r\n );\r\n this.selected = combineLatest([\r\n this.#itemsChanges.asObservable(),\r\n this.formControl.valueChanges.pipe(startWith(this.formControl.value))])\r\n .pipe(\r\n switchMap(([items, val]) => {\r\n // Vì một số lý do chưa xác định mà khi sử dụng sdViewDef thì khi chuyển sang dạng view sẽ trigger val = null\r\n // Nhưng formControl.value vẫn có giá trị đúng nên thực hiện gán val = this.formControl.value;\r\n val = this.formControl.value;\r\n if (!this.valueField) {\r\n return of(val);\r\n }\r\n if (val || val === 0) {\r\n if (typeof (items) === 'function') {\r\n if (this.#item[val]) {\r\n return of(this.#item[val]);\r\n }\r\n let obs: Observable<any[]>;\r\n const func = items(val, true);\r\n if (func instanceof Promise) {\r\n obs = defer(() => from(func));\r\n } else {\r\n obs = func;\r\n }\r\n return obs.pipe(map(data => {\r\n Object.assign(this.#item, Array.toObject(data, this.valueField));\r\n return this.#item[val] || {\r\n [this.valueField]: val,\r\n [this.displayField]: val\r\n };\r\n }));\r\n }\r\n return of(items.find(e => e[this.valueField] === val));\r\n }\r\n return of('');\r\n })\r\n );\r\n this.controlPlaceHolder = this.selected.pipe(map(item => item?.[this.displayField] ?? item ?? this.placeholder ?? this.label ?? ''));\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#form?.addControl(this.#name, this.formControl);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#subscription.unsubscribe();\r\n this.#form?.removeControl(this.#name);\r\n }\r\n onSelect = (item: any) => {\r\n if (item) {\r\n if (typeof (item) === 'string' || typeof (item) === 'number') {\r\n if (this.formControl.value !== item) {\r\n this.formControl.setValue(item);\r\n this.modelChange.emit(item);\r\n this.sdChange.emit(item);\r\n }\r\n } else if (this.valueField && this.displayField) {\r\n const val = item?.[this.valueField] || null;\r\n if (this.formControl.value !== val) {\r\n this.formControl.setValue(val);\r\n this.modelChange.emit(val);\r\n this.sdChange.emit(item);\r\n }\r\n }\r\n this.inputControl.setValue('', {\r\n emitEvent: false\r\n });\r\n }\r\n }\r\n\r\n onFocus = () => {\r\n this.isFocused = true;\r\n this.inputControl.setValue('');\r\n // this.inputControl.updateValueAndValidity();\r\n }\r\n\r\n onBlur = () => {\r\n this.isFocused = false;\r\n this.inputControl.setValue('', {\r\n emitEvent: false\r\n });\r\n }\r\n\r\n onClick = () => {\r\n if (this.sdView?.templateRef) {\r\n if (!this.formControl.disabled && !this.isFocused) {\r\n this.focus();\r\n }\r\n }\r\n }\r\n\r\n blur = () => {\r\n this.input?.nativeElement?.blur();\r\n }\r\n\r\n focus = () => {\r\n this.isFocused = true;\r\n setTimeout(() => {\r\n this.autocompleteTrigger?.openPanel();\r\n this.input?.nativeElement?.focus();\r\n }, 100);\r\n }\r\n\r\n clear = ($event?: any) => {\r\n $event?.stopPropagation();\r\n this.inputControl?.setValue('');\r\n if (this.#model) {\r\n this.formControl.setValue(null);\r\n this.modelChange.emit(null);\r\n this.sdChange.emit(null);\r\n }\r\n }\r\n\r\n onAction = ($event: Event) => {\r\n $event?.stopPropagation();\r\n this.autocompleteTrigger?.closePanel();\r\n this.action.emit();\r\n }\r\n\r\n reValidate = () => {\r\n this.inputControl.updateValueAndValidity({ emitEvent: true });\r\n }\r\n\r\n #updateValidator = () => {\r\n this.formControl.clearValidators();\r\n this.formControl.clearAsyncValidators();\r\n const validators: ValidatorFn[] = [];\r\n // const asyncValidators: AsyncValidatorFn[] = [];\r\n if (this.isRequired) {\r\n validators.push(Validators.required);\r\n }\r\n // if (this.#validator) {\r\n // asyncValidators.push(this.#customValidator(this.#validator));\r\n // }\r\n this.formControl.setValidators(validators);\r\n // this.formControl.setAsyncValidators(asyncValidators);\r\n this.formControl.updateValueAndValidity();\r\n }\r\n}\r\n\r\ntype SearchFunc = (searchText?: string | number, isFormValue?: boolean) => Promise<any[]> | Observable<any[]>;","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { SdAutocomplete } from './autocomplete.component';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { SdAutocompleteDisplayDefDirective } from './autocomplete-display-def.directive';\r\nimport { SdCommonModule } from '@sd-angular/core/common';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatAutocompleteModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n SdTranslateModule,\r\n SdCommonModule\r\n ],\r\n declarations: [\r\n SdAutocomplete,\r\n SdAutocompleteDisplayDefDirective\r\n ],\r\n exports: [\r\n SdAutocomplete,\r\n SdAutocompleteDisplayDefDirective,\r\n SdCommonModule\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdAutocompleteModule {\r\n\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/autocomplete.module';\r\nexport * from './lib/autocomplete.component';\r\nexport * from './lib/autocomplete-display-def.directive';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Directive","TemplateRef","uuid.v4","SdFormControl","BehaviorSubject","EventEmitter","Subscription","Validators","NgForm","combineLatest","debounceTime","switchMap","defer","from","map","finalize","startWith","of","Component","ChangeDetectionStrategy","ChangeDetectorRef","Input","ViewChild","MatAutocompleteTrigger","ContentChild","Output","SdViewDefDirective","NgModule","CommonModule","FormsModule","ReactiveFormsModule","MatInputModule","MatTooltipModule","MatFormFieldModule","MatAutocompleteModule","MatIconModule","MatProgressSpinnerModule","SdTranslateModule","SdCommonModule"],"mappings":"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"}
|
|
@@ -12,5 +12,5 @@
|
|
|
12
12
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
13
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
14
|
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */Object.create;function g(e,t){var o="function"==typeof Symbol&&e[Symbol.iterator];if(!o)return e;var r,n,i=o.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){n={error:e}}finally{try{r&&!r.done&&(o=i.return)&&o.call(i)}finally{if(n)throw n.error}}return a}Object.create;function h(e,t,o,r){if("a"===o&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===o?r:"a"===o?r.call(e):r?r.value:t.get(e)}function v(e,t,o,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(e,o):n?n.value=o:t.set(e,o),o}var y,b,C,w,M,F,I,O,j=function(e){this.templateRef=e};j.decorators=[{type:t.Directive,args:[{selector:"[sdAutocompleteDisplayDef]"}]}],j.ctorParameters=function(){return[{type:t.TemplateRef}]};var q=function(){function e(e){this.formControl=e}return e.prototype.isErrorState=function(e,t){var o,r,n,i=t&&t.submitted;return!(!(null===(o=this.formControl)||void 0===o?void 0:o.invalid)||!((null===(r=this.formControl)||void 0===r?void 0:r.dirty)||(null===(n=this.formControl)||void 0===n?void 0:n.touched)||i))},e}(),P=function(){function e(e){var o=this;this.ref=e,this.id="I"+l.v4(),y.set(this,void 0),b.set(this,0),C.set(this,l.v4()),this.loading=!1,this.inputControl=new d.SdFormControl,this.formControl=new d.SdFormControl,this.matcher=new q(this.formControl),w.set(this,void 0),M.set(this,new s.BehaviorSubject([])),this.limit=100,this.action=new t.EventEmitter,this.modelChange=new t.EventEmitter,this.sdChange=new t.EventEmitter,this.isRequired=!1,this.disableErrorMessage=!1,F.set(this,new s.Subscription),this.isFocused=!1,I.set(this,{}),O.set(this,{}),this.onSelect=function(e){if(e){if("string"==typeof e||"number"==typeof e)o.formControl.value!==e&&(o.formControl.setValue(e),o.modelChange.emit(e),o.sdChange.emit(e));else if(o.valueField&&o.displayField){var t=(null==e?void 0:e[o.valueField])||null;o.formControl.value!==t&&(o.formControl.setValue(t),o.modelChange.emit(t),o.sdChange.emit(e))}o.inputControl.setValue("",{emitEvent:!1})}},this.onFocus=function(){o.isFocused=!0,o.inputControl.setValue("")},this.onBlur=function(){o.isFocused=!1,o.inputControl.setValue("",{emitEvent:!1})},this.onClick=function(){var e;(null===(e=o.sdView)||void 0===e?void 0:e.templateRef)&&(o.formControl.disabled||o.isFocused||o.focus())},this.blur=function(){var e,t;null===(t=null===(e=o.input)||void 0===e?void 0:e.nativeElement)||void 0===t||t.blur()},this.focus=function(){o.isFocused=!0,setTimeout((function(){var e,t,r;null===(e=o.autocompleteTrigger)||void 0===e||e.openPanel(),null===(r=null===(t=o.input)||void 0===t?void 0:t.nativeElement)||void 0===r||r.focus()}),100)},this.clear=function(e){var t;null==e||e.stopPropagation(),null===(t=o.inputControl)||void 0===t||t.setValue(""),h(o,y)&&(o.formControl.setValue(null),o.modelChange.emit(null),o.sdChange.emit(null))},this.onAction=function(e){var t;null==e||e.stopPropagation(),null===(t=o.autocompleteTrigger)||void 0===t||t.closePanel(),o.action.emit()},this.reValidate=function(){o.inputControl.updateValueAndValidity({emitEvent:!0})}}return Object.defineProperty(e.prototype,"key",{set:function(e){v(this,I,{}),v(this,O,{})},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"name",{set:function(e){e&&v(this,C,e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"form",{set:function(e){e&&(e instanceof r.NgForm?v(this,w,e.form):v(this,w,e))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"items",{set:function(e){e?Array.isArray(e)?h(this,M).next(e.filter((function(e){return null!=e}))):(h(this,M).next(e),v(this,b,500)):h(this,M).next([]),this.formControl.updateValueAndValidity()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"model",{set:function(e){v(this,y,e),this.formControl.setValue(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{set:function(e){(e=""===e||e)?(this.inputControl.disable(),this.formControl.disable()):(this.inputControl.enable(),this.formControl.disable())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"required",{set:function(e){this.isRequired=""===e||e,this.isRequired?this.formControl.setValidators([r.Validators.required]):this.formControl.clearValidators()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_disableErrorMessage",{set:function(e){this.disableErrorMessage=""===e||e,e=""===e||e},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;h(this,F).add(this.formControl.changes.subscribe((function(){e.ref.markForCheck()}))),h(this,F).add(this.inputControl.changes.subscribe((function(){e.ref.markForCheck()}))),this.filteredItems=s.combineLatest([h(this,M).asObservable(),this.inputControl.valueChanges.pipe(a.debounceTime(h(this,b)))]).pipe(a.switchMap((function(t){var o=g(t,2),r=o[0],n=o[1];if(n=n||"","function"==typeof r){if(void 0!==h(e,I)[n])return h(e,I)[n].asObservable();var i=void 0,l=r(n,!1);return i=l instanceof Promise?s.defer((function(){return s.from(l)})):l,e.loading=!0,i.pipe(a.map((function(t){return h(e,I)[n]=t||[],Object.assign(h(e,O),Array.toObject(h(e,I)[n],e.valueField)),h(e,I)[n]})),a.finalize((function(){return e.loading=!1})))}return r.search(n,[e.valueField,e.displayField]).paging(e.limit).asObservable()}))),this.selected=s.combineLatest([h(this,M).asObservable(),this.formControl.valueChanges.pipe(a.startWith(this.formControl.value))]).pipe(a.switchMap((function(t){var o=g(t,2),r=o[0],n=o[1];if(n=e.formControl.value,!e.valueField)return s.of(n);if(n||0===n){if("function"==typeof r){if(h(e,O)[n])return s.of(h(e,O)[n]);var i=r(n,!0);return(i instanceof Promise?s.defer((function(){return s.from(i)})):i).pipe(a.map((function(t){var o;return Object.assign(h(e,O),Array.toObject(t,e.valueField)),h(e,O)[n]||((o={})[e.valueField]=n,o[e.displayField]=n,o)})))}return s.of(r.find((function(t){return t[e.valueField]===n})))}return s.of("")}))),this.controlPlaceHolder=this.selected.pipe(a.map((function(t){var o,r,n,i;return null!==(i=null!==(n=null!==(r=null!==(o=null==t?void 0:t[e.displayField])&&void 0!==o?o:t)&&void 0!==r?r:e.placeholder)&&void 0!==n?n:e.label)&&void 0!==i?i:""})))},e.prototype.ngAfterViewInit=function(){var e;null===(e=h(this,w))||void 0===e||e.addControl(h(this,C),this.formControl)},e.prototype.ngOnDestroy=function(){var e;h(this,F).unsubscribe(),null===(e=h(this,w))||void 0===e||e.removeControl(h(this,C))},e}();y=new WeakMap,b=new WeakMap,C=new WeakMap,w=new WeakMap,M=new WeakMap,F=new WeakMap,I=new WeakMap,O=new WeakMap,P.decorators=[{type:t.Component,args:[{selector:"sd-autocomplete",template:'<div class="d-flex align-items-center" [class.sd-view]="sdView?.templateRef" [class.c-focused]="isFocused"\r\n[class.c-disabled]="formControl.disabled" (click)="onClick()">\r\n <ng-container *ngIf="sdView?.templateRef && !autocompleteTrigger?.panelOpen && !isFocused; else default">\r\n <ng-container *ngTemplateOutlet="sdView.templateRef;context: { value: formControl.value, selectedItem: selected | async }">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class="sd-md" [ngClass]="{\'sd-sm\': size === \'sm\', \'no-padding-wrapper\': disableErrorMessage}"\r\n [floatLabel]="size === \'sm\' || formControl.value ? \'always\':\'auto\'" appearance="outline">\r\n <mat-label *ngIf="label">{{ label }}</mat-label>\r\n <input [id]="id" #autocompleteTrigger [formControl]="inputControl" [placeholder]="controlPlaceHolder | async"\r\n [ngClass]="{\'c-selected\': formControl?.value}" [matAutocomplete]="auto" (focus)="onFocus()" (blur)="onBlur()"\r\n matInput [autocomplete]="id" autocorrect="off" [errorStateMatcher]="matcher" [required]="isRequired" #input />\r\n <mat-icon *ngIf="!loading && formControl?.value && !inputControl.disabled" class="pointer sd-suffix-icon"\r\n (click)="clear($event)" matSuffix>cancel\r\n </mat-icon>\r\n <mat-icon *ngIf="actionIcon && !loading && !formControl?.value && !inputControl.disabled"\r\n class="pointer sd-suffix-icon" (click)="onAction($event)" matSuffix>{{actionIcon}}\r\n </mat-icon>\r\n <mat-spinner *ngIf="loading" strokeWidth="2" mode="indeterminate" diameter="18" value="100" matSuffix>\r\n </mat-spinner>\r\n <mat-autocomplete #auto="matAutocomplete" (optionSelected)="onSelect($event.option.value)">\r\n <mat-option *ngFor="let item of filteredItems | async" [value]="item" matTooltipPosition="above"\r\n [matTooltip]="displayField ? item[displayField] : item">\r\n <ng-container *ngIf="autocompleteDisplayDef?.templateRef">\r\n <ng-container *ngTemplateOutlet="autocompleteDisplayDef.templateRef;context:{item: item}">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf="!autocompleteDisplayDef?.templateRef">\r\n {{ displayField ? item[displayField] : item }}\r\n </ng-container>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-error *ngIf="formControl?.errors?.required && !disableErrorMessage">\r\n {{ "This field is required" | sdTranslate }}\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n</div>',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[":host{display:block;padding-top:5px}:host ::ng-deep .mat-form-field.no-padding-wrapper .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field input.c-selected::-moz-placeholder{color:#000;opacity:1}:host ::ng-deep .mat-form-field input.c-selected::placeholder{color:#000;opacity:1}:host ::ng-deep .mat-form-field input.c-selected:-ms-input-placeholder{color:#000}:host ::ng-deep .mat-form-field input.c-selected::-ms-input-placeholder{color:#000}:host ::ng-deep .mat-form-field input.mat-input-element:disabled{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected::-moz-placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected::placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected:-ms-input-placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected::-ms-input-placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:#f82c13}.sd-view:not(.c-focused):not(.c-disabled):hover{background-color:#ebecf0}"]}]}],P.ctorParameters=function(){return[{type:t.ChangeDetectorRef}]},P.propDecorators={key:[{type:t.Input}],autocompleteTrigger:[{type:t.ViewChild,args:[u.MatAutocompleteTrigger,{read:u.MatAutocompleteTrigger}]}],name:[{type:t.Input}],size:[{type:t.Input}],form:[{type:t.Input}],label:[{type:t.Input}],valueField:[{type:t.Input}],displayField:[{type:t.Input}],placeholder:[{type:t.Input}],items:[{type:t.Input}],limit:[{type:t.Input}],model:[{type:t.Input}],autocompleteDisplayDef:[{type:t.ContentChild,args:[j]}],actionIcon:[{type:t.Input}],action:[{type:t.Output}],modelChange:[{type:t.Output}],sdChange:[{type:t.Output}],disabled:[{type:t.Input}],required:[{type:t.Input}],_disableErrorMessage:[{type:t.Input,args:["disableErrorMessage"]}],input:[{type:t.ViewChild,args:["input"]}],sdView:[{type:t.ContentChild,args:[d.SdViewDefDirective]}]};var T=function(){};T.decorators=[{type:t.NgModule,args:[{imports:[o.CommonModule,r.FormsModule,r.ReactiveFormsModule,i.MatInputModule,m.MatTooltipModule,n.MatFormFieldModule,u.MatAutocompleteModule,c.MatIconModule,f.MatProgressSpinnerModule,p.SdTranslateModule,d.SdCommonModule],declarations:[P,j],exports:[P,j,d.SdCommonModule],providers:[]}]}],e.SdAutocomplete=P,e.SdAutocompleteDisplayDefDirective=j,e.SdAutocompleteModule=T,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
15
|
+
***************************************************************************** */Object.create;function g(e,t){var o="function"==typeof Symbol&&e[Symbol.iterator];if(!o)return e;var r,n,i=o.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){n={error:e}}finally{try{r&&!r.done&&(o=i.return)&&o.call(i)}finally{if(n)throw n.error}}return a}Object.create;function h(e,t,o,r){if("a"===o&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===o?r:"a"===o?r.call(e):r?r.value:t.get(e)}function v(e,t,o,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(e,o):n?n.value=o:t.set(e,o),o}var y,b,C,w,M,F,I,O,V,j=function(e){this.templateRef=e};j.decorators=[{type:t.Directive,args:[{selector:"[sdAutocompleteDisplayDef]"}]}],j.ctorParameters=function(){return[{type:t.TemplateRef}]};var q=function(){function e(e){this.formControl=e}return e.prototype.isErrorState=function(e,t){var o,r,n,i=t&&t.submitted;return!(!(null===(o=this.formControl)||void 0===o?void 0:o.invalid)||!((null===(r=this.formControl)||void 0===r?void 0:r.dirty)||(null===(n=this.formControl)||void 0===n?void 0:n.touched)||i))},e}(),P=function(){function e(e){var o=this;this.ref=e,this.id="I"+l.v4(),y.set(this,void 0),b.set(this,0),C.set(this,l.v4()),this.loading=!1,this.inputControl=new d.SdFormControl,this.formControl=new d.SdFormControl,this.matcher=new q(this.formControl),w.set(this,void 0),M.set(this,new s.BehaviorSubject([])),this.limit=100,this.action=new t.EventEmitter,this.modelChange=new t.EventEmitter,this.sdChange=new t.EventEmitter,this.isRequired=!1,this.disableErrorMessage=!1,F.set(this,new s.Subscription),this.isFocused=!1,I.set(this,{}),O.set(this,{}),this.onSelect=function(e){if(e){if("string"==typeof e||"number"==typeof e)o.formControl.value!==e&&(o.formControl.setValue(e),o.modelChange.emit(e),o.sdChange.emit(e));else if(o.valueField&&o.displayField){var t=(null==e?void 0:e[o.valueField])||null;o.formControl.value!==t&&(o.formControl.setValue(t),o.modelChange.emit(t),o.sdChange.emit(e))}o.inputControl.setValue("",{emitEvent:!1})}},this.onFocus=function(){o.isFocused=!0,o.inputControl.setValue("")},this.onBlur=function(){o.isFocused=!1,o.inputControl.setValue("",{emitEvent:!1})},this.onClick=function(){var e;(null===(e=o.sdView)||void 0===e?void 0:e.templateRef)&&(o.formControl.disabled||o.isFocused||o.focus())},this.blur=function(){var e,t;null===(t=null===(e=o.input)||void 0===e?void 0:e.nativeElement)||void 0===t||t.blur()},this.focus=function(){o.isFocused=!0,setTimeout((function(){var e,t,r;null===(e=o.autocompleteTrigger)||void 0===e||e.openPanel(),null===(r=null===(t=o.input)||void 0===t?void 0:t.nativeElement)||void 0===r||r.focus()}),100)},this.clear=function(e){var t;null==e||e.stopPropagation(),null===(t=o.inputControl)||void 0===t||t.setValue(""),h(o,y)&&(o.formControl.setValue(null),o.modelChange.emit(null),o.sdChange.emit(null))},this.onAction=function(e){var t;null==e||e.stopPropagation(),null===(t=o.autocompleteTrigger)||void 0===t||t.closePanel(),o.action.emit()},this.reValidate=function(){o.inputControl.updateValueAndValidity({emitEvent:!0})},V.set(this,(function(){o.formControl.clearValidators(),o.formControl.clearAsyncValidators();var e=[];o.isRequired&&e.push(r.Validators.required),o.formControl.setValidators(e),o.formControl.updateValueAndValidity()}))}return Object.defineProperty(e.prototype,"key",{set:function(e){v(this,I,{}),v(this,O,{})},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"name",{set:function(e){e&&v(this,C,e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"form",{set:function(e){e&&(e instanceof r.NgForm?v(this,w,e.form):v(this,w,e))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"items",{set:function(e){e?Array.isArray(e)?h(this,M).next(e.filter((function(e){return null!=e}))):(h(this,M).next(e),v(this,b,500)):h(this,M).next([]),this.formControl.updateValueAndValidity()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"model",{set:function(e){v(this,y,e),this.formControl.setValue(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{set:function(e){(e=""===e||e)?(this.inputControl.disable(),this.formControl.disable()):(this.inputControl.enable(),this.formControl.disable())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"required",{set:function(e){this.isRequired=""===e||e,h(this,V).call(this)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_disableErrorMessage",{set:function(e){this.disableErrorMessage=""===e||e,e=""===e||e},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;h(this,F).add(this.formControl.changes.subscribe((function(){e.ref.markForCheck()}))),h(this,F).add(this.inputControl.changes.subscribe((function(){e.ref.markForCheck()}))),this.filteredItems=s.combineLatest([h(this,M).asObservable(),this.inputControl.valueChanges.pipe(a.debounceTime(h(this,b)))]).pipe(a.switchMap((function(t){var o=g(t,2),r=o[0],n=o[1];if(n=n||"","function"==typeof r){if(void 0!==h(e,I)[n])return h(e,I)[n].asObservable();var i=void 0,l=r(n,!1);return i=l instanceof Promise?s.defer((function(){return s.from(l)})):l,e.loading=!0,i.pipe(a.map((function(t){return h(e,I)[n]=t||[],Object.assign(h(e,O),Array.toObject(h(e,I)[n],e.valueField)),h(e,I)[n]})),a.finalize((function(){return e.loading=!1})))}return r.search(n,[e.valueField,e.displayField]).paging(e.limit).asObservable()}))),this.selected=s.combineLatest([h(this,M).asObservable(),this.formControl.valueChanges.pipe(a.startWith(this.formControl.value))]).pipe(a.switchMap((function(t){var o=g(t,2),r=o[0],n=o[1];if(n=e.formControl.value,!e.valueField)return s.of(n);if(n||0===n){if("function"==typeof r){if(h(e,O)[n])return s.of(h(e,O)[n]);var i=r(n,!0);return(i instanceof Promise?s.defer((function(){return s.from(i)})):i).pipe(a.map((function(t){var o;return Object.assign(h(e,O),Array.toObject(t,e.valueField)),h(e,O)[n]||((o={})[e.valueField]=n,o[e.displayField]=n,o)})))}return s.of(r.find((function(t){return t[e.valueField]===n})))}return s.of("")}))),this.controlPlaceHolder=this.selected.pipe(a.map((function(t){var o,r,n,i;return null!==(i=null!==(n=null!==(r=null!==(o=null==t?void 0:t[e.displayField])&&void 0!==o?o:t)&&void 0!==r?r:e.placeholder)&&void 0!==n?n:e.label)&&void 0!==i?i:""})))},e.prototype.ngAfterViewInit=function(){var e;null===(e=h(this,w))||void 0===e||e.addControl(h(this,C),this.formControl)},e.prototype.ngOnDestroy=function(){var e;h(this,F).unsubscribe(),null===(e=h(this,w))||void 0===e||e.removeControl(h(this,C))},e}();y=new WeakMap,b=new WeakMap,C=new WeakMap,w=new WeakMap,M=new WeakMap,F=new WeakMap,I=new WeakMap,O=new WeakMap,V=new WeakMap,P.decorators=[{type:t.Component,args:[{selector:"sd-autocomplete",template:'<div class="d-flex align-items-center" [class.sd-view]="sdView?.templateRef" [class.c-focused]="isFocused"\r\n[class.c-disabled]="formControl.disabled" (click)="onClick()">\r\n <ng-container *ngIf="sdView?.templateRef && !autocompleteTrigger?.panelOpen && !isFocused; else default">\r\n <ng-container *ngTemplateOutlet="sdView.templateRef;context: { value: formControl.value, selectedItem: selected | async }">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class="sd-md" [ngClass]="{\'sd-sm\': size === \'sm\', \'no-padding-wrapper\': disableErrorMessage}"\r\n [floatLabel]="size === \'sm\' || formControl.value ? \'always\':\'auto\'" appearance="outline">\r\n <mat-label *ngIf="label">{{ label }}</mat-label>\r\n <input [id]="id" #autocompleteTrigger [formControl]="inputControl" [placeholder]="controlPlaceHolder | async"\r\n [ngClass]="{\'c-selected\': formControl?.value}" [matAutocomplete]="auto" (focus)="onFocus()" (blur)="onBlur()"\r\n matInput [autocomplete]="id" autocorrect="off" [errorStateMatcher]="matcher" [required]="isRequired" #input />\r\n <mat-icon *ngIf="!loading && formControl?.value && !inputControl.disabled" class="pointer sd-suffix-icon"\r\n (click)="clear($event)" matSuffix>cancel\r\n </mat-icon>\r\n <mat-icon *ngIf="actionIcon && !loading && !formControl?.value && !inputControl.disabled"\r\n class="pointer sd-suffix-icon" (click)="onAction($event)" matSuffix>{{actionIcon}}\r\n </mat-icon>\r\n <mat-spinner *ngIf="loading" strokeWidth="2" mode="indeterminate" diameter="18" value="100" matSuffix>\r\n </mat-spinner>\r\n <mat-autocomplete #auto="matAutocomplete" (optionSelected)="onSelect($event.option.value)">\r\n <mat-option *ngFor="let item of filteredItems | async" [value]="item" matTooltipPosition="above"\r\n [matTooltip]="displayField ? item[displayField] : item">\r\n <ng-container *ngIf="autocompleteDisplayDef?.templateRef">\r\n <ng-container *ngTemplateOutlet="autocompleteDisplayDef.templateRef;context:{item: item}">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf="!autocompleteDisplayDef?.templateRef">\r\n {{ displayField ? item[displayField] : item }}\r\n </ng-container>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-error *ngIf="formControl?.errors?.required && !disableErrorMessage">\r\n {{ "This field is required" | sdTranslate }}\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n</div>',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[":host{display:block;padding-top:5px}:host ::ng-deep .mat-form-field.no-padding-wrapper .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field input.c-selected::-moz-placeholder{color:#000;opacity:1}:host ::ng-deep .mat-form-field input.c-selected::placeholder{color:#000;opacity:1}:host ::ng-deep .mat-form-field input.c-selected:-ms-input-placeholder{color:#000}:host ::ng-deep .mat-form-field input.c-selected::-ms-input-placeholder{color:#000}:host ::ng-deep .mat-form-field input.mat-input-element:disabled{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected::-moz-placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected::placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected:-ms-input-placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field input.mat-input-element:disabled.c-selected::-ms-input-placeholder{color:#4d4d4d}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:#f82c13}.sd-view:not(.c-focused):not(.c-disabled):hover{background-color:#ebecf0}"]}]}],P.ctorParameters=function(){return[{type:t.ChangeDetectorRef}]},P.propDecorators={key:[{type:t.Input}],autocompleteTrigger:[{type:t.ViewChild,args:[u.MatAutocompleteTrigger,{read:u.MatAutocompleteTrigger}]}],name:[{type:t.Input}],size:[{type:t.Input}],form:[{type:t.Input}],label:[{type:t.Input}],valueField:[{type:t.Input}],displayField:[{type:t.Input}],placeholder:[{type:t.Input}],items:[{type:t.Input}],limit:[{type:t.Input}],model:[{type:t.Input}],autocompleteDisplayDef:[{type:t.ContentChild,args:[j]}],actionIcon:[{type:t.Input}],action:[{type:t.Output}],modelChange:[{type:t.Output}],sdChange:[{type:t.Output}],disabled:[{type:t.Input}],required:[{type:t.Input}],_disableErrorMessage:[{type:t.Input,args:["disableErrorMessage"]}],input:[{type:t.ViewChild,args:["input"]}],sdView:[{type:t.ContentChild,args:[d.SdViewDefDirective]}]};var T=function(){};T.decorators=[{type:t.NgModule,args:[{imports:[o.CommonModule,r.FormsModule,r.ReactiveFormsModule,i.MatInputModule,m.MatTooltipModule,n.MatFormFieldModule,u.MatAutocompleteModule,c.MatIconModule,f.MatProgressSpinnerModule,p.SdTranslateModule,d.SdCommonModule],declarations:[P,j],exports:[P,j,d.SdCommonModule],providers:[]}]}],e.SdAutocomplete=P,e.SdAutocompleteDisplayDefDirective=j,e.SdAutocompleteModule=T,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
16
16
|
//# sourceMappingURL=sd-angular-core-autocomplete.umd.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/autocomplete/src/lib/autocomplete-display-def.directive.ts","../../../../projects/sd-core/autocomplete/src/lib/autocomplete.component.ts","../../../../projects/sd-core/autocomplete/src/lib/autocomplete.module.ts"],"names":["Object","create","__read","o","n","m","Symbol","iterator","r","e","i","call","ar","next","done","push","value","error","__classPrivateFieldGet","receiver","state","kind","f","TypeError","has","get","__classPrivateFieldSet","set","templateRef","this","Directive","args","selector","TemplateRef","SdAutocompleteErrotStateMatcher","formControl","prototype","isErrorState","control","form","isSubmitted","submitted","_a","invalid","_b","dirty","_c","touched","SdAutocomplete","ref","_this","id","uuid.v4","_model","_delay","_name","loading","inputControl","SdFormControl","matcher","_form","_itemsChanges","BehaviorSubject","limit","action","EventEmitter","modelChange","sdChange","isRequired","disableErrorMessage","_subscription","Subscription","isFocused","_cache","_item","onSelect","item","setValue","emit","valueField","displayField","val","emitEvent","onFocus","onBlur","onClick","sdView","disabled","focus","blur","input","nativeElement","setTimeout","autocompleteTrigger","openPanel","clear","$event","stopPropagation","onAction","closePanel","reValidate","updateValueAndValidity","defineProperty","NgForm","items","Array","isArray","filter","disable","enable","setValidators","Validators","required","clearValidators","ngOnInit","add","changes","subscribe","markForCheck","filteredItems","combineLatest","asObservable","valueChanges","pipe","debounceTime","switchMap","_e","_f","searchText","undefined","obs","func_1","Promise","defer","from","map","data","assign","toObject","finalize","search","paging","selected","startWith","of","func_2","find","controlPlaceHolder","_d","placeholder","label","ngAfterViewInit","addControl","ngOnDestroy","unsubscribe","removeControl","Component","template","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","Input","ViewChild","MatAutocompleteTrigger","read","ContentChild","SdAutocompleteDisplayDefDirective","Output","SdViewDefDirective","NgModule","imports","CommonModule","FormsModule","ReactiveFormsModule","MatInputModule","MatTooltipModule","MatFormFieldModule","MatAutocompleteModule","MatIconModule","MatProgressSpinnerModule","SdTranslateModule","SdCommonModule","declarations","exports","providers"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdAutocompleteDisplayDef]'\r\n})\r\nexport class SdAutocompleteDisplayDefDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ViewChild,\r\n Output,\r\n EventEmitter,\r\n OnInit,\r\n OnDestroy,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ContentChild,\r\n ChangeDetectionStrategy,\r\n ElementRef\r\n} from '@angular/core';\r\nimport { startWith, switchMap, debounceTime, map, finalize } from 'rxjs/operators';\r\n\r\nimport * as uuid from 'uuid';\r\nimport { FormControl, NgForm, Validators, FormGroupDirective, FormGroup } from '@angular/forms';\r\nimport { BehaviorSubject, combineLatest, defer, from, Observable, of, Subscription } from 'rxjs';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { SdAutocompleteDisplayDefDirective } from './autocomplete-display-def.directive';\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { SdFormControl, SdViewDefDirective } from '@sd-angular/core/common';\r\n\r\nclass SdAutocompleteErrotStateMatcher implements ErrorStateMatcher {\r\n constructor(private formControl: FormControl) { }\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n const isSubmitted = form && form.submitted;\r\n return !!(this.formControl?.invalid && (this.formControl?.dirty || this.formControl?.touched || isSubmitted));\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'sd-autocomplete',\r\n templateUrl: './autocomplete.component.html',\r\n styleUrls: ['./autocomplete.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdAutocomplete implements OnInit, OnDestroy, AfterViewInit {\r\n @Input() set key(value: any) {\r\n this.#cache = {};\r\n this.#item = {};\r\n }\r\n @ViewChild(MatAutocompleteTrigger, { read: MatAutocompleteTrigger }) autocompleteTrigger: MatAutocompleteTrigger;\r\n id = `I${uuid.v4()}`;\r\n #model: string | number;\r\n\r\n #delay = 0; // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện gọi hàm\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n loading = false;\r\n inputControl = new SdFormControl();\r\n formControl = new SdFormControl();\r\n matcher = new SdAutocompleteErrotStateMatcher(this.formControl);\r\n @Input() size: 'sm' | 'lg';\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n @Input() label: string;\r\n @Input() valueField: string;\r\n @Input() displayField: string;\r\n @Input() placeholder: string;\r\n\r\n #itemsChanges = new BehaviorSubject<any[] | SearchFunc>([]);\r\n @Input() set items(items: undefined | any[] | SearchFunc) {\r\n if (!items) {\r\n this.#itemsChanges.next([]);\r\n } else if (Array.isArray(items)) {\r\n this.#itemsChanges.next(items.filter(e => e !== null && e !== undefined));\r\n } else {\r\n this.#itemsChanges.next(items);\r\n this.#delay = 500;\r\n }\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n @Input() limit = 100;\r\n\r\n filteredItems: Observable<any[]>;\r\n controlPlaceHolder: Observable<string | number>;\r\n controlPlaceHolder2: Observable<string | number>;\r\n @Input() set model(value: undefined | number | string) {\r\n this.#model = value;\r\n this.formControl.setValue(value);\r\n }\r\n\r\n @ContentChild(SdAutocompleteDisplayDefDirective) autocompleteDisplayDef: SdAutocompleteDisplayDefDirective;\r\n @Input() actionIcon: string;\r\n @Output() action = new EventEmitter();\r\n @Output() modelChange = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n\r\n // Optional\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.inputControl.disable();\r\n this.formControl.disable();\r\n } else {\r\n this.inputControl.enable();\r\n this.formControl.disable();\r\n }\r\n }\r\n isRequired = false;\r\n @Input() set required(val: boolean | '') {\r\n this.isRequired = (val === '') || val;\r\n if (this.isRequired) {\r\n this.formControl.setValidators([Validators.required]);\r\n } else {\r\n this.formControl.clearValidators();\r\n }\r\n }\r\n disableErrorMessage = false;\r\n @Input('disableErrorMessage') set _disableErrorMessage(val: boolean | '') {\r\n this.disableErrorMessage = (val === '') || val;\r\n val = (val === '') || val;\r\n }\r\n #subscription = new Subscription();\r\n @ViewChild('input') input: ElementRef;\r\n @ContentChild(SdViewDefDirective) sdView: SdViewDefDirective;\r\n isFocused = false;\r\n selected: Observable<any>;\r\n\r\n #cache: {\r\n [key: string]: any[]\r\n } = {};\r\n #item: {\r\n [key: string]: any\r\n } = {};\r\n constructor(\r\n private ref: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.#subscription.add(this.formControl.changes.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n this.#subscription.add(this.inputControl.changes.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n this.filteredItems = combineLatest([\r\n this.#itemsChanges.asObservable(),\r\n this.inputControl.valueChanges.pipe(debounceTime(this.#delay))]).pipe(\r\n switchMap(([items, searchText]) => {\r\n searchText = searchText || '';\r\n if (typeof (items) === 'function') {\r\n if (this.#cache[searchText] !== undefined) {\r\n return this.#cache[searchText].asObservable();\r\n }\r\n let obs: Observable<any[]>;\r\n const func = items(searchText, false);\r\n if (func instanceof Promise) {\r\n obs = defer(() => from(func));\r\n } else {\r\n obs = func\r\n }\r\n this.loading = true;\r\n return obs.pipe(map(data => {\r\n this.#cache[searchText] = data || [];\r\n Object.assign(this.#item, Array.toObject(this.#cache[searchText], this.valueField));\r\n return this.#cache[searchText];\r\n }), finalize(() => this.loading = false));\r\n }\r\n return items\r\n .search(searchText, [this.valueField, this.displayField])\r\n .paging(this.limit)\r\n .asObservable();\r\n })\r\n );\r\n this.selected = combineLatest([\r\n this.#itemsChanges.asObservable(),\r\n this.formControl.valueChanges.pipe(startWith(this.formControl.value))])\r\n .pipe(\r\n switchMap(([items, val]) => {\r\n // Vì một số lý do chưa xác định mà khi sử dụng sdViewDef thì khi chuyển sang dạng view sẽ trigger val = null\r\n // Nhưng formControl.value vẫn có giá trị đúng nên thực hiện gán val = this.formControl.value;\r\n val = this.formControl.value;\r\n if (!this.valueField) {\r\n return of(val);\r\n }\r\n if (val || val === 0) {\r\n if (typeof (items) === 'function') {\r\n if (this.#item[val]) {\r\n return of(this.#item[val]);\r\n }\r\n let obs: Observable<any[]>;\r\n const func = items(val, true);\r\n if (func instanceof Promise) {\r\n obs = defer(() => from(func));\r\n } else {\r\n obs = func;\r\n }\r\n return obs.pipe(map(data => {\r\n Object.assign(this.#item, Array.toObject(data, this.valueField));\r\n return this.#item[val] || {\r\n [this.valueField]: val,\r\n [this.displayField]: val\r\n };\r\n }));\r\n }\r\n return of(items.find(e => e[this.valueField] === val));\r\n }\r\n return of('');\r\n })\r\n );\r\n this.controlPlaceHolder = this.selected.pipe(map(item => item?.[this.displayField] ?? item ?? this.placeholder ?? this.label ?? ''));\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#form?.addControl(this.#name, this.formControl);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#subscription.unsubscribe();\r\n this.#form?.removeControl(this.#name);\r\n }\r\n onSelect = (item: any) => {\r\n if (item) {\r\n if (typeof (item) === 'string' || typeof (item) === 'number') {\r\n if (this.formControl.value !== item) {\r\n this.formControl.setValue(item);\r\n this.modelChange.emit(item);\r\n this.sdChange.emit(item);\r\n }\r\n } else if (this.valueField && this.displayField) {\r\n const val = item?.[this.valueField] || null;\r\n if (this.formControl.value !== val) {\r\n this.formControl.setValue(val);\r\n this.modelChange.emit(val);\r\n this.sdChange.emit(item);\r\n }\r\n }\r\n this.inputControl.setValue('', {\r\n emitEvent: false\r\n });\r\n }\r\n }\r\n\r\n onFocus = () => {\r\n this.isFocused = true;\r\n this.inputControl.setValue('');\r\n // this.inputControl.updateValueAndValidity();\r\n }\r\n\r\n onBlur = () => {\r\n this.isFocused = false;\r\n this.inputControl.setValue('', {\r\n emitEvent: false\r\n });\r\n }\r\n\r\n onClick = () => {\r\n if (this.sdView?.templateRef) {\r\n if (!this.formControl.disabled && !this.isFocused) {\r\n this.focus();\r\n }\r\n }\r\n }\r\n\r\n blur = () => {\r\n this.input?.nativeElement?.blur();\r\n }\r\n\r\n focus = () => {\r\n this.isFocused = true;\r\n setTimeout(() => {\r\n this.autocompleteTrigger?.openPanel();\r\n this.input?.nativeElement?.focus();\r\n }, 100);\r\n }\r\n\r\n clear = ($event?: any) => {\r\n $event?.stopPropagation();\r\n this.inputControl?.setValue('');\r\n if (this.#model) {\r\n this.formControl.setValue(null);\r\n this.modelChange.emit(null);\r\n this.sdChange.emit(null);\r\n }\r\n }\r\n\r\n onAction = ($event: Event) => {\r\n $event?.stopPropagation();\r\n this.autocompleteTrigger?.closePanel();\r\n this.action.emit();\r\n }\r\n\r\n reValidate = () => {\r\n this.inputControl.updateValueAndValidity({ emitEvent: true });\r\n }\r\n}\r\n\r\ntype SearchFunc = (searchText?: string | number, isFormValue?: boolean) => Promise<any[]> | Observable<any[]>;","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { SdAutocomplete } from './autocomplete.component';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { SdAutocompleteDisplayDefDirective } from './autocomplete-display-def.directive';\r\nimport { SdCommonModule } from '@sd-angular/core/common';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatAutocompleteModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n SdTranslateModule,\r\n SdCommonModule\r\n ],\r\n declarations: [\r\n SdAutocomplete,\r\n SdAutocompleteDisplayDefDirective\r\n ],\r\n exports: [\r\n SdAutocomplete,\r\n SdAutocompleteDisplayDefDirective,\r\n SdCommonModule\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdAutocompleteModule {\r\n\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/autocomplete/src/lib/autocomplete-display-def.directive.ts","../../../../projects/sd-core/autocomplete/src/lib/autocomplete.component.ts","../../../../projects/sd-core/autocomplete/src/lib/autocomplete.module.ts"],"names":["Object","create","__read","o","n","m","Symbol","iterator","r","e","i","call","ar","next","done","push","value","error","__classPrivateFieldGet","receiver","state","kind","f","TypeError","has","get","__classPrivateFieldSet","set","templateRef","this","Directive","args","selector","TemplateRef","SdAutocompleteErrotStateMatcher","formControl","prototype","isErrorState","control","form","isSubmitted","submitted","_a","invalid","_b","dirty","_c","touched","SdAutocomplete","ref","_this","id","uuid.v4","_model","_delay","_name","loading","inputControl","SdFormControl","matcher","_form","_itemsChanges","BehaviorSubject","limit","action","EventEmitter","modelChange","sdChange","isRequired","disableErrorMessage","_subscription","Subscription","isFocused","_cache","_item","onSelect","item","setValue","emit","valueField","displayField","val","emitEvent","onFocus","onBlur","onClick","sdView","disabled","focus","blur","input","nativeElement","setTimeout","autocompleteTrigger","openPanel","clear","$event","stopPropagation","onAction","closePanel","reValidate","updateValueAndValidity","_updateValidator","clearValidators","clearAsyncValidators","validators","Validators","required","setValidators","defineProperty","NgForm","items","Array","isArray","filter","disable","enable","ngOnInit","add","changes","subscribe","markForCheck","filteredItems","combineLatest","asObservable","valueChanges","pipe","debounceTime","switchMap","_e","_f","searchText","undefined","obs","func_1","Promise","defer","from","map","data","assign","toObject","finalize","search","paging","selected","startWith","of","func_2","find","controlPlaceHolder","_d","placeholder","label","ngAfterViewInit","addControl","ngOnDestroy","unsubscribe","removeControl","Component","template","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","Input","ViewChild","MatAutocompleteTrigger","read","ContentChild","SdAutocompleteDisplayDefDirective","Output","SdViewDefDirective","NgModule","imports","CommonModule","FormsModule","ReactiveFormsModule","MatInputModule","MatTooltipModule","MatFormFieldModule","MatAutocompleteModule","MatIconModule","MatProgressSpinnerModule","SdTranslateModule","SdCommonModule","declarations","exports","providers"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdAutocompleteDisplayDef]'\r\n})\r\nexport class SdAutocompleteDisplayDefDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ViewChild,\r\n Output,\r\n EventEmitter,\r\n OnInit,\r\n OnDestroy,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ContentChild,\r\n ChangeDetectionStrategy,\r\n ElementRef\r\n} from '@angular/core';\r\nimport { startWith, switchMap, debounceTime, map, finalize } from 'rxjs/operators';\r\n\r\nimport * as uuid from 'uuid';\r\nimport { FormControl, NgForm, Validators, FormGroupDirective, FormGroup, ValidatorFn, AsyncValidatorFn } from '@angular/forms';\r\nimport { BehaviorSubject, combineLatest, defer, from, Observable, of, Subscription } from 'rxjs';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { SdAutocompleteDisplayDefDirective } from './autocomplete-display-def.directive';\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { SdFormControl, SdViewDefDirective } from '@sd-angular/core/common';\r\n\r\nclass SdAutocompleteErrotStateMatcher implements ErrorStateMatcher {\r\n constructor(private formControl: FormControl) { }\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n const isSubmitted = form && form.submitted;\r\n return !!(this.formControl?.invalid && (this.formControl?.dirty || this.formControl?.touched || isSubmitted));\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'sd-autocomplete',\r\n templateUrl: './autocomplete.component.html',\r\n styleUrls: ['./autocomplete.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdAutocomplete implements OnInit, OnDestroy, AfterViewInit {\r\n @Input() set key(value: any) {\r\n this.#cache = {};\r\n this.#item = {};\r\n }\r\n @ViewChild(MatAutocompleteTrigger, { read: MatAutocompleteTrigger }) autocompleteTrigger: MatAutocompleteTrigger;\r\n id = `I${uuid.v4()}`;\r\n #model: string | number;\r\n\r\n #delay = 0; // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện gọi hàm\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n loading = false;\r\n inputControl = new SdFormControl();\r\n formControl = new SdFormControl();\r\n matcher = new SdAutocompleteErrotStateMatcher(this.formControl);\r\n @Input() size: 'sm' | 'lg';\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n @Input() label: string;\r\n @Input() valueField: string;\r\n @Input() displayField: string;\r\n @Input() placeholder: string;\r\n\r\n #itemsChanges = new BehaviorSubject<any[] | SearchFunc>([]);\r\n @Input() set items(items: undefined | any[] | SearchFunc) {\r\n if (!items) {\r\n this.#itemsChanges.next([]);\r\n } else if (Array.isArray(items)) {\r\n this.#itemsChanges.next(items.filter(e => e !== null && e !== undefined));\r\n } else {\r\n this.#itemsChanges.next(items);\r\n this.#delay = 500;\r\n }\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n @Input() limit = 100;\r\n\r\n filteredItems: Observable<any[]>;\r\n controlPlaceHolder: Observable<string | number>;\r\n controlPlaceHolder2: Observable<string | number>;\r\n @Input() set model(value: undefined | number | string) {\r\n this.#model = value;\r\n this.formControl.setValue(value);\r\n }\r\n\r\n @ContentChild(SdAutocompleteDisplayDefDirective) autocompleteDisplayDef: SdAutocompleteDisplayDefDirective;\r\n @Input() actionIcon: string;\r\n @Output() action = new EventEmitter();\r\n @Output() modelChange = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n\r\n // Optional\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.inputControl.disable();\r\n this.formControl.disable();\r\n } else {\r\n this.inputControl.enable();\r\n this.formControl.disable();\r\n }\r\n }\r\n isRequired = false;\r\n @Input() set required(val: boolean | '') {\r\n this.isRequired = (val === '') || val;\r\n this.#updateValidator();\r\n // if (this.isRequired) {\r\n // this.formControl.setValidators([Validators.required]);\r\n // } else {\r\n // this.formControl.clearValidators();\r\n // }\r\n }\r\n disableErrorMessage = false;\r\n @Input('disableErrorMessage') set _disableErrorMessage(val: boolean | '') {\r\n this.disableErrorMessage = (val === '') || val;\r\n val = (val === '') || val;\r\n }\r\n #subscription = new Subscription();\r\n @ViewChild('input') input: ElementRef;\r\n @ContentChild(SdViewDefDirective) sdView: SdViewDefDirective;\r\n isFocused = false;\r\n selected: Observable<any>;\r\n\r\n #cache: {\r\n [key: string]: any[]\r\n } = {};\r\n #item: {\r\n [key: string]: any\r\n } = {};\r\n constructor(\r\n private ref: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.#subscription.add(this.formControl.changes.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n this.#subscription.add(this.inputControl.changes.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n this.filteredItems = combineLatest([\r\n this.#itemsChanges.asObservable(),\r\n this.inputControl.valueChanges.pipe(debounceTime(this.#delay))]).pipe(\r\n switchMap(([items, searchText]) => {\r\n searchText = searchText || '';\r\n if (typeof (items) === 'function') {\r\n if (this.#cache[searchText] !== undefined) {\r\n return this.#cache[searchText].asObservable();\r\n }\r\n let obs: Observable<any[]>;\r\n const func = items(searchText, false);\r\n if (func instanceof Promise) {\r\n obs = defer(() => from(func));\r\n } else {\r\n obs = func\r\n }\r\n this.loading = true;\r\n return obs.pipe(map(data => {\r\n this.#cache[searchText] = data || [];\r\n Object.assign(this.#item, Array.toObject(this.#cache[searchText], this.valueField));\r\n return this.#cache[searchText];\r\n }), finalize(() => this.loading = false));\r\n }\r\n return items\r\n .search(searchText, [this.valueField, this.displayField])\r\n .paging(this.limit)\r\n .asObservable();\r\n })\r\n );\r\n this.selected = combineLatest([\r\n this.#itemsChanges.asObservable(),\r\n this.formControl.valueChanges.pipe(startWith(this.formControl.value))])\r\n .pipe(\r\n switchMap(([items, val]) => {\r\n // Vì một số lý do chưa xác định mà khi sử dụng sdViewDef thì khi chuyển sang dạng view sẽ trigger val = null\r\n // Nhưng formControl.value vẫn có giá trị đúng nên thực hiện gán val = this.formControl.value;\r\n val = this.formControl.value;\r\n if (!this.valueField) {\r\n return of(val);\r\n }\r\n if (val || val === 0) {\r\n if (typeof (items) === 'function') {\r\n if (this.#item[val]) {\r\n return of(this.#item[val]);\r\n }\r\n let obs: Observable<any[]>;\r\n const func = items(val, true);\r\n if (func instanceof Promise) {\r\n obs = defer(() => from(func));\r\n } else {\r\n obs = func;\r\n }\r\n return obs.pipe(map(data => {\r\n Object.assign(this.#item, Array.toObject(data, this.valueField));\r\n return this.#item[val] || {\r\n [this.valueField]: val,\r\n [this.displayField]: val\r\n };\r\n }));\r\n }\r\n return of(items.find(e => e[this.valueField] === val));\r\n }\r\n return of('');\r\n })\r\n );\r\n this.controlPlaceHolder = this.selected.pipe(map(item => item?.[this.displayField] ?? item ?? this.placeholder ?? this.label ?? ''));\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#form?.addControl(this.#name, this.formControl);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#subscription.unsubscribe();\r\n this.#form?.removeControl(this.#name);\r\n }\r\n onSelect = (item: any) => {\r\n if (item) {\r\n if (typeof (item) === 'string' || typeof (item) === 'number') {\r\n if (this.formControl.value !== item) {\r\n this.formControl.setValue(item);\r\n this.modelChange.emit(item);\r\n this.sdChange.emit(item);\r\n }\r\n } else if (this.valueField && this.displayField) {\r\n const val = item?.[this.valueField] || null;\r\n if (this.formControl.value !== val) {\r\n this.formControl.setValue(val);\r\n this.modelChange.emit(val);\r\n this.sdChange.emit(item);\r\n }\r\n }\r\n this.inputControl.setValue('', {\r\n emitEvent: false\r\n });\r\n }\r\n }\r\n\r\n onFocus = () => {\r\n this.isFocused = true;\r\n this.inputControl.setValue('');\r\n // this.inputControl.updateValueAndValidity();\r\n }\r\n\r\n onBlur = () => {\r\n this.isFocused = false;\r\n this.inputControl.setValue('', {\r\n emitEvent: false\r\n });\r\n }\r\n\r\n onClick = () => {\r\n if (this.sdView?.templateRef) {\r\n if (!this.formControl.disabled && !this.isFocused) {\r\n this.focus();\r\n }\r\n }\r\n }\r\n\r\n blur = () => {\r\n this.input?.nativeElement?.blur();\r\n }\r\n\r\n focus = () => {\r\n this.isFocused = true;\r\n setTimeout(() => {\r\n this.autocompleteTrigger?.openPanel();\r\n this.input?.nativeElement?.focus();\r\n }, 100);\r\n }\r\n\r\n clear = ($event?: any) => {\r\n $event?.stopPropagation();\r\n this.inputControl?.setValue('');\r\n if (this.#model) {\r\n this.formControl.setValue(null);\r\n this.modelChange.emit(null);\r\n this.sdChange.emit(null);\r\n }\r\n }\r\n\r\n onAction = ($event: Event) => {\r\n $event?.stopPropagation();\r\n this.autocompleteTrigger?.closePanel();\r\n this.action.emit();\r\n }\r\n\r\n reValidate = () => {\r\n this.inputControl.updateValueAndValidity({ emitEvent: true });\r\n }\r\n\r\n #updateValidator = () => {\r\n this.formControl.clearValidators();\r\n this.formControl.clearAsyncValidators();\r\n const validators: ValidatorFn[] = [];\r\n // const asyncValidators: AsyncValidatorFn[] = [];\r\n if (this.isRequired) {\r\n validators.push(Validators.required);\r\n }\r\n // if (this.#validator) {\r\n // asyncValidators.push(this.#customValidator(this.#validator));\r\n // }\r\n this.formControl.setValidators(validators);\r\n // this.formControl.setAsyncValidators(asyncValidators);\r\n this.formControl.updateValueAndValidity();\r\n }\r\n}\r\n\r\ntype SearchFunc = (searchText?: string | number, isFormValue?: boolean) => Promise<any[]> | Observable<any[]>;","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { SdAutocomplete } from './autocomplete.component';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { SdAutocompleteDisplayDefDirective } from './autocomplete-display-def.directive';\r\nimport { SdCommonModule } from '@sd-angular/core/common';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatAutocompleteModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n SdTranslateModule,\r\n SdCommonModule\r\n ],\r\n declarations: [\r\n SdAutocomplete,\r\n SdAutocompleteDisplayDefDirective\r\n ],\r\n exports: [\r\n SdAutocomplete,\r\n SdAutocompleteDisplayDefDirective,\r\n SdCommonModule\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdAutocompleteModule {\r\n\r\n}\r\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _model, _delay, _name, _form, _itemsChanges, _subscription, _cache, _item;
|
|
1
|
+
var _model, _delay, _name, _form, _itemsChanges, _subscription, _cache, _item, _updateValidator;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
3
|
import { Component, Input, ViewChild, Output, EventEmitter, ChangeDetectorRef, ContentChild, ChangeDetectionStrategy } from '@angular/core';
|
|
4
4
|
import { startWith, switchMap, debounceTime, map, finalize } from 'rxjs/operators';
|
|
@@ -113,6 +113,21 @@ export class SdAutocomplete {
|
|
|
113
113
|
this.reValidate = () => {
|
|
114
114
|
this.inputControl.updateValueAndValidity({ emitEvent: true });
|
|
115
115
|
};
|
|
116
|
+
_updateValidator.set(this, () => {
|
|
117
|
+
this.formControl.clearValidators();
|
|
118
|
+
this.formControl.clearAsyncValidators();
|
|
119
|
+
const validators = [];
|
|
120
|
+
// const asyncValidators: AsyncValidatorFn[] = [];
|
|
121
|
+
if (this.isRequired) {
|
|
122
|
+
validators.push(Validators.required);
|
|
123
|
+
}
|
|
124
|
+
// if (this.#validator) {
|
|
125
|
+
// asyncValidators.push(this.#customValidator(this.#validator));
|
|
126
|
+
// }
|
|
127
|
+
this.formControl.setValidators(validators);
|
|
128
|
+
// this.formControl.setAsyncValidators(asyncValidators);
|
|
129
|
+
this.formControl.updateValueAndValidity();
|
|
130
|
+
});
|
|
116
131
|
}
|
|
117
132
|
set key(value) {
|
|
118
133
|
__classPrivateFieldSet(this, _cache, {});
|
|
@@ -164,12 +179,12 @@ export class SdAutocomplete {
|
|
|
164
179
|
}
|
|
165
180
|
set required(val) {
|
|
166
181
|
this.isRequired = (val === '') || val;
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
else {
|
|
171
|
-
|
|
172
|
-
}
|
|
182
|
+
__classPrivateFieldGet(this, _updateValidator).call(this);
|
|
183
|
+
// if (this.isRequired) {
|
|
184
|
+
// this.formControl.setValidators([Validators.required]);
|
|
185
|
+
// } else {
|
|
186
|
+
// this.formControl.clearValidators();
|
|
187
|
+
// }
|
|
173
188
|
}
|
|
174
189
|
set _disableErrorMessage(val) {
|
|
175
190
|
this.disableErrorMessage = (val === '') || val;
|
|
@@ -259,7 +274,7 @@ export class SdAutocomplete {
|
|
|
259
274
|
(_a = __classPrivateFieldGet(this, _form)) === null || _a === void 0 ? void 0 : _a.removeControl(__classPrivateFieldGet(this, _name));
|
|
260
275
|
}
|
|
261
276
|
}
|
|
262
|
-
_model = new WeakMap(), _delay = new WeakMap(), _name = new WeakMap(), _form = new WeakMap(), _itemsChanges = new WeakMap(), _subscription = new WeakMap(), _cache = new WeakMap(), _item = new WeakMap();
|
|
277
|
+
_model = new WeakMap(), _delay = new WeakMap(), _name = new WeakMap(), _form = new WeakMap(), _itemsChanges = new WeakMap(), _subscription = new WeakMap(), _cache = new WeakMap(), _item = new WeakMap(), _updateValidator = new WeakMap();
|
|
263
278
|
SdAutocomplete.decorators = [
|
|
264
279
|
{ type: Component, args: [{
|
|
265
280
|
selector: 'sd-autocomplete',
|
|
@@ -295,4 +310,4 @@ SdAutocomplete.propDecorators = {
|
|
|
295
310
|
input: [{ type: ViewChild, args: ['input',] }],
|
|
296
311
|
sdView: [{ type: ContentChild, args: [SdViewDefDirective,] }]
|
|
297
312
|
};
|
|
298
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvYXV0b2NvbXBsZXRlLyIsInNvdXJjZXMiOlsic3JjL2xpYi9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBSVosaUJBQWlCLEVBQ2pCLFlBQVksRUFDWix1QkFBdUIsRUFFeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQWUsTUFBTSxFQUFFLFVBQVUsRUFBaUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTVFLE1BQU0sK0JBQStCO0lBQ25DLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUksQ0FBQztJQUNqRCxZQUFZLENBQUMsT0FBMkIsRUFBRSxJQUF3Qzs7UUFDaEYsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7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S0FBSztvQkFHTCxLQUFLO29CQVlMLEtBQUs7b0JBS0wsS0FBSztxQ0FLTCxZQUFZLFNBQUMsaUNBQWlDO3lCQUM5QyxLQUFLO3FCQUNMLE1BQU07MEJBQ04sTUFBTTt1QkFDTixNQUFNO3VCQUdOLEtBQUs7dUJBV0wsS0FBSzttQ0FTTCxLQUFLLFNBQUMscUJBQXFCO29CQUszQixTQUFTLFNBQUMsT0FBTztxQkFDakIsWUFBWSxTQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgRWxlbWVudFJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBzdGFydFdpdGgsIHN3aXRjaE1hcCwgZGVib3VuY2VUaW1lLCBtYXAsIGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIE5nRm9ybSwgVmFsaWRhdG9ycywgRm9ybUdyb3VwRGlyZWN0aXZlLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGVmZXIsIGZyb20sIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRXJyb3JTdGF0ZU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgU2RBdXRvY29tcGxldGVEaXNwbGF5RGVmRGlyZWN0aXZlIH0gZnJvbSAnLi9hdXRvY29tcGxldGUtZGlzcGxheS1kZWYuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IFNkRm9ybUNvbnRyb2wsIFNkVmlld0RlZkRpcmVjdGl2ZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY29tbW9uJztcclxuXHJcbmNsYXNzIFNkQXV0b2NvbXBsZXRlRXJyb3RTdGF0ZU1hdGNoZXIgaW1wbGVtZW50cyBFcnJvclN0YXRlTWF0Y2hlciB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpIHsgfVxyXG4gIGlzRXJyb3JTdGF0ZShjb250cm9sOiBGb3JtQ29udHJvbCB8IG51bGwsIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGlzU3VibWl0dGVkID0gZm9ybSAmJiBmb3JtLnN1Ym1pdHRlZDtcclxuICAgIHJldHVybiAhISh0aGlzLmZvcm1Db250cm9sPy5pbnZhbGlkICYmICh0aGlzLmZvcm1Db250cm9sPy5kaXJ0eSB8fCB0aGlzLmZvcm1Db250cm9sPy50b3VjaGVkIHx8IGlzU3VibWl0dGVkKSk7XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWF1dG9jb21wbGV0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkQXV0b2NvbXBsZXRlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIHNldCBrZXkodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy4jY2FjaGUgPSB7fTtcclxuICAgIHRoaXMuI2l0ZW0gPSB7fTtcclxuICB9XHJcbiAgQFZpZXdDaGlsZChNYXRBdXRvY29tcGxldGVUcmlnZ2VyLCB7IHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSkgYXV0b2NvbXBsZXRlVHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcjtcclxuICBpZCA9IGBJJHt1dWlkLnY0KCl9YDtcclxuICAjbW9kZWw6IHN0cmluZyB8IG51bWJlcjtcclxuXHJcbiAgI2RlbGF5ID0gMDsgLy8gU2F1IGtob+G6o25nIHRo4budaSBnaWFuIGRlbGF5IG7hur91IGtow7RuZyBjw7MgdGhheSDEkeG7lWkgdGjDrCB0aMOsIG3hu5tpIGLhuq90IMSR4bqndSB0aOG7sWMgaGnhu4duIGfhu41pIGjDoG1cclxuICAjbmFtZSA9IHV1aWQudjQoKTtcclxuICBASW5wdXQoKSBzZXQgbmFtZSh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLiNuYW1lID0gdmFsO1xyXG4gICAgfVxyXG4gIH1cclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgaW5wdXRDb250cm9sID0gbmV3IFNkRm9ybUNvbnRyb2woKTtcclxuICBmb3JtQ29udHJvbCA9IG5ldyBTZEZvcm1Db250cm9sKCk7XHJcbiAgbWF0Y2hlciA9IG5ldyBTZEF1dG9jb21wbGV0ZUVycm90U3RhdGVNYXRjaGVyKHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbGcnO1xyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdmFsdWVGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gICNpdGVtc0NoYW5nZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdIHwgU2VhcmNoRnVuYz4oW10pO1xyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhpdGVtczogdW5kZWZpbmVkIHwgYW55W10gfCBTZWFyY2hGdW5jKSB7XHJcbiAgICBpZiAoIWl0ZW1zKSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KFtdKTtcclxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShpdGVtcykpIHtcclxuICAgICAgdGhpcy4jaXRlbXNDaGFuZ2VzLm5leHQoaXRlbXMuZmlsdGVyKGUgPT4gZSAhPT0gbnVsbCAmJiBlICE9PSB1bmRlZmluZWQpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KGl0ZW1zKTtcclxuICAgICAgdGhpcy4jZGVsYXkgPSA1MDA7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGxpbWl0ID0gMTAwO1xyXG5cclxuICBmaWx0ZXJlZEl0ZW1zOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBjb250cm9sUGxhY2VIb2xkZXI6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVtYmVyPjtcclxuICBjb250cm9sUGxhY2VIb2xkZXIyOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bWJlcj47XHJcbiAgQElucHV0KCkgc2V0IG1vZGVsKHZhbHVlOiB1bmRlZmluZWQgfCBudW1iZXIgfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuI21vZGVsID0gdmFsdWU7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoU2RBdXRvY29tcGxldGVEaXNwbGF5RGVmRGlyZWN0aXZlKSBhdXRvY29tcGxldGVEaXNwbGF5RGVmOiBTZEF1dG9jb21wbGV0ZURpc3BsYXlEZWZEaXJlY3RpdmU7XHJcbiAgQElucHV0KCkgYWN0aW9uSWNvbjogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLy8gT3B0aW9uYWxcclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlucHV0Q29udHJvbC5lbmFibGUoKTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGlzUmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXQgcmVxdWlyZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuaXNSZXF1aXJlZCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICBpZiAodGhpcy5pc1JlcXVpcmVkKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZGlzYWJsZUVycm9yTWVzc2FnZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnZGlzYWJsZUVycm9yTWVzc2FnZScpIHNldCBfZGlzYWJsZUVycm9yTWVzc2FnZSh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5kaXNhYmxlRXJyb3JNZXNzYWdlID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG4gICNzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dDogRWxlbWVudFJlZjtcclxuICBAQ29udGVudENoaWxkKFNkVmlld0RlZkRpcmVjdGl2ZSkgc2RWaWV3OiBTZFZpZXdEZWZEaXJlY3RpdmU7XHJcbiAgaXNGb2N1c2VkID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWQ6IE9ic2VydmFibGU8YW55PjtcclxuXHJcbiAgI2NhY2hlOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnlbXVxyXG4gIH0gPSB7fTtcclxuICAjaXRlbToge1xyXG4gICAgW2tleTogc3RyaW5nXTogYW55XHJcbiAgfSA9IHt9O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5mb3JtQ29udHJvbC5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfSkpO1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmlucHV0Q29udHJvbC5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gY29tYmluZUxhdGVzdChbXHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5hc09ic2VydmFibGUoKSxcclxuICAgICAgdGhpcy5pbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuI2RlbGF5KSldKS5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoW2l0ZW1zLCBzZWFyY2hUZXh0XSkgPT4ge1xyXG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQgfHwgJyc7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIChpdGVtcykgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy4jY2FjaGVbc2VhcmNoVGV4dF0uYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgICAgICAgICAgIGNvbnN0IGZ1bmMgPSBpdGVtcyhzZWFyY2hUZXh0LCBmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmIChmdW5jIGluc3RhbmNlb2YgUHJvbWlzZSkge1xyXG4gICAgICAgICAgICAgIG9icyA9IGRlZmVyKCgpID0+IGZyb20oZnVuYykpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG9icyA9IGZ1bmNcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICByZXR1cm4gb2JzLnBpcGUobWFwKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdID0gZGF0YSB8fCBbXTtcclxuICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuI2l0ZW0sIEFycmF5LnRvT2JqZWN0KHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdLCB0aGlzLnZhbHVlRmllbGQpKTtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy4jY2FjaGVbc2VhcmNoVGV4dF07XHJcbiAgICAgICAgICAgIH0pLCBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmcgPSBmYWxzZSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zXHJcbiAgICAgICAgICAgIC5zZWFyY2goc2VhcmNoVGV4dCwgW3RoaXMudmFsdWVGaWVsZCwgdGhpcy5kaXNwbGF5RmllbGRdKVxyXG4gICAgICAgICAgICAucGFnaW5nKHRoaXMubGltaXQpXHJcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpKV0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoW2l0ZW1zLCB2YWxdKSA9PiB7XHJcbiAgICAgICAgICAvLyBWw6wgbeG7mXQgc+G7kSBsw70gZG8gY2jGsGEgeMOhYyDEkeG7i25oIG3DoCBraGkgc+G7rSBk4bulbmcgc2RWaWV3RGVmIHRow6wga2hpIGNodXnhu4NuIHNhbmcgZOG6oW5nIHZpZXcgc+G6vSB0cmlnZ2VyIHZhbCA9IG51bGxcclxuICAgICAgICAgIC8vIE5oxrBuZyBmb3JtQ29udHJvbC52YWx1ZSB24bqrbiBjw7MgZ2nDoSB0cuG7iyDEkcO6bmcgbsOqbiB0aOG7sWMgaGnhu4duIGfDoW4gdmFsID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZTtcclxuICAgICAgICAgIHZhbCA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU7XHJcbiAgICAgICAgICBpZiAoIXRoaXMudmFsdWVGaWVsZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gb2YodmFsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh2YWwgfHwgdmFsID09PSAwKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgKGl0ZW1zKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLiNpdGVtW3ZhbF0pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvZih0aGlzLiNpdGVtW3ZhbF0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsZXQgb2JzOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICAgICAgICAgICAgICBjb25zdCBmdW5jID0gaXRlbXModmFsLCB0cnVlKTtcclxuICAgICAgICAgICAgICBpZiAoZnVuYyBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgICAgIG9icyA9IGRlZmVyKCgpID0+IGZyb20oZnVuYykpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBvYnMgPSBmdW5jO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gb2JzLnBpcGUobWFwKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLiNpdGVtLCBBcnJheS50b09iamVjdChkYXRhLCB0aGlzLnZhbHVlRmllbGQpKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLiNpdGVtW3ZhbF0gfHwge1xyXG4gICAgICAgICAgICAgICAgICBbdGhpcy52YWx1ZUZpZWxkXTogdmFsLFxyXG4gICAgICAgICAgICAgICAgICBbdGhpcy5kaXNwbGF5RmllbGRdOiB2YWxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBvZihpdGVtcy5maW5kKGUgPT4gZVt0aGlzLnZhbHVlRmllbGRdID09PSB2YWwpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBvZignJyk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIHRoaXMuY29udHJvbFBsYWNlSG9sZGVyID0gdGhpcy5zZWxlY3RlZC5waXBlKG1hcChpdGVtID0+IGl0ZW0/Llt0aGlzLmRpc3BsYXlGaWVsZF0gPz8gaXRlbSA/PyB0aGlzLnBsYWNlaG9sZGVyID8/IHRoaXMubGFiZWwgPz8gJycpKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuI2Zvcm0/LmFkZENvbnRyb2wodGhpcy4jbmFtZSwgdGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy4jZm9ybT8ucmVtb3ZlQ29udHJvbCh0aGlzLiNuYW1lKTtcclxuICB9XHJcbiAgb25TZWxlY3QgPSAoaXRlbTogYW55KSA9PiB7XHJcbiAgICBpZiAoaXRlbSkge1xyXG4gICAgICBpZiAodHlwZW9mIChpdGVtKSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIChpdGVtKSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICBpZiAodGhpcy5mb3JtQ29udHJvbC52YWx1ZSAhPT0gaXRlbSkge1xyXG4gICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShpdGVtKTtcclxuICAgICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdChpdGVtKTtcclxuICAgICAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy52YWx1ZUZpZWxkICYmIHRoaXMuZGlzcGxheUZpZWxkKSB7XHJcbiAgICAgICAgY29uc3QgdmFsID0gaXRlbT8uW3RoaXMudmFsdWVGaWVsZF0gfHwgbnVsbDtcclxuICAgICAgICBpZiAodGhpcy5mb3JtQ29udHJvbC52YWx1ZSAhPT0gdmFsKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbCk7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsKTtcclxuICAgICAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbnB1dENvbnRyb2wuc2V0VmFsdWUoJycsIHtcclxuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Gb2N1cyA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHRoaXMuaW5wdXRDb250cm9sLnNldFZhbHVlKCcnKTtcclxuICAgIC8vIHRoaXMuaW5wdXRDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIG9uQmx1ciA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbC5zZXRWYWx1ZSgnJywge1xyXG4gICAgICBlbWl0RXZlbnQ6IGZhbHNlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5zZFZpZXc/LnRlbXBsYXRlUmVmKSB7XHJcbiAgICAgIGlmICghdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlZCAmJiAhdGhpcy5pc0ZvY3VzZWQpIHtcclxuICAgICAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJsdXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5ibHVyKCk7XHJcbiAgfVxyXG5cclxuICBmb2N1cyA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXI/Lm9wZW5QYW5lbCgpO1xyXG4gICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcblxyXG4gIGNsZWFyID0gKCRldmVudD86IGFueSkgPT4ge1xyXG4gICAgJGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuaW5wdXRDb250cm9sPy5zZXRWYWx1ZSgnJyk7XHJcbiAgICBpZiAodGhpcy4jbW9kZWwpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkFjdGlvbiA9ICgkZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAkZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyPy5jbG9zZVBhbmVsKCk7XHJcbiAgICB0aGlzLmFjdGlvbi5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICByZVZhbGlkYXRlID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICB9XHJcbn1cclxuXHJcbnR5cGUgU2VhcmNoRnVuYyA9IChzZWFyY2hUZXh0Pzogc3RyaW5nIHwgbnVtYmVyLCBpc0Zvcm1WYWx1ZT86IGJvb2xlYW4pID0+IFByb21pc2U8YW55W10+IHwgT2JzZXJ2YWJsZTxhbnlbXT47Il19
|
|
313
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvYXV0b2NvbXBsZXRlLyIsInNvdXJjZXMiOlsic3JjL2xpYi9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBSVosaUJBQWlCLEVBQ2pCLFlBQVksRUFDWix1QkFBdUIsRUFFeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQWUsTUFBTSxFQUFFLFVBQVUsRUFBZ0UsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvSCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTVFLE1BQU0sK0JBQStCO0lBQ25DLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUksQ0FBQztJQUNqRCxZQUFZLENBQUMsT0FBMkIsRUFBRSxJQUF3Qzs7UUFDaEYsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7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QUVELFdBQVc7O1FBQ1QsNENBQW1CLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLG1GQUFZLGFBQWEsc0NBQWE7SUFDeEMsQ0FBQzs7OztZQW5NRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IseXBGQUE0QztnQkFFNUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7WUE1QkMsaUJBQWlCOzs7a0JBOEJoQixLQUFLO2tDQUlMLFNBQVMsU0FBQyxzQkFBc0IsRUFBRSxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRTttQkFNbEUsS0FBSzttQkFTTCxLQUFLO21CQUVMLEtBQUs7b0JBU0wsS0FBSzt5QkFDTCxLQUFLOzJCQUNMLEtBQUs7MEJBQ0wsS0FBSztvQkFHTCxLQUFLO29CQVlMLEtBQUs7b0JBS0wsS0FBSztxQ0FLTCxZQUFZLFNBQUMsaUNBQWlDO3lCQUM5QyxLQUFLO3FCQUNMLE1BQU07MEJBQ04sTUFBTTt1QkFDTixNQUFNO3VCQUdOLEtBQUs7dUJBV0wsS0FBSzttQ0FVTCxLQUFLLFNBQUMscUJBQXFCO29CQUszQixTQUFTLFNBQUMsT0FBTztxQkFDakIsWUFBWSxTQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgRWxlbWVudFJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBzdGFydFdpdGgsIHN3aXRjaE1hcCwgZGVib3VuY2VUaW1lLCBtYXAsIGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIE5nRm9ybSwgVmFsaWRhdG9ycywgRm9ybUdyb3VwRGlyZWN0aXZlLCBGb3JtR3JvdXAsIFZhbGlkYXRvckZuLCBBc3luY1ZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlZmVyLCBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IFNkQXV0b2NvbXBsZXRlRGlzcGxheURlZkRpcmVjdGl2ZSB9IGZyb20gJy4vYXV0b2NvbXBsZXRlLWRpc3BsYXktZGVmLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBTZEZvcm1Db250cm9sLCBTZFZpZXdEZWZEaXJlY3RpdmUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2NvbW1vbic7XHJcblxyXG5jbGFzcyBTZEF1dG9jb21wbGV0ZUVycm90U3RhdGVNYXRjaGVyIGltcGxlbWVudHMgRXJyb3JTdGF0ZU1hdGNoZXIge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKSB7IH1cclxuICBpc0Vycm9yU3RhdGUoY29udHJvbDogRm9ybUNvbnRyb2wgfCBudWxsLCBmb3JtOiBGb3JtR3JvdXBEaXJlY3RpdmUgfCBOZ0Zvcm0gfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBpc1N1Ym1pdHRlZCA9IGZvcm0gJiYgZm9ybS5zdWJtaXR0ZWQ7XHJcbiAgICByZXR1cm4gISEodGhpcy5mb3JtQ29udHJvbD8uaW52YWxpZCAmJiAodGhpcy5mb3JtQ29udHJvbD8uZGlydHkgfHwgdGhpcy5mb3JtQ29udHJvbD8udG91Y2hlZCB8fCBpc1N1Ym1pdHRlZCkpO1xyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZC1hdXRvY29tcGxldGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZEF1dG9jb21wbGV0ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBzZXQga2V5KHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuI2NhY2hlID0ge307XHJcbiAgICB0aGlzLiNpdGVtID0ge307XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciwgeyByZWFkOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0pIGF1dG9jb21wbGV0ZVRyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XHJcbiAgaWQgPSBgSSR7dXVpZC52NCgpfWA7XHJcbiAgI21vZGVsOiBzdHJpbmcgfCBudW1iZXI7XHJcblxyXG4gICNkZWxheSA9IDA7IC8vIFNhdSBraG/huqNuZyB0aOG7nWkgZ2lhbiBkZWxheSBu4bq/dSBraMO0bmcgY8OzIHRoYXkgxJHhu5VpIHRow6wgdGjDrCBt4bubaSBi4bqvdCDEkeG6p3UgdGjhu7FjIGhp4buHbiBn4buNaSBow6BtXHJcbiAgI25hbWUgPSB1dWlkLnY0KCk7XHJcbiAgQElucHV0KCkgc2V0IG5hbWUodmFsOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy4jbmFtZSA9IHZhbDtcclxuICAgIH1cclxuICB9XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIGlucHV0Q29udHJvbCA9IG5ldyBTZEZvcm1Db250cm9sKCk7XHJcbiAgZm9ybUNvbnRyb2wgPSBuZXcgU2RGb3JtQ29udHJvbCgpO1xyXG4gIG1hdGNoZXIgPSBuZXcgU2RBdXRvY29tcGxldGVFcnJvdFN0YXRlTWF0Y2hlcih0aGlzLmZvcm1Db250cm9sKTtcclxuICBASW5wdXQoKSBzaXplOiAnc20nIHwgJ2xnJztcclxuICAjZm9ybTogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIHNldCBmb3JtKHZhbDogTmdGb3JtIHwgRm9ybUdyb3VwKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIGlmICh2YWwgaW5zdGFuY2VvZiBOZ0Zvcm0pIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsLmZvcm07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHZhbHVlRmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBkaXNwbGF5RmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG5cclxuICAjaXRlbXNDaGFuZ2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXSB8IFNlYXJjaEZ1bmM+KFtdKTtcclxuICBASW5wdXQoKSBzZXQgaXRlbXMoaXRlbXM6IHVuZGVmaW5lZCB8IGFueVtdIHwgU2VhcmNoRnVuYykge1xyXG4gICAgaWYgKCFpdGVtcykge1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMubmV4dChbXSk7XHJcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoaXRlbXMpKSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KGl0ZW1zLmZpbHRlcihlID0+IGUgIT09IG51bGwgJiYgZSAhPT0gdW5kZWZpbmVkKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMubmV4dChpdGVtcyk7XHJcbiAgICAgIHRoaXMuI2RlbGF5ID0gNTAwO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBsaW1pdCA9IDEwMDtcclxuXHJcbiAgZmlsdGVyZWRJdGVtczogT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgY29udHJvbFBsYWNlSG9sZGVyOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bWJlcj47XHJcbiAgY29udHJvbFBsYWNlSG9sZGVyMjogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gIEBJbnB1dCgpIHNldCBtb2RlbCh2YWx1ZTogdW5kZWZpbmVkIHwgbnVtYmVyIHwgc3RyaW5nKSB7XHJcbiAgICB0aGlzLiNtb2RlbCA9IHZhbHVlO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBAQ29udGVudENoaWxkKFNkQXV0b2NvbXBsZXRlRGlzcGxheURlZkRpcmVjdGl2ZSkgYXV0b2NvbXBsZXRlRGlzcGxheURlZjogU2RBdXRvY29tcGxldGVEaXNwbGF5RGVmRGlyZWN0aXZlO1xyXG4gIEBJbnB1dCgpIGFjdGlvbkljb246IHN0cmluZztcclxuICBAT3V0cHV0KCkgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8vIE9wdGlvbmFsXHJcbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB2YWwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLmlucHV0Q29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbnB1dENvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBpc1JlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2V0IHJlcXVpcmVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmlzUmVxdWlyZWQgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgICAvLyBpZiAodGhpcy5pc1JlcXVpcmVkKSB7XHJcbiAgICAvLyAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xyXG4gICAgLy8gfSBlbHNlIHtcclxuICAgIC8vICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIC8vIH1cclxuICB9XHJcbiAgZGlzYWJsZUVycm9yTWVzc2FnZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnZGlzYWJsZUVycm9yTWVzc2FnZScpIHNldCBfZGlzYWJsZUVycm9yTWVzc2FnZSh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5kaXNhYmxlRXJyb3JNZXNzYWdlID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG4gICNzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dDogRWxlbWVudFJlZjtcclxuICBAQ29udGVudENoaWxkKFNkVmlld0RlZkRpcmVjdGl2ZSkgc2RWaWV3OiBTZFZpZXdEZWZEaXJlY3RpdmU7XHJcbiAgaXNGb2N1c2VkID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWQ6IE9ic2VydmFibGU8YW55PjtcclxuXHJcbiAgI2NhY2hlOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnlbXVxyXG4gIH0gPSB7fTtcclxuICAjaXRlbToge1xyXG4gICAgW2tleTogc3RyaW5nXTogYW55XHJcbiAgfSA9IHt9O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5mb3JtQ29udHJvbC5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfSkpO1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmlucHV0Q29udHJvbC5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gY29tYmluZUxhdGVzdChbXHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5hc09ic2VydmFibGUoKSxcclxuICAgICAgdGhpcy5pbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuI2RlbGF5KSldKS5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoW2l0ZW1zLCBzZWFyY2hUZXh0XSkgPT4ge1xyXG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQgfHwgJyc7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIChpdGVtcykgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy4jY2FjaGVbc2VhcmNoVGV4dF0uYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgICAgICAgICAgIGNvbnN0IGZ1bmMgPSBpdGVtcyhzZWFyY2hUZXh0LCBmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmIChmdW5jIGluc3RhbmNlb2YgUHJvbWlzZSkge1xyXG4gICAgICAgICAgICAgIG9icyA9IGRlZmVyKCgpID0+IGZyb20oZnVuYykpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG9icyA9IGZ1bmNcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICByZXR1cm4gb2JzLnBpcGUobWFwKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdID0gZGF0YSB8fCBbXTtcclxuICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuI2l0ZW0sIEFycmF5LnRvT2JqZWN0KHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdLCB0aGlzLnZhbHVlRmllbGQpKTtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy4jY2FjaGVbc2VhcmNoVGV4dF07XHJcbiAgICAgICAgICAgIH0pLCBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmcgPSBmYWxzZSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zXHJcbiAgICAgICAgICAgIC5zZWFyY2goc2VhcmNoVGV4dCwgW3RoaXMudmFsdWVGaWVsZCwgdGhpcy5kaXNwbGF5RmllbGRdKVxyXG4gICAgICAgICAgICAucGFnaW5nKHRoaXMubGltaXQpXHJcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpKV0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoW2l0ZW1zLCB2YWxdKSA9PiB7XHJcbiAgICAgICAgICAvLyBWw6wgbeG7mXQgc+G7kSBsw70gZG8gY2jGsGEgeMOhYyDEkeG7i25oIG3DoCBraGkgc+G7rSBk4bulbmcgc2RWaWV3RGVmIHRow6wga2hpIGNodXnhu4NuIHNhbmcgZOG6oW5nIHZpZXcgc+G6vSB0cmlnZ2VyIHZhbCA9IG51bGxcclxuICAgICAgICAgIC8vIE5oxrBuZyBmb3JtQ29udHJvbC52YWx1ZSB24bqrbiBjw7MgZ2nDoSB0cuG7iyDEkcO6bmcgbsOqbiB0aOG7sWMgaGnhu4duIGfDoW4gdmFsID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZTtcclxuICAgICAgICAgIHZhbCA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU7XHJcbiAgICAgICAgICBpZiAoIXRoaXMudmFsdWVGaWVsZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gb2YodmFsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh2YWwgfHwgdmFsID09PSAwKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgKGl0ZW1zKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLiNpdGVtW3ZhbF0pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvZih0aGlzLiNpdGVtW3ZhbF0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsZXQgb2JzOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICAgICAgICAgICAgICBjb25zdCBmdW5jID0gaXRlbXModmFsLCB0cnVlKTtcclxuICAgICAgICAgICAgICBpZiAoZnVuYyBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgICAgIG9icyA9IGRlZmVyKCgpID0+IGZyb20oZnVuYykpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBvYnMgPSBmdW5jO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gb2JzLnBpcGUobWFwKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLiNpdGVtLCBBcnJheS50b09iamVjdChkYXRhLCB0aGlzLnZhbHVlRmllbGQpKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLiNpdGVtW3ZhbF0gfHwge1xyXG4gICAgICAgICAgICAgICAgICBbdGhpcy52YWx1ZUZpZWxkXTogdmFsLFxyXG4gICAgICAgICAgICAgICAgICBbdGhpcy5kaXNwbGF5RmllbGRdOiB2YWxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBvZihpdGVtcy5maW5kKGUgPT4gZVt0aGlzLnZhbHVlRmllbGRdID09PSB2YWwpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBvZignJyk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIHRoaXMuY29udHJvbFBsYWNlSG9sZGVyID0gdGhpcy5zZWxlY3RlZC5waXBlKG1hcChpdGVtID0+IGl0ZW0/Llt0aGlzLmRpc3BsYXlGaWVsZF0gPz8gaXRlbSA/PyB0aGlzLnBsYWNlaG9sZGVyID8/IHRoaXMubGFiZWwgPz8gJycpKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuI2Zvcm0/LmFkZENvbnRyb2wodGhpcy4jbmFtZSwgdGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy4jZm9ybT8ucmVtb3ZlQ29udHJvbCh0aGlzLiNuYW1lKTtcclxuICB9XHJcbiAgb25TZWxlY3QgPSAoaXRlbTogYW55KSA9PiB7XHJcbiAgICBpZiAoaXRlbSkge1xyXG4gICAgICBpZiAodHlwZW9mIChpdGVtKSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIChpdGVtKSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICBpZiAodGhpcy5mb3JtQ29udHJvbC52YWx1ZSAhPT0gaXRlbSkge1xyXG4gICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShpdGVtKTtcclxuICAgICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdChpdGVtKTtcclxuICAgICAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy52YWx1ZUZpZWxkICYmIHRoaXMuZGlzcGxheUZpZWxkKSB7XHJcbiAgICAgICAgY29uc3QgdmFsID0gaXRlbT8uW3RoaXMudmFsdWVGaWVsZF0gfHwgbnVsbDtcclxuICAgICAgICBpZiAodGhpcy5mb3JtQ29udHJvbC52YWx1ZSAhPT0gdmFsKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbCk7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsKTtcclxuICAgICAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbnB1dENvbnRyb2wuc2V0VmFsdWUoJycsIHtcclxuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Gb2N1cyA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHRoaXMuaW5wdXRDb250cm9sLnNldFZhbHVlKCcnKTtcclxuICAgIC8vIHRoaXMuaW5wdXRDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIG9uQmx1ciA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbC5zZXRWYWx1ZSgnJywge1xyXG4gICAgICBlbWl0RXZlbnQ6IGZhbHNlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5zZFZpZXc/LnRlbXBsYXRlUmVmKSB7XHJcbiAgICAgIGlmICghdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlZCAmJiAhdGhpcy5pc0ZvY3VzZWQpIHtcclxuICAgICAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJsdXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5ibHVyKCk7XHJcbiAgfVxyXG5cclxuICBmb2N1cyA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXI/Lm9wZW5QYW5lbCgpO1xyXG4gICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcblxyXG4gIGNsZWFyID0gKCRldmVudD86IGFueSkgPT4ge1xyXG4gICAgJGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuaW5wdXRDb250cm9sPy5zZXRWYWx1ZSgnJyk7XHJcbiAgICBpZiAodGhpcy4jbW9kZWwpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkFjdGlvbiA9ICgkZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAkZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyPy5jbG9zZVBhbmVsKCk7XHJcbiAgICB0aGlzLmFjdGlvbi5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICByZVZhbGlkYXRlID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICB9XHJcblxyXG4gICN1cGRhdGVWYWxpZGF0b3IgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhckFzeW5jVmFsaWRhdG9ycygpO1xyXG4gICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgLy8gY29uc3QgYXN5bmNWYWxpZGF0b3JzOiBBc3luY1ZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIGlmICh0aGlzLmlzUmVxdWlyZWQpIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfVxyXG4gICAgLy8gaWYgKHRoaXMuI3ZhbGlkYXRvcikge1xyXG4gICAgLy8gICBhc3luY1ZhbGlkYXRvcnMucHVzaCh0aGlzLiNjdXN0b21WYWxpZGF0b3IodGhpcy4jdmFsaWRhdG9yKSk7XHJcbiAgICAvLyB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcbiAgICAvLyB0aGlzLmZvcm1Db250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyhhc3luY1ZhbGlkYXRvcnMpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG59XHJcblxyXG50eXBlIFNlYXJjaEZ1bmMgPSAoc2VhcmNoVGV4dD86IHN0cmluZyB8IG51bWJlciwgaXNGb3JtVmFsdWU/OiBib29sZWFuKSA9PiBQcm9taXNlPGFueVtdPiB8IE9ic2VydmFibGU8YW55W10+OyJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Directive, TemplateRef, EventEmitter, Component, ChangeDetectionStrategy, ChangeDetectorRef, Input, ViewChild, ContentChild, Output, NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import {
|
|
3
|
+
import { Validators, NgForm, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
4
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
5
5
|
import { MatInputModule } from '@angular/material/input';
|
|
6
6
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from 'tslib';
|
|
@@ -28,7 +28,7 @@ SdAutocompleteDisplayDefDirective.ctorParameters = () => [
|
|
|
28
28
|
{ type: TemplateRef }
|
|
29
29
|
];
|
|
30
30
|
|
|
31
|
-
var _model, _delay, _name, _form, _itemsChanges, _subscription, _cache, _item;
|
|
31
|
+
var _model, _delay, _name, _form, _itemsChanges, _subscription, _cache, _item, _updateValidator;
|
|
32
32
|
class SdAutocompleteErrotStateMatcher {
|
|
33
33
|
constructor(formControl) {
|
|
34
34
|
this.formControl = formControl;
|
|
@@ -134,6 +134,21 @@ class SdAutocomplete {
|
|
|
134
134
|
this.reValidate = () => {
|
|
135
135
|
this.inputControl.updateValueAndValidity({ emitEvent: true });
|
|
136
136
|
};
|
|
137
|
+
_updateValidator.set(this, () => {
|
|
138
|
+
this.formControl.clearValidators();
|
|
139
|
+
this.formControl.clearAsyncValidators();
|
|
140
|
+
const validators = [];
|
|
141
|
+
// const asyncValidators: AsyncValidatorFn[] = [];
|
|
142
|
+
if (this.isRequired) {
|
|
143
|
+
validators.push(Validators.required);
|
|
144
|
+
}
|
|
145
|
+
// if (this.#validator) {
|
|
146
|
+
// asyncValidators.push(this.#customValidator(this.#validator));
|
|
147
|
+
// }
|
|
148
|
+
this.formControl.setValidators(validators);
|
|
149
|
+
// this.formControl.setAsyncValidators(asyncValidators);
|
|
150
|
+
this.formControl.updateValueAndValidity();
|
|
151
|
+
});
|
|
137
152
|
}
|
|
138
153
|
set key(value) {
|
|
139
154
|
__classPrivateFieldSet(this, _cache, {});
|
|
@@ -185,12 +200,12 @@ class SdAutocomplete {
|
|
|
185
200
|
}
|
|
186
201
|
set required(val) {
|
|
187
202
|
this.isRequired = (val === '') || val;
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
else {
|
|
192
|
-
|
|
193
|
-
}
|
|
203
|
+
__classPrivateFieldGet(this, _updateValidator).call(this);
|
|
204
|
+
// if (this.isRequired) {
|
|
205
|
+
// this.formControl.setValidators([Validators.required]);
|
|
206
|
+
// } else {
|
|
207
|
+
// this.formControl.clearValidators();
|
|
208
|
+
// }
|
|
194
209
|
}
|
|
195
210
|
set _disableErrorMessage(val) {
|
|
196
211
|
this.disableErrorMessage = (val === '') || val;
|
|
@@ -280,7 +295,7 @@ class SdAutocomplete {
|
|
|
280
295
|
(_a = __classPrivateFieldGet(this, _form)) === null || _a === void 0 ? void 0 : _a.removeControl(__classPrivateFieldGet(this, _name));
|
|
281
296
|
}
|
|
282
297
|
}
|
|
283
|
-
_model = new WeakMap(), _delay = new WeakMap(), _name = new WeakMap(), _form = new WeakMap(), _itemsChanges = new WeakMap(), _subscription = new WeakMap(), _cache = new WeakMap(), _item = new WeakMap();
|
|
298
|
+
_model = new WeakMap(), _delay = new WeakMap(), _name = new WeakMap(), _form = new WeakMap(), _itemsChanges = new WeakMap(), _subscription = new WeakMap(), _cache = new WeakMap(), _item = new WeakMap(), _updateValidator = new WeakMap();
|
|
284
299
|
SdAutocomplete.decorators = [
|
|
285
300
|
{ type: Component, args: [{
|
|
286
301
|
selector: 'sd-autocomplete',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core-autocomplete.js","sources":["../../../../projects/sd-core/autocomplete/src/lib/autocomplete-display-def.directive.ts","../../../../projects/sd-core/autocomplete/src/lib/autocomplete.component.ts","../../../../projects/sd-core/autocomplete/src/lib/autocomplete.module.ts","../../../../projects/sd-core/autocomplete/src/public-api.ts","../../../../projects/sd-core/autocomplete/sd-angular-core-autocomplete.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdAutocompleteDisplayDef]'\r\n})\r\nexport class SdAutocompleteDisplayDefDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ViewChild,\r\n Output,\r\n EventEmitter,\r\n OnInit,\r\n OnDestroy,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ContentChild,\r\n ChangeDetectionStrategy,\r\n ElementRef\r\n} from '@angular/core';\r\nimport { startWith, switchMap, debounceTime, map, finalize } from 'rxjs/operators';\r\n\r\nimport * as uuid from 'uuid';\r\nimport { FormControl, NgForm, Validators, FormGroupDirective, FormGroup } from '@angular/forms';\r\nimport { BehaviorSubject, combineLatest, defer, from, Observable, of, Subscription } from 'rxjs';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { SdAutocompleteDisplayDefDirective } from './autocomplete-display-def.directive';\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { SdFormControl, SdViewDefDirective } from '@sd-angular/core/common';\r\n\r\nclass SdAutocompleteErrotStateMatcher implements ErrorStateMatcher {\r\n constructor(private formControl: FormControl) { }\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n const isSubmitted = form && form.submitted;\r\n return !!(this.formControl?.invalid && (this.formControl?.dirty || this.formControl?.touched || isSubmitted));\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'sd-autocomplete',\r\n templateUrl: './autocomplete.component.html',\r\n styleUrls: ['./autocomplete.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdAutocomplete implements OnInit, OnDestroy, AfterViewInit {\r\n @Input() set key(value: any) {\r\n this.#cache = {};\r\n this.#item = {};\r\n }\r\n @ViewChild(MatAutocompleteTrigger, { read: MatAutocompleteTrigger }) autocompleteTrigger: MatAutocompleteTrigger;\r\n id = `I${uuid.v4()}`;\r\n #model: string | number;\r\n\r\n #delay = 0; // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện gọi hàm\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n loading = false;\r\n inputControl = new SdFormControl();\r\n formControl = new SdFormControl();\r\n matcher = new SdAutocompleteErrotStateMatcher(this.formControl);\r\n @Input() size: 'sm' | 'lg';\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n @Input() label: string;\r\n @Input() valueField: string;\r\n @Input() displayField: string;\r\n @Input() placeholder: string;\r\n\r\n #itemsChanges = new BehaviorSubject<any[] | SearchFunc>([]);\r\n @Input() set items(items: undefined | any[] | SearchFunc) {\r\n if (!items) {\r\n this.#itemsChanges.next([]);\r\n } else if (Array.isArray(items)) {\r\n this.#itemsChanges.next(items.filter(e => e !== null && e !== undefined));\r\n } else {\r\n this.#itemsChanges.next(items);\r\n this.#delay = 500;\r\n }\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n @Input() limit = 100;\r\n\r\n filteredItems: Observable<any[]>;\r\n controlPlaceHolder: Observable<string | number>;\r\n controlPlaceHolder2: Observable<string | number>;\r\n @Input() set model(value: undefined | number | string) {\r\n this.#model = value;\r\n this.formControl.setValue(value);\r\n }\r\n\r\n @ContentChild(SdAutocompleteDisplayDefDirective) autocompleteDisplayDef: SdAutocompleteDisplayDefDirective;\r\n @Input() actionIcon: string;\r\n @Output() action = new EventEmitter();\r\n @Output() modelChange = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n\r\n // Optional\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.inputControl.disable();\r\n this.formControl.disable();\r\n } else {\r\n this.inputControl.enable();\r\n this.formControl.disable();\r\n }\r\n }\r\n isRequired = false;\r\n @Input() set required(val: boolean | '') {\r\n this.isRequired = (val === '') || val;\r\n if (this.isRequired) {\r\n this.formControl.setValidators([Validators.required]);\r\n } else {\r\n this.formControl.clearValidators();\r\n }\r\n }\r\n disableErrorMessage = false;\r\n @Input('disableErrorMessage') set _disableErrorMessage(val: boolean | '') {\r\n this.disableErrorMessage = (val === '') || val;\r\n val = (val === '') || val;\r\n }\r\n #subscription = new Subscription();\r\n @ViewChild('input') input: ElementRef;\r\n @ContentChild(SdViewDefDirective) sdView: SdViewDefDirective;\r\n isFocused = false;\r\n selected: Observable<any>;\r\n\r\n #cache: {\r\n [key: string]: any[]\r\n } = {};\r\n #item: {\r\n [key: string]: any\r\n } = {};\r\n constructor(\r\n private ref: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.#subscription.add(this.formControl.changes.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n this.#subscription.add(this.inputControl.changes.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n this.filteredItems = combineLatest([\r\n this.#itemsChanges.asObservable(),\r\n this.inputControl.valueChanges.pipe(debounceTime(this.#delay))]).pipe(\r\n switchMap(([items, searchText]) => {\r\n searchText = searchText || '';\r\n if (typeof (items) === 'function') {\r\n if (this.#cache[searchText] !== undefined) {\r\n return this.#cache[searchText].asObservable();\r\n }\r\n let obs: Observable<any[]>;\r\n const func = items(searchText, false);\r\n if (func instanceof Promise) {\r\n obs = defer(() => from(func));\r\n } else {\r\n obs = func\r\n }\r\n this.loading = true;\r\n return obs.pipe(map(data => {\r\n this.#cache[searchText] = data || [];\r\n Object.assign(this.#item, Array.toObject(this.#cache[searchText], this.valueField));\r\n return this.#cache[searchText];\r\n }), finalize(() => this.loading = false));\r\n }\r\n return items\r\n .search(searchText, [this.valueField, this.displayField])\r\n .paging(this.limit)\r\n .asObservable();\r\n })\r\n );\r\n this.selected = combineLatest([\r\n this.#itemsChanges.asObservable(),\r\n this.formControl.valueChanges.pipe(startWith(this.formControl.value))])\r\n .pipe(\r\n switchMap(([items, val]) => {\r\n // Vì một số lý do chưa xác định mà khi sử dụng sdViewDef thì khi chuyển sang dạng view sẽ trigger val = null\r\n // Nhưng formControl.value vẫn có giá trị đúng nên thực hiện gán val = this.formControl.value;\r\n val = this.formControl.value;\r\n if (!this.valueField) {\r\n return of(val);\r\n }\r\n if (val || val === 0) {\r\n if (typeof (items) === 'function') {\r\n if (this.#item[val]) {\r\n return of(this.#item[val]);\r\n }\r\n let obs: Observable<any[]>;\r\n const func = items(val, true);\r\n if (func instanceof Promise) {\r\n obs = defer(() => from(func));\r\n } else {\r\n obs = func;\r\n }\r\n return obs.pipe(map(data => {\r\n Object.assign(this.#item, Array.toObject(data, this.valueField));\r\n return this.#item[val] || {\r\n [this.valueField]: val,\r\n [this.displayField]: val\r\n };\r\n }));\r\n }\r\n return of(items.find(e => e[this.valueField] === val));\r\n }\r\n return of('');\r\n })\r\n );\r\n this.controlPlaceHolder = this.selected.pipe(map(item => item?.[this.displayField] ?? item ?? this.placeholder ?? this.label ?? ''));\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#form?.addControl(this.#name, this.formControl);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#subscription.unsubscribe();\r\n this.#form?.removeControl(this.#name);\r\n }\r\n onSelect = (item: any) => {\r\n if (item) {\r\n if (typeof (item) === 'string' || typeof (item) === 'number') {\r\n if (this.formControl.value !== item) {\r\n this.formControl.setValue(item);\r\n this.modelChange.emit(item);\r\n this.sdChange.emit(item);\r\n }\r\n } else if (this.valueField && this.displayField) {\r\n const val = item?.[this.valueField] || null;\r\n if (this.formControl.value !== val) {\r\n this.formControl.setValue(val);\r\n this.modelChange.emit(val);\r\n this.sdChange.emit(item);\r\n }\r\n }\r\n this.inputControl.setValue('', {\r\n emitEvent: false\r\n });\r\n }\r\n }\r\n\r\n onFocus = () => {\r\n this.isFocused = true;\r\n this.inputControl.setValue('');\r\n // this.inputControl.updateValueAndValidity();\r\n }\r\n\r\n onBlur = () => {\r\n this.isFocused = false;\r\n this.inputControl.setValue('', {\r\n emitEvent: false\r\n });\r\n }\r\n\r\n onClick = () => {\r\n if (this.sdView?.templateRef) {\r\n if (!this.formControl.disabled && !this.isFocused) {\r\n this.focus();\r\n }\r\n }\r\n }\r\n\r\n blur = () => {\r\n this.input?.nativeElement?.blur();\r\n }\r\n\r\n focus = () => {\r\n this.isFocused = true;\r\n setTimeout(() => {\r\n this.autocompleteTrigger?.openPanel();\r\n this.input?.nativeElement?.focus();\r\n }, 100);\r\n }\r\n\r\n clear = ($event?: any) => {\r\n $event?.stopPropagation();\r\n this.inputControl?.setValue('');\r\n if (this.#model) {\r\n this.formControl.setValue(null);\r\n this.modelChange.emit(null);\r\n this.sdChange.emit(null);\r\n }\r\n }\r\n\r\n onAction = ($event: Event) => {\r\n $event?.stopPropagation();\r\n this.autocompleteTrigger?.closePanel();\r\n this.action.emit();\r\n }\r\n\r\n reValidate = () => {\r\n this.inputControl.updateValueAndValidity({ emitEvent: true });\r\n }\r\n}\r\n\r\ntype SearchFunc = (searchText?: string | number, isFormValue?: boolean) => Promise<any[]> | Observable<any[]>;","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { SdAutocomplete } from './autocomplete.component';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { SdAutocompleteDisplayDefDirective } from './autocomplete-display-def.directive';\r\nimport { SdCommonModule } from '@sd-angular/core/common';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatAutocompleteModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n SdTranslateModule,\r\n SdCommonModule\r\n ],\r\n declarations: [\r\n SdAutocomplete,\r\n SdAutocompleteDisplayDefDirective\r\n ],\r\n exports: [\r\n SdAutocomplete,\r\n SdAutocompleteDisplayDefDirective,\r\n SdCommonModule\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdAutocompleteModule {\r\n\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/autocomplete.module';\r\nexport * from './lib/autocomplete.component';\r\nexport * from './lib/autocomplete-display-def.directive';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uuid.v4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sd-angular-core-autocomplete.js","sources":["../../../../projects/sd-core/autocomplete/src/lib/autocomplete-display-def.directive.ts","../../../../projects/sd-core/autocomplete/src/lib/autocomplete.component.ts","../../../../projects/sd-core/autocomplete/src/lib/autocomplete.module.ts","../../../../projects/sd-core/autocomplete/src/public-api.ts","../../../../projects/sd-core/autocomplete/sd-angular-core-autocomplete.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdAutocompleteDisplayDef]'\r\n})\r\nexport class SdAutocompleteDisplayDefDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ViewChild,\r\n Output,\r\n EventEmitter,\r\n OnInit,\r\n OnDestroy,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ContentChild,\r\n ChangeDetectionStrategy,\r\n ElementRef\r\n} from '@angular/core';\r\nimport { startWith, switchMap, debounceTime, map, finalize } from 'rxjs/operators';\r\n\r\nimport * as uuid from 'uuid';\r\nimport { FormControl, NgForm, Validators, FormGroupDirective, FormGroup, ValidatorFn, AsyncValidatorFn } from '@angular/forms';\r\nimport { BehaviorSubject, combineLatest, defer, from, Observable, of, Subscription } from 'rxjs';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { SdAutocompleteDisplayDefDirective } from './autocomplete-display-def.directive';\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { SdFormControl, SdViewDefDirective } from '@sd-angular/core/common';\r\n\r\nclass SdAutocompleteErrotStateMatcher implements ErrorStateMatcher {\r\n constructor(private formControl: FormControl) { }\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n const isSubmitted = form && form.submitted;\r\n return !!(this.formControl?.invalid && (this.formControl?.dirty || this.formControl?.touched || isSubmitted));\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'sd-autocomplete',\r\n templateUrl: './autocomplete.component.html',\r\n styleUrls: ['./autocomplete.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdAutocomplete implements OnInit, OnDestroy, AfterViewInit {\r\n @Input() set key(value: any) {\r\n this.#cache = {};\r\n this.#item = {};\r\n }\r\n @ViewChild(MatAutocompleteTrigger, { read: MatAutocompleteTrigger }) autocompleteTrigger: MatAutocompleteTrigger;\r\n id = `I${uuid.v4()}`;\r\n #model: string | number;\r\n\r\n #delay = 0; // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện gọi hàm\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n loading = false;\r\n inputControl = new SdFormControl();\r\n formControl = new SdFormControl();\r\n matcher = new SdAutocompleteErrotStateMatcher(this.formControl);\r\n @Input() size: 'sm' | 'lg';\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n @Input() label: string;\r\n @Input() valueField: string;\r\n @Input() displayField: string;\r\n @Input() placeholder: string;\r\n\r\n #itemsChanges = new BehaviorSubject<any[] | SearchFunc>([]);\r\n @Input() set items(items: undefined | any[] | SearchFunc) {\r\n if (!items) {\r\n this.#itemsChanges.next([]);\r\n } else if (Array.isArray(items)) {\r\n this.#itemsChanges.next(items.filter(e => e !== null && e !== undefined));\r\n } else {\r\n this.#itemsChanges.next(items);\r\n this.#delay = 500;\r\n }\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n @Input() limit = 100;\r\n\r\n filteredItems: Observable<any[]>;\r\n controlPlaceHolder: Observable<string | number>;\r\n controlPlaceHolder2: Observable<string | number>;\r\n @Input() set model(value: undefined | number | string) {\r\n this.#model = value;\r\n this.formControl.setValue(value);\r\n }\r\n\r\n @ContentChild(SdAutocompleteDisplayDefDirective) autocompleteDisplayDef: SdAutocompleteDisplayDefDirective;\r\n @Input() actionIcon: string;\r\n @Output() action = new EventEmitter();\r\n @Output() modelChange = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n\r\n // Optional\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.inputControl.disable();\r\n this.formControl.disable();\r\n } else {\r\n this.inputControl.enable();\r\n this.formControl.disable();\r\n }\r\n }\r\n isRequired = false;\r\n @Input() set required(val: boolean | '') {\r\n this.isRequired = (val === '') || val;\r\n this.#updateValidator();\r\n // if (this.isRequired) {\r\n // this.formControl.setValidators([Validators.required]);\r\n // } else {\r\n // this.formControl.clearValidators();\r\n // }\r\n }\r\n disableErrorMessage = false;\r\n @Input('disableErrorMessage') set _disableErrorMessage(val: boolean | '') {\r\n this.disableErrorMessage = (val === '') || val;\r\n val = (val === '') || val;\r\n }\r\n #subscription = new Subscription();\r\n @ViewChild('input') input: ElementRef;\r\n @ContentChild(SdViewDefDirective) sdView: SdViewDefDirective;\r\n isFocused = false;\r\n selected: Observable<any>;\r\n\r\n #cache: {\r\n [key: string]: any[]\r\n } = {};\r\n #item: {\r\n [key: string]: any\r\n } = {};\r\n constructor(\r\n private ref: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.#subscription.add(this.formControl.changes.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n this.#subscription.add(this.inputControl.changes.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n this.filteredItems = combineLatest([\r\n this.#itemsChanges.asObservable(),\r\n this.inputControl.valueChanges.pipe(debounceTime(this.#delay))]).pipe(\r\n switchMap(([items, searchText]) => {\r\n searchText = searchText || '';\r\n if (typeof (items) === 'function') {\r\n if (this.#cache[searchText] !== undefined) {\r\n return this.#cache[searchText].asObservable();\r\n }\r\n let obs: Observable<any[]>;\r\n const func = items(searchText, false);\r\n if (func instanceof Promise) {\r\n obs = defer(() => from(func));\r\n } else {\r\n obs = func\r\n }\r\n this.loading = true;\r\n return obs.pipe(map(data => {\r\n this.#cache[searchText] = data || [];\r\n Object.assign(this.#item, Array.toObject(this.#cache[searchText], this.valueField));\r\n return this.#cache[searchText];\r\n }), finalize(() => this.loading = false));\r\n }\r\n return items\r\n .search(searchText, [this.valueField, this.displayField])\r\n .paging(this.limit)\r\n .asObservable();\r\n })\r\n );\r\n this.selected = combineLatest([\r\n this.#itemsChanges.asObservable(),\r\n this.formControl.valueChanges.pipe(startWith(this.formControl.value))])\r\n .pipe(\r\n switchMap(([items, val]) => {\r\n // Vì một số lý do chưa xác định mà khi sử dụng sdViewDef thì khi chuyển sang dạng view sẽ trigger val = null\r\n // Nhưng formControl.value vẫn có giá trị đúng nên thực hiện gán val = this.formControl.value;\r\n val = this.formControl.value;\r\n if (!this.valueField) {\r\n return of(val);\r\n }\r\n if (val || val === 0) {\r\n if (typeof (items) === 'function') {\r\n if (this.#item[val]) {\r\n return of(this.#item[val]);\r\n }\r\n let obs: Observable<any[]>;\r\n const func = items(val, true);\r\n if (func instanceof Promise) {\r\n obs = defer(() => from(func));\r\n } else {\r\n obs = func;\r\n }\r\n return obs.pipe(map(data => {\r\n Object.assign(this.#item, Array.toObject(data, this.valueField));\r\n return this.#item[val] || {\r\n [this.valueField]: val,\r\n [this.displayField]: val\r\n };\r\n }));\r\n }\r\n return of(items.find(e => e[this.valueField] === val));\r\n }\r\n return of('');\r\n })\r\n );\r\n this.controlPlaceHolder = this.selected.pipe(map(item => item?.[this.displayField] ?? item ?? this.placeholder ?? this.label ?? ''));\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#form?.addControl(this.#name, this.formControl);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#subscription.unsubscribe();\r\n this.#form?.removeControl(this.#name);\r\n }\r\n onSelect = (item: any) => {\r\n if (item) {\r\n if (typeof (item) === 'string' || typeof (item) === 'number') {\r\n if (this.formControl.value !== item) {\r\n this.formControl.setValue(item);\r\n this.modelChange.emit(item);\r\n this.sdChange.emit(item);\r\n }\r\n } else if (this.valueField && this.displayField) {\r\n const val = item?.[this.valueField] || null;\r\n if (this.formControl.value !== val) {\r\n this.formControl.setValue(val);\r\n this.modelChange.emit(val);\r\n this.sdChange.emit(item);\r\n }\r\n }\r\n this.inputControl.setValue('', {\r\n emitEvent: false\r\n });\r\n }\r\n }\r\n\r\n onFocus = () => {\r\n this.isFocused = true;\r\n this.inputControl.setValue('');\r\n // this.inputControl.updateValueAndValidity();\r\n }\r\n\r\n onBlur = () => {\r\n this.isFocused = false;\r\n this.inputControl.setValue('', {\r\n emitEvent: false\r\n });\r\n }\r\n\r\n onClick = () => {\r\n if (this.sdView?.templateRef) {\r\n if (!this.formControl.disabled && !this.isFocused) {\r\n this.focus();\r\n }\r\n }\r\n }\r\n\r\n blur = () => {\r\n this.input?.nativeElement?.blur();\r\n }\r\n\r\n focus = () => {\r\n this.isFocused = true;\r\n setTimeout(() => {\r\n this.autocompleteTrigger?.openPanel();\r\n this.input?.nativeElement?.focus();\r\n }, 100);\r\n }\r\n\r\n clear = ($event?: any) => {\r\n $event?.stopPropagation();\r\n this.inputControl?.setValue('');\r\n if (this.#model) {\r\n this.formControl.setValue(null);\r\n this.modelChange.emit(null);\r\n this.sdChange.emit(null);\r\n }\r\n }\r\n\r\n onAction = ($event: Event) => {\r\n $event?.stopPropagation();\r\n this.autocompleteTrigger?.closePanel();\r\n this.action.emit();\r\n }\r\n\r\n reValidate = () => {\r\n this.inputControl.updateValueAndValidity({ emitEvent: true });\r\n }\r\n\r\n #updateValidator = () => {\r\n this.formControl.clearValidators();\r\n this.formControl.clearAsyncValidators();\r\n const validators: ValidatorFn[] = [];\r\n // const asyncValidators: AsyncValidatorFn[] = [];\r\n if (this.isRequired) {\r\n validators.push(Validators.required);\r\n }\r\n // if (this.#validator) {\r\n // asyncValidators.push(this.#customValidator(this.#validator));\r\n // }\r\n this.formControl.setValidators(validators);\r\n // this.formControl.setAsyncValidators(asyncValidators);\r\n this.formControl.updateValueAndValidity();\r\n }\r\n}\r\n\r\ntype SearchFunc = (searchText?: string | number, isFormValue?: boolean) => Promise<any[]> | Observable<any[]>;","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { SdAutocomplete } from './autocomplete.component';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { SdAutocompleteDisplayDefDirective } from './autocomplete-display-def.directive';\r\nimport { SdCommonModule } from '@sd-angular/core/common';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatAutocompleteModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n SdTranslateModule,\r\n SdCommonModule\r\n ],\r\n declarations: [\r\n SdAutocomplete,\r\n SdAutocompleteDisplayDefDirective\r\n ],\r\n exports: [\r\n SdAutocomplete,\r\n SdAutocompleteDisplayDefDirective,\r\n SdCommonModule\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdAutocompleteModule {\r\n\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/autocomplete.module';\r\nexport * from './lib/autocomplete.component';\r\nexport * from './lib/autocomplete-display-def.directive';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uuid.v4"],"mappings":"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"}
|
package/package.json
CHANGED
|
index b6eae97..762c1b5 100644
|
|
|
Binary file
|