@vgip/meta-ui 1.6.8 → 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 (105) hide show
  1. package/esm2020/lib/common/utils/smartProp.mjs +15 -1
  2. package/esm2020/lib/fieldAbstract.mjs +4 -4
  3. package/esm2020/lib/fieldBoolean/index.mjs +4 -5
  4. package/esm2020/lib/fieldDatetime/index.mjs +3 -3
  5. package/esm2020/lib/fieldInput/index.mjs +3 -3
  6. package/esm2020/lib/fieldRadio/index.mjs +3 -3
  7. package/esm2020/lib/fieldReference/index.mjs +3 -3
  8. package/esm2020/lib/fieldRichtext/index.mjs +3 -3
  9. package/esm2020/lib/fieldSelect/index.mjs +6 -4
  10. package/esm2020/lib/fieldText/index.mjs +3 -3
  11. package/fesm2015/{vgip-meta-ui-fieldAbstract-5d159575.mjs → vgip-meta-ui-fieldAbstract-f7d80db6.mjs} +17 -3
  12. package/fesm2015/vgip-meta-ui-fieldAbstract-f7d80db6.mjs.map +1 -0
  13. package/fesm2015/vgip-meta-ui-index-1d2b4c69.mjs +68 -0
  14. package/fesm2015/vgip-meta-ui-index-1d2b4c69.mjs.map +1 -0
  15. package/fesm2015/{vgip-meta-ui-index-215dcd7f.mjs → vgip-meta-ui-index-2737c81e.mjs} +3 -3
  16. package/fesm2015/{vgip-meta-ui-index-215dcd7f.mjs.map → vgip-meta-ui-index-2737c81e.mjs.map} +1 -1
  17. package/{fesm2020/vgip-meta-ui-index-6055a61f.mjs → fesm2015/vgip-meta-ui-index-2b20afc8.mjs} +4 -4
  18. package/fesm2015/vgip-meta-ui-index-2b20afc8.mjs.map +1 -0
  19. package/fesm2015/{vgip-meta-ui-index-e1a8b144.mjs → vgip-meta-ui-index-3eefa50a.mjs} +3 -3
  20. package/fesm2015/{vgip-meta-ui-index-e1a8b144.mjs.map → vgip-meta-ui-index-3eefa50a.mjs.map} +1 -1
  21. package/fesm2015/{vgip-meta-ui-index-b1f2dc7e.mjs → vgip-meta-ui-index-476b6cb7.mjs} +2 -2
  22. package/fesm2015/{vgip-meta-ui-index-b1f2dc7e.mjs.map → vgip-meta-ui-index-476b6cb7.mjs.map} +1 -1
  23. package/fesm2015/{vgip-meta-ui-index-241d05f3.mjs → vgip-meta-ui-index-4b8d731c.mjs} +14 -14
  24. package/fesm2015/{vgip-meta-ui-index-241d05f3.mjs.map → vgip-meta-ui-index-4b8d731c.mjs.map} +1 -1
  25. package/fesm2015/{vgip-meta-ui-index-6fa7cbd7.mjs → vgip-meta-ui-index-4ecdd48a.mjs} +3 -3
  26. package/fesm2015/{vgip-meta-ui-index-6fa7cbd7.mjs.map → vgip-meta-ui-index-4ecdd48a.mjs.map} +1 -1
  27. package/fesm2015/vgip-meta-ui-index-62be0e3e.mjs +858 -0
  28. package/fesm2015/vgip-meta-ui-index-62be0e3e.mjs.map +1 -0
  29. package/fesm2015/vgip-meta-ui-index-640f8e62.mjs +95 -0
  30. package/fesm2015/vgip-meta-ui-index-640f8e62.mjs.map +1 -0
  31. package/fesm2015/vgip-meta-ui-index-695384af.mjs +88 -0
  32. package/fesm2015/vgip-meta-ui-index-695384af.mjs.map +1 -0
  33. package/{fesm2020/vgip-meta-ui-index-bcc42b36.mjs → fesm2015/vgip-meta-ui-index-81aa79dc.mjs} +4 -4
  34. package/fesm2015/vgip-meta-ui-index-81aa79dc.mjs.map +1 -0
  35. package/fesm2015/{vgip-meta-ui-index-eb92e6e3.mjs → vgip-meta-ui-index-87041aad.mjs} +2 -2
  36. package/fesm2015/{vgip-meta-ui-index-eb92e6e3.mjs.map → vgip-meta-ui-index-87041aad.mjs.map} +1 -1
  37. package/fesm2015/vgip-meta-ui-index-a76ba482.mjs +498 -0
  38. package/fesm2015/vgip-meta-ui-index-a76ba482.mjs.map +1 -0
  39. package/fesm2015/vgip-meta-ui-index-bf5b6c0f.mjs +61 -0
  40. package/fesm2015/vgip-meta-ui-index-bf5b6c0f.mjs.map +1 -0
  41. package/fesm2015/vgip-meta-ui.mjs +17 -17
  42. package/fesm2020/{vgip-meta-ui-fieldAbstract-5d159575.mjs → vgip-meta-ui-fieldAbstract-f7d80db6.mjs} +17 -3
  43. package/fesm2020/vgip-meta-ui-fieldAbstract-f7d80db6.mjs.map +1 -0
  44. package/fesm2020/vgip-meta-ui-index-1d2b4c69.mjs +68 -0
  45. package/fesm2020/vgip-meta-ui-index-1d2b4c69.mjs.map +1 -0
  46. package/{fesm2015/vgip-meta-ui-index-6055a61f.mjs → fesm2020/vgip-meta-ui-index-2b20afc8.mjs} +4 -4
  47. package/fesm2020/vgip-meta-ui-index-2b20afc8.mjs.map +1 -0
  48. package/fesm2020/{vgip-meta-ui-index-4054fc59.mjs → vgip-meta-ui-index-301b28cd.mjs} +14 -14
  49. package/fesm2020/{vgip-meta-ui-index-4054fc59.mjs.map → vgip-meta-ui-index-301b28cd.mjs.map} +1 -1
  50. package/fesm2020/{vgip-meta-ui-index-b1f2dc7e.mjs → vgip-meta-ui-index-476b6cb7.mjs} +2 -2
  51. package/fesm2020/{vgip-meta-ui-index-b1f2dc7e.mjs.map → vgip-meta-ui-index-476b6cb7.mjs.map} +1 -1
  52. package/fesm2020/vgip-meta-ui-index-4c4a4daf.mjs +858 -0
  53. package/fesm2020/vgip-meta-ui-index-4c4a4daf.mjs.map +1 -0
  54. package/fesm2020/{vgip-meta-ui-index-44b1b402.mjs → vgip-meta-ui-index-4fcefde0.mjs} +3 -3
  55. package/fesm2020/{vgip-meta-ui-index-44b1b402.mjs.map → vgip-meta-ui-index-4fcefde0.mjs.map} +1 -1
  56. package/fesm2020/vgip-meta-ui-index-640f8e62.mjs +95 -0
  57. package/fesm2020/vgip-meta-ui-index-640f8e62.mjs.map +1 -0
  58. package/fesm2020/vgip-meta-ui-index-695384af.mjs +88 -0
  59. package/fesm2020/vgip-meta-ui-index-695384af.mjs.map +1 -0
  60. package/{fesm2015/vgip-meta-ui-index-bcc42b36.mjs → fesm2020/vgip-meta-ui-index-81aa79dc.mjs} +4 -4
  61. package/fesm2020/vgip-meta-ui-index-81aa79dc.mjs.map +1 -0
  62. package/fesm2020/{vgip-meta-ui-index-eb92e6e3.mjs → vgip-meta-ui-index-87041aad.mjs} +2 -2
  63. package/fesm2020/{vgip-meta-ui-index-eb92e6e3.mjs.map → vgip-meta-ui-index-87041aad.mjs.map} +1 -1
  64. package/fesm2020/vgip-meta-ui-index-aee28354.mjs +497 -0
  65. package/fesm2020/vgip-meta-ui-index-aee28354.mjs.map +1 -0
  66. package/fesm2020/{vgip-meta-ui-index-eb68eace.mjs → vgip-meta-ui-index-b92a559b.mjs} +3 -3
  67. package/fesm2020/{vgip-meta-ui-index-eb68eace.mjs.map → vgip-meta-ui-index-b92a559b.mjs.map} +1 -1
  68. package/fesm2020/vgip-meta-ui-index-bf5b6c0f.mjs +61 -0
  69. package/fesm2020/vgip-meta-ui-index-bf5b6c0f.mjs.map +1 -0
  70. package/fesm2020/{vgip-meta-ui-index-8394e00c.mjs → vgip-meta-ui-index-f7370960.mjs} +3 -3
  71. package/fesm2020/{vgip-meta-ui-index-8394e00c.mjs.map → vgip-meta-ui-index-f7370960.mjs.map} +1 -1
  72. package/fesm2020/vgip-meta-ui.mjs +17 -17
  73. package/lib/common/utils/smartProp.d.ts +1 -0
  74. package/lib/fieldBoolean/index.d.ts +1 -1
  75. package/package.json +1 -1
  76. package/fesm2015/vgip-meta-ui-fieldAbstract-5d159575.mjs.map +0 -1
  77. package/fesm2015/vgip-meta-ui-index-50b9fec5.mjs +0 -95
  78. package/fesm2015/vgip-meta-ui-index-50b9fec5.mjs.map +0 -1
  79. package/fesm2015/vgip-meta-ui-index-6055a61f.mjs.map +0 -1
  80. package/fesm2015/vgip-meta-ui-index-9a626253.mjs +0 -62
  81. package/fesm2015/vgip-meta-ui-index-9a626253.mjs.map +0 -1
  82. package/fesm2015/vgip-meta-ui-index-a03a7056.mjs +0 -88
  83. package/fesm2015/vgip-meta-ui-index-a03a7056.mjs.map +0 -1
  84. package/fesm2015/vgip-meta-ui-index-a9800f48.mjs +0 -858
  85. package/fesm2015/vgip-meta-ui-index-a9800f48.mjs.map +0 -1
  86. package/fesm2015/vgip-meta-ui-index-bcc42b36.mjs.map +0 -1
  87. package/fesm2015/vgip-meta-ui-index-dc3b86fd.mjs +0 -68
  88. package/fesm2015/vgip-meta-ui-index-dc3b86fd.mjs.map +0 -1
  89. package/fesm2015/vgip-meta-ui-index-ff52eb27.mjs +0 -496
  90. package/fesm2015/vgip-meta-ui-index-ff52eb27.mjs.map +0 -1
  91. package/fesm2020/vgip-meta-ui-fieldAbstract-5d159575.mjs.map +0 -1
  92. package/fesm2020/vgip-meta-ui-index-50b9fec5.mjs +0 -95
  93. package/fesm2020/vgip-meta-ui-index-50b9fec5.mjs.map +0 -1
  94. package/fesm2020/vgip-meta-ui-index-6055a61f.mjs.map +0 -1
  95. package/fesm2020/vgip-meta-ui-index-97a4fa1f.mjs +0 -858
  96. package/fesm2020/vgip-meta-ui-index-97a4fa1f.mjs.map +0 -1
  97. package/fesm2020/vgip-meta-ui-index-9a626253.mjs +0 -62
  98. package/fesm2020/vgip-meta-ui-index-9a626253.mjs.map +0 -1
  99. package/fesm2020/vgip-meta-ui-index-a03a7056.mjs +0 -88
  100. package/fesm2020/vgip-meta-ui-index-a03a7056.mjs.map +0 -1
  101. package/fesm2020/vgip-meta-ui-index-a945dd34.mjs +0 -495
  102. package/fesm2020/vgip-meta-ui-index-a945dd34.mjs.map +0 -1
  103. package/fesm2020/vgip-meta-ui-index-bcc42b36.mjs.map +0 -1
  104. package/fesm2020/vgip-meta-ui-index-dc3b86fd.mjs +0 -68
  105. package/fesm2020/vgip-meta-ui-index-dc3b86fd.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"vgip-meta-ui-index-44b1b402.mjs","sources":["../../../projects/meta-ui/src/lib/common/fieldNormalizer/number.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/options.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/string.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/boolean.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/text.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/datetime.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/reference.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/radio.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/richtext.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/uniqueNameFilter.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/index.ts","../../../projects/meta-ui/src/lib/common/metaNormalizer.ts","../../../projects/meta-ui/src/lib/services/metaResource/metaHttpClient.ts","../../../projects/meta-ui/src/lib/services/metaResource/index.ts","../../../projects/meta-ui/src/lib/services/metaMsg/index.ts","../../../projects/meta-ui/src/lib/common/utils/resourceCardLabel.ts","../../../projects/meta-ui/src/lib/services/metaReference/index.ts","../../../projects/meta-ui/src/lib/layout/index.ts","../../../projects/meta-ui/src/lib/layout/view.html","../../../projects/meta-ui/src/lib/common/metaAutofocus.directive.ts","../../../projects/meta-ui/src/lib/resource/index.ts","../../../projects/meta-ui/src/lib/resource/view.html","../../../projects/meta-ui/src/lib/refDialog/index.ts","../../../projects/meta-ui/src/lib/refDialog/view.html"],"sourcesContent":["export const numberFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name\n };\n f.type = field.name ? 'number' : 'missing name';\n return f;\n};\n","export const optionsFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name,\n options: field.options || []\n };\n if (field.dependentPicklist && field.controllerName) {\n const enabled = {};\n enabled[field.controllerName] = true;\n f.enabled = enabled;\n }\n if (field.picklist) {\n for (const o of field.picklist) {\n const opt: any = {\n id: o.name || o.id,\n label: o.label\n };\n if (field.for) {\n opt.for = field.for;\n }\n if (o.validFor && field.controllerName) {\n const validFor = {};\n validFor[field.controllerName] = o.validFor;\n opt.for = validFor;\n }\n f.options.push(opt);\n if (o.defaultValue && !field.default) {\n f.default = opt.id;\n }\n }\n }\n f.type = field.name ? 'select' : 'missing name';\n if (field.type === 'multipicklist') {\n f.multiple = true;\n }\n if (field.reference) {\n f.reference = field.reference;\n }\n if (field.searchUrl || field.searchParams) {\n f.search = {\n url: field.searchUrl,\n params: field.searchParams\n };\n } else if (field.search) {\n f.search = field.search;\n }\n return f;\n};\n","export const stringFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name\n };\n f.type = field.name ? 'string' : 'missing name';\n if (field.subtype) {\n f.subtype = field.subtype;\n }\n if (field.picklist || field.options) {\n f.suggestions = (field.picklist || field.options || []).map((s) => {\n if (s.defaultValue) {\n f.default = s.label || s.name || s.id || s;\n }\n return {\n id: s.id,\n label: s.label,\n name: s.name\n };\n });\n }\n return f;\n};\n","export const booleanFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name\n };\n if (field.subtype) {\n f.subtype = field.subtype;\n }\n f.type = field.name ? 'boolean' : 'missing name';\n return f;\n};\n","/*\n* @Author: Alexander.Vangelov@vonage.com\n* @Date: 2021-03-22 17:09:52\n* @Last Modified by: Alexander.Vangelov@vonage.com\n* @Last Modified time: 2021-03-22 17:09:52\n*/\nexport const textFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name\n };\n f.type = field.name ? 'text' : 'missing name'; \n return f;\n};\n","export const datetimeFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name\n };\n f.type = field.name ? (field.type || '').toLowerCase() : 'missing name';\n return f;\n};\n","export const referenceFieldNormalizer = (field) => {\n const f: any = {\n type: field.name ? 'reference' : 'missing name',\n label: field.label,\n name: field.name\n };\n f.type = field.name ? 'reference' : 'missing name';\n if (field.reference) {\n if (field.reference instanceof Array && field.reference.length === 1) {\n f.reference = field.reference[0];\n } else {\n f.reference = field.reference;\n }\n } else if (field.references) {\n f.references = field.references;\n }\n if (field.acceptNew) {\n f.acceptNew = field.acceptNew;\n }\n if (field.searchLabel) {\n f.searchLabel = field.searchLabel;\n }\n if (field.searchUrl || field.searchParams) {\n f.search = {\n url: field.searchUrl,\n params: field.searchParams\n };\n } else if (field.search) {\n f.search = field.search;\n }\n return f;\n};\n","export const radioFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name,\n options: field.options || []\n };\n f.type = field.name ? 'radio' : 'missing name';\n if (field.picklist) {\n for (const o of field.picklist) {\n const opt: any = {\n id: o.name || o.id,\n label: o.label\n };\n if (field.for) {\n opt.for = field.for;\n }\n if (o.validFor && field.controllerName) {\n const validFor = {};\n validFor[field.controllerName] = o.validFor;\n opt.for = validFor;\n }\n f.options.push(opt);\n if (o.defaultValue && !field.default) {\n f.default = opt.id;\n }\n }\n }\n return f;\n};\n","/*\n * @Author: Alexander.Vangelov@vonage.com \n * @Date: 2019-09-19 17:34:34 \n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2021-03-22 17:11:01\n */\n\n export const richtextFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name\n };\n f.type = field.name ? 'richtext' : 'missing name'; \n return f;\n};\n","/*\n* @Author: Alexander.Vangelov@vonage.com\n* @Date: 2021-03-22 17:09:12\n* @Last Modified by: Alexander.Vangelov@vonage.com\n* @Last Modified time: 2021-03-22 17:09:12\n*/\nexport const uniqueNameFilter = (fields: Array<any>, uniqFieldNames: Array<string>, allowDuplicates = false) => {\n if (fields instanceof Array) {\n return allowDuplicates ? fields : fields.filter((f) => {\n if (f.name) {\n if (uniqFieldNames.indexOf(f.name) !== -1) {\n return false;\n }\n uniqFieldNames.push(f.name);\n }\n return true;\n });\n } else {\n return fields;\n }\n};\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:34:34\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2021-03-22 17:13:53\n */\n\nimport { numberFieldNormalizer } from './number';\nimport { optionsFieldNormalizer } from './options';\nimport { stringFieldNormalizer } from './string';\nimport { booleanFieldNormalizer } from './boolean';\nimport { textFieldNormalizer } from './text';\nimport { datetimeFieldNormalizer } from './datetime';\nimport { referenceFieldNormalizer } from './reference';\nimport { radioFieldNormalizer } from './radio';\nimport { richtextFieldNormalizer } from './richtext';\n\nimport { uniqueNameFilter } from './uniqueNameFilter';\n\nexport const fieldNormalizer = (field: any, uniqFieldNames: Array<string>) => {\n if (!field) {\n return;\n }\n let f: any = {\n validations: {}\n };\n const fieldType = (field.type || '').toLowerCase();\n if (['int', 'integer', 'number', 'double', 'float', 'bigdecimal', 'percent', 'currency'].indexOf(fieldType) !== -1) {\n f = numberFieldNormalizer(field);\n } else if (['picklist', 'select', 'multipicklist', 'options'].indexOf(fieldType) !== -1) {\n f = optionsFieldNormalizer(field);\n } else if (['string', null, undefined, '', 'email', 'phone', 'url', 'combobox'].indexOf(fieldType) !== -1) {\n f = stringFieldNormalizer(field);\n } else if (['bool', 'boolean', 'checkbox', 'switch'].indexOf(fieldType) !== -1) {\n f = booleanFieldNormalizer(field);\n } else if (['text', 'textarea'].indexOf(fieldType) !== -1) {\n f = textFieldNormalizer(field);\n } else if (['richtext'].indexOf(fieldType) !== -1) {\n f = richtextFieldNormalizer(field);\n } else if (['date', 'time', 'datetime', 'datetime-local'].indexOf(fieldType) !== -1) {\n f = datetimeFieldNormalizer(field);\n } else if (['reference', 'references', 'multireference'].indexOf(fieldType) !== -1) {\n f = referenceFieldNormalizer(field);\n } else if (['radio'].indexOf(fieldType) !== -1) {\n f = radioFieldNormalizer(field);\n } else if (fieldType === 'composite') {\n f = {\n type: 'composite',\n label: field.label,\n name: field.name,\n fields: uniqueNameFilter(\n field.fields || field.reference || [],\n uniqFieldNames,\n (typeof(field.name) !== 'undefined')\n ).map((v) => fieldNormalizer(v, uniqFieldNames))\n };\n if (field.subtype) {\n f.subtype = field.subtype;\n }\n } else if (fieldType === 'list') {\n const list = field.list || field.reference;\n f = {\n type: field.name ? 'list' : 'missing name',\n label: field.label,\n name: field.name,\n list: fieldNormalizer(uniqueNameFilter(list, uniqFieldNames), field.name ? [] : uniqFieldNames)\n };\n if (field.selectable) {\n f.selectable = field.selectable;\n }\n if (field.resourceType) {\n f.resourceType = field.resourceType;\n }\n } else if (fieldType === 'hidden') {\n f = {\n name: field.name,\n type: 'hidden'\n };\n } else {\n f = {\n label: field.label,\n name: field.name,\n type: `@v2 ${fieldType}`\n };\n }\n if (field.validations) {\n f.validations = field.validations;\n }\n if (field.auto) {\n f.auto = field.auto;\n }\n if ((field.default || field.defaultValue) && !f.default) {\n const d = field.default || field.defaultValue;\n if (Array.isArray(d)) {\n f.default = [];\n for (const v of d) {\n if (typeof(v) === 'object' && v !== null) {\n const o: any = {\n id: v.id || v.value || v.name || v.label,\n label: v.label || 'N/A'\n };\n if (v.type) {\n o.type = v.type;\n }\n if (!v.type && f.reference && f.reference.name) { // Bullhorn CAND PT bad metadata\n o.type = f.reference.name;\n }\n f.default.push(o);\n } else {\n f.default = v;\n }\n }\n } else if (typeof(d) === 'object' && d !== null) {\n if (field.type === 'boolean' && typeof(d.value) === 'boolean') {\n f.default = d.value;\n } else if (Object.keys(d).length) {\n const id = d.id || d.value || d.name || d.label;\n if (id) {\n f.default = {\n id: d.id || d.value || d.name || d.label,\n label: d.label || 'N/A'\n };\n }\n if (d.type) {\n f.default.type = d.type;\n }\n }\n } else {\n f.default = d;\n }\n }\n if (field.visible || field.alwaysVisible) {\n f.visible = field.visible || field.alwaysVisible;\n }\n if (field.hidden) {\n f.hidden = field.hidden;\n }\n if (field.hint || field.helpText) {\n f.hint = field.hint || field.helpText;\n }\n if (field.valueType) {\n f.valueType = field.valueType;\n }\n if (field.multiple) {\n f.multiple = field.multiple;\n }\n if (field.suggestions && field.suggestions.length) {\n f.suggestions = field.suggestions;\n }\n if (field.updateable === false || field.updatable === false) {\n if (!f.flags) {\n f.flags = { updatable: false };\n } else {\n f.flags.updatable = false;\n }\n }\n if (field.createable === false || field.creatable === false) {\n if (!f.flags) {\n f.flags = { creatable: false };\n } else {\n f.flags.creatable = false;\n }\n }\n if (typeof(field.enabled) !== 'undefined') {\n f.enabled = field.enabled;\n }\n if (typeof(field.disabled) !== 'undefined') {\n f.disabled = field.disabled;\n }\n return f;\n};\n","/*\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: 2023-02-10 09:44:59\n */\n\nimport { fieldNormalizer } from './fieldNormalizer';\nimport { uniqueNameFilter } from './fieldNormalizer/uniqueNameFilter';\n\nconst sortObj = (obj) => {\n if (typeof(obj) !== 'object' || obj === null) {\n return obj;\n }\n\n if (Array.isArray(obj)) {\n return obj.map((e) => sortObj(e)).sort();\n }\n\n return Object.keys(obj).sort().reduce((sorted, k) => {\n sorted[k] = sortObj(obj[k]);\n return sorted;\n }, {});\n};\n\nexport const metaNormalizer = (meta, integration, resourceType) => {\n const uniqFieldNames = [];\n const integrationCode = (integration || '').toUpperCase();\n const metaV3: any = {\n integration,\n resourceType,\n availableLayouts: meta.availableLayouts,\n layout: {\n id: meta.layout.id,\n name: meta.layout.name,\n label: meta.layout.label,\n version: '3.0.0',\n sections: (meta.layout.sections || []).map((s) => {\n const section: any = {\n label: s.label,\n fields: uniqueNameFilter(s.fields || [], uniqFieldNames).map((v) => fieldNormalizer(v, uniqFieldNames)) // VIST-424\n };\n if (s.visible || s.alwaysVisible) {\n section.visible = s.visible || s.alwaysVisible;\n }\n return section;\n })\n }\n };\n if (meta.layout.origLayoutId) {\n metaV3.layout.origLayoutId = meta.layout.origLayoutId;\n }\n if (meta.drafts) {\n metaV3.drafts = meta.drafts;\n }\n if (meta.layout.children) {\n metaV3.layout.children = meta.layout.children;\n }\n\n const fieldFixesByIntegration = (f) => {\n if (f.type === 'boolean' && ((typeof(f.default) !== 'boolean') && f.default && !f.default.value) ) {\n delete f.default;\n } else if (f.type === 'reference') {\n const references = (f.reference instanceof Array) ? f.reference : [f.reference];\n for (const r of references) {\n if (r && r.creatable === false && typeof(r.updatable) === 'undefined') {\n r.updatable = false; // User missing updatable, may be other too\n }\n }\n }\n switch (integrationCode) {\n case 'BULLHORN': {\n if (resourceType === 'Appointment') {\n if (['dateBegin', 'dateEnd'].indexOf(f.name) !== -1) {\n if (!f.validations) {\n f.validations = { step: 1800 };\n } else {\n f.validations.step = 1800;\n }\n f.default = f.name === 'dateBegin' ? 'now' : '30.minutes';\n if (!f.auto) {\n f.auto = {};\n }\n f.auto[f.name === 'dateBegin' ? 'lt' : 'gt'] = {\n against: f.name === 'dateBegin' ? 'dateEnd' : 'dateBegin',\n offset: `${f.name === 'dateBegin' ? '-30' : '30'}.minutes`\n };\n }\n }\n if (f.name === 'comments') {\n if (!f.validations) {\n f.valudations = { required: true };\n } else {\n f.validations.required = true;\n }\n if (resourceType === 'Note') {\n f.type = 'richtext';\n }\n }\n if (f.name === 'address.state') {\n f.creatable = false;\n f.updatable = false;\n }\n break;\n }\n case 'GOOGLE': {\n if (f.name === 'contactId') {\n f.label = 'Contact';\n } else if (['start', 'end'].indexOf(f.name) !== -1) {\n if (!f.auto) {\n f.auto = {};\n }\n f.auto[f.name === 'start' ? 'lt' : 'gt'] = {\n against: f.name === 'start' ? 'end' : 'start',\n offset: `${f.name === 'start' ? '-30' : '30'}.minutes`\n };\n }\n break;\n }\n case 'OFFICE365': {\n if (resourceType === 'Events') {\n if (['start', 'end'].indexOf(f.name) !== -1) {\n if (!f.validations) {\n f.validations = { step: 1800 };\n } else {\n f.validations.step = 1800;\n }\n f.default = f.name === 'start' ? 'now' : '30.minutes';\n }\n }\n if (resourceType === 'Tasks' && f.name === 'checklist') {\n f.creatable = false;\n }\n if (f.name === 'description' && resourceType !== 'Tasks') {\n f.type = 'richtext';\n } else if (f.name === 'content') {\n f.type = 'text';\n }\n break;\n }\n case 'SALESFORCE': {\n if (resourceType === 'Task' && f.name === 'WhatId') {\n f.disabled = {\n 'WhoId.type': 'Lead' // eslint-disable-line @typescript-eslint/naming-convention\n };\n }\n if (['Description', 'ParentId'].indexOf(f.name) !== -1) {\n if (!f.visible) {\n f.visible = true;\n }\n }\n if (f.type === 'reference') {\n const references = (f.reference instanceof Array) ? f.reference : [f.reference];\n for (const r of references) {\n if (r && ['Account'].indexOf(r.name) !== -1) { // force creatable\n r.creatable = true;\n r.updatable = true;\n }\n }\n }\n break;\n }\n case 'SUGAR': {\n if (['description', 'parent_id', 'contact_id', 'contacts'].indexOf(f.name) !== -1) {\n if (!f.visible) {\n f.visible = true;\n }\n }\n if (f.type === 'reference') {\n const references = (f.reference instanceof Array) ? f.reference : [f.reference];\n for (const r of references) {\n if (r && ['Accounts', 'Contacts', 'Leads'].indexOf(r.name) !== -1) {\n r.label = r.name.slice(0, -1); // Use singular labels\n r.creatable = true;\n r.updatable = true;\n }\n }\n }\n break;\n }\n case 'ZENDESK': {\n if (resourceType === 'Ticket' && f.name === 'assignee') {\n f.reference.updatable = false;\n }\n break;\n }\n case 'HUBSPOT': {\n if (resourceType === 'LogCall' && f.name === 'body') {\n f.type = 'richtext';\n }\n break;\n }\n case 'NETSUITE': {\n if (f.name === 'company' && !f.auto) {\n f.auto = {\n search: {\n params: {\n contactId: 'contact.id'\n },\n url: '../Contact/${contactId}?expand=company',\n extract: 'company'\n }\n };\n }\n break;\n }\n }\n if (f.type === 'composite' && f.fields) {\n for (const ff of f.fields) {\n fieldFixesByIntegration(ff);\n }\n }\n };\n\n // common fixes for all integrations\n if (metaV3.layout.sections.length) {\n for (const s of (metaV3.layout.sections)) {\n if (!s || !s.fields) {\n break;\n }\n for (const f of s.fields) {\n fieldFixesByIntegration(f);\n }\n }\n }\n\n // Google Gmail children enhancement\n if (integrationCode === 'GOOGLE') {\n if (resourceType === 'Mail') {\n metaV3.layout.editable = false;\n if (!metaV3.layout.children) {\n metaV3.layout.children = [{ // should be included in v3 api\n label: 'Comments',\n name: 'comments',\n reference: {\n resourceType: 'Comment',\n label: 'Comment',\n editable: false\n }\n }];\n }\n } else if (resourceType === 'Task') {\n if (!metaV3.layout.children) {\n metaV3.layout.children = [{\n label: 'Subtasks',\n name: 'subTasks',\n reference: {\n resourceType: 'Subtask',\n label: 'Subtask'\n }\n }];\n }\n } else if (resourceType === 'Comment') {\n metaV3.layout.editable = false;\n }\n } else if (integrationCode === 'ZENDESK') {\n if (resourceType === 'Ticket') {\n if (!metaV3.layout.children) {\n metaV3.layout.children = [{ // Zendesk Ticket children enhancement\n label: 'Comments',\n name: 'comments',\n reference: {\n resourceType: 'Comment',\n label: 'Comment',\n editable: false\n }\n }];\n }\n } else if (resourceType === 'Comment') {\n metaV3.layout.editable = false;\n }\n } else if (integrationCode === 'MSDYNAMICS' && !metaV3.fieldsMap) {\n if (resourceType === 'phonecall') {\n metaV3.fieldsMap = {\n contactables: ['from', 'to'],\n subject: 'subject',\n phoneNumber: 'phonenumber',\n };\n } else if (resourceType === 'contact') {\n metaV3.fieldsMap = {\n phoneNumber: 'telephone1',\n firstName: 'firstname',\n lastName: 'lastname'\n };\n } else if (resourceType === 'account') {\n metaV3.fieldsMap = {\n phoneNumber: 'telephone1',\n displayName: 'name'\n };\n }\n } else if (integrationCode === 'OFFICE365') {\n if (resourceType === 'Conversations') {\n metaV3.layout.editable = false;\n metaV3.layout.children = [{ // children enhancement\n label: 'Comments',\n name: 'comments',\n reference: {\n resourceType: 'Comment',\n label: 'Comment',\n editable: false\n }\n }];\n } else if (resourceType === 'Comment') {\n metaV3.layout.editable = false;\n }\n } else if (integrationCode === 'JOBDIVA') {\n if (resourceType === 'CandidateNote' || resourceType === 'ContactNote') {\n metaV3.layout.editable = false;\n }\n } else if (integrationCode === 'CLIO' && resourceType === 'Contact') {\n metaV3.layout.sections[0].fields.push({\n name: 'custom_field_values',\n type: 'hidden'\n });\n }\n return sortObj(metaV3);\n};\n","/*\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: 2019-11-22 14:57:07\n */\n\nimport { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\n\ninterface HttpClientOptions {\n headers?: HttpHeaders | { [header: string]: string | string[] };\n params?: HttpParams;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetaHttpClient {\n\n constructor(private httpClient: HttpClient) {}\n\n delete(url: string, queryParams = {}) {\n const options = this.prepareOptions(queryParams);\n\n return this.httpClient.delete(`${this.constructUrl(url)}`, options);\n }\n\n get<T>(url: string, queryParams = {}) {\n const options = this.prepareOptions(queryParams);\n return this.httpClient.get<T>(`${this.constructUrl(url)}`, options);\n }\n\n post<T>(url: string, body: any, queryParams = {}) {\n const options = this.prepareOptions(queryParams);\n\n return this.httpClient.post<T>(`${this.constructUrl(url)}`, body, options);\n }\n\n put<T>(url: string, body: any, queryParams = {}) {\n const options = this.prepareOptions(queryParams);\n\n return this.httpClient.put<T>(`${this.constructUrl(url)}`, body, options);\n }\n\n patch<T>(url: string, body: any, queryParams = {}) {\n const options = this.prepareOptions(queryParams);\n\n return this.httpClient.patch<T>(`${this.constructUrl(url)}`, body, options);\n }\n\n private constructUrl(path: string): string {\n return /^http/.test(path) ? path : `${path}`;\n }\n\n private prepareOptions(queryParams: any): HttpClientOptions {\n Object.keys(queryParams).forEach(key => {\n if (queryParams[key] == null || queryParams[key] === '') {\n delete queryParams[key];\n }\n });\n\n const params = new HttpParams({\n fromObject: queryParams\n });\n\n const options: HttpClientOptions = {\n headers: new HttpHeaders({\n Accept: 'application/json' // eslint-disable-line @typescript-eslint/naming-convention\n }),\n params\n };\n\n return options;\n }\n}\n","/*\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-08-10 22:35:31\n */\n\nimport { Injectable } from '@angular/core';\n\nimport { MetaHttpClient } from './metaHttpClient';\n\nconst STORAGE_PARAMS_REGEXES = {\n localStorage: /^localStorage\\.(.*)/,\n sessionStorage: /^sessionStorage\\.(.*)/,\n};\n\nconst INTEGRATION_URL_TEMPLATE =\n '/extensions/v2/accounts/${localStorage.vgis.accountId}/users/${localStorage.vgis.userId}/connectors/${integrationCode}';\nconst RESOURCE_URL_TEMPLATE = INTEGRATION_URL_TEMPLATE + '${parentsPath}/${resourceType}';\nconst NEW_RESOURCE_URL_TEMPLATE = INTEGRATION_URL_TEMPLATE + '${parentsPath}/resources/${resourceType}';\n\nexport class IMetaParentConfig {\n resourceType: string;\n externalId: string;\n parent?: IMetaParentConfig;\n}\nexport class IMetaResourceConfig {\n integrationCode: string;\n resourceType: string;\n externalId?: string;\n parent?: IMetaParentConfig;\n urlTemplate?: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetaResourceService {\n baseIntegrationUrl: string;\n baseResourceUrl: string;\n newResourceUrl: string;\n id: string;\n\n constructor(private httpClient: MetaHttpClient) { }\n\n setConfig(config: IMetaResourceConfig) {\n this.baseIntegrationUrl = INTEGRATION_URL_TEMPLATE.replace(/\\${\\s*([\\w\\.]+)\\s*}/g, (m, value) => {\n for (const storage of Object.keys(STORAGE_PARAMS_REGEXES)) {\n const match = value.match(STORAGE_PARAMS_REGEXES[storage]);\n if (match) {\n return window[storage].getItem(match[1]) || window[storage].getItem(`cti.${match[1]}`);\n }\n }\n return config[value];\n });\n this.baseResourceUrl = RESOURCE_URL_TEMPLATE.replace(/\\${\\s*([\\w\\.]+)\\s*}/g, (m, value) => {\n for (const storage of Object.keys(STORAGE_PARAMS_REGEXES)) {\n const match = value.match(STORAGE_PARAMS_REGEXES[storage]);\n if (match) {\n return window[storage].getItem(match[1]) || window[storage].getItem(`cti.${match[1]}`);\n }\n }\n if (value === 'parentsPath') {\n let parentsPath = '';\n if (config.parent) { // config.parent: { resourceType: '...', id: '...', parent: {...} }\n let rootParent: any = config.parent;\n while (rootParent) {\n parentsPath += `/${rootParent.resourceType || rootParent.type}/${rootParent.externalId || rootParent.id}`;\n rootParent = rootParent.parent;\n }\n }\n return parentsPath;\n } else {\n return config[value];\n }\n });\n this.newResourceUrl = NEW_RESOURCE_URL_TEMPLATE.replace(/\\${\\s*([\\w\\.]+)\\s*}/g, (m, value) => {\n for (const storage of Object.keys(STORAGE_PARAMS_REGEXES)) {\n const match = value.match(STORAGE_PARAMS_REGEXES[storage]);\n if (match) {\n return window[storage].getItem(match[1]);\n }\n }\n if (value === 'parentsPath') {\n let parentsPath = '';\n if (config.parent) { // config.parent: { resourceType: '...', id: '...', parent: {...} }\n let rootParent: any = config.parent;\n while (rootParent) {\n parentsPath += `/${rootParent.resourceType || rootParent.type}/${rootParent.externalId || rootParent.id}`;\n rootParent = rootParent.parent;\n }\n }\n return parentsPath;\n } else {\n return config[value];\n }\n });\n this.id = config.externalId;\n }\n\n new(config: IMetaResourceConfig) {\n const s = new MetaResourceService(this.httpClient);\n s.setConfig(config);\n return s;\n }\n\n searchIntegration(query, scope?: string) {\n let searchUrl = `${this.baseIntegrationUrl}/search?q=${encodeURIComponent(query)}`;\n if (scope) {\n searchUrl += `&scope=${encodeURIComponent(scope)}`;\n }\n return this.httpClient.get(searchUrl);\n }\n\n getMetadata(layoutId?, refresh?) {\n let url = `${this.baseResourceUrl.replace('/v2/', '/v3/')}/metadata`;\n url += `?t=${new Date().getTime()}`;\n if (refresh) {\n url += '&refresh=true';\n }\n if (layoutId) {\n url += `&layoutId=${layoutId}`;\n }\n return this.httpClient.get(url);\n }\n\n getDetails(externalId, extraParams?) {\n let params = 'referenceDetails=true';\n if (extraParams) {\n for (const p in extraParams) {\n if (extraParams[p]) {\n params += `&${p}=${extraParams[p]}`;\n }\n }\n }\n return this.httpClient.get(`${this.baseResourceUrl}/${externalId}?${params}`);\n }\n\n getByPath(path) { // TODO not universal!\n let fullPath = `${this.newResourceUrl}${path}`;\n if (/^..\\//.test(path)) {\n fullPath = `${this.baseIntegrationUrl}${path.substring(2)}`;\n }\n return this.httpClient.get(fullPath);\n }\n\n save(payload) {\n if (this.id) {\n return this.httpClient.put(\n `${this.baseResourceUrl}/${this.id}`,\n payload\n );\n } else {\n return this.httpClient.post(\n `${this.baseResourceUrl}`,\n payload\n );\n }\n }\n}\n","/*\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-05-03 21:31:16\n */\n\n /*\n * Worker messages systems. Every integration may extend the base functionality by registering an integration worker.\n * This service provides single response for the worker message requests as a callback.\n */\nimport { Injectable } from '@angular/core';\n\nimport { MetaContextService } from '../metaContext';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetaMsgService {\n private msgCallbacks: {[state: number]: any} = {}; // message subscribers holder\n private msgListeneres: Array<string> = []; // ensure listener is registerd only once\n constructor(private metaContext: MetaContextService) {\n }\n\n sendMessage(provider: string, msg: any, callback: (response) => void, isLong = false) {\n provider = (provider || '').toUpperCase();\n const providerWorker = this.metaContext.workers[provider];\n if (providerWorker) {\n if (this.msgListeneres.indexOf(provider)) {\n this.msgListeneres.push(provider);\n providerWorker.addEventListener('message', this.workerMsgListener, false); // register a short time listener\n }\n let state; // message unique identifier\n do {\n state = new Date().getTime();\n } while (!!this.msgCallbacks[state]);\n\n this.msgCallbacks[state] = callback; // register message callback\n msg.$state = state;\n providerWorker.postMessage(msg);\n\n setTimeout(() => {\n this.cancelMsgListener(msg.action, state); // give up, worker does not replied on time\n const listenerIndex = this.msgListeneres.indexOf(provider);\n if (listenerIndex !== -1) {\n this.msgListeneres.splice(listenerIndex, 1);\n }\n providerWorker.removeEventListener('message', this.workerMsgListener); // remove listener when done\n }, isLong ? 60000 : 2000);\n } else {\n callback({ action: msg.action, error: `Worker ${provider} is not registered` });\n }\n }\n\n private cancelMsgListener(action, storedState) {\n const storedCallback = this.msgCallbacks[storedState];\n if (storedCallback) {\n storedCallback({ action, error: 'Timeout', state: storedState }); // always reply with something\n }\n delete this.msgCallbacks[storedState];\n }\n\n private workerMsgListener = (msg) => {\n if (msg && msg.data && msg.data.action && msg.data.$state) {\n const state = msg.data.$state;\n const callback = this.msgCallbacks[state]; // original requester callback\n if (callback) {\n delete msg.data.$state;\n callback(msg.data);\n }\n delete this.msgCallbacks[state]; // get rid of the listener callback when done\n }\n this.removeExpiredListeners(); // wipe out the expired listeners if any\n };\n\n private removeExpiredListeners() {\n const now = new Date();\n for (const state in this.msgCallbacks) { // cleanup expired listeners (< 1 min ago);\n if (parseInt(state, 10) < now.setMinutes(now.getMinutes() - 1)) {\n delete this.msgCallbacks[state];\n }\n }\n }\n}\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2023-02-08 12:41:56\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2023-02-08 14:04:46\n */\nconst pad2Digit = (t) => t < 10 ? '0' + t : t;\n\nexport const resourceCardLabel = (r: any) => { // TODO make pipe to ask integration worker for this in abstract\n // eslint-disable-next-line no-underscore-dangle\n if (r._vgis && r._vgis.connector === 'CLIO' && r._vgis.resourceType === 'PhoneCommunicationTimer') {\n const duration = r.quantity || 0; // in seconds\n let durationText = '00:00';\n if (duration > 0) {\n const hours = Math.floor(duration / 3600);\n const minutes = Math.floor((duration % 3600) / 60);\n const seconds = Math.round(duration % 60);\n const checkHours = hours ? pad2Digit(hours) + ':' : '';\n\n durationText = checkHours + pad2Digit(minutes) + ':' + pad2Digit(seconds);\n }\n return `⏱ ${ durationText } | $${ (Math.round(r.price) * 100 ) / 100} | ${ r.non_billable ? 'Non-billable' : 'Billable' }`;\n }\n return r.Subject || r.subject || r.summary || r.title || r.CaseNumber || r.comment || r.body || r.name || r.topic || r.content || '...';\n};\n","/*\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-05-03 21:31:44\n */\n\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetaReferenceService {\n dialogs: Array<any>;\n constructor(\n private router: Router) {\n this.dialogs = [];\n this.router.events.subscribe((e) => {\n if (this.dialogs.length) {\n for (let d = (this.dialogs.length - 1); d >= 0; d--) {\n this.dialogs[d].onComplete();\n }\n }\n });\n }\n\n openDialog(componentRef, metaResource, integrationCode, reference, resource, preview?: boolean, preferResourceType?, theme?: string) {\n const references = !(reference instanceof Array) ? [reference] : reference.filter((r) => r.creatable !== false);\n if (resource && resource.type) {\n if (!references.find((f) => (f.name || f.resourceType) === (resource.resourceType || resource.type))) {\n references.push({\n name: resource.resourceType || resource.type,\n resourceType: resource.resourceType || resource.type,\n label: resource.label || resource.resourceType || resource.type\n });\n }\n }\n\n const modalObservable = new Observable(observer => {\n const refDialog = componentRef.instance;\n refDialog.integrationCode = integrationCode;\n refDialog.reference = references;\n refDialog.resource = resource;\n refDialog.metaResource = metaResource;\n refDialog.edit = !preview;\n refDialog.preferResourceType = preferResourceType;\n refDialog.theme = theme;\n\n const domElem = componentRef.hostView.rootNodes[0] as HTMLElement;\n\n const dialogIndex = this.dialogs.push(refDialog);\n\n if (dialogIndex > 1) {\n const modalPanel: HTMLElement = domElem.querySelector('.Vlt-modal__panel');\n if (modalPanel) {\n modalPanel.style.marginLeft = `${(dialogIndex * 5)}px`;\n modalPanel.style.marginTop = `${(dialogIndex * 10)}px`;\n modalPanel.style.marginBottom = `${((dialogIndex - 1) * 8)}px`;\n }\n }\n\n document.body.appendChild(domElem);\n\n refDialog.onComplete = (result) => {\n if (result) {\n /* eslint-disable no-underscore-dangle */\n if (result._vgis) {\n observer.next({\n id: result._vgis.externalId || result._vgis.id,\n label: result._vgis.label,\n type: result._vgis.resourceType,\n raw: result\n });\n } else {\n console.log('onComplete non VGIS result', result);\n }\n /* eslint-enable no-underscore-dangle */\n } else {\n observer.next();\n }\n observer.complete();\n componentRef.destroy();\n this.dialogs.splice(dialogIndex - 1, 1);\n };\n });\n\n return modalObservable;\n }\n}\n","import { AfterContentChecked, ChangeDetectorRef, Component, ElementRef, Input, OnChanges, OnInit, ViewContainerRef } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { resourceCardLabel } from '../common/utils/resourceCardLabel';\nimport { MetaResourceService } from '../services/metaResource';\nimport { MetaReferenceService } from '../services/metaReference';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { metaDark, metaLight } from '../common/utils/colorThemes';\n\n@Component({\n selector: 'vgip-meta-layout',\n templateUrl: './view.html',\n styleUrls: ['./style.scss']\n})\nexport class MetaLayout implements OnInit, AfterContentChecked, OnChanges {\n @Input() meta: any;\n @Input() resource: any;\n @Input() integration: any;\n @Input() type: any;\n @Input() preview: boolean;\n @Input() theme: string;\n\n optionalFields: any = {};\n optionalFieldsCount: number;\n showAll = false;\n fieldsVisibilityChanged: Subject<string> = new Subject<string>();\n parentForm: HTMLFormElement;\n integrationCode: string;\n resourceType: string;\n childResourceCardLabel = resourceCardLabel;\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private ref: ChangeDetectorRef,\n private el: ElementRef,\n private metaResource: MetaResourceService,\n private referenceService: MetaReferenceService\n ) {\n // console.log('MetaLayout', this.meta);\n\n }\n\n get isPersistedResource() {\n // eslint-disable-next-line no-underscore-dangle\n return this.resource && this.resource._vgis && (this.resource._vgis.externalId || this.resource._vgis.id);\n }\n\n ngOnInit() {\n this.integrationCode = this.meta.integrationCode || this.integration;\n this.resourceType = this.meta.resourceType || this.type;\n this.parentForm = this.el.nativeElement.closest('form');\n this.configureOptionalSections();\n\n this.fieldsVisibilityChanged.pipe(debounceTime(100), distinctUntilChanged()).subscribe((value: any) => {\n this.countOptionalFields();\n });\n setTimeout(() => {\n this.countOptionalFields();\n }, 0);\n\n if (this.parentForm) {\n this.parentForm.addEventListener('change', (e) => {\n setTimeout(() => {\n this.fieldsVisibilityChanged.next(JSON.stringify(this.resource));\n this.countOptionalFields();\n }, 0);\n });\n }\n\n if (this.theme !== 'inherit') {\n this.applyTheme();\n }\n }\n\n ngOnChanges(changes: any) {\n if (changes.meta) {\n this.configureOptionalSections();\n setTimeout(() => {\n this.countOptionalFields();\n }, 0);\n } else if (changes.theme) {\n this.theme = changes.theme.currentValue;\n this.applyTheme();\n }\n }\n\n countOptionalFields() {\n let count = 0;\n const countSectionFields = (s) => {\n for (const f of s.fields || []) {\n if (f.fields && f.fields.length && !f.visible) {\n countSectionFields(f);\n } else {\n if (f.$optional && !f.$hidden) {\n count++;\n }\n }\n }\n };\n for (const s of this.meta.sections) {\n const notOptionalAny = s.fields?.find(f => !f.$optional);\n s.$optional = !notOptionalAny;\n if (!s.visible) {\n countSectionFields(s);\n }\n }\n this.optionalFieldsCount = count;\n }\n\n configureOptionalSections() {\n if (this.meta && this.meta.sections) {\n for (const s of this.meta.sections) {\n Object.defineProperty(s, '$optional', {\n value: true,\n writable: true,\n configurable: true,\n enumerable: false\n });\n }\n }\n }\n\n ngAfterContentChecked() {\n this.ref.detectChanges();\n }\n\n toggleOptionalFields() {\n this.showAll = !this.showAll;\n this.ngAfterContentChecked();\n }\n\n async openChild(childResource, childModel?) {\n const metaRefDialog = await import('../refDialog').then(m => m.MetaRefDialog);\n childResource.reference.parent = this.resource._vgis; // eslint-disable-line no-underscore-dangle\n const refDialogComponent = this.viewContainerRef.createComponent(metaRefDialog);\n this.referenceService.openDialog(\n refDialogComponent, this.metaResource, this.integrationCode, childResource.reference, childModel,\n childModel && (childResource.reference.editable === false) // is preview mode\n ).subscribe((result: any) => {\n if (result && result.raw) {\n if (!this.resource[childResource.name]) {\n this.resource[childResource.name] = [];\n }\n if (childModel) {\n Object.assign(childModel, result.raw);\n } else {\n this.resource[childResource.name].push(result.raw);\n }\n }\n });\n }\n\n private applyTheme() {\n const metaTheme = this.theme === 'dark' ? metaDark : metaLight;\n for (const key of Object.keys(metaTheme.properties)) {\n this.el.nativeElement.style.setProperty(key, metaTheme.properties[key]);\n }\n }\n}\n","<div *ngFor='let section of meta.sections' class='Vlt-section' [ngClass]=\"{ shown: showAll || section.visible || (!meta.oneTimeOptional && !section.$optional) || (meta.oneTimeOptional && !optionalFieldsCount) }\">\n\t<h5 *ngIf='section.label' class=\"Vlt-section__title\">{{section.label}}</h5>\n\t<div style='overflow: visible;' [ngClass]=\"{ 'for-preview': preview }\">\n\t\t<small *ngIf='section.description' class=\"Vlt-form__element__hint\">{{section.description}}</small>\n\t\t<div>\n\t\t\t<ng-container *ngFor='let field of section.fields'>\n\t\t\t\t<vgip-meta-field *ngIf='!field.$hidden && (showAll || section.visible || !field.$optional)' [meta]='field' [parent]='resource' [integrationCode]='integrationCode' [resourceType]='resourceType' [preview]='preview' [ngClass]=\"{ shown: !field.$invisible && (showAll || true) }\" theme='inherit' [attr.data-theme]='theme'></vgip-meta-field>\n\t\t\t</ng-container>\n\t\t</div>\n\t</div>\n</div>\n<div *ngIf='isPersistedResource && meta.children && preview'>\n\t<div *ngFor='let child of meta.children'>\n\t\t<h5 class='Vlt-children__title'>\n\t\t\t<svg class=\"Vlt-icon\"><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-stack\" /></svg>&nbsp;\n\t\t\t{{child.label}} <span class='Vlt-grey'>({{(resource[child.name] || []).length}})</span>\n\t\t</h5>\n\t\t<div *ngFor=\"let c of resource[child.name]\" style='position: relative;'>\n\n\t\t\t<div class=\"Vlt-card Vlt-bg-white\">\n\t\t\t\t<div class=\"Vlt-card__content Vlt-btn-on-hover\">\n\t\t\t\t\t<h5>{{childResourceCardLabel(c)}}</h5>\n\t\t\t\t\t<div style='font-size: 12px; line-height: 16px;'>\n\t\t\t\t\t\tCreated: <span class='Vlt-black'>{{c._vgis.createdDate | date:'mediumDate'}}</span>\n\t\t\t\t\t\tEdited: <span class='Vlt-black'>{{c._vgis.modifiedDate | date:'medium'}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"Vlt-badge Vlt-badge--app Vlt-badge--purple Vlt-badge--small\">{{c._vgis.resourceType}}</div>\n\t\t\t\t\t<div class=\"Vlt-btn-group Vlt-btn-group--hover\">\n\t\t\t\t\t\t<a *ngIf='c._vgis.externalLink' attr.href='{{c._vgis.externalLink}}' target='_blank' rel='noopener' 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\t\t\t<button type='button' (click)='openChild(child, c)' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\"><svg style='margin-left: 0; margin-right: 0;'><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-{{ child.reference.editable ? 'edit' : 'eye-negative' }}\"/></svg></button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<button style='width: 100%; margin-top: 0; max-width: 100%;' type='button' (click)='openChild(child)' class=\"Vlt-btn Vlt-btn--small Vlt-btn--secondary\" [disabled]='child.creatable === false'>\n\t\t\t<svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>{{child.reference.label}}\n\t\t</button>\n\t</div>\n</div>\n<div *ngIf='!(meta.oneTimeOptional && showAll)' [ngClass]='{ centered: !meta.oneTimeOptional }'>\n\t<button *ngIf='!preview && optionalFieldsCount' type='button' (click)='toggleOptionalFields()' class=\"Vlt-btn Vlt-btn--small Vlt-btn--link more-button\" style='margin: 0; margin-bottom: 10px;'>\n\t\t<svg><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-chevron-{{ showAll ? 'up' : 'down' }}\"/></svg>\n\t\t{{ showAll ? 'Hide' : 'Show' }} Optional Fields ({{optionalFieldsCount}})\n\t</button>\n</div>\n","/*\n* @Author: Alexander.Vangelov@vonage.com\n* @Date: 2021-02-11 17:25:09\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2021-02-11 17:33:57\n*/\nimport { Directive, ElementRef, AfterContentInit, Input } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line\n selector: '[vgipMetaFormAutofocus]'\n})\nexport class MetaAutofocusDirective implements AfterContentInit {\n @Input() vgipMetaFormAutofocus: boolean;\n\n constructor(private elementRef: ElementRef) {}\n\n ngAfterContentInit(): void {\n if (this.vgipMetaFormAutofocus) {\n setTimeout(() => {\n const firstInput = this.elementRef.nativeElement.querySelector(\n '.Vlt-form__element:not(.has-value) .main:not(.standalone):not([value])'\n );\n if (firstInput) {\n firstInput.focus();\n }\n }, 300);\n }\n }\n}\n","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { MetaResourceService } from '../services/metaResource';\nimport { metaDark, metaLight } from '../common/utils/colorThemes';\nimport { MetaContextService } from '../services/metaContext';\nimport { MetaMsgService } from '../services/metaMsg';\nimport { metaNormalizer } from '../common/metaNormalizer';\nimport { templateBuilder } from '../common/utils/templateBuilder';\n\n@Component({\n selector: 'vgip-meta-resource',\n templateUrl: './view.html',\n styleUrls: ['./style.scss']\n})\nexport class MetaResource implements OnInit, OnChanges {\n @Input() resource: any;\n @Input() model: any;\n @Input() metaResourceServiceDelegated: MetaResourceService; // cary it from the parent to keep the interceptors\n @Input() theme: string;\n @Input() editMode = true;\n @Output() public done = new EventEmitter();\n\n @ViewChild('resourceForm') public resourceForm: NgForm;\n\n integrationCode: string;\n resourceType: string;\n meta: any;\n service: MetaResourceService;\n currentLayoutId: any;\n formErrors: any;\n fieldsMap: any;\n edit = true;\n busy: boolean;\n metaLoading: boolean;\n generalError: string;\n resourceMenuVisible: boolean;\n contactsSuggestionsDone = false;\n isEditable: boolean;\n isPersistent: boolean;\n\n constructor(\n private ref: ChangeDetectorRef,\n private el: ElementRef,\n private metaResourceService: MetaResourceService,\n private metaContext: MetaContextService,\n private metaMsgService: MetaMsgService\n ) {\n\n }\n\n get niceFields() {\n if (\n !this.resource.niceFields\n && this.resource.meta\n && this.resource.meta.layout\n && this.resource.meta.layout.sections\n ) {\n const extractSectionFields = (s) => {\n for (const f of s.fields) {\n if (f.name) {\n this.resource.niceFields[f.name] = f;\n }\n if (f.fields && f.fields.length) {\n extractSectionFields(f);\n }\n }\n };\n this.resource.niceFields = {};\n for (const s of this.resource.meta.layout.sections) {\n extractSectionFields(s);\n }\n }\n return this.resource.niceFields;\n }\n\n get fieldNames() {\n const names = Object.keys(this.niceFields);\n if (this.resource.meta.layout.children) {\n for (const child of this.resource.meta.layout.children) {\n names.push(child.name);\n }\n }\n return names;\n }\n\n ngOnInit() {\n this.integrationCode = (this.resource.integrationCode || '').toUpperCase();\n this.resourceType = this.resource.resourceType;\n this.service = (this.metaResourceServiceDelegated || this.metaResourceService).new(this.resource);\n if (!this.model) {\n this.model = {};\n }\n if (this.resource.activity && this.resource.ref.editable === false && !this.resource.externalId) {\n this.resource.externalId = 'MISSING_EXTERNAL_ID';\n }\n this.isPersistent = this.resource && this.resource.externalId;\n if (!this.resource.meta) {\n this.loadMetadata(this.resource.layoutId);\n } else {\n // if (this.isPersistent && (!this.isEditable || this.resources[ref.name].meta.layout.children)) {\n // this.edit = false;\n // }\n this.meta = this.resource.meta;\n this.currentLayoutId = this.meta.layout.id;\n this.getDetails();\n this.getFieldsMap();\n }\n if (this.theme !== 'inherit') {\n this.applyTheme();\n }\n }\n\n ngOnChanges(changes: any) {\n if (changes.theme) {\n this.theme = changes.theme.currentValue;\n if (this.theme !== 'inherit') {\n this.applyTheme();\n }\n }\n }\n\n setEditMode() {\n this.edit = true;\n }\n\n loadMetadata(layoutId?, refresh = false) {\n const layoutStoreKey = `vgis.layout_${this.metaContext.vgipUserId}_${this.integrationCode}_${this.resource.resourceType}`;\n if (!layoutId) {\n layoutId = localStorage.getItem(layoutStoreKey);\n }\n this.busy = true;\n setTimeout(() => {\n this.metaLoading = true;\n }, 0);\n delete this.resource.niceFields;\n this.service.getMetadata(layoutId, refresh).subscribe({\n next: (meta: any) => {\n this.currentLayoutId = meta.layout.id;\n if (layoutId !== meta.layout.id && !this.isPersistent) {\n localStorage.removeItem(layoutStoreKey);\n }\n this.meta = metaNormalizer(meta, this.integrationCode, this.resource.resourceType);\n this.isEditable = this.meta.layout && this.meta.layout.editable !== false;\n this.resource.meta = this.meta;\n if (this.isPersistent && (!this.isEditable || this.editMode === false || this.meta.layout.children)) {\n this.edit = false;\n }\n delete this.busy;\n this.getDetails();\n this.getFieldsMap();\n },\n error: (metaError: any) => {\n delete this.busy;\n this.generalError = `Error loading resource metadata (${metaError.statusText})`;\n localStorage.removeItem(layoutStoreKey);\n },\n complete: () => {\n delete this.metaLoading;\n this.forceUiUpdate();\n }\n });\n }\n\n changeLayout() {\n localStorage.setItem(\n `vgis.layout_${this.metaContext.vgipUserId}_${this.integrationCode}_${this.resource.resourceType}`,\n this.currentLayoutId\n );\n this.loadMetadata(this.currentLayoutId);\n }\n\n getDetails() {\n if (this.resource && (this.resource.externalId || this.resource.id)) {\n if (this.resource.parent && this.resource.activity // skip fetch\n && this.meta.layout.editable === false && !this.meta.layout.children\n ) {\n for (const p in this.resource.activity) {\n if (this.resource.activity[p] && this.fieldNames.indexOf(p) !== -1) {\n this.model[p] = this.resource.activity[p];\n }\n }\n } else {\n this.busy = true;\n this.service.getDetails(\n (this.resource.externalId || this.resource.id), {\n eventId: this.resource.eventId !== 'NO_EVENT' ? this.resource.eventId : null, layoutId: this.resource.layoutId\n }\n ).subscribe({\n next: (resource: any) => {\n /* eslint-disable no-underscore-dangle */\n if (resource._vgis) {\n if (resource._vgis.eventId) {\n this.metaContext.vgipEventId = resource._vgis.eventId;\n }\n if (resource.layoutId && resource._vgis.layoutId !== this.currentLayoutId) {\n this.loadMetadata(resource._vgis.layoutId);\n }\n }\n /* eslint-enable no-underscore-dangle */\n for (const p in resource) {\n if (typeof (resource[p] !== 'undefined') && (this.fieldNames.indexOf(p) !== -1 || p === '_vgis')) {\n this.model[p] = resource[p];\n }\n }\n delete this.busy;\n },\n error: (resourceError) => {\n this.generalError = resourceError.error ? resourceError.error.message || resourceError.message : resourceError.message;\n delete this.busy;\n },\n complete: () => {\n this.forceUiUpdate();\n }\n });\n }\n } else {\n if (this.resource.ref && this.resource.ref.activity) { // reuse failed autoactivities data\n for (const p in this.resource.ref.activity) {\n if (this.resource.ref.activity && this.fieldNames.indexOf(p) !== -1) {\n this.model[p] = this.resource.ref.activity[p]; // VGIS-7215 (copy only valid fields)\n }\n }\n }\n this.performAutoFill();\n }\n }\n\n performAutoFill() {\n this.metaMsgService.sendMessage(\n this.integrationCode,\n {\n action: 'autoFill',\n integration: this.integrationCode,\n resourceType: this.resourceType,\n resource: JSON.parse(JSON.stringify(this.model)),\n fields: this.niceFields,\n event: this.metaContext.context,\n profile: this.metaContext.profiles[this.integrationCode]\n },\n (response) => {\n if (!response.error) {\n for (const afp in response.autoFill) {\n if (!this.model[afp]) {\n this.model[afp] = response.autoFill[afp];\n }\n }\n }\n }\n );\n }\n\n getFieldsMap() {\n if (this.meta.fieldsMap) {\n this.fieldsMap = this.meta.fieldsMap;\n this.markContactables();\n this.buildContactsSuggestions();\n if (!this.resource.externalId) {\n this.buildSubjectTemplate();\n this.execTransformer();\n }\n } else {\n this.metaMsgService.sendMessage(\n this.integrationCode,\n { action: 'fieldsMap', integration: this.integrationCode, resourceType: this.resourceType },\n (response) => {\n if (!response.error) {\n this.fieldsMap = response.fieldsMap;\n this.markContactables();\n this.buildContactsSuggestions();\n if (!this.resource.externalId) {\n this.buildSubjectTemplate();\n this.execTransformer();\n }\n } else {\n console.log('No fields map', this.integrationCode, this.resourceType, response.error);\n }\n }\n );\n }\n }\n\n openResourceMenu() {\n this.resourceMenuVisible = true;\n setTimeout(() => {\n document.addEventListener('click', this.onMenuClickout);\n }, 10);\n }\n\n close(result?) {\n this.done.emit(result);\n }\n\n showParsedError(resourceForm, parsedError) {\n this.formErrors = parsedError.message || 'There is a problem with one or more fields';\n if (parsedError.errors && parsedError.errors.length) {\n this.formErrors += ` (${parsedError.errors.map(e => e.message).join(', ')})`;\n for (const pe of parsedError.errors) {\n if (resourceForm.controls[pe.field]) {\n resourceForm.controls[pe.field].setErrors({ invalid: true, custom: pe.message });\n }\n }\n setTimeout(() => {\n const firstInvalid: HTMLInputElement = this.el.nativeElement.querySelector('.Vlt-form__element--error .main:not(.standalone)');\n if (firstInvalid) {\n firstInvalid.focus();\n }\n });\n }\n }\n\n submit(resourceForm) {\n delete this.formErrors;\n resourceForm.form.submitted = true;\n if (resourceForm.valid) {\n this.busy = true;\n if (this.metaContext.vgipEventId) {\n /* eslint-disable no-underscore-dangle */\n if (!this.model._vgis) {\n this.model._vgis = {\n connector: this.integrationCode,\n resourceType: this.resourceType\n };\n }\n this.model._vgis.layoutId = this.currentLayoutId;\n // eslint-disable-next-line max-len\n // this.model._vgis.timeZoneOffsetInMinutes = 0; // we are not providing timezone anymore (as V3), instead the 'time' and 'date' objects are converted so the UTC time/date is correct\n this.model._vgis.eventId = this.metaContext.vgipEventId;\n /* eslint-enable no-underscore-dangle */\n }\n this.service.save(this.model).subscribe((result: any) => {\n this.model = result;\n this.resource.externalId = result._vgis.externalId; // eslint-disable-line no-underscore-dangle\n this.isPersistent = true;\n this.close(result);\n this.edit = false;\n delete this.busy;\n }, (errorResult) => {\n if ((errorResult.status === 422 && errorResult.error && !errorResult.error.errors && errorResult.error.integrationError)\n || (errorResult.error && errorResult.error.errors && errorResult.error.errors.length && !errorResult.error.errors[0].field)\n // backend implemented error parsing but broken VGIS-7366\n ) {\n this.formErrors = 'There is a problem with one or more fields';\n try {\n this.metaMsgService.sendMessage(\n this.integrationCode,\n {\n action: 'parseErrorMessage',\n integrationCode: this.integrationCode,\n resourceType: errorResult.error.resourceType,\n rawError: errorResult.error.integrationError,\n profile: this.metaContext.profiles[this.integrationCode.toUpperCase()]\n },\n (response) => {\n if (response.parsedError) {\n this.showParsedError(resourceForm, response.parsedError);\n } else {\n // eslint-disable-next-line no-underscore-dangle\n console.error('No error parser for', this.integrationCode, errorResult.error.integrationError);\n this.formErrors = errorResult.error;\n }\n }\n );\n } catch (err) {\n console.log('....', err);\n };\n } else if (errorResult.status === 422) {\n this.showParsedError(resourceForm, errorResult.error);\n } else {\n this.formErrors = errorResult.error;\n }\n delete this.busy;\n });\n } else {\n this.formErrors = Object.keys(resourceForm.controls)\n .filter((c) => resourceForm.controls[c].invalid)\n .map((f) => (this.niceFields[f] ? (this.niceFields[f].label || f) : f)).join(', ');\n setTimeout(() => {\n const selector = `form[name=\"${this.resourceType}\"] .Vlt-form__element--error .main:not(.standalone)`;\n const firstInvalid: HTMLInputElement = this.el.nativeElement.querySelector(selector);\n if (firstInvalid) {\n firstInvalid.focus();\n }\n });\n }\n }\n\n clearFormErrors() {\n delete this.formErrors;\n }\n\n private onMenuClickout = () => {\n delete this.resourceMenuVisible;\n document.removeEventListener('click', this.onMenuClickout);\n };\n\n private suggestFieldProperty(key, value) {\n if (key && value) {\n const fieldNames = this.fieldNames;\n if (this.model) {\n const nestMatch = key.match(/(\\S+)\\[\\d\\]\\.(\\S+)/);\n if (nestMatch && fieldNames.indexOf(nestMatch[1]) !== -1) {\n this.model[nestMatch[1]] = [];\n const nestKeys: any = {};\n nestKeys[nestMatch[2]] = value;\n this.model[nestMatch[1]].push(nestKeys);\n } else if (fieldNames.indexOf(key) !== -1) {\n this.model[key] = value;\n }\n }\n }\n }\n\n private execTransformer() {\n if (this.metaContext && this.fieldsMap) {\n setTimeout(() => {\n this.suggestFieldProperty(this.fieldsMap.phoneNumber, this.metaContext.phoneNumber);\n if (this.fieldsMap.firstName || this.fieldsMap.lastName) {\n const names = (this.metaContext.displayName || '').split(' ');\n this.suggestFieldProperty(this.fieldsMap.firstName, names[0]);\n this.suggestFieldProperty(this.fieldsMap.lastName, names[1]);\n } else if (this.fieldsMap.displayName) {\n this.suggestFieldProperty(this.fieldsMap.displayName, this.metaContext.displayName);\n }\n }, 100);\n }\n }\n\n private markContactables() {\n if (this.fieldsMap.contactables && this.fieldsMap.contactables.length) {\n for (const c of this.fieldsMap.contactables) {\n const field = this.niceFields[c];\n if (field) {\n Object.defineProperty(field, '$isContactable', {\n value: true,\n configurable: true,\n enumerable: false\n });\n }\n }\n }\n }\n\n private buildSubjectTemplate() {\n if (!this.model[this.fieldsMap.subject] && this.fieldsMap.subject && this.niceFields[this.fieldsMap.subject]) {\n let subjectTemplate: string;\n if (this.niceFields[this.fieldsMap.subject].default) {\n subjectTemplate = this.niceFields[this.fieldsMap.subject].default.id || this.niceFields[this.fieldsMap.subject].default;\n } else if (this.metaContext.profiles[this.integrationCode]) {\n const profile = this.metaContext.profiles[this.integrationCode] || {};\n subjectTemplate = profile.defaultSubject ?\n profile.defaultSubject[((this.metaContext.context || 'CALL').type || '').toUpperCase()] :\n profile.activityDefaultSubjectTemplate;\n }\n if (subjectTemplate) {\n this.model[this.fieldsMap.subject] = templateBuilder(this.metaContext, subjectTemplate);\n }\n }\n }\n\n private buildContactsSuggestions() {\n // let hasDefaultContact = false;\n if (this.metaContext.contactables[this.integrationCode] && this.meta.layout && this.meta.layout.sections) {\n for (const s of this.meta.layout.sections) {\n for (const f of (s.fields || [])) {\n if (f.type === 'reference') {\n const refTypes = (f.reference.length ? f.reference : [f.reference]).map(r => r.name);\n for (const c of this.metaContext.contactables[this.integrationCode]) {\n if (refTypes.indexOf(c.resourceType || c.type) !== -1) {\n if (!f.suggestions) {\n f.suggestions = [];\n } else {\n f.suggestions = f.suggestions.filter(sg => !sg.auto);\n }\n let tLabel = c.displayName || c.name;\n if (c.phoneNumbers) {\n tLabel += (' ✆' + c.phoneNumbers.map(p => p.phoneNumber).join(','));\n }\n f.suggestions.push({\n id: c.externalId || c.identifier || c.id,\n label: tLabel,\n type: c.resourceType || c.type,\n auto: true\n });\n }\n }\n if ((this.fieldsMap.contactables || []).indexOf(f.name) !== -1) { // evaluate usability?\n f.alwaysVisible = true;\n }\n // if (\n // !hasDefaultContact && this.metaContext.defaultContactables[this.integrationCode]\n // && refTypes.indexOf(this.metaContext.defaultContactables[this.integrationCode].type) !== -1\n // ) {\n // this.resource[f.name] = this.metaContext.defaultContactables[this.integrationCode];\n // hasDefaultContact = true;\n // } else if (!hasDefaultContact && this.fieldsMap.contactables && f.suggestions && f.suggestions.length === 1) {\n // if (this.fieldsMap.contactables.indexOf(f.name) !== -1 && !f.default) {\n // f.default = f.suggestions[0];\n // hasDefaultContact = true;\n // }\n // }\n }\n }\n }\n this.contactsSuggestionsDone = true;\n }\n }\n\n private applyTheme() {\n const metaTheme = this.theme === 'dark' ? metaDark : metaLight;\n console.log('resource apply theme', this.theme);\n for (const key of Object.keys(metaTheme.properties)) {\n this.el.nativeElement.style.setProperty(key, metaTheme.properties[key]);\n }\n }\n\n private forceUiUpdate() { // iOS webview does not update the UI after asyc changes. Temp fix :(\n // this.ref.detectChanges();\n const e = document.createEvent('Events');\n e.initEvent('click', true, false);\n this.el.nativeElement.dispatchEvent(e);\n }\n}\n","<div *ngIf='generalError' class=\"Vlt-callout Vlt-callout--critical\" style='overflow: auto; margin: 20px;'>\n\t<i></i>\n\t<div class=\"Vlt-callout__content\">\n\t\t<p>{{generalError}}</p>\n\t</div>\n</div>\n<div *ngIf='!meta' class=\"Vlt-progress\">\n\t<div class=\"Vlt-progress__bar\" [ngClass]=\"{ loading: metaLoading }\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuetext=\"Loading Metadata\" aria-valuemax=\"100\"></div>\n</div>\n<form [vgipMetaFormAutofocus]='!resource || !resource.externalId' *ngIf='meta && !generalError' #resourceForm=\"ngForm\" [name]='resource.resourceType' (ngSubmit)='submit(resourceForm)' novalidate>\n\t<div class='form-content' style='overflow: hidden;'>\n\t\t<div [ngClass]=\"{ 'Vlt-callout--dismissed': !formErrors }\" class=\"Vlt-callout Vlt-callout--banner Vlt-callout--critical\">\n\t\t\t<i></i>\n\t\t\t<div class=\"Vlt-callout__content\" style=\"margin-top: auto;\">\n\t\t\t\t<p>There is a problem with one or more fields</p>\n\t\t\t\t<small style='font-weight: 600; font-size: 1.0em;' *ngIf='formErrors'>{{ formErrors.message || formErrors }}</small>\n\t\t\t</div>\n\t\t\t<button type='button' class=\"Vlt-callout__dismiss\" (click)='clearFormErrors()' aria-label=\"Dismiss\"></button>\n\t\t</div>\n\t\t<div class=\"Vlt-card__content\" style='min-height: 40px;'>\n\t\t\t<vgip-meta-layout *ngIf='edit' [meta]='meta.layout' [resource]='model' [preview]='false' [integration]='meta.integration' [type]='resource.resourceType' theme='inherit'></vgip-meta-layout>\n\t\t\t<vgip-meta-layout *ngIf='!edit' [meta]='meta.layout' [resource]='model' [preview]='true' [integration]='meta.integration' [type]='resource.resourceType' theme='inherit'></vgip-meta-layout>\n\t\t</div>\n\t</div>\n\t<div class=\"Vlt-card__footer\">\n\t\t<button class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--outline\" type='button' aria-label='Cancel' (click)='close()'>\n\t\t\t{{ edit ? 'Cancel' : 'Close' }}\n\t\t</button>\n\t\t<button *ngIf='edit' class=\"Vlt-btn Vlt-btn--app\" [ngClass]=\"{ 'Vlt-btn--primary': isPersistent, 'Vlt-btn--secondary': !isPersistent }\" type='submit'>\n\t\t\t{{ (resource && resource.externalId) ? 'Update' : 'Create' }}\n\t\t</button>\n\t\t<button (click)='setEditMode()' *ngIf='!edit && isEditable' [disabled]='!isEditable' class=\"Vlt-btn Vlt-btn--app Vlt-btn--primary\" type='button' aria-label='Edit'>\n\t\t\tEdit\n\t\t</button>\n\t\t<div style='margin-right: 8px; flex: 1;'>\n\t\t\t<div *ngIf='meta.availableLayouts && meta.availableLayouts.length' class=\"Vlt-form__element Vlt-form__element--big\" style='padding: 0; margin: -8px -18px -8px 0;'>\n\t\t\t\t<div class=\"Vlt-select\">\n\t\t\t\t\t<label style='all: inherit;'>\n\t\t\t\t\t\t<select style='border: 0; margin-top: 3px; background: transparent;' (change)='changeLayout()' [(ngModel)]='currentLayoutId' [ngModelOptions]='{ standalone: true }' [disabled]='isPersistent'>\n\t\t\t\t\t\t\t<option selected disabled>Select layout</option>\n\t\t\t\t\t\t\t<option *ngFor='let layout of meta.availableLayouts' [ngValue]='layout.id'>{{layout.name}}</option>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\t<label>Layout</label>\n\t\t\t\t\t</label>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"Vlt-dropdown resource-menu\" [ngClass]=\"{ 'Vlt-dropdown--expanded': resourceMenuVisible }\" style='margin-left: 2px;'>\n\t\t\t<div class=\"Vlt-dropdown__panel\" style='bottom: 40px; right: -4px; top: initial;'>\n\t\t\t\t<div class=\"Vlt-dropdown__panel__content\">\n\t\t\t\t\t<a class=\"Vlt-dropdown__link\" (click)='loadMetadata(currentLayoutId, true)'>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<svg class='Vlt-icon Vlt-icon--smaller'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-refresh\"/></svg>&nbsp;&nbsp;Refresh metadata\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"Vlt-dropdown__trigger\">\n\t\t\t\t<button type='button' (click)='openResourceMenu()' class=\"Vlt-btn Vlt-btn--link\" aria-label='Resource menu'>\n\t\t\t\t\t<svg class='Vlt-icon Vlt-icon--small' style='margin: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-more-v-negative\"/></svg>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</form>\n<div class='busy-mask' [ngClass]=\"{ active: busy }\">\n\t<div style='height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center;'>\n\t\t<div class=\"Vlt-spinner\"></div>\n\t</div>\n</div>\n","import { Component, ElementRef, OnInit } from '@angular/core';\nimport { metaDark, metaLight } from '../common/utils/colorThemes';\nimport { MetaResourceService } from '../services/metaResource';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss']\n})\nexport class MetaRefDialog implements OnInit {\n modal: HTMLElement;\n onComplete: (result?) => undefined;\n fullResource: any;\n resources: any = {};\n models: any = {};\n reference: any;\n currentResource: string;\n services: any = {};\n integrationCode: string;\n resource: any;\n metaResource: MetaResourceService;\n integrationIcon: string;\n preferResourceType: string;\n theme: string;\n\n constructor(\n private el: ElementRef\n ) { }\n\n get isEditable() {\n return this.resources[this.currentResource].meta.layout.editable !== false;\n }\n\n get isPersistent() {\n return this.resource && (this.resource.externalId || this.resource.id);\n }\n\n ngOnInit() {\n let references = (this.reference instanceof Array) ? this.reference : [this.reference];\n /* eslint-disable no-underscore-dangle */\n if (this.resource && this.resource._vgis) {\n this.fullResource = this.resource;\n this.resource = this.resource._vgis;\n }\n /* eslint-enable no-underscore-dangle */\n if (this.resource) {\n references = references.filter((r) => {\n const resType = r.name || r.resourceType || '';\n // comparing case insensitive, because of Zendesk comment vs Comment\n return (resType.id || resType || '').toLowerCase() === (this.resource.resourceType || this.resource.type || '').toLowerCase();\n });\n }\n\n for (const ref of references) {\n if (!ref.name) {\n ref.name = ref.resourceType; // when the resource comes from resources API, not from metadata\n }\n if (!this.currentResource) {\n this.currentResource = ref.name;\n }\n if (ref.name === this.preferResourceType) {\n this.currentResource = this.preferResourceType;\n }\n const rs: any = {\n integrationCode: this.integrationCode,\n resourceType: ref.resourceType || ref.name,\n ref\n };\n if (this.resource) {\n rs.externalId = this.resource.id || this.resource.externalId;\n if (this.resource.eventId) {\n rs.eventId = this.resource.eventId;\n }\n if (this.fullResource) {\n rs.activity = this.fullResource;\n }\n if (this.resource.layoutId) {\n rs.layoutId = this.resource.layoutId;\n }\n }\n rs.parent = ref.parent;\n this.resources[ref.name] = rs;\n this.models[ref.name] = {};\n if (this.resource) {\n this.models[ref.name]._vgis = this.resource; // eslint-disable-line no-underscore-dangle\n }\n }\n\n this.modal = this.el.nativeElement.childNodes[0];\n this.modal.classList.remove('Vlt-modal--out');\n this.modal.classList.add('Vlt-modal_visible');\n document.addEventListener('keydown', this.keyEventListener);\n\n if (this.integrationCode === 'mocks') {\n this.integrationIcon = 'Brand-icon-vonage';\n } else {\n switch (this.integrationCode.toLowerCase()) {\n case 'office365':\n this.integrationIcon = 'Brand-icon-office-color';\n break;\n case 'sugar':\n this.integrationIcon = 'Brand-icon-sugarcrm-color';\n break;\n case 'msdynamics':\n this.integrationIcon = 'Brand-icon-dynamics-color';\n break;\n default:\n this.integrationIcon = `Brand-icon-${(this.integrationCode || '').toLowerCase()}-color`;\n }\n }\n\n this.applyTheme();\n }\n\n close() {\n this.modal.classList.remove('Vlt-modal_visible');\n this.modal.classList.add('Vlt-modal--out');\n }\n\n dismiss() {\n this.close();\n this.onComplete(null);\n }\n\n onResourceDone(result) {\n this.close();\n this.onComplete(result);\n }\n\n selectResource(resource) {\n this.currentResource = resource;\n }\n\n keepOrder = (a, b) => a;\n\n private keyEventListener = (event) => {\n if (event && event.key === 'Escape') {\n document.removeEventListener('keydown', this.keyEventListener);\n this.dismiss();\n }\n };\n\n private applyTheme() {\n const metaTheme = this.theme === 'dark' ? metaDark : metaLight;\n for (const key of Object.keys(metaTheme.properties)) {\n this.el.nativeElement.style.setProperty(key, metaTheme.properties[key]);\n }\n }\n}\n","<div class='Vlt-modal Vlt-modal--large'>\n <div class=\"Vlt-modal__panel\">\n <div class=\"Vlt-tabs\">\n <div class='Vlt-tabs__header--background'>\n <div class=\"Vlt-tabs__header Vlt-tabs__header--shadow\">\n <svg class=\"Vlt-icon\" [ngStyle]=\"{fill: integrationIcon === 'Brand-icon-vonage' ? 'var(--vgip-meta-input-color)' : ''}\"><use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\" /></svg>\n <div *ngFor='let r of resources | keyvalue: keepOrder' (click)='selectResource(r.key)' class=\"Vlt-tabs__link\" [ngClass]=\"{ 'Vlt-tabs__link_active': currentResource === r.key}\">\n {{r.key}}\n </div>\n <div class=\"Vlt-modal__dismiss\" (click)=\"dismiss()\">\n <svg class=\"Vlt-icon\"><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\" /></svg>\n </div>\n </div>\n </div>\n <div class=\"Vlt-tabs__content\" style='min-height: 90px;'>\n <ng-container *ngFor='let r of resources | keyvalue: keepOrder'>\n <div *ngIf='currentResource === r.key' class=\"Vlt-tabs__panel Vlt-tabs__panel_active\">\n <vgip-meta-resource [resource]='r.value' [model]='models[r.key]' [metaResourceServiceDelegated]='metaResource' (done)='onResourceDone($event)' theme='inherit' [attr.data-theme]='theme'></vgip-meta-resource>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n"],"names":["i1.MetaHttpClient","i1.MetaContextService","i1","i1.MetaResourceService","i2.MetaReferenceService","i3","i4.MetaField","i2.MetaContextService","i3.MetaMsgService","i4","i5","i6.MetaLayout","i7.MetaAutofocusDirective","i2.MetaResource"],"mappings":"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"}
1
+ {"version":3,"file":"vgip-meta-ui-index-4fcefde0.mjs","sources":["../../../projects/meta-ui/src/lib/common/fieldNormalizer/number.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/options.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/string.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/boolean.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/text.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/datetime.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/reference.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/radio.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/richtext.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/uniqueNameFilter.ts","../../../projects/meta-ui/src/lib/common/fieldNormalizer/index.ts","../../../projects/meta-ui/src/lib/common/metaNormalizer.ts","../../../projects/meta-ui/src/lib/services/metaResource/metaHttpClient.ts","../../../projects/meta-ui/src/lib/services/metaResource/index.ts","../../../projects/meta-ui/src/lib/services/metaMsg/index.ts","../../../projects/meta-ui/src/lib/common/utils/resourceCardLabel.ts","../../../projects/meta-ui/src/lib/services/metaReference/index.ts","../../../projects/meta-ui/src/lib/layout/index.ts","../../../projects/meta-ui/src/lib/layout/view.html","../../../projects/meta-ui/src/lib/common/metaAutofocus.directive.ts","../../../projects/meta-ui/src/lib/resource/index.ts","../../../projects/meta-ui/src/lib/resource/view.html","../../../projects/meta-ui/src/lib/refDialog/index.ts","../../../projects/meta-ui/src/lib/refDialog/view.html"],"sourcesContent":["export const numberFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name\n };\n f.type = field.name ? 'number' : 'missing name';\n return f;\n};\n","export const optionsFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name,\n options: field.options || []\n };\n if (field.dependentPicklist && field.controllerName) {\n const enabled = {};\n enabled[field.controllerName] = true;\n f.enabled = enabled;\n }\n if (field.picklist) {\n for (const o of field.picklist) {\n const opt: any = {\n id: o.name || o.id,\n label: o.label\n };\n if (field.for) {\n opt.for = field.for;\n }\n if (o.validFor && field.controllerName) {\n const validFor = {};\n validFor[field.controllerName] = o.validFor;\n opt.for = validFor;\n }\n f.options.push(opt);\n if (o.defaultValue && !field.default) {\n f.default = opt.id;\n }\n }\n }\n f.type = field.name ? 'select' : 'missing name';\n if (field.type === 'multipicklist') {\n f.multiple = true;\n }\n if (field.reference) {\n f.reference = field.reference;\n }\n if (field.searchUrl || field.searchParams) {\n f.search = {\n url: field.searchUrl,\n params: field.searchParams\n };\n } else if (field.search) {\n f.search = field.search;\n }\n return f;\n};\n","export const stringFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name\n };\n f.type = field.name ? 'string' : 'missing name';\n if (field.subtype) {\n f.subtype = field.subtype;\n }\n if (field.picklist || field.options) {\n f.suggestions = (field.picklist || field.options || []).map((s) => {\n if (s.defaultValue) {\n f.default = s.label || s.name || s.id || s;\n }\n return {\n id: s.id,\n label: s.label,\n name: s.name\n };\n });\n }\n return f;\n};\n","export const booleanFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name\n };\n if (field.subtype) {\n f.subtype = field.subtype;\n }\n f.type = field.name ? 'boolean' : 'missing name';\n return f;\n};\n","/*\n* @Author: Alexander.Vangelov@vonage.com\n* @Date: 2021-03-22 17:09:52\n* @Last Modified by: Alexander.Vangelov@vonage.com\n* @Last Modified time: 2021-03-22 17:09:52\n*/\nexport const textFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name\n };\n f.type = field.name ? 'text' : 'missing name'; \n return f;\n};\n","export const datetimeFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name\n };\n f.type = field.name ? (field.type || '').toLowerCase() : 'missing name';\n return f;\n};\n","export const referenceFieldNormalizer = (field) => {\n const f: any = {\n type: field.name ? 'reference' : 'missing name',\n label: field.label,\n name: field.name\n };\n f.type = field.name ? 'reference' : 'missing name';\n if (field.reference) {\n if (field.reference instanceof Array && field.reference.length === 1) {\n f.reference = field.reference[0];\n } else {\n f.reference = field.reference;\n }\n } else if (field.references) {\n f.references = field.references;\n }\n if (field.acceptNew) {\n f.acceptNew = field.acceptNew;\n }\n if (field.searchLabel) {\n f.searchLabel = field.searchLabel;\n }\n if (field.searchUrl || field.searchParams) {\n f.search = {\n url: field.searchUrl,\n params: field.searchParams\n };\n } else if (field.search) {\n f.search = field.search;\n }\n return f;\n};\n","export const radioFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name,\n options: field.options || []\n };\n f.type = field.name ? 'radio' : 'missing name';\n if (field.picklist) {\n for (const o of field.picklist) {\n const opt: any = {\n id: o.name || o.id,\n label: o.label\n };\n if (field.for) {\n opt.for = field.for;\n }\n if (o.validFor && field.controllerName) {\n const validFor = {};\n validFor[field.controllerName] = o.validFor;\n opt.for = validFor;\n }\n f.options.push(opt);\n if (o.defaultValue && !field.default) {\n f.default = opt.id;\n }\n }\n }\n return f;\n};\n","/*\n * @Author: Alexander.Vangelov@vonage.com \n * @Date: 2019-09-19 17:34:34 \n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2021-03-22 17:11:01\n */\n\n export const richtextFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name\n };\n f.type = field.name ? 'richtext' : 'missing name'; \n return f;\n};\n","/*\n* @Author: Alexander.Vangelov@vonage.com\n* @Date: 2021-03-22 17:09:12\n* @Last Modified by: Alexander.Vangelov@vonage.com\n* @Last Modified time: 2021-03-22 17:09:12\n*/\nexport const uniqueNameFilter = (fields: Array<any>, uniqFieldNames: Array<string>, allowDuplicates = false) => {\n if (fields instanceof Array) {\n return allowDuplicates ? fields : fields.filter((f) => {\n if (f.name) {\n if (uniqFieldNames.indexOf(f.name) !== -1) {\n return false;\n }\n uniqFieldNames.push(f.name);\n }\n return true;\n });\n } else {\n return fields;\n }\n};\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:34:34\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2021-03-22 17:13:53\n */\n\nimport { numberFieldNormalizer } from './number';\nimport { optionsFieldNormalizer } from './options';\nimport { stringFieldNormalizer } from './string';\nimport { booleanFieldNormalizer } from './boolean';\nimport { textFieldNormalizer } from './text';\nimport { datetimeFieldNormalizer } from './datetime';\nimport { referenceFieldNormalizer } from './reference';\nimport { radioFieldNormalizer } from './radio';\nimport { richtextFieldNormalizer } from './richtext';\n\nimport { uniqueNameFilter } from './uniqueNameFilter';\n\nexport const fieldNormalizer = (field: any, uniqFieldNames: Array<string>) => {\n if (!field) {\n return;\n }\n let f: any = {\n validations: {}\n };\n const fieldType = (field.type || '').toLowerCase();\n if (['int', 'integer', 'number', 'double', 'float', 'bigdecimal', 'percent', 'currency'].indexOf(fieldType) !== -1) {\n f = numberFieldNormalizer(field);\n } else if (['picklist', 'select', 'multipicklist', 'options'].indexOf(fieldType) !== -1) {\n f = optionsFieldNormalizer(field);\n } else if (['string', null, undefined, '', 'email', 'phone', 'url', 'combobox'].indexOf(fieldType) !== -1) {\n f = stringFieldNormalizer(field);\n } else if (['bool', 'boolean', 'checkbox', 'switch'].indexOf(fieldType) !== -1) {\n f = booleanFieldNormalizer(field);\n } else if (['text', 'textarea'].indexOf(fieldType) !== -1) {\n f = textFieldNormalizer(field);\n } else if (['richtext'].indexOf(fieldType) !== -1) {\n f = richtextFieldNormalizer(field);\n } else if (['date', 'time', 'datetime', 'datetime-local'].indexOf(fieldType) !== -1) {\n f = datetimeFieldNormalizer(field);\n } else if (['reference', 'references', 'multireference'].indexOf(fieldType) !== -1) {\n f = referenceFieldNormalizer(field);\n } else if (['radio'].indexOf(fieldType) !== -1) {\n f = radioFieldNormalizer(field);\n } else if (fieldType === 'composite') {\n f = {\n type: 'composite',\n label: field.label,\n name: field.name,\n fields: uniqueNameFilter(\n field.fields || field.reference || [],\n uniqFieldNames,\n (typeof(field.name) !== 'undefined')\n ).map((v) => fieldNormalizer(v, uniqFieldNames))\n };\n if (field.subtype) {\n f.subtype = field.subtype;\n }\n } else if (fieldType === 'list') {\n const list = field.list || field.reference;\n f = {\n type: field.name ? 'list' : 'missing name',\n label: field.label,\n name: field.name,\n list: fieldNormalizer(uniqueNameFilter(list, uniqFieldNames), field.name ? [] : uniqFieldNames)\n };\n if (field.selectable) {\n f.selectable = field.selectable;\n }\n if (field.resourceType) {\n f.resourceType = field.resourceType;\n }\n } else if (fieldType === 'hidden') {\n f = {\n name: field.name,\n type: 'hidden'\n };\n } else {\n f = {\n label: field.label,\n name: field.name,\n type: `@v2 ${fieldType}`\n };\n }\n if (field.validations) {\n f.validations = field.validations;\n }\n if (field.auto) {\n f.auto = field.auto;\n }\n if ((field.default || field.defaultValue) && !f.default) {\n const d = field.default || field.defaultValue;\n if (Array.isArray(d)) {\n f.default = [];\n for (const v of d) {\n if (typeof(v) === 'object' && v !== null) {\n const o: any = {\n id: v.id || v.value || v.name || v.label,\n label: v.label || 'N/A'\n };\n if (v.type) {\n o.type = v.type;\n }\n if (!v.type && f.reference && f.reference.name) { // Bullhorn CAND PT bad metadata\n o.type = f.reference.name;\n }\n f.default.push(o);\n } else {\n f.default = v;\n }\n }\n } else if (typeof(d) === 'object' && d !== null) {\n if (field.type === 'boolean' && typeof(d.value) === 'boolean') {\n f.default = d.value;\n } else if (Object.keys(d).length) {\n const id = d.id || d.value || d.name || d.label;\n if (id) {\n f.default = {\n id: d.id || d.value || d.name || d.label,\n label: d.label || 'N/A'\n };\n }\n if (d.type) {\n f.default.type = d.type;\n }\n }\n } else {\n f.default = d;\n }\n }\n if (field.visible || field.alwaysVisible) {\n f.visible = field.visible || field.alwaysVisible;\n }\n if (field.hidden) {\n f.hidden = field.hidden;\n }\n if (field.hint || field.helpText) {\n f.hint = field.hint || field.helpText;\n }\n if (field.valueType) {\n f.valueType = field.valueType;\n }\n if (field.multiple) {\n f.multiple = field.multiple;\n }\n if (field.suggestions && field.suggestions.length) {\n f.suggestions = field.suggestions;\n }\n if (field.updateable === false || field.updatable === false) {\n if (!f.flags) {\n f.flags = { updatable: false };\n } else {\n f.flags.updatable = false;\n }\n }\n if (field.createable === false || field.creatable === false) {\n if (!f.flags) {\n f.flags = { creatable: false };\n } else {\n f.flags.creatable = false;\n }\n }\n if (typeof(field.enabled) !== 'undefined') {\n f.enabled = field.enabled;\n }\n if (typeof(field.disabled) !== 'undefined') {\n f.disabled = field.disabled;\n }\n return f;\n};\n","/*\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: 2023-02-10 09:44:59\n */\n\nimport { fieldNormalizer } from './fieldNormalizer';\nimport { uniqueNameFilter } from './fieldNormalizer/uniqueNameFilter';\n\nconst sortObj = (obj) => {\n if (typeof(obj) !== 'object' || obj === null) {\n return obj;\n }\n\n if (Array.isArray(obj)) {\n return obj.map((e) => sortObj(e)).sort();\n }\n\n return Object.keys(obj).sort().reduce((sorted, k) => {\n sorted[k] = sortObj(obj[k]);\n return sorted;\n }, {});\n};\n\nexport const metaNormalizer = (meta, integration, resourceType) => {\n const uniqFieldNames = [];\n const integrationCode = (integration || '').toUpperCase();\n const metaV3: any = {\n integration,\n resourceType,\n availableLayouts: meta.availableLayouts,\n layout: {\n id: meta.layout.id,\n name: meta.layout.name,\n label: meta.layout.label,\n version: '3.0.0',\n sections: (meta.layout.sections || []).map((s) => {\n const section: any = {\n label: s.label,\n fields: uniqueNameFilter(s.fields || [], uniqFieldNames).map((v) => fieldNormalizer(v, uniqFieldNames)) // VIST-424\n };\n if (s.visible || s.alwaysVisible) {\n section.visible = s.visible || s.alwaysVisible;\n }\n return section;\n })\n }\n };\n if (meta.layout.origLayoutId) {\n metaV3.layout.origLayoutId = meta.layout.origLayoutId;\n }\n if (meta.drafts) {\n metaV3.drafts = meta.drafts;\n }\n if (meta.layout.children) {\n metaV3.layout.children = meta.layout.children;\n }\n\n const fieldFixesByIntegration = (f) => {\n if (f.type === 'boolean' && ((typeof(f.default) !== 'boolean') && f.default && !f.default.value) ) {\n delete f.default;\n } else if (f.type === 'reference') {\n const references = (f.reference instanceof Array) ? f.reference : [f.reference];\n for (const r of references) {\n if (r && r.creatable === false && typeof(r.updatable) === 'undefined') {\n r.updatable = false; // User missing updatable, may be other too\n }\n }\n }\n switch (integrationCode) {\n case 'BULLHORN': {\n if (resourceType === 'Appointment') {\n if (['dateBegin', 'dateEnd'].indexOf(f.name) !== -1) {\n if (!f.validations) {\n f.validations = { step: 1800 };\n } else {\n f.validations.step = 1800;\n }\n f.default = f.name === 'dateBegin' ? 'now' : '30.minutes';\n if (!f.auto) {\n f.auto = {};\n }\n f.auto[f.name === 'dateBegin' ? 'lt' : 'gt'] = {\n against: f.name === 'dateBegin' ? 'dateEnd' : 'dateBegin',\n offset: `${f.name === 'dateBegin' ? '-30' : '30'}.minutes`\n };\n }\n }\n if (f.name === 'comments') {\n if (!f.validations) {\n f.valudations = { required: true };\n } else {\n f.validations.required = true;\n }\n if (resourceType === 'Note') {\n f.type = 'richtext';\n }\n }\n if (f.name === 'address.state') {\n f.creatable = false;\n f.updatable = false;\n }\n break;\n }\n case 'GOOGLE': {\n if (f.name === 'contactId') {\n f.label = 'Contact';\n } else if (['start', 'end'].indexOf(f.name) !== -1) {\n if (!f.auto) {\n f.auto = {};\n }\n f.auto[f.name === 'start' ? 'lt' : 'gt'] = {\n against: f.name === 'start' ? 'end' : 'start',\n offset: `${f.name === 'start' ? '-30' : '30'}.minutes`\n };\n }\n break;\n }\n case 'OFFICE365': {\n if (resourceType === 'Events') {\n if (['start', 'end'].indexOf(f.name) !== -1) {\n if (!f.validations) {\n f.validations = { step: 1800 };\n } else {\n f.validations.step = 1800;\n }\n f.default = f.name === 'start' ? 'now' : '30.minutes';\n }\n }\n if (resourceType === 'Tasks' && f.name === 'checklist') {\n f.creatable = false;\n }\n if (f.name === 'description' && resourceType !== 'Tasks') {\n f.type = 'richtext';\n } else if (f.name === 'content') {\n f.type = 'text';\n }\n break;\n }\n case 'SALESFORCE': {\n if (resourceType === 'Task' && f.name === 'WhatId') {\n f.disabled = {\n 'WhoId.type': 'Lead' // eslint-disable-line @typescript-eslint/naming-convention\n };\n }\n if (['Description', 'ParentId'].indexOf(f.name) !== -1) {\n if (!f.visible) {\n f.visible = true;\n }\n }\n if (f.type === 'reference') {\n const references = (f.reference instanceof Array) ? f.reference : [f.reference];\n for (const r of references) {\n if (r && ['Account'].indexOf(r.name) !== -1) { // force creatable\n r.creatable = true;\n r.updatable = true;\n }\n }\n }\n break;\n }\n case 'SUGAR': {\n if (['description', 'parent_id', 'contact_id', 'contacts'].indexOf(f.name) !== -1) {\n if (!f.visible) {\n f.visible = true;\n }\n }\n if (f.type === 'reference') {\n const references = (f.reference instanceof Array) ? f.reference : [f.reference];\n for (const r of references) {\n if (r && ['Accounts', 'Contacts', 'Leads'].indexOf(r.name) !== -1) {\n r.label = r.name.slice(0, -1); // Use singular labels\n r.creatable = true;\n r.updatable = true;\n }\n }\n }\n break;\n }\n case 'ZENDESK': {\n if (resourceType === 'Ticket' && f.name === 'assignee') {\n f.reference.updatable = false;\n }\n break;\n }\n case 'HUBSPOT': {\n if (resourceType === 'LogCall' && f.name === 'body') {\n f.type = 'richtext';\n }\n break;\n }\n case 'NETSUITE': {\n if (f.name === 'company' && !f.auto) {\n f.auto = {\n search: {\n params: {\n contactId: 'contact.id'\n },\n url: '../Contact/${contactId}?expand=company',\n extract: 'company'\n }\n };\n }\n break;\n }\n }\n if (f.type === 'composite' && f.fields) {\n for (const ff of f.fields) {\n fieldFixesByIntegration(ff);\n }\n }\n };\n\n // common fixes for all integrations\n if (metaV3.layout.sections.length) {\n for (const s of (metaV3.layout.sections)) {\n if (!s || !s.fields) {\n break;\n }\n for (const f of s.fields) {\n fieldFixesByIntegration(f);\n }\n }\n }\n\n // Google Gmail children enhancement\n if (integrationCode === 'GOOGLE') {\n if (resourceType === 'Mail') {\n metaV3.layout.editable = false;\n if (!metaV3.layout.children) {\n metaV3.layout.children = [{ // should be included in v3 api\n label: 'Comments',\n name: 'comments',\n reference: {\n resourceType: 'Comment',\n label: 'Comment',\n editable: false\n }\n }];\n }\n } else if (resourceType === 'Task') {\n if (!metaV3.layout.children) {\n metaV3.layout.children = [{\n label: 'Subtasks',\n name: 'subTasks',\n reference: {\n resourceType: 'Subtask',\n label: 'Subtask'\n }\n }];\n }\n } else if (resourceType === 'Comment') {\n metaV3.layout.editable = false;\n }\n } else if (integrationCode === 'ZENDESK') {\n if (resourceType === 'Ticket') {\n if (!metaV3.layout.children) {\n metaV3.layout.children = [{ // Zendesk Ticket children enhancement\n label: 'Comments',\n name: 'comments',\n reference: {\n resourceType: 'Comment',\n label: 'Comment',\n editable: false\n }\n }];\n }\n } else if (resourceType === 'Comment') {\n metaV3.layout.editable = false;\n }\n } else if (integrationCode === 'MSDYNAMICS' && !metaV3.fieldsMap) {\n if (resourceType === 'phonecall') {\n metaV3.fieldsMap = {\n contactables: ['from', 'to'],\n subject: 'subject',\n phoneNumber: 'phonenumber',\n };\n } else if (resourceType === 'contact') {\n metaV3.fieldsMap = {\n phoneNumber: 'telephone1',\n firstName: 'firstname',\n lastName: 'lastname'\n };\n } else if (resourceType === 'account') {\n metaV3.fieldsMap = {\n phoneNumber: 'telephone1',\n displayName: 'name'\n };\n }\n } else if (integrationCode === 'OFFICE365') {\n if (resourceType === 'Conversations') {\n metaV3.layout.editable = false;\n metaV3.layout.children = [{ // children enhancement\n label: 'Comments',\n name: 'comments',\n reference: {\n resourceType: 'Comment',\n label: 'Comment',\n editable: false\n }\n }];\n } else if (resourceType === 'Comment') {\n metaV3.layout.editable = false;\n }\n } else if (integrationCode === 'JOBDIVA') {\n if (resourceType === 'CandidateNote' || resourceType === 'ContactNote') {\n metaV3.layout.editable = false;\n }\n } else if (integrationCode === 'CLIO' && resourceType === 'Contact') {\n metaV3.layout.sections[0].fields.push({\n name: 'custom_field_values',\n type: 'hidden'\n });\n }\n return sortObj(metaV3);\n};\n","/*\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: 2019-11-22 14:57:07\n */\n\nimport { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\n\ninterface HttpClientOptions {\n headers?: HttpHeaders | { [header: string]: string | string[] };\n params?: HttpParams;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetaHttpClient {\n\n constructor(private httpClient: HttpClient) {}\n\n delete(url: string, queryParams = {}) {\n const options = this.prepareOptions(queryParams);\n\n return this.httpClient.delete(`${this.constructUrl(url)}`, options);\n }\n\n get<T>(url: string, queryParams = {}) {\n const options = this.prepareOptions(queryParams);\n return this.httpClient.get<T>(`${this.constructUrl(url)}`, options);\n }\n\n post<T>(url: string, body: any, queryParams = {}) {\n const options = this.prepareOptions(queryParams);\n\n return this.httpClient.post<T>(`${this.constructUrl(url)}`, body, options);\n }\n\n put<T>(url: string, body: any, queryParams = {}) {\n const options = this.prepareOptions(queryParams);\n\n return this.httpClient.put<T>(`${this.constructUrl(url)}`, body, options);\n }\n\n patch<T>(url: string, body: any, queryParams = {}) {\n const options = this.prepareOptions(queryParams);\n\n return this.httpClient.patch<T>(`${this.constructUrl(url)}`, body, options);\n }\n\n private constructUrl(path: string): string {\n return /^http/.test(path) ? path : `${path}`;\n }\n\n private prepareOptions(queryParams: any): HttpClientOptions {\n Object.keys(queryParams).forEach(key => {\n if (queryParams[key] == null || queryParams[key] === '') {\n delete queryParams[key];\n }\n });\n\n const params = new HttpParams({\n fromObject: queryParams\n });\n\n const options: HttpClientOptions = {\n headers: new HttpHeaders({\n Accept: 'application/json' // eslint-disable-line @typescript-eslint/naming-convention\n }),\n params\n };\n\n return options;\n }\n}\n","/*\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-08-10 22:35:31\n */\n\nimport { Injectable } from '@angular/core';\n\nimport { MetaHttpClient } from './metaHttpClient';\n\nconst STORAGE_PARAMS_REGEXES = {\n localStorage: /^localStorage\\.(.*)/,\n sessionStorage: /^sessionStorage\\.(.*)/,\n};\n\nconst INTEGRATION_URL_TEMPLATE =\n '/extensions/v2/accounts/${localStorage.vgis.accountId}/users/${localStorage.vgis.userId}/connectors/${integrationCode}';\nconst RESOURCE_URL_TEMPLATE = INTEGRATION_URL_TEMPLATE + '${parentsPath}/${resourceType}';\nconst NEW_RESOURCE_URL_TEMPLATE = INTEGRATION_URL_TEMPLATE + '${parentsPath}/resources/${resourceType}';\n\nexport class IMetaParentConfig {\n resourceType: string;\n externalId: string;\n parent?: IMetaParentConfig;\n}\nexport class IMetaResourceConfig {\n integrationCode: string;\n resourceType: string;\n externalId?: string;\n parent?: IMetaParentConfig;\n urlTemplate?: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetaResourceService {\n baseIntegrationUrl: string;\n baseResourceUrl: string;\n newResourceUrl: string;\n id: string;\n\n constructor(private httpClient: MetaHttpClient) { }\n\n setConfig(config: IMetaResourceConfig) {\n this.baseIntegrationUrl = INTEGRATION_URL_TEMPLATE.replace(/\\${\\s*([\\w\\.]+)\\s*}/g, (m, value) => {\n for (const storage of Object.keys(STORAGE_PARAMS_REGEXES)) {\n const match = value.match(STORAGE_PARAMS_REGEXES[storage]);\n if (match) {\n return window[storage].getItem(match[1]) || window[storage].getItem(`cti.${match[1]}`);\n }\n }\n return config[value];\n });\n this.baseResourceUrl = RESOURCE_URL_TEMPLATE.replace(/\\${\\s*([\\w\\.]+)\\s*}/g, (m, value) => {\n for (const storage of Object.keys(STORAGE_PARAMS_REGEXES)) {\n const match = value.match(STORAGE_PARAMS_REGEXES[storage]);\n if (match) {\n return window[storage].getItem(match[1]) || window[storage].getItem(`cti.${match[1]}`);\n }\n }\n if (value === 'parentsPath') {\n let parentsPath = '';\n if (config.parent) { // config.parent: { resourceType: '...', id: '...', parent: {...} }\n let rootParent: any = config.parent;\n while (rootParent) {\n parentsPath += `/${rootParent.resourceType || rootParent.type}/${rootParent.externalId || rootParent.id}`;\n rootParent = rootParent.parent;\n }\n }\n return parentsPath;\n } else {\n return config[value];\n }\n });\n this.newResourceUrl = NEW_RESOURCE_URL_TEMPLATE.replace(/\\${\\s*([\\w\\.]+)\\s*}/g, (m, value) => {\n for (const storage of Object.keys(STORAGE_PARAMS_REGEXES)) {\n const match = value.match(STORAGE_PARAMS_REGEXES[storage]);\n if (match) {\n return window[storage].getItem(match[1]);\n }\n }\n if (value === 'parentsPath') {\n let parentsPath = '';\n if (config.parent) { // config.parent: { resourceType: '...', id: '...', parent: {...} }\n let rootParent: any = config.parent;\n while (rootParent) {\n parentsPath += `/${rootParent.resourceType || rootParent.type}/${rootParent.externalId || rootParent.id}`;\n rootParent = rootParent.parent;\n }\n }\n return parentsPath;\n } else {\n return config[value];\n }\n });\n this.id = config.externalId;\n }\n\n new(config: IMetaResourceConfig) {\n const s = new MetaResourceService(this.httpClient);\n s.setConfig(config);\n return s;\n }\n\n searchIntegration(query, scope?: string) {\n let searchUrl = `${this.baseIntegrationUrl}/search?q=${encodeURIComponent(query)}`;\n if (scope) {\n searchUrl += `&scope=${encodeURIComponent(scope)}`;\n }\n return this.httpClient.get(searchUrl);\n }\n\n getMetadata(layoutId?, refresh?) {\n let url = `${this.baseResourceUrl.replace('/v2/', '/v3/')}/metadata`;\n url += `?t=${new Date().getTime()}`;\n if (refresh) {\n url += '&refresh=true';\n }\n if (layoutId) {\n url += `&layoutId=${layoutId}`;\n }\n return this.httpClient.get(url);\n }\n\n getDetails(externalId, extraParams?) {\n let params = 'referenceDetails=true';\n if (extraParams) {\n for (const p in extraParams) {\n if (extraParams[p]) {\n params += `&${p}=${extraParams[p]}`;\n }\n }\n }\n return this.httpClient.get(`${this.baseResourceUrl}/${externalId}?${params}`);\n }\n\n getByPath(path) { // TODO not universal!\n let fullPath = `${this.newResourceUrl}${path}`;\n if (/^..\\//.test(path)) {\n fullPath = `${this.baseIntegrationUrl}${path.substring(2)}`;\n }\n return this.httpClient.get(fullPath);\n }\n\n save(payload) {\n if (this.id) {\n return this.httpClient.put(\n `${this.baseResourceUrl}/${this.id}`,\n payload\n );\n } else {\n return this.httpClient.post(\n `${this.baseResourceUrl}`,\n payload\n );\n }\n }\n}\n","/*\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-05-03 21:31:16\n */\n\n /*\n * Worker messages systems. Every integration may extend the base functionality by registering an integration worker.\n * This service provides single response for the worker message requests as a callback.\n */\nimport { Injectable } from '@angular/core';\n\nimport { MetaContextService } from '../metaContext';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetaMsgService {\n private msgCallbacks: {[state: number]: any} = {}; // message subscribers holder\n private msgListeneres: Array<string> = []; // ensure listener is registerd only once\n constructor(private metaContext: MetaContextService) {\n }\n\n sendMessage(provider: string, msg: any, callback: (response) => void, isLong = false) {\n provider = (provider || '').toUpperCase();\n const providerWorker = this.metaContext.workers[provider];\n if (providerWorker) {\n if (this.msgListeneres.indexOf(provider)) {\n this.msgListeneres.push(provider);\n providerWorker.addEventListener('message', this.workerMsgListener, false); // register a short time listener\n }\n let state; // message unique identifier\n do {\n state = new Date().getTime();\n } while (!!this.msgCallbacks[state]);\n\n this.msgCallbacks[state] = callback; // register message callback\n msg.$state = state;\n providerWorker.postMessage(msg);\n\n setTimeout(() => {\n this.cancelMsgListener(msg.action, state); // give up, worker does not replied on time\n const listenerIndex = this.msgListeneres.indexOf(provider);\n if (listenerIndex !== -1) {\n this.msgListeneres.splice(listenerIndex, 1);\n }\n providerWorker.removeEventListener('message', this.workerMsgListener); // remove listener when done\n }, isLong ? 60000 : 2000);\n } else {\n callback({ action: msg.action, error: `Worker ${provider} is not registered` });\n }\n }\n\n private cancelMsgListener(action, storedState) {\n const storedCallback = this.msgCallbacks[storedState];\n if (storedCallback) {\n storedCallback({ action, error: 'Timeout', state: storedState }); // always reply with something\n }\n delete this.msgCallbacks[storedState];\n }\n\n private workerMsgListener = (msg) => {\n if (msg && msg.data && msg.data.action && msg.data.$state) {\n const state = msg.data.$state;\n const callback = this.msgCallbacks[state]; // original requester callback\n if (callback) {\n delete msg.data.$state;\n callback(msg.data);\n }\n delete this.msgCallbacks[state]; // get rid of the listener callback when done\n }\n this.removeExpiredListeners(); // wipe out the expired listeners if any\n };\n\n private removeExpiredListeners() {\n const now = new Date();\n for (const state in this.msgCallbacks) { // cleanup expired listeners (< 1 min ago);\n if (parseInt(state, 10) < now.setMinutes(now.getMinutes() - 1)) {\n delete this.msgCallbacks[state];\n }\n }\n }\n}\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2023-02-08 12:41:56\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2023-02-08 14:04:46\n */\nconst pad2Digit = (t) => t < 10 ? '0' + t : t;\n\nexport const resourceCardLabel = (r: any) => { // TODO make pipe to ask integration worker for this in abstract\n // eslint-disable-next-line no-underscore-dangle\n if (r._vgis && r._vgis.connector === 'CLIO' && r._vgis.resourceType === 'PhoneCommunicationTimer') {\n const duration = r.quantity || 0; // in seconds\n let durationText = '00:00';\n if (duration > 0) {\n const hours = Math.floor(duration / 3600);\n const minutes = Math.floor((duration % 3600) / 60);\n const seconds = Math.round(duration % 60);\n const checkHours = hours ? pad2Digit(hours) + ':' : '';\n\n durationText = checkHours + pad2Digit(minutes) + ':' + pad2Digit(seconds);\n }\n return `⏱ ${ durationText } | $${ (Math.round(r.price) * 100 ) / 100} | ${ r.non_billable ? 'Non-billable' : 'Billable' }`;\n }\n return r.Subject || r.subject || r.summary || r.title || r.CaseNumber || r.comment || r.body || r.name || r.topic || r.content || '...';\n};\n","/*\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-05-03 21:31:44\n */\n\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetaReferenceService {\n dialogs: Array<any>;\n constructor(\n private router: Router) {\n this.dialogs = [];\n this.router.events.subscribe((e) => {\n if (this.dialogs.length) {\n for (let d = (this.dialogs.length - 1); d >= 0; d--) {\n this.dialogs[d].onComplete();\n }\n }\n });\n }\n\n openDialog(componentRef, metaResource, integrationCode, reference, resource, preview?: boolean, preferResourceType?, theme?: string) {\n const references = !(reference instanceof Array) ? [reference] : reference.filter((r) => r.creatable !== false);\n if (resource && resource.type) {\n if (!references.find((f) => (f.name || f.resourceType) === (resource.resourceType || resource.type))) {\n references.push({\n name: resource.resourceType || resource.type,\n resourceType: resource.resourceType || resource.type,\n label: resource.label || resource.resourceType || resource.type\n });\n }\n }\n\n const modalObservable = new Observable(observer => {\n const refDialog = componentRef.instance;\n refDialog.integrationCode = integrationCode;\n refDialog.reference = references;\n refDialog.resource = resource;\n refDialog.metaResource = metaResource;\n refDialog.edit = !preview;\n refDialog.preferResourceType = preferResourceType;\n refDialog.theme = theme;\n\n const domElem = componentRef.hostView.rootNodes[0] as HTMLElement;\n\n const dialogIndex = this.dialogs.push(refDialog);\n\n if (dialogIndex > 1) {\n const modalPanel: HTMLElement = domElem.querySelector('.Vlt-modal__panel');\n if (modalPanel) {\n modalPanel.style.marginLeft = `${(dialogIndex * 5)}px`;\n modalPanel.style.marginTop = `${(dialogIndex * 10)}px`;\n modalPanel.style.marginBottom = `${((dialogIndex - 1) * 8)}px`;\n }\n }\n\n document.body.appendChild(domElem);\n\n refDialog.onComplete = (result) => {\n if (result) {\n /* eslint-disable no-underscore-dangle */\n if (result._vgis) {\n observer.next({\n id: result._vgis.externalId || result._vgis.id,\n label: result._vgis.label,\n type: result._vgis.resourceType,\n raw: result\n });\n } else {\n console.log('onComplete non VGIS result', result);\n }\n /* eslint-enable no-underscore-dangle */\n } else {\n observer.next();\n }\n observer.complete();\n componentRef.destroy();\n this.dialogs.splice(dialogIndex - 1, 1);\n };\n });\n\n return modalObservable;\n }\n}\n","import { AfterContentChecked, ChangeDetectorRef, Component, ElementRef, Input, OnChanges, OnInit, ViewContainerRef } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { resourceCardLabel } from '../common/utils/resourceCardLabel';\nimport { MetaResourceService } from '../services/metaResource';\nimport { MetaReferenceService } from '../services/metaReference';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { metaDark, metaLight } from '../common/utils/colorThemes';\n\n@Component({\n selector: 'vgip-meta-layout',\n templateUrl: './view.html',\n styleUrls: ['./style.scss']\n})\nexport class MetaLayout implements OnInit, AfterContentChecked, OnChanges {\n @Input() meta: any;\n @Input() resource: any;\n @Input() integration: any;\n @Input() type: any;\n @Input() preview: boolean;\n @Input() theme: string;\n\n optionalFields: any = {};\n optionalFieldsCount: number;\n showAll = false;\n fieldsVisibilityChanged: Subject<string> = new Subject<string>();\n parentForm: HTMLFormElement;\n integrationCode: string;\n resourceType: string;\n childResourceCardLabel = resourceCardLabel;\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private ref: ChangeDetectorRef,\n private el: ElementRef,\n private metaResource: MetaResourceService,\n private referenceService: MetaReferenceService\n ) {\n // console.log('MetaLayout', this.meta);\n\n }\n\n get isPersistedResource() {\n // eslint-disable-next-line no-underscore-dangle\n return this.resource && this.resource._vgis && (this.resource._vgis.externalId || this.resource._vgis.id);\n }\n\n ngOnInit() {\n this.integrationCode = this.meta.integrationCode || this.integration;\n this.resourceType = this.meta.resourceType || this.type;\n this.parentForm = this.el.nativeElement.closest('form');\n this.configureOptionalSections();\n\n this.fieldsVisibilityChanged.pipe(debounceTime(100), distinctUntilChanged()).subscribe((value: any) => {\n this.countOptionalFields();\n });\n setTimeout(() => {\n this.countOptionalFields();\n }, 0);\n\n if (this.parentForm) {\n this.parentForm.addEventListener('change', (e) => {\n setTimeout(() => {\n this.fieldsVisibilityChanged.next(JSON.stringify(this.resource));\n this.countOptionalFields();\n }, 0);\n });\n }\n\n if (this.theme !== 'inherit') {\n this.applyTheme();\n }\n }\n\n ngOnChanges(changes: any) {\n if (changes.meta) {\n this.configureOptionalSections();\n setTimeout(() => {\n this.countOptionalFields();\n }, 0);\n } else if (changes.theme) {\n this.theme = changes.theme.currentValue;\n this.applyTheme();\n }\n }\n\n countOptionalFields() {\n let count = 0;\n const countSectionFields = (s) => {\n for (const f of s.fields || []) {\n if (f.fields && f.fields.length && !f.visible) {\n countSectionFields(f);\n } else {\n if (f.$optional && !f.$hidden) {\n count++;\n }\n }\n }\n };\n for (const s of this.meta.sections) {\n const notOptionalAny = s.fields?.find(f => !f.$optional);\n s.$optional = !notOptionalAny;\n if (!s.visible) {\n countSectionFields(s);\n }\n }\n this.optionalFieldsCount = count;\n }\n\n configureOptionalSections() {\n if (this.meta && this.meta.sections) {\n for (const s of this.meta.sections) {\n Object.defineProperty(s, '$optional', {\n value: true,\n writable: true,\n configurable: true,\n enumerable: false\n });\n }\n }\n }\n\n ngAfterContentChecked() {\n this.ref.detectChanges();\n }\n\n toggleOptionalFields() {\n this.showAll = !this.showAll;\n this.ngAfterContentChecked();\n }\n\n async openChild(childResource, childModel?) {\n const metaRefDialog = await import('../refDialog').then(m => m.MetaRefDialog);\n childResource.reference.parent = this.resource._vgis; // eslint-disable-line no-underscore-dangle\n const refDialogComponent = this.viewContainerRef.createComponent(metaRefDialog);\n this.referenceService.openDialog(\n refDialogComponent, this.metaResource, this.integrationCode, childResource.reference, childModel,\n childModel && (childResource.reference.editable === false) // is preview mode\n ).subscribe((result: any) => {\n if (result && result.raw) {\n if (!this.resource[childResource.name]) {\n this.resource[childResource.name] = [];\n }\n if (childModel) {\n Object.assign(childModel, result.raw);\n } else {\n this.resource[childResource.name].push(result.raw);\n }\n }\n });\n }\n\n private applyTheme() {\n const metaTheme = this.theme === 'dark' ? metaDark : metaLight;\n for (const key of Object.keys(metaTheme.properties)) {\n this.el.nativeElement.style.setProperty(key, metaTheme.properties[key]);\n }\n }\n}\n","<div *ngFor='let section of meta.sections' class='Vlt-section' [ngClass]=\"{ shown: showAll || section.visible || (!meta.oneTimeOptional && !section.$optional) || (meta.oneTimeOptional && !optionalFieldsCount) }\">\n\t<h5 *ngIf='section.label' class=\"Vlt-section__title\">{{section.label}}</h5>\n\t<div style='overflow: visible;' [ngClass]=\"{ 'for-preview': preview }\">\n\t\t<small *ngIf='section.description' class=\"Vlt-form__element__hint\">{{section.description}}</small>\n\t\t<div>\n\t\t\t<ng-container *ngFor='let field of section.fields'>\n\t\t\t\t<vgip-meta-field *ngIf='!field.$hidden && (showAll || section.visible || !field.$optional)' [meta]='field' [parent]='resource' [integrationCode]='integrationCode' [resourceType]='resourceType' [preview]='preview' [ngClass]=\"{ shown: !field.$invisible && (showAll || true) }\" theme='inherit' [attr.data-theme]='theme'></vgip-meta-field>\n\t\t\t</ng-container>\n\t\t</div>\n\t</div>\n</div>\n<div *ngIf='isPersistedResource && meta.children && preview'>\n\t<div *ngFor='let child of meta.children'>\n\t\t<h5 class='Vlt-children__title'>\n\t\t\t<svg class=\"Vlt-icon\"><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-stack\" /></svg>&nbsp;\n\t\t\t{{child.label}} <span class='Vlt-grey'>({{(resource[child.name] || []).length}})</span>\n\t\t</h5>\n\t\t<div *ngFor=\"let c of resource[child.name]\" style='position: relative;'>\n\n\t\t\t<div class=\"Vlt-card Vlt-bg-white\">\n\t\t\t\t<div class=\"Vlt-card__content Vlt-btn-on-hover\">\n\t\t\t\t\t<h5>{{childResourceCardLabel(c)}}</h5>\n\t\t\t\t\t<div style='font-size: 12px; line-height: 16px;'>\n\t\t\t\t\t\tCreated: <span class='Vlt-black'>{{c._vgis.createdDate | date:'mediumDate'}}</span>\n\t\t\t\t\t\tEdited: <span class='Vlt-black'>{{c._vgis.modifiedDate | date:'medium'}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"Vlt-badge Vlt-badge--app Vlt-badge--purple Vlt-badge--small\">{{c._vgis.resourceType}}</div>\n\t\t\t\t\t<div class=\"Vlt-btn-group Vlt-btn-group--hover\">\n\t\t\t\t\t\t<a *ngIf='c._vgis.externalLink' attr.href='{{c._vgis.externalLink}}' target='_blank' rel='noopener' 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\t\t\t<button type='button' (click)='openChild(child, c)' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\"><svg style='margin-left: 0; margin-right: 0;'><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-{{ child.reference.editable ? 'edit' : 'eye-negative' }}\"/></svg></button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<button style='width: 100%; margin-top: 0; max-width: 100%;' type='button' (click)='openChild(child)' class=\"Vlt-btn Vlt-btn--small Vlt-btn--secondary\" [disabled]='child.creatable === false'>\n\t\t\t<svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>{{child.reference.label}}\n\t\t</button>\n\t</div>\n</div>\n<div *ngIf='!(meta.oneTimeOptional && showAll)' [ngClass]='{ centered: !meta.oneTimeOptional }'>\n\t<button *ngIf='!preview && optionalFieldsCount' type='button' (click)='toggleOptionalFields()' class=\"Vlt-btn Vlt-btn--small Vlt-btn--link more-button\" style='margin: 0; margin-bottom: 10px;'>\n\t\t<svg><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-chevron-{{ showAll ? 'up' : 'down' }}\"/></svg>\n\t\t{{ showAll ? 'Hide' : 'Show' }} Optional Fields ({{optionalFieldsCount}})\n\t</button>\n</div>\n","/*\n* @Author: Alexander.Vangelov@vonage.com\n* @Date: 2021-02-11 17:25:09\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2021-02-11 17:33:57\n*/\nimport { Directive, ElementRef, AfterContentInit, Input } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line\n selector: '[vgipMetaFormAutofocus]'\n})\nexport class MetaAutofocusDirective implements AfterContentInit {\n @Input() vgipMetaFormAutofocus: boolean;\n\n constructor(private elementRef: ElementRef) {}\n\n ngAfterContentInit(): void {\n if (this.vgipMetaFormAutofocus) {\n setTimeout(() => {\n const firstInput = this.elementRef.nativeElement.querySelector(\n '.Vlt-form__element:not(.has-value) .main:not(.standalone):not([value])'\n );\n if (firstInput) {\n firstInput.focus();\n }\n }, 300);\n }\n }\n}\n","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { MetaResourceService } from '../services/metaResource';\nimport { metaDark, metaLight } from '../common/utils/colorThemes';\nimport { MetaContextService } from '../services/metaContext';\nimport { MetaMsgService } from '../services/metaMsg';\nimport { metaNormalizer } from '../common/metaNormalizer';\nimport { templateBuilder } from '../common/utils/templateBuilder';\n\n@Component({\n selector: 'vgip-meta-resource',\n templateUrl: './view.html',\n styleUrls: ['./style.scss']\n})\nexport class MetaResource implements OnInit, OnChanges {\n @Input() resource: any;\n @Input() model: any;\n @Input() metaResourceServiceDelegated: MetaResourceService; // cary it from the parent to keep the interceptors\n @Input() theme: string;\n @Input() editMode = true;\n @Output() public done = new EventEmitter();\n\n @ViewChild('resourceForm') public resourceForm: NgForm;\n\n integrationCode: string;\n resourceType: string;\n meta: any;\n service: MetaResourceService;\n currentLayoutId: any;\n formErrors: any;\n fieldsMap: any;\n edit = true;\n busy: boolean;\n metaLoading: boolean;\n generalError: string;\n resourceMenuVisible: boolean;\n contactsSuggestionsDone = false;\n isEditable: boolean;\n isPersistent: boolean;\n\n constructor(\n private ref: ChangeDetectorRef,\n private el: ElementRef,\n private metaResourceService: MetaResourceService,\n private metaContext: MetaContextService,\n private metaMsgService: MetaMsgService\n ) {\n\n }\n\n get niceFields() {\n if (\n !this.resource.niceFields\n && this.resource.meta\n && this.resource.meta.layout\n && this.resource.meta.layout.sections\n ) {\n const extractSectionFields = (s) => {\n for (const f of s.fields) {\n if (f.name) {\n this.resource.niceFields[f.name] = f;\n }\n if (f.fields && f.fields.length) {\n extractSectionFields(f);\n }\n }\n };\n this.resource.niceFields = {};\n for (const s of this.resource.meta.layout.sections) {\n extractSectionFields(s);\n }\n }\n return this.resource.niceFields;\n }\n\n get fieldNames() {\n const names = Object.keys(this.niceFields);\n if (this.resource.meta.layout.children) {\n for (const child of this.resource.meta.layout.children) {\n names.push(child.name);\n }\n }\n return names;\n }\n\n ngOnInit() {\n this.integrationCode = (this.resource.integrationCode || '').toUpperCase();\n this.resourceType = this.resource.resourceType;\n this.service = (this.metaResourceServiceDelegated || this.metaResourceService).new(this.resource);\n if (!this.model) {\n this.model = {};\n }\n if (this.resource.activity && this.resource.ref.editable === false && !this.resource.externalId) {\n this.resource.externalId = 'MISSING_EXTERNAL_ID';\n }\n this.isPersistent = this.resource && this.resource.externalId;\n if (!this.resource.meta) {\n this.loadMetadata(this.resource.layoutId);\n } else {\n // if (this.isPersistent && (!this.isEditable || this.resources[ref.name].meta.layout.children)) {\n // this.edit = false;\n // }\n this.meta = this.resource.meta;\n this.currentLayoutId = this.meta.layout.id;\n this.getDetails();\n this.getFieldsMap();\n }\n if (this.theme !== 'inherit') {\n this.applyTheme();\n }\n }\n\n ngOnChanges(changes: any) {\n if (changes.theme) {\n this.theme = changes.theme.currentValue;\n if (this.theme !== 'inherit') {\n this.applyTheme();\n }\n }\n }\n\n setEditMode() {\n this.edit = true;\n }\n\n loadMetadata(layoutId?, refresh = false) {\n const layoutStoreKey = `vgis.layout_${this.metaContext.vgipUserId}_${this.integrationCode}_${this.resource.resourceType}`;\n if (!layoutId) {\n layoutId = localStorage.getItem(layoutStoreKey);\n }\n this.busy = true;\n setTimeout(() => {\n this.metaLoading = true;\n }, 0);\n delete this.resource.niceFields;\n this.service.getMetadata(layoutId, refresh).subscribe({\n next: (meta: any) => {\n this.currentLayoutId = meta.layout.id;\n if (layoutId !== meta.layout.id && !this.isPersistent) {\n localStorage.removeItem(layoutStoreKey);\n }\n this.meta = metaNormalizer(meta, this.integrationCode, this.resource.resourceType);\n this.isEditable = this.meta.layout && this.meta.layout.editable !== false;\n this.resource.meta = this.meta;\n if (this.isPersistent && (!this.isEditable || this.editMode === false || this.meta.layout.children)) {\n this.edit = false;\n }\n delete this.busy;\n this.getDetails();\n this.getFieldsMap();\n },\n error: (metaError: any) => {\n delete this.busy;\n this.generalError = `Error loading resource metadata (${metaError.statusText})`;\n localStorage.removeItem(layoutStoreKey);\n },\n complete: () => {\n delete this.metaLoading;\n this.forceUiUpdate();\n }\n });\n }\n\n changeLayout() {\n localStorage.setItem(\n `vgis.layout_${this.metaContext.vgipUserId}_${this.integrationCode}_${this.resource.resourceType}`,\n this.currentLayoutId\n );\n this.loadMetadata(this.currentLayoutId);\n }\n\n getDetails() {\n if (this.resource && (this.resource.externalId || this.resource.id)) {\n if (this.resource.parent && this.resource.activity // skip fetch\n && this.meta.layout.editable === false && !this.meta.layout.children\n ) {\n for (const p in this.resource.activity) {\n if (this.resource.activity[p] && this.fieldNames.indexOf(p) !== -1) {\n this.model[p] = this.resource.activity[p];\n }\n }\n } else {\n this.busy = true;\n this.service.getDetails(\n (this.resource.externalId || this.resource.id), {\n eventId: this.resource.eventId !== 'NO_EVENT' ? this.resource.eventId : null, layoutId: this.resource.layoutId\n }\n ).subscribe({\n next: (resource: any) => {\n /* eslint-disable no-underscore-dangle */\n if (resource._vgis) {\n if (resource._vgis.eventId) {\n this.metaContext.vgipEventId = resource._vgis.eventId;\n }\n if (resource.layoutId && resource._vgis.layoutId !== this.currentLayoutId) {\n this.loadMetadata(resource._vgis.layoutId);\n }\n }\n /* eslint-enable no-underscore-dangle */\n for (const p in resource) {\n if (typeof (resource[p] !== 'undefined') && (this.fieldNames.indexOf(p) !== -1 || p === '_vgis')) {\n this.model[p] = resource[p];\n }\n }\n delete this.busy;\n },\n error: (resourceError) => {\n this.generalError = resourceError.error ? resourceError.error.message || resourceError.message : resourceError.message;\n delete this.busy;\n },\n complete: () => {\n this.forceUiUpdate();\n }\n });\n }\n } else {\n if (this.resource.ref && this.resource.ref.activity) { // reuse failed autoactivities data\n for (const p in this.resource.ref.activity) {\n if (this.resource.ref.activity && this.fieldNames.indexOf(p) !== -1) {\n this.model[p] = this.resource.ref.activity[p]; // VGIS-7215 (copy only valid fields)\n }\n }\n }\n this.performAutoFill();\n }\n }\n\n performAutoFill() {\n this.metaMsgService.sendMessage(\n this.integrationCode,\n {\n action: 'autoFill',\n integration: this.integrationCode,\n resourceType: this.resourceType,\n resource: JSON.parse(JSON.stringify(this.model)),\n fields: this.niceFields,\n event: this.metaContext.context,\n profile: this.metaContext.profiles[this.integrationCode]\n },\n (response) => {\n if (!response.error) {\n for (const afp in response.autoFill) {\n if (!this.model[afp]) {\n this.model[afp] = response.autoFill[afp];\n }\n }\n }\n }\n );\n }\n\n getFieldsMap() {\n if (this.meta.fieldsMap) {\n this.fieldsMap = this.meta.fieldsMap;\n this.markContactables();\n this.buildContactsSuggestions();\n if (!this.resource.externalId) {\n this.buildSubjectTemplate();\n this.execTransformer();\n }\n } else {\n this.metaMsgService.sendMessage(\n this.integrationCode,\n { action: 'fieldsMap', integration: this.integrationCode, resourceType: this.resourceType },\n (response) => {\n if (!response.error) {\n this.fieldsMap = response.fieldsMap;\n this.markContactables();\n this.buildContactsSuggestions();\n if (!this.resource.externalId) {\n this.buildSubjectTemplate();\n this.execTransformer();\n }\n } else {\n console.log('No fields map', this.integrationCode, this.resourceType, response.error);\n }\n }\n );\n }\n }\n\n openResourceMenu() {\n this.resourceMenuVisible = true;\n setTimeout(() => {\n document.addEventListener('click', this.onMenuClickout);\n }, 10);\n }\n\n close(result?) {\n this.done.emit(result);\n }\n\n showParsedError(resourceForm, parsedError) {\n this.formErrors = parsedError.message || 'There is a problem with one or more fields';\n if (parsedError.errors && parsedError.errors.length) {\n this.formErrors += ` (${parsedError.errors.map(e => e.message).join(', ')})`;\n for (const pe of parsedError.errors) {\n if (resourceForm.controls[pe.field]) {\n resourceForm.controls[pe.field].setErrors({ invalid: true, custom: pe.message });\n }\n }\n setTimeout(() => {\n const firstInvalid: HTMLInputElement = this.el.nativeElement.querySelector('.Vlt-form__element--error .main:not(.standalone)');\n if (firstInvalid) {\n firstInvalid.focus();\n }\n });\n }\n }\n\n submit(resourceForm) {\n delete this.formErrors;\n resourceForm.form.submitted = true;\n if (resourceForm.valid) {\n this.busy = true;\n if (this.metaContext.vgipEventId) {\n /* eslint-disable no-underscore-dangle */\n if (!this.model._vgis) {\n this.model._vgis = {\n connector: this.integrationCode,\n resourceType: this.resourceType\n };\n }\n this.model._vgis.layoutId = this.currentLayoutId;\n // eslint-disable-next-line max-len\n // this.model._vgis.timeZoneOffsetInMinutes = 0; // we are not providing timezone anymore (as V3), instead the 'time' and 'date' objects are converted so the UTC time/date is correct\n this.model._vgis.eventId = this.metaContext.vgipEventId;\n /* eslint-enable no-underscore-dangle */\n }\n this.service.save(this.model).subscribe((result: any) => {\n this.model = result;\n this.resource.externalId = result._vgis.externalId; // eslint-disable-line no-underscore-dangle\n this.isPersistent = true;\n this.close(result);\n this.edit = false;\n delete this.busy;\n }, (errorResult) => {\n if ((errorResult.status === 422 && errorResult.error && !errorResult.error.errors && errorResult.error.integrationError)\n || (errorResult.error && errorResult.error.errors && errorResult.error.errors.length && !errorResult.error.errors[0].field)\n // backend implemented error parsing but broken VGIS-7366\n ) {\n this.formErrors = 'There is a problem with one or more fields';\n try {\n this.metaMsgService.sendMessage(\n this.integrationCode,\n {\n action: 'parseErrorMessage',\n integrationCode: this.integrationCode,\n resourceType: errorResult.error.resourceType,\n rawError: errorResult.error.integrationError,\n profile: this.metaContext.profiles[this.integrationCode.toUpperCase()]\n },\n (response) => {\n if (response.parsedError) {\n this.showParsedError(resourceForm, response.parsedError);\n } else {\n // eslint-disable-next-line no-underscore-dangle\n console.error('No error parser for', this.integrationCode, errorResult.error.integrationError);\n this.formErrors = errorResult.error;\n }\n }\n );\n } catch (err) {\n console.log('....', err);\n };\n } else if (errorResult.status === 422) {\n this.showParsedError(resourceForm, errorResult.error);\n } else {\n this.formErrors = errorResult.error;\n }\n delete this.busy;\n });\n } else {\n this.formErrors = Object.keys(resourceForm.controls)\n .filter((c) => resourceForm.controls[c].invalid)\n .map((f) => (this.niceFields[f] ? (this.niceFields[f].label || f) : f)).join(', ');\n setTimeout(() => {\n const selector = `form[name=\"${this.resourceType}\"] .Vlt-form__element--error .main:not(.standalone)`;\n const firstInvalid: HTMLInputElement = this.el.nativeElement.querySelector(selector);\n if (firstInvalid) {\n firstInvalid.focus();\n }\n });\n }\n }\n\n clearFormErrors() {\n delete this.formErrors;\n }\n\n private onMenuClickout = () => {\n delete this.resourceMenuVisible;\n document.removeEventListener('click', this.onMenuClickout);\n };\n\n private suggestFieldProperty(key, value) {\n if (key && value) {\n const fieldNames = this.fieldNames;\n if (this.model) {\n const nestMatch = key.match(/(\\S+)\\[\\d\\]\\.(\\S+)/);\n if (nestMatch && fieldNames.indexOf(nestMatch[1]) !== -1) {\n this.model[nestMatch[1]] = [];\n const nestKeys: any = {};\n nestKeys[nestMatch[2]] = value;\n this.model[nestMatch[1]].push(nestKeys);\n } else if (fieldNames.indexOf(key) !== -1) {\n this.model[key] = value;\n }\n }\n }\n }\n\n private execTransformer() {\n if (this.metaContext && this.fieldsMap) {\n setTimeout(() => {\n this.suggestFieldProperty(this.fieldsMap.phoneNumber, this.metaContext.phoneNumber);\n if (this.fieldsMap.firstName || this.fieldsMap.lastName) {\n const names = (this.metaContext.displayName || '').split(' ');\n this.suggestFieldProperty(this.fieldsMap.firstName, names[0]);\n this.suggestFieldProperty(this.fieldsMap.lastName, names[1]);\n } else if (this.fieldsMap.displayName) {\n this.suggestFieldProperty(this.fieldsMap.displayName, this.metaContext.displayName);\n }\n }, 100);\n }\n }\n\n private markContactables() {\n if (this.fieldsMap.contactables && this.fieldsMap.contactables.length) {\n for (const c of this.fieldsMap.contactables) {\n const field = this.niceFields[c];\n if (field) {\n Object.defineProperty(field, '$isContactable', {\n value: true,\n configurable: true,\n enumerable: false\n });\n }\n }\n }\n }\n\n private buildSubjectTemplate() {\n if (!this.model[this.fieldsMap.subject] && this.fieldsMap.subject && this.niceFields[this.fieldsMap.subject]) {\n let subjectTemplate: string;\n if (this.niceFields[this.fieldsMap.subject].default) {\n subjectTemplate = this.niceFields[this.fieldsMap.subject].default.id || this.niceFields[this.fieldsMap.subject].default;\n } else if (this.metaContext.profiles[this.integrationCode]) {\n const profile = this.metaContext.profiles[this.integrationCode] || {};\n subjectTemplate = profile.defaultSubject ?\n profile.defaultSubject[((this.metaContext.context || 'CALL').type || '').toUpperCase()] :\n profile.activityDefaultSubjectTemplate;\n }\n if (subjectTemplate) {\n this.model[this.fieldsMap.subject] = templateBuilder(this.metaContext, subjectTemplate);\n }\n }\n }\n\n private buildContactsSuggestions() {\n // let hasDefaultContact = false;\n if (this.metaContext.contactables[this.integrationCode] && this.meta.layout && this.meta.layout.sections) {\n for (const s of this.meta.layout.sections) {\n for (const f of (s.fields || [])) {\n if (f.type === 'reference') {\n const refTypes = (f.reference.length ? f.reference : [f.reference]).map(r => r.name);\n for (const c of this.metaContext.contactables[this.integrationCode]) {\n if (refTypes.indexOf(c.resourceType || c.type) !== -1) {\n if (!f.suggestions) {\n f.suggestions = [];\n } else {\n f.suggestions = f.suggestions.filter(sg => !sg.auto);\n }\n let tLabel = c.displayName || c.name;\n if (c.phoneNumbers) {\n tLabel += (' ✆' + c.phoneNumbers.map(p => p.phoneNumber).join(','));\n }\n f.suggestions.push({\n id: c.externalId || c.identifier || c.id,\n label: tLabel,\n type: c.resourceType || c.type,\n auto: true\n });\n }\n }\n if ((this.fieldsMap.contactables || []).indexOf(f.name) !== -1) { // evaluate usability?\n f.alwaysVisible = true;\n }\n // if (\n // !hasDefaultContact && this.metaContext.defaultContactables[this.integrationCode]\n // && refTypes.indexOf(this.metaContext.defaultContactables[this.integrationCode].type) !== -1\n // ) {\n // this.resource[f.name] = this.metaContext.defaultContactables[this.integrationCode];\n // hasDefaultContact = true;\n // } else if (!hasDefaultContact && this.fieldsMap.contactables && f.suggestions && f.suggestions.length === 1) {\n // if (this.fieldsMap.contactables.indexOf(f.name) !== -1 && !f.default) {\n // f.default = f.suggestions[0];\n // hasDefaultContact = true;\n // }\n // }\n }\n }\n }\n this.contactsSuggestionsDone = true;\n }\n }\n\n private applyTheme() {\n const metaTheme = this.theme === 'dark' ? metaDark : metaLight;\n console.log('resource apply theme', this.theme);\n for (const key of Object.keys(metaTheme.properties)) {\n this.el.nativeElement.style.setProperty(key, metaTheme.properties[key]);\n }\n }\n\n private forceUiUpdate() { // iOS webview does not update the UI after asyc changes. Temp fix :(\n // this.ref.detectChanges();\n const e = document.createEvent('Events');\n e.initEvent('click', true, false);\n this.el.nativeElement.dispatchEvent(e);\n }\n}\n","<div *ngIf='generalError' class=\"Vlt-callout Vlt-callout--critical\" style='overflow: auto; margin: 20px;'>\n\t<i></i>\n\t<div class=\"Vlt-callout__content\">\n\t\t<p>{{generalError}}</p>\n\t</div>\n</div>\n<div *ngIf='!meta' class=\"Vlt-progress\">\n\t<div class=\"Vlt-progress__bar\" [ngClass]=\"{ loading: metaLoading }\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuetext=\"Loading Metadata\" aria-valuemax=\"100\"></div>\n</div>\n<form [vgipMetaFormAutofocus]='!resource || !resource.externalId' *ngIf='meta && !generalError' #resourceForm=\"ngForm\" [name]='resource.resourceType' (ngSubmit)='submit(resourceForm)' novalidate>\n\t<div class='form-content' style='overflow: hidden;'>\n\t\t<div [ngClass]=\"{ 'Vlt-callout--dismissed': !formErrors }\" class=\"Vlt-callout Vlt-callout--banner Vlt-callout--critical\">\n\t\t\t<i></i>\n\t\t\t<div class=\"Vlt-callout__content\" style=\"margin-top: auto;\">\n\t\t\t\t<p>There is a problem with one or more fields</p>\n\t\t\t\t<small style='font-weight: 600; font-size: 1.0em;' *ngIf='formErrors'>{{ formErrors.message || formErrors }}</small>\n\t\t\t</div>\n\t\t\t<button type='button' class=\"Vlt-callout__dismiss\" (click)='clearFormErrors()' aria-label=\"Dismiss\"></button>\n\t\t</div>\n\t\t<div class=\"Vlt-card__content\" style='min-height: 40px;'>\n\t\t\t<vgip-meta-layout *ngIf='edit' [meta]='meta.layout' [resource]='model' [preview]='false' [integration]='meta.integration' [type]='resource.resourceType' theme='inherit'></vgip-meta-layout>\n\t\t\t<vgip-meta-layout *ngIf='!edit' [meta]='meta.layout' [resource]='model' [preview]='true' [integration]='meta.integration' [type]='resource.resourceType' theme='inherit'></vgip-meta-layout>\n\t\t</div>\n\t</div>\n\t<div class=\"Vlt-card__footer\">\n\t\t<button class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--outline\" type='button' aria-label='Cancel' (click)='close()'>\n\t\t\t{{ edit ? 'Cancel' : 'Close' }}\n\t\t</button>\n\t\t<button *ngIf='edit' class=\"Vlt-btn Vlt-btn--app\" [ngClass]=\"{ 'Vlt-btn--primary': isPersistent, 'Vlt-btn--secondary': !isPersistent }\" type='submit'>\n\t\t\t{{ (resource && resource.externalId) ? 'Update' : 'Create' }}\n\t\t</button>\n\t\t<button (click)='setEditMode()' *ngIf='!edit && isEditable' [disabled]='!isEditable' class=\"Vlt-btn Vlt-btn--app Vlt-btn--primary\" type='button' aria-label='Edit'>\n\t\t\tEdit\n\t\t</button>\n\t\t<div style='margin-right: 8px; flex: 1;'>\n\t\t\t<div *ngIf='meta.availableLayouts && meta.availableLayouts.length' class=\"Vlt-form__element Vlt-form__element--big\" style='padding: 0; margin: -8px -18px -8px 0;'>\n\t\t\t\t<div class=\"Vlt-select\">\n\t\t\t\t\t<label style='all: inherit;'>\n\t\t\t\t\t\t<select style='border: 0; margin-top: 3px; background: transparent;' (change)='changeLayout()' [(ngModel)]='currentLayoutId' [ngModelOptions]='{ standalone: true }' [disabled]='isPersistent'>\n\t\t\t\t\t\t\t<option selected disabled>Select layout</option>\n\t\t\t\t\t\t\t<option *ngFor='let layout of meta.availableLayouts' [ngValue]='layout.id'>{{layout.name}}</option>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\t<label>Layout</label>\n\t\t\t\t\t</label>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"Vlt-dropdown resource-menu\" [ngClass]=\"{ 'Vlt-dropdown--expanded': resourceMenuVisible }\" style='margin-left: 2px;'>\n\t\t\t<div class=\"Vlt-dropdown__panel\" style='bottom: 40px; right: -4px; top: initial;'>\n\t\t\t\t<div class=\"Vlt-dropdown__panel__content\">\n\t\t\t\t\t<a class=\"Vlt-dropdown__link\" (click)='loadMetadata(currentLayoutId, true)'>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<svg class='Vlt-icon Vlt-icon--smaller'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-refresh\"/></svg>&nbsp;&nbsp;Refresh metadata\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"Vlt-dropdown__trigger\">\n\t\t\t\t<button type='button' (click)='openResourceMenu()' class=\"Vlt-btn Vlt-btn--link\" aria-label='Resource menu'>\n\t\t\t\t\t<svg class='Vlt-icon Vlt-icon--small' style='margin: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-more-v-negative\"/></svg>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</form>\n<div class='busy-mask' [ngClass]=\"{ active: busy }\">\n\t<div style='height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center;'>\n\t\t<div class=\"Vlt-spinner\"></div>\n\t</div>\n</div>\n","import { Component, ElementRef, OnInit } from '@angular/core';\nimport { metaDark, metaLight } from '../common/utils/colorThemes';\nimport { MetaResourceService } from '../services/metaResource';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss']\n})\nexport class MetaRefDialog implements OnInit {\n modal: HTMLElement;\n onComplete: (result?) => undefined;\n fullResource: any;\n resources: any = {};\n models: any = {};\n reference: any;\n currentResource: string;\n services: any = {};\n integrationCode: string;\n resource: any;\n metaResource: MetaResourceService;\n integrationIcon: string;\n preferResourceType: string;\n theme: string;\n\n constructor(\n private el: ElementRef\n ) { }\n\n get isEditable() {\n return this.resources[this.currentResource].meta.layout.editable !== false;\n }\n\n get isPersistent() {\n return this.resource && (this.resource.externalId || this.resource.id);\n }\n\n ngOnInit() {\n let references = (this.reference instanceof Array) ? this.reference : [this.reference];\n /* eslint-disable no-underscore-dangle */\n if (this.resource && this.resource._vgis) {\n this.fullResource = this.resource;\n this.resource = this.resource._vgis;\n }\n /* eslint-enable no-underscore-dangle */\n if (this.resource) {\n references = references.filter((r) => {\n const resType = r.name || r.resourceType || '';\n // comparing case insensitive, because of Zendesk comment vs Comment\n return (resType.id || resType || '').toLowerCase() === (this.resource.resourceType || this.resource.type || '').toLowerCase();\n });\n }\n\n for (const ref of references) {\n if (!ref.name) {\n ref.name = ref.resourceType; // when the resource comes from resources API, not from metadata\n }\n if (!this.currentResource) {\n this.currentResource = ref.name;\n }\n if (ref.name === this.preferResourceType) {\n this.currentResource = this.preferResourceType;\n }\n const rs: any = {\n integrationCode: this.integrationCode,\n resourceType: ref.resourceType || ref.name,\n ref\n };\n if (this.resource) {\n rs.externalId = this.resource.id || this.resource.externalId;\n if (this.resource.eventId) {\n rs.eventId = this.resource.eventId;\n }\n if (this.fullResource) {\n rs.activity = this.fullResource;\n }\n if (this.resource.layoutId) {\n rs.layoutId = this.resource.layoutId;\n }\n }\n rs.parent = ref.parent;\n this.resources[ref.name] = rs;\n this.models[ref.name] = {};\n if (this.resource) {\n this.models[ref.name]._vgis = this.resource; // eslint-disable-line no-underscore-dangle\n }\n }\n\n this.modal = this.el.nativeElement.childNodes[0];\n this.modal.classList.remove('Vlt-modal--out');\n this.modal.classList.add('Vlt-modal_visible');\n document.addEventListener('keydown', this.keyEventListener);\n\n if (this.integrationCode === 'mocks') {\n this.integrationIcon = 'Brand-icon-vonage';\n } else {\n switch (this.integrationCode.toLowerCase()) {\n case 'office365':\n this.integrationIcon = 'Brand-icon-office-color';\n break;\n case 'sugar':\n this.integrationIcon = 'Brand-icon-sugarcrm-color';\n break;\n case 'msdynamics':\n this.integrationIcon = 'Brand-icon-dynamics-color';\n break;\n default:\n this.integrationIcon = `Brand-icon-${(this.integrationCode || '').toLowerCase()}-color`;\n }\n }\n\n this.applyTheme();\n }\n\n close() {\n this.modal.classList.remove('Vlt-modal_visible');\n this.modal.classList.add('Vlt-modal--out');\n }\n\n dismiss() {\n this.close();\n this.onComplete(null);\n }\n\n onResourceDone(result) {\n this.close();\n this.onComplete(result);\n }\n\n selectResource(resource) {\n this.currentResource = resource;\n }\n\n keepOrder = (a, b) => a;\n\n private keyEventListener = (event) => {\n if (event && event.key === 'Escape') {\n document.removeEventListener('keydown', this.keyEventListener);\n this.dismiss();\n }\n };\n\n private applyTheme() {\n const metaTheme = this.theme === 'dark' ? metaDark : metaLight;\n for (const key of Object.keys(metaTheme.properties)) {\n this.el.nativeElement.style.setProperty(key, metaTheme.properties[key]);\n }\n }\n}\n","<div class='Vlt-modal Vlt-modal--large'>\n <div class=\"Vlt-modal__panel\">\n <div class=\"Vlt-tabs\">\n <div class='Vlt-tabs__header--background'>\n <div class=\"Vlt-tabs__header Vlt-tabs__header--shadow\">\n <svg class=\"Vlt-icon\" [ngStyle]=\"{fill: integrationIcon === 'Brand-icon-vonage' ? 'var(--vgip-meta-input-color)' : ''}\"><use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\" /></svg>\n <div *ngFor='let r of resources | keyvalue: keepOrder' (click)='selectResource(r.key)' class=\"Vlt-tabs__link\" [ngClass]=\"{ 'Vlt-tabs__link_active': currentResource === r.key}\">\n {{r.key}}\n </div>\n <div class=\"Vlt-modal__dismiss\" (click)=\"dismiss()\">\n <svg class=\"Vlt-icon\"><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\" /></svg>\n </div>\n </div>\n </div>\n <div class=\"Vlt-tabs__content\" style='min-height: 90px;'>\n <ng-container *ngFor='let r of resources | keyvalue: keepOrder'>\n <div *ngIf='currentResource === r.key' class=\"Vlt-tabs__panel Vlt-tabs__panel_active\">\n <vgip-meta-resource [resource]='r.value' [model]='models[r.key]' [metaResourceServiceDelegated]='metaResource' (done)='onResourceDone($event)' theme='inherit' [attr.data-theme]='theme'></vgip-meta-resource>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n"],"names":["i1.MetaHttpClient","i1.MetaContextService","i1","i1.MetaResourceService","i2.MetaReferenceService","i3","i4.MetaField","i2.MetaContextService","i3.MetaMsgService","i4","i5","i6.MetaLayout","i7.MetaAutofocusDirective","i2.MetaResource"],"mappings":"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"}