@vgip/meta-ui 1.7.0 → 1.7.2

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 (145) hide show
  1. package/{esm2020 → esm2022}/lib/common/metaAutofocus.directive.mjs +4 -4
  2. package/{esm2020 → esm2022}/lib/common/metaIcons.pipe.mjs +4 -4
  3. package/{esm2020 → esm2022}/lib/common/metaModel.pipe.mjs +4 -4
  4. package/{esm2020 → esm2022}/lib/common/metaNormalizer.mjs +16 -1
  5. package/{esm2020 → esm2022}/lib/common/metaStripHtml.pipe.mjs +4 -4
  6. package/{esm2020 → esm2022}/lib/fieldAbstract.mjs +4 -4
  7. package/{esm2020 → esm2022}/lib/fieldBoolean/index.mjs +4 -4
  8. package/{esm2020 → esm2022}/lib/fieldComposite/index.mjs +4 -4
  9. package/{esm2020 → esm2022}/lib/fieldDatetime/index.mjs +4 -4
  10. package/{esm2020 → esm2022}/lib/fieldHidden/index.mjs +4 -4
  11. package/{esm2020 → esm2022}/lib/fieldInput/index.mjs +4 -4
  12. package/{esm2020 → esm2022}/lib/fieldList/index.mjs +4 -4
  13. package/{esm2020 → esm2022}/lib/fieldRadio/index.mjs +4 -4
  14. package/esm2022/lib/fieldReference/index.mjs +825 -0
  15. package/esm2022/lib/fieldRichtext/index.mjs +95 -0
  16. package/{esm2020 → esm2022}/lib/fieldSelect/index.mjs +4 -4
  17. package/{esm2020 → esm2022}/lib/fieldText/index.mjs +4 -4
  18. package/{esm2020 → esm2022}/lib/fieldUnknown/index.mjs +4 -4
  19. package/esm2022/lib/index.mjs +163 -0
  20. package/{esm2020 → esm2022}/lib/layout/index.mjs +4 -4
  21. package/{esm2020 → esm2022}/lib/metaField/index.mjs +7 -7
  22. package/{esm2020 → esm2022}/lib/refDialog/index.mjs +4 -4
  23. package/{esm2020 → esm2022}/lib/resource/index.mjs +4 -4
  24. package/{esm2020 → esm2022}/lib/resourceCard/index.mjs +4 -4
  25. package/{esm2020 → esm2022}/lib/services/metaContext/index.mjs +4 -4
  26. package/{esm2020 → esm2022}/lib/services/metaMsg/index.mjs +4 -4
  27. package/{esm2020 → esm2022}/lib/services/metaReference/index.mjs +4 -4
  28. package/{esm2020 → esm2022}/lib/services/metaResource/index.mjs +4 -4
  29. package/{esm2020 → esm2022}/lib/services/metaResource/metaHttpClient.mjs +4 -4
  30. package/{esm2020 → esm2022}/lib/services/metaTracker/index.mjs +4 -4
  31. package/{esm2020 → esm2022}/lib/services/resourceDrafts/index.mjs +4 -4
  32. package/{fesm2020/vgip-meta-ui-fieldAbstract-f7d80db6.mjs → fesm2022/vgip-meta-ui-fieldAbstract-ce47588e.mjs} +4 -4
  33. package/{fesm2020/vgip-meta-ui-fieldAbstract-f7d80db6.mjs.map → fesm2022/vgip-meta-ui-fieldAbstract-ce47588e.mjs.map} +1 -1
  34. package/{fesm2020/vgip-meta-ui-index-6e77c362.mjs → fesm2022/vgip-meta-ui-index-1467556e.mjs} +4 -4
  35. package/{fesm2020/vgip-meta-ui-index-6e77c362.mjs.map → fesm2022/vgip-meta-ui-index-1467556e.mjs.map} +1 -1
  36. package/{fesm2015/vgip-meta-ui-index-1d2b4c69.mjs → fesm2022/vgip-meta-ui-index-5509b1d2.mjs} +7 -7
  37. package/{fesm2020/vgip-meta-ui-index-1d2b4c69.mjs.map → fesm2022/vgip-meta-ui-index-5509b1d2.mjs.map} +1 -1
  38. package/{fesm2015/vgip-meta-ui-index-62be0e3e.mjs → fesm2022/vgip-meta-ui-index-5d664781.mjs} +13 -13
  39. package/fesm2022/vgip-meta-ui-index-5d664781.mjs.map +1 -0
  40. package/{fesm2020/vgip-meta-ui-index-4fcefde0.mjs → fesm2022/vgip-meta-ui-index-617c4bac.mjs} +43 -28
  41. package/fesm2022/vgip-meta-ui-index-617c4bac.mjs.map +1 -0
  42. package/fesm2022/vgip-meta-ui-index-6dcb4942.mjs +24 -0
  43. package/{fesm2015/vgip-meta-ui-index-476b6cb7.mjs.map → fesm2022/vgip-meta-ui-index-6dcb4942.mjs.map} +1 -1
  44. package/{fesm2015/vgip-meta-ui-index-2b20afc8.mjs → fesm2022/vgip-meta-ui-index-78d7b9be.mjs} +6 -6
  45. package/{fesm2020/vgip-meta-ui-index-2b20afc8.mjs.map → fesm2022/vgip-meta-ui-index-78d7b9be.mjs.map} +1 -1
  46. package/fesm2022/vgip-meta-ui-index-85109066.mjs +97 -0
  47. package/fesm2022/vgip-meta-ui-index-85109066.mjs.map +1 -0
  48. package/{fesm2020/vgip-meta-ui-index-f7370960.mjs → fesm2022/vgip-meta-ui-index-86211382.mjs} +7 -7
  49. package/{fesm2020/vgip-meta-ui-index-f7370960.mjs.map → fesm2022/vgip-meta-ui-index-86211382.mjs.map} +1 -1
  50. package/{fesm2015/vgip-meta-ui-index-640f8e62.mjs → fesm2022/vgip-meta-ui-index-adb42356.mjs} +6 -6
  51. package/{fesm2020/vgip-meta-ui-index-640f8e62.mjs.map → fesm2022/vgip-meta-ui-index-adb42356.mjs.map} +1 -1
  52. package/{fesm2020/vgip-meta-ui-index-87041aad.mjs → fesm2022/vgip-meta-ui-index-cb0d4f82.mjs} +5 -5
  53. package/{fesm2015/vgip-meta-ui-index-87041aad.mjs.map → fesm2022/vgip-meta-ui-index-cb0d4f82.mjs.map} +1 -1
  54. package/{fesm2015/vgip-meta-ui-index-a76ba482.mjs → fesm2022/vgip-meta-ui-index-cfb67422.mjs} +9 -10
  55. package/{fesm2020/vgip-meta-ui-index-aee28354.mjs.map → fesm2022/vgip-meta-ui-index-cfb67422.mjs.map} +1 -1
  56. package/{fesm2020/vgip-meta-ui-index-81aa79dc.mjs → fesm2022/vgip-meta-ui-index-eba0dd05.mjs} +7 -7
  57. package/{fesm2020/vgip-meta-ui-index-81aa79dc.mjs.map → fesm2022/vgip-meta-ui-index-eba0dd05.mjs.map} +1 -1
  58. package/{fesm2015/vgip-meta-ui-index-bf5b6c0f.mjs → fesm2022/vgip-meta-ui-index-eef5fc0f.mjs} +6 -6
  59. package/{fesm2020/vgip-meta-ui-index-bf5b6c0f.mjs.map → fesm2022/vgip-meta-ui-index-eef5fc0f.mjs.map} +1 -1
  60. package/{fesm2020/vgip-meta-ui-index-b92a559b.mjs → fesm2022/vgip-meta-ui-index-f0fa2cbd.mjs} +6 -6
  61. package/{fesm2020/vgip-meta-ui-index-b92a559b.mjs.map → fesm2022/vgip-meta-ui-index-f0fa2cbd.mjs.map} +1 -1
  62. package/{fesm2020/vgip-meta-ui-index-301b28cd.mjs → fesm2022/vgip-meta-ui-index-f5e42e1d.mjs} +20 -20
  63. package/{fesm2020/vgip-meta-ui-index-301b28cd.mjs.map → fesm2022/vgip-meta-ui-index-f5e42e1d.mjs.map} +1 -1
  64. package/{fesm2015/vgip-meta-ui-metaModel.pipe-4b068359.mjs → fesm2022/vgip-meta-ui-metaModel.pipe-3487ede2.mjs} +4 -4
  65. package/{fesm2015/vgip-meta-ui-metaModel.pipe-4b068359.mjs.map → fesm2022/vgip-meta-ui-metaModel.pipe-3487ede2.mjs.map} +1 -1
  66. package/{fesm2020 → fesm2022}/vgip-meta-ui.mjs +96 -91
  67. package/{fesm2015 → fesm2022}/vgip-meta-ui.mjs.map +1 -1
  68. package/lib/common/metaAutofocus.directive.d.ts +1 -1
  69. package/lib/fieldBoolean/index.d.ts +1 -1
  70. package/lib/fieldComposite/index.d.ts +1 -1
  71. package/lib/fieldRadio/index.d.ts +1 -1
  72. package/lib/fieldRichtext/index.d.ts +6 -8
  73. package/lib/fieldText/index.d.ts +1 -1
  74. package/lib/layout/index.d.ts +1 -1
  75. package/lib/metaField/index.d.ts +1 -1
  76. package/lib/resource/index.d.ts +1 -1
  77. package/lib/resourceCard/index.d.ts +1 -1
  78. package/package.json +8 -14
  79. package/esm2020/lib/fieldReference/index.mjs +0 -825
  80. package/esm2020/lib/fieldRichtext/index.mjs +0 -85
  81. package/esm2020/lib/index.mjs +0 -158
  82. package/fesm2015/vgip-meta-ui-fieldAbstract-f7d80db6.mjs +0 -397
  83. package/fesm2015/vgip-meta-ui-fieldAbstract-f7d80db6.mjs.map +0 -1
  84. package/fesm2015/vgip-meta-ui-index-1d2b4c69.mjs.map +0 -1
  85. package/fesm2015/vgip-meta-ui-index-2737c81e.mjs +0 -1900
  86. package/fesm2015/vgip-meta-ui-index-2737c81e.mjs.map +0 -1
  87. package/fesm2015/vgip-meta-ui-index-2b20afc8.mjs.map +0 -1
  88. package/fesm2015/vgip-meta-ui-index-3eefa50a.mjs +0 -75
  89. package/fesm2015/vgip-meta-ui-index-3eefa50a.mjs.map +0 -1
  90. package/fesm2015/vgip-meta-ui-index-476b6cb7.mjs +0 -24
  91. package/fesm2015/vgip-meta-ui-index-4b8d731c.mjs +0 -151
  92. package/fesm2015/vgip-meta-ui-index-4b8d731c.mjs.map +0 -1
  93. package/fesm2015/vgip-meta-ui-index-4ecdd48a.mjs +0 -72
  94. package/fesm2015/vgip-meta-ui-index-4ecdd48a.mjs.map +0 -1
  95. package/fesm2015/vgip-meta-ui-index-62be0e3e.mjs.map +0 -1
  96. package/fesm2015/vgip-meta-ui-index-640f8e62.mjs.map +0 -1
  97. package/fesm2015/vgip-meta-ui-index-695384af.mjs +0 -88
  98. package/fesm2015/vgip-meta-ui-index-695384af.mjs.map +0 -1
  99. package/fesm2015/vgip-meta-ui-index-6e77c362.mjs +0 -130
  100. package/fesm2015/vgip-meta-ui-index-6e77c362.mjs.map +0 -1
  101. package/fesm2015/vgip-meta-ui-index-81aa79dc.mjs +0 -460
  102. package/fesm2015/vgip-meta-ui-index-81aa79dc.mjs.map +0 -1
  103. package/fesm2015/vgip-meta-ui-index-87041aad.mjs +0 -23
  104. package/fesm2015/vgip-meta-ui-index-a76ba482.mjs.map +0 -1
  105. package/fesm2015/vgip-meta-ui-index-bf5b6c0f.mjs.map +0 -1
  106. package/fesm2015/vgip-meta-ui.mjs +0 -525
  107. package/fesm2020/vgip-meta-ui-index-1d2b4c69.mjs +0 -68
  108. package/fesm2020/vgip-meta-ui-index-2b20afc8.mjs +0 -368
  109. package/fesm2020/vgip-meta-ui-index-476b6cb7.mjs +0 -24
  110. package/fesm2020/vgip-meta-ui-index-476b6cb7.mjs.map +0 -1
  111. package/fesm2020/vgip-meta-ui-index-4c4a4daf.mjs +0 -858
  112. package/fesm2020/vgip-meta-ui-index-4c4a4daf.mjs.map +0 -1
  113. package/fesm2020/vgip-meta-ui-index-4fcefde0.mjs.map +0 -1
  114. package/fesm2020/vgip-meta-ui-index-640f8e62.mjs +0 -95
  115. package/fesm2020/vgip-meta-ui-index-695384af.mjs +0 -88
  116. package/fesm2020/vgip-meta-ui-index-695384af.mjs.map +0 -1
  117. package/fesm2020/vgip-meta-ui-index-87041aad.mjs.map +0 -1
  118. package/fesm2020/vgip-meta-ui-index-aee28354.mjs +0 -497
  119. package/fesm2020/vgip-meta-ui-index-bf5b6c0f.mjs +0 -61
  120. package/fesm2020/vgip-meta-ui-metaModel.pipe-4b068359.mjs +0 -28
  121. package/fesm2020/vgip-meta-ui-metaModel.pipe-4b068359.mjs.map +0 -1
  122. package/fesm2020/vgip-meta-ui-relativeTimeBuilder-31791ce4.mjs +0 -51
  123. package/fesm2020/vgip-meta-ui-relativeTimeBuilder-31791ce4.mjs.map +0 -1
  124. package/fesm2020/vgip-meta-ui.mjs.map +0 -1
  125. /package/{esm2020 → esm2022}/lib/common/fieldNormalizer/boolean.mjs +0 -0
  126. /package/{esm2020 → esm2022}/lib/common/fieldNormalizer/datetime.mjs +0 -0
  127. /package/{esm2020 → esm2022}/lib/common/fieldNormalizer/index.mjs +0 -0
  128. /package/{esm2020 → esm2022}/lib/common/fieldNormalizer/number.mjs +0 -0
  129. /package/{esm2020 → esm2022}/lib/common/fieldNormalizer/options.mjs +0 -0
  130. /package/{esm2020 → esm2022}/lib/common/fieldNormalizer/radio.mjs +0 -0
  131. /package/{esm2020 → esm2022}/lib/common/fieldNormalizer/reference.mjs +0 -0
  132. /package/{esm2020 → esm2022}/lib/common/fieldNormalizer/richtext.mjs +0 -0
  133. /package/{esm2020 → esm2022}/lib/common/fieldNormalizer/string.mjs +0 -0
  134. /package/{esm2020 → esm2022}/lib/common/fieldNormalizer/text.mjs +0 -0
  135. /package/{esm2020 → esm2022}/lib/common/fieldNormalizer/uniqueNameFilter.mjs +0 -0
  136. /package/{esm2020 → esm2022}/lib/common/utils/colorThemes.mjs +0 -0
  137. /package/{esm2020 → esm2022}/lib/common/utils/indexedDbStore/index.mjs +0 -0
  138. /package/{esm2020 → esm2022}/lib/common/utils/relativeTimeBuilder.mjs +0 -0
  139. /package/{esm2020 → esm2022}/lib/common/utils/resourceCardLabel.mjs +0 -0
  140. /package/{esm2020 → esm2022}/lib/common/utils/smartProp.mjs +0 -0
  141. /package/{esm2020 → esm2022}/lib/common/utils/templateBuilder.mjs +0 -0
  142. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  143. /package/{esm2020 → esm2022}/vgip-meta-ui.mjs +0 -0
  144. /package/{fesm2015 → fesm2022}/vgip-meta-ui-relativeTimeBuilder-31791ce4.mjs +0 -0
  145. /package/{fesm2015 → fesm2022}/vgip-meta-ui-relativeTimeBuilder-31791ce4.mjs.map +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"vgip-meta-ui-index-a76ba482.mjs","sources":["../../../projects/meta-ui/src/lib/fieldSelect/index.ts","../../../projects/meta-ui/src/lib/fieldSelect/view.html"],"sourcesContent":["import { Component, OnInit, ViewContainerRef } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { MetaReferenceService } from '../services/metaReference';\nimport { MetaResourceService, IMetaResourceConfig } from '../services/metaResource';\nimport { MetaRefDialog } from '../refDialog';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n})\nexport class FieldSelect extends FieldAbstract implements OnInit {\n multiple: boolean;\n input: HTMLInputElement;\n dropdown: HTMLElement;\n dropdownScrollContainer: HTMLElement;\n showText: string;\n activeSuggestionIndex: number;\n value: any;\n isCreatable = false;\n asyncOptions: Array<any>;\n searching: boolean;\n filteredOptions: Array<any>;\n searchInputText: '';\n searchInput: HTMLInputElement;\n\n constructor(\n private referenceService: MetaReferenceService,\n private metaResource: MetaResourceService,\n private viewContainerRef: ViewContainerRef\n ) {\n super();\n }\n\n get options() {\n return this.filteredOptions || this.asyncOptions || this.meta.options || this.meta.picklist || [];\n }\n\n get groupedOptions() {\n return this.options.reduce((r, { group }) => {\n if (!r.some(o => o.group === group)) {\n r.push({ group, groupItem: this.options.filter(v => v.group === group) });\n }\n return r;\n }, []);\n }\n\n get resourceService() {\n if (!this.metaResourceService) {\n const metaResourceConfig: IMetaResourceConfig = {\n integrationCode: this.integrationCode,\n resourceType: this.resourceType\n };\n this.metaResourceService = this.metaResource.new(metaResourceConfig);\n }\n return this.metaResourceService;\n }\n\n get optionsBackup() {\n return this.asyncOptions || this.meta.options || this.meta.picklist || [];\n }\n\n static setup(instance, parent, meta) { }\n\n ngOnInit() {\n // console.log('parent', this.parent);\n this.validationAttributes = ['required'];\n this.multiple = (this.meta.type === 'multipicklist') || this.meta.multiple;\n const origValue = this.parent[this.meta.name];\n if (this.meta.reference) {\n this.isCreatable = true;\n }\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (this.multiple) {\n if (value && value instanceof Array === false) {\n for (const o of this.options) {\n if ((value.id || value) === (o.id || o.value || o.name || 0)) {\n this.model = [o];\n this.value = [this.modelToValue(o, this.meta.valueType)];\n break;\n }\n }\n }\n if (!value || value.length) {\n const values = (value instanceof Array) ? value : (value || '').split(';'); // should not handle incorrect values\n this.value = [];\n this.model = [];\n for (const v of values) {\n if (v) {\n for (const o of this.options) {\n if ((v.id || v) === (o.id || o.value || o.name || 0)) {\n this.model.push(o);\n this.value.push(this.modelToValue(o, this.meta.valueType));\n break;\n }\n }\n }\n }\n if (!this.model.length && !this.isPersistedParent) {\n delete this.model;\n delete this.value;\n delete this.showText;\n } else {\n this.showText = (this.model || []).map((o) => o.label || o).join(', ');\n }\n }\n } else {\n if (value) {\n for (const o of this.options) {\n if ((value.id || value) === (o.id || o.value || o.name || o)) {\n this.model = o;\n this.value = this.modelToValue(o, this.meta.valueType);\n this.showText = o.label || o;\n break;\n }\n }\n } else {\n delete this.model;\n delete this.value;\n delete this.showText;\n }\n }\n this.onSubjectChange(this.model);\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n\n if (origValue) {\n this.parent[this.meta.name] = origValue;\n }\n\n if (this.default && !this.model) {\n setTimeout(() => {\n this.parent[this.meta.name] = this.default.id || this.default;\n }, 0);\n }\n\n if (typeof (this.meta.enabled) !== undefined) {\n if (typeof (this.meta.enabled) === 'object') {\n for (const par of Object.keys(this.meta.enabled)) {\n const parValue = this.parent[par];\n if (parValue) {\n // logic for specific values, this works only for true\n } else {\n this.logicalDisabled = true;\n this.clear();\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(par)) {\n this.logicalDisabled = !value[par];\n if (this.logicalDisabled) {\n this.clear();\n } else {\n this.filterOptions();\n }\n }\n });\n }\n this.filterOptions();\n }\n }\n\n if (this.meta.search) {\n const searchParams = this.meta.search.params;\n if (searchParams) {\n for (const par of Object.keys(searchParams)) {\n const parValue = this.parent[searchParams[par]];\n if (parValue) {\n const params = {};\n params[par] = parValue;\n this.searchOptions(params);\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(searchParams[par])) {\n this.searchOptions(value);\n }\n });\n }\n }\n }\n }\n\n onActivated(ev) {\n // ev.preventDefault();\n // ev.stopPropagation();\n this.input = ev.srcElement;\n if (!this.dropdown) {\n this.dropdown = ev.srcElement.parentNode.parentNode.parentNode;\n this.searchInput = this.dropdown.querySelector('.vgip-search_input');\n }\n this.showDropdown();\n }\n\n detectSearchBlock(element) {\n return this.elementRef.nativeElement.querySelector('.Vlt-search_wrap').contains(element);\n }\n\n onBlur(ev) {\n let internalControl = false;\n if (ev.relatedTarget) {\n\n if (!this.detectSearchBlock(ev.relatedTarget) && !this.elementRef.nativeElement.contains(ev.relatedTarget)) {\n this.dismissDropdown();\n } else {\n internalControl = true;\n }\n }\n if (this.keyListenerActive && !internalControl) {\n this.input.removeEventListener('keydown', this.keydown);\n if (this.searchInput) {\n this.searchInput.removeEventListener('keydown', this.keydown);\n }\n setTimeout(() => {\n if (!this.keyListenerActive) {\n document.removeEventListener('click', this.clickout);\n }\n }, 400);\n delete this.keyListenerActive;\n }\n this.onLeave.emit(ev);\n }\n\n onOptionSelect(ev, option) {\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n this.focus();\n if (this.multiple) {\n if (!this.model) {\n this.model = [];\n }\n const optionIndex = this.model.indexOf(option);\n if (optionIndex === -1) {\n this.model.push(option);\n } else {\n this.model.splice(optionIndex, 1);\n if (!this.model.length) {\n delete this.model;\n }\n }\n this.onModelChange(this.model);\n if (this.model) {\n this.showText = (this.model || []).map((o) => o.label || o).join(', ');\n } else {\n delete this.showText;\n }\n } else {\n this.dismissDropdown();\n if (typeof option !== 'undefined') {\n this.model = option;\n this.onModelChange(option);\n this.showText = option.label || (option.id === '' ? '--empty--' : option);\n if (typeof (option) === 'object' && !option.id && option.id !== '') {\n delete this.showText;\n }\n }\n }\n }\n\n clear(ev?) {\n delete this.model;\n this.onModelChange(this.model);\n delete this.showText;\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n }\n }\n\n openResource(ev) {\n const refDialogComponent = this.viewContainerRef.createComponent(MetaRefDialog);\n this.referenceService.openDialog(\n refDialogComponent, this.metaResource, this.integrationCode, this.meta.reference, null\n ).subscribe((result: any) => {\n if (result) {\n const existingOptions = (this.meta.options || []).find((o) => (o.id === result.id && o.type === result.type));\n if (existingOptions) {\n existingOptions.label = result.label;\n } else {\n if (!this.meta.options) {\n this.meta.options = [];\n }\n this.meta.options.unshift(result);\n }\n this.onOptionSelect(ev, result);\n }\n });\n }\n\n showDropdown() {\n this.dropdown.classList.add('Vlt-dropdown--expanded');\n if (!this.keyListenerActive) {\n if (this.searchInput) {\n this.searchInput.focus(); // Focus directly on search input first visit\n this.searchInput.addEventListener('keydown', this.keydown);\n }\n this.input.addEventListener('keydown', this.keydown);\n setTimeout(() => {\n document.addEventListener('click', this.clickout);\n }, 200);\n this.keyListenerActive = true;\n if (this.options && this.model) {\n for (let suggestionIndex = 0; suggestionIndex < this.options.length; suggestionIndex++) {\n if (this.model === this.options[suggestionIndex]) {\n this.activeSuggestionIndex = suggestionIndex;\n }\n }\n }\n }\n this.ensureDropdownIsVisible();\n }\n\n dismissDropdown(event?) {\n if (event) {\n this.focus();\n }\n if (this.dropdown) {\n this.dropdown.classList.remove('Vlt-dropdown--expanded');\n }\n if (this.searchInput) {\n this.clearSearchField();\n }\n delete this.activeSuggestionIndex;\n }\n\n onSearchChange() {\n const search = new RegExp(this.searchInputText, 'gi');\n if (this.searchInputText === '') {\n this.filteredOptions = [...this.optionsBackup];\n } else {\n this.filteredOptions = this.optionsBackup.filter(option => (option.label || option.id || option.name || option).match(search));\n }\n }\n\n clearSearchField() {\n this.searchInputText = '';\n this.onSearchChange();\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 filterOptions() {\n this.asyncOptions = [];\n if (!this.logicalDisabled) {\n for (const o of this.meta.options) {\n if (o.for) {\n for (const par of Object.keys(o.for)) {\n const parValue = this.parent[par];\n if (o.for[par].indexOf(parValue) !== -1) {\n this.asyncOptions.push(o);\n }\n }\n } else {\n this.asyncOptions.push(o);\n }\n }\n }\n // remove current selection if not one of the filtered options\n if (this.model && this.asyncOptions.indexOf(this.model) === -1) {\n delete this.model;\n delete this.value;\n delete this.showText;\n delete this.parent[this.meta.name];\n }\n }\n\n private clickout = (event) => {\n if (\n event.target.className === 'Vlt-dropdown__link' && this.elementRef.nativeElement.contains(event.target)\n ) {\n this.focus();\n } else if (\n event.target !== this.input &&\n !event.target.classList.contains('Vlt-dropdown__block') &&\n !this.detectSearchBlock(event.target)\n ) {\n this.dismissDropdown();\n } else if (this.detectSearchBlock(event.target)) {\n event.target.focus();\n } else {\n this.focus();\n }\n };\n\n private keydown = (event) => {\n switch (event.key) {\n case 'ArrowDown': {\n this.showDropdown();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = 0;\n } else {\n this.activeSuggestionIndex++;\n if (this.activeSuggestionIndex >= this.options.length) {\n this.activeSuggestionIndex = 0;\n }\n }\n this.ensureDropdownOptionIsVisible();\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n case 'ArrowUp': {\n this.showDropdown();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = this.options.length - 1;\n } else {\n this.activeSuggestionIndex--;\n if (this.activeSuggestionIndex < 0) {\n this.activeSuggestionIndex = this.options.length - 1;\n }\n }\n this.ensureDropdownOptionIsVisible();\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n case 'Enter':\n case 'Space':\n case ' ': {\n if (typeof (this.activeSuggestionIndex) !== 'undefined') {\n event.preventDefault();\n event.stopPropagation();\n this.onOptionSelect(event, this.options[this.activeSuggestionIndex]);\n if (!this.multiple) {\n delete this.activeSuggestionIndex;\n }\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n event.stopPropagation();\n this.dismissDropdown();\n break;\n }\n case 'Backspace': {\n if (!this.dropdown.classList.contains('Vlt-dropdown--expanded')) {\n event.preventDefault();\n event.stopPropagation();\n this.clear();\n }\n break;\n }\n }\n };\n\n private searchOptions(params?) {\n let searchUrl = `/fields/${this.meta.name}/search`;\n if (this.meta.search) {\n if (this.meta.search.url) {\n searchUrl = this.meta.search.url;\n }\n const searchParams = this.meta.search.params;\n if (searchParams) {\n for (const par of Object.keys(searchParams)) {\n const val = this.parent[searchParams[par]];\n if (val) {\n searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}${par}=${val.id || val}`;\n }\n }\n }\n }\n this.searching = true;\n this.resourceService.getByPath(searchUrl).subscribe((options) => {\n this.asyncOptions = options;\n let validValue = false;\n if (this.value) {\n for (const o of options) {\n if ((o.id || o) === (this.value.id || this.value)) {\n validValue = true;\n }\n }\n if (!validValue) {\n this.clear();\n }\n }\n delete this.searching;\n });\n }\n\n}\n","<div class='vgip-meta-field-preview' *ngIf='preview && model'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>\n {{showText}}\n </div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element\"\n [ngClass]=\"{ 'Vlt-form__element--big': !meta.small ,'has-value': f.value, active: keyListenerActive, 'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (ft | metaModel ).touched), 'no-x': meta.noX }\">\n <div class=\"Vlt-composite Vlt-dropdown Vlt-input\" style='display: block;'\n [ngClass]=\"{ 'has-append-button': isCreatable && !disabled }\">\n <div class=\"Vlt-select\">\n <label class='wrapper'>\n <label class='Vlt-truncate'>{{meta.label || meta.name}}<span\n *ngIf='validations.required && options.length' class='Vlt-red'>*</span></label>\n <input class='main' [required]='validations.required && !!options.length' readonly [ngModel]='showText'\n #ft='ngModel' [ngModelOptions]=\"{standalone: true}\" type=\"text\"\n [placeholder]=\"meta.placeholder || ' '\" (click)='onActivated($event)' (focus)='onActivated($event)'\n (blur)='onBlur($event)' [ngClass]=\"{ 'standalone': meta.standalone }\"\n [disabled]='disabled' [attr.aria-label]='meta.label' />\n </label>\n <select class='model' [required]='validations.required && !!options.length' style='display: none;'\n [(ngModel)]='model' [ngModelOptions]=\"{standalone: meta.standalone}\"\n (ngModelChange)=\"onModelChange($event)\" #f='ngModel' [name]='name'></select>\n <div *ngIf='searching' class='search-progress'>\n <div class=\"container\">\n <div class=\"bar Vlt-bg-purple\"></div>\n </div>\n </div>\n <div class='Vlt-composite__append right-actions'>\n <div *ngIf='model && !meta.noX && !disabled' class=\"Vlt-composite__append--icon\"\n (click)='clear($event)'>\n <div class=\"Vlt-composite__icon\">\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\" />\n </svg>\n </div>\n </div>\n </div>\n </div>\n <div class='Vlt-dropdown__panel'>\n <div class=\"Vlt-dropdown__panel__content Vlt-dropdown__panel__content--scroll-area\">\n <!-- <div class=\"Vlt-dropdown__title\" style='padding-left: 15px;'>\n Select ({{options.length}})\n <div class=\"Vlt-dropdown__close Vlt-white\" (click)='dismissDropdown($event)'>\n <svg class='Vlt-icon Vlt-icon--small'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/></svg>\n </div>\n </div> -->\n <div class=\"Vlt-dropdown__block Vlt-search_wrap\">\n <div *ngIf=\"optionsBackup.length > 12\" class=\"Vlt-composite\">\n <div class=\"Vlt-composite__prepend Vlt-composite__prepend--icon\"\n style=\"top: 0; padding-top: 15px;\">\n <div class=\"Vlt-composite__icon\">\n <svg class='Vlt-grey'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-search\"></use>\n </svg>\n </div>\n </div>\n <div class=\"Vlt-input\">\n <input type=\"text\" class=\"vgip-search_input\" [(ngModel)]=\"searchInputText\" placeholder=\"Search\" (input)=\"onSearchChange()\" (blur)='onBlur($event)' [ngModelOptions]=\"{standalone: true}\">\n </div>\n <div class=\"Vlt-composite__append--icon\"\n style=\"top: 2px;\" (click)=\"clearSearchField()\" [hidden]=\"searchInputText === ''\">\n <div class=\"Vlt-composite__icon\">\n <svg class='Vlt-icon Vlt-icon--small'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/>\n </svg>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf='dropdown' class='Vlt-dropdown__scroll'>\n <div [ngClass]=\"{ 'Vlt-dropdown__link--selected': activeSuggestionIndex === i }\"\n (click)='onOptionSelect($event, option)' *ngFor='let option of options; let i = index'\n class=\"Vlt-dropdown__link\">\n <div *ngIf='multiple' class=\"Vlt-checkbox\" style='width: 100%;'>\n <label>\n <span class=\"Vlt-checkbox__button\">\n <input type=\"checkbox\" [checked]='model && model.indexOf(option) !== -1' />\n <span class=\"Vlt-checkbox__icon\"></span>\n </span>\n {{option.label || (option.id === '' ? '--empty--' : option)}}\n </label>\n </div>\n <div *ngIf='!multiple' style='padding: 12px 20px;'>{{option.label || (option.id === '' ?\n '--empty--' : option)}}</div>\n </div>\n <!-- No Option Found -->\n <div class=\"Vlt-dropdown__link\" *ngIf=\"options.length === 0\">\n <div style='padding: 12px 20px;'>No Option Found</div>\n </div>\n </div>\n <div *ngIf='!multiple' class=\"Vlt-dropdown__block\"></div>\n <div *ngIf='multiple' class=\"Vlt-dropdown__block Vlt-dropdown__block--nowrap\"\n style='padding: 8px 16px 16px;'>\n <button (click)='clear($event)' type='button'\n class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small Vlt-btn--outline\"\n style='margin-right: 8px;'>Clear all</button>\n <button (click)='dismissDropdown($event)' type='button'\n class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small\">Done</button>\n </div>\n </div>\n </div>\n <!-- <span *ngIf='isCreatable'>\n <button type='button' (click)='openResource($event)' class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--icon Vlt-btn--large\" style='margin-left: 12px;'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>\n </button>\n </span> -->\n <div *ngIf='isCreatable && !disabled' class=\"Vlt-composite__append\">\n <button (focus)='onActivated($event)' (blur)='onBlur($event)' type='button' (click)='openResource($event)'\n class=\"Vlt-btn Vlt-btn--white Vlt-btn--icon add-button\" aria-label='Add new'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\" />\n </svg>\n </button>\n </div>\n </div>\n <small *ngIf='f.invalid && ((f | metaModel)._parent.submitted || ((ft | metaModel).touched && keyListenerActive))'\n class=\"Vlt-form__element__error\">\n <span *ngIf=\"f.errors.required\">Required.&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.MetaReferenceService","i2.MetaResourceService","i3","i4","i5.MetaModelPipe"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"vgip-meta-ui-index-bf5b6c0f.mjs","sources":["../../../projects/meta-ui/src/lib/fieldBoolean/index.ts","../../../projects/meta-ui/src/lib/fieldBoolean/view.html"],"sourcesContent":["/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:34:49\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-03-26 12:57:51\n */\n\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\nimport { FieldAbstract } from '../fieldAbstract';\n// import { tMetaField } from '../../../metaTypes/tMetaField'\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n})\nexport class FieldBoolean extends FieldAbstract implements OnInit {\n @Input() meta: any;\n value: boolean;\n\n ngOnInit() {\n const origValue = this.parent[this.meta.name];\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (typeof (value) === 'object' && value !== null) {\n value = value.value || value.id || false;\n }\n if (!value && (typeof(this.prevModel) === 'boolean') && this.isPersistedParent) {\n value = false;\n }\n console.log('boolean field setting model', value);\n this.model = (value === true) || (value != null && (['true', '1'].indexOf(value.toString().toLowerCase()) !== -1));\n this.value = this.model;\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 if (typeof(this.meta.default) !== 'undefined' && typeof(this.model) === 'undefined' && !(this.meta.default instanceof Array)) {\n setTimeout(() => {\n this.onModelChange(this.meta.default);\n }, 0);\n }\n }\n\n onOptionChange() {\n this.onModelChange(this.model);\n }\n}\n","<div class='vgip-meta-field-preview' *ngIf='preview && model'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>\n {{ model ? '✔' : '✘'}}\n </div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element\" [ngClass]=\"{ 'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched) }\">\n\t<input class='model' type='hidden' [required]='validations.required' [(ngModel)]='model' #f='ngModel' [name]='name' />\n\t<div class=\"Vlt-switch\" *ngIf=\"meta.subtype === 'switch'\">\n\t\t<label style='vertical-align: middle;'>\n\t\t\t<input class='model' type=\"checkbox\" [(ngModel)]='model' (change)='onOptionChange()' [name]='name'/>\n\t\t\t<span class=\"Vlt-switch__slider\"></span>\n\t\t\t<span style='margin-left: 60px; line-height: 30px; white-space: nowrap;'>{{meta.label || meta.name}}</span>\n\t\t</label>\n\t</div>\n\t<div class=\"Vlt-checkbox\" *ngIf=\"meta.subtype !== 'switch'\">\n\t\t<label style='cursor: pointer;'>\n\t\t\t<span class=\"Vlt-checkbox__button\">\n\t\t\t\t<input class='model' type=\"checkbox\" [(ngModel)]='model' (change)='onOptionChange()' [name]='name'/>\n\t\t\t\t<span class=\"Vlt-checkbox__icon\"></span>\n\t\t\t</span>\n\t\t\t{{meta.label || meta.name}}\n\t\t</label>\n\t</div>\n\t<small *ngIf='f.invalid && ((f | metaModel)._parent.submitted || ((f | metaModel ).touched))' class=\"Vlt-form__element__error\">\n <span *ngIf=\"f.errors.required\">Required</span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}}&nbsp;</span>\n </small>\n\t<small *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n</div>\n"],"names":["i3.MetaModelPipe"],"mappings":"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"}
@@ -1,525 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Component, Input, Pipe, Injectable, NgModule } from '@angular/core';
3
- import * as i1 from '@angular/common';
4
- import { CommonModule } from '@angular/common';
5
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
6
- import { HttpClientModule } from '@angular/common/http';
7
- import * as i4 from 'ngx-quill';
8
- import { QuillModule } from 'ngx-quill';
9
- import { M as MetaRefDialog, a as MetaResourceService, b as MetaReferenceService, c as MetaLayout, d as MetaResource, e as MetaAutofocusDirective } from './vgip-meta-ui-index-2737c81e.mjs';
10
- export { g as MetaHttpClient, f as MetaMsgService, m as metaNormalizer } from './vgip-meta-ui-index-2737c81e.mjs';
11
- import { FieldUnknown } from './vgip-meta-ui-index-476b6cb7.mjs';
12
- import { FieldInput } from './vgip-meta-ui-index-81aa79dc.mjs';
13
- import { FieldText } from './vgip-meta-ui-index-1d2b4c69.mjs';
14
- import { FieldSelect } from './vgip-meta-ui-index-a76ba482.mjs';
15
- import { F as FieldReference } from './vgip-meta-ui-index-62be0e3e.mjs';
16
- export { M as MetaTrackerService } from './vgip-meta-ui-index-62be0e3e.mjs';
17
- import { FieldComposite } from './vgip-meta-ui-index-4ecdd48a.mjs';
18
- import { FieldBoolean } from './vgip-meta-ui-index-bf5b6c0f.mjs';
19
- import { FieldRadio } from './vgip-meta-ui-index-640f8e62.mjs';
20
- import { FieldList } from './vgip-meta-ui-index-3eefa50a.mjs';
21
- import { FieldRichtext } from './vgip-meta-ui-index-695384af.mjs';
22
- import { FieldDatetime } from './vgip-meta-ui-index-2b20afc8.mjs';
23
- import { FieldHidden } from './vgip-meta-ui-index-87041aad.mjs';
24
- import * as i1$1 from '@angular/platform-browser';
25
- import { M as MetaModelPipe } from './vgip-meta-ui-metaModel.pipe-4b068359.mjs';
26
- import { M as MetaContextService } from './vgip-meta-ui-index-6e77c362.mjs';
27
- export { r as relativeTimeBuilder } from './vgip-meta-ui-relativeTimeBuilder-31791ce4.mjs';
28
- import { M as MetaField, a as MetaFieldContentDirective } from './vgip-meta-ui-index-4b8d731c.mjs';
29
- export { a as metaDark, m as metaLight } from './vgip-meta-ui-fieldAbstract-f7d80db6.mjs';
30
- import 'tslib';
31
- import 'rxjs';
32
- import 'rxjs/operators';
33
- import '@angular/router';
34
-
35
- class MetaResourceCard {
36
- constructor(metaResource, referenceService, viewContainerRef) {
37
- this.metaResource = metaResource;
38
- this.referenceService = referenceService;
39
- this.viewContainerRef = viewContainerRef;
40
- }
41
- ngOnInit() {
42
- this.integrationCode = (this.resource.integration || this.resource.integrationCode || '').toLowerCase();
43
- }
44
- open(reference, model) {
45
- const refDialogComponent = this.viewContainerRef.createComponent(MetaRefDialog);
46
- this.referenceService.openDialog(refDialogComponent, this.metaResource, this.integrationCode, reference, model, model && (reference.editable === false) // is preview mode
47
- ).subscribe((result) => {
48
- console.log('dialog result', result);
49
- // if (result && result.raw) {
50
- // if (!this.parent[reference.type]) {
51
- // this.parent[reference.type] = [];
52
- // }
53
- // this.parent[reference.type].push(result.raw);
54
- // }
55
- });
56
- }
57
- }
58
- MetaResourceCard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: MetaResourceCard, deps: [{ token: MetaResourceService }, { token: MetaReferenceService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
59
- MetaResourceCard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: MetaResourceCard, selector: "vgip-meta-resource-card", inputs: { resource: "resource", model: "model" }, ngImport: i0, template: "<div class=\"Vlt-card Vlt-bg-white\">\n\t<div class=\"Vlt-card__content Vlt-btn-on-hover\">\n\t\t<h5>{{model.Subject || model.subject || model.summary || model.title || model.CaseNumber || model.comment || model.body || model.name || model.topic || '...' }}</h5>\n\t\t<div style='font-size: 12px; line-height: 16px;'>\n\t\t\tCreated: <span class='Vlt-black'>{{model._vgis.createdDate | date:'mediumDate'}}</span>\n\t\t\tEdited: <span class='Vlt-black'>{{model._vgis.modifiedDate | date:'medium'}}</span>\n\t\t</div>\n\t\t<div class=\"Vlt-badge Vlt-badge--app Vlt-badge--purple Vlt-badge--small\">{{model._vgis.resourceType}}</div>\n\t\t<div class=\"Vlt-btn-group Vlt-btn-group--hover\">\n\t\t\t<a *ngIf='model._vgis.externalLink' attr.href='{{model._vgis.externalLink}}' target='_blank' rel='noopener' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\" aria-label='Open external'><svg style='margin-left: 0; margin-right: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\"/></svg></a>\n\t\t\t<button type='button' (click)='open(resource, model)' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\" aria-label='Edit'><svg style='margin-left: 0; margin-right: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-edit\"/></svg></button>\n\t\t</div>\n\t</div>\n</div>\n", styles: [".Vlt-card{margin-bottom:8px;padding:16px}.Vlt-card .Vlt-btn-group.Vlt-btn-group--hover{right:-8px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] });
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: MetaResourceCard, decorators: [{
61
- type: Component,
62
- args: [{ selector: 'vgip-meta-resource-card', template: "<div class=\"Vlt-card Vlt-bg-white\">\n\t<div class=\"Vlt-card__content Vlt-btn-on-hover\">\n\t\t<h5>{{model.Subject || model.subject || model.summary || model.title || model.CaseNumber || model.comment || model.body || model.name || model.topic || '...' }}</h5>\n\t\t<div style='font-size: 12px; line-height: 16px;'>\n\t\t\tCreated: <span class='Vlt-black'>{{model._vgis.createdDate | date:'mediumDate'}}</span>\n\t\t\tEdited: <span class='Vlt-black'>{{model._vgis.modifiedDate | date:'medium'}}</span>\n\t\t</div>\n\t\t<div class=\"Vlt-badge Vlt-badge--app Vlt-badge--purple Vlt-badge--small\">{{model._vgis.resourceType}}</div>\n\t\t<div class=\"Vlt-btn-group Vlt-btn-group--hover\">\n\t\t\t<a *ngIf='model._vgis.externalLink' attr.href='{{model._vgis.externalLink}}' target='_blank' rel='noopener' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\" aria-label='Open external'><svg style='margin-left: 0; margin-right: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\"/></svg></a>\n\t\t\t<button type='button' (click)='open(resource, model)' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\" aria-label='Edit'><svg style='margin-left: 0; margin-right: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-edit\"/></svg></button>\n\t\t</div>\n\t</div>\n</div>\n", styles: [".Vlt-card{margin-bottom:8px;padding:16px}.Vlt-card .Vlt-btn-group.Vlt-btn-group--hover{right:-8px}\n"] }]
63
- }], ctorParameters: function () { return [{ type: MetaResourceService }, { type: MetaReferenceService }, { type: i0.ViewContainerRef }]; }, propDecorators: { resource: [{
64
- type: Input
65
- }], model: [{
66
- type: Input
67
- }] } });
68
-
69
- /*
70
- * @Author: Alexander.Vangelov@vonage.com
71
- * @Date: 2019-09-19 17:35:19
72
- * @Last Modified by: Alexander.Vangelov@vonage.com
73
- * @Last Modified time: 2019-11-05 13:46:18
74
- */
75
- class MetaIconsPipe {
76
- constructor(sanitizer) {
77
- this.sanitizer = sanitizer;
78
- }
79
- transform(value, ...args) {
80
- if (typeof (value) === 'string') {
81
- value = value.replace(/\${\s*icon:([\w\-]+)\s*}/g, (match, val) => `<svg class='Vlt-icon'><use xlink:href="volta/volta-icons.svg#${val}"/></svg>`);
82
- return value; //this.sanitizer.bypassSecurityTrustHtml(value);
83
- }
84
- }
85
- }
86
- MetaIconsPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: MetaIconsPipe, deps: [{ token: i1$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
87
- MetaIconsPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: MetaIconsPipe, name: "metaIcons" });
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: MetaIconsPipe, decorators: [{
89
- type: Pipe,
90
- args: [{
91
- name: 'metaIcons'
92
- }]
93
- }], ctorParameters: function () { return [{ type: i1$1.DomSanitizer }]; } });
94
-
95
- /*
96
- * @Author: Alexander.Vangelov@vonage.com
97
- * @Date: 2020-04-14 12:15:36
98
- * @Last Modified by: Alexander.Vangelov@vonage.com
99
- * @Last Modified time: 2020-04-14 12:21:57
100
- */
101
- class MetaStripHtmlPipe {
102
- transform(value) {
103
- return value.replace(/<[^>]*>/g, '');
104
- }
105
- }
106
- MetaStripHtmlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: MetaStripHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
107
- MetaStripHtmlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: MetaStripHtmlPipe, name: "metaStripHtml" });
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: MetaStripHtmlPipe, decorators: [{
109
- type: Pipe,
110
- args: [{
111
- name: 'metaStripHtml'
112
- }]
113
- }] });
114
-
115
- /*
116
- * @Author: Alexander.Vangelov@vonage.com
117
- * @Date: 2020-02-10 18:47:45
118
- * @Last Modified by: Alexander.Vangelov@vonage.com
119
- * @Last Modified time: 2020-02-28 13:29:23
120
- */
121
- class IndexedDbStore {
122
- constructor(dbName = 'vgip') {
123
- this.dbName = dbName;
124
- this.indxDb = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
125
- }
126
- _getDb(callback) {
127
- const self = this;
128
- if (this.db) {
129
- return callback(null, this.db);
130
- }
131
- const req = this.indxDb.open(this.dbName);
132
- req.onupgradeneeded = (ev) => {
133
- self.db = ev.target.result;
134
- const objectStore = self.db.createObjectStore('Draft', { keyPath: 'id', autoIncrement: true });
135
- objectStore.createIndex('contextIndex', 'context', { unique: false });
136
- objectStore.createIndex('contextintegrationIndex', ['context', 'integration'], { unique: false });
137
- objectStore.createIndex('contextintegrationresourceIndex', ['context', 'integration', 'resource'], { unique: true });
138
- };
139
- if (callback) {
140
- req.onsuccess = (ev) => {
141
- self.db = ev.target.result;
142
- callback(null, self.db);
143
- };
144
- }
145
- req.onerror = (ev) => {
146
- if (callback) {
147
- callback(ev.error);
148
- }
149
- };
150
- }
151
- initCollection(collectionName, items = [], callback) {
152
- const self = this;
153
- this._getDb((err) => {
154
- if (err && callback) {
155
- return callback(err);
156
- }
157
- if (callback) {
158
- callback(null, self.db);
159
- }
160
- });
161
- }
162
- reset(callback) {
163
- this._getDb((err) => {
164
- if (err) {
165
- return callback(err);
166
- }
167
- this.db.close();
168
- this.indxDb.deleteDatabase(this.dbName);
169
- delete this.db;
170
- this._getDb(callback); // eslint-disable-line no-underscore-dangle
171
- });
172
- }
173
- findById(collectionName, id, callback) {
174
- const tx = this.db.transaction([collectionName]);
175
- const store = tx.objectStore(collectionName);
176
- const request = store.get(parseInt(`${id}`, 10));
177
- if (callback) {
178
- request.onerror = () => {
179
- callback(request.error);
180
- };
181
- }
182
- request.onsuccess = () => {
183
- if (!request.result) {
184
- callback({ message: 'Not Found' });
185
- }
186
- else if (callback) {
187
- callback(null, request.result);
188
- }
189
- };
190
- }
191
- destroyById(collectionName, id, callback) {
192
- const tx = this.db.transaction([collectionName], 'readwrite');
193
- const store = tx.objectStore(collectionName);
194
- const request = store.delete(parseInt(`${id}`, 10));
195
- if (callback) {
196
- request.onerror = () => {
197
- callback(request.error);
198
- };
199
- }
200
- request.onsuccess = () => {
201
- if (callback) {
202
- callback(null, request.result);
203
- }
204
- };
205
- }
206
- findOne(collectionName, conditions, options, callback) {
207
- const tx = this.db.transaction([collectionName]);
208
- const store = tx.objectStore(collectionName);
209
- const conditionsKeys = Object.keys(conditions);
210
- let idx;
211
- let req;
212
- if (conditionsKeys.length > 1) {
213
- const vals = [];
214
- conditionsKeys.forEach((key) => vals.push(conditions[key]));
215
- idx = store.index(`${conditionsKeys.join('')}Index`);
216
- req = idx.get(vals);
217
- }
218
- else {
219
- idx = store.index(`${conditionsKeys[0]}Index`);
220
- req = idx.get(conditions[conditionsKeys[0]]);
221
- }
222
- if (callback) {
223
- req.onerror = () => {
224
- callback(req.error);
225
- };
226
- }
227
- req.onsuccess = (ev) => {
228
- if (!ev.target.result) {
229
- callback({ message: 'Not Found' });
230
- }
231
- else if (callback) {
232
- callback(null, ev.target.result);
233
- }
234
- };
235
- }
236
- find(collectionName, conditions, options, callback) {
237
- const tx = this.db.transaction([collectionName]);
238
- const store = tx.objectStore(collectionName);
239
- const conditionsKeys = Object.keys(conditions);
240
- let idx;
241
- let req;
242
- if (conditionsKeys.length > 1) {
243
- const vals = [];
244
- conditionsKeys.forEach((key) => vals.push(conditions[key]));
245
- idx = store.index(`${conditionsKeys.join('')}Index`);
246
- req = idx.openCursor(vals);
247
- }
248
- else {
249
- idx = store.index(`${conditionsKeys[0]}Index`);
250
- req = idx.openCursor(conditions[conditionsKeys[0]]);
251
- }
252
- req.onerror = () => {
253
- if (callback) {
254
- callback(req.error);
255
- }
256
- };
257
- const items = [];
258
- req.onsuccess = (ev) => {
259
- const cursor = ev.target.result;
260
- if (cursor) {
261
- items.push(cursor.value);
262
- cursor.continue();
263
- }
264
- else if (callback) {
265
- callback(null, items);
266
- }
267
- };
268
- }
269
- save(collectionName, model, callback) {
270
- const record = model; // model.toJson(true, false);
271
- const createNew = () => {
272
- const txN = this.db.transaction([collectionName], 'readwrite');
273
- const request = txN.objectStore(collectionName).add(record);
274
- if (callback) {
275
- request.onerror = () => callback(request.error);
276
- }
277
- request.onsuccess = () => {
278
- record.id = request.result;
279
- if (callback) {
280
- callback(null, record);
281
- }
282
- };
283
- };
284
- const updateOldById = (id) => {
285
- const txO = this.db.transaction([collectionName], 'readwrite');
286
- const storeW = txO.objectStore(collectionName);
287
- const getRequest = storeW.get(id);
288
- if (callback) {
289
- getRequest.onerror = () => callback(getRequest.error);
290
- }
291
- getRequest.onsuccess = () => {
292
- const existing = getRequest.result;
293
- if (!existing) {
294
- callback({ message: 'Not Found' });
295
- }
296
- else {
297
- for (const p of Object.keys(record)) {
298
- existing[p] = record[p];
299
- }
300
- const updateRequest = storeW.put(existing);
301
- updateRequest.onerror = () => callback(updateRequest.error);
302
- updateRequest.onsuccess = (ev) => {
303
- if (typeof (callback) === 'function') {
304
- callback(null, existing);
305
- }
306
- };
307
- }
308
- };
309
- };
310
- if (record.id) {
311
- updateOldById(record.id);
312
- }
313
- else if (record.integration && record.resource) {
314
- this.findOne(collectionName, {
315
- context: record.context || '',
316
- integration: record.integration || '',
317
- resource: record.resource || ''
318
- }, null, (err, existing) => {
319
- if (!existing) {
320
- createNew();
321
- }
322
- else {
323
- updateOldById(existing.id);
324
- }
325
- });
326
- }
327
- else {
328
- createNew();
329
- }
330
- }
331
- }
332
-
333
- /*
334
- * @Author: Alexander.Vangelov@vonage.com
335
- * @Date: 2020-02-10 17:35:19
336
- * @Last Modified by: Alexander.Vangelov@vonage.com
337
- * @Last Modified time: 2020-02-13 06:17:24
338
- */
339
- const COLELCTION = 'Draft';
340
- class ResourceDraftsService {
341
- constructor(context) {
342
- this.context = context;
343
- this.store = new IndexedDbStore('vgip');
344
- }
345
- init(cb) {
346
- if (!this.db) {
347
- this.store.initCollection(COLELCTION, null, (err, db) => {
348
- this.db = db;
349
- cb(err, this.db);
350
- });
351
- }
352
- else {
353
- cb(null, this.db);
354
- }
355
- }
356
- list(integrationCode, resourceType, cb) {
357
- console.log('list drafts', this.context.uid, integrationCode, resourceType);
358
- }
359
- save(integrationCode, resourceType, draft, cb) {
360
- const now = new Date().getTime();
361
- this.store.save(COLELCTION, {
362
- context: this.context.uid || '',
363
- integration: integrationCode || '',
364
- resource: resourceType || '',
365
- timestamp: now,
366
- data: draft
367
- }, cb);
368
- }
369
- findOne(integrationCode, resourceType, cb) {
370
- this.store.findOne(COLELCTION, {
371
- context: this.context.uid || '',
372
- integration: integrationCode || '',
373
- resource: resourceType || ''
374
- }, null, cb);
375
- }
376
- find(params, cb) {
377
- this.store.find(COLELCTION, params, null, cb);
378
- }
379
- findById(draftId, cb) {
380
- this.store.findById(COLELCTION, draftId, cb);
381
- }
382
- destroyDraft(draft, cb) {
383
- if (draft && draft.id) {
384
- this.store.destroyById(COLELCTION, draft.id, cb);
385
- }
386
- }
387
- }
388
- ResourceDraftsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ResourceDraftsService, deps: [{ token: MetaContextService }], target: i0.ɵɵFactoryTarget.Injectable });
389
- ResourceDraftsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ResourceDraftsService, providedIn: 'root' });
390
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ResourceDraftsService, decorators: [{
391
- type: Injectable,
392
- args: [{
393
- providedIn: 'root'
394
- }]
395
- }], ctorParameters: function () { return [{ type: MetaContextService }]; } });
396
-
397
- /*
398
- * @Author: Alexander.Vangelov@vonage.com
399
- * @Date: 2019-09-19 17:34:34
400
- * @Last Modified by: Alexander.Vangelov@vonage.com
401
- * @Last Modified time: 2021-02-09 16:57:29
402
- */
403
- class MetaModule {
404
- static withProviders(customProviders) {
405
- return {
406
- ngModule: MetaModule,
407
- providers: customProviders
408
- };
409
- }
410
- }
411
- MetaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: MetaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
412
- MetaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: MetaModule, declarations: [MetaIconsPipe,
413
- MetaModelPipe,
414
- MetaStripHtmlPipe,
415
- MetaField,
416
- MetaRefDialog,
417
- MetaFieldContentDirective,
418
- MetaLayout,
419
- MetaResource,
420
- MetaResourceCard,
421
- FieldUnknown,
422
- FieldInput,
423
- FieldText,
424
- FieldSelect,
425
- FieldReference,
426
- FieldComposite,
427
- FieldBoolean,
428
- FieldRadio,
429
- FieldList,
430
- FieldRichtext,
431
- FieldDatetime,
432
- FieldHidden,
433
- MetaAutofocusDirective], imports: [CommonModule,
434
- FormsModule,
435
- ReactiveFormsModule,
436
- HttpClientModule, i4.QuillModule], exports: [MetaIconsPipe,
437
- MetaModelPipe,
438
- MetaStripHtmlPipe,
439
- MetaField,
440
- MetaLayout,
441
- MetaResource,
442
- MetaResourceCard,
443
- MetaAutofocusDirective] });
444
- MetaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: MetaModule, imports: [CommonModule,
445
- FormsModule,
446
- ReactiveFormsModule,
447
- HttpClientModule,
448
- QuillModule.forRoot({
449
- modules: {
450
- toolbar: [
451
- ['bold', 'italic', 'underline'],
452
- [{ list: 'bullet' }],
453
- [{ header: [1, 2, 3, 4, 5, 6, false] }],
454
- [{ font: [] }],
455
- [{ align: [] }]
456
- ]
457
- }
458
- })] });
459
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: MetaModule, decorators: [{
460
- type: NgModule,
461
- args: [{
462
- declarations: [
463
- MetaIconsPipe,
464
- MetaModelPipe,
465
- MetaStripHtmlPipe,
466
- MetaField,
467
- MetaRefDialog,
468
- MetaFieldContentDirective,
469
- MetaLayout,
470
- MetaResource,
471
- MetaResourceCard,
472
- FieldUnknown,
473
- FieldInput,
474
- FieldText,
475
- FieldSelect,
476
- FieldReference,
477
- FieldComposite,
478
- FieldBoolean,
479
- FieldRadio,
480
- FieldList,
481
- FieldRichtext,
482
- FieldDatetime,
483
- FieldHidden,
484
- MetaAutofocusDirective
485
- ],
486
- exports: [
487
- MetaIconsPipe,
488
- MetaModelPipe,
489
- MetaStripHtmlPipe,
490
- MetaField,
491
- MetaLayout,
492
- MetaResource,
493
- MetaResourceCard,
494
- MetaAutofocusDirective
495
- ],
496
- imports: [
497
- CommonModule,
498
- FormsModule,
499
- ReactiveFormsModule,
500
- HttpClientModule,
501
- QuillModule.forRoot({
502
- modules: {
503
- toolbar: [
504
- ['bold', 'italic', 'underline'],
505
- [{ list: 'bullet' }],
506
- [{ header: [1, 2, 3, 4, 5, 6, false] }],
507
- [{ font: [] }],
508
- [{ align: [] }]
509
- ]
510
- }
511
- })
512
- ]
513
- }]
514
- }] });
515
-
516
- /*
517
- * Public API Surface of meta-ui
518
- */
519
-
520
- /**
521
- * Generated bundle index. Do not edit.
522
- */
523
-
524
- export { FieldBoolean, FieldComposite, FieldDatetime, FieldHidden, FieldInput, FieldList, FieldRadio, FieldReference, FieldRichtext, FieldSelect, FieldText, FieldUnknown, MetaAutofocusDirective, MetaContextService, MetaField, MetaFieldContentDirective, MetaIconsPipe, MetaLayout, MetaModelPipe, MetaModule, MetaRefDialog, MetaReferenceService, MetaResource, MetaResourceCard, MetaResourceService, MetaStripHtmlPipe, ResourceDraftsService };
525
- //# sourceMappingURL=vgip-meta-ui.mjs.map