@vgip/meta-ui 1.1.7 → 1.2.3

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 (110) hide show
  1. package/{esm2015/lib/common/fieldNormalizer/boolean.js → esm2020/lib/common/fieldNormalizer/boolean.mjs} +0 -0
  2. package/{esm2015/lib/common/fieldNormalizer/datetime.js → esm2020/lib/common/fieldNormalizer/datetime.mjs} +0 -0
  3. package/{esm2015/lib/common/fieldNormalizer/index.js → esm2020/lib/common/fieldNormalizer/index.mjs} +0 -0
  4. package/{esm2015/lib/common/fieldNormalizer/number.js → esm2020/lib/common/fieldNormalizer/number.mjs} +0 -0
  5. package/{esm2015/lib/common/fieldNormalizer/options.js → esm2020/lib/common/fieldNormalizer/options.mjs} +0 -0
  6. package/{esm2015/lib/common/fieldNormalizer/radio.js → esm2020/lib/common/fieldNormalizer/radio.mjs} +0 -0
  7. package/{esm2015/lib/common/fieldNormalizer/reference.js → esm2020/lib/common/fieldNormalizer/reference.mjs} +0 -0
  8. package/{esm2015/lib/common/fieldNormalizer/richtext.js → esm2020/lib/common/fieldNormalizer/richtext.mjs} +0 -0
  9. package/{esm2015/lib/common/fieldNormalizer/string.js → esm2020/lib/common/fieldNormalizer/string.mjs} +0 -0
  10. package/{esm2015/lib/common/fieldNormalizer/text.js → esm2020/lib/common/fieldNormalizer/text.mjs} +0 -0
  11. package/{esm2015/lib/common/fieldNormalizer/uniqueNameFilter.js → esm2020/lib/common/fieldNormalizer/uniqueNameFilter.mjs} +0 -0
  12. package/esm2020/lib/common/metaAutofocus.directive.mjs +35 -0
  13. package/esm2020/lib/common/metaIcons.pipe.mjs +29 -0
  14. package/esm2020/lib/common/metaModel.pipe.mjs +25 -0
  15. package/esm2020/lib/common/metaNormalizer.mjs +309 -0
  16. package/esm2020/lib/common/metaStripHtml.pipe.mjs +22 -0
  17. package/{esm2015/lib/common/utils/colorThemes.js → esm2020/lib/common/utils/colorThemes.mjs} +0 -0
  18. package/{esm2015/lib/common/utils/indexedDbStore/index.js → esm2020/lib/common/utils/indexedDbStore/index.mjs} +0 -0
  19. package/esm2020/lib/common/utils/relativeTimeBuilder.mjs +49 -0
  20. package/{esm2015/lib/common/utils/templateBuilder.js → esm2020/lib/common/utils/templateBuilder.mjs} +0 -0
  21. package/esm2020/lib/field.mjs +2175 -0
  22. package/esm2020/lib/fieldAbstract.mjs +198 -0
  23. package/esm2020/lib/fieldBoolean/index.mjs +51 -0
  24. package/esm2020/lib/fieldDatetime/index.mjs +337 -0
  25. package/esm2020/lib/fieldInput/index.mjs +444 -0
  26. package/esm2020/lib/fieldRadio/index.mjs +87 -0
  27. package/esm2020/lib/fieldRichtext/index.mjs +85 -0
  28. package/esm2020/lib/fieldText/index.mjs +65 -0
  29. package/esm2020/lib/fieldUnknown/index.mjs +19 -0
  30. package/esm2020/lib/index.mjs +165 -0
  31. package/esm2020/lib/services/metaContext/index.mjs +35 -0
  32. package/esm2020/lib/services/metaMsg/index.mjs +84 -0
  33. package/esm2020/lib/services/metaReference/index.mjs +94 -0
  34. package/esm2020/lib/services/metaResource/index.mjs +139 -0
  35. package/esm2020/lib/services/metaResource/metaHttpClient.mjs +64 -0
  36. package/esm2020/lib/services/metaTracker/index.mjs +31 -0
  37. package/esm2020/lib/services/resourceDrafts/index.mjs +68 -0
  38. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  39. package/{esm2015/vgip-meta-ui.js → esm2020/vgip-meta-ui.mjs} +0 -0
  40. package/fesm2015/vgip-meta-ui.mjs +5207 -0
  41. package/fesm2015/vgip-meta-ui.mjs.map +1 -0
  42. package/fesm2020/vgip-meta-ui.mjs +5207 -0
  43. package/fesm2020/vgip-meta-ui.mjs.map +1 -0
  44. package/lib/common/metaAutofocus.directive.d.ts +3 -0
  45. package/lib/common/metaIcons.pipe.d.ts +3 -0
  46. package/lib/common/metaModel.pipe.d.ts +3 -0
  47. package/lib/common/metaStripHtml.pipe.d.ts +3 -0
  48. package/lib/field.d.ts +260 -1
  49. package/lib/fieldAbstract.d.ts +3 -0
  50. package/lib/fieldBoolean/index.d.ts +3 -0
  51. package/lib/fieldDatetime/index.d.ts +3 -0
  52. package/lib/fieldInput/index.d.ts +3 -0
  53. package/lib/fieldRadio/index.d.ts +3 -0
  54. package/lib/fieldRichtext/index.d.ts +3 -0
  55. package/lib/fieldText/index.d.ts +3 -0
  56. package/lib/fieldUnknown/index.d.ts +3 -0
  57. package/lib/index.d.ts +28 -8
  58. package/lib/services/metaContext/index.d.ts +3 -0
  59. package/lib/services/metaMsg/index.d.ts +3 -0
  60. package/lib/services/metaReference/index.d.ts +3 -0
  61. package/lib/services/metaResource/index.d.ts +3 -0
  62. package/lib/services/metaResource/metaHttpClient.d.ts +3 -0
  63. package/lib/services/metaTracker/index.d.ts +3 -0
  64. package/lib/services/resourceDrafts/index.d.ts +3 -0
  65. package/package.json +19 -7
  66. package/vgip-meta-ui.d.ts +1 -0
  67. package/bundles/vgip-meta-ui.umd.js +0 -6370
  68. package/bundles/vgip-meta-ui.umd.js.map +0 -1
  69. package/esm2015/lib/common/metaAutofocus.directive.js +0 -35
  70. package/esm2015/lib/common/metaIcons.pipe.js +0 -28
  71. package/esm2015/lib/common/metaModel.pipe.js +0 -22
  72. package/esm2015/lib/common/metaNormalizer.js +0 -311
  73. package/esm2015/lib/common/metaStripHtml.pipe.js +0 -18
  74. package/esm2015/lib/common/utils/relativeTimeBuilder.js +0 -51
  75. package/esm2015/lib/field.js +0 -157
  76. package/esm2015/lib/fieldAbstract.js +0 -195
  77. package/esm2015/lib/fieldBoolean/index.js +0 -50
  78. package/esm2015/lib/fieldComposite/index.js +0 -41
  79. package/esm2015/lib/fieldDatetime/index.js +0 -334
  80. package/esm2015/lib/fieldInput/index.js +0 -444
  81. package/esm2015/lib/fieldList/index.js +0 -68
  82. package/esm2015/lib/fieldRadio/index.js +0 -85
  83. package/esm2015/lib/fieldReference/index.js +0 -817
  84. package/esm2015/lib/fieldRichtext/index.js +0 -82
  85. package/esm2015/lib/fieldSelect/index.js +0 -448
  86. package/esm2015/lib/fieldText/index.js +0 -66
  87. package/esm2015/lib/fieldUnknown/index.js +0 -16
  88. package/esm2015/lib/index.js +0 -105
  89. package/esm2015/lib/layout/index.js +0 -155
  90. package/esm2015/lib/refDialog/index.js +0 -133
  91. package/esm2015/lib/resource/index.js +0 -428
  92. package/esm2015/lib/resourceCard/index.js +0 -56
  93. package/esm2015/lib/services/metaContext/index.js +0 -34
  94. package/esm2015/lib/services/metaMsg/index.js +0 -86
  95. package/esm2015/lib/services/metaReference/index.js +0 -98
  96. package/esm2015/lib/services/metaResource/index.js +0 -141
  97. package/esm2015/lib/services/metaResource/metaHttpClient.js +0 -65
  98. package/esm2015/lib/services/metaTracker/index.js +0 -30
  99. package/esm2015/lib/services/resourceDrafts/index.js +0 -70
  100. package/fesm2015/vgip-meta-ui.js +0 -5272
  101. package/fesm2015/vgip-meta-ui.js.map +0 -1
  102. package/lib/fieldComposite/index.d.ts +0 -8
  103. package/lib/fieldList/index.d.ts +0 -10
  104. package/lib/fieldReference/index.d.ts +0 -69
  105. package/lib/fieldSelect/index.d.ts +0 -38
  106. package/lib/layout/index.d.ts +0 -35
  107. package/lib/refDialog/index.d.ts +0 -30
  108. package/lib/resource/index.d.ts +0 -55
  109. package/lib/resourceCard/index.d.ts +0 -15
  110. package/vgip-meta-ui.metadata.json +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"vgip-meta-ui.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/meta-ui/src/lib/common/utils/colorThemes.ts","../../../projects/meta-ui/src/lib/fieldAbstract.ts","../../../projects/meta-ui/src/lib/fieldUnknown/index.ts","../../../projects/meta-ui/src/lib/common/utils/templateBuilder.ts","../../../projects/meta-ui/src/lib/services/metaContext/index.ts","../../../projects/meta-ui/src/lib/fieldText/index.ts","../../../projects/meta-ui/src/lib/common/utils/relativeTimeBuilder.ts","../../../projects/meta-ui/src/lib/fieldInput/index.ts","../../../projects/meta-ui/src/lib/services/metaReference/index.ts","../../../projects/meta-ui/src/lib/services/metaResource/metaHttpClient.ts","../../../projects/meta-ui/src/lib/services/metaResource/index.ts","../../../projects/meta-ui/src/lib/refDialog/index.ts","../../../projects/meta-ui/src/lib/fieldSelect/index.ts","../../../projects/meta-ui/src/lib/services/metaMsg/index.ts","../../../projects/meta-ui/src/lib/services/metaTracker/index.ts","../../../projects/meta-ui/src/lib/fieldReference/index.ts","../../../projects/meta-ui/src/lib/fieldComposite/index.ts","../../../projects/meta-ui/src/lib/fieldBoolean/index.ts","../../../projects/meta-ui/src/lib/fieldRadio/index.ts","../../../projects/meta-ui/src/lib/fieldList/index.ts","../../../projects/meta-ui/src/lib/fieldRichtext/index.ts","../../../projects/meta-ui/src/lib/fieldDatetime/index.ts","../../../projects/meta-ui/src/lib/field.ts","../../../projects/meta-ui/src/lib/layout/index.ts","../../../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/resource/index.ts","../../../projects/meta-ui/src/lib/resourceCard/index.ts","../../../projects/meta-ui/src/lib/common/metaIcons.pipe.ts","../../../projects/meta-ui/src/lib/common/metaModel.pipe.ts","../../../projects/meta-ui/src/lib/common/metaStripHtml.pipe.ts","../../../projects/meta-ui/src/lib/common/metaAutofocus.directive.ts","../../../projects/meta-ui/src/lib/common/utils/indexedDbStore/index.ts","../../../projects/meta-ui/src/lib/services/resourceDrafts/index.ts","../../../projects/meta-ui/src/lib/index.ts","../../../projects/meta-ui/src/public-api.ts","../../../projects/meta-ui/src/vgip-meta-ui.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export interface MetaTheme {\n name: string;\n properties: { [key: string]: string };\n}\n\nexport const metaLight: MetaTheme = {\n name: 'light',\n properties: {\n '--vgip-meta-resource-bg-color': '#f3f3f5',\n '--vgip-meta-resource-color': '#131415',\n '--vgip-meta-resource-bar-color': '#ffffff',\n '--vgip-meta-separator-color': '#e1e2e6',\n '--vgip-meta-scrollbar-color': '#131415',\n '--vgip-meta-overlay-background': 'rgba(19, 20, 21, 0.5)',\n\n '--vgip-meta-link-color': '#871fff',\n '--vgip-meta-link-hover-color': '#441080',\n\n '--vgip-meta-input-color': '#131415',\n '--vgip-meta-input-bg-color': '#ffffff',\n '--vgip-meta-input-label-color': '#616266',\n '--vgip-meta-input-border-color': '#c2c4cc',\n '--vgip-meta-input-active-border-color': '#2c2d30',\n '--vgip-meta-input-action-hover-bg-color': '#e1e2e6',\n '--vgip-meta-input-accent-bg-color': '#e1e2e6',\n '--vgip-meta-input-accent-color': '#131415',\n '--vgip-meta-input-placeholder-color': '#c2c4cc',\n '--vgip-meta-input-disabled-bg-color': '#f3f3f5',\n '--vgip-meta-input-disabled-border-color': '#e1e2e6',\n '--vgip-meta-input-hint-color': '#616266',\n // eslint-disable-next-line max-len\n '--vgip-meta-dropdown-icon': 'url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyMCAyMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjAgMjA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIHN0eWxlPSJmaWxsOiMxMzE0MTU7IiBkPSJNNyw3LjhDNi43LDcuNSw2LjIsNy42LDUuOSw3LjlTNS43LDguNyw2LDlsNCwzLjRsNC0zLjRjMC4zLTAuMywwLjMtMC44LDAtMS4xDQoJYy0wLjMtMC4zLTAuNy0wLjMtMS0wLjFsLTMsMi42TDcsNy44TDcsNy44eiIvPg0KPC9zdmc+)',\n '--vgip-meta-suggestions-bg-color': '#f3e9ff',\n // eslint-disable-next-line max-len\n '--vgip-meta-dropdown-check-icon': 'url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSIjMTMxNDE1IiBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0yLjkwNCAxMi4xMUwxLjUgMTMuNTIgNy45NTggMjAgMjIuNSA1LjQwOSAyMS4wOTYgNCA3Ljk1OCAxNy4xODJ6Ii8+PC9zdmc+)',\n '--vgip-meta-dropdown-bg-color': '#ffffff',\n '--vgip-meta-dropdown-shadow': 'inset 0 0 0 1px #e1e2e6, 0 2px 5px rgba(19, 20, 21, 0.15)',\n '--vgip-meta-submit-hover-bg-color': '#43474b',\n '--vgip-meta-button-border-color': '#131415',\n // eslint-disable-next-line max-len\n '--vgip-meta-date-icon': 'url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIxLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgdmlld0JveD0iMCAwIDE2IDE2IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNiAxNjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cGF0aCBmaWxsPSIjMTMxNDE1IiBkPSJNMTQuNSwySDEyVjAuNUMxMiwwLjIsMTEuOCwwLDExLjUsMFMxMSwwLjIsMTEsMC41VjJINVYwLjVDNSwwLjIsNC44LDAsNC41LDBTNCwwLjIsNCwwLjVWMkgxLjUKCUMwLjcsMiwwLDIuNywwLDMuNXYydjlDMCwxNS4zLDAuNywxNiwxLjUsMTZoMTNjMC44LDAsMS41LTAuNywxLjUtMS41di05di0yQzE2LDIuNywxNS4zLDIsMTQuNSwyeiBNMTUsMTQuNWMwLDAuMy0wLjIsMC41LTAuNSwwLjUKCWgtMTNDMS4yLDE1LDEsMTQuOCwxLDE0LjVWNmgxNFYxNC41eiBNMTUsNUgxVjMuNUMxLDMuMiwxLjIsMywxLjUsM2gzaDdoM0MxNC44LDMsMTUsMy4yLDE1LDMuNVY1eiIvPgo8L3N2Zz4K)',\n // eslint-disable-next-line max-len\n '--vgip-meta-time-icon': 'url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbD0iIzEzMTQxNSIgZD0iTTEuNiAxMkMxLjYgNi4yNTYyNCA2LjI1NjI0IDEuNiAxMiAxLjZDMTcuNzQzOCAxLjYgMjIuNCA2LjI1NjI0IDIyLjQgMTJDMjIuNCAxNy43NDM4IDE3Ljc0MzggMjIuNCAxMiAyMi40QzYuMjU2MjQgMjIuNCAxLjYgMTcuNzQzOCAxLjYgMTJaTTEyIDBDNS4zNzI1OCAwIDAgNS4zNzI1OCAwIDEyQzAgMTguNjI3NCA1LjM3MjU4IDI0IDEyIDI0QzE4LjYyNzQgMjQgMjQgMTguNjI3NCAyNCAxMkMyNCA1LjM3MjU4IDE4LjYyNzQgMCAxMiAwWk0xMi44IDUuNkMxMi44IDUuMTU4MTggMTIuNDQxOCA0LjggMTIgNC44QzExLjU1ODIgNC44IDExLjIgNS4xNTgxOCAxMS4yIDUuNlYxMkMxMS4yIDEyLjQ0MTggMTEuNTU4MiAxMi44IDEyIDEyLjhIMTguNEMxOC44NDE4IDEyLjggMTkuMiAxMi40NDE4IDE5LjIgMTJDMTkuMiAxMS41NTgyIDE4Ljg0MTggMTEuMiAxOC40IDExLjJIMTIuOFY1LjZaIi8+Cjwvc3ZnPgo=)'\n }\n};\n\nexport const metaDark: MetaTheme = {\n name: 'dark',\n properties: {\n '--vgip-meta-resource-bg-color': '#131415',\n '--vgip-meta-resource-color': '#ffffff',\n '--vgip-meta-resource-bar-color': '#242426',\n '--vgip-meta-separator-color': '#616266',\n '--vgip-meta-scrollbar-color': '#636366',\n '--vgip-meta-overlay-background': 'rgba(200,201,204,.32)',\n\n '--vgip-meta-link-color': '#B779FF',\n '--vgip-meta-link-hover-color': '#c798ff',\n\n '--vgip-meta-input-color': '#ffffff',\n '--vgip-meta-input-bg-color': '#242426',\n '--vgip-meta-input-label-color': '#959596',\n '--vgip-meta-input-border-color': '#616266',\n '--vgip-meta-input-active-border-color': '#c2c4cc',\n '--vgip-meta-input-action-hover-bg-color': '#313133',\n '--vgip-meta-input-accent-bg-color': '#313133',\n '--vgip-meta-input-accent-color': '#ffffff',\n '--vgip-meta-input-placeholder-color': '#48484A',\n '--vgip-meta-input-disabled-bg-color': '#131415',\n '--vgip-meta-input-disabled-border-color': '#313133',\n '--vgip-meta-input-hint-color': '#898a90',\n // eslint-disable-next-line max-len\n '--vgip-meta-dropdown-icon': 'url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyMCAyMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjAgMjA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIHN0eWxlPSJmaWxsOiNmZmZmZmY7IiBkPSJNNyw3LjhDNi43LDcuNSw2LjIsNy42LDUuOSw3LjlTNS43LDguNyw2LDlsNCwzLjRsNC0zLjRjMC4zLTAuMywwLjMtMC44LDAtMS4xDQoJYy0wLjMtMC4zLTAuNy0wLjMtMS0wLjFsLTMsMi42TDcsNy44TDcsNy44eiIvPg0KPC9zdmc+)',\n '--vgip-meta-suggestions-bg-color': '#871fff',\n // eslint-disable-next-line max-len\n '--vgip-meta-dropdown-check-icon': 'url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSIjZmZmZmZmIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0yLjkwNCAxMi4xMUwxLjUgMTMuNTIgNy45NTggMjAgMjIuNSA1LjQwOSAyMS4wOTYgNCA3Ljk1OCAxNy4xODJ6Ii8+PC9zdmc+)',\n '--vgip-meta-dropdown-bg-color': '#48484A',\n '--vgip-meta-dropdown-shadow': 'none',\n '--vgip-meta-submit-hover-bg-color': '#131415',\n '--vgip-meta-button-border-color': '#616266',\n // eslint-disable-next-line max-len\n '--vgip-meta-date-icon': 'url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIxLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgdmlld0JveD0iMCAwIDE2IDE2IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNiAxNjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cGF0aCBmaWxsPSIjZmZmZmZmIiBkPSJNMTQuNSwySDEyVjAuNUMxMiwwLjIsMTEuOCwwLDExLjUsMFMxMSwwLjIsMTEsMC41VjJINVYwLjVDNSwwLjIsNC44LDAsNC41LDBTNCwwLjIsNCwwLjVWMkgxLjUKCUMwLjcsMiwwLDIuNywwLDMuNXYydjlDMCwxNS4zLDAuNywxNiwxLjUsMTZoMTNjMC44LDAsMS41LTAuNywxLjUtMS41di05di0yQzE2LDIuNywxNS4zLDIsMTQuNSwyeiBNMTUsMTQuNWMwLDAuMy0wLjIsMC41LTAuNSwwLjUKCWgtMTNDMS4yLDE1LDEsMTQuOCwxLDE0LjVWNmgxNFYxNC41eiBNMTUsNUgxVjMuNUMxLDMuMiwxLjIsMywxLjUsM2gzaDdoM0MxNC44LDMsMTUsMy4yLDE1LDMuNVY1eiIvPgo8L3N2Zz4K)',\n // eslint-disable-next-line max-len\n '--vgip-meta-time-icon': 'url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbD0iI2ZmZmZmZiIgZD0iTTEuNiAxMkMxLjYgNi4yNTYyNCA2LjI1NjI0IDEuNiAxMiAxLjZDMTcuNzQzOCAxLjYgMjIuNCA2LjI1NjI0IDIyLjQgMTJDMjIuNCAxNy43NDM4IDE3Ljc0MzggMjIuNCAxMiAyMi40QzYuMjU2MjQgMjIuNCAxLjYgMTcuNzQzOCAxLjYgMTJaTTEyIDBDNS4zNzI1OCAwIDAgNS4zNzI1OCAwIDEyQzAgMTguNjI3NCA1LjM3MjU4IDI0IDEyIDI0QzE4LjYyNzQgMjQgMjQgMTguNjI3NCAyNCAxMkMyNCA1LjM3MjU4IDE4LjYyNzQgMCAxMiAwWk0xMi44IDUuNkMxMi44IDUuMTU4MTggMTIuNDQxOCA0LjggMTIgNC44QzExLjU1ODIgNC44IDExLjIgNS4xNTgxOCAxMS4yIDUuNlYxMkMxMS4yIDEyLjQ0MTggMTEuNTU4MiAxMi44IDEyIDEyLjhIMTguNEMxOC44NDE4IDEyLjggMTkuMiAxMi40NDE4IDE5LjIgMTJDMTkuMiAxMS41NTgyIDE4Ljg0MTggMTEuMiAxOC40IDExLjJIMTIuOFY1LjZaIi8+Cjwvc3ZnPgo=)'\n }\n};\n","/*\n * @Author: Alexander.Vangelov@vonage.com \n * @Date: 2019-09-19 17:34:44 \n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-04-18 21:18:08\n */\n\nimport { ElementRef, AfterViewInit, EventEmitter, Directive } from '@angular/core';\n// import { ControlValueAccessor } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { metaDark, metaLight } from './common/utils/colorThemes';\n\nexport interface IMetaField<T extends FieldAbstract> {\n meta: any;\n model: any;\n}\n\n@Directive()\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport abstract class FieldAbstract implements AfterViewInit { // implements ControlValueAccessor {\n model: any;\n meta: any;\n index: number;\n parent: any;\n integrationCode: string;\n integrationIcon: string;\n resourceType: string;\n elementRef: ElementRef;\n modelInput: HTMLInputElement;\n modelControl: HTMLInputElement;\n mainInput: HTMLInputElement;\n keyListenerActive: boolean;\n onChange: EventEmitter<any>;\n onLeave: EventEmitter<any>;\n validationAttributes = [];\n preview: boolean;\n prevModel: any;\n changeEvent = document.createEvent('MouseEvents');\n metaResourceService: any;\n logicalDisabled = false;\n theme: string;\n flags: any = {};\n\n static setup(instance, parent, meta) { }\n\n ngAfterViewInit() {\n if (this.elementRef) {\n if (this.integrationCode === 'mocks') {\n this.integrationIcon = 'Brand-icon-vonage';\n } else {\n switch (this.integrationCode) {\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 Object.defineProperty(this.meta, '$optional', {\n value: (typeof(this.default) === 'undefined') && this.isOptional,\n writable: true,\n configurable: true,\n enumerable: false\n });\n this.flags = this.meta.flags || {};\n Object.defineProperty(this.meta, '$hidden', {\n value: !this.isPersistedParent && this.flags.creatable === false,\n writable: true,\n configurable: true,\n enumerable: false\n });\n\n if (this.theme !== 'inherit') {\n const metaTheme = this.theme === 'dark' ? metaDark : metaLight;\n for (const key of Object.keys(metaTheme.properties)) {\n this.elementRef.nativeElement.style.setProperty(key, metaTheme.properties[key]);\n }\n }\n }\n }\n\n get isOptional() {\n const baseOptional = !this.meta.unset && !this.validations.required && !this.meta.visible;\n switch (this.meta.type) {\n case 'composite': {\n if (baseOptional) {\n return !this.meta.fields.find((f) => !f.$optional);\n }\n return false;\n }\n case 'list': {\n if (baseOptional) {\n return !(this.parent[this.meta.name] instanceof Array && this.parent[this.meta.name].length) && !this.meta.min;\n }\n return false;\n }\n default: {\n return baseOptional && typeof(this.parent[this.meta.name]) === 'undefined';\n }\n }\n }\n\n focus() {\n const input = this.uiInput;\n if (input) {\n input.focus();\n }\n }\n\n modelToValue(m, valueType) {\n if (typeof(m) !== 'undefined') {\n switch (valueType) {\n case 'object': {\n return m ? { id: m.id, label: m.label, type: m.type } : m;\n }\n default: {\n if (m != null) {\n return m.id || m;\n }\n }\n }\n }\n }\n\n onSubjectChange(model) {\n if (Object.getOwnPropertyDescriptor(this.parent, '$changeSubject')) {\n const parentChange: any = {};\n parentChange[this.meta.name] = model;\n this.parentChangeSubject.next(parentChange);\n }\n }\n\n onModelChange(model) {\n // TODO add resource type logic\n if (this.model instanceof Array) {\n this.parent[this.meta.name] = this.model.map((m) => this.modelToValue(m, this.meta.valueType));\n } else {\n this.parent[this.meta.name] = this.modelToValue(model, this.meta.valueType);\n }\n this.onChange.emit(model);\n this.onSubjectChange(model);\n // console.log('onChange', model);\n this.changeEvent.initMouseEvent('change', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.elementRef.nativeElement.dispatchEvent(this.changeEvent);\n if (this.model) {\n this.prevModel = this.model;\n } else {\n this.meta.unset = true;\n }\n this.meta.$optional = this.isOptional;\n }\n\n get parentChangeSubject() {\n if (!Object.getOwnPropertyDescriptor(this.parent, '$changeSubject')) {\n Object.defineProperty(this.parent, '$changeSubject', {\n value: new BehaviorSubject({}).pipe(debounceTime(300), distinctUntilChanged()),\n writable: false,\n enumerable: false\n });\n }\n return this.parent.$changeSubject;\n }\n\n get isPersistedParent() {\n // eslint-disable-next-line no-underscore-dangle\n return this.parent && this.parent._vgis && (this.parent._vgis.externalId || this.parent._vgis.id );\n }\n\n clear() {\n delete this.model;\n this.onModelChange(this.model);\n }\n\n get validations() {\n return this.meta.validations || {};\n }\n\n get name() {\n return (typeof (this.index) === 'undefined') ? this.meta.name : `${this.meta.name}[${this.index}]`;\n }\n\n get default() {\n return this.meta.default || this.meta.defaultValue;\n }\n\n get disabled() {\n // TODO conditions\n return this.logicalDisabled || this.validations.disabled || this.meta.disabled === true || this.flags.disabled\n || (this.flags.updatable === false && this.isPersistedParent);\n }\n\n get readonly() {\n // TODO conditions\n return !!(this.validations.readonly || this.meta.readonly || (this.flags.updatable === false));\n }\n\n get sendToServer() {\n return this.isPersistedParent ? (this.flags.updatable !== false) : (this.flags.creatable !== false);\n }\n\n get uiInput() {\n if (!this.mainInput) {\n this.mainInput = this.elementRef.nativeElement.querySelector('.main:not([type=\"hidden\"]):not(.standalone)');\n }\n return this.mainInput;\n }\n\n private applyValidations() {\n this.validationAttributes.forEach((attribute) => {\n const validation = this.validations[attribute];\n if (validation) {\n this.modelInput.setAttribute(attribute, validation.value || validation);\n }\n });\n }\n}\n\n\nexport class MetaElem {\n csselem: string;\n meta: any;\n}\n\nexport abstract class MetaElemDisableadble implements MetaElem {\n cssmodifier: string;\n abstract meta: any;\n abstract csselem: string;\n abstract elementRef: ElementRef;\n disable() {\n console.log(this.cssmodifier);\n this.elementRef.nativeElement.classList.remove(this.cssmodifier);\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: 2019-11-15 13:04:01\n */\n\nimport { Component, Input, OnInit } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\n\n@Component({\n templateUrl: './view.html'\n})\nexport class FieldUnknown extends FieldAbstract {}\n","export const templateBuilder = (metaContext, pattern) => {\n const context = (metaContext || {}).context;\n if (!context) {\n if (!pattern || typeof(pattern) !== 'string') {\n return;\n } else {\n return (pattern || '').replace(/\\${\\s*([\\w\\.]+)\\s*}/g, 'N/A');\n }\n }\n\n const padTime = (t) => t < 10 ? '0' + t : t;\n\n const patternBuilder = (pattern || '').replace(/\\${\\s*([\\w\\.]+)\\s*}/g, (match, value) => {\n switch (value) {\n case 'direction': {\n return (context[value] || '').toUpperCase() === 'INBOUND' ? 'Inbound' : 'Outbound';\n }\n case 'name': {\n return context.contact ? context.contact.name : (context.callerId || 'Unknown');\n }\n case 'contact': { // (FE-BE contract violation)\n return context.contact ? context.contact.name : (context.callerId || 'Unknown');\n }\n case 'type': {\n return context.type ? context.type : '';\n }\n case 'phoneNumber': {\n return context[value];\n }\n case 'directionArrow': {\n return (context.direction || '').toUpperCase() === 'INBOUND' ? '⬇' : '⬆';\n }\n case 'timestamp': {\n try {\n const callTime = new Date(context.answerTime || context.startTime || Date.now());\n const date = callTime.toDateString();\n const time = callTime.toLocaleTimeString();\n return date + ', ' + time;\n } catch (e) {\n console.error('context without startTime', e);\n }\n return '';\n }\n case 'duration': {\n try {\n if (typeof (context[value]) === 'number' && context.endTime) {\n return '(' + (context[value]).toFixed() + 'ms)';\n }\n } catch (e) {\n console.error('context without duration', e);\n }\n return '(0ms)';\n }\n case 'durationSec': {\n try {\n if (typeof (context.duration) === 'number' && context.endTime) {\n return '(' + (context.duration / 1000).toFixed() + 's)';\n }\n } catch (e) {\n console.error('call without duration', e);\n }\n return '(0s)';\n }\n case 'durationTime': {\n try {\n if (typeof (context.duration) === 'number' && context.endTime) {\n const duration = context.duration / 1000; // convert it to seconds\n if (duration < 0) {\n return '00:00';\n }\n\n const hours = Math.floor(duration / 3600);\n const minutes = Math.floor((duration % 3600) / 60);\n const seconds = Math.floor(duration % 60);\n\n const checkHours = hours ? padTime(hours) + ':' : '';\n return checkHours + padTime(minutes) + ':' + padTime(seconds);\n }\n } catch (e) {\n console.error('context without duration', e);\n }\n return '00:00';\n }\n default: {\n return context[value];\n }\n }\n });\n return patternBuilder;\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-03-06 10:10:09\n */\n\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetaContextService {\n phoneNumber: string;\n displayName: string;\n defaultContactables: {[integrationCode: string]: any} = {};\n workers: {[integrationCode: string]: any} = {};\n contactables: {[integrationCode: string]: any} = {};\n profiles: {[integrationCode: string]: any} = {};\n vgipEventId: string;\n vgipUserId: string;\n context: any;\n uid: string;\n subject: string;\n\n constructor() {\n\n }\n\n set(context?) {\n if (context) {\n if (context.phoneNumber) {\n this.phoneNumber = context.phoneNumber;\n }\n if (context.displayName) {\n this.displayName = context.displayName;\n }\n }\n }\n}\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:35:13\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-02-26 20:00:33\n */\n\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\nimport { FieldAbstract } from '../fieldAbstract';\n// import { tMetaField } from '../../../metaTypes/tMetaField'\nimport { templateBuilder } from '../common/utils/templateBuilder';\nimport { MetaContextService } from '../services/metaContext';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [ { provide: ControlContainer, useExisting: NgForm } ]\n})\nexport class FieldText extends FieldAbstract implements OnInit {\n @Input() meta: any;\n\n constructor( private metaContext: MetaContextService ) {\n super();\n }\n\n static setup(instance, parent, meta) {\n const d = meta.default || meta.defaultValue;\n if (d && !parent[meta.name]) {\n if (typeof(d) === 'string') {\n parent[meta.name] = d;\n } else {\n parent[meta.name] = d.id || d.value;\n }\n }\n }\n\n ngOnInit() {\n if (typeof(this.parent[this.meta.name]) === 'string') {\n this.parent[this.meta.name] = templateBuilder(this.metaContext, this.parent[this.meta.name]);\n }\n // if (this.default && !this.model) {\n // setTimeout(()=>{\n // if (typeof(this.default) == 'string') {\n // this.parent[this.meta.name] = this.default;\n // } else {\n // this.parent[this.meta.name] = this.default.id || this.default.value;\n // }\n // }, 0);\n // }\n }\n\n onModelChangeLocal(value) {\n if (!value && this.prevModel && this.isPersistedParent) {\n value = '';\n }\n this.onModelChange(value);\n }\n\n textToSpeech() {\n this.focus();\n }\n\n}\n","/*\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-02-18 15:41:17\n */\n\nconst wordToMilliseconds = {\n now: 0,\n seconds: 1000,\n minutes: 1000 * 60,\n hours: 1000 * 60 * 60,\n days: 1000 * 60 * 60 * 24\n};\n\nconst protoTime = (text) => { // protocol is: 30.minutes, -4.hours, 3.days, etc...\n const protoMatch = (text || '').match(/^(-?)(\\d+).(\\S+)$/);\n if (protoMatch) {\n const negative = protoMatch[1] === '-';\n const units = parseInt(protoMatch[2], 10) * (wordToMilliseconds[protoMatch[3]] || 0);\n if (negative) {\n return -units;\n } else {\n return units;\n }\n }\n};\n\nexport const relativeTimeBuilder = (type: 'date' | 'datetime' | 'datetime-local' | 'time', value: string, step = 0, base?: number) => {\n let timestamp = base || new Date().getTime();\n const offset = protoTime(value);\n if (offset) {\n timestamp = timestamp + offset;\n }\n if (step) {\n if (type === 'date') { // step is days\n const mod = timestamp % (step * 1000 * 60 * 60 * 24);\n if (mod) {\n timestamp = timestamp - mod + (step * 1000 * 60 * 60 * 24);\n }\n } else { // step is seconds\n const mod = timestamp % (step * 1000);\n if (mod) {\n timestamp = timestamp - mod + (step * 1000);\n }\n }\n }\n return timestamp;\n};\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:35:09\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-05-12 17:45:46\n */\n\nimport { Component, OnInit } from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\nimport { FieldAbstract } from '../fieldAbstract';\n// import { IMetaFieldInut } from '../definitions/fields/IMetaFieldInput';\nimport { templateBuilder } from '../common/utils/templateBuilder';\nimport { relativeTimeBuilder } from '../common/utils/relativeTimeBuilder';\nimport { MetaContextService } from '../services/metaContext';\n\n// import { MetaValidations } from '../common/decorators/metaValidations.decorator';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n})\nexport class FieldInput extends FieldAbstract implements OnInit {\n input: any;\n dropdown: any;\n activeSuggestionIndex: number;\n value: any;\n multiple: boolean;\n addText;\n showClear: boolean;\n asyncSuggestions: Array<any>;\n\n constructor( private metaContext: MetaContextService ) {\n super();\n }\n\n ngOnInit() {\n this.multiple = (this.meta.type === 'multistring') || this.meta.multiple;\n // console.log('FieldInput init', this.meta.name);\n this.validationAttributes = ['pattern', 'required', 'minlength', 'maxlength', 'min', 'max', 'step'];\n if (this.meta.picklist) { // just for test! all metadata should be transformed to v3 protocol\n this.meta.suggestions = (this.meta.picklist || []).map((s) => s.label);\n }\n if (this.meta.type === 'number') {\n if (this.meta.subtype === 'float' && !this.meta.step) {\n this.meta.step = '0.01';\n }\n this.meta.subtype = 'number';\n }\n if (['date', 'time', 'datetime'].indexOf(this.meta.type) !== -1) {\n this.meta.subtype = this.meta.type;\n if (this.meta.type === 'datetime') {\n this.meta.subtype = 'datetime-local';\n }\n delete this.multiple; // no multiple support for timestamps\n }\n this.showClear = !this.multiple && [\n '', 'string', 'url', 'email', 'password', 'tel', 'date', 'datetime-local', 'time'\n ].indexOf(this.meta.subtype || '') !== -1;\n const origValue = this.parent[this.meta.name];\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (this.multiple) {\n if (typeof(value) !== 'undefined') {\n const values = (value instanceof Array) ? value : [value];\n this.model = [];\n for (let v of values) {\n if (!this.model) {\n this.model = [];\n }\n if (typeof (v) === 'object' && v !== null) {\n v = v.id || v.value;\n }\n this.model.push(v);\n }\n this.value = this.model;\n }\n } else {\n if (typeof(value) !== 'undefined' \n && !(value === null && ((typeof(this.meta.type) === 'undefined') || ['string', 'number'].indexOf(this.meta.type) !== -1))\n ) {\n if (this.meta.type === 'number' && typeof(value) === 'string') {\n value = parseInt(value, 10);\n } else if (typeof (value) === 'object' && value !== null) {\n value = value.id || value.value;\n }\n if (['datetime', 'date', 'datetime-local'].indexOf(this.meta.subtype || this.meta.type) !== -1 && value) {\n try {\n let date: Date;\n if ((typeof (value) === 'number')) {\n date = new Date(parseInt(value as any, 10));\n } else {\n if ('date' === (this.meta.subtype || this.meta.type)) {\n date = new Date(Date.parse(value));\n } else {\n date = new Date(Date.parse(`${value}Z`) + (new Date().getTimezoneOffset() * 60000));\n }\n }\n if (typeof (value) === 'number') {\n switch (this.meta.subtype || this.meta.type) {\n case 'datetime-local':\n case 'datetime': {\n this.model = `${date.getFullYear()}-${('00' + (date.getMonth() + 1)).slice(-2)}-${('00' + date.getDate()).slice(-2)}`;\n this.model += `T${('00' + date.getHours()).slice(-2)}:${('00' + date.getMinutes()).slice(-2)}`;\n break;\n }\n case 'date': {\n this.model = date.toISOString().split('T')[0];\n break;\n }\n }\n }\n if (this.meta.valueType === 'string') {\n if ((this.meta.subtype || this.meta.type) === 'date') {\n this.value = date.toISOString().split('T')[0];\n } else {\n this.value = date.toISOString();\n }\n } else {\n if ((this.meta.subtype || this.meta.type) === 'date') {\n date.setFullYear(date.getUTCFullYear());\n date.setMonth(date.getUTCMonth());\n date.setDate(date.getUTCDate());\n date.setMinutes(0);\n date.setHours(0);\n date.setSeconds(0);\n date.setMilliseconds(0);\n }\n this.value = date.getTime();\n }\n } catch (e) {\n console.error('Date parse error', e.message, `\"${value}\"`, `(${typeof (value)})`);\n }\n } else if ('time' === (this.meta.subtype || this.meta.type)) {\n try {\n let date: Date;\n if (typeof (value) === 'number') {\n date = new Date(parseInt(value as any, 10));\n } else {\n date = new Date(\n Date.parse(new Date().toISOString().replace(/T.*Z/, `T${value}Z`)) + (new Date().getTimezoneOffset() * 60000)\n );\n }\n this.model = date.toTimeString().split(' ')[0];\n this.value = date.getTime();\n } catch (e) {\n console.error('Date parse error', e.message, `\"${value}\"`, `(${typeof (value)})`);\n }\n } else {\n if (!value && (typeof(this.prevModel) === 'string') && this.isPersistedParent) {\n value = '';\n }\n this.model = value;\n this.value = value;\n }\n } else {\n delete this.model;\n delete this.value;\n }\n }\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n if (typeof(origValue) !== 'undefined') {\n this.parent[this.meta.name] = origValue;\n }\n const d = this.meta.default || this.meta.defaultValue;\n if (d && typeof(this.model) === 'undefined') {\n if (this.multiple) {\n this.parent[this.meta.name] = [];\n if (d.length) {\n for (const dv of this.default) { // TODO ???\n const defaultValueItem = (typeof (dv) === 'string' || dv === null) ? dv : (dv.id || dv.value);\n if (defaultValueItem || defaultValueItem === 0) {\n this.parent[this.meta.name].push(defaultValueItem);\n }\n }\n }\n } else {\n const defaultValue = (typeof (d) === 'string') ? d : (d.id || d.value);\n if (defaultValue || defaultValue === 0) {\n if (/^(date|time)/.test(this.meta.subtype) && typeof(defaultValue) === 'string') {\n this.parent[this.meta.name] = relativeTimeBuilder(this.meta.subtype, defaultValue, this.validations.step);\n } else {\n if (this.meta.type === 'string' && defaultValue) {\n this.parent[this.meta.name] = templateBuilder(this.metaContext, defaultValue);\n } else {\n this.parent[this.meta.name] = defaultValue;\n }\n }\n }\n }\n }\n }\n\n onActivated(ev) {\n this.input = ev.srcElement;\n if (!this.dropdown) {\n this.dropdown = ev.srcElement.parentNode.parentNode;\n }\n this.showDropdown();\n }\n\n clear(ev?) {\n delete this.model;\n delete this.activeSuggestionIndex;\n delete this.asyncSuggestions;\n this.onModelChange(this.model);\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n return false;\n }\n }\n\n onBlur(ev) {\n let internalControl = false;\n if (ev.relatedTarget) {\n if (!this.elementRef.nativeElement.contains(ev.relatedTarget)) {\n this.dismissDropdown();\n } else {\n internalControl = true;\n }\n }\n if (this.keyListenerActive && !internalControl) {\n this.input.removeEventListener('keydown', this.keydown);\n setTimeout(() => {\n if (!this.keyListenerActive) {\n document.removeEventListener('click', this.clickout);\n }\n }, 400);\n delete this.keyListenerActive;\n }\n }\n\n onAdd(ev) {\n console.log('onAdd', this.addText);\n if (this.addText) {\n if ((this.model || []).indexOf(this.addText) === -1) {\n this.onSuggestionSelect(ev, this.addText);\n if (!this.meta.suggestions) {\n this.meta.suggestions = [];\n }\n this.meta.suggestions.unshift(this.addText);\n } else {\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n }\n delete this.addText;\n }\n }\n remove(ev, item) {\n ev.preventDefault();\n ev.stopPropagation();\n const optionIndex = this.model.indexOf(item);\n if (optionIndex !== -1) {\n this.model.splice(optionIndex, 1);\n if (!this.model.length) {\n delete this.model;\n delete this.value;\n }\n this.onModelChange(this.model);\n }\n }\n\n onSuggestionSelect(ev, suggestion) {\n if (!suggestion) {\n return;\n }\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n let suggestionValue = suggestion.id || suggestion.value || suggestion;\n if (typeof(suggestionValue) === 'string') {\n if (/^(date|time)/.test(this.meta.subtype)) {\n suggestionValue = relativeTimeBuilder(this.meta.subtype, suggestionValue, this.validations.step);\n } else if (this.meta.type === 'string') {\n suggestionValue = templateBuilder(this.metaContext, suggestionValue);\n } else {\n suggestionValue = suggestion;\n }\n }\n if (this.multiple) {\n if (!this.model) {\n this.model = [];\n }\n let existingItemIndex = this.model.indexOf(suggestionValue);\n if (existingItemIndex === -1) {\n this.model.push(suggestionValue);\n } else {\n this.model.splice(existingItemIndex, 1);\n existingItemIndex = undefined;\n }\n this.onModelChange(this.model);\n } else {\n this.dismissDropdown();\n this.model = suggestionValue;\n this.onModelChange(suggestionValue);\n this.activeSuggestionIndex = this.suggestions.indexOf(suggestion);\n }\n }\n\n textToSpeech() { }\n\n dismissDropdown(event?) {\n if (event) {\n this.focus();\n }\n if (this.dropdown) {\n this.dropdown.classList.remove('Vlt-dropdown--expanded');\n }\n }\n\n private ensureDropdownIsVisible() {\n setTimeout(() => {\n const holder = this.dropdown.closest('.Vlt-card__content');\n const el = this.elementRef.nativeElement.querySelector('.Vlt-dropdown__panel');\n if (el) {\n const elRect = el.getBoundingClientRect();\n const holderRect = holder.getBoundingClientRect();\n if (holderRect.top + holderRect.height < elRect.top + elRect.height) {\n el.scrollIntoView({ block: 'end' });\n }\n }\n }, 400);\n }\n\n private showDropdown() {\n if (this.meta.suggestions && this.meta.suggestions.length) {\n this.dropdown.classList.add('Vlt-dropdown--expanded');\n this.ensureDropdownIsVisible();\n }\n if (!this.keyListenerActive) {\n this.input.addEventListener('keydown', this.keydown);\n setTimeout(() => {\n document.addEventListener('click', this.clickout);\n }, 200);\n this.keyListenerActive = true;\n }\n if (typeof(this.activeSuggestionIndex) === 'undefined') {\n if (this.model && this.suggestions.length) {\n for (let suggestionIndex = 0; suggestionIndex < this.suggestions.length; suggestionIndex++) {\n if (this.model === this.suggestions[suggestionIndex]) {\n this.activeSuggestionIndex = suggestionIndex;\n return;\n }\n }\n delete this.activeSuggestionIndex;\n }\n }\n }\n\n private clickout = (event) => {\n if (event.target.className === 'Vlt-dropdown__link' && this.elementRef.nativeElement.contains(event.target)) {\n this.focus();\n // this.dismissDropdown();\n // this.parent[this.meta.name] = event.target.textContent;\n\n } else if (event.target !== this.input && event.target.className !== 'Vlt-dropdown__title') {\n this.dismissDropdown();\n } else {\n this.focus();\n }\n };\n\n private keydown = (event) => {\n switch (event.key) {\n case 'ArrowDown': {\n if (['datetime', 'time', 'date', 'datetime-local'].indexOf(this.meta.subtype || this.meta.type) !== -1) {\n break;\n }\n this.showDropdown();\n event.preventDefault();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = 0;\n } else {\n this.activeSuggestionIndex++;\n if (this.activeSuggestionIndex >= this.suggestions.length) {\n this.activeSuggestionIndex = 0;\n }\n }\n break;\n }\n case 'ArrowUp': {\n if (['datetime', 'time', 'date', 'datetime-local'].indexOf(this.meta.subtype || this.meta.type) !== -1) {\n break;\n }\n this.showDropdown();\n event.preventDefault();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = this.suggestions.length - 1;\n } else {\n this.activeSuggestionIndex--;\n if (this.activeSuggestionIndex < 0) {\n this.activeSuggestionIndex = this.suggestions.length - 1;\n }\n }\n break;\n }\n case 'Space':\n case 'Enter': {\n if (typeof (this.activeSuggestionIndex) !== 'undefined') {\n event.preventDefault();\n event.stopPropagation();\n this.onSuggestionSelect(event, this.suggestions[this.activeSuggestionIndex]);\n delete this.activeSuggestionIndex;\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n event.stopPropagation();\n this.dismissDropdown();\n break;\n }\n default: {\n setTimeout(() => {\n if (!this.model) {\n delete this.activeSuggestionIndex;\n delete this.asyncSuggestions;\n } else if (typeof(this.model) === 'string') {\n this.asyncSuggestions = (this.meta.suggestions || []).filter((s) => {\n const suggestionText = (s.id || s.value || s || '').toLowerCase();\n return suggestionText.indexOf(this.model.toLowerCase()) !== -1;\n });\n }\n });\n }\n }\n };\n\n get suggestions() {\n return this.asyncSuggestions || this.meta.suggestions || [];\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:44\n */\n\nimport { Injectable, ApplicationRef, Injector } 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 appRef: ApplicationRef,\n private injector: Injector,\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(refDialogFactory, 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 componentRef = refDialogFactory.create(this.injector);\n this.appRef.attachView(componentRef.hostView);\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 as any).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 this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n this.dialogs.splice(dialogIndex - 1, 1);\n };\n });\n\n return modalObservable;\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: 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:03\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-05-03 21:21:07\n */\n\nimport { Component, OnInit, ElementRef } from '@angular/core';\n\nimport { MetaResourceService } from '../services/metaResource';\nimport { metaDark, metaLight } from '../common/utils/colorThemes';\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 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 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 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","/*\n * @Author: Alexander.Vangelov@vonage.com \n * @Date: 2019-09-19 17:35:03 \n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-05-04 09:24:21\n */\n\nimport { Component, ComponentFactoryResolver, OnInit } from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\nimport { MetaReferenceService } from '../services/metaReference';\nimport { MetaResourceService, IMetaResourceConfig } from '../services/metaResource';\n\nimport { FieldAbstract } from '../fieldAbstract';\nimport { MetaRefDialog } from '../refDialog';\n\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\n entryComponents: [\n MetaRefDialog\n ]\n})\nexport class FieldSelect extends FieldAbstract implements OnInit {\n multiple: boolean;\n input: HTMLInputElement;\n dropdown: HTMLElement;\n dropdownScrollContainer: HTMLElement;\n showText: string;\n activeSuggestionIndex: number;\n value: any;\n isCreatable = false;\n asyncOptions: Array<any>;\n searching: boolean;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver, \n private referenceService: MetaReferenceService, \n private metaResource: MetaResourceService\n ) {\n super();\n }\n \n static setup(instance, parent, meta) {\n }\n\n ngOnInit() {\n // console.log('parent', this.parent);\n this.validationAttributes = ['required'];\n this.multiple = (this.meta.type === 'multipicklist') || this.meta.multiple;\n const origValue = this.parent[this.meta.name];\n if (this.meta.reference) {\n this.isCreatable = true;\n }\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (this.multiple) {\n if (value && value instanceof Array === false) {\n value = [value];\n }\n if (!value || value.length) {\n const values = (value instanceof Array) ? value : (value || '').split(';'); // should not handle incorrect values\n this.value = [];\n this.model = [];\n for (const v of values) {\n for (const o of this.options) {\n if ((v.id || v) === (o.id || o.value || o.name || 0)) {\n this.model.push(o);\n this.value.push(v);\n break;\n }\n }\n }\n if (!this.model.length && !this.isPersistedParent) {\n delete this.model;\n delete this.value;\n delete this.showText;\n } else {\n this.showText = (this.model || []).map((o) => o.label || o).join(', ');\n }\n }\n } else {\n if (value) {\n for (const o of this.meta.options) {\n if ((value.id || value) === (o.id || o.value || o.name || o)) {\n this.model = o;\n this.value = this.modelToValue(o, this.meta.valueType);\n this.showText = o.label || o;\n break;\n }\n }\n } else {\n delete this.model;\n delete this.value;\n delete this.showText;\n }\n }\n this.onSubjectChange(this.model);\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n \n if (origValue) {\n this.parent[this.meta.name] = origValue;\n }\n\n if (this.default && !this.model) {\n setTimeout(() => {\n this.parent[this.meta.name] = this.default.id || this.default;\n }, 0);\n }\n\n if (typeof(this.meta.enabled) !== undefined) {\n if (typeof(this.meta.enabled) === 'object') {\n for (const par of Object.keys(this.meta.enabled)) {\n const parValue = this.parent[par];\n if (parValue) { \n // logic for specific values, this works only for true\n } else {\n this.logicalDisabled = true;\n this.clear();\n }\n this.filterOptions();\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(par)) {\n this.logicalDisabled = !value[par];\n if (this.logicalDisabled) {\n this.clear();\n } else {\n this.filterOptions();\n }\n }\n });\n }\n }\n }\n\n if (this.meta.search) {\n const searchParams = this.meta.search.params;\n if (searchParams) {\n for (const par of Object.keys(searchParams)) {\n const parValue = this.parent[searchParams[par]];\n if (parValue) {\n const params = {};\n params[par] = parValue;\n this.searchOptions(params);\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(searchParams[par])) {\n this.searchOptions(value);\n }\n });\n }\n }\n }\n }\n\n onActivated(ev) {\n // ev.preventDefault();\n // ev.stopPropagation();\n this.input = ev.srcElement;\n if (!this.dropdown) {\n this.dropdown = ev.srcElement.parentNode.parentNode.parentNode;\n }\n this.showDropdown();\n }\n\n onBlur(ev) {\n let internalControl = false;\n if (ev.relatedTarget) {\n if (!this.elementRef.nativeElement.contains(ev.relatedTarget)) {\n this.dismissDropdown();\n } else {\n internalControl = true;\n }\n }\n if (this.keyListenerActive && !internalControl) {\n this.input.removeEventListener('keydown', this.keydown);\n setTimeout(() => {\n if (!this.keyListenerActive) {\n document.removeEventListener('click', this.clickout);\n }\n }, 400);\n delete this.keyListenerActive;\n }\n this.onLeave.emit(ev);\n }\n\n onOptionSelect(ev, option) {\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n this.focus();\n if (this.multiple) {\n if (!this.model) {\n this.model = [];\n }\n const optionIndex = this.model.indexOf(option);\n if (optionIndex === -1) {\n this.model.push(option);\n } else {\n this.model.splice(optionIndex, 1);\n if (!this.model.length) {\n delete this.model;\n }\n }\n this.onModelChange(this.model);\n if (this.model) {\n this.showText = (this.model || []).map((o) => o.label || o).join(', ');\n } else {\n delete this.showText;\n }\n } else {\n this.dismissDropdown();\n this.model = option;\n this.onModelChange(option);\n this.showText = option.label || (option.id === '' ? '--empty--' : option);\n if (typeof(option) === 'object' && !option.id && option.id !== '') {\n delete this.showText;\n }\n }\n }\n\n clear(ev?) {\n delete this.model;\n this.onModelChange(this.model);\n delete this.showText;\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n }\n }\n\n openResource(ev) {\n const refDialogFactory = this.componentFactoryResolver.resolveComponentFactory(MetaRefDialog);\n this.referenceService.openDialog(\n refDialogFactory, this.metaResource, this.integrationCode, this.meta.reference, null\n ).subscribe((result: any) => {\n if (result) {\n const existingOptions = (this.meta.options || []).find((o) => (o.id === result.id && o.type === result.type));\n if (existingOptions) {\n existingOptions.label = result.label;\n } else {\n if (!this.meta.options) {\n this.meta.options = [];\n }\n this.meta.options.unshift(result);\n }\n this.onOptionSelect(ev, result);\n }\n });\n }\n\n showDropdown() {\n this.dropdown.classList.add('Vlt-dropdown--expanded');\n if (!this.keyListenerActive) {\n this.input.addEventListener('keydown', this.keydown);\n setTimeout(() => {\n document.addEventListener('click', this.clickout);\n }, 200);\n this.keyListenerActive = true;\n if (this.options && this.model) {\n for (let suggestionIndex = 0; suggestionIndex < this.options.length; suggestionIndex++) {\n if (this.model === this.options[suggestionIndex]) {\n this.activeSuggestionIndex = suggestionIndex;\n }\n }\n }\n }\n this.ensureDropdownIsVisible();\n }\n\n dismissDropdown(event?) {\n if (event) {\n this.focus();\n }\n if (this.dropdown) {\n this.dropdown.classList.remove('Vlt-dropdown--expanded');\n }\n delete this.activeSuggestionIndex;\n }\n\n private ensureDropdownIsVisible() {\n setTimeout(() => {\n const holder = this.dropdown.closest('.Vlt-card__content');\n if (holder) {\n const el = this.elementRef.nativeElement.querySelector('.Vlt-dropdown__panel');\n const elRect = el.getBoundingClientRect();\n const holderRect = holder.getBoundingClientRect();\n if (holderRect.top + holderRect.height < elRect.top + elRect.height) {\n el.scrollIntoView({ block: 'end' });\n }\n }\n }, 400);\n }\n\n private ensureDropdownOptionIsVisible() {\n if (!this.dropdownScrollContainer) {\n this.dropdownScrollContainer = this.dropdown.querySelector('.Vlt-dropdown__scroll');\n }\n if (this.dropdownScrollContainer && typeof (this.activeSuggestionIndex) === 'number') {\n const scrollTop = 44 * this.activeSuggestionIndex;\n const scrollBottom = 44 * (this.activeSuggestionIndex - 7);\n if (scrollTop < this.dropdownScrollContainer.scrollTop) {\n this.dropdownScrollContainer.scrollTop = scrollTop;\n } else if (scrollBottom > this.dropdownScrollContainer.scrollTop) {\n this.dropdownScrollContainer.scrollTop = scrollBottom;\n }\n }\n }\n\n private filterOptions() {\n this.asyncOptions = [];\n if (!this.logicalDisabled) {\n for (const o of this.meta.options) {\n if (o.for) {\n for (const par of Object.keys(o.for)) {\n const parValue = this.parent[par];\n if (o.for[par].indexOf(parValue) !== -1) {\n this.asyncOptions.push(o);\n }\n }\n } else {\n this.asyncOptions.push(o);\n }\n }\n }\n }\n\n private clickout = (event) => {\n if (event.target.className === 'Vlt-dropdown__link' && this.elementRef.nativeElement.contains(event.target)) {\n this.focus();\n } else if (event.target !== this.input && !event.target.classList.contains('Vlt-dropdown__block')) {\n this.dismissDropdown();\n } else {\n this.focus();\n }\n };\n\n private keydown = (event) => {\n switch (event.key) {\n case 'ArrowDown': {\n this.showDropdown();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = 0;\n } else {\n this.activeSuggestionIndex++;\n if (this.activeSuggestionIndex >= this.options.length) {\n this.activeSuggestionIndex = 0;\n }\n }\n this.ensureDropdownOptionIsVisible();\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n case 'ArrowUp': {\n this.showDropdown();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = this.options.length - 1;\n } else {\n this.activeSuggestionIndex--;\n if (this.activeSuggestionIndex < 0) {\n this.activeSuggestionIndex = this.options.length - 1;\n }\n }\n this.ensureDropdownOptionIsVisible();\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n case 'Enter':\n case 'Space':\n case ' ': {\n if (typeof (this.activeSuggestionIndex) !== 'undefined') {\n event.preventDefault();\n event.stopPropagation();\n this.onOptionSelect(event, this.options[this.activeSuggestionIndex]);\n if (!this.multiple) {\n delete this.activeSuggestionIndex;\n }\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n event.stopPropagation();\n this.dismissDropdown();\n break;\n }\n case 'Backspace': {\n event.preventDefault();\n event.stopPropagation();\n this.clear();\n break;\n }\n }\n };\n\n get options() {\n return this.asyncOptions || this.meta.options || this.meta.picklist || [];\n }\n\n get groupedOptions() {\n return this.options.reduce((r, { group }) => {\n if (!r.some(o => o.group === group)) {\n r.push({ group, groupItem: this.options.filter(v => v.group === group) });\n }\n return r;\n }, []);\n }\n\n private searchOptions(params?) {\n let searchUrl = `/fields/${this.meta.name}/search`;\n if (this.meta.search) {\n if (this.meta.search.url) {\n searchUrl = this.meta.search.url;\n }\n const searchParams = this.meta.search.params;\n if (searchParams) {\n for (const par of Object.keys(searchParams)) {\n const val = this.parent[searchParams[par]];\n if (val) {\n searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}${par}=${val.id || val}`;\n }\n }\n }\n }\n this.searching = true;\n this.resourceService.getByPath(searchUrl).subscribe((options) => {\n this.asyncOptions = options;\n let validValue = false;\n if (this.value) {\n for (const o of options) {\n if ((o.id || o) === (this.value.id || this.value)) {\n validValue = true;\n }\n }\n if (!validValue) {\n this.clear();\n }\n }\n delete this.searching;\n });\n }\n\n get resourceService() {\n if (!this.metaResourceService) {\n const metaResourceConfig: IMetaResourceConfig = {\n integrationCode: this.integrationCode,\n resourceType: this.resourceType\n };\n this.metaResourceService = this.metaResource.new(metaResourceConfig);\n }\n return this.metaResourceService;\n }\n}\n","/*\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: 2019-09-19 17:35:19\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-03-23 17:08:23\n */\n\nimport { Injectable, EventEmitter } from '@angular/core';\n\nexport interface IMetaTrackerEvent {\n integration?: string;\n resource?: string;\n field?: string;\n action?: string;\n value?: string;\n isContactable?: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetaTrackerService {\n integrationCode: string;\n resourceType: string;\n events: EventEmitter<IMetaTrackerEvent> = new EventEmitter();\n\n constructor() {}\n\n emit(event: IMetaTrackerEvent) {\n if (!event.integration) {\n event.integration = this.integrationCode || 'N/A';\n }\n if (!event.resource) {\n event.resource = this.resourceType || 'N/A';\n }\n this.events.emit(event);\n }\n}\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:34:59\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-05-04 09:24:01\n */\n\nimport { Component, ComponentFactoryResolver, OnInit } from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\n\nimport { MetaReferenceService } from '../services/metaReference';\nimport { MetaResourceService, IMetaResourceConfig } from '../services/metaResource';\nimport { MetaMsgService } from '../services/metaMsg';\nimport { MetaContextService } from '../services/metaContext';\nimport { MetaTrackerService, IMetaTrackerEvent } from '../services/metaTracker';\n\nimport { FieldAbstract } from '../fieldAbstract';\nimport { MetaRefDialog } from '../refDialog';\nimport { connectableObservableDescriptor } from 'rxjs/internal/observable/ConnectableObservable';\n// import { tMetaField } from '../../../metaTypes/tMetaField'\n\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\n entryComponents: [\n MetaRefDialog\n ]\n})\nexport class FieldReference extends FieldAbstract implements OnInit {\n input: any;\n dropdown: HTMLElement;\n dropdownScrollContainer: HTMLElement;\n searching: boolean;\n searchResourceType: any = {};\n searchText: string;\n searchResults: Array<any>;\n searchError: any;\n activeSuggestionIndex: number;\n searchResourceTypesScope: string;\n searchTextChanged: Subject<string> = new Subject<string>();\n isCreatable = false;\n value: any;\n isPolymorphic: boolean;\n isSearchable: boolean;\n multiple: boolean;\n vr: MetaResourceService;\n externalLink: string;\n dropdownVisible = false;\n searchResourceTypeMeta: any = {\n type: 'select',\n name: 'resourceType',\n label: 'Type',\n options: [], // { label: '-- All types --' }],\n standalone: true\n };\n filteredSuggestions: Array<any> = [];\n placeHolderLabel: string;\n asyncSuggestions: Array<any>;\n smartSuggestions: Array<any> = [];\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private referenceService: MetaReferenceService,\n private metaResource: MetaResourceService,\n private metaMsgService: MetaMsgService,\n private metaContext: MetaContextService,\n private metaTracker: MetaTrackerService\n ) {\n super();\n }\n\n ngOnInit() {\n this.multiple = (this.meta.type === 'multireference') || this.meta.multiple;\n this.searchResourceTypeMeta.label = this.meta.label;\n if (!this.meta.valueType) {\n // this.meta.valueType = 'object';\n Object.defineProperty(this.meta, 'valueType', {\n value: 'object'\n });\n }\n if (this.meta.reference instanceof Array) {\n this.isPolymorphic = true;\n this.isSearchable = true;\n this.searchResourceTypesScope = this.meta.reference.map(rt => rt.name).join(',');\n for (const rt of this.meta.reference) {\n if (rt.creatable) {\n this.isCreatable = true;\n if (typeof (rt.searchable) !== 'undefined' && !rt.searchable) {\n this.isSearchable = false;\n }\n }\n }\n this.meta.reference.forEach((r) => {\n this.searchResourceTypeMeta.options.push({ id: r.name, label: r.label || r.name });\n });\n } else {\n this.isSearchable = typeof (this.meta.reference.searchable) === 'undefined' || this.meta.reference.searchable;\n this.searchResourceType = this.meta.reference;\n this.searchResourceTypesScope = this.meta.reference.name || this.meta.reference.resourceType;\n this.isCreatable = this.meta.reference.creatable;\n }\n this.buildPlaceholderLabel();\n this.searchTextChanged.pipe(debounceTime(300), distinctUntilChanged()).subscribe((value: string) => {\n this.searchText = value;\n this.search();\n });\n const origValue = this.parent[this.meta.name];\n\n // this.suggestions = this.meta.suggestions; // TODO filter by default type\n // console.log('this.suggestions', this.suggestions);\n\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (value === '') {\n value = null;\n }\n if (this.multiple) {\n if (value) {\n for (const v of value) {\n if (!this.model) {\n this.model = [];\n }\n if (typeof (v) === 'string') {\n this.model.push({\n id: v,\n label: v,\n type: this.meta.reference.name\n });\n }\n }\n // this.value = value;\n }\n } else {\n if (typeof (value) === 'string') {\n value = {\n id: value,\n label: value, // could be found with extra call\n type: this.meta.reference.name\n };\n }\n this.searchText = value ? ((!value.label || value.label === ' ') ? `N/A (${value.type}#${value.id})` : value.label || value) : '';\n // if (this.isPolymorphic && this.model) { //TODO show or not?\n // this.searchResourceType = this.meta.reference.find((rt)=> {\n // return rt.name === this.model.type;\n // });\n // }\n }\n this.model = value;\n this.value = value;\n if (!this.multiple) {\n this.buildExternalLink();\n }\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n if (origValue) {\n this.parent[this.meta.name] = origValue;\n }\n if (!this.model && this.default) {\n if (this.multiple) {\n this.parent[this.meta.name] = [];\n if (this.default.length) {\n for (const dv of this.default) {\n if ((dv.id || dv.value) && dv.type) {\n const item: any = {\n id: dv.id || dv.value,\n label: dv.label || dv.id || dv.value,\n type: dv.type\n };\n if (dv.externalLink) {\n item.externalLink = dv.externalLink;\n }\n this.parent[this.meta.name].push(item);\n }\n }\n }\n if (!this.parent[this.meta.name].length) {\n this.clear();\n }\n } else {\n if (this.default.id && this.default.label && this.default.type) {\n setTimeout(() => {\n const item: any = {\n id: this.default.id || this.default.value,\n label: this.default.label || this.default.id || this.default.value,\n type: this.default.type,\n smart: true\n };\n if (this.default.externalLink) {\n item.externalLink = this.default.externalLink;\n }\n this.parent[this.meta.name] = item;\n }, 0);\n } else {\n console.warn('!!!default value is not valid format', this.meta);\n }\n }\n }\n\n if (typeof(this.meta.disabled) !== undefined) {\n if (typeof(this.meta.disabled) === 'object') {\n for (const p of Object.keys(this.meta.disabled)) {\n const props = p.split('.');\n if (typeof (this.parent[props[0]]) !== 'undefined') {\n let val = this.parent;\n for (const prop of props) {\n val = val[prop];\n if (!val) {\n break;\n }\n }\n if (val === this.meta.disabled[p]) {\n this.logicalDisabled = true;\n this.clear();\n }\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(props[0])) {\n let val = this.parent;\n for (const prop of props) {\n val = val[prop];\n if (!val) {\n break;\n }\n }\n if (val === this.meta.disabled[p]) {\n this.logicalDisabled = true;\n this.clear();\n } else {\n delete this.logicalDisabled;\n }\n }\n });\n }\n }\n }\n\n if (this.meta.search) {\n const searchParams = this.meta.search.params;\n if (searchParams) {\n for (const par of Object.keys(searchParams)) {\n const props = searchParams[par].split('#');\n const field = props[0];\n const prop = props[1];\n let parValue = this.parent[field];\n if (parValue) {\n if (prop) {\n parValue = parValue[prop];\n }\n if (parValue) {\n const params = {};\n params[par] = parValue;\n this.searchSuggestions(params);\n }\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(field)) {\n if (value[field]) {\n if (prop) {\n value[field] = value[field][prop];\n }\n const params = {};\n params[par] = value[field];\n this.searchSuggestions(params);\n }\n }\n });\n }\n }\n }\n }\n\n clearSearchResourceType() {\n this.searchResourceType = {};\n this.onSearchResourceTypeChanged();\n }\n\n onSearchResourceTypeChanged(resourceType?) {\n if (!resourceType || !resourceType.id) {\n this.searchResourceType.resourceType = null;\n this.searchResourceTypesScope = (this.meta.reference || []).map(rt => rt.name).join(',');\n } else {\n this.searchResourceType.resourceType = resourceType.id;\n this.searchResourceTypesScope = resourceType.id;\n }\n this.buildPlaceholderLabel();\n this.focus();\n if (!this.model && !this.searchText) { // filter suggestions by type\n this.filteredSuggestions = !resourceType ? (this.meta.suggestions || []) : (this.meta.suggestions || []).filter(\n (s) => s.type === resourceType.id\n );\n } else { // regular search (return scoped results)\n if (!this.model) {\n this.search();\n } else if (this.searchResults && resourceType) {\n this.searchResults = this.searchResults.filter((s) => s.type === resourceType.id);\n }\n }\n delete this.searchError;\n }\n\n onSearchTextChanged(value: string) {\n this.searchTextChanged.next(value);\n }\n\n search() {\n this.searching = true;\n // this.activeSuggestionIndex;\n if (!this.searchText || this.searchText.length < 2) {\n this.searching = false;\n delete this.searchResults;\n return;\n }\n const showSearchresults = (results) => {\n this.searching = false;\n delete this.searchError;\n delete this.activeSuggestionIndex;\n if (!results || !(results instanceof Array)) {\n results = [];\n }\n if (this.meta.acceptNew && this.meta.acceptNew.type && this.meta.acceptNew.pattern) {\n const regex = new RegExp(this.meta.acceptNew.pattern);\n if (regex.test(this.searchText)) {\n results.unshift({ id: null, label: this.searchText, type: this.meta.acceptNew.type }) ;\n }\n }\n this.searchResults = results.map((r) => { // eslint-disable-line arrow-body-style\n return { id: r.id, label: r.label, type: r.type || r.resourceType || this.searchResourceType.name, externalLink: r.externalLink };\n });\n if (!/Vlt-dropdown--expanded/.test(this.dropdown.className)) {\n this.showDropdown();\n }\n };\n if (this.meta.search) {\n const searchParams = this.meta.search.params || {};\n let searchUrl = `/fields/${this.meta.name}/search`;\n if (this.meta.search.url) {\n searchUrl = this.meta.search.url.replace(/\\${\\s*([\\w\\.]+)\\s*}/g, (match, key) => {\n if (searchParams.hasOwnProperty(key)) {\n const val = searchParams[key];\n delete searchParams[key];\n return val;\n }\n return '';\n });\n }\n for (const p of Object.keys(searchParams)) {\n searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}${encodeURIComponent(p)}=${encodeURIComponent(searchParams[p])}`;\n }\n searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}q=${encodeURIComponent(this.searchText)}`;\n this.searching = true;\n this.resourceService.getByPath(searchUrl).subscribe((results) => {\n showSearchresults(results);\n }, (error) => {\n delete this.searching;\n this.searchResults = [];\n this.searchError = error.error ? error.error.message || error.error : error.message || error;\n if (!/Vlt-dropdown--expanded/.test(this.dropdown.className)) {\n this.showDropdown();\n }\n });\n } else {\n if (!this.vr) {\n this.vr = this.metaResource.new({\n integrationCode: this.integrationCode,\n resourceType: null\n });\n }\n this.vr.searchIntegration(\n this.searchText,\n this.searchResourceType.name || this.searchResourceTypesScope\n ).subscribe((results: Array<any>) => {\n showSearchresults(results);\n }, (error) => {\n this.searching = false;\n this.searchResults = [];\n this.searchError = error.error ? error.error.message || error.error : error.message || error;\n if (!/Vlt-dropdown--expanded/.test(this.dropdown.className)) {\n this.showDropdown();\n }\n });\n }\n }\n\n onActivated(ev) {\n // ev.preventDefault();\n // ev.stopPropagation();\n this.input = ev.srcElement;\n if (!this.dropdown) {\n // this.dropdown = ev.srcElement.parentNode.parentNode;\n this.dropdown = this.elementRef.nativeElement.querySelector('.dropdown-wrapper');\n }\n this.showDropdown();\n }\n\n onBlur(ev) {\n let internalControl = false;\n if (ev.relatedTarget) {\n if (!this.elementRef.nativeElement.contains(ev.relatedTarget)) {\n this.dismissDropdown();\n } else {\n internalControl = true;\n }\n }\n if (this.keyListenerActive && !internalControl) {\n this.input.removeEventListener('keydown', this.keydown);\n setTimeout(() => {\n if (!this.keyListenerActive) {\n document.removeEventListener('click', this.clickout);\n }\n }, 400);\n delete this.keyListenerActive;\n }\n }\n\n removeSelection() {\n if (this.model && !this.suggestions.find((s) => (s.id === this.model.id && s.type === this.model.type))) {\n this.smartSuggestions.push({\n id: this.model.id,\n label: this.model.label,\n type: this.model.type,\n smart: true\n });\n }\n this.metaTracker.emit(this.buildTrackEvent('REMOVE'));\n this.clear();\n }\n\n onSuggestionSelect(ev, suggestion) {\n if (!suggestion) {\n return;\n }\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n this.metaTracker.emit(this.buildTrackEvent('SELECT'));\n if (this.multiple) {\n if (!this.model) {\n this.model = [];\n }\n let existingEntry;\n for (const entry of this.model) {\n if (suggestion.id && (entry.id === suggestion.id)) {\n existingEntry = entry;\n break;\n } else if (suggestion.label === entry.label) { // create new (google emails)\n existingEntry = entry;\n break;\n }\n }\n if (!existingEntry) {\n this.model.push(suggestion);\n }\n this.onModelChange(this.model);\n delete this.searchText;\n this.searchTextChanged.next();\n } else {\n this.model = suggestion;\n this.externalLink = suggestion.externalLink;\n this.onModelChange(suggestion);\n this.searchText = suggestion.label;\n this.activeSuggestionIndex = (this.searchResults || this.suggestions).indexOf(suggestion);\n }\n this.dismissDropdown();\n // if (this.isPolymorphic) {\n // this.searchResourceType = this.meta.reference.find((rt)=> {\n // return rt.name === suggestion.type;\n // });\n // }\n }\n\n showDropdown() {\n this.dropdownVisible = true;\n this.dropdown.classList.add('Vlt-dropdown--expanded');\n if (!this.keyListenerActive) {\n this.input.addEventListener('keydown', this.keydown);\n setTimeout(() => {\n document.addEventListener('click', this.clickout);\n }, 200);\n this.keyListenerActive = true;\n }\n if (typeof(this.activeSuggestionIndex) === 'undefined') {\n if (this.model && (this.searchResults || this.suggestions)) {\n for (let suggestionIndex = 0; suggestionIndex < (this.searchResults || this.suggestions).length; suggestionIndex++) {\n const item = (this.searchResults || this.suggestions)[suggestionIndex];\n if (this.model.id === item.id && this.model.type === item.type) {\n this.activeSuggestionIndex = suggestionIndex;\n break;\n }\n }\n }\n }\n this.ensureDropdownIsVisible();\n }\n\n dismissDropdown(event?) {\n this.dropdownVisible = false;\n if (event) {\n this.focus();\n }\n if (this.dropdown) {\n this.dropdown.classList.remove('Vlt-dropdown--expanded');\n }\n }\n\n clear() {\n this.prevModel = this.model;\n delete this.searchText;\n delete this.searchResults;\n delete this.model;\n delete this.activeSuggestionIndex;\n this.onModelChange(this.model);\n this.onSearchTextChanged(this.searchText);\n this.focus();\n }\n\n revert() {\n this.model = this.prevModel;\n delete this.prevModel;\n this.onModelChange(this.model);\n this.focus();\n }\n\n remove(ev, item) {\n ev.preventDefault();\n ev.stopPropagation();\n const optionIndex = this.model.indexOf(item);\n if (optionIndex !== -1) {\n this.model.splice(optionIndex, 1);\n if (!this.model.length) {\n delete this.model;\n delete this.value;\n }\n this.onModelChange(this.model);\n }\n }\n\n openResource(model?) {\n this.keyListenerActive = true; // suppress dropdown in this case\n setTimeout(() => {\n this.dismissDropdown();\n });\n const refDialogFactory = this.componentFactoryResolver.resolveComponentFactory(MetaRefDialog);\n this.metaTracker.emit(this.buildTrackEvent(model ? 'EDIT' : 'NEW'));\n let theme = this.elementRef.nativeElement.dataset.theme;\n if (!theme || theme === 'inherit') {\n let parentComponent = this.elementRef.nativeElement.closest('vgip-meta-layout');\n if (parentComponent) {\n theme = parentComponent.dataset.theme;\n }\n if (!theme || theme === 'inherit') {\n parentComponent = this.elementRef.nativeElement.closest('vgip-meta-resource');\n if (parentComponent) {\n theme = parentComponent.dataset.theme;\n }\n }\n }\n this.referenceService.openDialog(\n refDialogFactory, this.metaResource, this.integrationCode, this.meta.reference, model, null, this.searchResourceType.resourceType,\n theme\n ).subscribe((result: any) => {\n if (result) {\n this.parent[this.meta.name] = result;\n this.onChange.emit(result);\n const existingSuggestion = (this.meta.suggestions || []).find((s) => (s.id === result.id && s.type === result.type));\n if (existingSuggestion) {\n existingSuggestion.label = result.label;\n } else {\n if (!this.meta.suggestions) {\n this.meta.suggestions = [];\n }\n this.meta.suggestions.unshift(result);\n }\n this.metaTracker.emit(this.buildTrackEvent(model ? 'UPDATE' : 'CREATE', result.type || result.resourceType));\n } else {\n this.metaTracker.emit(this.buildTrackEvent(model ? 'CANCEL_EDIT' : 'CANCEL_UPDATE'));\n }\n });\n }\n\n private ensureDropdownIsVisible() {\n setTimeout(() => {\n const holder = this.dropdown.closest('.Vlt-card__content');\n if (holder) {\n const el = this.elementRef.nativeElement.querySelector('.Vlt-dropdown__panel');\n const elRect = el.getBoundingClientRect();\n const holderRect = holder.getBoundingClientRect();\n if (holderRect.top + holderRect.height < elRect.top + elRect.height) {\n el.scrollIntoView({ block: 'end' });\n }\n }\n }, 400);\n }\n\n private ensureDropdownOptionIsVisible() {\n if (!this.dropdownScrollContainer) {\n this.dropdownScrollContainer = this.dropdown.querySelector('.Vlt-dropdown__scroll');\n }\n if (this.dropdownScrollContainer && typeof (this.activeSuggestionIndex) === 'number') {\n const scrollTop = 44 * this.activeSuggestionIndex;\n const scrollBottom = 44 * (this.activeSuggestionIndex - 7);\n if (scrollTop < this.dropdownScrollContainer.scrollTop) {\n this.dropdownScrollContainer.scrollTop = scrollTop;\n } else if (scrollBottom > this.dropdownScrollContainer.scrollTop) {\n this.dropdownScrollContainer.scrollTop = scrollBottom;\n }\n }\n }\n\n private clickout = (event) => {\n const internalControl = this.elementRef.nativeElement.contains(event.target);\n if (internalControl && ['Vlt-dropdown__link', 'Vlt-dropdown__block'].indexOf(event.target.className) !== -1 ) {\n this.focus();\n } else if (!internalControl && event.target !== this.input && event.target.className !== 'Vlt-dropdown__title') {\n this.dismissDropdown();\n } else {\n if (!internalControl && internalControl.tagName !== 'INPUT') {\n this.focus();\n }\n }\n };\n\n private buildTrackEvent(action: string, value?: string) {\n const e: IMetaTrackerEvent = {\n integration: this.integrationCode,\n resource: this.model ? (this.model.type || this.model.resourceType) : this.searchResourceType.resourceType,\n field: this.meta.name,\n action\n };\n if (this.meta.$isContactable) {\n e.isContactable = true;\n }\n if (typeof(value) !== 'undefined') {\n e.value = value;\n }\n return e;\n }\n\n private buildPlaceholderLabel() {\n this.placeHolderLabel = this.meta.label;\n if (this.multiple && !this.isPolymorphic) {\n this.placeHolderLabel = '+Add ';\n } else {\n this.placeHolderLabel = (this.isSearchable && (this.multiple || !this.isPolymorphic)) ? 'Search ' : '';\n }\n this.placeHolderLabel += this.searchResourceType.resourceType ? this.searchResourceType.resourceType : this.searchResourceTypesScope;\n }\n\n private keydown = (event) => {\n switch (event.key) {\n case 'ArrowDown': {\n this.showDropdown();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = 0;\n } else {\n this.activeSuggestionIndex++;\n if (this.activeSuggestionIndex >= (this.searchResults || this.suggestions).length) {\n this.activeSuggestionIndex = 0;\n }\n }\n this.ensureDropdownOptionIsVisible();\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n case 'ArrowUp': {\n this.showDropdown();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = (this.searchResults || this.suggestions).length - 1;\n } else {\n this.activeSuggestionIndex--;\n if (this.activeSuggestionIndex < 0) {\n this.activeSuggestionIndex = (this.searchResults || this.suggestions).length - 1;\n }\n }\n this.ensureDropdownOptionIsVisible();\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n case 'Space':\n case 'Enter': {\n if (typeof (this.activeSuggestionIndex) !== 'undefined') {\n event.preventDefault();\n event.stopPropagation();\n this.onSuggestionSelect(event, (this.searchResults || this.suggestions)[this.activeSuggestionIndex]);\n delete this.activeSuggestionIndex;\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n event.stopPropagation();\n this.dismissDropdown();\n break;\n }\n case 'Backspace': {\n if (!this.multiple) {\n event.preventDefault();\n event.stopPropagation();\n this.removeSelection();\n }\n break;\n }\n }\n };\n\n private buildExternalLink() {\n if (this.model) {\n if (this.model.externalLink) {\n this.externalLink = this.model.externalLink;\n } else if (this.metaContext.profiles[this.integrationCode.toUpperCase()]) {\n delete this.externalLink;\n this.metaMsgService.sendMessage(\n this.integrationCode.toUpperCase(),\n {\n action: 'buildExternalLink',\n integrationCode: this.integrationCode,\n ref: this.model,\n profile: this.metaContext.profiles[this.integrationCode.toUpperCase()]\n },\n (response) => {\n if (!response.error) {\n this.externalLink = response.externalLink;\n } else {\n console.warn('No external link support for', this.integrationCode, this.model.resourceType || this.model.type);\n }\n }\n );\n }\n } else {\n delete this.externalLink;\n }\n }\n\n get disabled() {\n const superDisabled = this.logicalDisabled || this.validations.disabled || this.meta.disabled === true\n || (this.meta.updatable === false && this.isPersistedParent);\n this.searchResourceTypeMeta.disabled = superDisabled;\n return superDisabled;\n }\n\n get showTypes() {\n return (typeof (this.meta.showTypes) !== 'undefined') ? this.meta.showTypes : true;\n }\n\n get suggestions() {\n return this.smartSuggestions.concat(\n !this.searchResourceType.resourceType ?\n // eslint-disable-next-line max-len\n (this.asyncSuggestions || this.meta.suggestions || []) : (this.asyncSuggestions || this.meta.suggestions || []).filter((s) => s.type === this.searchResourceType.resourceType)\n );\n }\n\n get hasAppendButton() {\n if (!this.multiple && this.model) {\n if (this.isPolymorphic) {\n for (const ref of this.meta.reference) {\n if ((ref.name || ref.resourceType) === (this.model.type || this.model.resourceType)) {\n return ref.updatable || (ref.creatable && ref.updatable !== false);\n }\n }\n } else {\n return this.meta.reference.updatable || (this.meta.reference.creatable && this.meta.reference.updatable !== false); // VGIS-6911\n }\n } else if (this.meta.reference instanceof Array) {\n // setTimeout(() => {\n // this.searchResourceTypesScope = this.meta.reference.map(rt => rt.name).join(',');\n // }, 0);\n for (const rt of this.meta.reference) {\n if (rt.creatable) {\n return true;\n }\n }\n } else {\n return this.meta.reference.creatable;\n }\n }\n\n private searchSuggestions(params?) {\n let searchUrl = `/suggestions/${this.meta.name}/search`;\n if (this.meta.search) {\n if (this.meta.search.url) {\n searchUrl = this.meta.search.url.replace(/\\${\\s*([\\w\\.]+)\\s*}/g, (match, key) => {\n if (params.hasOwnProperty(key)) {\n const val = params[key];\n delete params[key];\n return val;\n }\n return '';\n });\n }\n for (const p of Object.keys(params)) {\n searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}${encodeURIComponent(p)}=${encodeURIComponent(params[p])}`;\n }\n this.searching = true;\n this.resourceService.getByPath(searchUrl).subscribe((result) => {\n delete this.searching;\n if (result) {\n let suggestions;\n suggestions = result;\n if (this.meta.search.extract) {\n suggestions = result[this.meta.search.extract];\n }\n if (suggestions instanceof Array !== true) {\n suggestions = [suggestions];\n }\n const asyncSuggestions = [];\n suggestions.forEach((s) => {\n if (s && s.id && s.type) { // TOOD check the type is acceptable\n asyncSuggestions.push({\n id: s.id,\n label: s.label || `${s.type}#${s.id}`,\n type: s.type\n });\n }\n });\n if (asyncSuggestions.length) {\n if (asyncSuggestions.length === 1) {\n this.parent[this.meta.name] = asyncSuggestions[0];\n } else {\n delete this.asyncSuggestions;\n }\n }\n this.asyncSuggestions = asyncSuggestions;\n }\n }, (err) => {\n delete this.searching;\n });\n }\n }\n\n get resourceService() {\n if (!this.metaResourceService) {\n const metaResourceConfig: IMetaResourceConfig = {\n integrationCode: this.integrationCode,\n resourceType: this.resourceType\n };\n this.metaResourceService = this.metaResource.new(metaResourceConfig);\n }\n return this.metaResourceService;\n }\n}\n","/*\n * @Author: Alexander.Vangelov@vonage.com \n * @Date: 2019-09-19 17:34:53 \n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-04-19 08:27:34\n */\n\nimport { Component, Input, OnInit } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\n// import { tMetaField } from '../../../metaTypes/tMetaField'\n\n@Component({\n templateUrl: './view.html'\n})\nexport class FieldComposite extends FieldAbstract implements OnInit {\n @Input() meta: any;\n\n ngOnInit() {\n // super.ngOnInit()\n if (this.isRow) {\n for (const f of this.meta.fields) {\n if (f.type === 'text') {\n f.type = 'string';\n }\n }\n }\n }\n\n get isRow() {\n return this.meta.subtype !== 'column';\n }\n\n get fields() {\n return (this.meta.fields || []).map((f) => {\n if (f.type === 'textarea') { // no textareas inside composite (use string)\n delete f.type;\n }\n return f;\n });\n }\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: 2020-03-26 12:57:51\n */\n\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\nimport { FieldAbstract } from '../fieldAbstract';\n// import { tMetaField } from '../../../metaTypes/tMetaField'\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n})\nexport class FieldBoolean extends FieldAbstract implements OnInit {\n @Input() meta: any;\n value: boolean;\n\n ngOnInit() {\n const origValue = this.parent[this.meta.name];\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (typeof (value) === 'object' && value !== null) {\n value = value.value || value.id || false;\n }\n if (!value && (typeof(this.prevModel) === 'boolean') && this.isPersistedParent) {\n value = false;\n }\n this.model = (value === true) || (value != null && (['true', '1'].indexOf(value.toString().toLowerCase()) !== -1));\n this.value = this.model;\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n if (typeof(origValue) !== 'undefined') {\n this.parent[this.meta.name] = origValue;\n }\n if (typeof(this.meta.default) !== 'undefined' && typeof(this.model) === 'undefined' && !(this.meta.default instanceof Array)) {\n setTimeout(() => {\n this.parent[this.meta.name] = this.meta.default;\n }, 0);\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-03-26 12:56:38\n */\n\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\nimport { FieldAbstract } from '../fieldAbstract';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n})\n\nexport class FieldRadio extends FieldAbstract implements OnInit {\n @Input() meta: any;\n value: any;\n\n ngOnInit() {\n this.validationAttributes = ['required'];\n const origValue = this.parent[this.meta.name];\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (value) {\n for (const o of this.options) {\n if ((value.id || value) === (o.id || o.value || o.name || o)) {\n this.model = o;\n this.value = this.modelToValue(o, this.meta.valueType);\n break;\n }\n }\n } else {\n delete this.model;\n delete this.value;\n }\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n \n if (origValue) {\n this.parent[this.meta.name] = origValue;\n }\n\n if (this.default && !this.model) {\n setTimeout(() => {\n this.parent[this.meta.name] = this.meta.valueType === 'object' ? this.default : (this.default.id || this.default);\n }, 0);\n }\n }\n\n onOptionChange(model) {\n this.model = model;\n this.onModelChange(this.model);\n }\n\n onActivated(ev) {\n if (!this.keyListenerActive) {\n ev.srcElement.addEventListener('keydown', this.keydown);\n }\n }\n\n onBlur(ev) {\n if (this.keyListenerActive) {\n ev.srcElement.removeEventListener('keydown', this.keydown);\n }\n }\n\n get options() {\n return this.meta.options || this.meta.picklist;\n }\n\n private keydown = (event) => {\n switch (event.key) {\n case 'Backspace': {\n event.preventDefault();\n event.stopPropagation();\n this.clear();\n break;\n }\n }\n };\n}\n","/*\n * @Author: Alexander.Vangelov@vonage.com \n * @Date: 2019-09-19 17:35:13 \n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-03-25 08:42:09\n */\n\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\nimport { FieldAbstract } from '../fieldAbstract';\nimport { min } from 'rxjs/operators';\n// import { tMetaField } from '../../../metaTypes/tMetaField'\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n})\nexport class FieldList extends FieldAbstract implements OnInit {\n items: Array<any> = [];\n value: any;\n\n ngOnInit() {\n const origValue = this.parent[this.meta.name];\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n this.model = [];\n if (value && value.length) {\n for (const i of value) {\n if (this.model.indexOf(i) === -1) {\n this.model.push(i);\n }\n }\n }\n this.value = this.model;\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: true,\n configurable: true\n });\n if (origValue) {\n this.parent[this.meta.name] = origValue;\n }\n if (!this.model && this.validations.min) {\n for (let i = 0; i < this.validations.min; i++) {\n this.add();\n }\n }\n }\n\n get list() {\n return this.meta.list || this.meta.reference;\n }\n\n add() {\n if (!this.model) {\n this.model = [];\n }\n if (!this.validations.max || (this.validations.max > this.model.length)) {\n this.model.push({});\n this.value = this.model;\n }\n }\n\n remove(itemIndex) {\n this.model.splice(itemIndex, 1);\n this.value = this.model;\n }\n}\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:35:13\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-03-26 17:15:50\n */\n\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\nimport { QUILL_CONFIG_TOKEN } from 'ngx-quill';\n\nimport { FieldAbstract } from '../fieldAbstract';\n// import { tMetaField } from '../../../metaTypes/tMetaField'\nimport { templateBuilder } from '../common/utils/templateBuilder';\nimport { MetaContextService } from '../services/metaContext';\n\nexport const quillConfig = {\n modules: {\n syntax: false,\n toolbar: [\n ['bold', 'italic', 'underline'],\n [{ list: 'bullet' }],\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\n [{ font: [] }],\n [{ align: [] }]\n ]\n }\n};\n\n@Component({\n templateUrl: './view.html',\n styleUrls: [\n './style.scss',\n './quill.scss'\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm },\n { provide: QUILL_CONFIG_TOKEN, useValue: quillConfig }\n ]\n})\nexport class FieldRichtext extends FieldAbstract implements OnInit {\n @Input() meta: any;\n active: boolean;\n\n constructor( private metaContext: MetaContextService ) {\n super();\n }\n\n static setup(instance, parent, meta) {\n const d = meta.default || meta.defaultValue;\n if (d && !parent[meta.name]) {\n if (typeof(d) === 'string') {\n parent[meta.name] = d;\n } else {\n parent[meta.name] = d.id || d.value;\n }\n }\n }\n\n ngOnInit() {\n if (typeof(this.parent[this.meta.name]) === 'string') {\n this.parent[this.meta.name] = templateBuilder(this.metaContext, this.parent[this.meta.name]);\n }\n // if (this.default && !this.model) {\n // setTimeout(()=>{\n // if (typeof(this.default) == 'string') {\n // this.parent[this.meta.name] = this.default;\n // } else {\n // this.parent[this.meta.name] = this.default.id || this.default.value;\n // }\n // }, 0);\n // }\n }\n\n onModelChangeLocal(value) {\n if (!value && this.prevModel && this.isPersistedParent) {\n value = '';\n }\n this.onModelChange(value);\n }\n\n textToSpeech() {\n this.focus();\n }\n\n}\n","/*\n* @Author: Alexander.Vangelov@vonage.com\n* @Date: 2020-04-18 18:05:46\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-04-18 21:09:16\n*/\n\nimport { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\nimport { FieldAbstract } from '../fieldAbstract';\nimport { relativeTimeBuilder } from '../common/utils/relativeTimeBuilder';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n})\nexport class FieldDatetime extends FieldAbstract implements OnInit {\n input: any;\n dropdown: any;\n activeSuggestionIndex: number;\n value: any;\n type: string;\n placeholder = 'dd/mm/yyyy';\n\n ngOnInit() {\n this.validationAttributes = ['required', 'min', 'max', 'step'];\n this.type = this.meta.type;\n if (this.meta.type === 'datetime') {\n this.type = 'datetime-local';\n this.placeholder += ' --:-- --';\n } else if (this.meta.type === 'time') {\n this.placeholder = '--:-- --';\n }\n const origValue = this.parent[this.meta.name];\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (value) {\n if (['datetime', 'date', 'datetime-local'].indexOf(this.meta.type || this.meta.subtype) !== -1 && value) {\n try {\n let date: Date;\n if ((typeof (value) === 'number')) {\n date = new Date(parseInt(value as any, 10));\n } else {\n if ('date' === (this.meta.type || this.meta.subtype)) {\n date = new Date(Date.parse(value));\n } else {\n date = new Date(Date.parse(`${value}Z`) + (new Date().getTimezoneOffset() * 60000));\n }\n }\n if (typeof (value) === 'number') {\n switch (this.meta.type || this.meta.subtype) {\n case 'datetime-local':\n case 'datetime': {\n this.model = `${date.getFullYear()}-${('00' + (date.getMonth() + 1)).slice(-2)}-${('00' + date.getDate()).slice(-2)}`;\n this.model += `T${('00' + date.getHours()).slice(-2)}:${('00' + date.getMinutes()).slice(-2)}`;\n break;\n }\n case 'date': {\n this.model = date.toISOString().split('T')[0];\n break;\n }\n }\n }\n if (this.meta.valueType === 'string') {\n if ((this.meta.type || this.meta.subtype) === 'date') {\n this.value = date.toISOString().split('T')[0];\n } else {\n this.value = date.toISOString();\n }\n } else {\n if ((this.meta.type || this.meta.subtype) === 'date') {\n date.setFullYear(date.getUTCFullYear());\n date.setMonth(date.getUTCMonth());\n date.setDate(date.getUTCDate());\n date.setMinutes(0);\n date.setHours(0);\n date.setSeconds(0);\n date.setMilliseconds(0);\n }\n this.value = date.getTime();\n }\n } catch (e) {\n console.error('Date parse error', e.message, `\"${value}\"`, `(${typeof (value)})`);\n }\n } else if ('time' === (this.meta.type || this.meta.subtype)) {\n try {\n let date: Date;\n if (typeof (value) === 'number') {\n date = new Date(parseInt(value as any, 10));\n } else {\n date = new Date(\n Date.parse(new Date().toISOString().replace(/T.*Z/, `T${value}Z`)) + (new Date().getTimezoneOffset() * 60000)\n );\n }\n this.model = date.toTimeString().split(' ')[0];\n this.value = date.getTime();\n } catch (e) {\n console.error('Date parse error', e.message, `\"${value}\"`, `(${typeof (value)})`);\n }\n }\n } else {\n delete this.model;\n delete this.value;\n }\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n if (typeof(origValue) !== 'undefined') {\n this.parent[this.meta.name] = origValue;\n }\n const d = this.meta.default || this.meta.defaultValue;\n if (d && typeof(this.model) === 'undefined') {\n const defaultValue = (typeof (d) === 'string') ? d : (d.id || d.value);\n if (defaultValue || defaultValue === 0) {\n if (/^(date|time)/.test(this.meta.type || this.meta.subtype) && typeof(defaultValue) === 'string') {\n this.parent[this.meta.name] = relativeTimeBuilder(this.meta.type || this.meta.subtype, defaultValue, this.validations.step);\n } else {\n this.parent[this.meta.name] = defaultValue;\n }\n }\n }\n if (typeof(this.meta.auto) === 'object') {\n Object.keys(this.meta.auto || {}).filter(n => ['gt', 'lt'].indexOf(n) !== -1).map(v => this.setupLogicalValidation(v));\n }\n }\n\n onActivated(ev) {\n this.input = ev.srcElement;\n if (!this.dropdown) {\n this.dropdown = ev.srcElement.parentNode.parentNode;\n }\n this.showDropdown();\n }\n\n clear(ev?) {\n delete this.model;\n this.onModelChange(this.model);\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n }\n }\n\n onBlur(ev) {\n let internalControl = false;\n if (ev.relatedTarget) {\n if (!this.elementRef.nativeElement.contains(ev.relatedTarget)) {\n this.dismissDropdown();\n } else {\n internalControl = true;\n }\n }\n if (this.keyListenerActive && !internalControl) {\n this.input.removeEventListener('keydown', this.keydown);\n setTimeout(() => {\n if (!this.keyListenerActive) {\n document.removeEventListener('click', this.clickout);\n }\n }, 400);\n delete this.keyListenerActive;\n }\n }\n\n onSuggestionSelect(ev, suggestion) {\n if (!suggestion) {\n return;\n }\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n this.dismissDropdown();\n this.model = suggestion;\n this.onModelChange(suggestion);\n }\n\n dismissDropdown(event?) {\n if (event) {\n this.focus();\n }\n if (this.dropdown) {\n this.dropdown.classList.remove('Vlt-dropdown--expanded');\n }\n }\n\n private ensureDropdownIsVisible() {\n setTimeout(() => {\n const holder = this.dropdown.closest('.Vlt-card__content');\n const el = this.elementRef.nativeElement.querySelector('.Vlt-dropdown__panel');\n const elRect = el.getBoundingClientRect();\n const holderRect = holder.getBoundingClientRect();\n if (holderRect.top + holderRect.height < elRect.top + elRect.height) {\n el.scrollIntoView({ block: 'end' });\n }\n }, 400);\n }\n\n private showDropdown() {\n if (this.meta.suggestions && this.meta.suggestions.length) {\n this.dropdown.classList.add('Vlt-dropdown--expanded');\n this.ensureDropdownIsVisible();\n }\n if (!this.keyListenerActive) {\n this.input.addEventListener('keydown', this.keydown);\n setTimeout(() => {\n document.addEventListener('click', this.clickout);\n }, 200);\n this.keyListenerActive = true;\n if (this.parent[this.meta.name]) {\n for (let suggestionIndex = 0; suggestionIndex < (this.meta.suggestions || []).length; suggestionIndex++) {\n if (this.meta.suggestions[suggestionIndex] === this.parent[this.meta.name]) {\n this.activeSuggestionIndex = suggestionIndex;\n }\n }\n }\n }\n }\n\n private clickout = (event) => {\n if (event.target.className === 'Vlt-dropdown__link' && this.elementRef.nativeElement.contains(event.target)) {\n this.focus();\n // this.dismissDropdown();\n // this.parent[this.meta.name] = event.target.textContent;\n\n } else if (event.target !== this.input && event.target.className !== 'Vlt-dropdown__title') {\n this.dismissDropdown();\n } else {\n this.focus();\n }\n };\n\n private keydown = (event) => {\n switch (event.key) {\n case 'ArrowDown': {\n if (['datetime', 'time', 'date', 'datetime-local'].indexOf(this.meta.type || this.meta.subtype) !== -1) {\n break;\n }\n this.showDropdown();\n event.preventDefault();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = 0;\n } else {\n this.activeSuggestionIndex++;\n if (this.activeSuggestionIndex >= this.suggestions.length) {\n this.activeSuggestionIndex = 0;\n }\n }\n break;\n }\n case 'ArrowUp': {\n if (['datetime', 'time', 'date', 'datetime-local'].indexOf(this.meta.type || this.meta.subtype) !== -1) {\n break;\n }\n this.showDropdown();\n event.preventDefault();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = this.suggestions.length - 1;\n } else {\n this.activeSuggestionIndex--;\n if (this.activeSuggestionIndex < 0) {\n this.activeSuggestionIndex = this.suggestions.length - 1;\n }\n }\n break;\n }\n case 'Space':\n case 'Enter': {\n if (typeof (this.activeSuggestionIndex) !== 'undefined') {\n event.preventDefault();\n event.stopPropagation();\n this.onSuggestionSelect(event, this.suggestions[this.activeSuggestionIndex]);\n delete this.activeSuggestionIndex;\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n event.stopPropagation();\n this.dismissDropdown();\n break;\n }\n }\n };\n\n get suggestions() {\n return this.meta.suggestions || [];\n }\n\n private autoSetValue(againstTimestamp, v, cfg) { \n const compareValue = relativeTimeBuilder(this.meta.type, cfg.offset, this.validations.step, againstTimestamp);\n if (this.model) {\n const currentValue = new Date(this.model).getTime();\n let isInvalid: boolean;\n if (v === 'gt') {\n isInvalid = compareValue > currentValue;\n } else if (v === 'lt') {\n isInvalid = currentValue > compareValue;\n }\n if (isInvalid) {\n this.parent[this.meta.name] = compareValue;\n }\n } else {\n this.parent[this.meta.name] = compareValue;\n }\n }\n\n private setupLogicalValidation(v: string) {\n const cfg = this.meta.auto[v];\n if (typeof(cfg.against) === 'string') {\n let againstValue = this.parent[cfg.against];\n try {\n let againstTimestamp = Date.parse(`${againstValue}Z`) + (new Date().getTimezoneOffset() * 60000);\n if (againstValue) {\n this.autoSetValue(againstTimestamp, v, cfg);\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(cfg.against)) {\n againstValue = value[cfg.against];\n if (againstValue) {\n againstTimestamp = Date.parse(`${againstValue}Z`) + (new Date().getTimezoneOffset() * 60000);\n this.autoSetValue(againstTimestamp, v, cfg);\n }\n }\n });\n } catch (e) {}\n }\n }\n}\n","/*\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-04-18 18:11:42\n */\n\nimport { Directive, Component, Input, Output, OnInit, ComponentFactoryResolver, \n ViewChild, ViewContainerRef, ElementRef, EventEmitter } from '@angular/core';\n\nimport { FieldAbstract } from './fieldAbstract';\nimport { FieldUnknown } from './fieldUnknown';\nimport { FieldText } from './fieldText';\nimport { FieldInput } from './fieldInput';\nimport { FieldSelect } from './fieldSelect';\nimport { FieldReference } from './fieldReference';\nimport { FieldComposite } from './fieldComposite';\nimport { FieldBoolean } from './fieldBoolean';\nimport { FieldRadio } from './fieldRadio';\nimport { FieldList } from './fieldList';\nimport { FieldRichtext } from './fieldRichtext';\nimport { FieldDatetime } from './fieldDatetime';\n\nconst FMAP = (fType) => {\n switch (fType) {\n case '':\n case null:\n case undefined:\n case 'number':\n // case 'datetime':\n // case 'time':\n // case 'date':\n case 'string': { // eslint-disable-line no-fallthrough\n return FieldInput;\n }\n case 'textarea':\n case 'text': {\n return FieldText;\n }\n case 'select':\n case 'options': {\n return FieldSelect;\n }\n case 'reference': {\n return FieldReference;\n }\n case 'composite': {\n return FieldComposite;\n }\n case 'boolean': {\n return FieldBoolean;\n }\n case 'radio': {\n return FieldRadio;\n }\n case 'list': {\n return FieldList;\n }\n case 'richtext': {\n return FieldRichtext;\n }\n case 'datetime':\n case 'time':\n case 'date': {\n return FieldDatetime;\n }\n default: {\n return FieldUnknown;\n }\n }\n};\n\n@Directive({\n selector: '[metaFieldContent]'\n})\nexport class MetaFieldContentDirective {\n constructor(public viewContainerRef: ViewContainerRef) { }\n}\n\n@Component({\n selector: 'vgip-meta-field',\n template: '<ng-template metaFieldContent>Loading</ng-template>',\n styleUrls: ['./field.scss'],\n entryComponents: [\n FieldUnknown,\n FieldInput,\n FieldText,\n FieldSelect,\n FieldReference,\n FieldComposite,\n FieldBoolean,\n FieldRadio,\n FieldList,\n FieldRichtext,\n FieldDatetime\n ]\n})\nexport class MetaField extends FieldAbstract implements OnInit {\n @Input() meta: any;\n @Input() parent: any;\n @Input() integrationCode: any;\n @Input() resourceType: any;\n @Input() index: number;\n @Input() preview: boolean;\n @Input() theme: string;\n // eslint-disable-next-line\n @Output() onChange = new EventEmitter();\n // eslint-disable-next-line\n @Output() onLeave = new EventEmitter();\n\n @ViewChild(MetaFieldContentDirective, { static: true }) fieldContent: MetaFieldContentDirective;\n\n constructor(public componentFactoryResolver: ComponentFactoryResolver, private el: ElementRef) {\n super();\n }\n\n ngOnInit() {\n const component = FMAP(this.meta.type);\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(component);\n\n this.fieldContent.viewContainerRef.clear();\n const componentRef = this.fieldContent.viewContainerRef.createComponent(componentFactory);\n const field: FieldAbstract = componentRef.instance;\n if (component.setup) {\n // console.log('setup', {a: this.el.nativeElement.parentNode.parentNode})\n component.setup(field, this.parent, this.meta);\n }\n field.meta = this.meta;\n field.parent = this.parent;\n field.integrationCode = (this.integrationCode || '').toLowerCase();\n field.resourceType = (this.resourceType || '');\n field.index = this.index;\n field.elementRef = this.el;\n field.onChange = this.onChange;\n field.onLeave = this.onLeave;\n field.preview = this.preview;\n field.theme = this.theme;\n Object.defineProperty(field.meta, 'unset', {\n value: false,\n writable: true,\n configurable: true,\n enumerable: false\n });\n }\n}\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:35:28\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2021-03-24 22:55:34\n */\n\nimport { Component, Input, ChangeDetectorRef, OnInit, OnChanges,\n ElementRef, AfterContentChecked, ComponentFactoryResolver } from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\n\nimport { MetaResourceService } from '../services/metaResource';\nimport { MetaRefDialog } from '../refDialog';\nimport { MetaReferenceService } from '../services/metaReference';\nimport { metaDark, metaLight } from '../common/utils/colorThemes';\n\n// import { tMetaLayout } from '../definitions/tMetaLayout';\n\n@Component({\n selector: 'vgip-meta-layout',\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n entryComponents: [\n MetaRefDialog\n ]\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 refDialogFactory: any;\n parentForm: HTMLFormElement;\n integrationCode: string;\n resourceType: string;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\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 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 openChild(childResource, childModel?) {\n childResource.reference.parent = this.resource._vgis; // eslint-disable-line no-underscore-dangle\n if (!this.refDialogFactory) {\n this.refDialogFactory = this.componentFactoryResolver.resolveComponentFactory(MetaRefDialog);\n }\n this.referenceService.openDialog(\n this.refDialogFactory, 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 this.resource[childResource.name].push(result.raw);\n }\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 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","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.picklist || []\n };\n f.type = field.name ? 'radio' : 'missing name';\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>) => {\n if (fields instanceof Array) {\n return 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: field.name ? 'composite' : 'missing name',\n label: field.label,\n name: field.name,\n fields: uniqueNameFilter(field.fields || field.reference || [], uniqFieldNames).map((v) => fieldNormalizer(v, uniqFieldNames))\n };\n } else if (fieldType === 'list') {\n const list = field.list || field.reference;\n if (!list.name && list.type === 'composite') {\n list.name = field.name;\n }\n f = {\n type: field.name ? 'list' : 'missing name',\n label: field.label,\n name: field.name,\n list: fieldNormalizer(uniqueNameFilter(list, uniqFieldNames), uniqFieldNames)\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.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: 2020-09-03 09:42:12\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\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.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.search) {\n f.search = {\n params: {\n contactId: 'contact#id'\n },\n url: '../Contact/${contactId}?expand=company',\n extract: 'company'\n };\n }\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 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 } else if (resourceType === 'Task') {\n metaV3.layout.children = [{\n label: 'Subtasks',\n name: 'subTasks',\n reference: {\n resourceType: 'Subtask',\n label: 'Subtask'\n }\n }];\n } else if (resourceType === 'Comment') {\n metaV3.layout.editable = false;\n }\n } else if (integrationCode === 'ZENDESK') {\n if (resourceType === 'Ticket') {\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 } 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 }\n\n return sortObj(metaV3);\n};\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:35:28\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-09-03 13:22:14\n */\n\nimport { Component, Input, ChangeDetectorRef, OnInit, Output, EventEmitter, OnChanges,\n ElementRef, ComponentFactoryResolver } from '@angular/core';\n\nimport { MetaResourceService, IMetaResourceConfig } from '../services/metaResource';\nimport { MetaContextService } from '../services/metaContext';\nimport { MetaMsgService } from '../services/metaMsg';\n\nimport { metaNormalizer } from '../common/metaNormalizer';\nimport { templateBuilder } from '../common/utils/templateBuilder';\nimport { metaDark, metaLight } from '../common/utils/colorThemes';\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 @Output() public done = new EventEmitter();\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 componentFactoryResolver: ComponentFactoryResolver,\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 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.ref && this.resource.ref.activity) { // reuse failed autoactivities data \n this.model = this.resource.ref.activity;\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 editMode() {\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.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 }, \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 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 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 this.model._vgis.timeZoneOffsetInMinutes = new Date().getTimezoneOffset();\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.close(result);\n delete this.busy;\n }, (errorResult) => {\n this.formErrors = errorResult.error;\n delete this.busy;\n });\n } else {\n this.formErrors = Object.keys(resourceForm.controls)\n .filter((c) => resourceForm.controls[c].invalid).join(', ');\n // .map((f) => this.niceFields(this.currentResource).label).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 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.fields && f.fields.length) {\n extractSectionFields(f);\n } else {\n this.resource.niceFields[f.name] = 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 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()] : 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 }\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 });\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","/*\n * @Author: Alexander.Vangelov@vonage.com \n * @Date: 2019-09-19 17:35:28 \n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-05-03 21:30:58\n */\n\nimport { Component, Input, OnInit, ComponentFactoryResolver } from '@angular/core';\n\nimport { MetaResourceService } from '../services/metaResource';\nimport { MetaRefDialog } from '../refDialog';\nimport { MetaReferenceService } from '../services/metaReference';\n\n// import { tMetaLayout } from '../definitions/tMetaLayout';\n\n@Component({\n selector: 'vgip-meta-resource-card',\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n entryComponents: [\n MetaRefDialog\n ]\n})\nexport class MetaResourceCard implements OnInit {\n @Input() resource: any;\n @Input() model: any;\n\n integrationCode: string;\n refDialogFactory: any;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private metaResource: MetaResourceService,\n private referenceService: MetaReferenceService\n ) {}\n\n ngOnInit() {\n this.integrationCode = (this.resource.integration || this.resource.integrationCode || '').toLowerCase();\n }\n\n open(reference, model?) {\n if (!this.refDialogFactory) {\n this.refDialogFactory = this.componentFactoryResolver.resolveComponentFactory(MetaRefDialog);\n }\n this.referenceService.openDialog(\n this.refDialogFactory, this.metaResource, this.integrationCode, reference, model, \n model && (reference.editable === false) // is preview mode\n ).subscribe((result: any) => {\n console.log('dialog result', result);\n // if (result && result.raw) {\n // if (!this.parent[reference.type]) {\n // this.parent[reference.type] = [];\n // }\n // this.parent[reference.type].push(result.raw);\n // }\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: 2019-11-05 13:46:18\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'metaIcons'\n})\nexport class MetaIconsPipe implements PipeTransform {\n\n constructor(protected sanitizer: DomSanitizer) { }\n\n transform(value: any, ...args: any[]): any {\n if (value) {\n value = value.replace(\n /\\${\\s*icon:([\\w\\-]+)\\s*}/g, \n (match, val) => `<svg class='Vlt-icon'><use xlink:href=\"volta/volta-icons.svg#${val}\"/></svg>`\n );\n return this.sanitizer.bypassSecurityTrustHtml(value);\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: 2019-11-05 13:46:26\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'metaModel',\n pure: true\n})\nexport class MetaModelPipe implements PipeTransform {\n\n constructor() {\n }\n\n transform(value: any, args?: any): any {\n return value;\n }\n}\n","/*\n* @Author: Alexander.Vangelov@vonage.com\n* @Date: 2020-04-14 12:15:36\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-04-14 12:21:57\n*/\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'metaStripHtml'\n})\nexport class MetaStripHtmlPipe implements PipeTransform {\n transform(value: string): any {\n return value.replace(/<[^>]*>/g, '');\n }\n}\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","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2020-02-10 18:47:45\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-02-28 13:29:23\n */\n\nexport interface IStoreRecord {\n id?: string | number;\n}\n\nexport interface IStore {\n initCollection(collectionName: string, items?: Array<IStoreRecord>, callback?: (err, result?) => void): any;\n findById(collectionName, id: number | string, callback?: (err, result?) => void): any;\n save(collectionName: string, record: any, callback?: (err, result?) => void): any;\n find(collectionName: string, conditions: any, options: any, callback: (err, result?) => void);\n findOne(collectionName: string, conditions: any, options: any, callback?: (err, result?) => void);\n}\n\nexport class IndexedDbStore implements IStore {\n indxDb: IDBFactory;\n db: IDBDatabase;\n dbName: string;\n\n constructor(dbName: string = 'vgip') {\n this.dbName = dbName;\n this.indxDb = window.indexedDB || (window as any).mozIndexedDB || (window as any).webkitIndexedDB || (window as any).msIndexedDB;\n }\n\n _getDb(callback: (err, result?) => void) {\n const self = this;\n if (this.db) {\n return callback(null, this.db);\n }\n const req = this.indxDb.open(this.dbName);\n req.onupgradeneeded = (ev: any) => {\n self.db = ev.target.result;\n const objectStore = self.db.createObjectStore('Draft', { keyPath: 'id', autoIncrement: true });\n objectStore.createIndex('contextIndex', 'context', { unique: false });\n objectStore.createIndex('contextintegrationIndex', ['context', 'integration'], { unique: false });\n objectStore.createIndex('contextintegrationresourceIndex', ['context', 'integration', 'resource'], { unique: true });\n };\n if (callback) {\n req.onsuccess = (ev: any) => {\n self.db = ev.target.result;\n callback(null, self.db);\n };\n }\n req.onerror = (ev: any) => {\n if (callback) {\n callback(ev.error);\n }\n };\n }\n\n initCollection(collectionName: string, items: Array<IStoreRecord> = [], callback: (err, result?) => void) {\n const self = this;\n this._getDb((err) => { // eslint-disable-line no-underscore-dangle\n if (err && callback) {\n return callback(err);\n }\n if (callback) {\n callback(null, self.db);\n }\n });\n }\n\n reset(callback: (err, result?) => void) {\n this._getDb((err) => { // eslint-disable-line no-underscore-dangle\n if (err) {\n return callback(err);\n }\n this.db.close();\n this.indxDb.deleteDatabase(this.dbName);\n delete this.db;\n this._getDb(callback); // eslint-disable-line no-underscore-dangle\n });\n }\n\n findById(collectionName: string, id: number | string, callback: (err, result?) => void): any {\n const tx = this.db.transaction([collectionName]);\n const store = tx.objectStore(collectionName);\n const request = store.get(parseInt(`${id}`, 10));\n if (callback) {\n request.onerror = () => {\n callback(request.error);\n };\n }\n request.onsuccess = () => {\n if (!request.result) {\n callback({ message: 'Not Found' });\n } else if (callback) {\n callback(null, request.result);\n }\n };\n }\n\n destroyById(collectionName: string, id: number | string, callback: (err, result?) => void): any {\n const tx = this.db.transaction([collectionName], 'readwrite');\n const store = tx.objectStore(collectionName);\n const request = store.delete(parseInt(`${id}`, 10));\n if (callback) {\n request.onerror = () => {\n callback(request.error);\n };\n }\n request.onsuccess = () => {\n if (callback) {\n callback(null, request.result);\n }\n };\n }\n\n findOne(collectionName: string, conditions: any, options: any, callback?: (err, result?) => void): any {\n const tx = this.db.transaction([collectionName]);\n const store = tx.objectStore(collectionName);\n const conditionsKeys = Object.keys(conditions);\n let idx: IDBIndex;\n let req: IDBRequest;\n if (conditionsKeys.length > 1) {\n const vals = [];\n conditionsKeys.forEach((key) => vals.push(conditions[key]));\n idx = store.index(`${conditionsKeys.join('')}Index`);\n req = idx.get(vals);\n } else {\n idx = store.index(`${conditionsKeys[0]}Index`);\n req = idx.get(conditions[conditionsKeys[0]]);\n }\n if (callback) {\n req.onerror = () => {\n callback(req.error);\n };\n }\n req.onsuccess = (ev: any) => {\n if (!ev.target.result) {\n callback({ message: 'Not Found' });\n } else if (callback) {\n callback(null, ev.target.result);\n }\n };\n }\n\n find(collectionName: string, conditions: any, options: any, callback?: (err, result?) => void): Array<IStoreRecord> | any {\n const tx = this.db.transaction([collectionName]);\n const store = tx.objectStore(collectionName);\n const conditionsKeys = Object.keys(conditions);\n let idx: IDBIndex;\n let req: IDBRequest;\n if (conditionsKeys.length > 1) {\n const vals = [];\n conditionsKeys.forEach((key) => vals.push(conditions[key]));\n idx = store.index(`${conditionsKeys.join('')}Index`);\n req = idx.openCursor(vals);\n } else {\n idx = store.index(`${conditionsKeys[0]}Index`);\n req = idx.openCursor(conditions[conditionsKeys[0]]);\n }\n req.onerror = () => {\n if (callback) {\n callback(req.error);\n }\n };\n const items = [];\n req.onsuccess = (ev: any) => {\n const cursor = ev.target.result;\n if (cursor) {\n items.push(cursor.value);\n cursor.continue();\n } else if (callback) {\n callback(null, items);\n }\n };\n }\n\n save(collectionName: string, model: any, callback?: (err, result?) => void) {\n const record = model; // model.toJson(true, false);\n const createNew = () => {\n const txN = this.db.transaction([collectionName], 'readwrite');\n const request = txN.objectStore(collectionName).add(record);\n if (callback) {\n request.onerror = () => callback(request.error);\n }\n request.onsuccess = () => {\n record.id = request.result;\n if (callback) {\n callback(null, record);\n }\n };\n };\n\n const updateOldById = (id) => {\n const txO = this.db.transaction([collectionName], 'readwrite');\n const storeW = txO.objectStore(collectionName);\n const getRequest = storeW.get(id);\n if (callback) {\n getRequest.onerror = () => callback(getRequest.error);\n }\n getRequest.onsuccess = () => {\n const existing = getRequest.result;\n if (!existing) {\n callback({ message: 'Not Found' });\n } else {\n for (const p of Object.keys(record)) {\n existing[p] = record[p];\n }\n const updateRequest = storeW.put(existing);\n updateRequest.onerror = () => callback(updateRequest.error);\n updateRequest.onsuccess = (ev: any) => {\n if (typeof (callback) === 'function') {\n callback(null, existing);\n }\n };\n }\n };\n };\n\n if (record.id) {\n updateOldById(record.id);\n } else if (record.integration && record.resource) {\n this.findOne(collectionName, {\n context: record.context || '',\n integration: record.integration || '',\n resource: record.resource || ''\n }, null, (err, existing) => {\n if (!existing) {\n createNew(); \n } else {\n updateOldById(existing.id);\n }\n });\n } else {\n createNew();\n }\n }\n}\n","/*\n * @Author: Alexander.Vangelov@vonage.com \n * @Date: 2020-02-10 17:35:19 \n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-02-13 06:17:24\n */\n\nimport { Injectable } from '@angular/core';\n\nimport { IndexedDbStore } from '../../common/utils/indexedDbStore';\nimport { MetaContextService } from '../metaContext';\n\nconst COLELCTION = 'Draft';\n\nexport interface IDraft {\n id: string | number;\n integrationCode: string;\n resourceType: string;\n contextUid: string;\n timestamp: number;\n data?: string;\n}\n@Injectable({\n providedIn: 'root'\n})\nexport class ResourceDraftsService {\n store: IndexedDbStore;\n db: any;\n constructor(private context: MetaContextService) {\n this.store = new IndexedDbStore('vgip');\n }\n\n init(cb?: (err, db?) => void) {\n if (!this.db) {\n this.store.initCollection(COLELCTION, null, (err, db) => {\n this.db = db;\n cb(err, this.db);\n });\n } else {\n cb(null, this.db);\n }\n }\n\n list(integrationCode, resourceType, cb: (err, drafts?: Array<IDraft>) => void) {\n console.log('list drafts', this.context.uid, integrationCode, resourceType);\n }\n\n save(integrationCode, resourceType, draft, cb?: (err, draft?: IDraft) => void) {\n const now = new Date().getTime();\n this.store.save(COLELCTION, {\n context: this.context.uid || '',\n integration: integrationCode || '',\n resource: resourceType || '',\n timestamp: now,\n data: draft\n }, cb);\n }\n\n findOne(integrationCode, resourceType, cb: (err, drafts?: IDraft) => void) {\n this.store.findOne(COLELCTION, {\n context: this.context.uid || '',\n integration: integrationCode || '',\n resource: resourceType || ''\n }, null, cb);\n }\n\n find(params, cb: (err, drafts?: Array<IDraft>) => void) {\n this.store.find(COLELCTION, params, null, cb);\n }\n\n findById(draftId, cb?: (err, drafts?: IDraft) => void) {\n this.store.findById(COLELCTION, draftId, cb);\n }\n\n destroyDraft(draft, cb?: (err, drafts?: IDraft) => void) {\n if (draft && draft.id) {\n this.store.destroyById(COLELCTION, draft.id, cb);\n }\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-02-09 16:57:29\n */\n\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\n\nimport { QuillModule } from 'ngx-quill';\n\nimport { MetaField, MetaFieldContentDirective } from './field';\nimport { MetaRefDialog } from './refDialog';\nimport { MetaLayout } from './layout';\nimport { MetaResource } from './resource';\nimport { MetaResourceCard } from './resourceCard';\nimport { FieldUnknown } from './fieldUnknown';\nimport { FieldInput } from './fieldInput';\nimport { FieldText } from './fieldText';\nimport { FieldSelect } from './fieldSelect';\nimport { FieldReference } from './fieldReference';\nimport { FieldComposite } from './fieldComposite';\nimport { FieldBoolean } from './fieldBoolean';\nimport { FieldRadio } from './fieldRadio';\nimport { FieldList } from './fieldList';\nimport { FieldRichtext } from './fieldRichtext';\nimport { FieldDatetime } from './fieldDatetime';\n\nimport { MetaIconsPipe } from './common/metaIcons.pipe';\nimport { MetaModelPipe } from './common/metaModel.pipe';\nimport { MetaStripHtmlPipe } from './common/metaStripHtml.pipe';\nimport { MetaAutofocusDirective } from './common/metaAutofocus.directive';\nimport { MetaContextService } from './services/metaContext';\nimport { MetaTrackerService } from './services/metaTracker';\nimport { ResourceDraftsService } from './services/resourceDrafts';\nimport { MetaMsgService } from './services/metaMsg';\nimport { MetaReferenceService } from './services/metaReference';\nimport { MetaResourceService } from './services/metaResource';\nimport { MetaHttpClient } from './services/metaResource/metaHttpClient';\nimport { relativeTimeBuilder } from './common/utils/relativeTimeBuilder';\n\nexport * from './common/utils/colorThemes';\nexport * from './common/metaNormalizer';\n\n@NgModule({\n declarations: [\n MetaIconsPipe,\n MetaModelPipe,\n MetaStripHtmlPipe,\n MetaField, \n MetaRefDialog,\n MetaFieldContentDirective,\n MetaLayout,\n MetaResource,\n MetaResourceCard,\n FieldUnknown,\n FieldInput,\n FieldText,\n FieldSelect,\n FieldReference,\n FieldComposite,\n FieldBoolean,\n FieldRadio,\n FieldList,\n FieldRichtext,\n FieldDatetime,\n MetaAutofocusDirective\n ],\n exports: [\n MetaIconsPipe,\n MetaModelPipe,\n MetaStripHtmlPipe,\n MetaField,\n MetaLayout,\n MetaResource,\n MetaResourceCard,\n MetaAutofocusDirective\n ],\n imports: [\n CommonModule,\n FormsModule, \n ReactiveFormsModule,\n HttpClientModule,\n QuillModule.forRoot({\n modules: {\n toolbar: [\n ['bold', 'italic', 'underline'],\n [{ list: 'bullet' }],\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\n [{ font: [] }],\n [{ align: [] }]\n ]\n }\n })\n ]\n})\nexport class MetaModule {\n static withProviders(customProviders: any): ModuleWithProviders<MetaModule> {\n return {\n ngModule: MetaModule,\n providers: customProviders\n };\n }\n}\n\nexport { \n MetaField, MetaFieldContentDirective, MetaRefDialog, MetaResourceCard,\n MetaIconsPipe, MetaModelPipe, MetaStripHtmlPipe, MetaAutofocusDirective,\n FieldUnknown, FieldInput, FieldText, FieldSelect, MetaLayout, MetaResource,\n FieldBoolean, FieldRadio, FieldList, FieldComposite, FieldReference,\n FieldRichtext, FieldDatetime, MetaContextService, MetaTrackerService, ResourceDraftsService,\n MetaMsgService, MetaReferenceService, MetaResourceService, MetaHttpClient,\n relativeTimeBuilder\n};\n","/*\n * Public API Surface of meta-ui\n */\n\nexport * from './lib';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["BehaviorSubject","debounceTime","distinctUntilChanged","Directive","Component","Injectable","ControlContainer","NgForm","Input","Observable","ApplicationRef","Injector","Router","HttpParams","HttpHeaders","HttpClient","ElementRef","ComponentFactoryResolver","EventEmitter","Subject","QUILL_CONFIG_TOKEN","ViewContainerRef","Output","ViewChild","ChangeDetectorRef","Pipe","DomSanitizer","NgModule","CommonModule","FormsModule","ReactiveFormsModule","HttpClientModule","QuillModule"],"mappings":"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"}