@vgip/meta-ui 1.7.6 → 1.7.7
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/esm2022/lib/fieldComposite/index.mjs +2 -2
- package/esm2022/lib/fieldDatetime/index.mjs +10 -8
- package/esm2022/lib/fieldInput/index.mjs +22 -11
- package/esm2022/lib/fieldReference/index.mjs +2 -2
- package/esm2022/lib/fieldSelect/index.mjs +36 -13
- package/esm2022/lib/resource/index.mjs +14 -10
- package/esm2022/lib/services/metaContext/index.mjs +9 -1
- package/fesm2022/{vgip-meta-ui-index-46c7f4e4.mjs → vgip-meta-ui-index-09f92f24.mjs} +16 -12
- package/fesm2022/vgip-meta-ui-index-09f92f24.mjs.map +1 -0
- package/fesm2022/{vgip-meta-ui-index-45a741f4.mjs → vgip-meta-ui-index-1b9f700a.mjs} +3 -3
- package/fesm2022/vgip-meta-ui-index-1b9f700a.mjs.map +1 -0
- package/fesm2022/{vgip-meta-ui-index-1799a060.mjs → vgip-meta-ui-index-3cd63fdb.mjs} +5 -5
- package/fesm2022/vgip-meta-ui-index-3cd63fdb.mjs.map +1 -0
- package/fesm2022/{vgip-meta-ui-index-ea5c2466.mjs → vgip-meta-ui-index-4e34299c.mjs} +9 -1
- package/fesm2022/vgip-meta-ui-index-4e34299c.mjs.map +1 -0
- package/fesm2022/{vgip-meta-ui-index-ea3cad77.mjs → vgip-meta-ui-index-5fbb0fc8.mjs} +2 -2
- package/fesm2022/{vgip-meta-ui-index-ea3cad77.mjs.map → vgip-meta-ui-index-5fbb0fc8.mjs.map} +1 -1
- package/fesm2022/{vgip-meta-ui-index-0349968f.mjs → vgip-meta-ui-index-6f2365c3.mjs} +10 -8
- package/fesm2022/vgip-meta-ui-index-6f2365c3.mjs.map +1 -0
- package/fesm2022/{vgip-meta-ui-index-6f647ae9.mjs → vgip-meta-ui-index-94c9df13.mjs} +39 -16
- package/fesm2022/vgip-meta-ui-index-94c9df13.mjs.map +1 -0
- package/fesm2022/{vgip-meta-ui-index-b3099377.mjs → vgip-meta-ui-index-af0ec42f.mjs} +2 -2
- package/fesm2022/{vgip-meta-ui-index-b3099377.mjs.map → vgip-meta-ui-index-af0ec42f.mjs.map} +1 -1
- package/fesm2022/vgip-meta-ui-index-af8c0f14.mjs +471 -0
- package/fesm2022/vgip-meta-ui-index-af8c0f14.mjs.map +1 -0
- package/fesm2022/{vgip-meta-ui-index-ebaddb9b.mjs → vgip-meta-ui-index-f98de31b.mjs} +2 -2
- package/fesm2022/{vgip-meta-ui-index-ebaddb9b.mjs.map → vgip-meta-ui-index-f98de31b.mjs.map} +1 -1
- package/fesm2022/{vgip-meta-ui-index-aa21fd6a.mjs → vgip-meta-ui-index-fdeb80d6.mjs} +9 -9
- package/fesm2022/{vgip-meta-ui-index-aa21fd6a.mjs.map → vgip-meta-ui-index-fdeb80d6.mjs.map} +1 -1
- package/fesm2022/vgip-meta-ui.mjs +13 -13
- package/lib/fieldInput/index.d.ts +2 -0
- package/lib/fieldSelect/index.d.ts +1 -1
- package/lib/resource/index.d.ts +1 -0
- package/lib/services/metaContext/index.d.ts +2 -0
- package/package.json +1 -1
- package/fesm2022/vgip-meta-ui-index-0349968f.mjs.map +0 -1
- package/fesm2022/vgip-meta-ui-index-1799a060.mjs.map +0 -1
- package/fesm2022/vgip-meta-ui-index-44af92c9.mjs +0 -460
- package/fesm2022/vgip-meta-ui-index-44af92c9.mjs.map +0 -1
- package/fesm2022/vgip-meta-ui-index-45a741f4.mjs.map +0 -1
- package/fesm2022/vgip-meta-ui-index-46c7f4e4.mjs.map +0 -1
- package/fesm2022/vgip-meta-ui-index-6f647ae9.mjs.map +0 -1
- package/fesm2022/vgip-meta-ui-index-ea5c2466.mjs.map +0 -1
|
@@ -3,15 +3,15 @@ import { Component } from '@angular/core';
|
|
|
3
3
|
import { F as FieldAbstract } from './vgip-meta-ui-fieldAbstract-9955be39.mjs';
|
|
4
4
|
import * as i2 from '@angular/forms';
|
|
5
5
|
import { ControlContainer, NgForm } from '@angular/forms';
|
|
6
|
-
import { M as MetaRefDialog, b as MetaReferenceService, a as MetaResourceService } from './vgip-meta-ui-index-
|
|
6
|
+
import { M as MetaRefDialog, b as MetaReferenceService, a as MetaResourceService } from './vgip-meta-ui-index-09f92f24.mjs';
|
|
7
7
|
import * as i1 from '@angular/common';
|
|
8
8
|
import { M as MetaModelPipe } from './vgip-meta-ui-metaModel.pipe-6b803e66.mjs';
|
|
9
9
|
import 'rxjs';
|
|
10
10
|
import 'rxjs/operators';
|
|
11
|
-
import './vgip-meta-ui-index-
|
|
11
|
+
import './vgip-meta-ui-index-4e34299c.mjs';
|
|
12
12
|
import '@angular/common/http';
|
|
13
13
|
import '@angular/router';
|
|
14
|
-
import './vgip-meta-ui-index-
|
|
14
|
+
import './vgip-meta-ui-index-fdeb80d6.mjs';
|
|
15
15
|
|
|
16
16
|
class FieldSelect extends FieldAbstract {
|
|
17
17
|
constructor(referenceService, metaResource, viewContainerRef) {
|
|
@@ -241,8 +241,10 @@ class FieldSelect extends FieldAbstract {
|
|
|
241
241
|
this.searchOptions(params);
|
|
242
242
|
}
|
|
243
243
|
this.parentChangeSubject.subscribe((value) => {
|
|
244
|
-
if (value
|
|
245
|
-
this.
|
|
244
|
+
if (value?.hasOwnProperty(searchParams[par])) {
|
|
245
|
+
if (!this.logicalDisabled) {
|
|
246
|
+
this.searchOptions(value);
|
|
247
|
+
}
|
|
246
248
|
}
|
|
247
249
|
});
|
|
248
250
|
}
|
|
@@ -337,6 +339,9 @@ class FieldSelect extends FieldAbstract {
|
|
|
337
339
|
}
|
|
338
340
|
}
|
|
339
341
|
openResource(ev) {
|
|
342
|
+
if (typeof (this.meta.reference.creatable) === 'function') {
|
|
343
|
+
return this.meta.reference.creatable(this);
|
|
344
|
+
}
|
|
340
345
|
const refDialogComponent = this.viewContainerRef.createComponent(MetaRefDialog);
|
|
341
346
|
let theme = this.elementRef.nativeElement.dataset.theme;
|
|
342
347
|
if (!theme || theme === 'inherit') {
|
|
@@ -379,11 +384,12 @@ class FieldSelect extends FieldAbstract {
|
|
|
379
384
|
document.addEventListener('click', this.clickout);
|
|
380
385
|
}, 200);
|
|
381
386
|
this.keyListenerActive = true;
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
+
}
|
|
388
|
+
if (this.options && this.model) {
|
|
389
|
+
for (let suggestionIndex = 0; suggestionIndex < this.options.length; suggestionIndex++) {
|
|
390
|
+
if (this.model === this.options[suggestionIndex]) {
|
|
391
|
+
this.activeSuggestionIndex = suggestionIndex;
|
|
392
|
+
break;
|
|
387
393
|
}
|
|
388
394
|
}
|
|
389
395
|
}
|
|
@@ -421,7 +427,7 @@ class FieldSelect extends FieldAbstract {
|
|
|
421
427
|
}
|
|
422
428
|
ensureDropdownIsVisible() {
|
|
423
429
|
setTimeout(() => {
|
|
424
|
-
const holder = this.dropdown.closest('.Vlt-card__content');
|
|
430
|
+
const holder = this.dropdown.closest('.Vlt-card__content, .Vlt-modal__content');
|
|
425
431
|
if (holder) {
|
|
426
432
|
const el = this.elementRef.nativeElement.querySelector('.Vlt-dropdown__panel');
|
|
427
433
|
const elRect = el.getBoundingClientRect();
|
|
@@ -475,10 +481,27 @@ class FieldSelect extends FieldAbstract {
|
|
|
475
481
|
searchOptions(params) {
|
|
476
482
|
let searchUrl = `/fields/${this.meta.name}/search`;
|
|
477
483
|
if (this.meta.search) {
|
|
484
|
+
const searchParams = this.meta.search.params;
|
|
478
485
|
if (this.meta.search.url) {
|
|
479
|
-
searchUrl = this.meta.search.url
|
|
486
|
+
searchUrl = this.meta.search.url.replace(/\${\s*([\w.]+)\s*}/g, (match, key) => {
|
|
487
|
+
if (searchParams.hasOwnProperty(key)) {
|
|
488
|
+
const props = searchParams[key].split('.');
|
|
489
|
+
const field = props[0];
|
|
490
|
+
const prop = props[1];
|
|
491
|
+
delete searchParams[key]; // if it is URL param, remove it as query param
|
|
492
|
+
let parValue = this.parent[field];
|
|
493
|
+
if (parValue) {
|
|
494
|
+
if (prop) {
|
|
495
|
+
parValue = parValue[prop];
|
|
496
|
+
}
|
|
497
|
+
if (parValue) {
|
|
498
|
+
return parValue;
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
return 'undefined';
|
|
503
|
+
});
|
|
480
504
|
}
|
|
481
|
-
const searchParams = this.meta.search.params;
|
|
482
505
|
if (searchParams) {
|
|
483
506
|
for (const par of Object.keys(searchParams)) {
|
|
484
507
|
const val = this.parent[searchParams[par]];
|
|
@@ -506,12 +529,12 @@ class FieldSelect extends FieldAbstract {
|
|
|
506
529
|
});
|
|
507
530
|
}
|
|
508
531
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: FieldSelect, deps: [{ token: MetaReferenceService }, { token: MetaResourceService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
509
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: FieldSelect, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class='vgip-meta-field-preview' *ngIf='preview && model'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>\n {{showText}}\n </div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element\"\n [ngClass]=\"{ 'Vlt-form__element--big': !meta.small ,'has-value': f.value, active: keyListenerActive, 'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (ft | metaModel ).touched), 'no-x': meta.noX }\">\n <div class=\"Vlt-composite Vlt-dropdown Vlt-input\" style='display: block;'\n [ngClass]=\"{ 'has-append-button': isCreatable && !disabled }\">\n <div class=\"Vlt-select\">\n <label class='wrapper'>\n <label class='Vlt-truncate'>{{meta.label || meta.name}}<span *ngIf='validations.required && options.length' class='Vlt-red'>*</span></label> <!-- eslint-disable-line -->\n <input class='main' [required]='validations.required && !!options.length' readonly [ngModel]='showText'\n #ft='ngModel' [ngModelOptions]=\"{standalone: true}\" type=\"text\"\n [placeholder]=\"meta.placeholder || ' '\" (click)='onActivated($event)' (focus)='onActivated($event)'\n (blur)='onBlur($event)' [ngClass]=\"{ 'standalone': meta.standalone }\"\n [disabled]='disabled' [attr.aria-label]='meta.label' />\n </label>\n <select class='model' [required]='validations.required && !!options.length' style='display: none;'\n [(ngModel)]='model' [ngModelOptions]=\"{standalone: meta.standalone}\"\n (ngModelChange)=\"onModelChange($event)\" #f='ngModel' [name]='name'></select>\n <div *ngIf='searching' class='search-progress'>\n <div class=\"container\">\n <div class=\"bar Vlt-bg-purple\"></div>\n </div>\n </div>\n <div class='Vlt-composite__append right-actions'>\n <a href='#' *ngIf='model && !meta.noX && !disabled' class=\"Vlt-composite__append--icon\"\n (click)='clear($event)'>\n <div class=\"Vlt-composite__icon\">\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\" />\n </svg>\n </div>\n </a>\n </div>\n </div>\n <div class='Vlt-dropdown__panel'>\n <div class=\"Vlt-dropdown__panel__content Vlt-dropdown__panel__content--scroll-area\">\n <!-- <div class=\"Vlt-dropdown__title\" style='padding-left: 15px;'>\n Select ({{options.length}})\n <div class=\"Vlt-dropdown__close Vlt-white\" (click)='dismissDropdown($event)'>\n <svg class='Vlt-icon Vlt-icon--small'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/></svg>\n </div>\n </div> -->\n <div class=\"Vlt-dropdown__block Vlt-search_wrap\">\n <div *ngIf=\"optionsBackup.length > 12\" class=\"Vlt-composite\" [ngClass]=\"{'vgip-disable': disabled}\">\n <div class=\"Vlt-composite__prepend Vlt-composite__prepend--icon\"\n style=\"top: 0; padding-top: 15px;\">\n <div class=\"Vlt-composite__icon\">\n <svg class='Vlt-grey'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-search\"></use>\n </svg>\n </div>\n </div>\n <div class=\"Vlt-input\">\n <input type=\"text\" class=\"vgip-search_input\" [(ngModel)]=\"searchInputText\" placeholder=\"Search\" (input)=\"onSearchChange()\" (blur)='onBlur($event)' [ngModelOptions]=\"{standalone: true}\">\n </div>\n <a href='#' class=\"Vlt-composite__append--icon\" style=\"top: 2px;\" (click)=\"clearSearchField($event)\" [hidden]=\"!searchInputText\">\n <div class=\"Vlt-composite__icon\">\n <svg class='Vlt-icon Vlt-icon--small'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/>\n </svg>\n </div>\n </a>\n </div>\n </div>\n <div *ngIf='dropdown' class='Vlt-dropdown__scroll'>\n <a href='#' [ngClass]=\"{ 'Vlt-dropdown__link--selected': activeSuggestionIndex === i }\"\n (click)='onOptionSelect($event, option)' *ngFor='let option of options; let i = index'\n class=\"Vlt-dropdown__link\">\n <div *ngIf='multiple' class=\"Vlt-checkbox\" style='width: 100%;'>\n <label>\n <span class=\"Vlt-checkbox__button\">\n <input type=\"checkbox\" [checked]='model && model.indexOf(option) !== -1' />\n <span class=\"Vlt-checkbox__icon\"></span>\n </span>\n {{option.label || (option.id === '' ? '--empty--' : option)}}\n </label>\n </div>\n <div *ngIf='!multiple' style='padding: 12px 20px;'>{{option.label || (option.id === '' ?\n '--empty--' : option)}}</div>\n </a>\n <!-- No Option Found -->\n <div class=\"Vlt-dropdown__link\" *ngIf=\"options.length === 0\">\n <div style='padding: 12px 20px;'>No Option Found</div>\n </div>\n </div>\n <div *ngIf='!multiple' class=\"Vlt-dropdown__block\"></div>\n <div *ngIf='multiple' class=\"Vlt-dropdown__block Vlt-dropdown__block--nowrap\"\n style='padding: 8px 16px 16px;'>\n <button (click)='clear($event)' type='button'\n class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small Vlt-btn--outline\"\n style='margin-right: 8px;'>Clear all</button>\n <button (click)='dismissDropdown($event)' type='button'\n class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small\">Done</button>\n </div>\n </div>\n </div>\n <!-- <span *ngIf='isCreatable'>\n <button type='button' (click)='openResource($event)' class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--icon Vlt-btn--large\" style='margin-left: 12px;'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>\n </button>\n </span> -->\n <div *ngIf='isCreatable && !disabled' class=\"Vlt-composite__append\">\n <button (focus)='onActivated($event)' (blur)='onBlur($event)' type='button' (click)='openResource($event)'\n class=\"Vlt-btn Vlt-btn--white Vlt-btn--icon add-button\" aria-label='Add new'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\" />\n </svg>\n </button>\n </div>\n </div>\n <small *ngIf='f.invalid && ((f | metaModel)._parent.submitted || ((ft | metaModel).touched && keyListenerActive))'\n class=\"Vlt-form__element__error\">\n <span *ngIf=\"f.errors.required\">Required. </span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}} </span>\n </small>\n <small *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n</div>\n", styles: [".Vlt-form__element.no-x input.main{padding-right:40px}.Vlt-form__element--big:not(.has-value)>.Vlt-input>.Vlt-select>label>label{font-size:1.6rem;margin-top:-.8rem;top:50%}.Vlt-form__element--big input[readonly].main:not([disabled]){background:var(--vgip-meta-input-bg-color);border:1px solid var(--vgip-meta-input-border-color)}.Vlt-form__element--big:hover input[readonly].main,.Vlt-form__element--big:hover .Vlt-composite__append button,.Vlt-form__element--big:focus input[readonly].main,.Vlt-form__element--big:focus .Vlt-composite__append button,.Vlt-form__element--big.active input[readonly].main,.Vlt-form__element--big.active .Vlt-composite__append button{border-color:var(--vgip-meta-input-active-border-color)}.Vlt-form__element--big.Vlt-form__element--error input[readonly].main,.Vlt-form__element--big.Vlt-form__element--error .Vlt-composite__append button{border-color:#f25a6b;box-shadow:none}.Vlt-form__element--big .Vlt-select:after{background-image:var(--vgip-meta-dropdown-icon);margin-right:2px}.Vlt-form__element--big .Vlt-form__element__hint{color:var(--vgip-meta-input-hint-color)}.Vlt-composite.has-append-button input[readonly].main{border-top-right-radius:0;border-bottom-right-radius:0;border-right:0}.Vlt-composite.has-append-button .Vlt-select:after{margin-right:-10px}.Vlt-composite__append{z-index:initial}.Vlt-composite__append button{height:48px;background:var(--vgip-meta-input-bg-color);border-color:var(--vgip-meta-input-border-color);padding-right:16px;padding-left:16px;border-left:0}.Vlt-composite__append button:hover{background:var(--vgip-meta-input-action-hover-bg-color)}.Vlt-composite__append button svg{margin:-2px 0 0;fill:var(--vgip-meta-input-accent-color)}.Vlt-dropdown__panel{width:100%}.Vlt-dropdown__panel .Vlt-dropdown__link{padding:0 20px 0 0}.Vlt-dropdown__panel .Vlt-dropdown__link.Vlt-dropdown__link--selected{background:rgba(44,45,48,.05)}.Vlt-dropdown__panel label{margin-top:0;padding:12px 20px;top:0;left:0;pointer-events:initial;position:initial;color:initial;font-size:inherit;transition:none;cursor:pointer}.Vlt-dropdown__panel label input{height:0}input.main{cursor:pointer;padding-right:76px}.Vlt-input.has-append-button .Vlt-composite__append.right-actions{right:42px}.Vlt-composite__append.right-actions{position:absolute;top:5px;right:53px;cursor:pointer}.Vlt-composite__append.right-actions .Vlt-composite__append--icon{width:36px;outline:none;position:initial;display:inline-block}.Vlt-composite__append.right-actions .Vlt-composite__append--icon svg{height:14px;width:14px}.Vlt-composite__append.right-actions .Vlt-composite__append--icon:hover svg,.Vlt-composite__append.right-actions .Vlt-composite__append--icon:focus svg{fill:var(--vgip-meta-input-accent-color)}.vgip-disable .Vlt-composite__append{cursor:not-allowed;pointer-events:none}.Vlt-search_wrap{padding-top:10px}.Vlt-search_wrap .vgip-search_input{padding:8px 36px 8px 38px;width:100%;border:1px solid var(--vgip-meta-input-border-color)!important;border-radius:6px!important}.Vlt-search_wrap .vgip-search_input:focus,.Vlt-search_wrap .vgip-search_input:active,.Vlt-search_wrap .vgip-search_input:hover{border-color:var(--vgip-meta-input-active-border-color)!important}.Vlt-search_wrap .Vlt-composite__append--icon{cursor:pointer}.Vlt-search_wrap .Vlt-composite__append--icon svg{height:14px;width:14px}.Vlt-search_wrap .Vlt-composite__append--icon:focus svg,.Vlt-search_wrap .Vlt-composite__append--icon:active svg,.Vlt-search_wrap .Vlt-composite__append--icon:hover svg{fill:var(--vgip-meta-input-accent-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: MetaModelPipe, name: "metaModel" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
|
|
532
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: FieldSelect, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class='vgip-meta-field-preview' *ngIf='preview && model'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>\n {{showText}}\n </div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element\"\n [ngClass]=\"{ 'Vlt-form__element--big': !meta.small ,'has-value': f.value, active: keyListenerActive, 'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (ft | metaModel ).touched), 'no-x': meta.noX }\">\n <div class=\"Vlt-composite Vlt-dropdown Vlt-input\" style='display: block;'\n [ngClass]=\"{ 'has-append-button': isCreatable && !disabled }\">\n <div class=\"Vlt-select\">\n <label class='wrapper'>\n <label class='Vlt-truncate'>{{meta.label || meta.name}}<span *ngIf='validations.required && options.length' class='Vlt-red'>*</span></label> <!-- eslint-disable-line -->\n <input class='main' [required]='validations.required && !!options.length' readonly [ngModel]='showText'\n #ft='ngModel' [ngModelOptions]=\"{standalone: true}\" type=\"text\"\n [placeholder]=\"meta.placeholder || ' '\" (click)='onActivated($event)' (focus)='onActivated($event)'\n (blur)='onBlur($event)' [ngClass]=\"{ 'standalone': meta.standalone }\"\n [disabled]='disabled' [attr.aria-label]='meta.label' />\n </label>\n <select class='model' [required]='validations.required && !!options.length' style='display: none;'\n [(ngModel)]='model' [ngModelOptions]=\"{standalone: meta.standalone}\"\n (ngModelChange)=\"onModelChange($event)\" #f='ngModel' [name]='name'></select>\n <div *ngIf='searching' class='search-progress'>\n <div class=\"container\">\n <div class=\"bar Vlt-bg-purple\"></div>\n </div>\n </div>\n <div class='Vlt-composite__append right-actions'>\n <a href='#' *ngIf='model && !meta.noX && !disabled' class=\"Vlt-composite__append--icon\"\n (click)='clear($event)'>\n <div class=\"Vlt-composite__icon\">\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\" />\n </svg>\n </div>\n </a>\n </div>\n </div>\n <div class='Vlt-dropdown__panel'>\n <div class=\"Vlt-dropdown__panel__content Vlt-dropdown__panel__content--scroll-area\">\n <!-- <div class=\"Vlt-dropdown__title\" style='padding-left: 15px;'>\n Select ({{options.length}})\n <div class=\"Vlt-dropdown__close Vlt-white\" (click)='dismissDropdown($event)'>\n <svg class='Vlt-icon Vlt-icon--small'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/></svg>\n </div>\n </div> -->\n <div class=\"Vlt-dropdown__block Vlt-search_wrap\">\n <div *ngIf=\"optionsBackup.length > 12\" class=\"Vlt-composite\" [ngClass]=\"{'vgip-disable': disabled}\">\n <div class=\"Vlt-composite__prepend Vlt-composite__prepend--icon\"\n style=\"top: 0; padding-top: 15px;\">\n <div class=\"Vlt-composite__icon\">\n <svg class='Vlt-grey'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-search\"></use>\n </svg>\n </div>\n </div>\n <div class=\"Vlt-input\">\n <input type=\"text\" class=\"vgip-search_input\" [(ngModel)]=\"searchInputText\" placeholder=\"Search\" (input)=\"onSearchChange()\" (blur)='onBlur($event)' [ngModelOptions]=\"{standalone: true}\">\n </div>\n <a href='#' class=\"Vlt-composite__append--icon\" style=\"top: 2px;\" (click)=\"clearSearchField($event)\" [hidden]=\"!searchInputText\">\n <div class=\"Vlt-composite__icon\">\n <svg class='Vlt-icon Vlt-icon--small'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/>\n </svg>\n </div>\n </a>\n </div>\n </div>\n <div *ngIf='dropdown' class='Vlt-dropdown__scroll'>\n <a href='#' [ngClass]=\"{ 'Vlt-dropdown__link--selected': activeSuggestionIndex === i }\"\n (click)='onOptionSelect($event, option)' *ngFor='let option of options; let i = index'\n class=\"Vlt-dropdown__link\">\n <div *ngIf='multiple' class=\"Vlt-checkbox\" style='width: 100%;'>\n <label>\n <span class=\"Vlt-checkbox__button\">\n <input type=\"checkbox\" [checked]='model && model.indexOf(option) !== -1' />\n <span class=\"Vlt-checkbox__icon\"></span>\n </span>\n {{option.label || (option.id === '' ? '--empty--' : option)}}\n </label>\n </div>\n <div *ngIf='!multiple' style='padding: 12px 20px;'>{{option.label || (option.id === '' ?\n '--empty--' : option)}}</div>\n </a>\n <!-- No Option Found -->\n <div class=\"Vlt-dropdown__link\" *ngIf=\"options.length === 0\">\n <span style='padding: 12px 20px;'>\n No Option Found\n </span>\n <button *ngIf='isCreatable && !disabled' type=\"button\" class=\"Vlt-btn Vlt-btn--link\" (click)='openResource($event)'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\" />\n </svg> Add new\n </button>\n </div>\n </div>\n <div *ngIf='!multiple' class=\"Vlt-dropdown__block\"></div>\n <div *ngIf='multiple' class=\"Vlt-dropdown__block Vlt-dropdown__block--nowrap\"\n style='padding: 8px 16px 16px;'>\n <button (click)='clear($event)' type='button'\n class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small Vlt-btn--outline\"\n style='margin-right: 8px;'>Clear all</button>\n <button (click)='dismissDropdown($event)' type='button'\n class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small\">Done</button>\n </div>\n </div>\n </div>\n <!-- <span *ngIf='isCreatable'>\n <button type='button' (click)='openResource($event)' class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--icon Vlt-btn--large\" style='margin-left: 12px;'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>\n </button>\n </span> -->\n <div *ngIf='isCreatable && !disabled' class=\"Vlt-composite__append\">\n <button (focus)='onActivated($event)' (blur)='onBlur($event)' type='button' (click)='openResource($event)'\n class=\"Vlt-btn Vlt-btn--white Vlt-btn--icon add-button\" aria-label='Add new'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\" />\n </svg>\n </button>\n </div>\n </div>\n <small *ngIf='f.invalid && ((f | metaModel)._parent.submitted || ((ft | metaModel).touched && keyListenerActive))'\n class=\"Vlt-form__element__error\">\n <span *ngIf=\"f.errors.required\">Required. </span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}} </span>\n </small>\n <small *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n</div>\n", styles: [".Vlt-form__element.no-x input.main{padding-right:40px}.Vlt-form__element--big:not(.has-value)>.Vlt-input>.Vlt-select>label>label{font-size:1.6rem;margin-top:-.8rem;top:50%}.Vlt-form__element--big input[readonly].main:not([disabled]){background:var(--vgip-meta-input-bg-color);border:1px solid var(--vgip-meta-input-border-color)}.Vlt-form__element--big:hover input[readonly].main,.Vlt-form__element--big:hover .Vlt-composite__append button,.Vlt-form__element--big:focus input[readonly].main,.Vlt-form__element--big:focus .Vlt-composite__append button,.Vlt-form__element--big.active input[readonly].main,.Vlt-form__element--big.active .Vlt-composite__append button{border-color:var(--vgip-meta-input-active-border-color)}.Vlt-form__element--big.Vlt-form__element--error input[readonly].main,.Vlt-form__element--big.Vlt-form__element--error .Vlt-composite__append button{border-color:#f25a6b;box-shadow:none}.Vlt-form__element--big .Vlt-select:after{background-image:var(--vgip-meta-dropdown-icon);margin-right:2px}.Vlt-form__element--big .Vlt-form__element__hint{color:var(--vgip-meta-input-hint-color)}.Vlt-composite.has-append-button input[readonly].main{border-top-right-radius:0;border-bottom-right-radius:0;border-right:0}.Vlt-composite.has-append-button .Vlt-select:after{margin-right:-10px}.Vlt-composite__append{z-index:initial}.Vlt-composite__append button{height:48px;background:var(--vgip-meta-input-bg-color);border-color:var(--vgip-meta-input-border-color);padding-right:16px;padding-left:16px;border-left:0}.Vlt-composite__append button:hover{background:var(--vgip-meta-input-action-hover-bg-color)}.Vlt-composite__append button svg{margin:-2px 0 0;fill:var(--vgip-meta-input-accent-color)}.Vlt-dropdown__panel{width:100%}.Vlt-dropdown__panel .Vlt-dropdown__link{padding:0 20px 0 0}.Vlt-dropdown__panel .Vlt-dropdown__link.Vlt-dropdown__link--selected{background:rgba(44,45,48,.05)}.Vlt-dropdown__panel label{margin-top:0;padding:12px 20px;top:0;left:0;pointer-events:initial;position:initial;color:initial;font-size:inherit;transition:none;cursor:pointer}.Vlt-dropdown__panel label input{height:0}input.main{cursor:pointer;padding-right:76px}input.main:disabled{cursor:not-allowed}.Vlt-input.has-append-button .Vlt-composite__append.right-actions{right:42px}.Vlt-composite__append.right-actions{position:absolute;top:5px;right:53px;cursor:pointer}.Vlt-composite__append.right-actions .Vlt-composite__append--icon{width:36px;outline:none;position:initial;display:inline-block}.Vlt-composite__append.right-actions .Vlt-composite__append--icon svg{height:14px;width:14px}.Vlt-composite__append.right-actions .Vlt-composite__append--icon:hover svg,.Vlt-composite__append.right-actions .Vlt-composite__append--icon:focus svg{fill:var(--vgip-meta-input-accent-color)}.vgip-disable .Vlt-composite__append{cursor:not-allowed;pointer-events:none}.Vlt-search_wrap{padding-top:10px}.Vlt-search_wrap .vgip-search_input{padding:8px 36px 8px 38px;width:100%;border:1px solid var(--vgip-meta-input-border-color)!important;border-radius:6px!important}.Vlt-search_wrap .vgip-search_input:focus,.Vlt-search_wrap .vgip-search_input:active,.Vlt-search_wrap .vgip-search_input:hover{border-color:var(--vgip-meta-input-active-border-color)!important}.Vlt-search_wrap .Vlt-composite__append--icon{cursor:pointer}.Vlt-search_wrap .Vlt-composite__append--icon svg{height:14px;width:14px}.Vlt-search_wrap .Vlt-composite__append--icon:focus svg,.Vlt-search_wrap .Vlt-composite__append--icon:active svg,.Vlt-search_wrap .Vlt-composite__append--icon:hover svg{fill:var(--vgip-meta-input-accent-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: MetaModelPipe, name: "metaModel" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
|
|
510
533
|
}
|
|
511
534
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: FieldSelect, decorators: [{
|
|
512
535
|
type: Component,
|
|
513
|
-
args: [{ viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div class='vgip-meta-field-preview' *ngIf='preview && model'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>\n {{showText}}\n </div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element\"\n [ngClass]=\"{ 'Vlt-form__element--big': !meta.small ,'has-value': f.value, active: keyListenerActive, 'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (ft | metaModel ).touched), 'no-x': meta.noX }\">\n <div class=\"Vlt-composite Vlt-dropdown Vlt-input\" style='display: block;'\n [ngClass]=\"{ 'has-append-button': isCreatable && !disabled }\">\n <div class=\"Vlt-select\">\n <label class='wrapper'>\n <label class='Vlt-truncate'>{{meta.label || meta.name}}<span *ngIf='validations.required && options.length' class='Vlt-red'>*</span></label> <!-- eslint-disable-line -->\n <input class='main' [required]='validations.required && !!options.length' readonly [ngModel]='showText'\n #ft='ngModel' [ngModelOptions]=\"{standalone: true}\" type=\"text\"\n [placeholder]=\"meta.placeholder || ' '\" (click)='onActivated($event)' (focus)='onActivated($event)'\n (blur)='onBlur($event)' [ngClass]=\"{ 'standalone': meta.standalone }\"\n [disabled]='disabled' [attr.aria-label]='meta.label' />\n </label>\n <select class='model' [required]='validations.required && !!options.length' style='display: none;'\n [(ngModel)]='model' [ngModelOptions]=\"{standalone: meta.standalone}\"\n (ngModelChange)=\"onModelChange($event)\" #f='ngModel' [name]='name'></select>\n <div *ngIf='searching' class='search-progress'>\n <div class=\"container\">\n <div class=\"bar Vlt-bg-purple\"></div>\n </div>\n </div>\n <div class='Vlt-composite__append right-actions'>\n <a href='#' *ngIf='model && !meta.noX && !disabled' class=\"Vlt-composite__append--icon\"\n (click)='clear($event)'>\n <div class=\"Vlt-composite__icon\">\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\" />\n </svg>\n </div>\n </a>\n </div>\n </div>\n <div class='Vlt-dropdown__panel'>\n <div class=\"Vlt-dropdown__panel__content Vlt-dropdown__panel__content--scroll-area\">\n <!-- <div class=\"Vlt-dropdown__title\" style='padding-left: 15px;'>\n Select ({{options.length}})\n <div class=\"Vlt-dropdown__close Vlt-white\" (click)='dismissDropdown($event)'>\n <svg class='Vlt-icon Vlt-icon--small'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/></svg>\n </div>\n </div> -->\n <div class=\"Vlt-dropdown__block Vlt-search_wrap\">\n <div *ngIf=\"optionsBackup.length > 12\" class=\"Vlt-composite\" [ngClass]=\"{'vgip-disable': disabled}\">\n <div class=\"Vlt-composite__prepend Vlt-composite__prepend--icon\"\n style=\"top: 0; padding-top: 15px;\">\n <div class=\"Vlt-composite__icon\">\n <svg class='Vlt-grey'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-search\"></use>\n </svg>\n </div>\n </div>\n <div class=\"Vlt-input\">\n <input type=\"text\" class=\"vgip-search_input\" [(ngModel)]=\"searchInputText\" placeholder=\"Search\" (input)=\"onSearchChange()\" (blur)='onBlur($event)' [ngModelOptions]=\"{standalone: true}\">\n </div>\n <a href='#' class=\"Vlt-composite__append--icon\" style=\"top: 2px;\" (click)=\"clearSearchField($event)\" [hidden]=\"!searchInputText\">\n <div class=\"Vlt-composite__icon\">\n <svg class='Vlt-icon Vlt-icon--small'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/>\n </svg>\n </div>\n </a>\n </div>\n </div>\n <div *ngIf='dropdown' class='Vlt-dropdown__scroll'>\n <a href='#' [ngClass]=\"{ 'Vlt-dropdown__link--selected': activeSuggestionIndex === i }\"\n (click)='onOptionSelect($event, option)' *ngFor='let option of options; let i = index'\n class=\"Vlt-dropdown__link\">\n <div *ngIf='multiple' class=\"Vlt-checkbox\" style='width: 100%;'>\n <label>\n <span class=\"Vlt-checkbox__button\">\n <input type=\"checkbox\" [checked]='model && model.indexOf(option) !== -1' />\n <span class=\"Vlt-checkbox__icon\"></span>\n </span>\n {{option.label || (option.id === '' ? '--empty--' : option)}}\n </label>\n </div>\n <div *ngIf='!multiple' style='padding: 12px 20px;'>{{option.label || (option.id === '' ?\n '--empty--' : option)}}</div>\n </a>\n <!-- No Option Found -->\n <div class=\"Vlt-dropdown__link\" *ngIf=\"options.length === 0\">\n <div style='padding: 12px 20px;'>No Option Found</div>\n </div>\n </div>\n <div *ngIf='!multiple' class=\"Vlt-dropdown__block\"></div>\n <div *ngIf='multiple' class=\"Vlt-dropdown__block Vlt-dropdown__block--nowrap\"\n style='padding: 8px 16px 16px;'>\n <button (click)='clear($event)' type='button'\n class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small Vlt-btn--outline\"\n style='margin-right: 8px;'>Clear all</button>\n <button (click)='dismissDropdown($event)' type='button'\n class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small\">Done</button>\n </div>\n </div>\n </div>\n <!-- <span *ngIf='isCreatable'>\n <button type='button' (click)='openResource($event)' class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--icon Vlt-btn--large\" style='margin-left: 12px;'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>\n </button>\n </span> -->\n <div *ngIf='isCreatable && !disabled' class=\"Vlt-composite__append\">\n <button (focus)='onActivated($event)' (blur)='onBlur($event)' type='button' (click)='openResource($event)'\n class=\"Vlt-btn Vlt-btn--white Vlt-btn--icon add-button\" aria-label='Add new'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\" />\n </svg>\n </button>\n </div>\n </div>\n <small *ngIf='f.invalid && ((f | metaModel)._parent.submitted || ((ft | metaModel).touched && keyListenerActive))'\n class=\"Vlt-form__element__error\">\n <span *ngIf=\"f.errors.required\">Required. </span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}} </span>\n </small>\n <small *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n</div>\n", styles: [".Vlt-form__element.no-x input.main{padding-right:40px}.Vlt-form__element--big:not(.has-value)>.Vlt-input>.Vlt-select>label>label{font-size:1.6rem;margin-top:-.8rem;top:50%}.Vlt-form__element--big input[readonly].main:not([disabled]){background:var(--vgip-meta-input-bg-color);border:1px solid var(--vgip-meta-input-border-color)}.Vlt-form__element--big:hover input[readonly].main,.Vlt-form__element--big:hover .Vlt-composite__append button,.Vlt-form__element--big:focus input[readonly].main,.Vlt-form__element--big:focus .Vlt-composite__append button,.Vlt-form__element--big.active input[readonly].main,.Vlt-form__element--big.active .Vlt-composite__append button{border-color:var(--vgip-meta-input-active-border-color)}.Vlt-form__element--big.Vlt-form__element--error input[readonly].main,.Vlt-form__element--big.Vlt-form__element--error .Vlt-composite__append button{border-color:#f25a6b;box-shadow:none}.Vlt-form__element--big .Vlt-select:after{background-image:var(--vgip-meta-dropdown-icon);margin-right:2px}.Vlt-form__element--big .Vlt-form__element__hint{color:var(--vgip-meta-input-hint-color)}.Vlt-composite.has-append-button input[readonly].main{border-top-right-radius:0;border-bottom-right-radius:0;border-right:0}.Vlt-composite.has-append-button .Vlt-select:after{margin-right:-10px}.Vlt-composite__append{z-index:initial}.Vlt-composite__append button{height:48px;background:var(--vgip-meta-input-bg-color);border-color:var(--vgip-meta-input-border-color);padding-right:16px;padding-left:16px;border-left:0}.Vlt-composite__append button:hover{background:var(--vgip-meta-input-action-hover-bg-color)}.Vlt-composite__append button svg{margin:-2px 0 0;fill:var(--vgip-meta-input-accent-color)}.Vlt-dropdown__panel{width:100%}.Vlt-dropdown__panel .Vlt-dropdown__link{padding:0 20px 0 0}.Vlt-dropdown__panel .Vlt-dropdown__link.Vlt-dropdown__link--selected{background:rgba(44,45,48,.05)}.Vlt-dropdown__panel label{margin-top:0;padding:12px 20px;top:0;left:0;pointer-events:initial;position:initial;color:initial;font-size:inherit;transition:none;cursor:pointer}.Vlt-dropdown__panel label input{height:0}input.main{cursor:pointer;padding-right:76px}.Vlt-input.has-append-button .Vlt-composite__append.right-actions{right:42px}.Vlt-composite__append.right-actions{position:absolute;top:5px;right:53px;cursor:pointer}.Vlt-composite__append.right-actions .Vlt-composite__append--icon{width:36px;outline:none;position:initial;display:inline-block}.Vlt-composite__append.right-actions .Vlt-composite__append--icon svg{height:14px;width:14px}.Vlt-composite__append.right-actions .Vlt-composite__append--icon:hover svg,.Vlt-composite__append.right-actions .Vlt-composite__append--icon:focus svg{fill:var(--vgip-meta-input-accent-color)}.vgip-disable .Vlt-composite__append{cursor:not-allowed;pointer-events:none}.Vlt-search_wrap{padding-top:10px}.Vlt-search_wrap .vgip-search_input{padding:8px 36px 8px 38px;width:100%;border:1px solid var(--vgip-meta-input-border-color)!important;border-radius:6px!important}.Vlt-search_wrap .vgip-search_input:focus,.Vlt-search_wrap .vgip-search_input:active,.Vlt-search_wrap .vgip-search_input:hover{border-color:var(--vgip-meta-input-active-border-color)!important}.Vlt-search_wrap .Vlt-composite__append--icon{cursor:pointer}.Vlt-search_wrap .Vlt-composite__append--icon svg{height:14px;width:14px}.Vlt-search_wrap .Vlt-composite__append--icon:focus svg,.Vlt-search_wrap .Vlt-composite__append--icon:active svg,.Vlt-search_wrap .Vlt-composite__append--icon:hover svg{fill:var(--vgip-meta-input-accent-color)}\n"] }]
|
|
536
|
+
args: [{ viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div class='vgip-meta-field-preview' *ngIf='preview && model'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>\n {{showText}}\n </div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element\"\n [ngClass]=\"{ 'Vlt-form__element--big': !meta.small ,'has-value': f.value, active: keyListenerActive, 'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (ft | metaModel ).touched), 'no-x': meta.noX }\">\n <div class=\"Vlt-composite Vlt-dropdown Vlt-input\" style='display: block;'\n [ngClass]=\"{ 'has-append-button': isCreatable && !disabled }\">\n <div class=\"Vlt-select\">\n <label class='wrapper'>\n <label class='Vlt-truncate'>{{meta.label || meta.name}}<span *ngIf='validations.required && options.length' class='Vlt-red'>*</span></label> <!-- eslint-disable-line -->\n <input class='main' [required]='validations.required && !!options.length' readonly [ngModel]='showText'\n #ft='ngModel' [ngModelOptions]=\"{standalone: true}\" type=\"text\"\n [placeholder]=\"meta.placeholder || ' '\" (click)='onActivated($event)' (focus)='onActivated($event)'\n (blur)='onBlur($event)' [ngClass]=\"{ 'standalone': meta.standalone }\"\n [disabled]='disabled' [attr.aria-label]='meta.label' />\n </label>\n <select class='model' [required]='validations.required && !!options.length' style='display: none;'\n [(ngModel)]='model' [ngModelOptions]=\"{standalone: meta.standalone}\"\n (ngModelChange)=\"onModelChange($event)\" #f='ngModel' [name]='name'></select>\n <div *ngIf='searching' class='search-progress'>\n <div class=\"container\">\n <div class=\"bar Vlt-bg-purple\"></div>\n </div>\n </div>\n <div class='Vlt-composite__append right-actions'>\n <a href='#' *ngIf='model && !meta.noX && !disabled' class=\"Vlt-composite__append--icon\"\n (click)='clear($event)'>\n <div class=\"Vlt-composite__icon\">\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\" />\n </svg>\n </div>\n </a>\n </div>\n </div>\n <div class='Vlt-dropdown__panel'>\n <div class=\"Vlt-dropdown__panel__content Vlt-dropdown__panel__content--scroll-area\">\n <!-- <div class=\"Vlt-dropdown__title\" style='padding-left: 15px;'>\n Select ({{options.length}})\n <div class=\"Vlt-dropdown__close Vlt-white\" (click)='dismissDropdown($event)'>\n <svg class='Vlt-icon Vlt-icon--small'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/></svg>\n </div>\n </div> -->\n <div class=\"Vlt-dropdown__block Vlt-search_wrap\">\n <div *ngIf=\"optionsBackup.length > 12\" class=\"Vlt-composite\" [ngClass]=\"{'vgip-disable': disabled}\">\n <div class=\"Vlt-composite__prepend Vlt-composite__prepend--icon\"\n style=\"top: 0; padding-top: 15px;\">\n <div class=\"Vlt-composite__icon\">\n <svg class='Vlt-grey'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-search\"></use>\n </svg>\n </div>\n </div>\n <div class=\"Vlt-input\">\n <input type=\"text\" class=\"vgip-search_input\" [(ngModel)]=\"searchInputText\" placeholder=\"Search\" (input)=\"onSearchChange()\" (blur)='onBlur($event)' [ngModelOptions]=\"{standalone: true}\">\n </div>\n <a href='#' class=\"Vlt-composite__append--icon\" style=\"top: 2px;\" (click)=\"clearSearchField($event)\" [hidden]=\"!searchInputText\">\n <div class=\"Vlt-composite__icon\">\n <svg class='Vlt-icon Vlt-icon--small'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/>\n </svg>\n </div>\n </a>\n </div>\n </div>\n <div *ngIf='dropdown' class='Vlt-dropdown__scroll'>\n <a href='#' [ngClass]=\"{ 'Vlt-dropdown__link--selected': activeSuggestionIndex === i }\"\n (click)='onOptionSelect($event, option)' *ngFor='let option of options; let i = index'\n class=\"Vlt-dropdown__link\">\n <div *ngIf='multiple' class=\"Vlt-checkbox\" style='width: 100%;'>\n <label>\n <span class=\"Vlt-checkbox__button\">\n <input type=\"checkbox\" [checked]='model && model.indexOf(option) !== -1' />\n <span class=\"Vlt-checkbox__icon\"></span>\n </span>\n {{option.label || (option.id === '' ? '--empty--' : option)}}\n </label>\n </div>\n <div *ngIf='!multiple' style='padding: 12px 20px;'>{{option.label || (option.id === '' ?\n '--empty--' : option)}}</div>\n </a>\n <!-- No Option Found -->\n <div class=\"Vlt-dropdown__link\" *ngIf=\"options.length === 0\">\n <span style='padding: 12px 20px;'>\n No Option Found\n </span>\n <button *ngIf='isCreatable && !disabled' type=\"button\" class=\"Vlt-btn Vlt-btn--link\" (click)='openResource($event)'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\" />\n </svg> Add new\n </button>\n </div>\n </div>\n <div *ngIf='!multiple' class=\"Vlt-dropdown__block\"></div>\n <div *ngIf='multiple' class=\"Vlt-dropdown__block Vlt-dropdown__block--nowrap\"\n style='padding: 8px 16px 16px;'>\n <button (click)='clear($event)' type='button'\n class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small Vlt-btn--outline\"\n style='margin-right: 8px;'>Clear all</button>\n <button (click)='dismissDropdown($event)' type='button'\n class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small\">Done</button>\n </div>\n </div>\n </div>\n <!-- <span *ngIf='isCreatable'>\n <button type='button' (click)='openResource($event)' class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--icon Vlt-btn--large\" style='margin-left: 12px;'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>\n </button>\n </span> -->\n <div *ngIf='isCreatable && !disabled' class=\"Vlt-composite__append\">\n <button (focus)='onActivated($event)' (blur)='onBlur($event)' type='button' (click)='openResource($event)'\n class=\"Vlt-btn Vlt-btn--white Vlt-btn--icon add-button\" aria-label='Add new'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\" />\n </svg>\n </button>\n </div>\n </div>\n <small *ngIf='f.invalid && ((f | metaModel)._parent.submitted || ((ft | metaModel).touched && keyListenerActive))'\n class=\"Vlt-form__element__error\">\n <span *ngIf=\"f.errors.required\">Required. </span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}} </span>\n </small>\n <small *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n</div>\n", styles: [".Vlt-form__element.no-x input.main{padding-right:40px}.Vlt-form__element--big:not(.has-value)>.Vlt-input>.Vlt-select>label>label{font-size:1.6rem;margin-top:-.8rem;top:50%}.Vlt-form__element--big input[readonly].main:not([disabled]){background:var(--vgip-meta-input-bg-color);border:1px solid var(--vgip-meta-input-border-color)}.Vlt-form__element--big:hover input[readonly].main,.Vlt-form__element--big:hover .Vlt-composite__append button,.Vlt-form__element--big:focus input[readonly].main,.Vlt-form__element--big:focus .Vlt-composite__append button,.Vlt-form__element--big.active input[readonly].main,.Vlt-form__element--big.active .Vlt-composite__append button{border-color:var(--vgip-meta-input-active-border-color)}.Vlt-form__element--big.Vlt-form__element--error input[readonly].main,.Vlt-form__element--big.Vlt-form__element--error .Vlt-composite__append button{border-color:#f25a6b;box-shadow:none}.Vlt-form__element--big .Vlt-select:after{background-image:var(--vgip-meta-dropdown-icon);margin-right:2px}.Vlt-form__element--big .Vlt-form__element__hint{color:var(--vgip-meta-input-hint-color)}.Vlt-composite.has-append-button input[readonly].main{border-top-right-radius:0;border-bottom-right-radius:0;border-right:0}.Vlt-composite.has-append-button .Vlt-select:after{margin-right:-10px}.Vlt-composite__append{z-index:initial}.Vlt-composite__append button{height:48px;background:var(--vgip-meta-input-bg-color);border-color:var(--vgip-meta-input-border-color);padding-right:16px;padding-left:16px;border-left:0}.Vlt-composite__append button:hover{background:var(--vgip-meta-input-action-hover-bg-color)}.Vlt-composite__append button svg{margin:-2px 0 0;fill:var(--vgip-meta-input-accent-color)}.Vlt-dropdown__panel{width:100%}.Vlt-dropdown__panel .Vlt-dropdown__link{padding:0 20px 0 0}.Vlt-dropdown__panel .Vlt-dropdown__link.Vlt-dropdown__link--selected{background:rgba(44,45,48,.05)}.Vlt-dropdown__panel label{margin-top:0;padding:12px 20px;top:0;left:0;pointer-events:initial;position:initial;color:initial;font-size:inherit;transition:none;cursor:pointer}.Vlt-dropdown__panel label input{height:0}input.main{cursor:pointer;padding-right:76px}input.main:disabled{cursor:not-allowed}.Vlt-input.has-append-button .Vlt-composite__append.right-actions{right:42px}.Vlt-composite__append.right-actions{position:absolute;top:5px;right:53px;cursor:pointer}.Vlt-composite__append.right-actions .Vlt-composite__append--icon{width:36px;outline:none;position:initial;display:inline-block}.Vlt-composite__append.right-actions .Vlt-composite__append--icon svg{height:14px;width:14px}.Vlt-composite__append.right-actions .Vlt-composite__append--icon:hover svg,.Vlt-composite__append.right-actions .Vlt-composite__append--icon:focus svg{fill:var(--vgip-meta-input-accent-color)}.vgip-disable .Vlt-composite__append{cursor:not-allowed;pointer-events:none}.Vlt-search_wrap{padding-top:10px}.Vlt-search_wrap .vgip-search_input{padding:8px 36px 8px 38px;width:100%;border:1px solid var(--vgip-meta-input-border-color)!important;border-radius:6px!important}.Vlt-search_wrap .vgip-search_input:focus,.Vlt-search_wrap .vgip-search_input:active,.Vlt-search_wrap .vgip-search_input:hover{border-color:var(--vgip-meta-input-active-border-color)!important}.Vlt-search_wrap .Vlt-composite__append--icon{cursor:pointer}.Vlt-search_wrap .Vlt-composite__append--icon svg{height:14px;width:14px}.Vlt-search_wrap .Vlt-composite__append--icon:focus svg,.Vlt-search_wrap .Vlt-composite__append--icon:active svg,.Vlt-search_wrap .Vlt-composite__append--icon:hover svg{fill:var(--vgip-meta-input-accent-color)}\n"] }]
|
|
514
537
|
}], ctorParameters: function () { return [{ type: MetaReferenceService }, { type: MetaResourceService }, { type: i0.ViewContainerRef }]; } });
|
|
515
538
|
|
|
516
539
|
export { FieldSelect };
|
|
517
|
-
//# sourceMappingURL=vgip-meta-ui-index-
|
|
540
|
+
//# sourceMappingURL=vgip-meta-ui-index-94c9df13.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vgip-meta-ui-index-94c9df13.mjs","sources":["../../../projects/meta-ui/src/lib/fieldSelect/index.ts","../../../projects/meta-ui/src/lib/fieldSelect/view.html"],"sourcesContent":["import { Component, OnInit, ViewContainerRef } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { MetaReferenceService } from '../services/metaReference';\nimport { MetaResourceService, IMetaResourceConfig } from '../services/metaResource';\nimport { MetaRefDialog } from '../refDialog';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n})\nexport class FieldSelect extends FieldAbstract implements OnInit {\n multiple: boolean;\n input: HTMLInputElement;\n dropdown: HTMLElement;\n dropdownScrollContainer: HTMLElement;\n showText: string;\n activeSuggestionIndex: number;\n value: any;\n isCreatable = false;\n asyncOptions: Array<any>;\n searching: boolean;\n filteredOptions: Array<any>;\n searchInputText: '';\n searchInput: HTMLInputElement;\n\n constructor(\n private referenceService: MetaReferenceService,\n private metaResource: MetaResourceService,\n private viewContainerRef: ViewContainerRef\n ) {\n super();\n }\n\n get options() {\n return this.filteredOptions || this.asyncOptions || this.meta.options || this.meta.picklist || [];\n }\n\n get groupedOptions() {\n return this.options.reduce((r, { group }) => {\n if (!r.some(o => o.group === group)) {\n r.push({ group, groupItem: this.options.filter(v => v.group === group) });\n }\n return r;\n }, []);\n }\n\n get resourceService() {\n if (!this.metaResourceService) {\n const metaResourceConfig: IMetaResourceConfig = {\n integrationCode: this.integrationCode,\n resourceType: this.resourceType\n };\n this.metaResourceService = this.metaResource.new(metaResourceConfig);\n }\n return this.metaResourceService;\n }\n\n get optionsBackup() {\n return this.asyncOptions || this.meta.options || this.meta.picklist || [];\n }\n\n // static setup(instance, parent, meta) { } // eslint-disable-line @typescript-eslint/no-unused-vars\n\n ngOnInit() {\n // console.log('parent', this.parent);\n this.validationAttributes = ['required'];\n this.multiple = (this.meta.type === 'multipicklist') || this.meta.multiple;\n const origValue = this.parent[this.meta.name];\n if (this.meta.reference) {\n this.isCreatable = true;\n }\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (this.multiple) {\n if (value && value instanceof Array === false) {\n for (const o of this.options) {\n if ((value.id || value) === (o.id || o.value || o.name || 0)) {\n this.model = [o];\n this.value = [this.modelToValue(o, this.meta.valueType)];\n break;\n }\n }\n }\n if (!value || value.length) {\n const values = (value instanceof Array) ? value : (value || '').split(';'); // should not handle incorrect values\n this.value = [];\n this.model = [];\n for (const v of values) {\n if (v) {\n for (const o of this.options) {\n if ((v.id || v) === (o.id || o.value || o.name || 0)) {\n this.model.push(o);\n this.value.push(this.modelToValue(o, this.meta.valueType));\n break;\n }\n }\n }\n }\n if (!this.model.length && !this.isPersistedParent) {\n delete this.model;\n delete this.value;\n delete this.showText;\n } else {\n this.showText = (this.model || []).map((o) => o.label || o).join(', ');\n }\n }\n } else {\n if (value) {\n for (const o of this.options) {\n if ((value.id || value) === (o.id || o.value || o.name || o)) {\n this.model = o;\n this.value = this.modelToValue(o, this.meta.valueType);\n this.showText = o.label || o;\n break;\n }\n }\n } else {\n delete this.model;\n delete this.value;\n delete this.showText;\n }\n }\n this.onSubjectChange(this.model);\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n\n if (origValue) {\n this.parent[this.meta.name] = origValue;\n }\n\n if (this.default && !this.model) {\n setTimeout(() => {\n if (!this.model) {\n this.parent[this.meta.name] = this.default.id || this.default;\n }\n }, 0);\n }\n\n if (typeof (this.meta.enabled) !== 'undefined') {\n if (typeof (this.meta.enabled) === 'object') {\n for (const par of Object.keys(this.meta.enabled)) {\n const parValue = this.parent[par];\n if (parValue) {\n // logic for specific values, this works only for true\n } else {\n this.logicalDisabled = true;\n this.clear();\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(par)) {\n this.logicalDisabled = !value[par];\n if (this.logicalDisabled) {\n this.clear();\n } else {\n this.filterOptions();\n }\n }\n });\n }\n this.filterOptions();\n }\n }\n\n if (this.meta.search) {\n const searchParams = this.meta.search.params;\n if (searchParams) {\n for (const par of Object.keys(searchParams)) {\n const parValue = this.parent[searchParams[par]];\n if (parValue) {\n const params = {};\n params[par] = parValue;\n this.searchOptions(params);\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value?.hasOwnProperty(searchParams[par])) {\n if (!this.logicalDisabled) {\n this.searchOptions(value);\n }\n }\n });\n }\n }\n }\n }\n\n onActivated(ev) {\n // ev.preventDefault();\n // ev.stopPropagation();\n this.input = ev.srcElement;\n if (!this.dropdown) {\n this.dropdown = ev.srcElement.parentNode.parentNode.parentNode;\n this.searchInput = this.dropdown.querySelector('.vgip-search_input');\n }\n this.showDropdown();\n }\n\n detectSearchBlock(element) {\n return this.elementRef.nativeElement.querySelector('.Vlt-search_wrap').contains(element);\n }\n\n onBlur(ev) {\n let internalControl = false;\n if (ev.relatedTarget) {\n\n if (!this.detectSearchBlock(ev.relatedTarget) && !this.elementRef.nativeElement.contains(ev.relatedTarget)) {\n this.dismissDropdown();\n } else {\n internalControl = true;\n }\n }\n if (this.keyListenerActive && !internalControl) {\n this.input.removeEventListener('keydown', this.keydown);\n if (this.searchInput) {\n this.searchInput.removeEventListener('keydown', this.keydown);\n }\n setTimeout(() => {\n if (!this.keyListenerActive) {\n document.removeEventListener('click', this.clickout);\n }\n }, 400);\n delete this.keyListenerActive;\n }\n this.onLeave.emit(ev);\n }\n\n onOptionSelect(ev, option) {\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n this.focus();\n if (this.multiple) {\n if (!this.model) {\n this.model = [];\n }\n const optionIndex = this.model.indexOf(option);\n if (optionIndex === -1) {\n this.model.push(option);\n } else {\n this.model.splice(optionIndex, 1);\n if (!this.model.length) {\n delete this.model;\n }\n }\n this.onModelChange(this.model);\n if (this.model) {\n this.showText = (this.model || []).map((o) => o.label || o).join(', ');\n } else {\n delete this.showText;\n }\n } else {\n this.dismissDropdown();\n if (typeof option !== 'undefined') {\n this.model = option;\n this.onModelChange(option);\n this.showText = option.label || (option.id === '' ? '--empty--' : option);\n if (typeof (option) === 'object' && !option.id && option.id !== '') {\n delete this.showText;\n }\n }\n }\n }\n\n clear(ev?) {\n delete this.model;\n this.onModelChange(this.model);\n delete this.showText;\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n }\n }\n\n openResource(ev) {\n if (typeof(this.meta.reference.creatable) === 'function') {\n return this.meta.reference.creatable(this);\n }\n const refDialogComponent = this.viewContainerRef.createComponent(MetaRefDialog);\n let theme = this.elementRef.nativeElement.dataset.theme;\n if (!theme || theme === 'inherit') {\n let parentComponent = this.elementRef.nativeElement.closest('vgip-meta-layout');\n if (parentComponent) {\n theme = parentComponent.dataset.theme;\n }\n if (!theme || theme === 'inherit') {\n parentComponent = this.elementRef.nativeElement.closest('vgip-meta-resource');\n if (parentComponent) {\n theme = parentComponent.dataset.theme;\n }\n }\n }\n this.referenceService.openDialog(\n refDialogComponent, this.metaResource, this.integrationCode, this.meta.reference, null, false, null, theme, this.overlayContainer\n ).subscribe((result: any) => {\n if (result) {\n const existingOptions = (this.meta.options || []).find((o) => (o.id === result.id && o.type === result.type));\n if (existingOptions) {\n existingOptions.label = result.label;\n } else {\n if (!this.meta.options) {\n this.meta.options = [];\n }\n this.meta.options.unshift(result);\n }\n this.onOptionSelect(ev, result);\n }\n });\n }\n\n showDropdown() {\n this.dropdown.classList.add('Vlt-dropdown--expanded');\n if (!this.keyListenerActive) {\n if (this.searchInput) {\n this.searchInput.focus(); // Focus directly on search input first visit\n this.searchInput.addEventListener('keydown', this.keydown);\n }\n this.input.addEventListener('keydown', this.keydown);\n setTimeout(() => {\n document.addEventListener('click', this.clickout);\n }, 200);\n this.keyListenerActive = true;\n }\n if (this.options && this.model) {\n for (let suggestionIndex = 0; suggestionIndex < this.options.length; suggestionIndex++) {\n if (this.model === this.options[suggestionIndex]) {\n this.activeSuggestionIndex = suggestionIndex;\n break;\n }\n }\n }\n this.ensureDropdownIsVisible();\n }\n\n dismissDropdown(event?) {\n if (event) {\n this.focus();\n }\n if (this.dropdown) {\n this.dropdown.classList.remove('Vlt-dropdown--expanded');\n }\n if (this.searchInput) {\n this.clearSearchField();\n }\n delete this.activeSuggestionIndex;\n }\n\n onSearchChange() {\n const search = new RegExp(this.searchInputText, 'gi');\n if (this.searchInputText === '') {\n this.filteredOptions = [...this.optionsBackup];\n } else {\n this.filteredOptions = this.optionsBackup.filter(option => (option.label || option.id || option.name || option).match(search));\n }\n }\n\n clearSearchField(ev?) {\n this.searchInputText = '';\n this.onSearchChange();\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n }\n }\n\n private ensureDropdownIsVisible() {\n setTimeout(() => {\n const holder = this.dropdown.closest('.Vlt-card__content, .Vlt-modal__content');\n if (holder) {\n const el = this.elementRef.nativeElement.querySelector('.Vlt-dropdown__panel');\n const elRect = el.getBoundingClientRect();\n const holderRect = holder.getBoundingClientRect();\n if (holderRect.top + holderRect.height < elRect.top + elRect.height) {\n el.scrollIntoView({ block: 'end' });\n }\n }\n }, 400);\n }\n\n private ensureDropdownOptionIsVisible() {\n if (!this.dropdownScrollContainer) {\n this.dropdownScrollContainer = this.dropdown.querySelector('.Vlt-dropdown__scroll');\n }\n if (this.dropdownScrollContainer && typeof (this.activeSuggestionIndex) === 'number') {\n const scrollTop = 44 * this.activeSuggestionIndex;\n const scrollBottom = 44 * (this.activeSuggestionIndex - 7);\n if (scrollTop < this.dropdownScrollContainer.scrollTop) {\n this.dropdownScrollContainer.scrollTop = scrollTop;\n } else if (scrollBottom > this.dropdownScrollContainer.scrollTop) {\n this.dropdownScrollContainer.scrollTop = scrollBottom;\n }\n }\n }\n\n private filterOptions() {\n this.asyncOptions = [];\n if (!this.logicalDisabled) {\n for (const o of this.meta.options) {\n if (o.for) {\n for (const par of Object.keys(o.for)) {\n const parValue = this.parent[par];\n if (o.for[par].indexOf(parValue) !== -1) {\n this.asyncOptions.push(o);\n }\n }\n } else {\n this.asyncOptions.push(o);\n }\n }\n }\n // remove current selection if not one of the filtered options\n if (this.model && this.asyncOptions.indexOf(this.model) === -1) {\n delete this.model;\n delete this.value;\n delete this.showText;\n delete this.parent[this.meta.name];\n }\n }\n\n private clickout = (event) => {\n if (\n event.target.className === 'Vlt-dropdown__link' && this.elementRef.nativeElement.contains(event.target)\n ) {\n this.focus();\n } else if (\n event.target !== this.input &&\n !event.target.classList.contains('Vlt-dropdown__block') &&\n !this.detectSearchBlock(event.target)\n ) {\n this.dismissDropdown();\n } else if (this.detectSearchBlock(event.target)) {\n event.target.focus();\n } else {\n this.focus();\n }\n };\n\n private keydown = (event) => {\n switch (event.key) {\n case 'ArrowDown': {\n this.showDropdown();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = 0;\n } else {\n this.activeSuggestionIndex++;\n if (this.activeSuggestionIndex >= this.options.length) {\n this.activeSuggestionIndex = 0;\n }\n }\n this.ensureDropdownOptionIsVisible();\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n case 'ArrowUp': {\n this.showDropdown();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = this.options.length - 1;\n } else {\n this.activeSuggestionIndex--;\n if (this.activeSuggestionIndex < 0) {\n this.activeSuggestionIndex = this.options.length - 1;\n }\n }\n this.ensureDropdownOptionIsVisible();\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n case 'Enter':\n case 'Space':\n case ' ': {\n if (typeof (this.activeSuggestionIndex) !== 'undefined') {\n event.preventDefault();\n event.stopPropagation();\n this.onOptionSelect(event, this.options[this.activeSuggestionIndex]);\n if (!this.multiple) {\n delete this.activeSuggestionIndex;\n }\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n event.stopPropagation();\n this.dismissDropdown();\n break;\n }\n case 'Backspace': {\n if (!this.dropdown.classList.contains('Vlt-dropdown--expanded')) {\n event.preventDefault();\n event.stopPropagation();\n this.clear();\n }\n break;\n }\n }\n };\n\n private searchOptions(params?) { // eslint-disable-line @typescript-eslint/no-unused-vars\n let searchUrl = `/fields/${this.meta.name}/search`;\n if (this.meta.search) {\n const searchParams = this.meta.search.params;\n if (this.meta.search.url) {\n searchUrl = this.meta.search.url.replace(/\\${\\s*([\\w.]+)\\s*}/g, (match, key) => {\n if (searchParams.hasOwnProperty(key)) {\n const props = searchParams[key].split('.');\n const field = props[0];\n const prop = props[1];\n delete searchParams[key]; // if it is URL param, remove it as query param\n let parValue = this.parent[field];\n if (parValue) {\n if (prop) {\n parValue = parValue[prop];\n }\n if (parValue) {\n return parValue;\n }\n }\n }\n return 'undefined';\n });\n }\n if (searchParams) {\n for (const par of Object.keys(searchParams)) {\n const val = this.parent[searchParams[par]];\n if (val) {\n searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}${par}=${val.id || val}`;\n }\n }\n }\n }\n this.searching = true;\n this.resourceService.getByPath(searchUrl).subscribe((options) => {\n this.asyncOptions = options;\n let validValue = false;\n if (this.value) {\n for (const o of options) {\n if ((o.id || o) === (this.value.id || this.value)) {\n validValue = true;\n }\n }\n if (!validValue) {\n this.clear();\n }\n }\n delete this.searching;\n });\n }\n\n}\n","<div class='vgip-meta-field-preview' *ngIf='preview && model'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>\n {{showText}}\n </div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element\"\n [ngClass]=\"{ 'Vlt-form__element--big': !meta.small ,'has-value': f.value, active: keyListenerActive, 'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (ft | metaModel ).touched), 'no-x': meta.noX }\">\n <div class=\"Vlt-composite Vlt-dropdown Vlt-input\" style='display: block;'\n [ngClass]=\"{ 'has-append-button': isCreatable && !disabled }\">\n <div class=\"Vlt-select\">\n <label class='wrapper'>\n <label class='Vlt-truncate'>{{meta.label || meta.name}}<span *ngIf='validations.required && options.length' class='Vlt-red'>*</span></label> <!-- eslint-disable-line -->\n <input class='main' [required]='validations.required && !!options.length' readonly [ngModel]='showText'\n #ft='ngModel' [ngModelOptions]=\"{standalone: true}\" type=\"text\"\n [placeholder]=\"meta.placeholder || ' '\" (click)='onActivated($event)' (focus)='onActivated($event)'\n (blur)='onBlur($event)' [ngClass]=\"{ 'standalone': meta.standalone }\"\n [disabled]='disabled' [attr.aria-label]='meta.label' />\n </label>\n <select class='model' [required]='validations.required && !!options.length' style='display: none;'\n [(ngModel)]='model' [ngModelOptions]=\"{standalone: meta.standalone}\"\n (ngModelChange)=\"onModelChange($event)\" #f='ngModel' [name]='name'></select>\n <div *ngIf='searching' class='search-progress'>\n <div class=\"container\">\n <div class=\"bar Vlt-bg-purple\"></div>\n </div>\n </div>\n <div class='Vlt-composite__append right-actions'>\n <a href='#' *ngIf='model && !meta.noX && !disabled' class=\"Vlt-composite__append--icon\"\n (click)='clear($event)'>\n <div class=\"Vlt-composite__icon\">\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\" />\n </svg>\n </div>\n </a>\n </div>\n </div>\n <div class='Vlt-dropdown__panel'>\n <div class=\"Vlt-dropdown__panel__content Vlt-dropdown__panel__content--scroll-area\">\n <!-- <div class=\"Vlt-dropdown__title\" style='padding-left: 15px;'>\n Select ({{options.length}})\n <div class=\"Vlt-dropdown__close Vlt-white\" (click)='dismissDropdown($event)'>\n <svg class='Vlt-icon Vlt-icon--small'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/></svg>\n </div>\n </div> -->\n <div class=\"Vlt-dropdown__block Vlt-search_wrap\">\n <div *ngIf=\"optionsBackup.length > 12\" class=\"Vlt-composite\" [ngClass]=\"{'vgip-disable': disabled}\">\n <div class=\"Vlt-composite__prepend Vlt-composite__prepend--icon\"\n style=\"top: 0; padding-top: 15px;\">\n <div class=\"Vlt-composite__icon\">\n <svg class='Vlt-grey'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-search\"></use>\n </svg>\n </div>\n </div>\n <div class=\"Vlt-input\">\n <input type=\"text\" class=\"vgip-search_input\" [(ngModel)]=\"searchInputText\" placeholder=\"Search\" (input)=\"onSearchChange()\" (blur)='onBlur($event)' [ngModelOptions]=\"{standalone: true}\">\n </div>\n <a href='#' class=\"Vlt-composite__append--icon\" style=\"top: 2px;\" (click)=\"clearSearchField($event)\" [hidden]=\"!searchInputText\">\n <div class=\"Vlt-composite__icon\">\n <svg class='Vlt-icon Vlt-icon--small'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/>\n </svg>\n </div>\n </a>\n </div>\n </div>\n <div *ngIf='dropdown' class='Vlt-dropdown__scroll'>\n <a href='#' [ngClass]=\"{ 'Vlt-dropdown__link--selected': activeSuggestionIndex === i }\"\n (click)='onOptionSelect($event, option)' *ngFor='let option of options; let i = index'\n class=\"Vlt-dropdown__link\">\n <div *ngIf='multiple' class=\"Vlt-checkbox\" style='width: 100%;'>\n <label>\n <span class=\"Vlt-checkbox__button\">\n <input type=\"checkbox\" [checked]='model && model.indexOf(option) !== -1' />\n <span class=\"Vlt-checkbox__icon\"></span>\n </span>\n {{option.label || (option.id === '' ? '--empty--' : option)}}\n </label>\n </div>\n <div *ngIf='!multiple' style='padding: 12px 20px;'>{{option.label || (option.id === '' ?\n '--empty--' : option)}}</div>\n </a>\n <!-- No Option Found -->\n <div class=\"Vlt-dropdown__link\" *ngIf=\"options.length === 0\">\n <span style='padding: 12px 20px;'>\n No Option Found\n </span>\n <button *ngIf='isCreatable && !disabled' type=\"button\" class=\"Vlt-btn Vlt-btn--link\" (click)='openResource($event)'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\" />\n </svg> Add new\n </button>\n </div>\n </div>\n <div *ngIf='!multiple' class=\"Vlt-dropdown__block\"></div>\n <div *ngIf='multiple' class=\"Vlt-dropdown__block Vlt-dropdown__block--nowrap\"\n style='padding: 8px 16px 16px;'>\n <button (click)='clear($event)' type='button'\n class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small Vlt-btn--outline\"\n style='margin-right: 8px;'>Clear all</button>\n <button (click)='dismissDropdown($event)' type='button'\n class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small\">Done</button>\n </div>\n </div>\n </div>\n <!-- <span *ngIf='isCreatable'>\n <button type='button' (click)='openResource($event)' class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--icon Vlt-btn--large\" style='margin-left: 12px;'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>\n </button>\n </span> -->\n <div *ngIf='isCreatable && !disabled' class=\"Vlt-composite__append\">\n <button (focus)='onActivated($event)' (blur)='onBlur($event)' type='button' (click)='openResource($event)'\n class=\"Vlt-btn Vlt-btn--white Vlt-btn--icon add-button\" aria-label='Add new'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\" />\n </svg>\n </button>\n </div>\n </div>\n <small *ngIf='f.invalid && ((f | metaModel)._parent.submitted || ((ft | metaModel).touched && keyListenerActive))'\n class=\"Vlt-form__element__error\">\n <span *ngIf=\"f.errors.required\">Required. </span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}} </span>\n </small>\n <small *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n</div>\n"],"names":["i1.MetaReferenceService","i2.MetaResourceService","i3","i4","i5.MetaModelPipe"],"mappings":";;;;;;;;;;;;;;;AAYM,MAAO,WAAY,SAAQ,aAAa,CAAA;AAe5C,IAAA,WAAA,CACU,gBAAsC,EACtC,YAAiC,EACjC,gBAAkC,EAAA;AAE1C,QAAA,KAAK,EAAE,CAAC;QAJA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAsB;QACtC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QACjC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAV5C,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AAsZZ,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,KAAK,KAAI;YAC3B,IACE,KAAK,CAAC,MAAM,CAAC,SAAS,KAAK,oBAAoB,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EACvG;gBACA,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,aAAA;AAAM,iBAAA,IACL,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK;gBAC3B,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC;gBACvD,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,EACrC;gBACA,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,aAAA;iBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAC/C,gBAAA,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AACtB,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,aAAA;AACH,SAAC,CAAC;AAEM,QAAA,IAAA,CAAA,OAAO,GAAG,CAAC,KAAK,KAAI;YAC1B,QAAQ,KAAK,CAAC,GAAG;gBACf,KAAK,WAAW,EAAE;oBAChB,IAAI,CAAC,YAAY,EAAE,CAAC;oBACpB,IAAI,QAAQ,IAAI,CAAC,qBAAqB,CAAC,KAAK,WAAW,EAAE;AACvD,wBAAA,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;AAChC,qBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBAC7B,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACrD,4BAAA,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;AAChC,yBAAA;AACF,qBAAA;oBACD,IAAI,CAAC,6BAA6B,EAAE,CAAC;oBACrC,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;oBACxB,MAAM;AACP,iBAAA;gBACD,KAAK,SAAS,EAAE;oBACd,IAAI,CAAC,YAAY,EAAE,CAAC;oBACpB,IAAI,QAAQ,IAAI,CAAC,qBAAqB,CAAC,KAAK,WAAW,EAAE;wBACvD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AACtD,qBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7B,wBAAA,IAAI,IAAI,CAAC,qBAAqB,GAAG,CAAC,EAAE;4BAClC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AACtD,yBAAA;AACF,qBAAA;oBACD,IAAI,CAAC,6BAA6B,EAAE,CAAC;oBACrC,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;oBACxB,MAAM;AACP,iBAAA;AACD,gBAAA,KAAK,OAAO,CAAC;AACb,gBAAA,KAAK,OAAO,CAAC;gBACb,KAAK,GAAG,EAAE;oBACR,IAAI,QAAQ,IAAI,CAAC,qBAAqB,CAAC,KAAK,WAAW,EAAE;wBACvD,KAAK,CAAC,cAAc,EAAE,CAAC;wBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,wBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACrE,wBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;4BAClB,OAAO,IAAI,CAAC,qBAAqB,CAAC;AACnC,yBAAA;AACF,qBAAA;oBACD,MAAM;AACP,iBAAA;gBACD,KAAK,QAAQ,EAAE;oBACb,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;oBACxB,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,MAAM;AACP,iBAAA;gBACD,KAAK,WAAW,EAAE;oBAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE;wBAC/D,KAAK,CAAC,cAAc,EAAE,CAAC;wBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;wBACxB,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,qBAAA;oBACD,MAAM;AACP,iBAAA;AACF,aAAA;AACH,SAAC,CAAC;KAvdD;AAED,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;KACnG;AAED,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,KAAI;AAC1C,YAAA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE;gBACnC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;AAC3E,aAAA;AACD,YAAA,OAAO,CAAC,CAAC;SACV,EAAE,EAAE,CAAC,CAAC;KACR;AAED,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC7B,YAAA,MAAM,kBAAkB,GAAwB;gBAC9C,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAC;YACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACtE,SAAA;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACjC;AAED,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;KAC3E;;IAID,QAAQ,GAAA;;AAEN,QAAA,IAAI,CAAC,oBAAoB,GAAG,CAAC,UAAU,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC3E,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACvB,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACzB,SAAA;AACD,QAAA,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACjD,YAAA,GAAG,EAAE,CAAC,KAAK,KAAI;gBACb,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,oBAAA,IAAI,KAAK,IAAI,KAAK,YAAY,KAAK,KAAK,KAAK,EAAE;AAC7C,wBAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;4BAC5B,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE;AAC5D,gCAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACjB,gCAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gCACzD,MAAM;AACP,6BAAA;AACF,yBAAA;AACF,qBAAA;AACD,oBAAA,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;wBAC1B,MAAM,MAAM,GAAG,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3E,wBAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,wBAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,wBAAA,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;AACtB,4BAAA,IAAI,CAAC,EAAE;AACL,gCAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;oCAC5B,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE;AACpD,wCAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,wCAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;wCAC3D,MAAM;AACP,qCAAA;AACF,iCAAA;AACF,6BAAA;AACF,yBAAA;wBACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;4BACjD,OAAO,IAAI,CAAC,KAAK,CAAC;4BAClB,OAAO,IAAI,CAAC,KAAK,CAAC;4BAClB,OAAO,IAAI,CAAC,QAAQ,CAAC;AACtB,yBAAA;AAAM,6BAAA;AACL,4BAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxE,yBAAA;AACF,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,KAAK,EAAE;AACT,wBAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;4BAC5B,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE;AAC5D,gCAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,gCAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gCACvD,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;gCAC7B,MAAM;AACP,6BAAA;AACF,yBAAA;AACF,qBAAA;AAAM,yBAAA;wBACL,OAAO,IAAI,CAAC,KAAK,CAAC;wBAClB,OAAO,IAAI,CAAC,KAAK,CAAC;wBAClB,OAAO,IAAI,CAAC,QAAQ,CAAC;AACtB,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;aACvC;AACD,YAAA,GAAG,EAAE,MAAM,IAAI,CAAC,KAAK;YACrB,UAAU,EAAE,IAAI,CAAC,YAAY;AAC7B,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AACzC,SAAA;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC/B,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,oBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC;AAC/D,iBAAA;aACF,EAAE,CAAC,CAAC,CAAC;AACP,SAAA;QAED,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,WAAW,EAAE;YAC9C,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE;AAC3C,gBAAA,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;oBAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAClC,oBAAA,IAAI,QAAQ,EAAE;;AAEb,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;wBAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,qBAAA;oBACD,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;wBAC3C,IAAI,KAAK,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;4BACtC,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BACnC,IAAI,IAAI,CAAC,eAAe,EAAE;gCACxB,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,6BAAA;AAAM,iCAAA;gCACL,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,6BAAA;AACF,yBAAA;AACH,qBAAC,CAAC,CAAC;AACJ,iBAAA;gBACD,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,aAAA;AACF,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACpB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAC7C,YAAA,IAAI,YAAY,EAAE;gBAChB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;oBAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,oBAAA,IAAI,QAAQ,EAAE;wBACZ,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,wBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;AACvB,wBAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC5B,qBAAA;oBACD,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;wBAC3C,IAAI,KAAK,EAAE,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE;AAC5C,4BAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,gCAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3B,6BAAA;AACF,yBAAA;AACH,qBAAC,CAAC,CAAC;AACJ,iBAAA;AACF,aAAA;AACF,SAAA;KACF;AAED,IAAA,WAAW,CAAC,EAAE,EAAA;;;AAGZ,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,UAAU,CAAC;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;YAC/D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;AACtE,SAAA;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED,IAAA,iBAAiB,CAAC,OAAO,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC1F;AAED,IAAA,MAAM,CAAC,EAAE,EAAA;QACP,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,EAAE,CAAC,aAAa,EAAE;YAEpB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE;gBAC1G,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,aAAA;AAAM,iBAAA;gBACL,eAAe,GAAG,IAAI,CAAC;AACxB,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,eAAe,EAAE;YAC9C,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/D,aAAA;YACD,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;oBAC3B,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtD,iBAAA;aACF,EAAE,GAAG,CAAC,CAAC;YACR,OAAO,IAAI,CAAC,iBAAiB,CAAC;AAC/B,SAAA;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACvB;IAED,cAAc,CAAC,EAAE,EAAE,MAAM,EAAA;AACvB,QAAA,IAAI,EAAE,EAAE;YACN,EAAE,CAAC,cAAc,EAAE,CAAC;YACpB,EAAE,CAAC,eAAe,EAAE,CAAC;AACtB,SAAA;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,gBAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACjB,aAAA;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC/C,YAAA,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;AACtB,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzB,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAClC,gBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;oBACtB,OAAO,IAAI,CAAC,KAAK,CAAC;AACnB,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,gBAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxE,aAAA;AAAM,iBAAA;gBACL,OAAO,IAAI,CAAC,QAAQ,CAAC;AACtB,aAAA;AACF,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,YAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,gBAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;AACpB,gBAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAC3B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,WAAW,GAAG,MAAM,CAAC,CAAC;AAC1E,gBAAA,IAAI,QAAQ,MAAM,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE;oBAClE,OAAO,IAAI,CAAC,QAAQ,CAAC;AACtB,iBAAA;AACF,aAAA;AACF,SAAA;KACF;AAED,IAAA,KAAK,CAAC,EAAG,EAAA;QACP,OAAO,IAAI,CAAC,KAAK,CAAC;AAClB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC;AACrB,QAAA,IAAI,EAAE,EAAE;YACN,EAAE,CAAC,cAAc,EAAE,CAAC;YACpB,EAAE,CAAC,eAAe,EAAE,CAAC;AACrB,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;AAED,IAAA,YAAY,CAAC,EAAE,EAAA;AACb,QAAA,IAAI,QAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,UAAU,EAAE;YACxD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5C,SAAA;QACD,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QAChF,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC;AACxD,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS,EAAE;AACjC,YAAA,IAAI,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAChF,YAAA,IAAI,eAAe,EAAE;AACnB,gBAAA,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC;AACvC,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS,EAAE;gBACjC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC9E,gBAAA,IAAI,eAAe,EAAE;AACnB,oBAAA,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC;AACvC,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAC9B,kBAAkB,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAClI,CAAC,SAAS,CAAC,CAAC,MAAW,KAAI;AAC1B,YAAA,IAAI,MAAM,EAAE;AACV,gBAAA,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9G,gBAAA,IAAI,eAAe,EAAE;AACnB,oBAAA,eAAe,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AACtC,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACtB,wBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACxB,qBAAA;oBACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACnC,iBAAA;AACD,gBAAA,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AACjC,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAED,YAAY,GAAA;QACV,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5D,aAAA;YACD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACrD,UAAU,CAAC,MAAK;gBACd,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;aACnD,EAAE,GAAG,CAAC,CAAC;AACR,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC/B,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE;AAC9B,YAAA,KAAK,IAAI,eAAe,GAAG,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE;gBACtF,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;AAChD,oBAAA,IAAI,CAAC,qBAAqB,GAAG,eAAe,CAAC;oBAC7C,MAAM;AACP,iBAAA;AACF,aAAA;AACF,SAAA;QACD,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;AAED,IAAA,eAAe,CAAC,KAAM,EAAA;AACpB,QAAA,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,SAAA;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAC1D,SAAA;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC;KACnC;IAED,cAAc,GAAA;QACZ,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AACtD,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,EAAE,EAAE;YAC/B,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;AAChD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAChI,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,EAAG,EAAA;AAClB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,IAAI,EAAE,EAAE;YACN,EAAE,CAAC,cAAc,EAAE,CAAC;YACpB,EAAE,CAAC,eAAe,EAAE,CAAC;AACrB,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;IAEO,uBAAuB,GAAA;QAC7B,UAAU,CAAC,MAAK;YACd,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;AAChF,YAAA,IAAI,MAAM,EAAE;AACV,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;AAC/E,gBAAA,MAAM,MAAM,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;AAC1C,gBAAA,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;AAClD,gBAAA,IAAI,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE;oBACnE,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACrC,iBAAA;AACF,aAAA;SACF,EAAE,GAAG,CAAC,CAAC;KACT;IAEO,6BAA6B,GAAA;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;YACjC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;AACrF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,uBAAuB,IAAI,QAAQ,IAAI,CAAC,qBAAqB,CAAC,KAAK,QAAQ,EAAE;AACpF,YAAA,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC;YAClD,MAAM,YAAY,GAAG,EAAE,IAAI,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC;AAC3D,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE;AACtD,gBAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,GAAG,SAAS,CAAC;AACpD,aAAA;AAAM,iBAAA,IAAI,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE;AAChE,gBAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,GAAG,YAAY,CAAC;AACvD,aAAA;AACF,SAAA;KACF;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACjC,IAAI,CAAC,CAAC,GAAG,EAAE;oBACT,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;wBACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAClC,wBAAA,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;AACvC,4BAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,yBAAA;AACF,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,iBAAA;AACF,aAAA;AACF,SAAA;;AAED,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;YAC9D,OAAO,IAAI,CAAC,KAAK,CAAC;YAClB,OAAO,IAAI,CAAC,KAAK,CAAC;YAClB,OAAO,IAAI,CAAC,QAAQ,CAAC;YACrB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,SAAA;KACF;AAkFO,IAAA,aAAa,CAAC,MAAO,EAAA;QAC3B,IAAI,SAAS,GAAG,CAAW,QAAA,EAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA,OAAA,CAAS,CAAC;AACnD,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACpB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAC7C,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;AACxB,gBAAA,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE,GAAG,KAAI;AAC7E,oBAAA,IAAI,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;wBACpC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3C,wBAAA,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACvB,wBAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACtB,wBAAA,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;wBACzB,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClC,wBAAA,IAAI,QAAQ,EAAE;AACZ,4BAAA,IAAI,IAAI,EAAE;AACR,gCAAA,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3B,6BAAA;AACD,4BAAA,IAAI,QAAQ,EAAE;AACZ,gCAAA,OAAO,QAAQ,CAAC;AACjB,6BAAA;AACF,yBAAA;AACF,qBAAA;AACD,oBAAA,OAAO,WAAW,CAAC;AACrB,iBAAC,CAAC,CAAC;AACJ,aAAA;AACD,YAAA,IAAI,YAAY,EAAE;gBAChB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;oBAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,oBAAA,IAAI,GAAG,EAAE;AACP,wBAAA,SAAS,IAAI,CAAA,EAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAA,CAAE,CAAC;AACpF,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,KAAI;AAC9D,YAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;YAC5B,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,gBAAA,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;AACvB,oBAAA,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;wBACjD,UAAU,GAAG,IAAI,CAAC;AACnB,qBAAA;AACF,iBAAA;gBACD,IAAI,CAAC,UAAU,EAAE;oBACf,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,iBAAA;AACF,aAAA;YACD,OAAO,IAAI,CAAC,SAAS,CAAC;AACxB,SAAC,CAAC,CAAC;KACJ;+GA/hBU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,ECZxB,QAAA,EAAA,cAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,oiOAgIA,EDtHiB,MAAA,EAAA,CAAA,sgHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAA,CAAA,CAAA,EAAA;;4FAExD,WAAW,EAAA,UAAA,EAAA,CAAA;kBALvB,SAAS;oCAGO,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAA,QAAA,EAAA,oiOAAA,EAAA,MAAA,EAAA,CAAA,sgHAAA,CAAA,EAAA,CAAA;;;;;"}
|
|
@@ -3,7 +3,7 @@ import { Component } from '@angular/core';
|
|
|
3
3
|
import * as i2 from '@angular/forms';
|
|
4
4
|
import { ControlContainer, NgForm } from '@angular/forms';
|
|
5
5
|
import { F as FieldAbstract } from './vgip-meta-ui-fieldAbstract-9955be39.mjs';
|
|
6
|
-
import { t as templateBuilder, M as MetaContextService } from './vgip-meta-ui-index-
|
|
6
|
+
import { t as templateBuilder, M as MetaContextService } from './vgip-meta-ui-index-4e34299c.mjs';
|
|
7
7
|
import * as i1 from '@angular/common';
|
|
8
8
|
import * as i4 from 'ngx-quill';
|
|
9
9
|
import { M as MetaModelPipe } from './vgip-meta-ui-metaModel.pipe-6b803e66.mjs';
|
|
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
|
|
|
92
92
|
}], ctorParameters: function () { return [{ type: MetaContextService }]; } });
|
|
93
93
|
|
|
94
94
|
export { FieldRichtext };
|
|
95
|
-
//# sourceMappingURL=vgip-meta-ui-index-
|
|
95
|
+
//# sourceMappingURL=vgip-meta-ui-index-af0ec42f.mjs.map
|
package/fesm2022/{vgip-meta-ui-index-b3099377.mjs.map → vgip-meta-ui-index-af0ec42f.mjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vgip-meta-ui-index-
|
|
1
|
+
{"version":3,"file":"vgip-meta-ui-index-af0ec42f.mjs","sources":["../../../projects/meta-ui/src/lib/fieldRichtext/index.ts","../../../projects/meta-ui/src/lib/fieldRichtext/view.html"],"sourcesContent":["/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:35:13\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-03-26 17:15:50\n */\n\nimport { Component, OnInit } from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\n// import { QUILL_CONFIG_TOKEN, QuillConfig } from 'ngx-quill';\n\nimport { FieldAbstract } from '../fieldAbstract';\n// import { tMetaField } from '../../../metaTypes/tMetaField'\nimport { templateBuilder } from '../common/utils/templateBuilder';\nimport { MetaContextService } from '../services/metaContext';\n\n// export const quillConfig = {\n// modules: {\n// syntax: false,\n// toolbar: [\n// ['bold', 'italic', 'underline'],\n// [{ list: 'bullet' }],\n// [{ header: [1, 2, 3, 4, 5, 6, false] }],\n// [{ font: [] }],\n// [{ align: [] }]\n// ]\n// }\n// };\n\n@Component({\n templateUrl: './view.html',\n styleUrls: [\n './style.scss',\n './quill.scss'\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm },\n // { provide: QUILL_CONFIG_TOKEN, useValue: quillConfig }\n ]\n})\nexport class FieldRichtext extends FieldAbstract implements OnInit {\n // @Input() meta: any;\n active: boolean;\n quillConfigModules = {\n syntax: false,\n toolbar: [\n ['bold', 'italic', 'underline'],\n [{ list: 'bullet' }],\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\n [{ font: [] }],\n [{ align: [] }]\n ]\n };\n\n constructor( private metaContext: MetaContextService ) {\n super();\n }\n\n static setup(instance, parent, meta) {\n const d = meta.default || meta.defaultValue;\n if (d && !parent[meta.name]) {\n if (typeof(d) === 'string') {\n parent[meta.name] = d;\n } else {\n parent[meta.name] = d.id || d.value;\n }\n }\n }\n\n ngOnInit() {\n if (typeof(this.parent[this.meta.name]) === 'string') {\n this.parent[this.meta.name] = templateBuilder(this.metaContext, this.parent[this.meta.name]);\n }\n // if (this.default && !this.model) {\n // setTimeout(()=>{\n // if (typeof(this.default) == 'string') {\n // this.parent[this.meta.name] = this.default;\n // } else {\n // this.parent[this.meta.name] = this.default.id || this.default.value;\n // }\n // }, 0);\n // }\n }\n\n onModelChangeLocal(value) {\n if (!value && this.prevModel && this.isPersistedParent) {\n value = '';\n }\n this.onModelChange(value);\n }\n\n textToSpeech() {\n this.focus();\n }\n\n}\n","<div class='vgip-meta-field-preview' *ngIf='preview && parent[meta.name]'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>{{parent[meta.name]}}</div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element\" [ngClass]=\"{ 'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (fq | metaModel).touched) }\">\n <label class=\"Vlt-label\">{{meta.label || meta.name}}<span *ngIf='validations.required' class='Vlt-red'>*</span></label> <!-- eslint-disable-line -->\n <div class=\"Vlt-textarea\" [ngClass]='{ active: active }'>\n <input type='hidden' class='main model' [required]='validations.required' [minlength]='validations.minlength' [maxlength]='validations.maxlength' [(ngModel)]='parent[meta.name]' #f='ngModel' [name]='name'/>\n <quill-editor (onFocus)='active = true' (onBlur)='active = false' class='main model' [(ngModel)]='parent[meta.name]' #fq='ngModel' (ngModelChange)=\"onModelChangeLocal($event)\" [ngModelOptions]='{ standalone: true }' placeholder=' ' [modules]=\"quillConfigModules\"></quill-editor>\n </div>\n <small *ngIf='f.invalid && ((f | metaModel)._parent.submitted || (fq | metaModel).touched)' class=\"Vlt-form__element__error\">\n <span *ngIf=\"f.errors.required\">Required</span>\n <span *ngIf=\"f.errors.maxlength\">Length can not exceed {{validations.maxlength}} characters</span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}} </span>\n </small>\n <small *ngIf='meta.helpText' class=\"Vlt-form__element__hint\">{{meta.helpText}}</small>\n</div>\n"],"names":["i1.MetaContextService","i2","i3","i5.MetaModelPipe"],"mappings":"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"}
|