@vgip/meta-ui 1.8.3 → 1.8.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"vgip-meta-ui-index-718490b0.mjs","sources":["../../../projects/meta-ui/src/lib/services/metaTracker/index.ts","../../../projects/meta-ui/src/lib/fieldReference/index.ts","../../../projects/meta-ui/src/lib/fieldReference/view.html"],"sourcesContent":["/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:35:19\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-03-23 17:08:23\n */\n\nimport { Injectable, EventEmitter } from '@angular/core';\n\nexport interface IMetaTrackerEvent {\n integration?: string;\n resource?: string;\n field?: string;\n action?: string;\n value?: string;\n isContactable?: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetaTrackerService {\n integrationCode: string;\n resourceType: string;\n events: EventEmitter<IMetaTrackerEvent> = new EventEmitter();\n\n constructor() {}\n\n emit(event: IMetaTrackerEvent) {\n if (!event.integration) {\n event.integration = this.integrationCode || 'N/A';\n }\n if (!event.resource) {\n event.resource = this.resourceType || 'N/A';\n }\n this.events.emit(event);\n }\n}\n","import { Component, OnInit, ViewContainerRef } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { MetaReferenceService } from '../services/metaReference';\nimport { Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { MetaResourceService, IMetaResourceConfig } from '../services/metaResource';\nimport { MetaRefDialog } from '../refDialog';\nimport { MetaMsgService } from '../services/metaMsg';\nimport { MetaContextService } from '../services/metaContext';\nimport { IMetaTrackerEvent, MetaTrackerService } from '../services/metaTracker';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n})\nexport class FieldReference extends FieldAbstract implements OnInit {\n input: any;\n dropdown: HTMLElement;\n dropdownScrollContainer: HTMLElement;\n searching: boolean;\n searchResourceType: any = {};\n searchText: string;\n searchResults: Array<any>;\n searchError: any;\n activeSuggestionIndex: number;\n searchResourceTypesScope: string;\n searchTextChanged: Subject<string> = new Subject<string>();\n isCreatable = false;\n value: any;\n isPolymorphic: boolean;\n isSearchable: boolean;\n multiple: boolean;\n vr: MetaResourceService;\n externalLink: string;\n dropdownVisible = false;\n searchResourceTypeMeta: any = {\n type: 'select',\n name: 'resourceType',\n label: 'Type',\n options: [], // { label: '-- All types --' }],\n standalone: true\n };\n filteredSuggestions: Array<any> = [];\n placeHolderLabel: string;\n asyncSuggestions: Array<any>;\n smartSuggestions: Array<any> = [];\n\n constructor(\n private referenceService: MetaReferenceService,\n private metaResource: MetaResourceService,\n private metaMsgService: MetaMsgService,\n private metaContext: MetaContextService,\n private metaTracker: MetaTrackerService,\n private viewContainerRef: ViewContainerRef\n ) {\n super();\n }\n\n get disabled() {\n const superDisabled = this.logicalDisabled || this.validations.disabled || this.meta.disabled === true\n || (this.meta.updatable === false && this.isPersistedParent);\n this.searchResourceTypeMeta.disabled = superDisabled;\n return superDisabled;\n }\n\n get showTypes() {\n return (typeof (this.meta.showTypes) !== 'undefined') ? this.meta.showTypes : true;\n }\n\n get suggestions() {\n return this.smartSuggestions.concat(\n !this.searchResourceType.resourceType ?\n // eslint-disable-next-line max-len\n (this.asyncSuggestions || this.meta.suggestions || []) : (this.asyncSuggestions || this.meta.suggestions || []).filter((s) => s.type === this.searchResourceType.resourceType)\n );\n }\n\n get hasAppendButton() {\n if (!this.multiple && this.model) {\n if (this.isPolymorphic) {\n for (const ref of this.metaReference) {\n if ((ref.name || ref.resourceType) === (this.model.type || this.model.resourceType)) {\n return ref.updatable || (ref.creatable && ref.updatable !== false);\n }\n }\n } else {\n return this.metaReference.updatable || (this.metaReference.creatable && this.metaReference.updatable !== false); // VGIS-6911\n }\n } else if (this.metaReference instanceof Array) {\n // setTimeout(() => {\n // this.searchResourceTypesScope = this.metaReference.map(rt => rt.name).join(',');\n // }, 0);\n for (const rt of this.metaReference) {\n if (rt.hidden !== false && rt.creatable) {\n return true;\n }\n }\n } else {\n return this.metaReference.creatable;\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 metaReference() {\n return this.meta.reference || {};\n }\n\n ngOnInit() {\n this.multiple = (this.meta.type === 'multireference') || this.meta.multiple;\n this.searchResourceTypeMeta.label = this.meta.label;\n if (!this.meta.valueType) {\n // this.meta.valueType = 'object';\n Object.defineProperty(this.meta, 'valueType', {\n value: 'object'\n });\n }\n if (this.metaReference instanceof Array) {\n this.isPolymorphic = true;\n this.isSearchable = true;\n this.searchResourceTypesScope = this.metaReference.filter(rt => rt.hidden !== true).map(rt => rt.name).join(',');\n for (const rt of this.metaReference) {\n if (rt.creatable) {\n this.isCreatable = true;\n if (typeof (rt.searchable) !== 'undefined' && !rt.searchable) {\n this.isSearchable = false;\n }\n }\n }\n this.metaReference.forEach((r) => {\n if (!r.hidden) {\n this.searchResourceTypeMeta.options.push({ id: r.name, label: r.label || r.name });\n }\n });\n } else {\n this.isSearchable = typeof (this.metaReference.searchable) === 'undefined' || this.metaReference.searchable;\n this.searchResourceType = this.metaReference;\n this.searchResourceTypesScope = this.metaReference.name || this.metaReference.resourceType;\n this.isCreatable = this.metaReference.creatable;\n }\n this.buildPlaceholderLabel();\n this.searchTextChanged.pipe(debounceTime(300), distinctUntilChanged()).subscribe((value: string) => {\n this.searchText = value;\n this.search();\n });\n const origValue = this.parent[this.meta.name];\n\n // this.suggestions = this.meta.suggestions; // TODO filter by default type\n // console.log('this.suggestions', this.suggestions);\n\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (value === '') {\n value = null;\n }\n if (this.multiple) {\n if (value && value instanceof Array) {\n for (const v of value) {\n if (!this.model) {\n this.model = [];\n }\n if (typeof (v) === 'string') {\n this.model.push({\n id: v,\n label: v,\n type: this.metaReference.name\n });\n }\n }\n } else {\n value = null; // protect when value from server is not array\n }\n } else {\n if (typeof (value) === 'string') {\n value = {\n id: value,\n label: value, // could be found with extra call\n type: this.metaReference.name\n };\n }\n this.searchText = value ?\n ((!value.label || value.label === ' ') ? `N/A (${value.type}#${value.id})` : value.label || value) :\n '';\n // if (this.isPolymorphic && this.model) { //TODO show or not?\n // this.searchResourceType = this.metaReference.find((rt)=> {\n // return rt.name === this.model.type;\n // });\n // }\n }\n this.model = value;\n if (!this.multiple) {\n this.value = this.modelToValue(value, this.meta.valueType || 'object');\n this.buildExternalLink();\n } else {\n this.value = !this.model ? this.model : this.model.map((m) => this.modelToValue(m, this.meta.valueType || 'object'));\n }\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n if (origValue) {\n this.parent[this.meta.name] = origValue;\n }\n if (!this.model && this.default) {\n if (this.multiple) {\n this.parent[this.meta.name] = [];\n if (this.default.length) {\n for (const dv of this.default) {\n if ((dv.id || dv.value) && dv.type) {\n const item: any = {\n id: dv.id || dv.value,\n label: dv.label || dv.id || dv.value,\n type: dv.type\n };\n if (dv.externalLink) {\n item.externalLink = dv.externalLink;\n }\n this.parent[this.meta.name].push(item);\n }\n }\n }\n if (!this.parent[this.meta.name].length) {\n this.clear();\n }\n } else {\n if (this.default.id && this.default.label && this.default.type) {\n setTimeout(() => {\n if (!this.model) {\n const item: any = {\n id: this.default.id || this.default.value,\n label: this.default.label || this.default.id || this.default.value,\n type: this.default.type,\n smart: true\n };\n if (this.default.externalLink) {\n item.externalLink = this.default.externalLink;\n }\n this.parent[this.meta.name] = item;\n }\n }, 0);\n } else {\n console.warn('!!!default value is not valid format', this.meta);\n }\n }\n }\n\n if (typeof (this.meta.disabled) !== 'undefined') {\n if (typeof (this.meta.disabled) === 'object') {\n for (const p of Object.keys(this.meta.disabled)) {\n const props = p.split('.');\n if (typeof (this.parent[props[0]]) !== 'undefined') {\n let val = this.parent;\n for (const prop of props) {\n val = val[prop];\n if (!val) {\n break;\n }\n }\n if (val === this.meta.disabled[p]) {\n this.logicalDisabled = true;\n this.clear();\n }\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(props[0])) {\n let val = this.parent;\n for (const prop of props) {\n val = val[prop];\n if (!val) {\n break;\n }\n }\n if (val === this.meta.disabled[p]) {\n this.logicalDisabled = true;\n this.clear();\n } else {\n delete this.logicalDisabled;\n }\n }\n });\n }\n }\n }\n\n if (this.meta.auto && this.meta.auto.search) {\n const searchParams = this.meta.auto.search.params;\n if (searchParams) {\n for (const par of Object.keys(searchParams)) {\n const props = searchParams[par].split('.');\n const field = props[0];\n const prop = props[1];\n let parValue = this.parent[field];\n if (parValue) {\n if (prop) {\n parValue = parValue[prop];\n }\n if (parValue) {\n const params = {};\n params[par] = parValue;\n this.searchAutoSuggestions(params);\n }\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(field)) {\n if (value[field]) {\n if (prop) {\n value[field] = value[field][prop];\n }\n const params = {};\n params[par] = value[field];\n this.searchAutoSuggestions(params);\n }\n }\n });\n }\n }\n }\n }\n\n clearSearchResourceType() {\n this.searchResourceType = {};\n this.onSearchResourceTypeChanged();\n }\n\n onSearchResourceTypeChanged(resourceType?) {\n if (!resourceType || !resourceType.id) {\n this.searchResourceType.resourceType = null;\n this.searchResourceTypesScope = (this.metaReference || []).filter(rt => rt.hidden !== true).map(rt => rt.name).join(',');\n } else {\n this.searchResourceType.resourceType = resourceType.id;\n this.searchResourceTypesScope = resourceType.id;\n }\n this.buildPlaceholderLabel();\n this.focus();\n if (!this.model && !this.searchText) { // filter suggestions by type\n this.filteredSuggestions = !resourceType ? (this.meta.suggestions || []) : (this.meta.suggestions || []).filter(\n (s) => s.type === resourceType.id\n );\n } else { // regular search (return scoped results)\n if (!this.model) {\n this.search();\n } else if (this.searchResults && resourceType) {\n this.searchResults = this.searchResults.filter((s) => s.type === resourceType.id);\n }\n }\n delete this.searchError;\n }\n\n onSearchTextChanged(value: string) {\n this.searchTextChanged.next(value);\n }\n\n search() {\n this.searching = true;\n // this.activeSuggestionIndex;\n if (!this.searchText || this.searchText.length < 2) {\n this.searching = false;\n delete this.searchResults;\n return;\n }\n const showSearchResults = (results) => {\n this.searching = false;\n delete this.searchError;\n delete this.activeSuggestionIndex;\n if (!results || !(results instanceof Array)) {\n results = [];\n }\n if (this.meta.acceptNew && this.meta.acceptNew.type && this.meta.acceptNew.pattern) {\n const regex = new RegExp(this.meta.acceptNew.pattern);\n if (regex.test(this.searchText)) {\n results.unshift({ id: null, label: this.searchText, type: this.meta.acceptNew.type });\n }\n }\n this.searchResults = results.map((r) => { // eslint-disable-line arrow-body-style\n return { id: r.id, label: r.label, type: r.type || r.resourceType || this.searchResourceType.name, externalLink: r.externalLink };\n });\n if (!/Vlt-dropdown--expanded/.test(this.dropdown.className)) {\n this.showDropdown();\n }\n };\n\n if (this.meta.search) {\n const searchParams = this.meta.search.params || {};\n let searchUrl = `/fields/${this.meta.name}/search`;\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 for (const p of Object.keys(searchParams)) {\n searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}${encodeURIComponent(p)}=${encodeURIComponent(searchParams[p])}`;\n }\n searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}q=${encodeURIComponent(this.searchText)}`;\n this.searching = true;\n this.resourceService.getByPath(searchUrl).subscribe((results) => {\n showSearchResults(results);\n }, (error) => {\n delete this.searching;\n this.searchResults = [];\n this.searchError = error.error ? error.error.message || error.error : error.message || error;\n if (!/Vlt-dropdown--expanded/.test(this.dropdown.className)) {\n this.showDropdown();\n }\n });\n } else {\n if (!this.vr) {\n this.vr = this.metaResource.new({\n integrationCode: this.integrationCode,\n resourceType: null\n });\n }\n this.vr.searchIntegration(\n this.searchText,\n this.searchResourceType.name || this.searchResourceTypesScope\n ).subscribe((results: Array<any>) => {\n showSearchResults(results);\n }, (error) => {\n this.searching = false;\n this.searchResults = [];\n this.searchError = error.error ? error.error.message || error.error : error.message || error;\n if (!/Vlt-dropdown--expanded/.test(this.dropdown.className)) {\n this.showDropdown();\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;\n this.dropdown = this.elementRef.nativeElement.querySelector('.dropdown-wrapper');\n }\n this.showDropdown();\n }\n\n onBlur(ev) {\n let internalControl = false;\n if (ev.relatedTarget) {\n if (!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 setTimeout(() => {\n if (!this.keyListenerActive) {\n document.removeEventListener('click', this.clickout);\n }\n }, 400);\n delete this.keyListenerActive;\n }\n }\n\n removeSelection(ev?) {\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n if (this.model && !this.suggestions.find((s) => (s.id === this.model.id && s.type === this.model.type))) {\n this.smartSuggestions.push({\n id: this.model.id,\n label: this.model.label,\n type: this.model.type,\n smart: true\n });\n }\n this.metaTracker.emit(this.buildTrackEvent('REMOVE'));\n this.clear();\n }\n\n onSuggestionSelect(ev, suggestion) {\n if (!suggestion) {\n return;\n }\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n this.metaTracker.emit(this.buildTrackEvent('SELECT'));\n if (this.multiple) {\n if (!this.model) {\n this.model = [];\n }\n let existingEntry;\n for (const entry of this.model) {\n if (suggestion.id && (entry.id === suggestion.id)) {\n existingEntry = entry;\n break;\n } else if (suggestion.label === entry.label) { // create new (google emails)\n existingEntry = entry;\n break;\n }\n }\n if (!existingEntry) {\n this.model.push(suggestion);\n }\n this.onModelChange(this.model);\n delete this.searchText;\n this.searchTextChanged.next(this.searchText);\n } else {\n this.model = suggestion;\n this.externalLink = suggestion.externalLink;\n this.onModelChange(suggestion);\n this.searchText = suggestion.label;\n this.activeSuggestionIndex = (this.searchResults || this.suggestions).indexOf(suggestion);\n }\n this.dismissDropdown();\n // if (this.isPolymorphic) {\n // this.searchResourceType = this.metaReference.find((rt)=> {\n // return rt.name === suggestion.type;\n // });\n // }\n }\n\n showDropdown() {\n if (this.disabled) {\n return;\n }\n this.dropdownVisible = true;\n this.dropdown.classList.add('Vlt-dropdown--expanded');\n if (!this.keyListenerActive) {\n this.input.addEventListener('keydown', this.keydown);\n setTimeout(() => {\n document.addEventListener('click', this.clickout);\n }, 200);\n this.keyListenerActive = true;\n }\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n if (this.model && (this.searchResults || this.suggestions)) {\n for (let suggestionIndex = 0; suggestionIndex < (this.searchResults || this.suggestions).length; suggestionIndex++) {\n const item = (this.searchResults || this.suggestions)[suggestionIndex];\n if (this.model.id === item.id && this.model.type === item.type) {\n this.activeSuggestionIndex = suggestionIndex;\n break;\n }\n }\n }\n }\n this.ensureDropdownIsVisible();\n }\n\n dismissDropdown(event?) {\n this.dropdownVisible = false;\n if (event) {\n this.focus();\n }\n if (this.dropdown) {\n this.dropdown.classList.remove('Vlt-dropdown--expanded');\n }\n }\n\n clear() {\n this.prevModel = this.model;\n delete this.searchText;\n delete this.searchResults;\n delete this.model;\n delete this.activeSuggestionIndex;\n this.onModelChange(this.model);\n this.onSearchTextChanged(this.searchText);\n this.focus();\n }\n\n revert() {\n this.model = this.prevModel;\n delete this.prevModel;\n this.onModelChange(this.model);\n this.focus();\n }\n\n remove(ev, item) {\n ev.preventDefault();\n ev.stopPropagation();\n const optionIndex = this.model.indexOf(item);\n if (optionIndex !== -1) {\n this.model.splice(optionIndex, 1);\n if (!this.model.length) {\n delete this.model;\n delete this.value;\n }\n this.onModelChange(this.model);\n }\n }\n\n openResource(model?) {\n this.keyListenerActive = true; // suppress dropdown in this case\n setTimeout(() => {\n this.dismissDropdown();\n });\n const refDialogComponent = this.viewContainerRef.createComponent(MetaRefDialog);\n this.metaTracker.emit(this.buildTrackEvent(model ? 'EDIT' : 'NEW'));\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,\n (this.metaReference instanceof Array) ? this.metaReference.filter(rt => rt.hidden !== true) : this.metaReference,\n model, null, this.searchResourceType.resourceType, theme, this.overlayContainer\n ).subscribe((result: any) => {\n if (result) {\n this.parent[this.meta.name] = result;\n this.onChange.emit(result);\n const existingSuggestion = (this.meta.suggestions || []).find((s) => (s.id === result.id && s.type === result.type));\n if (existingSuggestion) {\n existingSuggestion.label = result.label;\n } else {\n if (!this.meta.suggestions) {\n this.meta.suggestions = [];\n }\n this.meta.suggestions.unshift(result);\n }\n this.metaTracker.emit(this.buildTrackEvent(model ? 'UPDATE' : 'CREATE', result.type || result.resourceType));\n } else {\n this.metaTracker.emit(this.buildTrackEvent(model ? 'CANCEL_EDIT' : 'CANCEL_UPDATE'));\n }\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 clickout = (event) => {\n const internalControl = this.elementRef.nativeElement.contains(event.target);\n if (internalControl && ['Vlt-dropdown__link', 'Vlt-dropdown__block'].indexOf(event.target.className) !== -1) {\n this.focus();\n } else if (!internalControl && event.target !== this.input && event.target.className !== 'Vlt-dropdown__title') {\n this.dismissDropdown();\n } else {\n if (!internalControl && internalControl.tagName !== 'INPUT') {\n this.focus();\n }\n }\n };\n\n private buildTrackEvent(action: string, value?: string) {\n const e: IMetaTrackerEvent = {\n integration: this.integrationCode,\n resource: this.model ? (this.model.type || this.model.resourceType) : this.searchResourceType.resourceType,\n field: this.meta.name,\n action\n };\n if (this.meta.$isContactable) {\n e.isContactable = true;\n }\n if (typeof (value) !== 'undefined') {\n e.value = value;\n }\n return e;\n }\n\n private buildPlaceholderLabel() {\n this.placeHolderLabel = this.meta.label;\n if (this.multiple && !this.isPolymorphic) {\n this.placeHolderLabel = '+Add ';\n } else {\n this.placeHolderLabel = (this.isSearchable && (this.multiple || !this.isPolymorphic)) ? 'Search ' : '';\n }\n this.placeHolderLabel += this.searchResourceType.resourceType ? this.searchResourceType.resourceType : this.searchResourceTypesScope;\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.searchResults || this.suggestions).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.searchResults || this.suggestions).length - 1;\n } else {\n this.activeSuggestionIndex--;\n if (this.activeSuggestionIndex < 0) {\n this.activeSuggestionIndex = (this.searchResults || this.suggestions).length - 1;\n }\n }\n this.ensureDropdownOptionIsVisible();\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n case 'Space':\n case 'Enter': {\n if (typeof (this.activeSuggestionIndex) !== 'undefined') {\n event.preventDefault();\n event.stopPropagation();\n this.onSuggestionSelect(event, (this.searchResults || this.suggestions)[this.activeSuggestionIndex]);\n delete this.activeSuggestionIndex;\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.multiple && this.model) { // HPBR-8229\n event.preventDefault();\n event.stopPropagation();\n this.removeSelection();\n }\n break;\n }\n }\n };\n\n private buildExternalLink() {\n if (this.model) {\n if (this.model.externalLink) {\n this.externalLink = this.model.externalLink;\n } else if (this.metaContext.profiles[this.integrationCode.toUpperCase()]) {\n delete this.externalLink;\n this.metaMsgService.sendMessage(\n this.integrationCode.toUpperCase(),\n {\n action: 'buildExternalLink',\n integrationCode: this.integrationCode,\n ref: this.model,\n profile: this.metaContext.profiles[this.integrationCode.toUpperCase()]\n },\n (response) => {\n if (!response.error) {\n this.externalLink = response.externalLink;\n } else {\n console.warn('No external link support for', this.integrationCode, this.model.resourceType || this.model.type);\n }\n }\n );\n }\n } else {\n delete this.externalLink;\n }\n }\n\n private searchAutoSuggestions(params?) {\n let searchUrl = `/suggestions/${this.meta.name}/search`;\n if (this.meta.auto && this.meta.auto.search) {\n if (this.meta.auto.search.url) {\n searchUrl = this.meta.auto.search.url.replace(/\\${\\s*([\\w.]+)\\s*}/g, (match, key) => {\n if (params.hasOwnProperty(key)) {\n const val = params[key];\n delete params[key];\n return val;\n }\n return '';\n });\n }\n for (const p of Object.keys(params)) {\n searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}${encodeURIComponent(p)}=${encodeURIComponent(params[p])}`;\n }\n this.searching = true;\n this.resourceService.getByPath(searchUrl).subscribe((result) => {\n delete this.searching;\n if (result) {\n let suggestions;\n suggestions = result;\n if (this.meta.auto.search.extract) {\n suggestions = result[this.meta.auto.search.extract];\n }\n if (suggestions instanceof Array !== true) {\n suggestions = [suggestions];\n }\n const asyncSuggestions = [];\n suggestions.forEach((s) => {\n if (s && s.id && s.type) { // TOOD check the type is acceptable\n asyncSuggestions.push({\n id: s.id,\n label: s.label || `${s.type}#${s.id}`,\n type: s.type\n });\n }\n });\n if (asyncSuggestions.length) {\n if (asyncSuggestions.length === 1) {\n this.parent[this.meta.name] = asyncSuggestions[0];\n } else {\n delete this.asyncSuggestions;\n }\n }\n this.asyncSuggestions = asyncSuggestions;\n }\n }, () => {\n delete this.searching;\n });\n }\n }\n\n}\n","<div class='vgip-meta-field-preview' *ngIf='preview && model && (!multiple || (multiple && model.length))'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div *ngIf='!multiple' class='vgip-meta-field-value __gu' [ngClass]=\"{ 'has-external-link': externalLink || model.externalLink }\">\n <svg class=\"Vlt-icon Vlt-icon--smaller\" style='margin-top: -3px;'>\n <use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\" />\n </svg>\n {{model.label || model.id}} <span class='Vlt-grey'>({{model.type}})</span>\n </div>\n <div *ngIf='multiple' class='vgip-meta-field-value __gu'>\n <span *ngFor='let m of (model || [])' class='Vlt-badge Vlt-badge--app'>\n {{m.label || m.id || m}} <span class='Vlt-grey-dark' *ngIf='isPolymorphic'>({{m.type}})</span>\n </span>\n </div>\n <a [href]='externalLink || model.externalLink' target='_blank' rel='noopener'\n *ngIf='externalLink && (model && !multiple)' class=\"Vlt-composite__append--icon preview\" aria-label='Open external'>\n <div class=\"Vlt-composite__icon\">\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\" />\n </svg>\n </div>\n </a>\n</div>\n<div *ngIf='!preview' class=\"meta-field-reference Vlt-form__element Vlt-form__element--big\"\n [ngClass]=\"{ 'Vlt-form__element--error': (searchError && keyListenerActive) || (f.invalid && ((f | metaModel)._parent.submitted || (ft | metaModel ).touched)), 'multiple': multiple, 'has-value': model, active: keyListenerActive }\">\n <div *ngIf='multiple' class='items-container' [ngClass]='{ creatable: isCreatable }'>\n <div *ngIf='model' class='badges-container keep-focus' (click)='focus()' style='width: 100%;'> <!-- eslint-disable-line -->\n <div *ngFor='let item of model' class=\"Vlt-badge Vlt-badge--app Vlt-badge--large keep-focus\" [ngClass]=\"{ grid: (item.label || item.id || '').length > 56}\">\n <span class='Vlt-truncate'>{{item.label || item.id || item }} <span *ngIf='isPolymorphic' class='Vlt-grey-dark' style='font-weight: normal;'>({{item.type}})</span></span>\n <button class=\"Vlt-badge__dismiss keep-focus\" (click)='remove($event, item)' style='position: absolute; right: 12px; top: 8px;' aria-label='Remove'></button>\n </div>\n </div>\n </div>\n <div class=\"Vlt-composite\">\n <div class='dropdown-wrapper Vlt-dropdown' style='width: 100%; position: absolute; top: 48px;'>\n <div class=\"Vlt-dropdown__panel\">\n <div *ngIf='searchError'>\n <div class=\"Vlt-callout Vlt-callout--critical keep-focus\">\n <i></i>\n <div class=\"Vlt-callout__content\">{{searchError}}</div>\n </div>\n </div>\n <div *ngIf='!searchError && (suggestions.length || searchResults)' [ngClass]=\"{ suggestions: !searchResults}\"\n class=\"Vlt-dropdown__panel__content Vlt-dropdown__panel__content--scroll-area\" style='padding: 0;'>\n <div class=\"Vlt-dropdown__block\"></div>\n <div *ngIf='!searchResults' class=\"Vlt-dropdown__scroll\">\n <a href='#' [ngClass]=\"{ 'Vlt-dropdown__link--selected': activeSuggestionIndex === i, smart: suggestion.smart }\" (click)='onSuggestionSelect($event, suggestion)' *ngFor='let suggestion of suggestions; let i = index' class=\"Vlt-dropdown__link has-type\">\n <svg class='Vlt-icon Vlt-icon--small'><use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\"/></svg>\n <div class='__gu' [title]='suggestion.label'>{{ suggestion.label }}</div>\n <small class='Vlt-grey-dark' style='text-transform: capitalize;'>{{suggestion.type}}</small>\n </a>\n </div>\n <div *ngIf='searchResults' class=\"Vlt-dropdown__scroll\">\n <div *ngIf='!searchResults.length' class='Vlt-dropdown__block'> No records matching '<b style='pointer-events: none;'>{{searchText}}</b>' were found.</div>\n <a href='#' [ngClass]=\"{ 'Vlt-dropdown__link--selected': activeSuggestionIndex === i }\" (click)='onSuggestionSelect($event, suggestion)' *ngFor='let suggestion of searchResults; let i = index' class=\"Vlt-dropdown__link has-type\">\n <svg class='Vlt-icon Vlt-icon--small'><use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\"/></svg>\n <div class='__gu' [title]='suggestion.label'>{{ suggestion.label }}</div>\n <small class='Vlt-grey-dark' style='text-transform: capitalize;'>{{suggestion.type}}</small>\n </a>\n </div>\n <!-- <div *ngIf='searchResults' class=\"Vlt-dropdown__block\" style='text-align: right; padding-top: 0;'>\n <small>\n {{ searchResults ? searchResults.length+' results' : 'Suggestions' }} <span style='font-style: italic; font-weight: normal;' *ngIf='searchResults'>~{{ model ? 'last search' : searchText}}</span>\n </small>\n </div> -->\n <div class=\"Vlt-dropdown__block\"></div>\n </div>\n </div>\n </div>\n <div class=\"Vlt-composite__prepend\"\n *ngIf='isPolymorphic && showTypes && (multiple || !model || (dropdownVisible && ((suggestions || searchResults || []).length || searchResourceType.resourceType)))'>\n <div class=\"search-scope\" [ngClass]=\"{ 'has-value': searchResourceType.resourceType }\">\n <vgip-meta-field class='shown' [meta]='searchResourceTypeMeta' [parent]='searchResourceType'\n (onChange)='onSearchResourceTypeChanged($event)' (onLeave)='onBlur($event)'\n [integrationCode]='integrationCode' theme='inherit'></vgip-meta-field>\n <svg class='Vlt-icon Vlt-grey Vlt-icon--smaller visible-mobile mobile-icon'\n style='position: absolute; top: 15px; left: 14px; pointer-events: none;'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-menu\" />\n </svg>\n </div>\n </div>\n <div *ngIf='!(isPolymorphic && showTypes && (multiple || !model || dropdownVisible))'>\n <!-- required by css -->\n </div>\n <div class=\"Vlt-composite__wrapper Vlt-input\" style='overflow: hidden;'\n [ngClass]=\"{ 'has-append-button': hasAppendButton && !disabled, 'vgip-disable': disabled }\">\n <label class='wrapper'>\n <div class=\"Vlt-composite__prepend Vlt-composite__prepend--icon\" style='top: 0; padding-top: 15px;'>\n <div class=\"Vlt-composite__icon\">\n <svg *ngIf='isSearchable && (!model || multiple)' class='Vlt-grey'>\n <use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-{{ multiple ? 'stack' : 'search'}}\" />\n </svg>\n <svg *ngIf='!isSearchable || (model && !multiple)'\n [ngStyle]=\"{fill: integrationIcon === 'Brand-icon-vonage' ? 'var(--vgip-meta-input-color)' : ''}\">\n <use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\" />\n </svg>\n </div>\n <div *ngIf='suggestions.length' class=\"Vlt-badge Vlt-badge--small Vlt-badge--purple\"\n style='padding: 0px 4px; position: absolute; top: 26px; left: 4px; pointer-events: none; min-width: 14px;'>\n {{suggestions.length}}</div>\n </div>\n <input class='model' type='hidden' [required]='validations.required' [(ngModel)]='model' #f='ngModel' [name]='name' />\n <input class='main' [readonly]='!isSearchable || (model && !multiple)' [ngModel]='searchText' #ft='ngModel' (ngModelChange)='onSearchTextChanged($event)' [ngModelOptions]=\"{standalone: true}\" type=\"text\" placeholder=\"{{ placeHolderLabel || ' ' }}\" [ngClass]='{ ext: externalLink }' (click)='onActivated($event)' (focus)='onActivated($event)' (blur)='onBlur($event)' [disabled]='disabled' [title]=\"model ? model.label : ''\"/>\n <label class='Vlt-truncate hidden-mobile' style='padding-left: 25px; padding-right: 42px;'>{{ (multiple && isPolymorphic) ? '+Add ' : ((model || !isPolymorphic) ? meta.label : ( meta.searchLabel || 'Search')) }}<span *ngIf='validations.required' class='Vlt-red'>*</span>&nbsp;<span style='color: var(--vgip-meta-input-color); text-transform: capitalize;' *ngIf='model'>({{model.type || model.resourceType || model.length}})</span></label> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control-->\n <label class='Vlt-truncate hidden-desktop' style='padding-left: 25px; padding-right: 42px;'>{{meta.label || meta.name}}<span *ngIf='validations.required' class='Vlt-red'>*</span>&nbsp;<span style='color: var(--vgip-meta-input-color); text-transform: capitalize;' *ngIf='model'>({{model.type || model.resourceType || model.length}})</span></label> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control-->\n </label>\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 <!-- <div *ngIf='prevModel && !model' class=\"Vlt-composite__append--icon\" (click)='revert()'>\n <div class=\"Vlt-composite__icon\">\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-reply\"/></svg>\n </div>\n </div> -->\n <a href='#' *ngIf='model && !multiple' class=\"Vlt-composite__append--icon\" (click)='removeSelection($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 <a [href]='externalLink || model.externalLink' target='_blank' rel='noopener' *ngIf='externalLink && (model && !multiple)' class=\"Vlt-composite__append--icon\" aria-label='Open external'>\n <div class=\"Vlt-composite__icon\">\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\" />\n </svg>\n </div>\n </a>\n </div>\n </div>\n <!-- <span *ngIf='hasCreatables'>\n <button type='button' *ngIf='!model || multiple' (click)='openResource()' 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 <button type='button' *ngIf='model && !multiple' (click)='openResource(model)' class=\"Vlt-btn Vlt-btn--primary Vlt-btn--icon Vlt-btn--large\" style='margin-left: 12px;'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-edit\"/></svg>\n </button>\n </span> -->\n <div *ngIf='hasAppendButton && !disabled' class=\"Vlt-composite__append\">\n <button (focus)='onActivated($event)' (blur)='onBlur($event)' type='button' *ngIf='!model || multiple'\n (click)='openResource()' class=\"Vlt-btn Vlt-btn--white Vlt-btn--icon\" aria-label='Add new'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\" />\n </svg>\n </button>\n <button (focus)='onActivated($event)' (blur)='onBlur($event)' type='button' *ngIf='model && !multiple'\n (click)='openResource(model)' class=\"Vlt-btn Vlt-btn--white Vlt-btn--icon\" aria-label='Edit'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-edit\" />\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.pattern\">Should match '{{validations.pattern}}' pattern</span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}}&nbsp;</span>\n </small>\n <small *ngIf='meta.helpText || meta.hint' class=\"Vlt-form__element__hint\">{{meta.helpText || meta.hint}}</small>\n</div>\n"],"names":["i1.MetaReferenceService","i2.MetaResourceService","i3.MetaMsgService","i4.MetaContextService","i5.MetaTrackerService","i6","i7","i8.MetaField","i9.MetaModelPipe"],"mappings":";;;;;;;;;;;;;AAAA;;;;;AAKG;MAgBU,kBAAkB,CAAA;AAK7B,IAAA,WAAA,GAAA;AAFA,QAAA,IAAA,CAAA,MAAM,GAAoC,IAAI,YAAY,EAAE,CAAC;KAE7C;AAEhB,IAAA,IAAI,CAAC,KAAwB,EAAA;AAC3B,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YACtB,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC;AACnD,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACnB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC;AAC7C,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzB;+GAfU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACHK,MAAO,cAAe,SAAQ,aAAa,CAAA;IAgC/C,WACU,CAAA,gBAAsC,EACtC,YAAiC,EACjC,cAA8B,EAC9B,WAA+B,EAC/B,WAA+B,EAC/B,gBAAkC,EAAA;AAE1C,QAAA,KAAK,EAAE,CAAC;QAPA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAsB;QACtC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QACjC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAoB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAoB;QAC/B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAjC5C,IAAkB,CAAA,kBAAA,GAAQ,EAAE,CAAC;AAM7B,QAAA,IAAA,CAAA,iBAAiB,GAAoB,IAAI,OAAO,EAAU,CAAC;QAC3D,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAOpB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AACxB,QAAA,IAAA,CAAA,sBAAsB,GAAQ;AAC5B,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,UAAU,EAAE,IAAI;SACjB,CAAC;QACF,IAAmB,CAAA,mBAAA,GAAe,EAAE,CAAC;QAGrC,IAAgB,CAAA,gBAAA,GAAe,EAAE,CAAC;AAioB1B,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,KAAK,KAAI;AAC3B,YAAA,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC7E,YAAA,IAAI,eAAe,IAAI,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC3G,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,aAAA;AAAM,iBAAA,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,KAAK,qBAAqB,EAAE;gBAC9G,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,OAAO,KAAK,OAAO,EAAE;oBAC3D,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,iBAAA;AACF,aAAA;AACH,SAAC,CAAC;AA4BM,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;AAC7B,wBAAA,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE;AACjF,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;AACvD,wBAAA,IAAI,CAAC,qBAAqB,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,CAAC;AAClF,qBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7B,wBAAA,IAAI,IAAI,CAAC,qBAAqB,GAAG,CAAC,EAAE;AAClC,4BAAA,IAAI,CAAC,qBAAqB,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,CAAC;AAClF,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;gBACb,KAAK,OAAO,EAAE;oBACZ,IAAI,QAAQ,IAAI,CAAC,qBAAqB,CAAC,KAAK,WAAW,EAAE;wBACvD,KAAK,CAAC,cAAc,EAAE,CAAC;wBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;wBACxB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;wBACrG,OAAO,IAAI,CAAC,qBAAqB,CAAC;AACnC,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,IAAI,IAAI,CAAC,KAAK,EAAE;wBAChC,KAAK,CAAC,cAAc,EAAE,CAAC;wBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;wBACxB,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,qBAAA;oBACD,MAAM;AACP,iBAAA;AACF,aAAA;AACH,SAAC,CAAC;KAttBD;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI;AACjG,gBAAC,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC/D,QAAA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,GAAG,aAAa,CAAC;AACrD,QAAA,OAAO,aAAa,CAAC;KACtB;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;KACpF;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CACjC,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY;;aAElC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CACjL,CAAC;KACH;AAED,IAAA,IAAI,eAAe,GAAA;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;YAChC,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,gBAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE;oBACpC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;AACnF,wBAAA,OAAO,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC;AACpE,qBAAA;AACF,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,KAAK,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC;AACjH,aAAA;AACF,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,aAAa,YAAY,KAAK,EAAE;;;;AAI9C,YAAA,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;gBACnC,IAAI,EAAE,CAAC,MAAM,KAAK,KAAK,IAAI,EAAE,CAAC,SAAS,EAAE;AACvC,oBAAA,OAAO,IAAI,CAAC;AACb,iBAAA;AACF,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;AACrC,SAAA;KACF;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,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;KAClC;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC5E,IAAI,CAAC,sBAAsB,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACpD,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;;YAExB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE;AAC5C,gBAAA,KAAK,EAAE,QAAQ;AAChB,aAAA,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,aAAa,YAAY,KAAK,EAAE;AACvC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjH,YAAA,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;gBACnC,IAAI,EAAE,CAAC,SAAS,EAAE;AAChB,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,oBAAA,IAAI,QAAQ,EAAE,CAAC,UAAU,CAAC,KAAK,WAAW,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE;AAC5D,wBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3B,qBAAA;AACF,iBAAA;AACF,aAAA;YACD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAC/B,gBAAA,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;oBACb,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACpF,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;AAC5G,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC;AAC7C,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;YAC3F,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;AACjD,SAAA;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,KAAa,KAAI;AACjG,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,MAAM,EAAE,CAAC;AAChB,SAAC,CAAC,CAAC;AACH,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;AAK9C,QAAA,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACjD,YAAA,GAAG,EAAE,CAAC,KAAK,KAAI;gBACb,IAAI,KAAK,KAAK,EAAE,EAAE;oBAChB,KAAK,GAAG,IAAI,CAAC;AACd,iBAAA;gBACD,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,oBAAA,IAAI,KAAK,IAAI,KAAK,YAAY,KAAK,EAAE;AACnC,wBAAA,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;AACrB,4BAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,gCAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACjB,6BAAA;AACD,4BAAA,IAAI,QAAQ,CAAC,CAAC,KAAK,QAAQ,EAAE;AAC3B,gCAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AACd,oCAAA,EAAE,EAAE,CAAC;AACL,oCAAA,KAAK,EAAE,CAAC;AACR,oCAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;AAC9B,iCAAA,CAAC,CAAC;AACJ,6BAAA;AACF,yBAAA;AACF,qBAAA;AAAM,yBAAA;AACL,wBAAA,KAAK,GAAG,IAAI,CAAC;AACd,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,QAAQ,KAAK,CAAC,KAAK,QAAQ,EAAE;AAC/B,wBAAA,KAAK,GAAG;AACN,4BAAA,EAAE,EAAE,KAAK;AACT,4BAAA,KAAK,EAAE,KAAK;AACZ,4BAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;yBAC9B,CAAC;AACH,qBAAA;AACD,oBAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACrB,yBAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,IAAI,CAAQ,KAAA,EAAA,KAAK,CAAC,IAAI,CAAI,CAAA,EAAA,KAAK,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK;AACjG,wBAAA,EAAE,CAAC;;;;;;AAMN,iBAAA;AACD,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,gBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,oBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC;oBACvE,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC;AACtH,iBAAA;gBACD,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;AACH,QAAA,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AACzC,SAAA;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACjC,gBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACvB,oBAAA,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;AAC7B,wBAAA,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,IAAI,EAAE;AAClC,4BAAA,MAAM,IAAI,GAAQ;AAChB,gCAAA,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK;gCACrB,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK;gCACpC,IAAI,EAAE,EAAE,CAAC,IAAI;6BACd,CAAC;4BACF,IAAI,EAAE,CAAC,YAAY,EAAE;AACnB,gCAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC;AACrC,6BAAA;AACD,4BAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,yBAAA;AACF,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;oBACvC,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;oBAC9D,UAAU,CAAC,MAAK;AACd,wBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,4BAAA,MAAM,IAAI,GAAQ;gCAChB,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK;AACzC,gCAAA,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK;AAClE,gCAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;AACvB,gCAAA,KAAK,EAAE,IAAI;6BACZ,CAAC;AACF,4BAAA,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;gCAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AAC/C,6BAAA;4BACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACpC,yBAAA;qBACF,EAAE,CAAC,CAAC,CAAC;AACP,iBAAA;AAAM,qBAAA;oBACL,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACjE,iBAAA;AACF,aAAA;AACF,SAAA;QAED,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,WAAW,EAAE;YAC/C,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE;AAC5C,gBAAA,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBAC/C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3B,oBAAA,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;AAClD,wBAAA,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AACtB,wBAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,4BAAA,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;4BAChB,IAAI,CAAC,GAAG,EAAE;gCACR,MAAM;AACP,6BAAA;AACF,yBAAA;wBACD,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AACjC,4BAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;4BAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,yBAAA;AACF,qBAAA;oBACD,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;wBAC3C,IAAI,KAAK,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3C,4BAAA,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AACtB,4BAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,gCAAA,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;gCAChB,IAAI,CAAC,GAAG,EAAE;oCACR,MAAM;AACP,iCAAA;AACF,6BAAA;4BACD,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AACjC,gCAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gCAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,6BAAA;AAAM,iCAAA;gCACL,OAAO,IAAI,CAAC,eAAe,CAAC;AAC7B,6BAAA;AACF,yBAAA;AACH,qBAAC,CAAC,CAAC;AACJ,iBAAA;AACF,aAAA;AACF,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAClD,YAAA,IAAI,YAAY,EAAE;gBAChB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;oBAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3C,oBAAA,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACvB,oBAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACtB,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClC,oBAAA,IAAI,QAAQ,EAAE;AACZ,wBAAA,IAAI,IAAI,EAAE;AACR,4BAAA,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3B,yBAAA;AACD,wBAAA,IAAI,QAAQ,EAAE;4BACZ,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,4BAAA,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;AACvB,4BAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACpC,yBAAA;AACF,qBAAA;oBACD,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;wBAC3C,IAAI,KAAK,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;AACxC,4BAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;AAChB,gCAAA,IAAI,IAAI,EAAE;oCACR,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;AACnC,iCAAA;gCACD,MAAM,MAAM,GAAG,EAAE,CAAC;gCAClB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3B,gCAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACpC,6BAAA;AACF,yBAAA;AACH,qBAAC,CAAC,CAAC;AACJ,iBAAA;AACF,aAAA;AACF,SAAA;KACF;IAED,uBAAuB,GAAA;AACrB,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,2BAA2B,EAAE,CAAC;KACpC;AAED,IAAA,2BAA2B,CAAC,YAAa,EAAA;AACvC,QAAA,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE;AACrC,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,IAAI,CAAC;AAC5C,YAAA,IAAI,CAAC,wBAAwB,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1H,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,YAAY,CAAC,EAAE,CAAC;AACvD,YAAA,IAAI,CAAC,wBAAwB,GAAG,YAAY,CAAC,EAAE,CAAC;AACjD,SAAA;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACnC,IAAI,CAAC,mBAAmB,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,MAAM,CAC7G,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,CAClC,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACf,IAAI,CAAC,MAAM,EAAE,CAAC;AACf,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,aAAa,IAAI,YAAY,EAAE;gBAC7C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC;AACnF,aAAA;AACF,SAAA;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;AAED,IAAA,mBAAmB,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpC;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;;AAEtB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAClD,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO,IAAI,CAAC,aAAa,CAAC;YAC1B,OAAO;AACR,SAAA;AACD,QAAA,MAAM,iBAAiB,GAAG,CAAC,OAAO,KAAI;AACpC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO,IAAI,CAAC,WAAW,CAAC;YACxB,OAAO,IAAI,CAAC,qBAAqB,CAAC;YAClC,IAAI,CAAC,OAAO,IAAI,EAAE,OAAO,YAAY,KAAK,CAAC,EAAE;gBAC3C,OAAO,GAAG,EAAE,CAAC;AACd,aAAA;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AAClF,gBAAA,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACtD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oBAC/B,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AACvF,iBAAA;AACF,aAAA;YACD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;AACrC,gBAAA,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;AACpI,aAAC,CAAC,CAAC;YACH,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAC3D,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,aAAA;AACH,SAAC,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACpB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;YACnD,IAAI,SAAS,GAAG,CAAW,QAAA,EAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA,OAAA,CAAS,CAAC;AACnD,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;YACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACzC,gBAAA,SAAS,IAAI,CAAA,EAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAA,EAAG,kBAAkB,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5H,aAAA;YACD,SAAS,IAAI,CAAG,EAAA,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAK,EAAA,EAAA,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA,CAAE,CAAC;AACpG,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,KAAI;gBAC9D,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC7B,aAAC,EAAE,CAAC,KAAK,KAAI;gBACX,OAAO,IAAI,CAAC,SAAS,CAAC;AACtB,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC;gBAC7F,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;oBAC3D,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;gBACZ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;oBAC9B,eAAe,EAAE,IAAI,CAAC,eAAe;AACrC,oBAAA,YAAY,EAAE,IAAI;AACnB,iBAAA,CAAC,CAAC;AACJ,aAAA;YACD,IAAI,CAAC,EAAE,CAAC,iBAAiB,CACvB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,IAAI,CAAC,wBAAwB,CAC9D,CAAC,SAAS,CAAC,CAAC,OAAmB,KAAI;gBAClC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC7B,aAAC,EAAE,CAAC,KAAK,KAAI;AACX,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC;gBAC7F,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;oBAC3D,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,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;;AAElB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;AAClF,SAAA;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED,IAAA,MAAM,CAAC,EAAE,EAAA;QACP,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,EAAE,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE;gBAC7D,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,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;KACF;AAED,IAAA,eAAe,CAAC,EAAG,EAAA;AACjB,QAAA,IAAI,EAAE,EAAE;YACN,EAAE,CAAC,cAAc,EAAE,CAAC;YACpB,EAAE,CAAC,eAAe,EAAE,CAAC;AACtB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;AACvG,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACzB,gBAAA,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,gBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;AACvB,gBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;AACrB,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;IAED,kBAAkB,CAAC,EAAE,EAAE,UAAU,EAAA;QAC/B,IAAI,CAAC,UAAU,EAAE;YACf,OAAO;AACR,SAAA;QACD,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,EAAE,CAAC,eAAe,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,gBAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACjB,aAAA;AACD,YAAA,IAAI,aAAa,CAAC;AAClB,YAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;AAC9B,gBAAA,IAAI,UAAU,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC,EAAE;oBACjD,aAAa,GAAG,KAAK,CAAC;oBACtB,MAAM;AACP,iBAAA;qBAAM,IAAI,UAAU,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE;oBAC3C,aAAa,GAAG,KAAK,CAAC;oBACtB,MAAM;AACP,iBAAA;AACF,aAAA;YACD,IAAI,CAAC,aAAa,EAAE;AAClB,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC7B,aAAA;AACD,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC,UAAU,CAAC;YACvB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACxB,YAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;AAC5C,YAAA,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;AACnC,YAAA,IAAI,CAAC,qBAAqB,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;AAC3F,SAAA;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;;;;;;KAMxB;IAED,YAAY,GAAA;QACV,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,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;QACD,IAAI,QAAQ,IAAI,CAAC,qBAAqB,CAAC,KAAK,WAAW,EAAE;AACvD,YAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE;gBAC1D,KAAK,IAAI,eAAe,GAAG,CAAC,EAAE,eAAe,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE;AAClH,oBAAA,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AACvE,oBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;AAC9D,wBAAA,IAAI,CAAC,qBAAqB,GAAG,eAAe,CAAC;wBAC7C,MAAM;AACP,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA;QACD,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;AAED,IAAA,eAAe,CAAC,KAAM,EAAA;AACpB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,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;KACF;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC;QAClB,OAAO,IAAI,CAAC,qBAAqB,CAAC;AAClC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;IAED,MAAM,CAAC,EAAE,EAAE,IAAI,EAAA;QACb,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,EAAE,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7C,QAAA,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;YACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBACtB,OAAO,IAAI,CAAC,KAAK,CAAC;gBAClB,OAAO,IAAI,CAAC,KAAK,CAAC;AACnB,aAAA;AACD,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,SAAA;KACF;AAED,IAAA,YAAY,CAAC,KAAM,EAAA;AACjB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,eAAe,EAAE,CAAC;AACzB,SAAC,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QAChF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;QACpE,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,EAC3D,CAAC,IAAI,CAAC,aAAa,YAAY,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,EAChH,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAChF,CAAC,SAAS,CAAC,CAAC,MAAW,KAAI;AAC1B,YAAA,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACrC,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3B,gBAAA,MAAM,kBAAkB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,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;AACrH,gBAAA,IAAI,kBAAkB,EAAE;AACtB,oBAAA,kBAAkB,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AACzC,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC1B,wBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AAC5B,qBAAA;oBACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACvC,iBAAA;AACD,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,QAAQ,GAAG,QAAQ,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAC9G,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC;AACtF,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;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,eAAe,CAAC,MAAc,EAAE,KAAc,EAAA;AACpD,QAAA,MAAM,CAAC,GAAsB;YAC3B,WAAW,EAAE,IAAI,CAAC,eAAe;YACjC,QAAQ,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY;AAC1G,YAAA,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACrB,MAAM;SACP,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AAC5B,YAAA,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC;AACxB,SAAA;AACD,QAAA,IAAI,QAAQ,KAAK,CAAC,KAAK,WAAW,EAAE;AAClC,YAAA,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;AACjB,SAAA;AACD,QAAA,OAAO,CAAC,CAAC;KACV;IAEO,qBAAqB,GAAA;QAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACxC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACxC,YAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;AACjC,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;AACxG,SAAA;QACD,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAAC;KACtI;IA6DO,iBAAiB,GAAA;QACvB,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;gBAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7C,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,EAAE;gBACxE,OAAO,IAAI,CAAC,YAAY,CAAC;gBACzB,IAAI,CAAC,cAAc,CAAC,WAAW,CAC7B,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,EAClC;AACE,oBAAA,MAAM,EAAE,mBAAmB;oBAC3B,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,GAAG,EAAE,IAAI,CAAC,KAAK;AACf,oBAAA,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;iBACvE,EACD,CAAC,QAAQ,KAAI;AACX,oBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACnB,wBAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;AAC3C,qBAAA;AAAM,yBAAA;wBACL,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChH,qBAAA;AACH,iBAAC,CACF,CAAC;AACH,aAAA;AACF,SAAA;AAAM,aAAA;YACL,OAAO,IAAI,CAAC,YAAY,CAAC;AAC1B,SAAA;KACF;AAEO,IAAA,qBAAqB,CAAC,MAAO,EAAA;QACnC,IAAI,SAAS,GAAG,CAAgB,aAAA,EAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA,OAAA,CAAS,CAAC;AACxD,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC3C,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;gBAC7B,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE,GAAG,KAAI;AAClF,oBAAA,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC9B,wBAAA,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACxB,wBAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACnB,wBAAA,OAAO,GAAG,CAAC;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC;AACZ,iBAAC,CAAC,CAAC;AACJ,aAAA;YACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACnC,gBAAA,SAAS,IAAI,CAAA,EAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAA,EAAG,kBAAkB,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtH,aAAA;AACD,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;gBAC7D,OAAO,IAAI,CAAC,SAAS,CAAC;AACtB,gBAAA,IAAI,MAAM,EAAE;AACV,oBAAA,IAAI,WAAW,CAAC;oBAChB,WAAW,GAAG,MAAM,CAAC;oBACrB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACjC,wBAAA,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrD,qBAAA;AACD,oBAAA,IAAI,WAAW,YAAY,KAAK,KAAK,IAAI,EAAE;AACzC,wBAAA,WAAW,GAAG,CAAC,WAAW,CAAC,CAAC;AAC7B,qBAAA;oBACD,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,oBAAA,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;wBACxB,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE;4BACvB,gBAAgB,CAAC,IAAI,CAAC;gCACpB,EAAE,EAAE,CAAC,CAAC,EAAE;AACR,gCAAA,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAA,EAAG,CAAC,CAAC,IAAI,CAAA,CAAA,EAAI,CAAC,CAAC,EAAE,CAAE,CAAA;gCACrC,IAAI,EAAE,CAAC,CAAC,IAAI;AACb,6BAAA,CAAC,CAAC;AACJ,yBAAA;AACH,qBAAC,CAAC,CAAC;oBACH,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC3B,wBAAA,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,4BAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACnD,yBAAA;AAAM,6BAAA;4BACL,OAAO,IAAI,CAAC,gBAAgB,CAAC;AAC9B,yBAAA;AACF,qBAAA;AACD,oBAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AAC1C,iBAAA;aACF,EAAE,MAAK;gBACN,OAAO,IAAI,CAAC,SAAS,CAAC;AACxB,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;+GAh1BU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,ECjB3B,QAAA,EAAA,cAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,ypXAmKA,EDpJiB,MAAA,EAAA,CAAA,mrOAAA,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,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,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,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,WAAA,EAAA,IAAA,EAAAC,SAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,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,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;oCAGO,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAA,QAAA,EAAA,ypXAAA,EAAA,MAAA,EAAA,CAAA,mrOAAA,CAAA,EAAA,CAAA;;;;;;;;;;"}
1
+ {"version":3,"file":"vgip-meta-ui-index-1a60f92a.mjs","sources":["../../../projects/meta-ui/src/lib/services/metaTracker/index.ts","../../../projects/meta-ui/src/lib/fieldReference/index.ts","../../../projects/meta-ui/src/lib/fieldReference/view.html"],"sourcesContent":["/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:35:19\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-03-23 17:08:23\n */\n\nimport { Injectable, EventEmitter } from '@angular/core';\n\nexport interface IMetaTrackerEvent {\n integration?: string;\n resource?: string;\n field?: string;\n action?: string;\n value?: string;\n isContactable?: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetaTrackerService {\n integrationCode: string;\n resourceType: string;\n events: EventEmitter<IMetaTrackerEvent> = new EventEmitter();\n\n constructor() {}\n\n emit(event: IMetaTrackerEvent) {\n if (!event.integration) {\n event.integration = this.integrationCode || 'N/A';\n }\n if (!event.resource) {\n event.resource = this.resourceType || 'N/A';\n }\n this.events.emit(event);\n }\n}\n","import { Component, OnInit, ViewContainerRef } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { MetaReferenceService } from '../services/metaReference';\nimport { Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { MetaResourceService, IMetaResourceConfig } from '../services/metaResource';\nimport { MetaRefDialog } from '../refDialog';\nimport { MetaMsgService } from '../services/metaMsg';\nimport { MetaContextService } from '../services/metaContext';\nimport { IMetaTrackerEvent, MetaTrackerService } from '../services/metaTracker';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n})\nexport class FieldReference extends FieldAbstract implements OnInit {\n input: any;\n dropdown: HTMLElement;\n dropdownScrollContainer: HTMLElement;\n searching: boolean;\n searchResourceType: any = {};\n searchText: string;\n searchResults: Array<any>;\n searchError: any;\n activeSuggestionIndex: number;\n searchResourceTypesScope: string;\n searchTextChanged: Subject<string> = new Subject<string>();\n isCreatable = false;\n value: any;\n isPolymorphic: boolean;\n isSearchable: boolean;\n multiple: boolean;\n vr: MetaResourceService;\n externalLink: string;\n dropdownVisible = false;\n searchResourceTypeMeta: any = {\n type: 'select',\n name: 'resourceType',\n label: 'Type',\n options: [], // { label: '-- All types --' }],\n standalone: true\n };\n filteredSuggestions: Array<any> = [];\n placeHolderLabel: string;\n asyncSuggestions: Array<any>;\n smartSuggestions: Array<any> = [];\n\n constructor(\n private referenceService: MetaReferenceService,\n private metaResource: MetaResourceService,\n private metaMsgService: MetaMsgService,\n private metaContext: MetaContextService,\n private metaTracker: MetaTrackerService,\n private viewContainerRef: ViewContainerRef\n ) {\n super();\n }\n\n get disabled() {\n const superDisabled = this.logicalDisabled || this.validations.disabled || this.meta.disabled === true\n || (this.meta.updatable === false && this.isPersistedParent);\n this.searchResourceTypeMeta.disabled = superDisabled;\n return superDisabled;\n }\n\n get showTypes() {\n return (typeof (this.meta.showTypes) !== 'undefined') ? this.meta.showTypes : true;\n }\n\n get suggestions() {\n return this.smartSuggestions.concat(\n !this.searchResourceType.resourceType ?\n // eslint-disable-next-line max-len\n (this.asyncSuggestions || this.meta.suggestions || []) : (this.asyncSuggestions || this.meta.suggestions || []).filter((s) => s.type === this.searchResourceType.resourceType)\n );\n }\n\n get hasAppendButton() {\n if (!this.multiple && this.model) {\n if (this.isPolymorphic) {\n for (const ref of this.metaReference) {\n if ((ref.name || ref.resourceType) === (this.model.type || this.model.resourceType)) {\n return ref.updatable || (ref.creatable && ref.updatable !== false);\n }\n }\n } else {\n return this.metaReference.updatable || (this.metaReference.creatable && this.metaReference.updatable !== false); // VGIS-6911\n }\n } else if (this.metaReference instanceof Array) {\n // setTimeout(() => {\n // this.searchResourceTypesScope = this.metaReference.map(rt => rt.name).join(',');\n // }, 0);\n for (const rt of this.metaReference) {\n if (rt.hidden !== false && rt.creatable) {\n return true;\n }\n }\n } else {\n return this.metaReference.creatable;\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 metaReference() {\n return this.meta.reference || {};\n }\n\n ngOnInit() {\n this.multiple = (this.meta.type === 'multireference') || this.meta.multiple;\n this.searchResourceTypeMeta.label = this.meta.label;\n if (!this.meta.valueType) {\n // this.meta.valueType = 'object';\n Object.defineProperty(this.meta, 'valueType', {\n value: 'object'\n });\n }\n if (this.metaReference instanceof Array) {\n this.isPolymorphic = true;\n this.isSearchable = true;\n this.searchResourceTypesScope = this.metaReference.filter(rt => rt.hidden !== true).map(rt => rt.name).join(',');\n for (const rt of this.metaReference) {\n if (rt.creatable) {\n this.isCreatable = true;\n if (typeof (rt.searchable) !== 'undefined' && !rt.searchable) {\n this.isSearchable = false;\n }\n }\n }\n this.metaReference.forEach((r) => {\n if (!r.hidden) {\n this.searchResourceTypeMeta.options.push({ id: r.name, label: r.label || r.name });\n }\n });\n } else {\n this.isSearchable = typeof (this.metaReference.searchable) === 'undefined' || this.metaReference.searchable;\n this.searchResourceType = this.metaReference;\n this.searchResourceTypesScope = this.metaReference.name || this.metaReference.resourceType;\n this.isCreatable = this.metaReference.creatable;\n }\n this.buildPlaceholderLabel();\n this.searchTextChanged.pipe(debounceTime(300), distinctUntilChanged()).subscribe((value: string) => {\n this.searchText = value;\n this.search();\n });\n const origValue = this.parent[this.meta.name];\n\n // this.suggestions = this.meta.suggestions; // TODO filter by default type\n // console.log('this.suggestions', this.suggestions);\n\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (value === '') {\n value = null;\n }\n if (this.multiple) {\n if (value && value instanceof Array) {\n for (const v of value) {\n if (!this.model) {\n this.model = [];\n }\n if (typeof (v) === 'string') {\n this.model.push({\n id: v,\n label: v,\n type: this.metaReference.name\n });\n }\n }\n } else {\n value = null; // protect when value from server is not array\n }\n } else {\n if (typeof (value) === 'string') {\n value = {\n id: value,\n label: value, // could be found with extra call\n type: this.metaReference.name\n };\n }\n this.searchText = value ?\n ((!value.label || value.label === ' ') ? `N/A (${value.type}#${value.id})` : value.label || value) :\n '';\n // if (this.isPolymorphic && this.model) { //TODO show or not?\n // this.searchResourceType = this.metaReference.find((rt)=> {\n // return rt.name === this.model.type;\n // });\n // }\n }\n this.model = value;\n if (!this.multiple) {\n this.value = this.modelToValue(value, this.meta.valueType || 'object');\n this.buildExternalLink();\n } else {\n this.value = !this.model ? this.model : this.model.map((m) => this.modelToValue(m, this.meta.valueType || 'object'));\n }\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n if (origValue) {\n this.parent[this.meta.name] = origValue;\n }\n if (!this.model && this.default) {\n if (this.multiple) {\n this.parent[this.meta.name] = [];\n if (this.default.length) {\n for (const dv of this.default) {\n if ((dv.id || dv.value) && dv.type) {\n const item: any = {\n id: dv.id || dv.value,\n label: dv.label || dv.id || dv.value,\n type: dv.type\n };\n if (dv.externalLink) {\n item.externalLink = dv.externalLink;\n }\n this.parent[this.meta.name].push(item);\n }\n }\n }\n if (!this.parent[this.meta.name].length) {\n this.clear();\n }\n } else {\n if (this.default.id && this.default.label && this.default.type) {\n setTimeout(() => {\n if (!this.model) {\n const item: any = {\n id: this.default.id || this.default.value,\n label: this.default.label || this.default.id || this.default.value,\n type: this.default.type,\n smart: true\n };\n if (this.default.externalLink) {\n item.externalLink = this.default.externalLink;\n }\n this.parent[this.meta.name] = item;\n }\n }, 0);\n } else {\n console.warn('!!!default value is not valid format', this.meta);\n }\n }\n }\n\n if (typeof (this.meta.disabled) !== 'undefined') {\n if (typeof (this.meta.disabled) === 'object') {\n for (const p of Object.keys(this.meta.disabled)) {\n const props = p.split('.');\n if (typeof (this.parent[props[0]]) !== 'undefined') {\n let val = this.parent;\n for (const prop of props) {\n val = val[prop];\n if (!val) {\n break;\n }\n }\n if (val === this.meta.disabled[p]) {\n this.logicalDisabled = true;\n this.clear();\n }\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(props[0])) {\n let val = this.parent;\n for (const prop of props) {\n val = val[prop];\n if (!val) {\n break;\n }\n }\n if (val === this.meta.disabled[p]) {\n this.logicalDisabled = true;\n this.clear();\n } else {\n delete this.logicalDisabled;\n }\n }\n });\n }\n }\n }\n\n if (this.meta.auto && this.meta.auto.search) {\n const searchParams = this.meta.auto.search.params;\n if (searchParams) {\n for (const par of Object.keys(searchParams)) {\n const props = searchParams[par].split('.');\n const field = props[0];\n const prop = props[1];\n let parValue = this.parent[field];\n if (parValue) {\n if (prop) {\n parValue = parValue[prop];\n }\n if (parValue) {\n const params = {};\n params[par] = parValue;\n this.searchAutoSuggestions(params);\n }\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(field)) {\n if (value[field]) {\n if (prop) {\n value[field] = value[field][prop];\n }\n const params = {};\n params[par] = value[field];\n this.searchAutoSuggestions(params);\n }\n }\n });\n }\n }\n }\n }\n\n clearSearchResourceType() {\n this.searchResourceType = {};\n this.onSearchResourceTypeChanged();\n }\n\n onSearchResourceTypeChanged(resourceType?) {\n if (!resourceType || !resourceType.id) {\n this.searchResourceType.resourceType = null;\n this.searchResourceTypesScope = (this.metaReference || []).filter(rt => rt.hidden !== true).map(rt => rt.name).join(',');\n } else {\n this.searchResourceType.resourceType = resourceType.id;\n this.searchResourceTypesScope = resourceType.id;\n }\n this.buildPlaceholderLabel();\n this.focus();\n if (!this.model && !this.searchText) { // filter suggestions by type\n this.filteredSuggestions = !resourceType ? (this.meta.suggestions || []) : (this.meta.suggestions || []).filter(\n (s) => s.type === resourceType.id\n );\n } else { // regular search (return scoped results)\n if (!this.model) {\n this.search();\n } else if (this.searchResults && resourceType) {\n this.searchResults = this.searchResults.filter((s) => s.type === resourceType.id);\n }\n }\n delete this.searchError;\n }\n\n onSearchTextChanged(value: string) {\n this.searchTextChanged.next(value);\n }\n\n search() {\n this.searching = true;\n // this.activeSuggestionIndex;\n if (!this.searchText || this.searchText.length < 2) {\n this.searching = false;\n delete this.searchResults;\n return;\n }\n const showSearchResults = (results) => {\n this.searching = false;\n delete this.searchError;\n delete this.activeSuggestionIndex;\n if (!results || !(results instanceof Array)) {\n results = [];\n }\n if (this.meta.acceptNew && this.meta.acceptNew.type && this.meta.acceptNew.pattern) {\n const regex = new RegExp(this.meta.acceptNew.pattern);\n if (regex.test(this.searchText)) {\n results.unshift({ id: null, label: this.searchText, type: this.meta.acceptNew.type });\n }\n }\n this.searchResults = results.map((r) => { // eslint-disable-line arrow-body-style\n return { id: r.id, label: r.label, type: r.type || r.resourceType || this.searchResourceType.name, externalLink: r.externalLink };\n });\n if (!/Vlt-dropdown--expanded/.test(this.dropdown.className)) {\n this.showDropdown();\n }\n };\n\n if (this.meta.search) {\n const searchParams = this.meta.search.params || {};\n let searchUrl = `/fields/${this.meta.name}/search`;\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 for (const p of Object.keys(searchParams)) {\n searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}${encodeURIComponent(p)}=${encodeURIComponent(searchParams[p])}`;\n }\n searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}q=${encodeURIComponent(this.searchText)}`;\n this.searching = true;\n this.resourceService.getByPath(searchUrl).subscribe((results) => {\n showSearchResults(results);\n }, (error) => {\n delete this.searching;\n this.searchResults = [];\n this.searchError = error.error ? error.error.message || error.error : error.message || error;\n if (!/Vlt-dropdown--expanded/.test(this.dropdown.className)) {\n this.showDropdown();\n }\n });\n } else {\n if (!this.vr) {\n this.vr = this.metaResource.new({\n integrationCode: this.integrationCode,\n resourceType: null\n });\n }\n this.vr.searchIntegration(\n this.searchText,\n this.searchResourceType.name || this.searchResourceTypesScope\n ).subscribe((results: Array<any>) => {\n showSearchResults(results);\n }, (error) => {\n this.searching = false;\n this.searchResults = [];\n this.searchError = error.error ? error.error.message || error.error : error.message || error;\n if (!/Vlt-dropdown--expanded/.test(this.dropdown.className)) {\n this.showDropdown();\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;\n this.dropdown = this.elementRef.nativeElement.querySelector('.dropdown-wrapper');\n }\n this.showDropdown();\n }\n\n onBlur(ev) {\n let internalControl = false;\n if (ev.relatedTarget) {\n if (!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 setTimeout(() => {\n if (!this.keyListenerActive) {\n document.removeEventListener('click', this.clickout);\n }\n }, 400);\n delete this.keyListenerActive;\n }\n }\n\n removeSelection(ev?) {\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n if (this.model && !this.suggestions.find((s) => (s.id === this.model.id && s.type === this.model.type))) {\n this.smartSuggestions.push({\n id: this.model.id,\n label: this.model.label,\n type: this.model.type,\n smart: true\n });\n }\n this.metaTracker.emit(this.buildTrackEvent('REMOVE'));\n this.clear();\n }\n\n onSuggestionSelect(ev, suggestion) {\n if (!suggestion) {\n return;\n }\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n this.metaTracker.emit(this.buildTrackEvent('SELECT'));\n if (this.multiple) {\n if (!this.model) {\n this.model = [];\n }\n let existingEntry;\n for (const entry of this.model) {\n if (suggestion.id && (entry.id === suggestion.id)) {\n existingEntry = entry;\n break;\n } else if (suggestion.label === entry.label) { // create new (google emails)\n existingEntry = entry;\n break;\n }\n }\n if (!existingEntry) {\n this.model.push(suggestion);\n }\n this.onModelChange(this.model);\n delete this.searchText;\n this.searchTextChanged.next(this.searchText);\n } else {\n this.model = suggestion;\n this.externalLink = suggestion.externalLink;\n this.onModelChange(suggestion);\n this.searchText = suggestion.label;\n this.activeSuggestionIndex = (this.searchResults || this.suggestions).indexOf(suggestion);\n }\n this.dismissDropdown();\n // if (this.isPolymorphic) {\n // this.searchResourceType = this.metaReference.find((rt)=> {\n // return rt.name === suggestion.type;\n // });\n // }\n }\n\n showDropdown() {\n if (this.disabled) {\n return;\n }\n this.dropdownVisible = true;\n this.dropdown.classList.add('Vlt-dropdown--expanded');\n if (!this.keyListenerActive) {\n this.input.addEventListener('keydown', this.keydown);\n setTimeout(() => {\n document.addEventListener('click', this.clickout);\n }, 200);\n this.keyListenerActive = true;\n }\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n if (this.model && (this.searchResults || this.suggestions)) {\n for (let suggestionIndex = 0; suggestionIndex < (this.searchResults || this.suggestions).length; suggestionIndex++) {\n const item = (this.searchResults || this.suggestions)[suggestionIndex];\n if (this.model.id === item.id && this.model.type === item.type) {\n this.activeSuggestionIndex = suggestionIndex;\n break;\n }\n }\n }\n }\n this.ensureDropdownIsVisible();\n }\n\n dismissDropdown(event?) {\n this.dropdownVisible = false;\n if (event) {\n this.focus();\n }\n if (this.dropdown) {\n this.dropdown.classList.remove('Vlt-dropdown--expanded');\n }\n }\n\n clear() {\n this.prevModel = this.model;\n delete this.searchText;\n delete this.searchResults;\n delete this.model;\n delete this.activeSuggestionIndex;\n this.onModelChange(this.model);\n this.onSearchTextChanged(this.searchText);\n this.focus();\n }\n\n revert() {\n this.model = this.prevModel;\n delete this.prevModel;\n this.onModelChange(this.model);\n this.focus();\n }\n\n remove(ev, item) {\n ev.preventDefault();\n ev.stopPropagation();\n const optionIndex = this.model.indexOf(item);\n if (optionIndex !== -1) {\n this.model.splice(optionIndex, 1);\n if (!this.model.length) {\n delete this.model;\n delete this.value;\n }\n this.onModelChange(this.model);\n }\n }\n\n openResource(model?) {\n this.keyListenerActive = true; // suppress dropdown in this case\n setTimeout(() => {\n this.dismissDropdown();\n });\n const refDialogComponent = this.viewContainerRef.createComponent(MetaRefDialog);\n this.metaTracker.emit(this.buildTrackEvent(model ? 'EDIT' : 'NEW'));\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,\n (this.metaReference instanceof Array) ? this.metaReference.filter(rt => rt.hidden !== true) : this.metaReference,\n model, null, this.searchResourceType.resourceType, theme, this.overlayContainer\n ).subscribe((result: any) => {\n if (result) {\n this.parent[this.meta.name] = result;\n this.onChange.emit(result);\n const existingSuggestion = (this.meta.suggestions || []).find((s) => (s.id === result.id && s.type === result.type));\n if (existingSuggestion) {\n existingSuggestion.label = result.label;\n } else {\n if (!this.meta.suggestions) {\n this.meta.suggestions = [];\n }\n this.meta.suggestions.unshift(result);\n }\n this.metaTracker.emit(this.buildTrackEvent(model ? 'UPDATE' : 'CREATE', result.type || result.resourceType));\n } else {\n this.metaTracker.emit(this.buildTrackEvent(model ? 'CANCEL_EDIT' : 'CANCEL_UPDATE'));\n }\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 clickout = (event) => {\n const internalControl = this.elementRef.nativeElement.contains(event.target);\n if (internalControl && ['Vlt-dropdown__link', 'Vlt-dropdown__block'].indexOf(event.target.className) !== -1) {\n this.focus();\n } else if (!internalControl && event.target !== this.input && event.target.className !== 'Vlt-dropdown__title') {\n this.dismissDropdown();\n } else {\n if (!internalControl && internalControl.tagName !== 'INPUT') {\n this.focus();\n }\n }\n };\n\n private buildTrackEvent(action: string, value?: string) {\n const e: IMetaTrackerEvent = {\n integration: this.integrationCode,\n resource: this.model ? (this.model.type || this.model.resourceType) : this.searchResourceType.resourceType,\n field: this.meta.name,\n action\n };\n if (this.meta.$isContactable) {\n e.isContactable = true;\n }\n if (typeof (value) !== 'undefined') {\n e.value = value;\n }\n return e;\n }\n\n private buildPlaceholderLabel() {\n this.placeHolderLabel = this.meta.label;\n if (this.multiple && !this.isPolymorphic) {\n this.placeHolderLabel = '+Add ';\n } else {\n this.placeHolderLabel = (this.isSearchable && (this.multiple || !this.isPolymorphic)) ? 'Search ' : '';\n }\n this.placeHolderLabel += this.searchResourceType.resourceType ? this.searchResourceType.resourceType : this.searchResourceTypesScope;\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.searchResults || this.suggestions).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.searchResults || this.suggestions).length - 1;\n } else {\n this.activeSuggestionIndex--;\n if (this.activeSuggestionIndex < 0) {\n this.activeSuggestionIndex = (this.searchResults || this.suggestions).length - 1;\n }\n }\n this.ensureDropdownOptionIsVisible();\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n case 'Space':\n case 'Enter': {\n if (typeof (this.activeSuggestionIndex) !== 'undefined') {\n event.preventDefault();\n event.stopPropagation();\n this.onSuggestionSelect(event, (this.searchResults || this.suggestions)[this.activeSuggestionIndex]);\n delete this.activeSuggestionIndex;\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.multiple && this.model) { // HPBR-8229\n event.preventDefault();\n event.stopPropagation();\n this.removeSelection();\n }\n break;\n }\n }\n };\n\n private buildExternalLink() {\n if (this.model) {\n if (this.model.externalLink) {\n this.externalLink = this.model.externalLink;\n } else if (this.metaContext.profiles[this.integrationCode.toUpperCase()]) {\n delete this.externalLink;\n this.metaMsgService.sendMessage(\n this.integrationCode.toUpperCase(),\n {\n action: 'buildExternalLink',\n integrationCode: this.integrationCode,\n ref: this.model,\n profile: this.metaContext.profiles[this.integrationCode.toUpperCase()]\n },\n (response) => {\n if (!response.error) {\n this.externalLink = response.externalLink;\n } else {\n console.warn('No external link support for', this.integrationCode, this.model.resourceType || this.model.type);\n }\n }\n );\n }\n } else {\n delete this.externalLink;\n }\n }\n\n private searchAutoSuggestions(params?) {\n let searchUrl = `/suggestions/${this.meta.name}/search`;\n if (this.meta.auto && this.meta.auto.search) {\n if (this.meta.auto.search.url) {\n searchUrl = this.meta.auto.search.url.replace(/\\${\\s*([\\w.]+)\\s*}/g, (match, key) => {\n if (params.hasOwnProperty(key)) {\n const val = params[key];\n delete params[key];\n return val;\n }\n return '';\n });\n }\n for (const p of Object.keys(params)) {\n searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}${encodeURIComponent(p)}=${encodeURIComponent(params[p])}`;\n }\n this.searching = true;\n this.resourceService.getByPath(searchUrl).subscribe((result) => {\n delete this.searching;\n if (result) {\n let suggestions;\n suggestions = result;\n if (this.meta.auto.search.extract) {\n suggestions = result[this.meta.auto.search.extract];\n }\n if (suggestions instanceof Array !== true) {\n suggestions = [suggestions];\n }\n const asyncSuggestions = [];\n suggestions.forEach((s) => {\n if (s && s.id && s.type) { // TOOD check the type is acceptable\n asyncSuggestions.push({\n id: s.id,\n label: s.label || `${s.type}#${s.id}`,\n type: s.type\n });\n }\n });\n if (asyncSuggestions.length) {\n if (asyncSuggestions.length === 1) {\n this.parent[this.meta.name] = asyncSuggestions[0];\n } else {\n delete this.asyncSuggestions;\n }\n }\n this.asyncSuggestions = asyncSuggestions;\n }\n }, () => {\n delete this.searching;\n });\n }\n }\n\n}\n","<div class='vgip-meta-field-preview' *ngIf='preview && model && (!multiple || (multiple && model.length))'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div *ngIf='!multiple' class='vgip-meta-field-value __gu' [ngClass]=\"{ 'has-external-link': externalLink || model.externalLink }\">\n <svg class=\"Vlt-icon Vlt-icon--smaller\" style='margin-top: -3px;'>\n <use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\" />\n </svg>\n {{model.label || model.id}} <span class='Vlt-grey'>({{model.type}})</span>\n </div>\n <div *ngIf='multiple' class='vgip-meta-field-value __gu'>\n <span *ngFor='let m of (model || [])' class='Vlt-badge Vlt-badge--app'>\n {{m.label || m.id || m}} <span class='Vlt-grey-dark' *ngIf='isPolymorphic'>({{m.type}})</span>\n </span>\n </div>\n <a [href]='externalLink || model.externalLink' target='_blank' rel='noopener'\n *ngIf='externalLink && (model && !multiple)' class=\"Vlt-composite__append--icon preview\" aria-label='Open external'>\n <div class=\"Vlt-composite__icon\">\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\" />\n </svg>\n </div>\n </a>\n</div>\n<div *ngIf='!preview' class=\"meta-field-reference Vlt-form__element Vlt-form__element--big\"\n [ngClass]=\"{ 'Vlt-form__element--error': (searchError && keyListenerActive) || (f.invalid && ((f | metaModel)._parent.submitted || (ft | metaModel ).touched)), 'multiple': multiple, 'has-value': model, active: keyListenerActive }\">\n <div *ngIf='multiple' class='items-container' [ngClass]='{ creatable: isCreatable }'>\n <div *ngIf='model' class='badges-container keep-focus' (click)='focus()' style='width: 100%;'> <!-- eslint-disable-line -->\n <div *ngFor='let item of model' class=\"Vlt-badge Vlt-badge--app Vlt-badge--large keep-focus\" [ngClass]=\"{ grid: (item.label || item.id || '').length > 56}\">\n <span class='Vlt-truncate'>{{item.label || item.id || item }} <span *ngIf='isPolymorphic' class='Vlt-grey-dark' style='font-weight: normal;'>({{item.type}})</span></span>\n <button class=\"Vlt-badge__dismiss keep-focus\" (click)='remove($event, item)' style='position: absolute; right: 12px; top: 8px;' aria-label='Remove'></button>\n </div>\n </div>\n </div>\n <div class=\"Vlt-composite\">\n <div class='dropdown-wrapper Vlt-dropdown' style='width: 100%; position: absolute; top: 48px;'>\n <div class=\"Vlt-dropdown__panel\">\n <div *ngIf='searchError'>\n <div class=\"Vlt-callout Vlt-callout--critical keep-focus\">\n <i></i>\n <div class=\"Vlt-callout__content\">{{searchError}}</div>\n </div>\n </div>\n <div *ngIf='!searchError && (suggestions.length || searchResults)' [ngClass]=\"{ suggestions: !searchResults}\"\n class=\"Vlt-dropdown__panel__content Vlt-dropdown__panel__content--scroll-area\" style='padding: 0;'>\n <div class=\"Vlt-dropdown__block\"></div>\n <div *ngIf='!searchResults' class=\"Vlt-dropdown__scroll\">\n <a href='#' [ngClass]=\"{ 'Vlt-dropdown__link--selected': activeSuggestionIndex === i, smart: suggestion.smart }\" (click)='onSuggestionSelect($event, suggestion)' *ngFor='let suggestion of suggestions; let i = index' class=\"Vlt-dropdown__link has-type\">\n <svg class='Vlt-icon Vlt-icon--small'><use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\"/></svg>\n <div class='__gu' [title]='suggestion.label'>{{ suggestion.label }}</div>\n <small class='Vlt-grey-dark' style='text-transform: capitalize;'>{{suggestion.type}}</small>\n </a>\n </div>\n <div *ngIf='searchResults' class=\"Vlt-dropdown__scroll\">\n <div *ngIf='!searchResults.length' class='Vlt-dropdown__block'> No records matching '<b style='pointer-events: none;'>{{searchText}}</b>' were found.</div>\n <a href='#' [ngClass]=\"{ 'Vlt-dropdown__link--selected': activeSuggestionIndex === i }\" (click)='onSuggestionSelect($event, suggestion)' *ngFor='let suggestion of searchResults; let i = index' class=\"Vlt-dropdown__link has-type\">\n <svg class='Vlt-icon Vlt-icon--small'><use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\"/></svg>\n <div class='__gu' [title]='suggestion.label'>{{ suggestion.label }}</div>\n <small class='Vlt-grey-dark' style='text-transform: capitalize;'>{{suggestion.type}}</small>\n </a>\n </div>\n <!-- <div *ngIf='searchResults' class=\"Vlt-dropdown__block\" style='text-align: right; padding-top: 0;'>\n <small>\n {{ searchResults ? searchResults.length+' results' : 'Suggestions' }} <span style='font-style: italic; font-weight: normal;' *ngIf='searchResults'>~{{ model ? 'last search' : searchText}}</span>\n </small>\n </div> -->\n <div class=\"Vlt-dropdown__block\"></div>\n </div>\n </div>\n </div>\n <div class=\"Vlt-composite__prepend\"\n *ngIf='isPolymorphic && showTypes && (multiple || !model || (dropdownVisible && ((suggestions || searchResults || []).length || searchResourceType.resourceType)))'>\n <div class=\"search-scope\" [ngClass]=\"{ 'has-value': searchResourceType.resourceType }\">\n <vgip-meta-field class='shown' [meta]='searchResourceTypeMeta' [parent]='searchResourceType'\n (onChange)='onSearchResourceTypeChanged($event)' (onLeave)='onBlur($event)'\n [integrationCode]='integrationCode' theme='inherit'></vgip-meta-field>\n <svg class='Vlt-icon Vlt-grey Vlt-icon--smaller visible-mobile mobile-icon'\n style='position: absolute; top: 15px; left: 14px; pointer-events: none;'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-menu\" />\n </svg>\n </div>\n </div>\n <div *ngIf='!(isPolymorphic && showTypes && (multiple || !model || dropdownVisible))'>\n <!-- required by css -->\n </div>\n <div class=\"Vlt-composite__wrapper Vlt-input\" style='overflow: hidden;'\n [ngClass]=\"{ 'has-append-button': hasAppendButton && !disabled, 'vgip-disable': disabled }\">\n <label class='wrapper'>\n <div class=\"Vlt-composite__prepend Vlt-composite__prepend--icon\" style='top: 0; padding-top: 15px;'>\n <div class=\"Vlt-composite__icon\">\n <svg *ngIf='isSearchable && (!model || multiple)' class='Vlt-grey'>\n <use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-{{ multiple ? 'stack' : 'search'}}\" />\n </svg>\n <svg *ngIf='!isSearchable || (model && !multiple)'\n [ngStyle]=\"{fill: integrationIcon === 'Brand-icon-vonage' ? 'var(--vgip-meta-input-color)' : ''}\">\n <use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\" />\n </svg>\n </div>\n <div *ngIf='suggestions.length' class=\"Vlt-badge Vlt-badge--small Vlt-badge--purple\"\n style='padding: 0px 4px; position: absolute; top: 26px; left: 4px; pointer-events: none; min-width: 14px;'>\n {{suggestions.length}}</div>\n </div>\n <input class='model' type='hidden' [required]='validations.required' [(ngModel)]='model' #f='ngModel' [name]='name' />\n <input class='main' [readonly]='!isSearchable || (model && !multiple)' [ngModel]='searchText' #ft='ngModel' (ngModelChange)='onSearchTextChanged($event)' [ngModelOptions]=\"{standalone: true}\" type=\"text\" placeholder=\"{{ placeHolderLabel || ' ' }}\" [ngClass]='{ ext: externalLink }' (click)='onActivated($event)' (focus)='onActivated($event)' (blur)='onBlur($event)' [disabled]='disabled' [title]=\"model ? model.label : ''\"/>\n <label class='Vlt-truncate hidden-mobile' style='padding-left: 25px; padding-right: 42px;'>{{ (multiple && isPolymorphic) ? '+Add ' : ((model || !isPolymorphic) ? meta.label : ( meta.searchLabel || 'Search')) }}<span *ngIf='validations.required' class='Vlt-red'>*</span>&nbsp;<span style='color: var(--vgip-meta-input-color); text-transform: capitalize;' *ngIf='model'>({{model.type || model.resourceType || model.length}})</span></label> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control-->\n <label class='Vlt-truncate hidden-desktop' style='padding-left: 25px; padding-right: 42px;'>{{meta.label || meta.name}}<span *ngIf='validations.required' class='Vlt-red'>*</span>&nbsp;<span style='color: var(--vgip-meta-input-color); text-transform: capitalize;' *ngIf='model'>({{model.type || model.resourceType || model.length}})</span></label> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control-->\n </label>\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 <!-- <div *ngIf='prevModel && !model' class=\"Vlt-composite__append--icon\" (click)='revert()'>\n <div class=\"Vlt-composite__icon\">\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-reply\"/></svg>\n </div>\n </div> -->\n <a href='#' *ngIf='model && !multiple' class=\"Vlt-composite__append--icon\" (click)='removeSelection($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 <a [href]='externalLink || model.externalLink' target='_blank' rel='noopener' *ngIf='externalLink && (model && !multiple)' class=\"Vlt-composite__append--icon\" aria-label='Open external'>\n <div class=\"Vlt-composite__icon\">\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\" />\n </svg>\n </div>\n </a>\n </div>\n </div>\n <!-- <span *ngIf='hasCreatables'>\n <button type='button' *ngIf='!model || multiple' (click)='openResource()' 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 <button type='button' *ngIf='model && !multiple' (click)='openResource(model)' class=\"Vlt-btn Vlt-btn--primary Vlt-btn--icon Vlt-btn--large\" style='margin-left: 12px;'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-edit\"/></svg>\n </button>\n </span> -->\n <div *ngIf='hasAppendButton && !disabled' class=\"Vlt-composite__append\">\n <button (focus)='onActivated($event)' (blur)='onBlur($event)' type='button' *ngIf='!model || multiple'\n (click)='openResource()' class=\"Vlt-btn Vlt-btn--white Vlt-btn--icon\" aria-label='Add new'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\" />\n </svg>\n </button>\n <button (focus)='onActivated($event)' (blur)='onBlur($event)' type='button' *ngIf='model && !multiple'\n (click)='openResource(model)' class=\"Vlt-btn Vlt-btn--white Vlt-btn--icon\" aria-label='Edit'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-edit\" />\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.pattern\">Should match '{{validations.pattern}}' pattern</span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}}&nbsp;</span>\n </small>\n <small *ngIf='meta.helpText || meta.hint' class=\"Vlt-form__element__hint\">{{meta.helpText || meta.hint}}</small>\n</div>\n"],"names":["i1.MetaReferenceService","i2.MetaResourceService","i3.MetaMsgService","i4.MetaContextService","i5.MetaTrackerService","i6","i7","i8.MetaField","i9.MetaModelPipe"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { Component } from '@angular/core';
3
3
  import { F as FieldAbstract } from './vgip-meta-ui-fieldAbstract-baeaf24d.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-5b9bf56d.mjs';
6
+ import { M as MetaRefDialog, b as MetaReferenceService, a as MetaResourceService } from './vgip-meta-ui-index-cf45af01.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';
@@ -11,7 +11,7 @@ import 'rxjs/operators';
11
11
  import './vgip-meta-ui-index-37358620.mjs';
12
12
  import '@angular/common/http';
13
13
  import '@angular/router';
14
- import './vgip-meta-ui-index-53a51627.mjs';
14
+ import './vgip-meta-ui-index-e9eb9739.mjs';
15
15
 
16
16
  class FieldSelect extends FieldAbstract {
17
17
  constructor(referenceService, metaResource, viewContainerRef) {
@@ -543,4 +543,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
543
543
  }], ctorParameters: function () { return [{ type: MetaReferenceService }, { type: MetaResourceService }, { type: i0.ViewContainerRef }]; } });
544
544
 
545
545
  export { FieldSelect };
546
- //# sourceMappingURL=vgip-meta-ui-index-dbe3aa62.mjs.map
546
+ //# sourceMappingURL=vgip-meta-ui-index-1ca4988b.mjs.map