@vgip/meta-ui 1.6.9 → 1.7.0

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.
Files changed (102) hide show
  1. package/esm2020/lib/fieldAbstract.mjs +2 -2
  2. package/esm2020/lib/fieldBoolean/index.mjs +3 -3
  3. package/esm2020/lib/fieldDatetime/index.mjs +3 -3
  4. package/esm2020/lib/fieldInput/index.mjs +3 -3
  5. package/esm2020/lib/fieldRadio/index.mjs +3 -3
  6. package/esm2020/lib/fieldReference/index.mjs +3 -3
  7. package/esm2020/lib/fieldRichtext/index.mjs +3 -3
  8. package/esm2020/lib/fieldSelect/index.mjs +6 -4
  9. package/esm2020/lib/fieldText/index.mjs +3 -3
  10. package/fesm2015/{vgip-meta-ui-fieldAbstract-17f26446.mjs → vgip-meta-ui-fieldAbstract-f7d80db6.mjs} +2 -2
  11. package/fesm2015/vgip-meta-ui-fieldAbstract-f7d80db6.mjs.map +1 -0
  12. package/fesm2015/vgip-meta-ui-index-1d2b4c69.mjs +68 -0
  13. package/fesm2015/vgip-meta-ui-index-1d2b4c69.mjs.map +1 -0
  14. package/fesm2015/{vgip-meta-ui-index-9ca39230.mjs → vgip-meta-ui-index-2737c81e.mjs} +3 -3
  15. package/fesm2015/{vgip-meta-ui-index-9ca39230.mjs.map → vgip-meta-ui-index-2737c81e.mjs.map} +1 -1
  16. package/{fesm2020/vgip-meta-ui-index-8c0d0972.mjs → fesm2015/vgip-meta-ui-index-2b20afc8.mjs} +4 -4
  17. package/fesm2015/vgip-meta-ui-index-2b20afc8.mjs.map +1 -0
  18. package/fesm2015/{vgip-meta-ui-index-fda3d1e2.mjs → vgip-meta-ui-index-3eefa50a.mjs} +3 -3
  19. package/fesm2015/{vgip-meta-ui-index-fda3d1e2.mjs.map → vgip-meta-ui-index-3eefa50a.mjs.map} +1 -1
  20. package/fesm2015/{vgip-meta-ui-index-5a12f79d.mjs → vgip-meta-ui-index-476b6cb7.mjs} +2 -2
  21. package/fesm2015/{vgip-meta-ui-index-5a12f79d.mjs.map → vgip-meta-ui-index-476b6cb7.mjs.map} +1 -1
  22. package/fesm2015/{vgip-meta-ui-index-8a2f9dbf.mjs → vgip-meta-ui-index-4b8d731c.mjs} +14 -14
  23. package/fesm2015/{vgip-meta-ui-index-8a2f9dbf.mjs.map → vgip-meta-ui-index-4b8d731c.mjs.map} +1 -1
  24. package/fesm2015/{vgip-meta-ui-index-b79a6173.mjs → vgip-meta-ui-index-4ecdd48a.mjs} +3 -3
  25. package/fesm2015/{vgip-meta-ui-index-b79a6173.mjs.map → vgip-meta-ui-index-4ecdd48a.mjs.map} +1 -1
  26. package/fesm2015/vgip-meta-ui-index-62be0e3e.mjs +858 -0
  27. package/fesm2015/vgip-meta-ui-index-62be0e3e.mjs.map +1 -0
  28. package/fesm2015/vgip-meta-ui-index-640f8e62.mjs +95 -0
  29. package/fesm2015/vgip-meta-ui-index-640f8e62.mjs.map +1 -0
  30. package/fesm2015/vgip-meta-ui-index-695384af.mjs +88 -0
  31. package/fesm2015/vgip-meta-ui-index-695384af.mjs.map +1 -0
  32. package/{fesm2020/vgip-meta-ui-index-8f956c8f.mjs → fesm2015/vgip-meta-ui-index-81aa79dc.mjs} +4 -4
  33. package/fesm2015/vgip-meta-ui-index-81aa79dc.mjs.map +1 -0
  34. package/fesm2015/{vgip-meta-ui-index-db9a2218.mjs → vgip-meta-ui-index-87041aad.mjs} +2 -2
  35. package/fesm2015/{vgip-meta-ui-index-db9a2218.mjs.map → vgip-meta-ui-index-87041aad.mjs.map} +1 -1
  36. package/fesm2015/vgip-meta-ui-index-a76ba482.mjs +498 -0
  37. package/fesm2015/vgip-meta-ui-index-a76ba482.mjs.map +1 -0
  38. package/fesm2015/vgip-meta-ui-index-bf5b6c0f.mjs +61 -0
  39. package/fesm2015/vgip-meta-ui-index-bf5b6c0f.mjs.map +1 -0
  40. package/fesm2015/vgip-meta-ui.mjs +17 -17
  41. package/fesm2020/{vgip-meta-ui-fieldAbstract-17f26446.mjs → vgip-meta-ui-fieldAbstract-f7d80db6.mjs} +2 -2
  42. package/fesm2020/vgip-meta-ui-fieldAbstract-f7d80db6.mjs.map +1 -0
  43. package/fesm2020/vgip-meta-ui-index-1d2b4c69.mjs +68 -0
  44. package/fesm2020/vgip-meta-ui-index-1d2b4c69.mjs.map +1 -0
  45. package/{fesm2015/vgip-meta-ui-index-8c0d0972.mjs → fesm2020/vgip-meta-ui-index-2b20afc8.mjs} +4 -4
  46. package/fesm2020/vgip-meta-ui-index-2b20afc8.mjs.map +1 -0
  47. package/fesm2020/{vgip-meta-ui-index-b0cee687.mjs → vgip-meta-ui-index-301b28cd.mjs} +14 -14
  48. package/fesm2020/{vgip-meta-ui-index-b0cee687.mjs.map → vgip-meta-ui-index-301b28cd.mjs.map} +1 -1
  49. package/fesm2020/{vgip-meta-ui-index-5a12f79d.mjs → vgip-meta-ui-index-476b6cb7.mjs} +2 -2
  50. package/fesm2020/{vgip-meta-ui-index-5a12f79d.mjs.map → vgip-meta-ui-index-476b6cb7.mjs.map} +1 -1
  51. package/fesm2020/vgip-meta-ui-index-4c4a4daf.mjs +858 -0
  52. package/fesm2020/vgip-meta-ui-index-4c4a4daf.mjs.map +1 -0
  53. package/fesm2020/{vgip-meta-ui-index-b428f3c0.mjs → vgip-meta-ui-index-4fcefde0.mjs} +3 -3
  54. package/fesm2020/{vgip-meta-ui-index-b428f3c0.mjs.map → vgip-meta-ui-index-4fcefde0.mjs.map} +1 -1
  55. package/fesm2020/vgip-meta-ui-index-640f8e62.mjs +95 -0
  56. package/fesm2020/vgip-meta-ui-index-640f8e62.mjs.map +1 -0
  57. package/fesm2020/vgip-meta-ui-index-695384af.mjs +88 -0
  58. package/fesm2020/vgip-meta-ui-index-695384af.mjs.map +1 -0
  59. package/{fesm2015/vgip-meta-ui-index-8f956c8f.mjs → fesm2020/vgip-meta-ui-index-81aa79dc.mjs} +4 -4
  60. package/fesm2020/vgip-meta-ui-index-81aa79dc.mjs.map +1 -0
  61. package/fesm2020/{vgip-meta-ui-index-db9a2218.mjs → vgip-meta-ui-index-87041aad.mjs} +2 -2
  62. package/fesm2020/{vgip-meta-ui-index-db9a2218.mjs.map → vgip-meta-ui-index-87041aad.mjs.map} +1 -1
  63. package/fesm2020/vgip-meta-ui-index-aee28354.mjs +497 -0
  64. package/fesm2020/vgip-meta-ui-index-aee28354.mjs.map +1 -0
  65. package/fesm2020/{vgip-meta-ui-index-dae4cc15.mjs → vgip-meta-ui-index-b92a559b.mjs} +3 -3
  66. package/fesm2020/{vgip-meta-ui-index-dae4cc15.mjs.map → vgip-meta-ui-index-b92a559b.mjs.map} +1 -1
  67. package/fesm2020/vgip-meta-ui-index-bf5b6c0f.mjs +61 -0
  68. package/fesm2020/vgip-meta-ui-index-bf5b6c0f.mjs.map +1 -0
  69. package/fesm2020/{vgip-meta-ui-index-39177940.mjs → vgip-meta-ui-index-f7370960.mjs} +3 -3
  70. package/fesm2020/{vgip-meta-ui-index-39177940.mjs.map → vgip-meta-ui-index-f7370960.mjs.map} +1 -1
  71. package/fesm2020/vgip-meta-ui.mjs +17 -17
  72. package/package.json +1 -1
  73. package/fesm2015/vgip-meta-ui-fieldAbstract-17f26446.mjs.map +0 -1
  74. package/fesm2015/vgip-meta-ui-index-0fc1c4a5.mjs +0 -68
  75. package/fesm2015/vgip-meta-ui-index-0fc1c4a5.mjs.map +0 -1
  76. package/fesm2015/vgip-meta-ui-index-89b8d1d4.mjs +0 -858
  77. package/fesm2015/vgip-meta-ui-index-89b8d1d4.mjs.map +0 -1
  78. package/fesm2015/vgip-meta-ui-index-8c0d0972.mjs.map +0 -1
  79. package/fesm2015/vgip-meta-ui-index-8f956c8f.mjs.map +0 -1
  80. package/fesm2015/vgip-meta-ui-index-91a02c0f.mjs +0 -95
  81. package/fesm2015/vgip-meta-ui-index-91a02c0f.mjs.map +0 -1
  82. package/fesm2015/vgip-meta-ui-index-9af6e01b.mjs +0 -88
  83. package/fesm2015/vgip-meta-ui-index-9af6e01b.mjs.map +0 -1
  84. package/fesm2015/vgip-meta-ui-index-a276b206.mjs +0 -61
  85. package/fesm2015/vgip-meta-ui-index-a276b206.mjs.map +0 -1
  86. package/fesm2015/vgip-meta-ui-index-e4e3a171.mjs +0 -496
  87. package/fesm2015/vgip-meta-ui-index-e4e3a171.mjs.map +0 -1
  88. package/fesm2020/vgip-meta-ui-fieldAbstract-17f26446.mjs.map +0 -1
  89. package/fesm2020/vgip-meta-ui-index-0fc1c4a5.mjs +0 -68
  90. package/fesm2020/vgip-meta-ui-index-0fc1c4a5.mjs.map +0 -1
  91. package/fesm2020/vgip-meta-ui-index-8c0d0972.mjs.map +0 -1
  92. package/fesm2020/vgip-meta-ui-index-8f956c8f.mjs.map +0 -1
  93. package/fesm2020/vgip-meta-ui-index-91a02c0f.mjs +0 -95
  94. package/fesm2020/vgip-meta-ui-index-91a02c0f.mjs.map +0 -1
  95. package/fesm2020/vgip-meta-ui-index-9af6e01b.mjs +0 -88
  96. package/fesm2020/vgip-meta-ui-index-9af6e01b.mjs.map +0 -1
  97. package/fesm2020/vgip-meta-ui-index-a276b206.mjs +0 -61
  98. package/fesm2020/vgip-meta-ui-index-a276b206.mjs.map +0 -1
  99. package/fesm2020/vgip-meta-ui-index-ad59c1c4.mjs +0 -495
  100. package/fesm2020/vgip-meta-ui-index-ad59c1c4.mjs.map +0 -1
  101. package/fesm2020/vgip-meta-ui-index-e5f4755f.mjs +0 -858
  102. package/fesm2020/vgip-meta-ui-index-e5f4755f.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"vgip-meta-ui-index-89b8d1d4.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 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 }, 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() {\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();\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 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\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');\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 }, (err) => {\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'>{{meta.label || meta.name}}</div>\n <div *ngIf='!multiple' class='vgip-meta-field-value __gu'>\n <svg class=\"Vlt-icon Vlt-icon--smaller\" style='margin-top: -3px;'><use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\"/></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' *ngIf='externalLink && (model && !multiple)' class=\"Vlt-composite__append--icon preview\" aria-label='Open external'>\n <div class=\"Vlt-composite__icon\">\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\"/></svg>\n </div>\n </a>\n</div>\n<div *ngIf='!preview' class=\"meta-field-reference Vlt-form__element Vlt-form__element--big\" [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%;'>\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}\" 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 <div [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 </div>\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 <div [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 </div>\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\" *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' (onChange)='onSearchResourceTypeChanged($event)' (onLeave)='onBlur($event)' [integrationCode]='integrationCode' theme='inherit'></vgip-meta-field>\n <svg class='Vlt-icon Vlt-grey Vlt-icon--smaller visible-mobile mobile-icon' style='position: absolute; top: 15px; left: 14px; pointer-events: none;'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-menu\"/>\n </svg>\n <label class='mobile-label hidden-mobile hidden-desktop'>Search</label>\n </div>\n </div>\n <div *ngIf='!(isPolymorphic && showTypes && (multiple || !model || dropdownVisible))'><!-- required by css --></div>\n <div class=\"Vlt-composite__wrapper Vlt-input\" style='overflow: hidden;' [ngClass]=\"{ 'has-append-button': hasAppendButton && !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'><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-{{ multiple ? 'stack' : 'search'}}\"/></svg>\n <svg *ngIf='!isSearchable || (model && !multiple)' [ngStyle]=\"{fill: integrationIcon === 'Brand-icon-vonage' ? 'var(--vgip-meta-input-color)' : ''}\"><use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\"/></svg>\n </div>\n <div *ngIf='suggestions.length' class=\"Vlt-badge Vlt-badge--small Vlt-badge--purple\" style='padding: 0px 4px; position: absolute; top: 26px; left: 4px; pointer-events: none; min-width: 14px;'>{{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>\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>\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 <div *ngIf='model && !multiple' class=\"Vlt-composite__append--icon\" (click)='removeSelection()'>\n <div class=\"Vlt-composite__icon\">\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/></svg>\n </div>\n </div>\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><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\"/></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' (click)='openResource()' class=\"Vlt-btn Vlt-btn--white Vlt-btn--icon\" aria-label='Add new'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>\n </button>\n <button (focus)='onActivated($event)' (blur)='onBlur($event)' type='button' *ngIf='model && !multiple' (click)='openResource(model)' class=\"Vlt-btn Vlt-btn--white Vlt-btn--icon\" aria-label='Edit'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-edit\"/></svg>\n </button>\n </div>\n </div>\n <small *ngIf='f.invalid && ((f | metaModel)._parent.submitted || ((ft | metaModel).touched && keyListenerActive))' 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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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"vgip-meta-ui-index-8c0d0972.mjs","sources":["../../../projects/meta-ui/src/lib/fieldDatetime/index.ts","../../../projects/meta-ui/src/lib/fieldDatetime/view.html"],"sourcesContent":["/*\n* @Author: Alexander.Vangelov@vonage.com\n* @Date: 2020-04-18 18:05:46\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-04-18 21:09:16\n*/\n\nimport { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\nimport { FieldAbstract } from '../fieldAbstract';\nimport { relativeTimeBuilder } from '../common/utils/relativeTimeBuilder';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n})\nexport class FieldDatetime extends FieldAbstract implements OnInit {\n input: any;\n dropdown: any;\n activeSuggestionIndex: number;\n value: any;\n type: string;\n placeholder = 'dd/mm/yyyy';\n\n get suggestions() {\n return this.meta.suggestions || [];\n }\n\n ngOnInit() {\n this.validationAttributes = ['required', 'min', 'max', 'step'];\n this.type = this.meta.type;\n if (this.meta.type === 'datetime') {\n this.type = 'datetime-local';\n this.placeholder += ' --:-- --';\n } else if (this.meta.type === 'time') {\n this.placeholder = '--:-- --';\n }\n const origValue = this.parent[this.meta.name];\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (value) {\n if (['datetime', 'date', 'datetime-local'].indexOf(this.meta.type || this.meta.subtype) !== -1 && value) {\n try {\n let date: Date;\n if ((typeof (value) === 'number')) {\n date = new Date(parseInt(value as any, 10));\n if ('date' === (this.meta.type || this.meta.subtype)) {\n date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\n }\n } else {\n if ('date' === (this.meta.type || this.meta.subtype)) {\n date = new Date(Date.parse(value));\n } else {\n date = new Date(Date.parse(`${value}Z`) + (new Date().getTimezoneOffset() * 60000));\n }\n }\n if (typeof (value) === 'number') {\n switch (this.meta.type || this.meta.subtype) {\n case 'datetime-local':\n case 'datetime': {\n this.model = `${date.getFullYear()}-${('00' + (date.getMonth() + 1)).slice(-2)}-${('00' + date.getDate()).slice(-2)}`;\n this.model += `T${('00' + date.getHours()).slice(-2)}:${('00' + date.getMinutes()).slice(-2)}`;\n break;\n }\n case 'date': {\n this.model = date.toISOString().split('T')[0];\n break;\n }\n }\n }\n if (this.meta.valueType === 'isostring') {\n this.value = date.toISOString();\n } else if (this.meta.valueType === 'string') {\n if ((this.meta.type || this.meta.subtype) === 'date') {\n this.value = date.toISOString().split('T')[0];\n } else {\n this.value = date.toISOString();\n }\n } else {\n if ((this.meta.type || this.meta.subtype) === 'date') {\n date.setFullYear(date.getUTCFullYear());\n date.setMonth(date.getUTCMonth());\n date.setDate(date.getUTCDate());\n date.setMinutes(0);\n date.setHours(0);\n date.setSeconds(0);\n date.setMilliseconds(0);\n this.value = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).getTime();\n } else {\n this.value = date.getTime();\n }\n }\n } catch (e) {\n console.error('Date parse error', e.message, `\"${value}\"`, `(${typeof (value)})`);\n }\n } else if ('time' === (this.meta.type || this.meta.subtype)) {\n try {\n let date: Date;\n if (typeof (value) === 'number') {\n date = new Date(parseInt(value as any, 10));\n if (value < 86400000) {\n date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\n }\n } else {\n date = new Date(\n Date.parse(new Date().toISOString().replace(/T.*Z/, `T${value}Z`)) + (new Date().getTimezoneOffset() * 60000)\n );\n }\n this.model = date.toTimeString().split(' ')[0];\n if (this.meta.valueType === 'isostring') {\n this.value = date.toISOString();\n } else {\n date.setFullYear(1970);\n date.setMonth(0);\n date.setDate(1);\n date.setMilliseconds(0);\n if (this.meta.valueType === 'string') {\n this.value = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toISOString().split('T')[1].substring(0,8);\n } else {\n this.value = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).getTime();\n }\n }\n } catch (e) {\n console.error('Date parse error', e.message, `\"${value}\"`, `(${typeof (value)})`);\n }\n }\n } else {\n delete this.model;\n delete this.value;\n }\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n if (typeof(origValue) !== 'undefined') {\n this.parent[this.meta.name] = origValue;\n }\n const d = this.meta.default || this.meta.defaultValue;\n if (d && typeof(this.model) === 'undefined') {\n const defaultValue = (typeof (d) === 'string') ? d : (d.id || d.value);\n if (defaultValue || defaultValue === 0) {\n if (/^(date|time)/.test(this.meta.type || this.meta.subtype) && typeof(defaultValue) === 'string') {\n this.parent[this.meta.name] = relativeTimeBuilder(this.meta.type || this.meta.subtype, defaultValue, this.validations.step);\n } else {\n this.parent[this.meta.name] = defaultValue;\n }\n }\n }\n if (typeof(this.meta.auto) === 'object') {\n Object.keys(this.meta.auto || {}).filter(n => ['gt', 'lt'].indexOf(n) !== -1).map(v => this.setupLogicalValidation(v));\n }\n }\n\n onActivated(ev) {\n this.input = ev.srcElement;\n if (!this.dropdown) {\n this.dropdown = ev.srcElement.parentNode.parentNode;\n }\n this.showDropdown();\n }\n\n clear(ev?) {\n delete this.model;\n this.onModelChange(this.model);\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n }\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 onSuggestionSelect(ev, suggestion) {\n if (!suggestion) {\n return;\n }\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n this.dismissDropdown();\n this.model = suggestion;\n this.onModelChange(suggestion);\n }\n\n dismissDropdown(event?) {\n if (event) {\n this.focus();\n }\n if (this.dropdown) {\n this.dropdown.classList.remove('Vlt-dropdown--expanded');\n }\n }\n\n private ensureDropdownIsVisible() {\n setTimeout(() => {\n const holder = this.dropdown.closest('.Vlt-card__content');\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 }, 400);\n }\n\n private showDropdown() {\n if (this.meta.suggestions && this.meta.suggestions.length) {\n this.dropdown.classList.add('Vlt-dropdown--expanded');\n this.ensureDropdownIsVisible();\n }\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 if (this.parent[this.meta.name]) {\n for (let suggestionIndex = 0; suggestionIndex < (this.meta.suggestions || []).length; suggestionIndex++) {\n if (this.meta.suggestions[suggestionIndex] === this.parent[this.meta.name]) {\n this.activeSuggestionIndex = suggestionIndex;\n }\n }\n }\n }\n }\n\n private clickout = (event) => {\n if (event.target.className === 'Vlt-dropdown__link' && this.elementRef.nativeElement.contains(event.target)) {\n this.focus();\n // this.dismissDropdown();\n // this.parent[this.meta.name] = event.target.textContent;\n\n } else if (event.target !== this.input && event.target.className !== 'Vlt-dropdown__title') {\n this.dismissDropdown();\n } else {\n this.focus();\n }\n };\n\n private keydown = (event) => {\n switch (event.key) {\n case 'ArrowDown': {\n if (['datetime', 'time', 'date', 'datetime-local'].indexOf(this.meta.type || this.meta.subtype) !== -1) {\n break;\n }\n this.showDropdown();\n event.preventDefault();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = 0;\n } else {\n this.activeSuggestionIndex++;\n if (this.activeSuggestionIndex >= this.suggestions.length) {\n this.activeSuggestionIndex = 0;\n }\n }\n break;\n }\n case 'ArrowUp': {\n if (['datetime', 'time', 'date', 'datetime-local'].indexOf(this.meta.type || this.meta.subtype) !== -1) {\n break;\n }\n this.showDropdown();\n event.preventDefault();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = this.suggestions.length - 1;\n } else {\n this.activeSuggestionIndex--;\n if (this.activeSuggestionIndex < 0) {\n this.activeSuggestionIndex = this.suggestions.length - 1;\n }\n }\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.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 }\n };\n\n\n private autoSetValue(againstTimestamp, v, cfg) {\n const compareValue = relativeTimeBuilder(this.meta.type, cfg.offset, this.validations.step, againstTimestamp);\n if (this.model) {\n const currentValue = new Date(this.model).getTime();\n let isInvalid: boolean;\n if (v === 'gt') {\n isInvalid = compareValue > currentValue;\n } else if (v === 'lt') {\n isInvalid = currentValue > compareValue;\n }\n if (isInvalid) {\n this.parent[this.meta.name] = compareValue;\n }\n } else {\n this.parent[this.meta.name] = compareValue;\n }\n }\n\n private setupLogicalValidation(v: string) {\n const cfg = this.meta.auto[v];\n if (typeof(cfg.against) === 'string') {\n let againstValue = this.parent[cfg.against];\n try {\n let againstTimestamp = Date.parse(`${againstValue}Z`) + (new Date().getTimezoneOffset() * 60000);\n if (againstValue) {\n this.autoSetValue(againstTimestamp, v, cfg);\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(cfg.against)) {\n againstValue = value[cfg.against];\n if (againstValue) {\n againstTimestamp = Date.parse(`${againstValue}Z`) + (new Date().getTimezoneOffset() * 60000);\n this.autoSetValue(againstTimestamp, v, cfg);\n }\n }\n });\n } catch (e) {}\n }\n }\n}\n","<div class='vgip-meta-field-preview' *ngIf='preview && model'>\n <div class='vgip-meta-field-label'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>{{model}}</div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element Vlt-form__element--big\" [ngClass]=\"{'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched), 'has-value': f.value, active: keyListenerActive }\">\n <div class=\"Vlt-input\">\n <label class='wrapper'>\n <input class='main model' [pattern]=\"validations.pattern ? validations.pattern.value || validations.pattern : null\" [required]='validations.required' [minlength]='validations.minlength' [maxlength]='validations.maxlength' [min]='validations.min' [max]='validations.max' [step]='validations.step' [disabled]='disabled' [readonly]='readonly' [(ngModel)]='model' (ngModelChange)=\"onModelChange($event)\" #f='ngModel' [name]='name' [type]=\"type\" [placeholder]=\"placeholder\" (click)='onActivated($event)' (focus)='onActivated($event)' (blur)='onBlur($event)'/>\n <label class='Vlt-truncate'>{{meta.label || meta.name}}<span *ngIf='validations.required' class='Vlt-red'>*</span></label>\n </label>\n <div class='Vlt-composite__append right-actions'>\n <div *ngIf='model' class=\"Vlt-composite__append--icon\" (click)='clear()'>\n <div class=\"Vlt-composite__icon\">\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/></svg>\n </div>\n </div>\n </div>\n </div>\n <small *ngIf='f.invalid && ((f | metaModel)._parent.submitted || ((f | metaModel ).touched && keyListenerActive))' class=\"Vlt-form__element__error\">\n <span *ngIf=\"f.errors.required\">Required.&nbsp;</span>\n <span *ngIf=\"f.errors.min\">Must be later than {{validations.min}}.&nbsp;</span>\n <span *ngIf=\"f.errors.max\">Must be no later than {{validations}}.&nbsp;</span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}}&nbsp;</span>\n </small>\n <small *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n</div>"],"names":["i3.MetaModelPipe"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"vgip-meta-ui-index-8f956c8f.mjs","sources":["../../../projects/meta-ui/src/lib/fieldInput/index.ts","../../../projects/meta-ui/src/lib/fieldInput/view.html"],"sourcesContent":["/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:35:09\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-05-12 17:45:46\n */\n\nimport { Component, OnInit } from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\nimport { FieldAbstract } from '../fieldAbstract';\n// import { IMetaFieldInut } from '../definitions/fields/IMetaFieldInput';\nimport { templateBuilder } from '../common/utils/templateBuilder';\nimport { relativeTimeBuilder } from '../common/utils/relativeTimeBuilder';\nimport { MetaContextService } from '../services/metaContext';\n\n// import { MetaValidations } from '../common/decorators/metaValidations.decorator';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n})\nexport class FieldInput extends FieldAbstract implements OnInit {\n input: any;\n dropdown: any;\n activeSuggestionIndex: number;\n value: any;\n multiple: boolean;\n addText;\n showClear: boolean;\n asyncSuggestions: Array<any>;\n\n constructor( private metaContext: MetaContextService ) {\n super();\n }\n\n get suggestions() {\n return this.asyncSuggestions || this.meta.suggestions || [];\n }\n\n ngOnInit() {\n this.multiple = (this.meta.type === 'multistring') || this.meta.multiple;\n // console.log('FieldInput init', this.meta.name);\n this.validationAttributes = ['pattern', 'required', 'minlength', 'maxlength', 'min', 'max', 'step'];\n if (this.meta.picklist) { // just for test! all metadata should be transformed to v3 protocol\n this.meta.suggestions = (this.meta.picklist || []).map((s) => s.label);\n }\n if (this.meta.type === 'number') {\n if (this.meta.subtype === 'float' && !this.meta.step) {\n this.meta.step = '0.01';\n }\n this.meta.subtype = 'number';\n }\n if (['date', 'time', 'datetime'].indexOf(this.meta.type) !== -1) {\n this.meta.subtype = this.meta.type;\n if (this.meta.type === 'datetime') {\n this.meta.subtype = 'datetime-local';\n }\n delete this.multiple; // no multiple support for timestamps\n }\n this.showClear = !this.multiple && [\n '', 'string', 'url', 'email', 'password', 'tel', 'date', 'datetime-local', 'time'\n ].indexOf(this.meta.subtype || '') !== -1;\n const origValue = this.parent[this.meta.name];\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (this.multiple) {\n if (typeof(value) !== 'undefined') {\n const values = (value instanceof Array) ? value : [value];\n this.model = [];\n for (let v of values) {\n if (!this.model) {\n this.model = [];\n }\n if (typeof (v) === 'object' && v !== null) {\n v = v.id || v.value;\n }\n this.model.push(v);\n }\n this.value = this.model;\n }\n } else {\n if (typeof(value) !== 'undefined'\n && !(value === null && ((typeof(this.meta.type) === 'undefined') || ['string', 'number'].indexOf(this.meta.type) !== -1))\n ) {\n if (this.meta.type === 'number' && typeof(value) === 'string') {\n value = parseInt(value, 10);\n } else if (typeof (value) === 'object' && value !== null) {\n value = value.id || value.value;\n }\n if (['datetime', 'date', 'datetime-local'].indexOf(this.meta.subtype || this.meta.type) !== -1 && value) {\n try {\n let date: Date;\n if ((typeof (value) === 'number')) {\n date = new Date(parseInt(value as any, 10));\n if ('date' === (this.meta.type || this.meta.subtype)) {\n date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\n }\n } else {\n if ('date' === (this.meta.subtype || this.meta.type)) {\n date = new Date(Date.parse(value));\n } else {\n date = new Date(Date.parse(`${value}Z`) + (new Date().getTimezoneOffset() * 60000));\n }\n }\n if (typeof (value) === 'number') {\n switch (this.meta.subtype || this.meta.type) {\n case 'datetime-local':\n case 'datetime': {\n this.model = `${date.getFullYear()}-${('00' + (date.getMonth() + 1)).slice(-2)}-${('00' + date.getDate()).slice(-2)}`;\n this.model += `T${('00' + date.getHours()).slice(-2)}:${('00' + date.getMinutes()).slice(-2)}`;\n break;\n }\n case 'date': {\n this.model = date.toISOString().split('T')[0];\n break;\n }\n }\n }\n if (this.meta.valueType === 'string') {\n if ((this.meta.subtype || this.meta.type) === 'date') {\n this.value = date.toISOString().split('T')[0];\n } else {\n this.value = date.toISOString();\n }\n } else {\n if ((this.meta.subtype || this.meta.type) === 'date') {\n date.setFullYear(date.getUTCFullYear());\n date.setMonth(date.getUTCMonth());\n date.setDate(date.getUTCDate());\n date.setMinutes(0);\n date.setHours(0);\n date.setSeconds(0);\n date.setMilliseconds(0);\n this.value = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).getTime();\n } else {\n this.value = date.getTime();\n }\n }\n } catch (e) {\n console.error('Date parse error', e.message, `\"${value}\"`, `(${typeof (value)})`);\n }\n } else if ('time' === (this.meta.subtype || this.meta.type)) {\n try {\n let date: Date;\n if (typeof (value) === 'number') {\n date = new Date(parseInt(value as any, 10));\n if (value < 86400000) {\n date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\n }\n } else {\n date = new Date(\n Date.parse(new Date().toISOString().replace(/T.*Z/, `T${value}Z`)) + (new Date().getTimezoneOffset() * 60000)\n );\n }\n this.model = date.toTimeString().split(' ')[0];\n date.setFullYear(1970);\n date.setMonth(0);\n date.setDate(1);\n date.setMilliseconds(0);\n this.value = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).getTime();\n } catch (e) {\n console.error('Date parse error', e.message, `\"${value}\"`, `(${typeof (value)})`);\n }\n } else {\n if (!value && (typeof(this.prevModel) === 'string') && this.isPersistedParent) {\n value = '';\n }\n this.model = value;\n this.value = value;\n }\n } else {\n delete this.model;\n delete this.value;\n }\n }\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n if (typeof(origValue) !== 'undefined') {\n this.parent[this.meta.name] = origValue;\n }\n const d = this.meta.default || this.meta.defaultValue;\n if (d && typeof(this.model) === 'undefined') {\n if (this.multiple) {\n this.parent[this.meta.name] = [];\n if (d.length) {\n for (const dv of this.default) { // TODO ???\n const defaultValueItem = (typeof (dv) === 'string' || dv === null) ? dv : (dv.id || dv.value);\n if (defaultValueItem || defaultValueItem === 0) {\n this.parent[this.meta.name].push(defaultValueItem);\n }\n }\n }\n } else {\n const defaultValue = (typeof (d) === 'string') ? d : (d.id || d.value);\n if (defaultValue || defaultValue === 0) {\n if (/^(date|time)/.test(this.meta.subtype) && typeof(defaultValue) === 'string') {\n this.parent[this.meta.name] = relativeTimeBuilder(this.meta.subtype, defaultValue, this.validations.step);\n } else {\n if (this.meta.type === 'string' && defaultValue) {\n this.parent[this.meta.name] = templateBuilder(this.metaContext, defaultValue);\n } else {\n this.parent[this.meta.name] = defaultValue;\n }\n }\n }\n }\n }\n }\n\n onActivated(ev) {\n this.input = ev.srcElement;\n if (!this.dropdown) {\n this.dropdown = ev.srcElement.parentNode.parentNode;\n }\n this.showDropdown();\n }\n\n clear(ev?) {\n delete this.model;\n delete this.activeSuggestionIndex;\n delete this.asyncSuggestions;\n this.onModelChange(this.model);\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n return false;\n }\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 onAdd(ev) {\n console.log('onAdd', this.addText);\n if (this.addText) {\n if ((this.model || []).indexOf(this.addText) === -1) {\n this.onSuggestionSelect(ev, this.addText);\n if (!this.meta.suggestions) {\n this.meta.suggestions = [];\n }\n this.meta.suggestions.unshift(this.addText);\n } else {\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n }\n delete this.addText;\n }\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 onSuggestionSelect(ev, suggestion) {\n if (!suggestion) {\n return;\n }\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n let suggestionValue = suggestion.id || suggestion.value || suggestion;\n if (typeof(suggestionValue) === 'string') {\n if (/^(date|time)/.test(this.meta.subtype)) {\n suggestionValue = relativeTimeBuilder(this.meta.subtype, suggestionValue, this.validations.step);\n } else if (this.meta.type === 'string') {\n suggestionValue = templateBuilder(this.metaContext, suggestionValue);\n } else {\n suggestionValue = suggestion;\n }\n }\n if (this.multiple) {\n if (!this.model) {\n this.model = [];\n }\n let existingItemIndex = this.model.indexOf(suggestionValue);\n if (existingItemIndex === -1) {\n this.model.push(suggestionValue);\n } else {\n this.model.splice(existingItemIndex, 1);\n existingItemIndex = undefined;\n }\n this.onModelChange(this.model);\n } else {\n this.dismissDropdown();\n this.model = suggestionValue;\n this.onModelChange(suggestionValue);\n this.activeSuggestionIndex = this.suggestions.indexOf(suggestion);\n }\n }\n\n textToSpeech() { }\n\n dismissDropdown(event?) {\n if (event) {\n this.focus();\n }\n if (this.dropdown) {\n this.dropdown.classList.remove('Vlt-dropdown--expanded');\n }\n }\n\n private ensureDropdownIsVisible() {\n setTimeout(() => {\n const holder = this.dropdown.closest('.Vlt-card__content');\n const el = this.elementRef.nativeElement.querySelector('.Vlt-dropdown__panel');\n if (el) {\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 showDropdown() {\n if (this.meta.suggestions && this.meta.suggestions.length) {\n this.dropdown.classList.add('Vlt-dropdown--expanded');\n this.ensureDropdownIsVisible();\n }\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.suggestions.length) {\n for (let suggestionIndex = 0; suggestionIndex < this.suggestions.length; suggestionIndex++) {\n if (this.model === this.suggestions[suggestionIndex]) {\n this.activeSuggestionIndex = suggestionIndex;\n return;\n }\n }\n delete this.activeSuggestionIndex;\n }\n }\n }\n\n private clickout = (event) => {\n if (event.target.className === 'Vlt-dropdown__link' && this.elementRef.nativeElement.contains(event.target)) {\n this.focus();\n // this.dismissDropdown();\n // this.parent[this.meta.name] = event.target.textContent;\n\n } else if (event.target !== this.input && event.target.className !== 'Vlt-dropdown__title') {\n this.dismissDropdown();\n } else {\n this.focus();\n }\n };\n\n private keydown = (event) => {\n switch (event.key) {\n case 'ArrowDown': {\n if (['datetime', 'time', 'date', 'datetime-local'].indexOf(this.meta.subtype || this.meta.type) !== -1) {\n break;\n }\n this.showDropdown();\n event.preventDefault();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = 0;\n } else {\n this.activeSuggestionIndex++;\n if (this.activeSuggestionIndex >= this.suggestions.length) {\n this.activeSuggestionIndex = 0;\n }\n }\n break;\n }\n case 'ArrowUp': {\n if (['datetime', 'time', 'date', 'datetime-local'].indexOf(this.meta.subtype || this.meta.type) !== -1) {\n break;\n }\n this.showDropdown();\n event.preventDefault();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = this.suggestions.length - 1;\n } else {\n this.activeSuggestionIndex--;\n if (this.activeSuggestionIndex < 0) {\n this.activeSuggestionIndex = this.suggestions.length - 1;\n }\n }\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.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 default: {\n setTimeout(() => {\n if (!this.model) {\n delete this.activeSuggestionIndex;\n delete this.asyncSuggestions;\n } else if (typeof(this.model) === 'string') {\n this.asyncSuggestions = (this.meta.suggestions || []).filter((s) => {\n const suggestionText = (s.id || s.value || s || '').toLowerCase();\n return suggestionText.indexOf(this.model.toLowerCase()) !== -1;\n });\n }\n });\n }\n }\n };\n\n}\n","<div class='vgip-meta-field-preview' *ngIf='preview && model'>\n <div class='vgip-meta-field-label'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>{{model}}</div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element Vlt-form__element--big\" [ngClass]=\"{'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched), 'multiple': multiple, 'has-value': f.value, active: keyListenerActive }\">\n <div *ngIf='multiple' class='items-container'>\n <div *ngIf='model' class='badges-container keep-focus' (click)='focus()'>\n <div *ngFor='let item of model' class=\"Vlt-badge Vlt-badge--app Vlt-badge--large keep-focus\">\n {{item}}\n <button class=\"Vlt-badge__dismiss keep-focus\" (click)='remove($event, item)'></button>\n </div>\n </div>\n </div>\n <div class=\"Vlt-input Vlt-dropdown\" style='display: block;'>\n <label class='wrapper'>\n <input class='main model' [pattern]=\"validations.pattern ? validations.pattern.value || validations.pattern : null\" [required]='validations.required' [minlength]='validations.minlength' [maxlength]='validations.maxlength' [min]='validations.min' [max]='validations.max' [step]='validations.step' [disabled]='disabled' [readonly]=\"readonly\" [(ngModel)]='model' (ngModelChange)=\"onModelChange($event)\" #f='ngModel' [name]='name' [type]=\"multiple ? 'hidden' : (meta.subtype || 'text')\" placeholder=\" \" (click)='onActivated($event)' (focus)='onActivated($event)' (blur)='onBlur($event)'/>\n <input *ngIf='multiple' class='main' [pattern]=\"validations.pattern ? validations.pattern.value || validations.pattern : null\" [minlength]='validations.minlength' [maxlength]='validations.maxlength' [min]='validations.min' [max]='validations.max' [(ngModel)]='addText' [ngModelOptions]=\"{ standalone: true }\" [type]=\"meta.subtype || 'text'\" [disabled]='disabled' [readonly]='readonly' placeholder=\"+Add\" (keydown.enter)='onAdd($event)' (click)='onActivated($event)' (focus)='onActivated($event)' (blur)='onBlur($event)'/>\n <label class='Vlt-truncate'>{{meta.label || meta.name}}<span *ngIf='validations.required' class='Vlt-red'>*</span>&nbsp;<span class='Vlt-black' *ngIf='model && multiple'>({{model.length}})</span></label>\n </label>\n <div class='Vlt-composite__append right-actions'>\n <div *ngIf='model && showClear' class=\"Vlt-composite__append--icon\" (click)='clear($event)'>\n <div class=\"Vlt-composite__icon\">\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/></svg>\n </div>\n </div>\n </div>\n <!-- <div *ngIf=\"!meta.subtype || meta.subtype == 'text'\" class=\"Vlt-composite__append Vlt-composite__append--icon\" style='bottom: 7px; right: 10px; padding: 3px; width: initial; height: initial; cursor: pointer;'>\n <div *ngIf=\"!meta.type || meta.type === 'string'\" class=\"Vlt-composite__icon\" (click)='textToSpeech()'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-microphone\"/></svg>\n </div>\n </div> -->\n <div *ngIf=\"suggestions.length\" class=\"Vlt-dropdown__panel\">\n <div class=\"Vlt-dropdown__panel__content Vlt-dropdown__panel__content--scroll-area suggestions\">\n <!-- <div class=\"Vlt-dropdown__title\" style='padding-left: 13px;'>\n Suggestions\n <div class=\"Vlt-dropdown__close Vlt-white\" (click)='dismissDropdown($event)'>\n <svg class='Vlt-icon Vlt-icon--small'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/></svg>\n </div>\n </div> -->\n <div class=\"Vlt-dropdown__block\"></div>\n <div *ngIf='dropdown' class=\"Vlt-dropdown__scroll\">\n <div [ngClass]=\"{ 'Vlt-dropdown__link--selected': (activeSuggestionIndex === i) }\" (click)='onSuggestionSelect($event, suggestion)' *ngFor='let suggestion of suggestions; let i = index' class=\"Vlt-dropdown__link\" style='padding: 0;'>\n <div *ngIf='multiple' class=\"Vlt-checkbox\" style='width: 100%;'>\n <label [title]='suggestion.label || suggestion'>\n <span class=\"Vlt-checkbox__button\">\n <input type=\"checkbox\" [checked]='model && model.indexOf(suggestion) !== -1'/>\n <span class=\"Vlt-checkbox__icon\"></span>\n </span>\n {{suggestion.label || suggestion}}\n </label>\n </div>\n <div *ngIf='!multiple' style='padding: 12px 20px;'>\n {{suggestion.label || suggestion}}\n </div>\n </div>\n </div>\n <div *ngIf='!multiple' class=\"Vlt-dropdown__block\"></div>\n <div *ngIf='multiple' class=\"Vlt-dropdown__block Vlt-dropdown__block--nowrap\" style='padding: 8px 16px 16px;'>\n <button (click)='clear($event)' type='button' class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small Vlt-btn--outline\">Clear all</button>\n <button (click)='dismissDropdown($event)' type='button' class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small\">Done</button>\n </div>\n </div>\n </div>\n </div>\n <small *ngIf='f.invalid && ((f | metaModel)._parent.submitted || ((f | metaModel ).touched && keyListenerActive))' class=\"Vlt-form__element__error\">\n <span *ngIf=\"f.errors.required\">Required.&nbsp;</span>\n <span *ngIf=\"f.errors.minlength\">Must be longer than {{validations.minlength}} characters.&nbsp;</span>\n <span *ngIf=\"f.errors.maxlength\">Must be lest than {{validations.maxlength}} characters.&nbsp;</span>\n <span *ngIf=\"f.errors.pattern\">{{ validations.pattern.text || \"Should match '\"+validations.pattern+\"' pattern.\" }}.&nbsp;</span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}}&nbsp;</span>\n </small>\n <small *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n</div>\n"],"names":["i1.MetaContextService","i2","i3","i4.MetaModelPipe"],"mappings":"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"}
@@ -1,95 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Component, Input } from '@angular/core';
3
- import * as i2 from '@angular/forms';
4
- import { ControlContainer, NgForm } from '@angular/forms';
5
- import { F as FieldAbstract } from './vgip-meta-ui-fieldAbstract-17f26446.mjs';
6
- import * as i1 from '@angular/common';
7
- import { M as MetaModelPipe } from './vgip-meta-ui-metaModel.pipe-4b068359.mjs';
8
- import 'rxjs';
9
- import 'rxjs/operators';
10
-
11
- /*
12
- * @Author: Alexander.Vangelov@vonage.com
13
- * @Date: 2019-09-19 17:35:19
14
- * @Last Modified by: Alexander.Vangelov@vonage.com
15
- * @Last Modified time: 2020-03-26 12:56:38
16
- */
17
- class FieldRadio extends FieldAbstract {
18
- constructor() {
19
- super(...arguments);
20
- this.keydown = (event) => {
21
- switch (event.key) {
22
- case 'Backspace': {
23
- event.preventDefault();
24
- event.stopPropagation();
25
- this.clear();
26
- break;
27
- }
28
- }
29
- };
30
- }
31
- get options() {
32
- return this.meta.options || this.meta.picklist;
33
- }
34
- ngOnInit() {
35
- this.validationAttributes = ['required'];
36
- const origValue = this.parent[this.meta.name];
37
- Object.defineProperty(this.parent, this.meta.name, {
38
- set: (value) => {
39
- if (value) {
40
- for (const o of this.options) {
41
- if ((value.id || value) === (o.id || o.value || o.name || o)) {
42
- this.model = o;
43
- this.value = this.modelToValue(o, this.meta.valueType);
44
- break;
45
- }
46
- }
47
- }
48
- else {
49
- delete this.model;
50
- delete this.value;
51
- }
52
- this.meta.$optional = this.isOptional;
53
- },
54
- get: () => this.value,
55
- enumerable: this.sendToServer,
56
- configurable: true
57
- });
58
- if (origValue) {
59
- this.parent[this.meta.name] = origValue;
60
- }
61
- if (this.default && !this.model) {
62
- setTimeout(() => {
63
- this.parent[this.meta.name] = this.meta.valueType === 'object' ? this.default : (this.default.id || this.default);
64
- setTimeout(() => {
65
- this.onModelChange(this.model);
66
- }, 0);
67
- }, 0);
68
- }
69
- }
70
- onOptionChange(model) {
71
- this.model = model;
72
- this.onModelChange(this.model);
73
- }
74
- onActivated(ev) {
75
- if (!this.keyListenerActive) {
76
- ev.srcElement.addEventListener('keydown', this.keydown);
77
- }
78
- }
79
- onBlur(ev) {
80
- if (this.keyListenerActive) {
81
- ev.srcElement.removeEventListener('keydown', this.keydown);
82
- }
83
- }
84
- }
85
- FieldRadio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: FieldRadio, deps: null, target: i0.ɵɵFactoryTarget.Component });
86
- FieldRadio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: FieldRadio, selector: "ng-component", inputs: { meta: "meta" }, usesInheritance: true, ngImport: i0, template: "<div class='vgip-meta-field-preview' *ngIf='preview && model'>\n <div class='vgip-meta-field-label'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>\n {{ model.label || model }}\n </div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element\" [ngClass]=\"{ 'Vlt-form__element--error': f && f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched) }\">\n\t<label class=\"Vlt-label\">{{meta.label || meta.name}}<span *ngIf='validations.required' class='Vlt-red'>*</span></label>\n\t<input class='model' type='hidden' [required]='validations.required' [(ngModel)]='model' #f='ngModel' [name]='name' />\n\t<fieldset *ngFor='let option of options' class=\"Vlt-radio Vlt-radio--inline\">\n\t\t<label style='cursor: pointer;'>\n\t\t\t<span class=\"Vlt-radio__button\">\n <input class='main' (change)='onOptionChange(option)' type=\"radio\" [checked]='option === model' [value]='option' [name]='name' (focus)='onActivated($event)' (blur)='onBlur($event)'/>\n <span class=\"Vlt-radio__icon\"></span>\n </span>\n\t\t\t<span style='white-space: nowrap;'>{{option.label || option}}</span>\n\t\t</label>\n\t</fieldset>\n\t<small *ngIf='f && f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched)' class=\"Vlt-form__element__error\">\n\t\t<span *ngIf=\"f.errors.required\">Required.&nbsp;</span>\n\t\t<span *ngIf=\"f.errors.custom\">{{f.errors.custom}}&nbsp;</span>\n\t</small>\n\t<small *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n</div>\n", styles: [".Vlt-form__element{padding-bottom:4px}.Vlt-form__element__hint,.Vlt-form__element__error{margin-top:4px}.Vlt-radio--inline{margin-bottom:4px}.Vlt-radio .Vlt-radio__icon{border-color:var(--vgip-meta-input-border-color)}.Vlt-radio:hover .Vlt-radio__icon{border-color:var(--vgip-meta-input-active-border-color)}.Vlt-radio input:checked~.Vlt-radio__icon{border-color:var(--vgip-meta-input-active-border-color)}.Vlt-radio input:checked~.Vlt-radio__icon:after{background:var(--vgip-meta-input-active-border-color)}.Vlt-radio input:focus+.Vlt-radio__icon,.Vlt-radio input:active+.Vlt-radio__icon{background:var(--vgip-meta-input-bg-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: MetaModelPipe, name: "metaModel" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] });
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: FieldRadio, decorators: [{
88
- type: Component,
89
- args: [{ viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div class='vgip-meta-field-preview' *ngIf='preview && model'>\n <div class='vgip-meta-field-label'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>\n {{ model.label || model }}\n </div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element\" [ngClass]=\"{ 'Vlt-form__element--error': f && f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched) }\">\n\t<label class=\"Vlt-label\">{{meta.label || meta.name}}<span *ngIf='validations.required' class='Vlt-red'>*</span></label>\n\t<input class='model' type='hidden' [required]='validations.required' [(ngModel)]='model' #f='ngModel' [name]='name' />\n\t<fieldset *ngFor='let option of options' class=\"Vlt-radio Vlt-radio--inline\">\n\t\t<label style='cursor: pointer;'>\n\t\t\t<span class=\"Vlt-radio__button\">\n <input class='main' (change)='onOptionChange(option)' type=\"radio\" [checked]='option === model' [value]='option' [name]='name' (focus)='onActivated($event)' (blur)='onBlur($event)'/>\n <span class=\"Vlt-radio__icon\"></span>\n </span>\n\t\t\t<span style='white-space: nowrap;'>{{option.label || option}}</span>\n\t\t</label>\n\t</fieldset>\n\t<small *ngIf='f && f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched)' class=\"Vlt-form__element__error\">\n\t\t<span *ngIf=\"f.errors.required\">Required.&nbsp;</span>\n\t\t<span *ngIf=\"f.errors.custom\">{{f.errors.custom}}&nbsp;</span>\n\t</small>\n\t<small *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n</div>\n", styles: [".Vlt-form__element{padding-bottom:4px}.Vlt-form__element__hint,.Vlt-form__element__error{margin-top:4px}.Vlt-radio--inline{margin-bottom:4px}.Vlt-radio .Vlt-radio__icon{border-color:var(--vgip-meta-input-border-color)}.Vlt-radio:hover .Vlt-radio__icon{border-color:var(--vgip-meta-input-active-border-color)}.Vlt-radio input:checked~.Vlt-radio__icon{border-color:var(--vgip-meta-input-active-border-color)}.Vlt-radio input:checked~.Vlt-radio__icon:after{background:var(--vgip-meta-input-active-border-color)}.Vlt-radio input:focus+.Vlt-radio__icon,.Vlt-radio input:active+.Vlt-radio__icon{background:var(--vgip-meta-input-bg-color)}\n"] }]
90
- }], propDecorators: { meta: [{
91
- type: Input
92
- }] } });
93
-
94
- export { FieldRadio };
95
- //# sourceMappingURL=vgip-meta-ui-index-91a02c0f.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vgip-meta-ui-index-91a02c0f.mjs","sources":["../../../projects/meta-ui/src/lib/fieldRadio/index.ts","../../../projects/meta-ui/src/lib/fieldRadio/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-26 12:56:38\n */\n\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\nimport { FieldAbstract } from '../fieldAbstract';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n})\n\nexport class FieldRadio extends FieldAbstract implements OnInit {\n @Input() meta: any;\n value: any;\n\n get options() {\n return this.meta.options || this.meta.picklist;\n }\n\n ngOnInit() {\n this.validationAttributes = ['required'];\n const origValue = this.parent[this.meta.name];\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (value) {\n for (const o of this.options) {\n if ((value.id || value) === (o.id || o.value || o.name || o)) {\n this.model = o;\n this.value = this.modelToValue(o, this.meta.valueType);\n break;\n }\n }\n } else {\n delete this.model;\n delete this.value;\n }\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n\n if (origValue) {\n this.parent[this.meta.name] = origValue;\n }\n\n if (this.default && !this.model) {\n setTimeout(() => {\n this.parent[this.meta.name] = this.meta.valueType === 'object' ? this.default : (this.default.id || this.default);\n setTimeout(() => {\n this.onModelChange(this.model);\n }, 0);\n }, 0);\n }\n }\n\n onOptionChange(model) {\n this.model = model;\n this.onModelChange(this.model);\n }\n\n onActivated(ev) {\n if (!this.keyListenerActive) {\n ev.srcElement.addEventListener('keydown', this.keydown);\n }\n }\n\n onBlur(ev) {\n if (this.keyListenerActive) {\n ev.srcElement.removeEventListener('keydown', this.keydown);\n }\n }\n\n private keydown = (event) => {\n switch (event.key) {\n case 'Backspace': {\n event.preventDefault();\n event.stopPropagation();\n this.clear();\n break;\n }\n }\n };\n}\n","<div class='vgip-meta-field-preview' *ngIf='preview && model'>\n <div class='vgip-meta-field-label'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>\n {{ model.label || model }}\n </div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element\" [ngClass]=\"{ 'Vlt-form__element--error': f && f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched) }\">\n\t<label class=\"Vlt-label\">{{meta.label || meta.name}}<span *ngIf='validations.required' class='Vlt-red'>*</span></label>\n\t<input class='model' type='hidden' [required]='validations.required' [(ngModel)]='model' #f='ngModel' [name]='name' />\n\t<fieldset *ngFor='let option of options' class=\"Vlt-radio Vlt-radio--inline\">\n\t\t<label style='cursor: pointer;'>\n\t\t\t<span class=\"Vlt-radio__button\">\n <input class='main' (change)='onOptionChange(option)' type=\"radio\" [checked]='option === model' [value]='option' [name]='name' (focus)='onActivated($event)' (blur)='onBlur($event)'/>\n <span class=\"Vlt-radio__icon\"></span>\n </span>\n\t\t\t<span style='white-space: nowrap;'>{{option.label || option}}</span>\n\t\t</label>\n\t</fieldset>\n\t<small *ngIf='f && f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched)' class=\"Vlt-form__element__error\">\n\t\t<span *ngIf=\"f.errors.required\">Required.&nbsp;</span>\n\t\t<span *ngIf=\"f.errors.custom\">{{f.errors.custom}}&nbsp;</span>\n\t</small>\n\t<small *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n</div>\n"],"names":["i3.MetaModelPipe"],"mappings":";;;;;;;;;;AAAA;;;;;AAKG;AAaG,MAAO,UAAW,SAAQ,aAAa,CAAA;AAN7C,IAAA,WAAA,GAAA;;AAqEU,QAAA,IAAA,CAAA,OAAO,GAAG,CAAC,KAAK,KAAI;YAC1B,QAAQ,KAAK,CAAC,GAAG;gBACf,KAAK,WAAW,EAAE;oBAChB,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;oBACxB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,MAAM;AACP,iBAAA;AACF,aAAA;AACH,SAAC,CAAC;KACH;AArEC,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;KAChD;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,oBAAoB,GAAG,CAAC,UAAU,CAAC,CAAC;AACzC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,QAAA,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACjD,YAAA,GAAG,EAAE,CAAC,KAAK,KAAI;AACb,gBAAA,IAAI,KAAK,EAAE;AACT,oBAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;wBAC5B,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE;AAC5D,4BAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,4BAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACvD,MAAM;AACP,yBAAA;AACF,qBAAA;AACF,iBAAA;AAAM,qBAAA;oBACL,OAAO,IAAI,CAAC,KAAK,CAAC;oBAClB,OAAO,IAAI,CAAC,KAAK,CAAC;AACnB,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;AAEH,QAAA,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AACzC,SAAA;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC/B,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClH,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAChC,EAAE,CAAC,CAAC,CAAC;aACP,EAAE,CAAC,CAAC,CAAC;AACP,SAAA;KACF;AAED,IAAA,cAAc,CAAC,KAAK,EAAA;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAED,IAAA,WAAW,CAAC,EAAE,EAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACzD,SAAA;KACF;AAED,IAAA,MAAM,CAAC,EAAE,EAAA;QACP,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5D,SAAA;KACF;;uGA7DU,UAAU,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,EClBvB,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,qhDAwBA,EDTiB,MAAA,EAAA,CAAA,4nBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,EAAA,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,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAA,CAAA,CAAA;2FAGxD,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;oCAGO,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAA,QAAA,EAAA,qhDAAA,EAAA,MAAA,EAAA,CAAA,4nBAAA,CAAA,EAAA,CAAA;8BAI1D,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;;;"}