@vgip/meta-ui 2.2.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"vgip-meta-ui.mjs","sources":["../../../projects/meta-ui/src/lib/common/utils/colorThemes.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/common/utils/templateBuilder.ts","../../../projects/meta-ui/src/lib/services/metaResource/metaHttpClient.ts","../../../projects/meta-ui/src/lib/services/metaResource/index.ts","../../../projects/meta-ui/src/lib/services/metaContext/index.ts","../../../projects/meta-ui/src/lib/services/metaMsg/index.ts","../../../projects/meta-ui/src/lib/common/utils/resourceCardLabel.ts","../../../projects/meta-ui/src/lib/services/metaReference/index.ts","../../../projects/meta-ui/src/lib/common/utils/smartProp.ts","../../../projects/meta-ui/src/lib/fieldAbstract.ts","../../../projects/meta-ui/src/lib/metaField/index.ts","../../../projects/meta-ui/src/lib/layout/index.ts","../../../projects/meta-ui/src/lib/layout/view.html","../../../projects/meta-ui/src/lib/common/metaAutofocus.directive.ts","../../../projects/meta-ui/src/lib/resource/index.ts","../../../projects/meta-ui/src/lib/resource/view.html","../../../projects/meta-ui/src/lib/refDialog/index.ts","../../../projects/meta-ui/src/lib/refDialog/view.html","../../../projects/meta-ui/src/lib/resourceCard/index.ts","../../../projects/meta-ui/src/lib/resourceCard/view.html","../../../projects/meta-ui/src/lib/fieldUnknown/index.ts","../../../projects/meta-ui/src/lib/fieldUnknown/view.html","../../../projects/meta-ui/src/lib/common/utils/relativeTimeBuilder.ts","../../../projects/meta-ui/src/lib/common/metaModel.pipe.ts","../../../projects/meta-ui/src/lib/fieldInput/index.ts","../../../projects/meta-ui/src/lib/fieldInput/view.html","../../../projects/meta-ui/src/lib/fieldText/index.ts","../../../projects/meta-ui/src/lib/fieldText/view.html","../../../projects/meta-ui/src/lib/fieldSelect/index.ts","../../../projects/meta-ui/src/lib/fieldSelect/view.html","../../../projects/meta-ui/src/lib/services/metaTracker/index.ts","../../../projects/meta-ui/src/lib/fieldReference/index.ts","../../../projects/meta-ui/src/lib/fieldReference/view.html","../../../projects/meta-ui/src/lib/fieldComposite/index.ts","../../../projects/meta-ui/src/lib/fieldComposite/view.html","../../../projects/meta-ui/src/lib/fieldBoolean/index.ts","../../../projects/meta-ui/src/lib/fieldBoolean/view.html","../../../projects/meta-ui/src/lib/fieldRadio/index.ts","../../../projects/meta-ui/src/lib/fieldRadio/view.html","../../../projects/meta-ui/src/lib/fieldList/index.ts","../../../projects/meta-ui/src/lib/fieldList/view.html","../../../projects/meta-ui/src/lib/fieldRichtext/index.ts","../../../projects/meta-ui/src/lib/fieldRichtext/view.html","../../../projects/meta-ui/src/lib/fieldDatetime/index.ts","../../../projects/meta-ui/src/lib/fieldDatetime/view.html","../../../projects/meta-ui/src/lib/fieldHidden/index.ts","../../../projects/meta-ui/src/lib/fieldHidden/view.html","../../../projects/meta-ui/src/lib/common/metaIcons.pipe.ts","../../../projects/meta-ui/src/lib/common/metaStripHtml.pipe.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":["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","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 if (field.type === 'float' || field.subtype === 'float') {\n f.validations = {\n step: field.step || '0.01'\n }\n }\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.acceptNew) {\n f.acceptNew = field.acceptNew;\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 if (field.rows) {\n f.rows = field.rows;\n }\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 if (f.reference instanceof Array) {\n for (const r of f.reference) { // not using forEach on purpose as it is based on callback functions execution\n if (r.defaultValue) {\n r.default = r.defaultValue; // nomralize to V3 protocol naming conventions\n delete r.defaultValue;\n }\n }\n }\n } else if (field.references) {\n f.references = field.references;\n }\n if (field.acceptNew) {\n f.acceptNew = field.acceptNew;\n }\n if (field.searchLabel) {\n f.searchLabel = field.searchLabel;\n }\n if (field.searchUrl || field.searchParams) {\n f.search = {\n url: field.searchUrl,\n params: field.searchParams\n };\n } else if (field.search) {\n f.search = field.search;\n }\n return f;\n};\n","export const radioFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name,\n options: field.options || []\n };\n f.type = field.name ? 'radio' : 'missing name';\n if (field.picklist) {\n for (const o of field.picklist) {\n const opt: any = {\n id: o.name || o.id,\n label: o.label\n };\n if (field.for) {\n opt.for = field.for;\n }\n if (o.validFor && field.controllerName) {\n const validFor = {};\n validFor[field.controllerName] = o.validFor;\n opt.for = validFor;\n }\n f.options.push(opt);\n if (o.defaultValue && !field.default) {\n f.default = opt.id;\n }\n }\n }\n return f;\n};\n","/*\n * @Author: Alexander.Vangelov@vonage.com \n * @Date: 2019-09-19 17:34:34 \n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2021-03-22 17:11:01\n */\n\n export const richtextFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name\n };\n f.type = field.name ? 'richtext' : 'missing name'; \n return f;\n};\n","/*\n* @Author: Alexander.Vangelov@vonage.com\n* @Date: 2021-03-22 17:09:12\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2026-02-11 20:29:50\n*/\nexport const uniqueNameFilter = (fields: Array<any>, uniqFieldNames: Array<string>, allowDuplicates = false) => {\n if (fields instanceof Array) {\n return allowDuplicates ? fields : fields.filter((f) => {\n if (f.name && !f.visible && !f.hidden) {\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 const 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 Object.assign(f, numberFieldNormalizer(field));\n } else if (['picklist', 'select', 'multipicklist', 'options'].indexOf(fieldType) !== -1) {\n Object.assign(f, optionsFieldNormalizer(field));\n } else if (['string', null, undefined, '', 'email', 'phone', 'url', 'combobox'].indexOf(fieldType) !== -1) {\n Object.assign(f, stringFieldNormalizer(field));\n } else if (['bool', 'boolean', 'checkbox', 'switch'].indexOf(fieldType) !== -1) {\n Object.assign(f, booleanFieldNormalizer(field));\n } else if (['text', 'textarea'].indexOf(fieldType) !== -1) {\n Object.assign(f, textFieldNormalizer(field));\n } else if (['richtext'].indexOf(fieldType) !== -1) {\n Object.assign(f, richtextFieldNormalizer(field));\n } else if (['date', 'time', 'datetime', 'datetime-local'].indexOf(fieldType) !== -1) {\n Object.assign(f, datetimeFieldNormalizer(field));\n } else if (['reference', 'references', 'multireference'].indexOf(fieldType) !== -1) {\n Object.assign(f, referenceFieldNormalizer(field));\n } else if (['radio'].indexOf(fieldType) !== -1) {\n Object.assign(f, radioFieldNormalizer(field));\n } else if (fieldType === 'composite') {\n Object.assign(f, {\n type: 'composite',\n label: field.label,\n name: field.name,\n fields: uniqueNameFilter(\n field.fields || field.reference || [],\n uniqFieldNames,\n (typeof(field.name) !== 'undefined')\n ).map((v) => fieldNormalizer(v, uniqFieldNames))\n });\n if (field.subtype) {\n f.subtype = field.subtype;\n }\n } else if (fieldType === 'list') {\n const list = field.list || field.reference;\n Object.assign(f, {\n type: field.name ? 'list' : 'missing name',\n label: field.label,\n name: field.name,\n list: fieldNormalizer(uniqueNameFilter(list, uniqFieldNames), field.name ? [] : uniqFieldNames)\n });\n if (field.selectable) {\n f.selectable = field.selectable;\n }\n if (field.resourceType) {\n f.resourceType = field.resourceType;\n }\n } else if (fieldType === 'hidden') {\n Object.assign(f, {\n name: field.name,\n type: 'hidden'\n });\n } else {\n Object.assign(f, {\n label: field.label,\n name: field.name,\n type: `@v2 ${fieldType}`\n });\n }\n if (field.validations) {\n Object.assign(f.validations, field.validations);\n }\n if (field.auto) {\n f.auto = field.auto;\n }\n if ((field.default || field.defaultValue) && !f.default) {\n const d = field.default || field.defaultValue;\n if (Array.isArray(d)) {\n f.default = [];\n for (const v of d) {\n if (typeof(v) === 'object' && v !== null) {\n const o: any = {\n id: v.id || v.value || v.name || v.label,\n label: v.label || 'N/A'\n };\n if (v.type) {\n o.type = v.type;\n }\n if (!v.type && f.reference && f.reference.name) { // Bullhorn CAND PT bad metadata\n o.type = f.reference.name;\n }\n f.default.push(o);\n } else {\n f.default = v;\n }\n }\n } else if (typeof(d) === 'object' && d !== null) {\n if (field.type === 'boolean' && typeof(d.value) === 'boolean') {\n f.default = d.value;\n } else if (Object.keys(d).length) {\n const id = d.id || d.value || d.name || d.label;\n if (id) {\n f.default = {\n id: d.id || d.value || d.name || d.label,\n label: d.label || 'N/A'\n };\n }\n if (d.type) {\n f.default.type = d.type;\n }\n }\n } else {\n f.default = d;\n }\n }\n if (field.visible || field.alwaysVisible) {\n f.visible = field.visible || field.alwaysVisible;\n }\n if (field.hidden) {\n f.hidden = field.hidden;\n }\n if (field.hint || field.helpText) {\n f.hint = field.hint || field.helpText;\n }\n if (field.valueType) {\n f.valueType = field.valueType;\n }\n if (field.multiple) {\n f.multiple = field.multiple;\n }\n if (field.suggestions && field.suggestions.length) {\n f.suggestions = field.suggestions;\n }\n if (field.updateable === false || field.updatable === false) {\n if (!f.flags) {\n f.flags = { updatable: false };\n } else {\n f.flags.updatable = false;\n }\n }\n if (field.createable === false || field.creatable === false) {\n if (!f.flags) {\n f.flags = { creatable: false };\n } else {\n f.flags.creatable = false;\n }\n }\n if (typeof(field.enabled) !== 'undefined') {\n f.enabled = field.enabled;\n }\n if (typeof(field.disabled) !== 'undefined') {\n f.disabled = field.disabled;\n }\n return f;\n};\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:34:49\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2023-02-10 09:44:59\n */\n\nimport { fieldNormalizer } from './fieldNormalizer';\nimport { uniqueNameFilter } from './fieldNormalizer/uniqueNameFilter';\n\nconst sortObj = (obj) => {\n if (typeof(obj) !== 'object' || obj === null) {\n return obj;\n }\n\n if (Array.isArray(obj)) {\n return obj.map((e) => sortObj(e)).sort();\n }\n\n return Object.keys(obj).sort().reduce((sorted, k) => {\n sorted[k] = sortObj(obj[k]);\n return sorted;\n }, {});\n};\n\nexport const metaNormalizer = (meta, integration, resourceType) => {\n const uniqFieldNames = [];\n const integrationCode = (integration || '').toUpperCase();\n const metaV3: any = {\n integration,\n resourceType,\n availableLayouts: meta.availableLayouts,\n layout: {\n id: meta.layout.id,\n name: meta.layout.name,\n label: meta.layout.label,\n version: '3.0.0',\n sections: (meta.layout.sections || []).map((s) => {\n const section: any = {\n label: s.label,\n fields: uniqueNameFilter(s.fields || [], uniqFieldNames).map((v) => fieldNormalizer(v, uniqFieldNames)) // VIST-424\n };\n if (s.visible || s.alwaysVisible) {\n section.visible = s.visible || s.alwaysVisible;\n }\n return section;\n })\n }\n };\n if (meta.layout.origLayoutId) {\n metaV3.layout.origLayoutId = meta.layout.origLayoutId;\n }\n if (meta.drafts) {\n metaV3.drafts = meta.drafts;\n }\n if (meta.layout.children) {\n metaV3.layout.children = meta.layout.children;\n }\n\n const fieldFixesByIntegration = (f) => {\n if (f.type === 'boolean' && ((typeof(f.default) !== 'boolean') && f.default && !f.default.value) ) {\n delete f.default;\n } else if (f.type === 'reference') {\n const references = (f.reference instanceof Array) ? f.reference : [f.reference];\n for (const r of references) {\n if (r && r.creatable === false && typeof(r.updatable) === 'undefined') {\n r.updatable = false; // User missing updatable, may be other too\n }\n }\n }\n switch (integrationCode) {\n case 'BULLHORN': {\n if (resourceType === 'Appointment') {\n if (['dateBegin', 'dateEnd'].indexOf(f.name) !== -1) {\n if (!f.validations) {\n f.validations = { step: 1800 };\n } else {\n f.validations.step = 1800;\n }\n f.default = f.name === 'dateBegin' ? 'now' : '30.minutes';\n if (!f.auto) {\n f.auto = {};\n }\n f.auto[f.name === 'dateBegin' ? 'lt' : 'gt'] = {\n against: f.name === 'dateBegin' ? 'dateEnd' : 'dateBegin',\n offset: `${f.name === 'dateBegin' ? '-30' : '30'}.minutes`\n };\n }\n }\n if (f.name === 'comments') {\n if (!f.validations) {\n f.valudations = { required: true };\n } else {\n f.validations.required = true;\n }\n if (resourceType === 'Note') {\n f.type = 'richtext';\n }\n }\n if (f.name === 'address.state') {\n f.creatable = false;\n f.updatable = false;\n }\n break;\n }\n case 'GOOGLE': {\n if (f.name === 'contactId') {\n f.label = 'Contact';\n } else if (['start', 'end'].indexOf(f.name) !== -1) {\n if (!f.auto) {\n f.auto = {};\n }\n f.auto[f.name === 'start' ? 'lt' : 'gt'] = {\n against: f.name === 'start' ? 'end' : 'start',\n offset: `${f.name === 'start' ? '-30' : '30'}.minutes`\n };\n }\n break;\n }\n case 'OFFICE365': {\n if (resourceType === 'Events') {\n if (['start', 'end'].indexOf(f.name) !== -1) {\n if (!f.validations) {\n f.validations = { step: 1800 };\n } else {\n f.validations.step = 1800;\n }\n f.default = f.name === 'start' ? 'now' : '30.minutes';\n }\n }\n if (resourceType === 'Tasks' && f.name === 'checklist') {\n f.creatable = false;\n }\n if (f.name === 'description' && resourceType !== 'Tasks') {\n f.type = 'richtext';\n } else if (f.name === 'content') {\n f.type = 'text';\n }\n break;\n }\n case 'SALESFORCE': {\n if (resourceType === 'Task' && f.name === 'WhatId') {\n f.disabled = {\n 'WhoId.type': 'Lead'\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 if (resourceType === 'Comment' && f.name === 'body') {\n f.visible = true;\n }\n break;\n }\n case 'HUBSPOT': {\n if (\n (resourceType === 'LogCall' && ['body', 'hs_call_body'].indexOf(f.name) !== -1) ||\n (resourceType === 'LogSMS' && f.name === 'hs_communication_body')\n ) {\n f.type = 'richtext';\n }\n break;\n }\n case 'NETSUITE': {\n if (f.name === 'company' && !f.auto) {\n f.auto = {\n search: {\n params: {\n contactId: 'contact.id'\n },\n url: '../Contact/${contactId}?expand=company',\n extract: 'company'\n }\n };\n }\n break;\n }\n case 'ZOHO': {\n if (['Calls', 'Tasks', 'Events'].indexOf(resourceType) !== -1 && ['Who_Id', 'What_Id'].indexOf(f.name) !== -1) {\n if (f.name === 'What_Id') {\n f.visible = true;\n f.disabled = {\n 'Who_Id.type': 'Leads'\n };\n }\n if (f.reference instanceof Array) {\n f.reference.forEach((r) => {\n r.creatable = true;\n r.updatable = true;\n });\n }\n }\n if (resourceType === 'Calls' && f.name === 'Description') {\n f.label = 'Description'\n f.visible = true;\n f.hidden = {\n \"Call_Type\": \"Missed\"\n }\n }\n break;\n }\n }\n if (f.type === 'composite' && f.fields) {\n for (const ff of f.fields) {\n fieldFixesByIntegration(ff);\n }\n }\n };\n\n // common fixes for all integrations\n if (metaV3.layout.sections.length) {\n for (const s of (metaV3.layout.sections)) {\n if (!s || !s.fields) {\n break;\n }\n for (const f of s.fields) {\n fieldFixesByIntegration(f);\n }\n }\n }\n\n // Google Gmail children enhancement\n if (integrationCode === 'GOOGLE') {\n if (resourceType === 'Mail') {\n metaV3.layout.editable = false;\n if (!metaV3.layout.children) {\n metaV3.layout.children = [{ // should be included in v3 api\n label: 'Comments',\n name: 'comments',\n reference: {\n resourceType: 'Comment',\n label: 'Comment',\n editable: false\n }\n }];\n }\n } else if (resourceType === 'Task') {\n if (!metaV3.layout.children) {\n metaV3.layout.children = [{\n label: 'Subtasks',\n name: 'subTasks',\n reference: {\n resourceType: 'Subtask',\n label: 'Subtask'\n }\n }];\n }\n } else if (resourceType === 'Comment') {\n metaV3.layout.editable = false;\n }\n } else if (integrationCode === 'ZENDESK') {\n if (resourceType === 'Ticket') {\n if (!metaV3.layout.children) {\n metaV3.layout.children = [{ // Zendesk Ticket children enhancement\n label: 'Comments',\n name: 'comments',\n reference: {\n resourceType: 'Comment',\n label: 'Comment',\n editable: false\n }\n }];\n }\n } else if (resourceType === 'Comment') {\n metaV3.layout.editable = false;\n }\n } else if (integrationCode === 'MSDYNAMICS' && !metaV3.fieldsMap) {\n if (resourceType === 'phonecall') {\n metaV3.fieldsMap = {\n contactables: ['from', 'to'],\n subject: 'subject',\n phoneNumber: 'phonenumber',\n };\n } else if (resourceType === 'contact') {\n metaV3.fieldsMap = {\n phoneNumber: 'telephone1',\n firstName: 'firstname',\n lastName: 'lastname'\n };\n } else if (resourceType === 'account') {\n metaV3.fieldsMap = {\n phoneNumber: 'telephone1',\n displayName: 'name'\n };\n }\n } else if (integrationCode === 'OFFICE365') {\n if (resourceType === 'Conversations') {\n metaV3.layout.editable = false;\n metaV3.layout.children = [{ // children enhancement\n label: 'Comments',\n name: 'comments',\n reference: {\n resourceType: 'Comment',\n label: 'Comment',\n editable: false\n }\n }];\n } else if (resourceType === 'Comment') {\n metaV3.layout.editable = false;\n }\n } else if (integrationCode === 'JOBDIVA') {\n if (resourceType === 'CandidateNote' || resourceType === 'ContactNote') {\n metaV3.layout.editable = false;\n }\n } else if (integrationCode === 'CLIO' && resourceType === 'Contact') {\n metaV3.layout.sections[0].fields.push({\n name: 'custom_field_values',\n type: 'hidden'\n });\n } else if (integrationCode === 'CONNECTWISE' && ['companies', 'contacts'].indexOf(resourceType) !== -1) {\n metaV3.layout.sections[0].fields.push({\n name: 'billToCompany',\n type: 'hidden'\n });\n metaV3.layout.sections[0].fields.push({\n name: 'identifier',\n type: 'hidden'\n });\n metaV3.layout.sections[0].fields.push({\n name: 'status',\n type: 'hidden'\n });\n }\n else if (integrationCode === 'ZOHO' && resourceType === 'Tasks') {\n metaV3.layout.sections[0].fields.push({\n name: 'module',\n type: 'hidden'\n });\n }\n return sortObj(metaV3);\n};\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 const nestedTagMatch = value.match(/(\\S+)\\.(\\S+)/);\n if (nestedTagMatch) {\n if (typeof(context[nestedTagMatch[1]]) === 'object') {\n return context[nestedTagMatch[1]][nestedTagMatch[2]] || '';\n } else {\n return '';\n }\n } else {\n return context[value] || '';\n }\n }\n }\n });\n return /^\\s+$/.test(patternBuilder) ? '' : 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: 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'\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 DELEGATE_INTEGRATION_URL_TEMPLATE =\n '/portal/v1/accounts/${sessionStorage.vgis.accountId}/users/${sessionStorage.vgis.userId}/integrations/${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 delegate?: any;\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 const baseUrlTemplate = config.delegate ? DELEGATE_INTEGRATION_URL_TEMPLATE : INTEGRATION_URL_TEMPLATE;\n this.baseIntegrationUrl = baseUrlTemplate.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 += `${ url.indexOf('?') === -1 ? '?' : '&' }refresh=true`;\n }\n if (layoutId) {\n url += `${ url.indexOf('?') === -1 ? '?' : '&' }layoutId=${layoutId}`;\n }\n return this.httpClient.get(url);\n }\n\n getDetails(externalId, extraParams?) {\n let params = 'referenceDetails=true';\n if (extraParams) {\n for (const p in extraParams) {\n if (extraParams[p]) {\n params += `&${p}=${extraParams[p]}`;\n }\n }\n }\n return this.httpClient.get(`${this.baseResourceUrl}/${externalId}?${params}`);\n }\n\n getByPath(path) { // TODO not universal!\n let fullPath = `${this.newResourceUrl}${path}`;\n if (/^..\\//.test(path)) {\n fullPath = `${this.baseIntegrationUrl}${path.substring(2)}`;\n }\n return this.httpClient.get(fullPath);\n }\n\n save(payload) {\n if (this.id) {\n return this.httpClient.put(\n `${this.baseResourceUrl}/${this.id}`,\n payload\n );\n } else {\n return this.httpClient.post(\n `${this.baseResourceUrl}`,\n payload\n );\n }\n }\n}\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:35:19\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-03-06 10:10:09\n */\n\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\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 onClick2Dial: (phoneNumber, vrn?: string) => void;\n onContextChange: BehaviorSubject<any>;\n\n constructor() {\n this.onContextChange = new BehaviorSubject({});\n }\n\n get context() {\n return this._context;\n }\n\n set context(value) {\n this._context = value;\n this.onContextChange.next(this._context);\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 setOnClick2Dial(callback: (phoneNumber, vrn?: string) => void) {\n if (typeof(callback) === 'function') {\n this.onClick2Dial = callback;\n } else {\n delete this.onClick2Dial;\n }\n }\n\n}\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:35:19\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-05-03 21:31:16\n */\n\n /*\n * Worker messages systems. Every integration may extend the base functionality by registering an integration worker.\n * This service provides single response for the worker message requests as a callback.\n */\nimport { Injectable } from '@angular/core';\n\nimport { MetaContextService } from '../metaContext';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetaMsgService {\n private msgCallbacks: {[state: number]: any} = {}; // message subscribers holder\n private msgListeneres: Array<string> = []; // ensure listener is registerd only once\n constructor(private metaContext: MetaContextService) {\n }\n\n sendMessage(provider: string, msg: any, callback: (response) => void, isLong = false) {\n provider = (provider || '').toUpperCase();\n const providerWorker = this.metaContext.workers[provider];\n if (providerWorker) {\n if (this.msgListeneres.indexOf(provider)) {\n this.msgListeneres.push(provider);\n providerWorker.addEventListener('message', this.workerMsgListener, false); // register a short time listener\n }\n let state; // message unique identifier\n do {\n state = new Date().getTime();\n } while (this.msgCallbacks[state]);\n\n this.msgCallbacks[state] = callback; // register message callback\n msg.$state = state;\n providerWorker.postMessage(msg);\n\n setTimeout(() => {\n this.cancelMsgListener(msg.action, state); // give up, worker does not replied on time\n const listenerIndex = this.msgListeneres.indexOf(provider);\n if (listenerIndex !== -1) {\n this.msgListeneres.splice(listenerIndex, 1);\n }\n providerWorker.removeEventListener('message', this.workerMsgListener); // remove listener when done\n }, isLong ? 60000 : 2000);\n } else {\n callback({ action: msg.action, error: `Worker ${provider} is not registered` });\n }\n }\n\n private cancelMsgListener(action, storedState) {\n const storedCallback = this.msgCallbacks[storedState];\n if (storedCallback) {\n storedCallback({ action, error: 'Timeout', state: storedState }); // always reply with something\n }\n delete this.msgCallbacks[storedState];\n }\n\n private workerMsgListener = (msg) => {\n if (msg && msg.data && msg.data.action && msg.data.$state) {\n const state = msg.data.$state;\n const callback = this.msgCallbacks[state]; // original requester callback\n if (callback) {\n delete msg.data.$state;\n callback(msg.data);\n }\n delete this.msgCallbacks[state]; // get rid of the listener callback when done\n }\n this.removeExpiredListeners(); // wipe out the expired listeners if any\n };\n\n private removeExpiredListeners() {\n const now = new Date();\n for (const state in this.msgCallbacks) { // cleanup expired listeners (< 1 min ago);\n if (parseInt(state, 10) < now.setMinutes(now.getMinutes() - 1)) {\n delete this.msgCallbacks[state];\n }\n }\n }\n}\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2023-02-08 12:41:56\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2023-02-08 14:04:46\n */\nconst pad2Digit = (t) => t < 10 ? '0' + t : t;\n\nexport const resourceCardLabel = (r: any) => { // TODO make pipe to ask integration worker for this in abstract\n // eslint-disable-next-line no-underscore-dangle\n if (r._vgis && r._vgis.connector === 'CLIO' && r._vgis.resourceType === 'PhoneCommunicationTimer') {\n const duration = r.quantity || 0; // in seconds\n let durationText = '00:00';\n if (duration > 0) {\n const hours = Math.floor(duration / 3600);\n const minutes = Math.floor((duration % 3600) / 60);\n const seconds = Math.round(duration % 60);\n const checkHours = hours ? pad2Digit(hours) + ':' : '';\n\n durationText = checkHours + pad2Digit(minutes) + ':' + pad2Digit(seconds);\n }\n return `⏱ ${ durationText } | $${ (Math.round(r.price) * 100 ) / 100} | ${ r.non_billable ? 'Non-billable' : 'Billable' }`;\n }\n return r.Subject || r.subject || r.summary || r.title || r.CaseNumber || r.comment || r.body || r.name || r.topic || r.content || '...';\n};\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:35:19\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-05-03 21:31:44\n */\n\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetaReferenceService {\n dialogs: Array<any>;\n constructor(\n private router: Router) {\n this.dialogs = [];\n this.router.events.subscribe(() => {\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(\n componentRef, metaResource, integrationCode, reference, resource,\n preview?: boolean, preferResourceType?, theme?: string, overlayContainer?: HTMLElement\n ) {\n const references = !(reference instanceof Array) ? [reference] : reference.filter((r) => r.creatable !== false);\n if (resource && resource.type) {\n if (!references.find((f) => (f.name || f.resourceType) === (resource.resourceType || resource.type))) {\n references.push({\n name: resource.resourceType || resource.type,\n resourceType: resource.resourceType || resource.type,\n label: resource.label || resource.resourceType || resource.type\n });\n }\n }\n\n const modalObservable = new Observable(observer => {\n const refDialog = componentRef.instance;\n refDialog.integrationCode = integrationCode;\n refDialog.reference = references;\n refDialog.resource = resource;\n refDialog.metaResource = metaResource;\n refDialog.edit = !preview;\n refDialog.preferResourceType = preferResourceType;\n refDialog.theme = theme;\n\n const domElem = componentRef.hostView.rootNodes[0] as HTMLElement;\n\n const dialogIndex = this.dialogs.push(refDialog);\n\n if (dialogIndex > 1) {\n const modalPanel: HTMLElement = domElem.querySelector('.Vlt-modal__panel');\n if (modalPanel) {\n modalPanel.style.marginLeft = `${(dialogIndex * 5)}px`;\n modalPanel.style.marginTop = `${(dialogIndex * 10)}px`;\n modalPanel.style.marginBottom = `${((dialogIndex - 1) * 8)}px`;\n }\n }\n\n if (overlayContainer && overlayContainer.appendChild) {\n overlayContainer.appendChild(domElem);\n } else {\n document.body.appendChild(domElem);\n }\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(undefined);\n }\n observer.complete();\n componentRef.destroy();\n this.dialogs.splice(dialogIndex - 1, 1);\n };\n });\n\n return modalObservable;\n }\n}\n","export const extractValueBySmartProp = (rootObj, prop) => {\n // { WhoId: { id: 1, type: 'Contact' } } // \"WhoId.type\" -> 'Contact'\n if (rootObj.hasOwnProperty(prop)) {\n return rootObj[prop];\n } else {\n const parts = prop.split('.');\n if (parts.length > 1) {\n if (rootObj.hasOwnProperty(parts[0])) {\n if (typeof (rootObj[parts[0]]) === 'object' && rootObj[parts[0]][parts[1]]) {\n return extractValueBySmartProp(rootObj[parts[0]], prop.substring(parts[0].length + 1));\n }\n }\n }\n }\n};\n\nexport const extractBooleanValueBySmartProp = (rootValue, visibleObj) => {\n if (rootValue) {\n if(typeof(rootValue) === 'boolean') {\n return visibleObj !== rootValue;\n }else{\n return rootValue !== '' ? visibleObj !== true : visibleObj !== false;\n }\n } else {\n // rootValue is undefined\n return visibleObj !== false;\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: 2026-02-12 08:11:45\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';\nimport { extractValueBySmartProp, extractBooleanValueBySmartProp } from '../lib/common/utils/smartProp';\n\n// export 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 scope = '';\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 onRefTypeChange: EventEmitter<any>; // missing from V2 https://github.com/Vocalocity/gunify-connector-framework/blob/master/sc/common/directives/scField/index.js#L129\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 overlayContainer: HTMLElement;\n lastAutoValue: any;\n delegate: any;\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 get validations() {\n return !this.meta.$invisible ? (this.meta.validations || {}) : {};\n }\n\n get name() {\n return (typeof (this.index) === 'undefined') ? `${this.scope}${this.meta.name}` : `${this.scope}${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 get isOptional() {\n const baseOptional = this.preview || (!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 static setup(instance, parent, meta) { } // eslint-disable-line @typescript-eslint/no-unused-vars\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 if (typeof(this.meta.hidden) !== 'undefined') {\n if (typeof(this.meta.hidden) === 'object') {\n const setHiddenByPropertyConfig = (par) => {\n if (typeof(this.meta.hidden[par]) === 'boolean') { // any value makes me hidden\n this.meta.$hidden = !!this.parent[par];\n } else {\n const value = extractValueBySmartProp(this.parent, par);\n const parValue = value ? (value.id || value.value || value) : value;\n if (this.meta.hidden[par] instanceof Array) {\n this.meta.$hidden = this.meta.hidden[par].indexOf(parValue) !== -1;\n } else {\n this.meta.$hidden = this.meta.hidden[par] === parValue;\n }\n }\n };\n setTimeout(() => { // prevent ExpressionChangedAfterItHasBeenCheckedError\n for (const par of Object.keys(this.meta.hidden)) {\n setHiddenByPropertyConfig(par);\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(par.split('.')[0])) {\n setHiddenByPropertyConfig(par);\n if (this.meta.$hidden) {\n delete this.parent[this.meta.name];\n }\n }\n });\n }\n }, 0);\n } else if (typeof(this.meta.hidden) === 'string') {\n if (this.meta.hidden.toUpperCase() === 'CREATE') {\n this.meta.$hidden = !this.isPersistedParent;\n } else if (this.meta.hidden.toUpperCase() === 'UPDATE') {\n this.meta.$hidden = this.isPersistedParent;\n }\n } else {\n this.meta.$hidden= !!this.meta.hidden;\n }\n }\n\n Object.defineProperty(this.meta, '$invisible', {\n value: false,\n writable: true,\n configurable: true,\n enumerable: false\n });\n if (typeof(this.meta.visible) !== 'undefined') {\n if (typeof(this.meta.visible) === 'object') {\n const setInvisibleByPropertyConfig = (par) => {\n if (typeof(this.meta.visible[par]) === 'boolean') { // any value makes me hidden\n this.meta.$invisible = extractBooleanValueBySmartProp(this.parent[par],this.meta.visible[par]);\n } else {\n const value = extractValueBySmartProp(this.parent, par);\n const parValue = value ? (value.id || value.value || value) : value;\n if (this.meta.visible[par] instanceof Array) {\n this.meta.$invisible = this.meta.visible[par].indexOf(parValue) === -1;\n } else {\n this.meta.$invisible = this.meta.visible[par] !== parValue;\n }\n }\n };\n setTimeout(() => { // prevent ExpressionChangedAfterItHasBeenCheckedError\n for (const par of Object.keys(this.meta.visible)) {\n setInvisibleByPropertyConfig(par);\n this.parentChangeSubject.subscribe(() => {\n // if (value && value.hasOwnProperty(par.split('.')[0])) {\n setInvisibleByPropertyConfig(par);\n if (this.meta.$invisible) {\n delete this.parent[this.meta.name];\n }\n // }\n });\n }\n }, 0 );\n } else if (typeof(this.meta.visible) === 'string') {\n if (this.meta.visible.toUpperCase() === 'CREATE') {\n this.meta.$invisible = this.isPersistedParent;\n } else if (this.meta.visible.toUpperCase() === 'UPDATE') {\n this.meta.$invisible = !this.isPersistedParent;\n }\n }\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 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 case 'number': {\n if (m != null) {\n const v = m.id || m;\n try {\n return parseInt(v, 10);\n } catch(e) {\n if ((window as any).scDebug) console.error(e);\n return v;\n }\n }\n break;\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(this.parent[this.meta.name]);\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 clear() {\n delete this.model;\n this.onModelChange(this.model);\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","import { Component, Directive, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\n\nconst FMAP = async (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 return import('../fieldInput').then(m => m.FieldInput);\n }\n case 'textarea':\n case 'text': {\n // return FieldText\n return import('../fieldText').then(m => m.FieldText);\n }\n case 'select':\n case 'options': {\n // return FieldSelect\n return import('../fieldSelect').then(m => m.FieldSelect);\n }\n case 'reference': {\n // return FieldReference;\n return import('../fieldReference').then(m => m.FieldReference);\n }\n case 'composite': {\n // return FieldComposite;\n return import('../fieldComposite').then(m => m.FieldComposite);\n }\n case 'boolean': {\n // return FieldBoolean;\n return import('../fieldBoolean').then(m => m.FieldBoolean);\n }\n case 'radio': {\n // return FieldRadio;\n return import('../fieldRadio').then(m => m.FieldRadio);\n }\n case 'list': {\n // return FieldList;\n return import('../fieldList').then(m => m.FieldList);\n }\n case 'richtext': {\n // return FieldRichtext;\n return import('../fieldRichtext').then(m => m.FieldRichtext);\n }\n case 'datetime':\n case 'time':\n case 'date': {\n // return FieldDatetime;\n return import('../fieldDatetime').then(m => m.FieldDatetime);\n }\n case 'hidden': {\n return import('../fieldHidden').then(m => m.FieldHidden);\n }\n default: {\n // return FieldUnknown;\n return import('../fieldUnknown').then(m => m.FieldUnknown);\n }\n }\n};\n\n@Directive({\n selector: '[metaFieldContent]',\n standalone: false\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 standalone: false\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() scope: string;\n @Input() preview: boolean;\n @Input() theme: string;\n @Input() overlayContainer: HTMLElement;\n @Input() delegate: any;\n\n // eslint-disable-next-line\n @Output() onChange = new EventEmitter();\n // eslint-disable-next-line\n @Output() onLeave = new EventEmitter();\n // eslint-disable-next-line\n @Output() onRefTypeChange = new EventEmitter();\n\n @ViewChild(MetaFieldContentDirective, { static: true }) fieldContent: MetaFieldContentDirective;\n\n constructor(private el: ElementRef) {\n super();\n }\n\n async ngOnInit() {\n const component = await FMAP(this.meta.type);\n this.fieldContent.viewContainerRef.clear();\n const componentRef = this.fieldContent.viewContainerRef.createComponent(component);\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.scope = this.scope;\n field.elementRef = this.el;\n field.onChange = this.onChange;\n field.onRefTypeChange = this.onRefTypeChange;\n field.onLeave = this.onLeave;\n field.preview = this.preview;\n field.theme = this.theme;\n field.overlayContainer = this.overlayContainer;\n field.delegate = this.delegate;\n Object.defineProperty(field.meta, 'unset', {\n value: false,\n writable: true,\n configurable: true,\n enumerable: false\n });\n }\n}\n","import {\n AfterContentChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n DoCheck,\n ViewContainerRef,\n} from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { resourceCardLabel } from \"../common/utils/resourceCardLabel\";\nimport { MetaResourceService } from \"../services/metaResource\";\nimport { MetaReferenceService } from \"../services/metaReference\";\nimport { debounceTime, distinctUntilChanged } from \"rxjs/operators\";\nimport { metaDark, metaLight } from \"../common/utils/colorThemes\";\nimport { MetaMsgService } from \"../services/metaMsg\";\nimport { MetaContextService } from \"../services/metaContext\";\n\n@Component({\n selector: \"vgip-meta-layout\",\n templateUrl: \"./view.html\",\n styleUrls: [\"./style.scss\"],\n standalone: false\n})\nexport class MetaLayout\n implements OnInit, AfterContentChecked, OnChanges, DoCheck\n{\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 @Input() delegate: any;\n\n optionalFields: any = {};\n optionalFieldsCount: number;\n showAll = false;\n fieldsVisibilityChanged: Subject<string> = new Subject<string>();\n parentForm: HTMLFormElement;\n integrationCode: string;\n resourceType: string;\n childResourceCardLabel = resourceCardLabel;\n overlayContainer: HTMLElement;\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private ref: ChangeDetectorRef,\n private el: ElementRef,\n private metaResource: MetaResourceService,\n private referenceService: MetaReferenceService,\n private metaMsgService: MetaMsgService,\n private metaContext: MetaContextService\n ) {\n // console.log('MetaLayout', this.meta);\n this.overlayContainer = el.nativeElement;\n }\n\n get isPersistedResource() {\n // eslint-disable-next-line no-underscore-dangle\n return (\n this.resource &&\n this.resource._vgis &&\n (this.resource._vgis.externalId || this.resource._vgis.id)\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\n .pipe(debounceTime(100), distinctUntilChanged())\n .subscribe(() => {\n this.countOptionalFields();\n });\n setTimeout(() => {\n this.countOptionalFields();\n }, 0);\n\n if (this.parentForm) {\n this.parentForm.addEventListener(\"change\", () => {\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 if (this.isPersistedResource && this.meta.children && this.preview) {\n this.procChildrenExternalLinks();\n }\n }\n\n ngDoCheck(): void {\n this.countOptionalFields();\n }\n\n ngOnChanges(changes: any) {\n if (changes.meta) {\n this.configureOptionalSections();\n setTimeout(() => {\n this.countOptionalFields();\n }, 0);\n }\n 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?.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?.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 private buildExternalLinkForChild(child) {\n if (child?.externalId || child.id) {\n this.metaMsgService.sendMessage(\n this.integrationCode.toUpperCase(),\n {\n action: \"buildExternalLink\",\n integrationCode: this.integrationCode.toLowerCase(), // don't know why but all workers are written expecting lowercase\n ref: {\n parentRefId: this.resource._vgis.externalId || this.resource._vgis.id,\n parentResourceType: this.resource._vgis.resourceType,\n ...child\n },\n profile: this.metaContext.profiles[ this.integrationCode.toUpperCase()]\n },\n (response) => {\n if (!response.error) {\n child.externalLink = response.externalLink;\n } else {\n console.warn(\n \"No external link support for\",\n this.integrationCode,\n child.resourceType\n );\n }\n }\n );\n }\n }\n\n private procChildrenExternalLinks() {\n for (const child of this.meta.children) {\n let childrenValue = this.resource[child.name];\n Object.defineProperty(this.resource, child.name, {\n set: (children) => {\n childrenValue = children;\n if (children instanceof Array) {\n childrenValue = children;\n for (const c in children) {\n if (children[c]?._vgis && !children[c]._vgis.externalLink) { // some day BE will start providing it\n this.buildExternalLinkForChild(children[c]._vgis);\n }\n }\n }\n },\n get: () => childrenValue,\n enumerable: true,\n configurable: true\n });\n if (childrenValue) {\n this.resource[child.name] = childrenValue;\n }\n }\n }\n\n async openChild(childResource, childModel?) {\n const metaRefDialog = await import(\"../refDialog\").then(\n (m) => m.MetaRefDialog\n );\n childResource.reference.parent = this.resource._vgis; // eslint-disable-line no-underscore-dangle\n const refDialogComponent =\n this.viewContainerRef.createComponent(metaRefDialog);\n this.referenceService\n .openDialog(\n refDialogComponent,\n this.metaResource,\n this.integrationCode,\n childResource.reference,\n childModel,\n childModel && childResource.reference.editable === false // is preview mode\n )\n .subscribe((result: any) => {\n if (result?.raw) {\n if (!this.resource[childResource.name]) {\n this.resource[childResource.name] = [];\n }\n if (childModel) {\n Object.assign(childModel, result.raw);\n } else {\n this.buildExternalLinkForChild(result.raw._vgis);\n this.resource[childResource.name].push(result.raw);\n }\n }\n });\n }\n\n private applyTheme() {\n const metaTheme = this.theme === \"dark\" ? metaDark : metaLight;\n for (const key of Object.keys(metaTheme.properties)) {\n this.el.nativeElement.style.setProperty(key, metaTheme.properties[key]);\n }\n }\n}\n","<div *ngFor='let section of meta.sections' class='Vlt-section' [ngClass]=\"{ shown: showAll || section.visible || (!meta.oneTimeOptional && !section.$optional) || (meta.oneTimeOptional && !optionalFieldsCount) }\">\n\t<h5 *ngIf='section.label' class=\"Vlt-section__title\">{{section.label}}</h5>\n\t<div style='overflow: visible;' [ngClass]=\"{ 'for-preview': preview }\">\n\t\t<small *ngIf='section.description' class=\"Vlt-form__element__hint\">{{section.description}}</small>\n\t\t<div>\n\t\t\t<ng-container *ngFor='let field of section.fields'>\n\t\t\t\t<vgip-meta-field *ngIf='!field.$hidden && (showAll || section.visible || !field.$optional)' [meta]='field' [parent]='resource' [integrationCode]='integrationCode' [resourceType]='resourceType' [preview]='preview' [ngClass]=\"{ shown: !field.$invisible && (showAll || true) }\" theme='inherit' [attr.data-theme]='theme' [delegate]='delegate'></vgip-meta-field>\n\t\t\t</ng-container>\n\t\t</div>\n\t</div>\n</div>\n<div *ngIf='isPersistedResource && meta.children && preview'>\n\t<div *ngFor='let child of meta.children'>\n\t\t<h5 class='Vlt-children__title'>\n\t\t\t<svg class=\"Vlt-icon\"><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-stack\" /></svg>&nbsp;\n\t\t\t{{child.label}} <span class='Vlt-grey'>({{(resource[child.name] || []).length}})</span>\n\t\t</h5>\n\t\t<div *ngFor=\"let c of resource[child.name]\" style='position: relative;'>\n\n\t\t\t<div class=\"Vlt-card Vlt-bg-white\">\n\t\t\t\t<div class=\"Vlt-card__content Vlt-btn-on-hover\">\n\t\t\t\t\t<h5>{{childResourceCardLabel(c)}}</h5>\n\t\t\t\t\t<div style='font-size: 12px; line-height: 16px;'>\n\t\t\t\t\t\tCreated: <span class='Vlt-black'>{{c._vgis.createdDate | date:'mediumDate'}}</span>\n\t\t\t\t\t\tEdited: <span class='Vlt-black'>{{c._vgis.modifiedDate | date:'medium'}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"Vlt-badge Vlt-badge--app Vlt-badge--purple Vlt-badge--small\">{{c._vgis.resourceType}}</div>\n\t\t\t\t\t<div class=\"Vlt-btn-group Vlt-btn-group--hover\">\n\t\t\t\t\t\t<a *ngIf='c._vgis.externalLink' attr.href='{{c._vgis.externalLink}}' target='_blank' rel='noopener' rel='noopener' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\" aria-label='Open external'><svg style='margin-left: 0; margin-right: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\"/></svg></a>\n\t\t\t\t\t\t<button type='button' (click)='openChild(child, c)' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\"><svg style='margin-left: 0; margin-right: 0;'><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-{{ child.reference.editable ? 'edit' : 'eye-negative' }}\"/></svg></button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<button style='width: 100%; margin-top: 0; max-width: 100%;' type='button' (click)='openChild(child)' class=\"Vlt-btn Vlt-btn--small Vlt-btn--secondary\" [disabled]='child.creatable === false'>\n\t\t\t<svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>{{child.reference.label}}\n\t\t</button>\n\t</div>\n</div>\n<div *ngIf='!(meta.oneTimeOptional && showAll)' [ngClass]='{ centered: !meta.oneTimeOptional }'>\n\t<button *ngIf='!preview && optionalFieldsCount' type='button' (click)='toggleOptionalFields()' class=\"Vlt-btn Vlt-btn--small Vlt-btn--link more-button\" style='margin: 0; margin-bottom: 10px;'>\n\t\t<svg><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-chevron-{{ showAll ? 'up' : 'down' }}\"/></svg>\n\t\t{{ showAll ? 'Hide' : 'Show' }} Optional Fields ({{optionalFieldsCount}})\n\t</button>\n</div>\n","/*\n* @Author: Alexander.Vangelov@vonage.com\n* @Date: 2021-02-11 17:25:09\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2021-02-11 17:33:57\n*/\nimport { Directive, ElementRef, AfterContentInit, Input } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line\n selector: '[vgipMetaFormAutofocus]',\n standalone: false\n})\nexport class MetaAutofocusDirective implements AfterContentInit {\n @Input() vgipMetaFormAutofocus: boolean;\n\n constructor(private elementRef: ElementRef) {}\n\n ngAfterContentInit(): void {\n if (this.vgipMetaFormAutofocus) {\n setTimeout(() => {\n const firstInput = this.elementRef.nativeElement.querySelector(\n '.Vlt-form__element:not(.has-value) .main:not(.standalone):not([value])'\n );\n if (firstInput) {\n firstInput.focus();\n }\n }, 300);\n }\n }\n}\n","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { MetaResourceService } from '../services/metaResource';\nimport { metaDark, metaLight } from '../common/utils/colorThemes';\nimport { MetaContextService } from '../services/metaContext';\nimport { MetaMsgService } from '../services/metaMsg';\nimport { metaNormalizer } from '../common/metaNormalizer';\nimport { templateBuilder } from '../common/utils/templateBuilder';\nimport { Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, finalize } from 'rxjs/operators';\n\n@Component({\n selector: 'vgip-meta-resource',\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n standalone: false\n})\nexport class MetaResource implements OnInit, OnChanges {\n @Input() resource: any;\n @Input() model: any;\n @Input() metaResourceServiceDelegated: MetaResourceService; // cary it from the parent to keep the interceptors\n @Input() theme: string;\n @Input() editMode = true;\n @Output() public done = new EventEmitter();\n @Output() public resourceChange = new EventEmitter();\n\n @ViewChild('resourceForm') public resourceForm: NgForm;\n\n integrationCode: string;\n resourceType: string;\n meta: any;\n service: MetaResourceService;\n currentLayoutId: any;\n formErrors: any;\n fieldsMap: any;\n edit = true;\n busy: boolean;\n metaLoading: boolean;\n generalError: string;\n resourceMenuVisible: boolean;\n contactsSuggestionsDone = false;\n isEditable: boolean;\n isPersistent: boolean;\n lockedLayoutId: string;\n resourceChanged: Subject<string> = new Subject<string>();\n resourceVrn: string;\n skipLayoutMatchCheck: boolean;\n\n constructor(\n private ref: ChangeDetectorRef,\n private el: ElementRef,\n private metaResourceService: MetaResourceService,\n private metaContext: MetaContextService,\n private metaMsgService: MetaMsgService\n ) {\n\n }\n\n get niceFields() {\n if (\n !this.resource.niceFields\n && this.resource.meta\n && this.resource.meta.layout\n && this.resource.meta.layout.sections\n ) {\n const extractSectionFields = (s) => {\n for (const f of s.fields) {\n if (f.name) {\n this.resource.niceFields[f.name] = f;\n }\n if (f.fields && f.fields.length) {\n extractSectionFields(f);\n }\n }\n };\n this.resource.niceFields = {};\n for (const s of this.resource.meta.layout.sections) {\n extractSectionFields(s);\n }\n }\n return this.resource.niceFields;\n }\n\n get fieldNames() {\n const names = Object.keys(this.niceFields);\n if (this.resource.meta.layout.children) {\n for (const child of this.resource.meta.layout.children) {\n names.push(child.name);\n }\n }\n return names;\n }\n\n ngOnInit() {\n this.integrationCode = (this.resource.integrationCode || '').toUpperCase();\n this.resourceType = this.resource.resourceType;\n this.service = (this.metaResourceServiceDelegated || this.metaResourceService).new(this.resource);\n if (!this.model) {\n this.model = {};\n }\n this.isPersistent = this.resource?.externalId;\n if (this.isPersistent) {\n this.resourceVrn = `vrn:vgis:${this.integrationCode.toLowerCase()}:${this.resource.resourceType}:${this.resource.externalId}`;\n }\n if (this.resource.activity && this.resource.ref.editable === false && !this.resource.externalId) {\n this.resource.externalId = 'MISSING_EXTERNAL_ID';\n }\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.isEditable = this.meta.layout && this.meta.layout.editable !== false;\n if (this.isPersistent && (!this.isEditable || this.editMode === false || this.meta.layout.children)) {\n this.edit = false;\n }\n this.currentLayoutId = this.meta.layout.id;\n this.getDetails();\n this.getFieldsMap();\n }\n if (this.theme !== 'inherit') {\n this.applyTheme();\n }\n this.resourceChanged.pipe(debounceTime(400), distinctUntilChanged()).subscribe((value: string) => {\n this.resourceChange.emit(value);\n });\n }\n\n ngOnChanges(changes: any) {\n if (changes.theme) {\n this.theme = changes.theme.currentValue;\n if (this.theme !== 'inherit') {\n this.applyTheme();\n }\n }\n }\n\n setEditMode() {\n this.edit = true;\n }\n\n loadMetadata(layoutId?, refresh = false, ev?) {\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 (this.currentLayoutId.indexOf(this.lockedLayoutId) === -1) {\n delete this.lockedLayoutId;\n }\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 (!refresh && this.isPersistent && (!this.isEditable || this.editMode === false || this.meta.layout.children)) {\n this.edit = false;\n }\n if (this.isPersistent && meta.layout.isCustom && meta.layout.origLayoutId) { // VGIS-10996, enable for all integrations when there is room for testing\n this.service.getMetadata(meta.layout.origLayoutId, refresh).pipe(\n finalize(() => {\n delete this.busy;\n this.getDetails();\n })\n ).subscribe({\n next: (parentMeta: any) => {\n this.extractFieldsToPreserve(metaNormalizer(parentMeta, this.integrationCode, this.resource.resourceType))\n }\n });\n } else {\n delete this.busy;\n this.getDetails();\n }\n this.getFieldsMap();\n },\n error: (metaError: any) => {\n delete this.busy;\n this.generalError = `Error loading resource metadata (${metaError.statusText})`;\n localStorage.removeItem(layoutStoreKey);\n },\n complete: () => {\n delete this.metaLoading;\n this.forceUiUpdate();\n }\n });\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n return false;\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 delete this.lockedLayoutId;\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 // this.lockedLayoutId = resource._vgis.layoutId || resource._vgis.recordTypeId // not needed anymore, TBD: cleanup code\n\n // sample orig layoutId: 012000000000000AAA, custom layoutId: 66ccbb3d1810985aa3a16202:012000000000000AAA\n // so if the current layout is not inherited from the original one, reload the orig meta\n // CCOMNI-155 - allow form layout change (*unless we are certain that the current and locked match)\n if (!this.skipLayoutMatchCheck && this.lockedLayoutId && (this.currentLayoutId || '').indexOf(this.lockedLayoutId) === -1) {\n this.skipLayoutMatchCheck = true; // ensure prevent HPBR-8782 loop condition\n if ((this.meta.availableLayouts || []).find((l: any) => (l.id || '').indexOf(this.lockedLayoutId) !== -1 )) { // if it's not available, don't even try\n this.loadMetadata(this.lockedLayoutId);\n } else {\n console.warn('Unable to match layout Ids', this.lockedLayoutId, this.currentLayoutId)\n }\n }\n }\n /* eslint-enable no-underscore-dangle */\n for (const p in resource) {\n if ((typeof (resource[p]) !== 'undefined') && (\n this.fieldNames.indexOf(p) !== -1 || p === '_vgis') ||\n (this.resource.preserveFieldsNames || []).indexOf(p) !== -1\n ) {\n this.model[p] = resource[p];\n }\n }\n delete this.busy;\n },\n error: (resourceError) => {\n this.generalError = resourceError.error ? resourceError.error.message || resourceError.message : resourceError.message;\n delete this.busy;\n },\n complete: () => {\n this.forceUiUpdate();\n }\n });\n }\n } else {\n if (this.resource.ref && this.resource.ref.activity) { // reuse failed autoactivities data\n for (const p in this.resource.ref.activity) {\n if (this.resource.ref.activity && this.fieldNames.indexOf(p) !== -1) {\n this.model[p] = this.resource.ref.activity[p]; // VGIS-7215 (copy only valid fields)\n }\n }\n }\n this.performAutoFill();\n }\n }\n\n performAutoFill() {\n this.metaMsgService.sendMessage(\n this.integrationCode,\n {\n action: 'autoFill',\n integration: this.integrationCode,\n resourceType: this.resourceType,\n resource: JSON.parse(JSON.stringify(this.model)),\n fields: this.niceFields,\n event: this.metaContext.context,\n profile: this.metaContext.profiles[this.integrationCode]\n },\n (response) => {\n if (!response.error) {\n for (const afp in response.autoFill) {\n if (!this.model[afp]) {\n this.model[afp] = response.autoFill[afp];\n }\n }\n }\n }\n );\n }\n\n getFieldsMap() {\n if (this.meta.fieldsMap) {\n this.fieldsMap = this.meta.fieldsMap;\n this.markContactables();\n this.buildContactsSuggestions();\n if (!this.resource.externalId) {\n this.buildSubjectTemplate();\n this.execTransformer();\n }\n } else {\n this.metaMsgService.sendMessage(\n this.integrationCode,\n { action: 'fieldsMap', integration: this.integrationCode, resourceType: this.resourceType },\n (response) => {\n if (!response.error) {\n this.fieldsMap = response.fieldsMap;\n this.markContactables();\n this.buildContactsSuggestions();\n if (!this.resource.externalId) {\n this.buildSubjectTemplate();\n this.execTransformer();\n }\n } else {\n console.log('No fields map', this.integrationCode, this.resourceType, response.error);\n }\n }\n );\n }\n }\n\n openResourceMenu() {\n this.resourceMenuVisible = true;\n setTimeout(() => {\n document.addEventListener('click', this.onMenuClickout);\n }, 10);\n }\n\n close(result?) {\n this.done.emit(result);\n }\n\n showParsedError(resourceForm, parsedError) {\n this.formErrors = parsedError.message || 'There is a problem with one or more fields';\n if (parsedError.errors && parsedError.errors.length) {\n this.formErrors += ` (${parsedError.errors.map(e => e.message).join(', ')})`;\n for (const pe of parsedError.errors) {\n if (resourceForm.controls[pe.field]) {\n resourceForm.controls[pe.field].setErrors({ invalid: true, custom: pe.message });\n }\n }\n setTimeout(() => {\n const firstInvalid: HTMLInputElement = this.el.nativeElement.querySelector('.Vlt-form__element--error .main:not(.standalone)');\n if (firstInvalid) {\n firstInvalid.focus();\n }\n });\n }\n }\n\n submit(resourceForm) {\n delete this.formErrors;\n resourceForm.form.submitted = true;\n if (resourceForm.valid) {\n this.busy = true;\n /* 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 if (this.metaContext.vgipEventId) {\n this.model._vgis.eventId = this.metaContext.vgipEventId;\n }\n /* eslint-enable no-underscore-dangle */\n this.service.save(this.model).subscribe((result: any) => {\n this.model = result;\n this.resource.externalId = result._vgis.externalId; // eslint-disable-line no-underscore-dangle\n this.resourceVrn = `vrn:vgis:${this.integrationCode.toLowerCase()}:${this.resource.resourceType}:${this.resource.externalId}`;\n this.isPersistent = true;\n this.close(result);\n this.edit = false;\n delete this.busy;\n }, (errorResult) => {\n if ((errorResult.status === 422 && errorResult.error && !errorResult.error.errors && errorResult.error.integrationError)\n || (errorResult.error && errorResult.error.errors && errorResult.error.errors.length && !errorResult.error.errors[0].field)\n // backend implemented error parsing but broken VGIS-7366\n ) {\n this.formErrors = 'There is a problem with one or more fields';\n try {\n this.metaMsgService.sendMessage(\n this.integrationCode,\n {\n action: 'parseErrorMessage',\n integrationCode: this.integrationCode,\n resourceType: errorResult.error.resourceType,\n rawError: errorResult.error.integrationError,\n profile: this.metaContext.profiles[this.integrationCode.toUpperCase()]\n },\n (response) => {\n if (response.parsedError) {\n this.showParsedError(resourceForm, response.parsedError);\n } else {\n // eslint-disable-next-line no-underscore-dangle\n console.error('No error parser for', this.integrationCode, errorResult.error.integrationError);\n this.formErrors = errorResult.error;\n }\n }\n );\n } catch (err) {\n console.log('....', err);\n }\n } else if (errorResult.status === 422) {\n this.showParsedError(resourceForm, errorResult.error);\n } else {\n this.formErrors = errorResult.error;\n }\n delete this.busy;\n });\n } else {\n this.formErrors = Object.keys(resourceForm.controls)\n .filter((c) => resourceForm.controls[c].invalid)\n .map((f) => (this.niceFields[f] ? (this.niceFields[f].label || f) : f)).join(', ');\n setTimeout(() => {\n const selector = `form[name=\"${this.resourceType}\"] .Vlt-form__element--error .main:not(.standalone)`;\n const firstInvalid: HTMLInputElement = this.el.nativeElement.querySelector(selector);\n if (firstInvalid) {\n firstInvalid.focus();\n }\n });\n }\n }\n\n clearFormErrors() {\n delete this.formErrors;\n }\n\n onFormChange() {\n this.resourceChanged.next(JSON.stringify(this.model));\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 const nestKeys: any = {};\n nestKeys[nestMatch[2]] = value;\n this.model[nestMatch[1]] = [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?.type || 'CALL').toUpperCase()] || profile.defaultSubject.CALL) :\n profile.activityDefaultSubjectTemplate;\n }\n if (subjectTemplate) {\n this.model[this.fieldsMap.subject] = templateBuilder(this.metaContext, subjectTemplate);\n }\n }\n }\n\n private buildContactsSuggestions() {\n // let hasDefaultContact = false;\n if (this.metaContext.contactables[this.integrationCode] && this.meta.layout && this.meta.layout.sections) {\n for (const s of this.meta.layout.sections) {\n for (const f of (s.fields || [])) {\n if (f.type === 'reference') {\n if (!f.suggestions) {\n f.suggestions = [];\n } else {\n f.suggestions = f.suggestions.filter(sg => !sg.auto); // keep meta suggestions if any\n }\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 let tLabel = c.displayName || c.name;\n if (c.phoneNumbers) {\n tLabel += (' ✆' + c.phoneNumbers.map(p => p.phoneNumber).join(','));\n }\n f.suggestions.push({\n id: c.externalId || c.identifier || c.id,\n label: tLabel,\n type: c.resourceType || c.type,\n auto: true\n });\n }\n }\n if ((this.fieldsMap.contactables || []).indexOf(f.name) !== -1) { // evaluate usability?\n f.alwaysVisible = true;\n }\n // if (\n // !hasDefaultContact && this.metaContext.defaultContactables[this.integrationCode]\n // && refTypes.indexOf(this.metaContext.defaultContactables[this.integrationCode].type) !== -1\n // ) {\n // this.resource[f.name] = this.metaContext.defaultContactables[this.integrationCode];\n // hasDefaultContact = true;\n // } else if (!hasDefaultContact && this.fieldsMap.contactables && f.suggestions && f.suggestions.length === 1) {\n // if (this.fieldsMap.contactables.indexOf(f.name) !== -1 && !f.default) {\n // f.default = f.suggestions[0];\n // hasDefaultContact = true;\n // }\n // }\n }\n }\n }\n this.contactsSuggestionsDone = true;\n }\n }\n\n private applyTheme() {\n const metaTheme = this.theme === 'dark' ? metaDark : metaLight;\n 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 private extractFieldsToPreserve(parentMeta) {\n const extractPreserveSectionFields = (s) => {\n for (const f of s.fields) {\n if (f.name && f.flags?.updatable !== false) {\n this.resource.preserveFieldsNames.push(f.name);\n }\n if (f.fields && f.fields.length) {\n extractPreserveSectionFields(f);\n }\n }\n };\n this.resource.preserveFieldsNames = [];\n for (const s of (parentMeta.layout?.sections || [])) {\n extractPreserveSectionFields(s);\n }\n }\n}\n","<div *ngIf='generalError' class=\"Vlt-callout Vlt-callout--critical\" style='overflow: auto; margin: 20px;'>\n\t<i></i>\n\t<div class=\"Vlt-callout__content\">\n\t\t<p>{{generalError}}</p>\n\t</div>\n</div>\n<div *ngIf='!meta' class=\"Vlt-progress\">\n\t<div class=\"Vlt-progress__bar\" [ngClass]=\"{ loading: metaLoading }\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuetext=\"Loading Metadata\" aria-valuemax=\"100\"></div>\n</div>\n<form [vgipMetaFormAutofocus]='!resource || !resource.externalId' *ngIf='meta && !generalError' #resourceForm=\"ngForm\" [name]='resource.resourceType' (ngSubmit)='submit(resourceForm)' (change)='onFormChange()' novalidate>\n\t<div class='form-content' style='overflow: hidden;'>\n\t\t<div [ngClass]=\"{ 'Vlt-callout--dismissed': !formErrors }\" class=\"Vlt-callout Vlt-callout--banner Vlt-callout--critical\">\n\t\t\t<i></i>\n\t\t\t<div class=\"Vlt-callout__content\" style=\"margin-top: auto;\">\n\t\t\t\t<p>There is a problem with one or more fields</p>\n\t\t\t\t<small style='font-weight: 600; font-size: 1.0em;' *ngIf='formErrors'>{{ formErrors.message || formErrors }}</small>\n\t\t\t</div>\n\t\t\t<button type='button' class=\"Vlt-callout__dismiss\" (click)='clearFormErrors()' aria-label=\"Dismiss\"></button>\n\t\t</div>\n\t\t<div class=\"Vlt-card__content\" style='min-height: 40px;'>\n\t\t\t<vgip-meta-layout *ngIf='edit' [meta]='meta.layout' [resource]='model' [preview]='false' [integration]='meta.integration' [type]='resource.resourceType' theme='inherit'></vgip-meta-layout>\n\t\t\t<vgip-meta-layout *ngIf='!edit' [meta]='meta.layout' [resource]='model' [preview]='true' [integration]='meta.integration' [type]='resource.resourceType' theme='inherit' [attr.data-vrn]='resourceVrn'></vgip-meta-layout>\n\t\t</div>\n\t</div>\n\t<div class=\"Vlt-card__footer\">\n\t\t<button class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--outline\" type='button' aria-label='Cancel' (click)='close()'>\n\t\t\t{{ edit ? 'Cancel' : 'Close' }}\n\t\t</button>\n\t\t<button *ngIf='edit' class=\"Vlt-btn Vlt-btn--app\" [ngClass]=\"{ 'Vlt-btn--primary': isPersistent, 'Vlt-btn--secondary': !isPersistent }\" type='submit'>\n\t\t\t{{ (resource && resource.externalId) ? 'Update' : 'Create' }}\n\t\t</button>\n\t\t<button (click)='setEditMode()' *ngIf='!edit && isEditable' [disabled]='!isEditable' class=\"Vlt-btn Vlt-btn--app Vlt-btn--primary\" type='button' aria-label='Edit'>\n\t\t\tEdit\n\t\t</button>\n\t\t<div style='margin-right: 8px; flex: 1;'>\n\t\t\t<div *ngIf='meta.availableLayouts && meta.availableLayouts.length' class=\"Vlt-form__element Vlt-form__element--big\" style='padding: 0; margin: -8px -18px -8px 0;'>\n\t\t\t\t<div class=\"Vlt-select\">\n\t\t\t\t\t<label style='all: inherit;'>\n\t\t\t\t\t\t<select style='border: 0; margin-top: 3px; background: transparent;' (change)='changeLayout()' [(ngModel)]='currentLayoutId' [ngModelOptions]='{ standalone: true }' [disabled]='lockedLayoutId === currentLayoutId'>\n\t\t\t\t\t\t\t<option selected disabled>Select layout</option>\n\t\t\t\t\t\t\t<option *ngFor='let layout of meta.availableLayouts' [ngValue]='layout.id'>{{layout.name}}</option>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\t<label>Layout</label> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control -->\n\t\t\t\t\t</label>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"Vlt-dropdown resource-menu\" [ngClass]=\"{ 'Vlt-dropdown--expanded': resourceMenuVisible }\" style='margin-left: 2px;'>\n\t\t\t<div class=\"Vlt-dropdown__panel\" style='bottom: 40px; right: -4px; top: initial;'>\n\t\t\t\t<div class=\"Vlt-dropdown__panel__content\">\n\t\t\t\t\t<a href='#' class=\"Vlt-dropdown__link\" (click)='loadMetadata(currentLayoutId, true, $event)'>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<svg class='Vlt-icon Vlt-icon--smaller'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-refresh\"/></svg>&nbsp;&nbsp;Refresh metadata\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"Vlt-dropdown__trigger\">\n\t\t\t\t<button type='button' (click)='openResourceMenu()' class=\"Vlt-btn Vlt-btn--link\" aria-label='Resource menu'>\n\t\t\t\t\t<svg class='Vlt-icon Vlt-icon--small' style='margin: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-more-v-negative\"/></svg>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</form>\n<div class='busy-mask' [ngClass]=\"{ active: busy }\">\n\t<div style='height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center;'>\n\t\t<div class=\"Vlt-spinner\"></div>\n\t</div>\n</div>\n","import { Component, ElementRef, OnInit } from '@angular/core';\nimport { metaDark, metaLight } from '../common/utils/colorThemes';\nimport { MetaResourceService } from '../services/metaResource';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n standalone: false\n})\nexport class MetaRefDialog implements OnInit {\n modal: HTMLElement;\n onComplete: (result?) => undefined;\n fullResource: any;\n resources: any = {};\n models: any = {};\n reference: any;\n currentResource: string;\n services: any = {};\n integrationCode: string;\n resource: any;\n metaResource: MetaResourceService;\n integrationIcon: string;\n preferResourceType: string;\n theme: string;\n\n constructor(\n private el: ElementRef\n ) { }\n\n get isEditable() {\n return this.resources[this.currentResource].meta.layout.editable !== false;\n }\n\n get isPersistent() {\n return this.resource && (this.resource.externalId || this.resource.id);\n }\n\n ngOnInit() {\n let references = (this.reference instanceof Array) ? this.reference : [this.reference];\n /* eslint-disable no-underscore-dangle */\n if (this.resource && this.resource._vgis) {\n this.fullResource = this.resource;\n this.resource = this.resource._vgis;\n }\n /* eslint-enable no-underscore-dangle */\n if (this.resource) {\n references = references.filter((r) => {\n const resType = r.name || r.resourceType || '';\n // comparing case insensitive, because of Zendesk comment vs Comment\n return (resType.id || resType || '').toLowerCase() === (this.resource.resourceType || this.resource.type || '').toLowerCase();\n });\n }\n\n for (const ref of references) {\n if (!ref.name) {\n ref.name = ref.resourceType; // when the resource comes from resources API, not from metadata\n }\n if (!this.currentResource) {\n this.currentResource = ref.name;\n }\n if (ref.name === this.preferResourceType) {\n this.currentResource = this.preferResourceType;\n }\n const rs: any = {\n integrationCode: this.integrationCode,\n resourceType: ref.resourceType || ref.name,\n ref\n };\n if (this.resource) {\n rs.externalId = this.resource.id || this.resource.externalId;\n if (this.resource.eventId) {\n rs.eventId = this.resource.eventId;\n }\n if (this.fullResource) {\n rs.activity = this.fullResource;\n }\n if (this.resource.layoutId) {\n rs.layoutId = this.resource.layoutId;\n }\n }\n rs.parent = ref.parent;\n this.resources[ref.name] = rs;\n this.models[ref.name] = {};\n if (this.resource) {\n this.models[ref.name]._vgis = this.resource; // eslint-disable-line no-underscore-dangle\n }\n }\n\n this.modal = this.el.nativeElement.childNodes[0];\n this.modal.classList.remove('Vlt-modal--out');\n this.modal.classList.add('Vlt-modal_visible');\n document.addEventListener('keydown', this.keyEventListener);\n\n if (this.integrationCode === 'mocks') {\n this.integrationIcon = 'Brand-icon-vonage';\n } else {\n switch (this.integrationCode.toLowerCase()) {\n case 'office365':\n this.integrationIcon = 'Brand-icon-office-color';\n break;\n case 'sugar':\n this.integrationIcon = 'Brand-icon-sugarcrm-color';\n break;\n case 'msdynamics':\n this.integrationIcon = 'Brand-icon-dynamics-color';\n break;\n default:\n this.integrationIcon = `Brand-icon-${(this.integrationCode || '').toLowerCase()}-color`;\n }\n }\n\n this.applyTheme();\n }\n\n close() {\n this.modal.classList.remove('Vlt-modal_visible');\n this.modal.classList.add('Vlt-modal--out');\n }\n\n dismiss(ev?) {\n this.close();\n this.onComplete(null);\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n }\n }\n\n onResourceDone(result) {\n this.close();\n this.onComplete(result);\n }\n\n selectResource(ev, resource) {\n this.currentResource = resource;\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n }\n\n keepOrder = (a) => a;\n\n private keyEventListener = (event) => {\n if (event && event.key === 'Escape') {\n document.removeEventListener('keydown', this.keyEventListener);\n this.dismiss();\n }\n };\n\n private applyTheme() {\n const metaTheme = this.theme === 'dark' ? metaDark : metaLight;\n for (const key of Object.keys(metaTheme.properties)) {\n this.el.nativeElement.style.setProperty(key, metaTheme.properties[key]);\n }\n }\n}\n","<div class='Vlt-modal Vlt-modal--large'>\n <div class=\"Vlt-modal__panel\">\n <div class=\"Vlt-tabs\">\n <div class='Vlt-tabs__header--background'>\n <div class=\"Vlt-tabs__header Vlt-tabs__header--shadow\">\n <svg class=\"Vlt-icon\" [ngStyle]=\"{fill: integrationIcon === 'Brand-icon-vonage' ? 'var(--vgip-meta-input-color)' : ''}\"><use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\" /></svg>\n <a href='#' *ngFor='let r of resources | keyvalue: keepOrder' (click)='selectResource($event, r.key)' class=\"Vlt-tabs__link\" [ngClass]=\"{ 'Vlt-tabs__link_active': currentResource === r.key}\">\n {{r.key}}\n </a>\n <a href='#' class=\"Vlt-modal__dismiss\" (click)=\"dismiss($event)\">\n <svg class=\"Vlt-icon\"><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\" /></svg>\n </a>\n </div>\n </div>\n <div class=\"Vlt-tabs__content\" style='min-height: 90px;'>\n <ng-container *ngFor='let r of resources | keyvalue: keepOrder'>\n <div *ngIf='currentResource === r.key' class=\"Vlt-tabs__panel Vlt-tabs__panel_active\">\n <vgip-meta-resource [resource]='r.value' [model]='models[r.key]' [metaResourceServiceDelegated]='metaResource' (done)='onResourceDone($event)' theme='inherit' [attr.data-theme]='theme'></vgip-meta-resource>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit, ViewContainerRef } from '@angular/core';\nimport { MetaResourceService } from '../services/metaResource';\nimport { MetaReferenceService } from '../services/metaReference';\nimport { MetaRefDialog } from '../refDialog';\n\n@Component({\n selector: 'vgip-meta-resource-card',\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n standalone: false\n})\nexport class MetaResourceCard implements OnInit {\n @Input() resource: any;\n @Input() model: any;\n\n integrationCode: string;\n\n constructor(\n private metaResource: MetaResourceService,\n private referenceService: MetaReferenceService,\n private viewContainerRef: ViewContainerRef\n ) { }\n\n ngOnInit() {\n this.integrationCode = (this.resource.integration || this.resource.integrationCode || '').toLowerCase();\n }\n\n open(reference, model?) {\n const refDialogComponent = this.viewContainerRef.createComponent(MetaRefDialog);\n this.referenceService.openDialog(\n refDialogComponent, 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","<div class=\"Vlt-card Vlt-bg-white\">\n\t<div class=\"Vlt-card__content Vlt-btn-on-hover\">\n\t\t<h5>{{model.Subject || model.subject || model.summary || model.title || model.CaseNumber || model.comment || model.body || model.name || model.topic || '...' }}</h5>\n\t\t<div style='font-size: 12px; line-height: 16px;'>\n\t\t\tCreated: <span class='Vlt-black'>{{model._vgis.createdDate | date:'mediumDate'}}</span>\n\t\t\tEdited: <span class='Vlt-black'>{{model._vgis.modifiedDate | date:'medium'}}</span>\n\t\t</div>\n\t\t<div class=\"Vlt-badge Vlt-badge--app Vlt-badge--purple Vlt-badge--small\">{{model._vgis.resourceType}}</div>\n\t\t<div class=\"Vlt-btn-group Vlt-btn-group--hover\">\n\t\t\t<a *ngIf='model._vgis.externalLink' attr.href='{{model._vgis.externalLink}}' target='_blank' rel='noopener' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\" aria-label='Open external'><svg style='margin-left: 0; margin-right: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\"/></svg></a>\n\t\t\t<button type='button' (click)='open(resource, model)' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\" aria-label='Edit'><svg style='margin-left: 0; margin-right: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-edit\"/></svg></button>\n\t\t</div>\n\t</div>\n</div>\n","/*\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 } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\n\n@Component({\n templateUrl: './view.html',\n standalone: false\n})\nexport class FieldUnknown extends FieldAbstract {}\n","<div class=\"Vlt-form__element Vlt-form__element--big\">\n <div class=\"Vlt-input\">\n <label class='wrapper'>\n <input class='main model' type=\"text\" placeholder=\"\" value=\"Unknown field type '{{meta.type}}'.\" disabled/>\n <label class=\"Vlt-label Vlt-truncate\" style='padding-right: 20px;'>{{meta.label || meta.name}}</label> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control -->\n </label>\n </div>\n <small *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n</div>\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[3], 10) * (wordToMilliseconds[protoMatch[4]] || 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: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 standalone: false\n})\nexport class MetaModelPipe implements PipeTransform {\n transform(value: any): any {\n return value;\n }\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 standalone: false\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 isPhoneNumber: boolean;\n logicalSubtype: string;\n\n constructor( private metaContext: MetaContextService ) {\n super();\n }\n\n get suggestions() {\n return this.asyncSuggestions || this.meta.suggestions || [];\n }\n\n ngOnInit() {\n this.multiple = (this.meta.type === 'multistring') || this.meta.multiple;\n // console.log('FieldInput init', this.meta.name);\n this.validationAttributes = ['pattern', 'required', 'minlength', 'maxlength', 'min', 'max', 'step'];\n if (this.meta.picklist) { // just for test! all metadata should be transformed to v3 protocol\n this.meta.suggestions = (this.meta.picklist || []).map((s) => s.label);\n }\n if (this.meta.type === 'number') {\n this.logicalSubtype = 'number';\n }\n if (['date', 'time', 'datetime'].indexOf(this.meta.type) !== -1) {\n this.logicalSubtype = this.meta.type;\n if (this.meta.type === 'datetime') {\n this.logicalSubtype = 'datetime-local';\n }\n delete this.multiple; // no multiple support for timestamps\n }\n this.showClear = !this.multiple && [\n '', 'string', 'url', 'email', 'password', 'tel', 'date', 'datetime-local', 'time'\n ].indexOf(this.meta.subtype || '') !== -1;\n const origValue = this.parent[this.meta.name];\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (this.multiple) {\n if (typeof(value) !== 'undefined') {\n const values = (value instanceof Array) ? value : [value];\n this.model = [];\n for (let v of values) {\n if (!this.model) {\n this.model = [];\n }\n if (typeof (v) === 'object' && v !== null) {\n v = v.id || v.value;\n }\n this.model.push(v);\n }\n this.value = this.model;\n }\n } else {\n if (typeof(value) !== 'undefined'\n && !(value === null && ((typeof(this.meta.type) === 'undefined') || ['string', 'number'].indexOf(this.meta.type) !== -1))\n ) {\n if (this.meta.type === 'number' && typeof(value) === 'string') {\n value = parseInt(value, 10);\n } else if (typeof (value) === 'object' && value !== null) {\n value = value.id || value.value;\n }\n if (['datetime', 'date', 'datetime-local'].indexOf(this.meta.subtype || this.meta.type) !== -1 && value) {\n try {\n let date: Date;\n if ((typeof (value) === 'number')) {\n date = new Date(parseInt(value as any, 10));\n if ('date' === (this.meta.type || this.meta.subtype)) {\n date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\n }\n } else {\n if ('date' === (this.meta.subtype || this.meta.type)) {\n date = new Date(Date.parse(value));\n } else {\n date = new Date(Date.parse(`${value}Z`) + (new Date().getTimezoneOffset() * 60000));\n }\n }\n if (typeof (value) === 'number') {\n switch (this.meta.subtype || this.meta.type) {\n case 'datetime-local':\n case 'datetime': {\n this.model = `${date.getFullYear()}-${('00' + (date.getMonth() + 1)).slice(-2)}-${('00' + date.getDate()).slice(-2)}`;\n this.model += `T${('00' + date.getHours()).slice(-2)}:${('00' + date.getMinutes()).slice(-2)}`;\n break;\n }\n case 'date': {\n this.model = date.toISOString().split('T')[0];\n break;\n }\n }\n }\n if (this.meta.valueType === 'string') {\n if ((this.meta.subtype || this.meta.type) === 'date') {\n this.value = date.toISOString().split('T')[0];\n } else {\n this.value = date.toISOString();\n }\n } else {\n if ((this.meta.subtype || this.meta.type) === 'date') {\n date.setFullYear(date.getUTCFullYear());\n date.setMonth(date.getUTCMonth());\n date.setDate(date.getUTCDate());\n date.setMinutes(0);\n date.setHours(0);\n date.setSeconds(0);\n date.setMilliseconds(0);\n this.value = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).getTime();\n } else {\n this.value = date.getTime();\n }\n }\n } catch (e) {\n console.error('Date parse error', e.message, `\"${value}\"`, `(${typeof (value)})`);\n }\n } else if ('time' === (this.meta.subtype || this.meta.type)) {\n try {\n let date: Date;\n if (typeof (value) === 'number') {\n date = new Date(parseInt(value as any, 10));\n if (value < 86400000) {\n date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\n }\n } else {\n date = new Date(\n Date.parse(new Date().toISOString().replace(/T.*Z/, `T${value}Z`)) + (new Date().getTimezoneOffset() * 60000)\n );\n }\n this.model = date.toTimeString().split(' ')[0];\n date.setFullYear(1970);\n date.setMonth(0);\n date.setDate(1);\n date.setMilliseconds(0);\n this.value = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).getTime();\n } catch (e) {\n console.error('Date parse error', e.message, `\"${value}\"`, `(${typeof (value)})`);\n }\n } else {\n if (!value && (typeof(this.prevModel) === 'string') && this.isPersistedParent) {\n value = '';\n }\n this.model = value;\n this.value = value;\n }\n } else {\n delete this.model;\n delete this.value;\n }\n }\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n if (typeof(origValue) !== 'undefined') {\n this.parent[this.meta.name] = origValue;\n }\n if (!this.isPersistedParent && typeof(this.meta.auto?.template) === 'string') {\n this.metaContext.onContextChange.subscribe((context) => {\n const autoValue = templateBuilder({ context }, this.meta.auto.template);\n if (this.model === this.lastAutoValue && autoValue) {\n this.lastAutoValue = autoValue;\n this.parent[this.meta.name] = autoValue;\n }\n });\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 this.lastAutoValue = this.model;\n }\n if (this.preview && this.metaContext.onClick2Dial && origValue) {\n this.isPhoneNumber = /^(?:00|\\+)?(([01]|44|61|48|33( )?\\d|27|30|31|34|371|380|39|41|420|52|40|90|91)(\\s)?)?[-./]?\\(?\\d?\\d{1,3}\\)?[-\\s./]?\\d?[-\\s./]?\\d{1,4}\\)?[-\\s./]?\\d{1,4}[-./]?\\d{1,4}(\\s\\d\\d($|,))?(,[,\\d]+#)?$/.test(origValue);\n }\n }\n\n onActivated(ev) {\n this.input = ev.srcElement;\n if (!this.dropdown) {\n this.dropdown = ev.srcElement.parentNode.parentNode;\n }\n this.showDropdown();\n }\n\n clear(ev?) {\n delete this.model;\n delete this.activeSuggestionIndex;\n delete this.asyncSuggestions;\n this.onModelChange(this.model);\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n return false;\n }\n }\n\n onBlur(ev) {\n let internalControl = false;\n if (ev.relatedTarget) {\n if (!this.elementRef.nativeElement.contains(ev.relatedTarget)) {\n this.dismissDropdown();\n } else {\n internalControl = true;\n }\n }\n if (this.keyListenerActive && !internalControl) {\n this.input.removeEventListener('keydown', this.keydown);\n setTimeout(() => {\n if (!this.keyListenerActive) {\n document.removeEventListener('click', this.clickout);\n }\n }, 400);\n delete this.keyListenerActive;\n }\n }\n\n onAdd(ev) {\n console.log('onAdd', this.addText);\n if (this.addText) {\n if ((this.model || []).indexOf(this.addText) === -1) {\n this.onSuggestionSelect(ev, this.addText);\n if (!this.meta.suggestions) {\n this.meta.suggestions = [];\n }\n this.meta.suggestions.unshift(this.addText);\n } else {\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n }\n delete this.addText;\n }\n }\n\n remove(ev, item) {\n ev.preventDefault();\n ev.stopPropagation();\n const optionIndex = this.model.indexOf(item);\n if (optionIndex !== -1) {\n this.model.splice(optionIndex, 1);\n if (!this.model.length) {\n delete this.model;\n delete this.value;\n }\n this.onModelChange(this.model);\n }\n }\n\n onSuggestionSelect(ev, suggestion) {\n if (!suggestion) {\n return;\n }\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n let suggestionValue = suggestion.id || suggestion.value || suggestion;\n if (typeof(suggestionValue) === 'string') {\n if (/^(date|time)/.test(this.meta.subtype)) {\n suggestionValue = relativeTimeBuilder(this.meta.subtype, suggestionValue, this.validations.step);\n } else if (this.meta.type === 'string') {\n suggestionValue = templateBuilder(this.metaContext, suggestionValue);\n } else {\n suggestionValue = suggestion;\n }\n }\n if (this.multiple) {\n if (!this.model) {\n this.model = [];\n }\n let existingItemIndex = this.model.indexOf(suggestionValue);\n if (existingItemIndex === -1) {\n this.model.push(suggestionValue);\n } else {\n this.model.splice(existingItemIndex, 1);\n existingItemIndex = undefined;\n }\n this.onModelChange(this.model);\n } else {\n this.dismissDropdown();\n this.model = suggestionValue;\n this.onModelChange(suggestionValue);\n this.activeSuggestionIndex = this.suggestions.indexOf(suggestion);\n }\n }\n\n textToSpeech() { }\n\n dismissDropdown(event?) {\n if (event) {\n this.focus();\n }\n if (this.dropdown) {\n this.dropdown.classList.remove('Vlt-dropdown--expanded');\n }\n }\n\n click2dial(ev) {\n ev.preventDefault();\n ev.stopPropagation();\n this.metaContext.onClick2Dial(this.model, this.elementRef.nativeElement.closest('vgip-meta-layout[data-vrn]')?.dataset?.vrn);\n return false;\n }\n\n private ensureDropdownIsVisible() {\n setTimeout(() => {\n const holder = this.dropdown.closest('.Vlt-card__content, .Vlt-modal__content');\n if (holder) {\n const el = this.elementRef.nativeElement.querySelector('.Vlt-dropdown__panel');\n 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 }\n }, 400);\n }\n\n private showDropdown() {\n if (this.meta.suggestions?.length) {\n this.dropdown.classList.add('Vlt-dropdown--expanded');\n this.ensureDropdownIsVisible();\n }\n if (!this.keyListenerActive) {\n this.input.addEventListener('keydown', this.keydown);\n setTimeout(() => {\n document.addEventListener('click', this.clickout);\n }, 200);\n this.keyListenerActive = true;\n }\n if (typeof(this.activeSuggestionIndex) === 'undefined') {\n if (this.model && this.suggestions.length) {\n for (let suggestionIndex = 0; suggestionIndex < this.suggestions.length; suggestionIndex++) {\n if (this.model === this.suggestions[suggestionIndex]) {\n this.activeSuggestionIndex = suggestionIndex;\n return;\n }\n }\n delete this.activeSuggestionIndex;\n }\n }\n }\n\n private clickout = (event) => {\n if (event.target.className === 'Vlt-dropdown__link' && this.elementRef.nativeElement.contains(event.target)) {\n this.focus();\n // this.dismissDropdown();\n // this.parent[this.meta.name] = event.target.textContent;\n\n } else if (event.target !== this.input && event.target.className !== 'Vlt-dropdown__title') {\n this.dismissDropdown();\n } else {\n this.focus();\n }\n };\n\n private keydown = (event) => {\n switch (event.key) {\n case 'ArrowDown': {\n if (['datetime', 'time', 'date', 'datetime-local'].indexOf(this.meta.subtype || this.meta.type) !== -1) {\n break;\n }\n this.showDropdown();\n event.preventDefault();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = 0;\n } else {\n this.activeSuggestionIndex++;\n if (this.activeSuggestionIndex >= this.suggestions.length) {\n this.activeSuggestionIndex = 0;\n }\n }\n break;\n }\n case 'ArrowUp': {\n if (['datetime', 'time', 'date', 'datetime-local'].indexOf(this.meta.subtype || this.meta.type) !== -1) {\n break;\n }\n this.showDropdown();\n event.preventDefault();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = this.suggestions.length - 1;\n } else {\n this.activeSuggestionIndex--;\n if (this.activeSuggestionIndex < 0) {\n this.activeSuggestionIndex = this.suggestions.length - 1;\n }\n }\n break;\n }\n case 'Space':\n case 'Enter': {\n if (typeof (this.activeSuggestionIndex) !== 'undefined') {\n event.preventDefault();\n event.stopPropagation();\n this.onSuggestionSelect(event, this.suggestions[this.activeSuggestionIndex]);\n delete this.activeSuggestionIndex;\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n event.stopPropagation();\n this.dismissDropdown();\n break;\n }\n default: {\n setTimeout(() => {\n if (!this.model) {\n delete this.activeSuggestionIndex;\n delete this.asyncSuggestions;\n } else if (typeof(this.model) === 'string') {\n this.asyncSuggestions = (this.meta.suggestions || []).filter((s) => {\n const suggestionText = (s.id || s.value || s || '').toLowerCase();\n return suggestionText.indexOf(this.model.toLowerCase()) !== -1;\n });\n }\n });\n }\n }\n };\n\n}\n","<div class='vgip-meta-field-preview' *ngIf='preview && model'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>\n <a *ngIf=\"isPhoneNumber; else elseBlock\" href='#' (click)=\"click2dial($event)\" class=\"Vlt-text-link\" aria-label='Dial'>\n <svg class=\"Vlt-icon Vlt-icon--smaller\" style=\"margin-top: -3px;\">\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-phone-full\" />\n </svg>\n {{model}}\n </a>\n <ng-template #elseBlock>{{model}}</ng-template>\n </div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element Vlt-form__element--big\" [ngClass]=\"{'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched), 'multiple': multiple, 'has-value': f.value, active: keyListenerActive }\">\n <div *ngIf='multiple' class='items-container'>\n <div *ngIf='model' class='badges-container keep-focus' (click)='focus()'> <!-- eslint-disable-line -->\n <div *ngFor='let item of model' class=\"Vlt-badge Vlt-badge--transparent Vlt-badge--app Vlt-badge--large keep-focus\">\n {{item}}\n <button class=\"Vlt-badge__dismiss keep-focus\" (click)='remove($event, item)'></button> <!-- eslint-disable-line @angular-eslint/template/elements-content -->\n </div>\n </div>\n </div>\n <div class=\"Vlt-input Vlt-dropdown\" style='display: block;' [ngClass]=\"{'vgip-disable': disabled}\">\n <label class='wrapper'>\n <input class='main model' [pattern]=\"validations.pattern ? validations.pattern.value || validations.pattern : null\" [required]='validations.required' [minlength]='validations.minlength' [maxlength]='validations.maxlength' [min]='validations.min' [max]='validations.max' [step]='validations.step' [disabled]='disabled' [readonly]=\"readonly\" [(ngModel)]='model' (ngModelChange)=\"onModelChange($event)\" #f='ngModel' [name]='name' [type]=\"multiple ? 'hidden' : (logicalSubtype || meta.subtype || 'text')\" placeholder=\" \" (click)='onActivated($event)' (focus)='onActivated($event)' (blur)='onBlur($event)'/>\n <input *ngIf='multiple' class='main' [pattern]=\"validations.pattern ? validations.pattern.value || validations.pattern : null\" [minlength]='validations.minlength' [maxlength]='validations.maxlength' [min]='validations.min' [max]='validations.max' [(ngModel)]='addText' [ngModelOptions]=\"{ standalone: true }\" [type]=\"logicalSubtype || meta.subtype || 'text'\" [disabled]='disabled' [readonly]='readonly' placeholder=\"+Add\" (keydown.enter)='onAdd($event)' (click)='onActivated($event)' (focus)='onActivated($event)' (blur)='onBlur($event)'/>\n <label class='Vlt-truncate'>{{meta.label || meta.name}}<span *ngIf='validations.required' class='Vlt-red'>*</span>&nbsp;<span class='Vlt-black' *ngIf='model && multiple'>({{model.length}})</span></label> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control -->\n </label>\n <div class='Vlt-composite__append right-actions'>\n <a href='#' *ngIf='model && showClear' class=\"Vlt-composite__append--icon\" (click)='clear($event)'>\n <div class=\"Vlt-composite__icon\">\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/></svg>\n </div>\n </a>\n </div>\n <!-- <div *ngIf=\"!meta.subtype || meta.subtype == 'text'\" class=\"Vlt-composite__append Vlt-composite__append--icon\" style='bottom: 7px; right: 10px; padding: 3px; width: initial; height: initial; cursor: pointer;'>\n <div *ngIf=\"!meta.type || meta.type === 'string'\" class=\"Vlt-composite__icon\" (click)='textToSpeech()'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-microphone\"/></svg>\n </div>\n </div> -->\n <div *ngIf=\"suggestions.length\" class=\"Vlt-dropdown__panel\">\n <div class=\"Vlt-dropdown__panel__content Vlt-dropdown__panel__content--scroll-area suggestions\">\n <!-- <div class=\"Vlt-dropdown__title\" style='padding-left: 13px;'>\n Suggestions\n <div class=\"Vlt-dropdown__close Vlt-white\" (click)='dismissDropdown($event)'>\n <svg class='Vlt-icon Vlt-icon--small'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/></svg>\n </div>\n </div> -->\n <div class=\"Vlt-dropdown__block\"></div>\n <div *ngIf='dropdown' class=\"Vlt-dropdown__scroll\">\n <a href='#' [ngClass]=\"{ 'Vlt-dropdown__link--selected': (activeSuggestionIndex === i) }\" (click)='onSuggestionSelect($event, suggestion)' *ngFor='let suggestion of suggestions; let i = index' class=\"Vlt-dropdown__link\" style='padding: 0;'>\n <div *ngIf='multiple' class=\"Vlt-checkbox\" style='width: 100%;'>\n <label [title]='suggestion.label || suggestion'>\n <span class=\"Vlt-checkbox__button\">\n <input type=\"checkbox\" [checked]='model && model.indexOf(suggestion) !== -1'/>\n <span class=\"Vlt-checkbox__icon\"></span>\n </span>\n {{suggestion.label || suggestion}}\n </label>\n </div>\n <div *ngIf='!multiple' style='padding: 12px 20px;'>\n {{suggestion.label || suggestion}}\n </div>\n </a>\n </div>\n <div *ngIf='!multiple' class=\"Vlt-dropdown__block\"></div>\n <div *ngIf='multiple' class=\"Vlt-dropdown__block Vlt-dropdown__block--nowrap\" style='padding: 8px 16px 16px;'>\n <button (click)='clear($event)' type='button' class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small Vlt-btn--outline\">Clear all</button>\n <button (click)='dismissDropdown($event)' type='button' class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small\">Done</button>\n </div>\n </div>\n </div>\n </div>\n <small *ngIf='f.invalid && ((f | metaModel)._parent.submitted || ((f | metaModel ).touched && keyListenerActive))' class=\"Vlt-form__element__error\">\n <span *ngIf=\"f.errors.required\">Required.&nbsp;</span>\n <span *ngIf=\"f.errors.minlength\">Must be longer than {{validations.minlength}} characters.&nbsp;</span>\n <span *ngIf=\"f.errors.maxlength\">Must be lest than {{validations.maxlength}} characters.&nbsp;</span>\n <span *ngIf=\"f.errors.pattern\">{{ validations.pattern.text || \"Should match '\"+validations.pattern+\"' pattern.\" }}.&nbsp;</span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}}&nbsp;</span>\n </small>\n <small *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n</div>\n","/*\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, 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 standalone: false\n})\nexport class FieldText extends FieldAbstract implements OnInit {\n // @Input() meta: any;\n value: string;\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 const origValue = this.parent[this.meta.name];\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (value) {\n this.model = value;\n this.value = value;\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 if (!this.isPersistedParent && typeof(this.meta.auto?.template) === 'string') {\n this.metaContext.onContextChange.subscribe((context) => {\n const autoValue = templateBuilder({ context }, this.meta.auto.template);\n if (this.model === this.lastAutoValue && autoValue) {\n this.lastAutoValue = autoValue;\n this.parent[this.meta.name] = autoValue;\n }\n });\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","<div class='vgip-meta-field-preview' *ngIf='preview && model'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>{{parent[meta.name]}}</div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element Vlt-form__element--big\" [ngClass]=\"{ 'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched) }\">\n <label class='wrapper'>\n <div class=\"Vlt-textarea\">\n <textarea class='main model' [required]='validations.required' [maxlength]='validations.maxlength' rows=\"{{ meta.rows || 4 }}\" placeholder=' ' [(ngModel)]='model' (ngModelChange)=\"onModelChangeLocal($event)\" #f='ngModel' [name]='name'></textarea>\n <!-- <div class=\"Vlt-composite__append Vlt-composite__append--icon\">\n <div class=\"Vlt-composite__icon\" (click)='textToSpeech()'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-microphone\"/></svg>\n </div>\n </div> -->\n <label class=\"Vlt-label\">{{meta.label || meta.name}}<span *ngIf='validations.required' class='Vlt-red'>*</span></label> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control -->\n </div>\n </label>\n <small *ngIf='f.invalid && ((f | metaModel)._parent.submitted || ((f | metaModel ).touched))' class=\"Vlt-form__element__error\">\n <span *ngIf=\"f.errors.required\">Required</span>\n <span *ngIf=\"f.errors.maxlength\">Length can not exceed {{validations.maxlength}} characters</span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}}&nbsp;</span>\n </small>\n <small *ngIf='meta.helpText' class=\"Vlt-form__element__hint\">{{meta.helpText}}</small>\n</div>\n","import { Component, OnInit, ViewContainerRef } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { MetaReferenceService } from '../services/metaReference';\nimport { MetaResourceService, IMetaResourceConfig } from '../services/metaResource';\nimport { MetaRefDialog } from '../refDialog';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\n standalone: false\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 isUpdatable = false;\n asyncOptions: Array<any>;\n searching: boolean;\n filteredOptions: Array<any>;\n searchInputText: '';\n searchInput: HTMLInputElement;\n private desiredValue: any;\n\n constructor(\n private referenceService: MetaReferenceService,\n private metaResource: MetaResourceService,\n private viewContainerRef: ViewContainerRef\n ) {\n super();\n }\n\n get options() {\n return this.filteredOptions || this.asyncOptions || this.meta.options || this.meta.picklist || [];\n }\n\n get groupedOptions() {\n return this.options.reduce((r, { group }) => {\n if (!r.some(o => o.group === group)) {\n r.push({ group, groupItem: this.options.filter(v => v.group === group) });\n }\n return r;\n }, []);\n }\n\n get resourceService() {\n if (!this.metaResourceService) {\n const metaResourceConfig: IMetaResourceConfig = {\n integrationCode: this.integrationCode,\n resourceType: this.resourceType,\n delegate: this.delegate\n };\n this.metaResourceService = this.metaResource.new(metaResourceConfig);\n }\n return this.metaResourceService;\n }\n\n get optionsBackup() {\n return this.asyncOptions || this.meta.options || this.meta.picklist || [];\n }\n\n // static setup(instance, parent, meta) { } // eslint-disable-line @typescript-eslint/no-unused-vars\n\n ngOnInit() {\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 this.isUpdatable = this.meta.reference.updatable\n }\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n this.desiredValue = value;\n if (this.multiple) {\n if (value && value instanceof Array === false) {\n for (const o of this.optionsBackup) {\n if ((value.id || value) === (o.id || o.value || o.name || 0)) {\n this.model = [o];\n this.value = [this.modelToValue(o, this.meta.valueType)];\n break;\n }\n }\n }\n if (!value || value.length) {\n const values = (value instanceof Array) ? value : (value || '').split(';'); // should not handle incorrect values\n this.value = [];\n this.model = [];\n for (const v of values) {\n if (v) {\n for (const o of this.optionsBackup) {\n if ((v.id || v) === (o.id || o.value || o.name || 0)) {\n this.model.push(o);\n this.value.push(this.modelToValue(o, this.meta.valueType));\n break;\n }\n }\n }\n }\n if (!this.model.length && !this.isPersistedParent) {\n delete this.model;\n delete this.value;\n delete this.showText;\n } else {\n this.showText = (this.model || []).map((o) => o.label || o).join(', ');\n }\n }\n } else {\n if (value) {\n for (const o of this.options) {\n if ((value.id || value) === (o.id || o.value || o.name || o)) {\n this.model = o;\n this.value = this.modelToValue(o, this.meta.valueType);\n this.showText = o.label || o;\n break;\n }\n }\n if (this.meta.acceptNew && (this.model?.id || this.model) !== value) { // VGIS-10948\n const newOption = {\n id: value.id || value,\n label: value.id || value\n };\n if (!this.options.find((o) => o.id === newOption.id)) { // VGIS-10985\n this.options.push(newOption);\n }\n this.model = newOption;\n this.value = this.modelToValue(newOption, this.meta.valueType);\n this.showText = newOption.label;\n }\n } else {\n delete this.model;\n delete this.value;\n delete this.showText;\n }\n }\n this.onSubjectChange(this.value);\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 if (!this.model) {\n this.parent[this.meta.name] = this.default.id || this.default;\n }\n }, 0);\n }\n\n if (typeof (this.meta.enabled) !== 'undefined') {\n if (typeof (this.meta.enabled) === 'object') { // TODO move me up\n for (const par of Object.keys(this.meta.enabled)) {\n // console.log('this.meta.enabled', this.meta.enabled)\n const parValue = this.parent[par];\n if (parValue) {\n // logic for specific values, this works only for true\n } else {\n this.logicalDisabled = true;\n this.clear();\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(par)) {\n setTimeout(() => {\n this.logicalDisabled = !value[par];\n if (this.logicalDisabled) {\n this.clear();\n } else {\n this.filterOptions();\n }\n }, 0 );\n }\n });\n }\n this.filterOptions();\n }\n }\n\n if (this.meta.search) {\n const searchParams = this.meta.search.params;\n if (searchParams) {\n for (const par of Object.keys(searchParams)) {\n const parValue = this.parent[searchParams[par]];\n if (parValue) {\n const params = {};\n params[par] = parValue;\n this.searchOptions(params);\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value?.hasOwnProperty(searchParams[par])) {\n if (!this.logicalDisabled) {\n this.searchOptions(value);\n }\n }\n });\n }\n }\n }\n if ((this.meta.options || []).find((o) => o.for )) { // there are dependent options\n this.filterOptions();\n }\n }\n\n onActivated(ev) {\n // ev.preventDefault();\n // ev.stopPropagation();\n this.input = ev.srcElement;\n if (!this.dropdown) {\n this.dropdown = ev.srcElement.parentNode.parentNode.parentNode;\n this.searchInput = this.dropdown.querySelector('.vgip-search_input');\n }\n this.showDropdown();\n }\n\n detectSearchBlock(element) {\n return this.elementRef.nativeElement.querySelector('.Vlt-search_wrap').contains(element);\n }\n\n onBlur(ev) {\n let internalControl = false;\n if (ev.relatedTarget) {\n\n if (!this.detectSearchBlock(ev.relatedTarget) && !this.elementRef.nativeElement.contains(ev.relatedTarget)) {\n this.dismissDropdown();\n } else {\n internalControl = true;\n }\n }\n if (this.keyListenerActive && !internalControl) {\n this.input.removeEventListener('keydown', this.keydown);\n if (this.searchInput) {\n this.searchInput.removeEventListener('keydown', this.keydown);\n }\n setTimeout(() => {\n if (!this.keyListenerActive) {\n document.removeEventListener('click', this.clickout);\n }\n }, 400);\n delete this.keyListenerActive;\n }\n this.onLeave.emit(ev);\n }\n\n onOptionSelect(ev, option) {\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n this.focus();\n if (this.multiple) {\n if (!this.model) {\n this.model = [];\n }\n const optionIndex = this.model.indexOf(option);\n if (optionIndex === -1) {\n this.model.push(option);\n } else {\n this.model.splice(optionIndex, 1);\n if (!this.model.length) {\n delete this.model;\n }\n }\n this.onModelChange(this.model);\n if (this.model) {\n this.showText = (this.model || []).map((o) => o.label || o).join(', ');\n } else {\n delete this.showText;\n }\n } else {\n this.dismissDropdown();\n if (typeof option !== 'undefined') {\n this.model = option;\n this.onModelChange(option);\n this.showText = option.label || (option.id === '' ? '--empty--' : option);\n if (typeof (option) === 'object' && !option.id && option.id !== '') {\n delete this.showText;\n }\n }\n }\n }\n\n clear(ev?) {\n delete this.model;\n this.onModelChange(this.model);\n delete this.showText;\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n }\n }\n\n openResource(ev) {\n this.dismissDropdown();\n if (this.model && typeof(this.meta.reference.updatable) === 'function') {\n return this.meta.reference.updatable(this);\n } else if (typeof(this.meta.reference.creatable) === 'function') {\n return this.meta.reference.creatable(this);\n }\n const refDialogComponent = this.viewContainerRef.createComponent(MetaRefDialog);\n let theme = this.elementRef.nativeElement.dataset.theme;\n if (!theme || theme === 'inherit') {\n let parentComponent = this.elementRef.nativeElement.closest('vgip-meta-layout');\n if (parentComponent) {\n theme = parentComponent.dataset.theme;\n }\n if (!theme || theme === 'inherit') {\n parentComponent = this.elementRef.nativeElement.closest('vgip-meta-resource');\n if (parentComponent) {\n theme = parentComponent.dataset.theme;\n }\n }\n }\n this.referenceService.openDialog(\n refDialogComponent, this.metaResource, this.integrationCode, this.meta.reference, null, false, null, theme, this.overlayContainer\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(updateActiveSuggestionIndex = true) {\n this.dropdown.classList.add('Vlt-dropdown--expanded');\n if (!this.keyListenerActive) {\n if (this.searchInput) {\n this.searchInput.focus(); // Focus directly on search input first visit\n this.searchInput.addEventListener('keydown', this.keydown);\n }\n this.input.addEventListener('keydown', this.keydown);\n setTimeout(() => {\n document.addEventListener('click', this.clickout);\n }, 200);\n this.keyListenerActive = true;\n }\n if (updateActiveSuggestionIndex && 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 break;\n }\n }\n }\n this.ensureDropdownIsVisible();\n }\n\n dismissDropdown(event?) {\n if (event) {\n this.focus();\n }\n if (this.dropdown) {\n this.dropdown.classList.remove('Vlt-dropdown--expanded');\n }\n if (this.searchInput) {\n this.clearSearchField();\n }\n delete this.activeSuggestionIndex;\n }\n\n onSearchChange() {\n const search = new RegExp(this.searchInputText, 'gi');\n if (this.searchInputText === '') {\n this.filteredOptions = [...this.optionsBackup];\n } else {\n this.filteredOptions = this.optionsBackup.filter(option => (option.label || option.id || option.name || option).match(search));\n }\n }\n\n clearSearchField(ev?) {\n this.searchInputText = '';\n this.onSearchChange();\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n }\n }\n\n private ensureDropdownIsVisible() {\n setTimeout(() => {\n const holder = this.dropdown.closest('.Vlt-card__content, .Vlt-modal__content');\n if (holder) {\n const el = this.elementRef.nativeElement.querySelector('.Vlt-dropdown__panel');\n const elRect = el.getBoundingClientRect();\n const holderRect = holder.getBoundingClientRect();\n if (holderRect.top + holderRect.height < elRect.top + elRect.height) {\n el.scrollIntoView({ block: 'end' });\n }\n }\n }, 400);\n }\n\n private ensureDropdownOptionIsVisible() {\n if (!this.dropdownScrollContainer) {\n this.dropdownScrollContainer = this.dropdown.querySelector('.Vlt-dropdown__scroll');\n }\n if (this.dropdownScrollContainer && typeof (this.activeSuggestionIndex) === 'number') {\n const scrollTop = 44 * this.activeSuggestionIndex;\n const scrollBottom = 44 * (this.activeSuggestionIndex - 7);\n if (scrollTop < this.dropdownScrollContainer.scrollTop) {\n this.dropdownScrollContainer.scrollTop = scrollTop;\n } else if (scrollBottom > this.dropdownScrollContainer.scrollTop) {\n this.dropdownScrollContainer.scrollTop = scrollBottom;\n }\n }\n }\n\n private filterOptions() {\n // console.log('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 if (this.model) {\n // replace current selections with valid ones from the new options list (support duplicate id)\n if (this.multiple) {\n const validSelections = [];\n for (let i = this.model.length - 1; i >= 0; i--) {\n const applicable = this.asyncOptions.find((o) => o.id === this.model[i].id);\n if (applicable) {\n validSelections.push(applicable);\n }\n }\n this.model = validSelections;\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.model = this.asyncOptions.find((m) => m.id === this.model.id);\n }\n this.onModelChange(this.model);\n }\n }\n\n private clickout = (event) => {\n if (\n event.target.className === 'Vlt-dropdown__link' && this.elementRef.nativeElement.contains(event.target)\n ) {\n this.focus();\n } else if (\n event.target !== this.input &&\n !event.target.classList.contains('Vlt-dropdown__block') &&\n !this.detectSearchBlock(event.target)\n ) {\n this.dismissDropdown();\n } else if (this.detectSearchBlock(event.target)) {\n event.target.focus();\n } else {\n this.focus();\n }\n };\n\n private keydown = (event) => {\n switch (event.key) {\n case 'ArrowDown': {\n this.showDropdown(false);\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(false);\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = this.options.length - 1;\n } else {\n this.activeSuggestionIndex--;\n if (this.activeSuggestionIndex < 0) {\n this.activeSuggestionIndex = this.options.length - 1;\n }\n }\n this.ensureDropdownOptionIsVisible();\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n case 'Enter':\n case 'Space':\n case ' ': {\n if (typeof (this.activeSuggestionIndex) !== 'undefined') {\n event.preventDefault();\n event.stopPropagation();\n this.onOptionSelect(event, this.options[this.activeSuggestionIndex]);\n if (!this.multiple) {\n delete this.activeSuggestionIndex;\n }\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n event.stopPropagation();\n this.dismissDropdown();\n break;\n }\n case 'Backspace': {\n if (!this.dropdown.classList.contains('Vlt-dropdown--expanded')) {\n event.preventDefault();\n event.stopPropagation();\n this.clear();\n }\n break;\n }\n }\n };\n\n private searchOptions(params?) { // eslint-disable-line @typescript-eslint/no-unused-vars\n let searchUrl = `/fields/${this.meta.name}/search`;\n if (this.meta.search) {\n const searchParams = this.meta.search.params;\n if (this.meta.search.url) {\n searchUrl = this.meta.search.url.replace(/\\${\\s*([\\w.]+)\\s*}/g, (match, key) => {\n if (searchParams.hasOwnProperty(key)) {\n const props = searchParams[key].split('.');\n const field = props[0];\n const prop = props[1];\n delete searchParams[key]; // if it is URL param, remove it as query param\n let parValue = this.parent[field];\n if (parValue) {\n if (prop) {\n parValue = parValue[prop];\n }\n if (parValue) {\n return parValue;\n }\n }\n }\n return 'undefined';\n });\n }\n 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 const value = this.value || this.desiredValue;\n if (this.multiple) {\n if (value) {\n const values = value instanceof Array ? value : (value || \"\").split(\";\");\n validValue = values.some(\n (v) =>\n options.find(\n (o) => (v.id || v) === (o.id || o.value || o.name || 0)\n ) !== undefined\n );\n }\n } else {\n if (value) {\n validValue = options.find((o) => (o.id || o) === (value.id || value)) !== undefined;\n }\n }\n\n if (!validValue) {\n this.clear();\n } else {\n this.parent[this.meta.name] = value;\n }\n delete this.searching;\n });\n }\n\n}","<div class='vgip-meta-field-preview' *ngIf='preview && model'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>\n {{showText}}\n </div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element\"\n [ngClass]=\"{ 'Vlt-form__element--big': !meta.small ,'has-value': f.value, active: keyListenerActive, 'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (ft | metaModel ).touched), 'no-x': meta.noX }\">\n <div class=\"Vlt-composite Vlt-dropdown Vlt-input\" style='display: block;'\n [ngClass]=\"{ 'has-append-button': isCreatable && !disabled }\">\n <div class=\"Vlt-select\">\n <label class='wrapper'>\n <label class='Vlt-truncate'>{{meta.label || meta.name}}<span *ngIf='validations.required && options.length' class='Vlt-red'>*</span></label> <!-- eslint-disable-line -->\n <input class='main' [required]='validations.required && !!options.length' readonly [ngModel]='showText'\n #ft='ngModel' [ngModelOptions]=\"{standalone: true}\" type=\"text\"\n [placeholder]=\"meta.placeholder || ' '\" (click)='onActivated($event)' (focus)='onActivated($event)'\n (blur)='onBlur($event)' [ngClass]=\"{ 'standalone': meta.standalone }\"\n [disabled]='disabled' [attr.aria-label]='meta.label' />\n </label>\n <select class='model' [required]='validations.required && !!options.length' style='display: none;'\n [(ngModel)]='model' [ngModelOptions]=\"{standalone: meta.standalone}\"\n (ngModelChange)=\"onModelChange($event)\" #f='ngModel' [name]='name'></select>\n <div *ngIf='searching' class='search-progress'>\n <div class=\"container\">\n <div class=\"bar Vlt-bg-purple\"></div>\n </div>\n </div>\n <div class='Vlt-composite__append right-actions'>\n <a href='#' *ngIf='model && !meta.noX && !disabled' class=\"Vlt-composite__append--icon\"\n (click)='clear($event)'>\n <div class=\"Vlt-composite__icon\">\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\" />\n </svg>\n </div>\n </a>\n </div>\n </div>\n <div class='Vlt-dropdown__panel'>\n <div class=\"Vlt-dropdown__panel__content Vlt-dropdown__panel__content--scroll-area\">\n <!-- <div class=\"Vlt-dropdown__title\" style='padding-left: 15px;'>\n Select ({{options.length}})\n <div class=\"Vlt-dropdown__close Vlt-white\" (click)='dismissDropdown($event)'>\n <svg class='Vlt-icon Vlt-icon--small'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/></svg>\n </div>\n </div> -->\n <div class=\"Vlt-dropdown__block Vlt-search_wrap\">\n <div *ngIf=\"optionsBackup.length > 12\" class=\"Vlt-composite\" [ngClass]=\"{'vgip-disable': disabled}\">\n <div class=\"Vlt-composite__prepend Vlt-composite__prepend--icon\"\n style=\"top: 0; padding-top: 15px;\">\n <div class=\"Vlt-composite__icon\">\n <svg class='Vlt-grey'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-search\"></use>\n </svg>\n </div>\n </div>\n <div class=\"Vlt-input\">\n <input type=\"text\" class=\"vgip-search_input\" [(ngModel)]=\"searchInputText\" placeholder=\"Search\" (input)=\"onSearchChange()\" (blur)='onBlur($event)' [ngModelOptions]=\"{standalone: true}\">\n </div>\n <a href='#' class=\"Vlt-composite__append--icon\" style=\"top: 2px;\" (click)=\"clearSearchField($event)\" [hidden]=\"!searchInputText\">\n <div class=\"Vlt-composite__icon\">\n <svg class='Vlt-icon Vlt-icon--small'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/>\n </svg>\n </div>\n </a>\n </div>\n </div>\n <div *ngIf='dropdown' class='Vlt-dropdown__scroll'>\n <a href='#' [ngClass]=\"{ 'Vlt-dropdown__link--selected': activeSuggestionIndex === i }\"\n (click)='onOptionSelect($event, option)' *ngFor='let option of options; let i = index'\n class=\"Vlt-dropdown__link\" title=\"{{option.hint}}\">\n <div *ngIf='multiple' class=\"Vlt-checkbox\" style='width: 100%;'>\n <label>\n <span class=\"Vlt-checkbox__button\">\n <input type=\"checkbox\" [checked]='model && model.indexOf(option) !== -1' />\n <span class=\"Vlt-checkbox__icon\"></span>\n </span>\n {{option.label || (option.id === '' ? '--empty--' : option)}}\n </label>\n </div>\n <div *ngIf='!multiple' style='padding: 12px 20px;'>{{option.label || (option.id === '' ?\n '--empty--' : option)}}</div>\n </a>\n <!-- No Option Found -->\n <div class=\"Vlt-dropdown__link\" *ngIf=\"options.length === 0\">\n <span style='padding: 12px 20px;'>\n No Option Found\n </span>\n <button *ngIf='isCreatable && !disabled' type=\"button\" class=\"Vlt-btn Vlt-btn--link\" (click)='openResource($event)'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\" />\n </svg> Add new\n </button>\n </div>\n </div>\n <div *ngIf='!multiple' class=\"Vlt-dropdown__block\"></div>\n <div *ngIf='multiple' class=\"Vlt-dropdown__block Vlt-dropdown__block--nowrap\"\n style='padding: 8px 16px 16px;'>\n <button (click)='clear($event)' type='button'\n class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small Vlt-btn--outline\"\n style='margin-right: 8px;'>Clear all</button>\n <button (click)='dismissDropdown($event)' type='button'\n class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small\">Done</button>\n </div>\n </div>\n </div>\n <!-- <span *ngIf='isCreatable'>\n <button type='button' (click)='openResource($event)' class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--icon Vlt-btn--large\" style='margin-left: 12px;'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>\n </button>\n </span> -->\n <div *ngIf='isCreatable && !disabled' class=\"Vlt-composite__append\">\n <button (focus)='onActivated($event)' (blur)='onBlur($event)' type='button' (click)='openResource($event)'\n class=\"Vlt-btn Vlt-btn--white Vlt-btn--icon add-button\" aria-label='Add new'>\n <svg>\n <use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-{{ (isUpdatable && model) ? 'edit' : 'plus'}}\" />\n </svg>\n </button>\n </div>\n </div>\n <small *ngIf='f.invalid && ((f | metaModel)._parent.submitted || ((ft | metaModel).touched))'\n class=\"Vlt-form__element__error\">\n <span *ngIf=\"f.errors.required\">Required.&nbsp;</span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}}&nbsp;</span>\n </small>\n <small *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n</div>\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:35:19\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-03-23 17:08:23\n */\n\nimport { Injectable, EventEmitter } from '@angular/core';\n\nexport interface IMetaTrackerEvent {\n integration?: string;\n resource?: string;\n field?: string;\n action?: string;\n value?: string;\n isContactable?: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetaTrackerService {\n integrationCode: string;\n resourceType: string;\n events: EventEmitter<IMetaTrackerEvent> = new EventEmitter();\n\n constructor() {}\n\n emit(event: IMetaTrackerEvent) {\n if (!event.integration) {\n event.integration = this.integrationCode || 'N/A';\n }\n if (!event.resource) {\n event.resource = this.resourceType || 'N/A';\n }\n this.events.emit(event);\n }\n}\n","import { Component, OnInit, ViewContainerRef } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { MetaReferenceService } from '../services/metaReference';\nimport { Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { MetaResourceService, IMetaResourceConfig } from '../services/metaResource';\nimport { MetaRefDialog } from '../refDialog';\nimport { MetaMsgService } from '../services/metaMsg';\nimport { MetaContextService } from '../services/metaContext';\nimport { IMetaTrackerEvent, MetaTrackerService } from '../services/metaTracker';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\n standalone: false\n})\nexport class FieldReference extends FieldAbstract implements OnInit {\n input: any;\n dropdown: HTMLElement;\n dropdownScrollContainer: HTMLElement;\n searching: boolean;\n searchResourceType: any = {};\n searchText: string;\n searchResults: Array<any>;\n searchError: any;\n activeSuggestionIndex: number;\n searchResourceTypesScope: string;\n searchTextChanged: Subject<string> = new Subject<string>();\n isCreatable = false;\n value: any;\n isPolymorphic: boolean;\n isSearchable: boolean;\n multiple: boolean;\n vr: MetaResourceService;\n externalLink: string;\n dropdownVisible = false;\n searchResourceTypeMeta: any = {\n type: 'select',\n name: 'resourceType',\n label: 'Type',\n options: [], // { label: '-- All types --' }],\n standalone: true\n };\n filteredSuggestions: Array<any> = [];\n placeHolderLabel: string;\n asyncSuggestions: Array<any>;\n smartSuggestions: Array<any> = [];\n\n constructor(\n private referenceService: MetaReferenceService,\n private metaResource: MetaResourceService,\n private metaMsgService: MetaMsgService,\n private metaContext: MetaContextService,\n private metaTracker: MetaTrackerService,\n private viewContainerRef: ViewContainerRef\n ) {\n super();\n }\n\n get disabled() {\n const superDisabled = this.logicalDisabled || this.validations.disabled || this.meta.disabled === true\n || (this.meta.updatable === false && this.isPersistedParent);\n this.searchResourceTypeMeta.disabled = superDisabled;\n return superDisabled;\n }\n\n get showTypes() {\n return (typeof (this.meta.showTypes) !== 'undefined') ? this.meta.showTypes : true;\n }\n\n get suggestions() {\n return this.smartSuggestions.concat(\n !this.searchResourceType.resourceType ?\n // eslint-disable-next-line max-len\n (this.asyncSuggestions || this.meta.suggestions || []) : (this.asyncSuggestions || this.meta.suggestions || []).filter((s) => s.type === this.searchResourceType.resourceType)\n );\n }\n\n get hasAppendButton() {\n if (!this.multiple && this.model) {\n if (this.isPolymorphic) {\n for (const ref of this.metaReference) {\n if ((ref.name || ref.resourceType) === (this.model.type || this.model.resourceType)) {\n return ref.updatable || (ref.creatable && ref.updatable !== false);\n }\n }\n } else {\n return this.metaReference.updatable || (this.metaReference.creatable && this.metaReference.updatable !== false); // VGIS-6911\n }\n } else if (this.metaReference instanceof Array) {\n // setTimeout(() => {\n // this.searchResourceTypesScope = this.metaReference.map(rt => rt.name).join(',');\n // }, 0);\n for (const rt of this.metaReference) {\n if (rt.hidden !== false && rt.creatable) {\n return true;\n }\n }\n } else {\n return this.metaReference.creatable;\n }\n }\n\n get resourceService() {\n if (!this.metaResourceService) {\n const metaResourceConfig: IMetaResourceConfig = {\n integrationCode: this.integrationCode,\n resourceType: this.resourceType,\n delegate: this.delegate\n };\n this.metaResourceService = this.metaResource.new(metaResourceConfig);\n }\n return this.metaResourceService;\n }\n\n get metaReference() {\n return this.meta.reference || {};\n }\n\n ngOnInit() {\n this.multiple = (this.meta.type === 'multireference') || this.meta.multiple;\n this.searchResourceTypeMeta.label = this.meta.label;\n if (!this.meta.valueType) {\n // this.meta.valueType = 'object';\n Object.defineProperty(this.meta, 'valueType', {\n value: 'object'\n });\n }\n if (this.metaReference instanceof Array) {\n this.isPolymorphic = true;\n this.isSearchable = true;\n this.searchResourceTypesScope = this.metaReference.filter(rt => rt.hidden !== true).map(rt => rt.name).join(',');\n for (const rt of this.metaReference) {\n if (rt.creatable) {\n this.isCreatable = true;\n if (typeof (rt.searchable) !== 'undefined' && !rt.searchable) {\n this.isSearchable = false;\n }\n }\n }\n this.metaReference.forEach((r) => {\n if (!r.hidden) {\n this.searchResourceTypeMeta.options.push({ id: r.name, label: r.label || r.name });\n if (r.default) {\n this.searchResourceTypeMeta.default = r.name;\n }\n }\n });\n } else {\n this.isSearchable = typeof (this.metaReference.searchable) === 'undefined' || this.metaReference.searchable;\n this.searchResourceType = this.metaReference;\n this.searchResourceTypesScope = this.metaReference.name || this.metaReference.resourceType;\n this.isCreatable = this.metaReference.creatable;\n }\n this.buildPlaceholderLabel();\n this.searchTextChanged.pipe(debounceTime(300), distinctUntilChanged()).subscribe((value: string) => {\n this.searchText = value;\n this.search();\n });\n const origValue = this.parent[this.meta.name];\n\n // this.suggestions = this.meta.suggestions; // TODO filter by default type\n // console.log('this.suggestions', this.suggestions);\n\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (value === '') {\n value = null;\n }\n if (this.multiple) {\n if (value && value instanceof Array) {\n for (const v of value) {\n if (!this.model) {\n this.model = [];\n }\n if (typeof (v) === 'string') {\n this.model.push({\n id: v,\n label: v,\n type: this.metaReference.name\n });\n }\n }\n } else {\n value = null; // protect when value from server is not array\n }\n } else {\n if (typeof (value) === 'string') {\n value = {\n id: value,\n label: value, // could be found with extra call\n type: this.metaReference.name\n };\n }\n this.searchText = value ?\n ((!value.label || value.label === ' ') ? `N/A (${value.type}#${value.id})` : value.label || value) :\n '';\n // if (this.isPolymorphic && this.model) { //TODO show or not?\n // this.searchResourceType = this.metaReference.find((rt)=> {\n // return rt.name === this.model.type;\n // });\n // }\n }\n this.model = value;\n if (!this.multiple) {\n this.value = this.modelToValue(value, this.meta.valueType || 'object');\n this.buildExternalLink();\n } else {\n this.value = !this.model ? this.model : this.model.map((m) => this.modelToValue(m, this.meta.valueType || 'object'));\n }\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n if (origValue) {\n this.parent[this.meta.name] = origValue;\n }\n if (!this.model && this.default) {\n if (this.multiple) {\n this.parent[this.meta.name] = [];\n if (this.default.length) {\n for (const dv of this.default) {\n if ((dv.id || dv.value) && dv.type) {\n const item: any = {\n id: dv.id || dv.value,\n label: dv.label || dv.id || dv.value,\n type: dv.type\n };\n if (dv.externalLink) {\n item.externalLink = dv.externalLink;\n }\n this.parent[this.meta.name].push(item);\n }\n }\n }\n if (!this.parent[this.meta.name].length) {\n this.clear();\n }\n } else {\n if (this.default.id && this.default.label && this.default.type) {\n setTimeout(() => {\n if (!this.model) {\n const item: any = {\n id: this.default.id || this.default.value,\n label: this.default.label || this.default.id || this.default.value,\n type: this.default.type,\n smart: true\n };\n if (this.default.externalLink) {\n item.externalLink = this.default.externalLink;\n }\n this.parent[this.meta.name] = item;\n }\n }, 0);\n } else {\n console.warn('!!!default value is not valid format', this.meta);\n }\n }\n }\n\n if (typeof (this.meta.disabled) !== 'undefined') {\n if (typeof (this.meta.disabled) === 'object') {\n for (const p of Object.keys(this.meta.disabled)) {\n const props = p.split('.');\n if (typeof (this.parent[props[0]]) !== 'undefined') {\n let val = this.parent;\n for (const prop of props) {\n val = val[prop];\n if (!val) {\n break;\n }\n }\n if (val === this.meta.disabled[p]) {\n this.logicalDisabled = true;\n this.clear();\n }\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(props[0])) {\n let val = this.parent;\n for (const prop of props) {\n val = val[prop];\n if (!val) {\n break;\n }\n }\n if (val === this.meta.disabled[p]) {\n this.logicalDisabled = true;\n this.clear();\n } else {\n delete this.logicalDisabled;\n }\n }\n });\n }\n }\n }\n\n if (this.meta.auto && this.meta.auto.search) {\n const searchParams = this.meta.auto.search.params;\n if (searchParams) {\n for (const par of Object.keys(searchParams)) {\n const props = searchParams[par].split('.');\n const field = props[0];\n const prop = props[1];\n let parValue = this.parent[field];\n if (parValue) {\n if (prop) {\n parValue = parValue[prop];\n }\n if (parValue) {\n const params = {};\n params[par] = parValue;\n this.searchAutoSuggestions(params);\n }\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(field)) {\n if (value[field]) {\n if (prop) {\n value[field] = value[field][prop];\n }\n const params = {};\n params[par] = value[field];\n this.searchAutoSuggestions(params);\n }\n }\n });\n }\n }\n }\n }\n\n clearSearchResourceType() {\n this.searchResourceType = {};\n this.onSearchResourceTypeChanged();\n }\n\n onSearchResourceTypeChanged(resourceType?) {\n if (!resourceType || !resourceType.id) {\n this.searchResourceType.resourceType = null;\n this.searchResourceTypesScope = (this.metaReference || []).filter(rt => rt.hidden !== true).map(rt => rt.name).join(',');\n } else {\n this.searchResourceType.resourceType = resourceType.id;\n this.searchResourceTypesScope = resourceType.id;\n }\n this.buildPlaceholderLabel();\n this.focus();\n if (!this.model && !this.searchText) { // filter suggestions by type\n this.filteredSuggestions = !resourceType ? (this.meta.suggestions || []) : (this.meta.suggestions || []).filter(\n (s) => s.type === resourceType.id\n );\n } else { // regular search (return scoped results)\n if (!this.model) {\n this.search();\n } else if (this.searchResults && resourceType) {\n this.searchResults = this.searchResults.filter((s) => s.type === resourceType.id);\n }\n }\n delete this.searchError;\n this.onRefTypeChange.emit(resourceType);\n }\n\n onSearchTextChanged(value: string) {\n this.searchTextChanged.next(value);\n }\n\n search() {\n this.searching = true;\n // this.activeSuggestionIndex;\n if (!this.searchText || this.searchText.length < 2) {\n this.searching = false;\n delete this.searchResults;\n return;\n }\n const showSearchResults = (results) => {\n this.searching = false;\n delete this.searchError;\n delete this.activeSuggestionIndex;\n if (!results || !(results instanceof Array)) {\n results = [];\n }\n if (this.meta.acceptNew && this.meta.acceptNew.type && this.meta.acceptNew.pattern) {\n const regex = new RegExp(this.meta.acceptNew.pattern);\n if (regex.test(this.searchText)) {\n results.unshift({ id: null, label: this.searchText, type: this.meta.acceptNew.type });\n }\n }\n this.searchResults = results.map((r) => { // eslint-disable-line arrow-body-style\n return { id: r.id, label: r.label, type: r.type || r.resourceType || this.searchResourceType.name, externalLink: r.externalLink };\n });\n if (!/Vlt-dropdown--expanded/.test(this.dropdown.className)) {\n this.showDropdown();\n }\n };\n\n if (this.meta.search) {\n const searchParams = this.meta.search.params || {};\n let searchUrl = `/fields/${this.meta.name}/search`;\n if (this.meta.search.url) {\n searchUrl = this.meta.search.url.replace(/\\${\\s*([\\w.]+)\\s*}/g, (match, key) => {\n if (searchParams.hasOwnProperty(key)) {\n const props = searchParams[key].split('.');\n const field = props[0];\n const prop = props[1];\n delete searchParams[key]; // if it is URL param, remove it as query param\n let parValue = this.parent[field];\n if (parValue) {\n if (prop) {\n parValue = parValue[prop];\n }\n if (parValue) {\n return parValue;\n }\n }\n }\n return 'undefined';\n });\n }\n for (const p of Object.keys(searchParams)) {\n searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}${encodeURIComponent(p)}=${encodeURIComponent(searchParams[p])}`;\n }\n searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}q=${encodeURIComponent(this.searchText)}`;\n this.searching = true;\n this.resourceService.getByPath(searchUrl).subscribe((results) => {\n showSearchResults(results);\n }, (error) => {\n delete this.searching;\n this.searchResults = [];\n this.searchError = error.error ? error.error.message || error.error : error.message || error;\n if (!/Vlt-dropdown--expanded/.test(this.dropdown.className)) {\n this.showDropdown();\n }\n });\n } else {\n if (!this.vr) {\n this.vr = this.metaResource.new({\n integrationCode: this.integrationCode,\n resourceType: null,\n delegate: this.delegate\n });\n }\n this.vr.searchIntegration(\n this.searchText,\n this.searchResourceType.name || this.searchResourceTypesScope\n ).subscribe((results: Array<any>) => {\n showSearchResults(results);\n }, (error) => {\n this.searching = false;\n this.searchResults = [];\n this.searchError = error.error ? error.error.message || error.error : error.message || error;\n if (!/Vlt-dropdown--expanded/.test(this.dropdown.className)) {\n this.showDropdown();\n }\n });\n }\n }\n\n onActivated(ev) {\n // ev.preventDefault();\n // ev.stopPropagation();\n this.input = ev.srcElement;\n if (!this.dropdown) {\n // this.dropdown = ev.srcElement.parentNode.parentNode;\n this.dropdown = this.elementRef.nativeElement.querySelector('.dropdown-wrapper');\n }\n this.showDropdown();\n }\n\n onBlur(ev) {\n let internalControl = false;\n if (ev.relatedTarget) {\n if (!this.elementRef.nativeElement.contains(ev.relatedTarget)) {\n this.dismissDropdown();\n } else {\n internalControl = true;\n }\n }\n if (this.keyListenerActive && !internalControl) {\n this.input.removeEventListener('keydown', this.keydown);\n setTimeout(() => {\n if (!this.keyListenerActive) {\n document.removeEventListener('click', this.clickout);\n }\n }, 400);\n delete this.keyListenerActive;\n }\n }\n\n removeSelection(ev?) {\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n if (this.model && !this.suggestions.find((s) => (s.id === this.model.id && s.type === this.model.type))) {\n this.smartSuggestions.push({\n id: this.model.id,\n label: this.model.label,\n type: this.model.type,\n smart: true\n });\n }\n this.metaTracker.emit(this.buildTrackEvent('REMOVE'));\n this.clear();\n }\n\n onSuggestionSelect(ev, suggestion) {\n if (!suggestion) {\n return;\n }\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n this.metaTracker.emit(this.buildTrackEvent('SELECT'));\n if (this.multiple) {\n if (!this.model) {\n this.model = [];\n }\n let existingEntry;\n for (const entry of this.model) {\n if (suggestion.id && (entry.id === suggestion.id)) {\n existingEntry = entry;\n break;\n } else if (suggestion.label === entry.label) { // create new (google emails)\n existingEntry = entry;\n break;\n }\n }\n if (!existingEntry) {\n this.model.push(suggestion);\n }\n this.onModelChange(this.model);\n delete this.searchText;\n this.searchTextChanged.next(this.searchText);\n } else {\n this.model = suggestion;\n this.externalLink = suggestion.externalLink;\n this.onModelChange(suggestion);\n this.searchText = suggestion.label;\n this.activeSuggestionIndex = (this.searchResults || this.suggestions).indexOf(suggestion);\n }\n this.dismissDropdown();\n // if (this.isPolymorphic) {\n // this.searchResourceType = this.metaReference.find((rt)=> {\n // return rt.name === suggestion.type;\n // });\n // }\n }\n\n showDropdown() {\n if (this.disabled) {\n return;\n }\n this.dropdownVisible = true;\n this.dropdown.classList.add('Vlt-dropdown--expanded');\n if (!this.keyListenerActive) {\n this.input.addEventListener('keydown', this.keydown);\n setTimeout(() => {\n document.addEventListener('click', this.clickout);\n }, 200);\n this.keyListenerActive = true;\n }\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n if (this.model && (this.searchResults || this.suggestions)) {\n for (let suggestionIndex = 0; suggestionIndex < (this.searchResults || this.suggestions).length; suggestionIndex++) {\n const item = (this.searchResults || this.suggestions)[suggestionIndex];\n if (this.model.id === item.id && this.model.type === item.type) {\n this.activeSuggestionIndex = suggestionIndex;\n break;\n }\n }\n }\n }\n this.ensureDropdownIsVisible();\n }\n\n dismissDropdown(event?) {\n this.dropdownVisible = false;\n if (event) {\n this.focus();\n }\n if (this.dropdown) {\n this.dropdown.classList.remove('Vlt-dropdown--expanded');\n }\n }\n\n clear() {\n this.prevModel = this.model;\n delete this.searchText;\n delete this.searchResults;\n delete this.model;\n delete this.activeSuggestionIndex;\n this.onModelChange(this.model);\n this.onSearchTextChanged(this.searchText);\n this.focus();\n }\n\n revert() {\n this.model = this.prevModel;\n delete this.prevModel;\n this.onModelChange(this.model);\n this.focus();\n }\n\n remove(ev, item) {\n ev.preventDefault();\n ev.stopPropagation();\n const optionIndex = this.model.indexOf(item);\n if (optionIndex !== -1) {\n this.model.splice(optionIndex, 1);\n if (!this.model.length) {\n delete this.model;\n delete this.value;\n }\n this.onModelChange(this.model);\n }\n }\n\n openResource(model?) {\n this.keyListenerActive = true; // suppress dropdown in this case\n setTimeout(() => {\n this.dismissDropdown();\n });\n const refDialogComponent = this.viewContainerRef.createComponent(MetaRefDialog);\n this.metaTracker.emit(this.buildTrackEvent(model ? 'EDIT' : 'NEW'));\n let theme = this.elementRef.nativeElement.dataset.theme;\n if (!theme || theme === 'inherit') {\n let parentComponent = this.elementRef.nativeElement.closest('vgip-meta-layout');\n if (parentComponent) {\n theme = parentComponent.dataset.theme;\n }\n if (!theme || theme === 'inherit') {\n parentComponent = this.elementRef.nativeElement.closest('vgip-meta-resource');\n if (parentComponent) {\n theme = parentComponent.dataset.theme;\n }\n }\n }\n this.referenceService.openDialog(\n refDialogComponent, this.metaResource, this.integrationCode,\n (this.metaReference instanceof Array) ? this.metaReference.filter(rt => rt.hidden !== true) : this.metaReference,\n model, null, this.searchResourceType.resourceType, theme, this.overlayContainer\n ).subscribe((result: any) => {\n if (result) {\n this.parent[this.meta.name] = result;\n this.onChange.emit(result);\n const existingSuggestion = (this.meta.suggestions || []).find((s) => (s.id === result.id && s.type === result.type));\n if (existingSuggestion) {\n existingSuggestion.label = result.label;\n } else {\n if (!this.meta.suggestions) {\n this.meta.suggestions = [];\n }\n this.meta.suggestions.unshift(result);\n }\n this.metaTracker.emit(this.buildTrackEvent(model ? 'UPDATE' : 'CREATE', result.type || result.resourceType));\n } else {\n this.metaTracker.emit(this.buildTrackEvent(model ? 'CANCEL_EDIT' : 'CANCEL_UPDATE'));\n }\n });\n }\n\n private ensureDropdownIsVisible() {\n setTimeout(() => {\n const holder = this.dropdown.closest('.Vlt-card__content, .Vlt-modal__content');\n if (holder) {\n const el = this.elementRef.nativeElement.querySelector('.Vlt-dropdown__panel');\n const elRect = el.getBoundingClientRect();\n const holderRect = holder.getBoundingClientRect();\n if (holderRect.top + holderRect.height < elRect.top + elRect.height) {\n el.scrollIntoView({ block: 'end' });\n }\n }\n }, 400);\n }\n\n private ensureDropdownOptionIsVisible() {\n if (!this.dropdownScrollContainer) {\n this.dropdownScrollContainer = this.dropdown.querySelector('.Vlt-dropdown__scroll');\n }\n if (this.dropdownScrollContainer && typeof (this.activeSuggestionIndex) === 'number') {\n const scrollTop = 44 * this.activeSuggestionIndex;\n const scrollBottom = 44 * (this.activeSuggestionIndex - 7);\n if (scrollTop < this.dropdownScrollContainer.scrollTop) {\n this.dropdownScrollContainer.scrollTop = scrollTop;\n } else if (scrollBottom > this.dropdownScrollContainer.scrollTop) {\n this.dropdownScrollContainer.scrollTop = scrollBottom;\n }\n }\n }\n\n private clickout = (event) => {\n const internalControl = this.elementRef.nativeElement.contains(event.target);\n if (internalControl && ['Vlt-dropdown__link', 'Vlt-dropdown__block'].indexOf(event.target.className) !== -1) {\n this.focus();\n } else if (!internalControl && event.target !== this.input && event.target.className !== 'Vlt-dropdown__title') {\n this.dismissDropdown();\n } else {\n if (!internalControl && internalControl.tagName !== 'INPUT') {\n this.focus();\n }\n }\n };\n\n private buildTrackEvent(action: string, value?: string) {\n const e: IMetaTrackerEvent = {\n integration: this.integrationCode,\n resource: this.model ? (this.model.type || this.model.resourceType) : this.searchResourceType.resourceType,\n field: this.meta.name,\n action\n };\n if (this.meta.$isContactable) {\n e.isContactable = true;\n }\n if (typeof (value) !== 'undefined') {\n e.value = value;\n }\n return e;\n }\n\n private buildPlaceholderLabel() {\n this.placeHolderLabel = this.meta.label;\n if (this.multiple && !this.isPolymorphic) {\n this.placeHolderLabel = '+Add ';\n } else {\n this.placeHolderLabel = (this.isSearchable && (this.multiple || !this.isPolymorphic)) ? 'Search ' : '';\n }\n this.placeHolderLabel += this.searchResourceType.resourceType ? this.searchResourceType.resourceType : this.searchResourceTypesScope;\n }\n\n private keydown = (event) => {\n switch (event.key) {\n case 'ArrowDown': {\n this.showDropdown();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = 0;\n } else {\n this.activeSuggestionIndex++;\n if (this.activeSuggestionIndex >= (this.searchResults || this.suggestions).length) {\n this.activeSuggestionIndex = 0;\n }\n }\n this.ensureDropdownOptionIsVisible();\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n case 'ArrowUp': {\n this.showDropdown();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = (this.searchResults || this.suggestions).length - 1;\n } else {\n this.activeSuggestionIndex--;\n if (this.activeSuggestionIndex < 0) {\n this.activeSuggestionIndex = (this.searchResults || this.suggestions).length - 1;\n }\n }\n this.ensureDropdownOptionIsVisible();\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n case 'Space':\n case 'Enter': {\n if (typeof (this.activeSuggestionIndex) !== 'undefined') {\n event.preventDefault();\n event.stopPropagation();\n this.onSuggestionSelect(event, (this.searchResults || this.suggestions)[this.activeSuggestionIndex]);\n delete this.activeSuggestionIndex;\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n event.stopPropagation();\n this.dismissDropdown();\n break;\n }\n case 'Backspace': {\n if (!this.multiple && this.model) { // HPBR-8229\n event.preventDefault();\n event.stopPropagation();\n this.removeSelection();\n }\n break;\n }\n }\n };\n\n private buildExternalLink() {\n if (this.model) {\n if (this.model.externalLink) {\n this.externalLink = this.model.externalLink;\n } else if (this.metaContext.profiles[this.integrationCode.toUpperCase()]) {\n delete this.externalLink;\n this.metaMsgService.sendMessage(\n this.integrationCode.toUpperCase(),\n {\n action: 'buildExternalLink',\n integrationCode: this.integrationCode,\n ref: this.model,\n profile: this.metaContext.profiles[this.integrationCode.toUpperCase()]\n },\n (response) => {\n if (!response.error) {\n this.externalLink = response.externalLink;\n } else {\n console.warn('No external link support for', this.integrationCode, this.model.resourceType || this.model.type);\n }\n }\n );\n }\n } else {\n delete this.externalLink;\n }\n }\n\n private searchAutoSuggestions(params?) {\n let searchUrl = `/suggestions/${this.meta.name}/search`;\n if (this.meta.auto && this.meta.auto.search) {\n if (this.meta.auto.search.url) {\n searchUrl = this.meta.auto.search.url.replace(/\\${\\s*([\\w.]+)\\s*}/g, (match, key) => {\n if (params.hasOwnProperty(key)) {\n const val = params[key];\n delete params[key];\n return val;\n }\n return '';\n });\n }\n for (const p of Object.keys(params)) {\n searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}${encodeURIComponent(p)}=${encodeURIComponent(params[p])}`;\n }\n this.searching = true;\n this.resourceService.getByPath(searchUrl).subscribe((result) => {\n delete this.searching;\n if (result) {\n let suggestions;\n suggestions = result;\n if (this.meta.auto.search.extract) {\n suggestions = result[this.meta.auto.search.extract];\n }\n if (suggestions instanceof Array !== true) {\n suggestions = [suggestions];\n }\n const asyncSuggestions = [];\n suggestions.forEach((s) => {\n if (s && s.id && s.type) { // TOOD check the type is acceptable\n asyncSuggestions.push({\n id: s.id,\n label: s.label || `${s.type}#${s.id}`,\n type: s.type\n });\n }\n });\n if (asyncSuggestions.length) {\n if (asyncSuggestions.length === 1) {\n this.parent[this.meta.name] = asyncSuggestions[0];\n } else {\n delete this.asyncSuggestions;\n }\n }\n this.asyncSuggestions = asyncSuggestions;\n }\n }, () => {\n delete this.searching;\n });\n }\n }\n\n}","<div class='vgip-meta-field-preview' *ngIf='preview && model && (!multiple || (multiple && model.length))'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div *ngIf='!multiple' class='vgip-meta-field-value __gu' [ngClass]=\"{ 'has-external-link': externalLink || model.externalLink }\">\n <svg class=\"Vlt-icon Vlt-icon--smaller\" style='margin-top: -3px;'>\n <use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\" />\n </svg>\n {{model.label || model.id}} <span class='Vlt-grey'>({{model.type}})</span>\n </div>\n <div *ngIf='multiple' class='vgip-meta-field-value __gu'>\n <span *ngFor='let m of (model || [])' class='Vlt-badge Vlt-badge--app'>\n {{m.label || m.id || m}} <span class='Vlt-grey-dark' *ngIf='isPolymorphic'>({{m.type}})</span>\n </span>\n </div>\n <a [href]='externalLink || model.externalLink' target='_blank' rel='noopener'\n *ngIf='externalLink && (model && !multiple)' class=\"Vlt-composite__append--icon preview\" aria-label='Open external'>\n <div class=\"Vlt-composite__icon\">\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\" />\n </svg>\n </div>\n </a>\n</div>\n<div *ngIf='!preview' class=\"meta-field-reference Vlt-form__element Vlt-form__element--big\"\n [ngClass]=\"{ 'Vlt-form__element--error': (searchError && keyListenerActive) || (f.invalid && ((f | metaModel)._parent.submitted || (ft | metaModel ).touched)), 'multiple': multiple, 'has-value': model, active: keyListenerActive }\">\n <div *ngIf='multiple' class='items-container' [ngClass]='{ creatable: isCreatable }'>\n <div *ngIf='model' class='badges-container keep-focus' (click)='focus()' style='width: 100%;'> <!-- eslint-disable-line -->\n <div *ngFor='let item of model' class=\"Vlt-badge Vlt-badge--transparent Vlt-badge--app Vlt-badge--large keep-focus\" [ngClass]=\"{ grid: (item.label || item.id || '').length > 56}\">\n <span class='Vlt-truncate'>{{item.label || item.id || item }} <span *ngIf='isPolymorphic' class='Vlt-grey-darker' style='font-weight: normal;'>({{item.type}})</span></span>\n <button class=\"Vlt-badge__dismiss keep-focus\" (click)='remove($event, item)' style='position: absolute; right: 12px; top: 8px;' aria-label='Remove'></button>\n </div>\n </div>\n </div>\n <div class=\"Vlt-composite\">\n <div class='dropdown-wrapper Vlt-dropdown' style='width: 100%; position: absolute; top: 48px;'>\n <div class=\"Vlt-dropdown__panel\">\n <div *ngIf='searchError'>\n <div class=\"Vlt-callout Vlt-callout--critical keep-focus\">\n <i></i>\n <div class=\"Vlt-callout__content\">{{searchError}}</div>\n </div>\n </div>\n <div *ngIf='!searchError && (suggestions.length || searchResults)' [ngClass]=\"{ suggestions: !searchResults}\"\n class=\"Vlt-dropdown__panel__content Vlt-dropdown__panel__content--scroll-area\" style='padding: 0;'>\n <div class=\"Vlt-dropdown__block\"></div>\n <div *ngIf='!searchResults' class=\"Vlt-dropdown__scroll\">\n <a href='#' [ngClass]=\"{ 'Vlt-dropdown__link--selected': activeSuggestionIndex === i, smart: suggestion.smart }\" (click)='onSuggestionSelect($event, suggestion)' *ngFor='let suggestion of suggestions; let i = index' class=\"Vlt-dropdown__link has-type\">\n <svg class='Vlt-icon Vlt-icon--small'><use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\"/></svg>\n <div class='__gu' [title]='suggestion.label'>{{ suggestion.label }}</div>\n <small class='Vlt-grey-dark' style='text-transform: capitalize;'>{{suggestion.type}}</small>\n </a>\n </div>\n <div *ngIf='searchResults' class=\"Vlt-dropdown__scroll\">\n <div *ngIf='!searchResults.length' class='Vlt-dropdown__block'> No records matching '<b style='pointer-events: none;'>{{searchText}}</b>' were found.</div>\n <a href='#' [ngClass]=\"{ 'Vlt-dropdown__link--selected': activeSuggestionIndex === i }\" (click)='onSuggestionSelect($event, suggestion)' *ngFor='let suggestion of searchResults; let i = index' class=\"Vlt-dropdown__link has-type\">\n <svg class='Vlt-icon Vlt-icon--small'><use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\"/></svg>\n <div class='__gu' [title]='suggestion.label'>{{ suggestion.label }}</div>\n <small class='Vlt-grey-dark' style='text-transform: capitalize;'>{{suggestion.type}}</small>\n </a>\n </div>\n <!-- <div *ngIf='searchResults' class=\"Vlt-dropdown__block\" style='text-align: right; padding-top: 0;'>\n <small>\n {{ searchResults ? searchResults.length+' results' : 'Suggestions' }} <span style='font-style: italic; font-weight: normal;' *ngIf='searchResults'>~{{ model ? 'last search' : searchText}}</span>\n </small>\n </div> -->\n <div class=\"Vlt-dropdown__block\"></div>\n </div>\n </div>\n </div>\n <div class=\"Vlt-composite__prepend\"\n *ngIf='isPolymorphic && showTypes && (multiple || !model || (dropdownVisible && ((suggestions || searchResults || []).length || searchResourceType.resourceType)))'>\n <div class=\"search-scope\" [ngClass]=\"{ 'has-value': searchResourceType.resourceType }\">\n <vgip-meta-field class='shown' [meta]='searchResourceTypeMeta' [parent]='searchResourceType'\n (onChange)='onSearchResourceTypeChanged($event)' (onLeave)='onBlur($event)'\n [integrationCode]='integrationCode' theme='inherit'></vgip-meta-field>\n <svg class='Vlt-icon Vlt-grey Vlt-icon--smaller visible-mobile mobile-icon'\n style='position: absolute; top: 15px; left: 14px; pointer-events: none;'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-menu\" />\n </svg>\n </div>\n </div>\n <div *ngIf='!(isPolymorphic && showTypes && (multiple || !model || dropdownVisible))'>\n <!-- required by css -->\n </div>\n <div class=\"Vlt-composite__wrapper Vlt-input\" style='overflow: hidden;'\n [ngClass]=\"{ 'has-append-button': hasAppendButton && !disabled, 'vgip-disable': disabled }\">\n <label class='wrapper'>\n <div class=\"Vlt-composite__prepend Vlt-composite__prepend--icon\" style='top: 0; padding-top: 15px;'>\n <div class=\"Vlt-composite__icon\">\n <svg *ngIf='isSearchable && (!model || multiple)' class='Vlt-grey'>\n <use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-{{ multiple ? 'stack' : 'search'}}\" />\n </svg>\n <svg *ngIf='!isSearchable || (model && !multiple)'\n [ngStyle]=\"{fill: integrationIcon === 'Brand-icon-vonage' ? 'var(--vgip-meta-input-color)' : ''}\">\n <use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\" />\n </svg>\n </div>\n <div *ngIf='suggestions.length' class=\"Vlt-badge Vlt-badge--small Vlt-badge--purple\"\n style='padding: 0px 4px; position: absolute; top: 26px; left: 4px; pointer-events: none; min-width: 14px;'>\n {{suggestions.length}}</div>\n </div>\n <input class='model' type='hidden' [required]='validations.required' [(ngModel)]='model' #f='ngModel' [name]='name' />\n <input class='main' [readonly]='!isSearchable || (model && !multiple)' [ngModel]='searchText' #ft='ngModel' (ngModelChange)='onSearchTextChanged($event)' [ngModelOptions]=\"{standalone: true}\" type=\"text\" placeholder=\"{{ placeHolderLabel || ' ' }}\" [ngClass]='{ ext: externalLink }' (click)='onActivated($event)' (focus)='onActivated($event)' (blur)='onBlur($event)' [disabled]='disabled' [title]=\"model ? model.label : ''\"/>\n <label class='Vlt-truncate hidden-mobile' style='padding-left: 25px; padding-right: 42px;'>{{ (multiple && isPolymorphic) ? '+Add ' : ((model || !isPolymorphic) ? meta.label : ( meta.searchLabel || 'Search')) }}<span *ngIf='validations.required' class='Vlt-red'>*</span>&nbsp;<span style='color: var(--vgip-meta-input-color); text-transform: capitalize;' *ngIf='model'>({{model.type || model.resourceType || model.length}})</span></label> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control-->\n <label class='Vlt-truncate hidden-desktop' style='padding-left: 25px; padding-right: 42px;'>{{meta.label || meta.name}}<span *ngIf='validations.required' class='Vlt-red'>*</span>&nbsp;<span style='color: var(--vgip-meta-input-color); text-transform: capitalize;' *ngIf='model'>({{model.type || model.resourceType || model.length}})</span></label> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control-->\n </label>\n <div *ngIf='searching' class='search-progress'>\n <div class=\"container\">\n <div class=\"bar Vlt-bg-purple\"></div>\n </div>\n </div>\n <div class='Vlt-composite__append right-actions'>\n <!-- <div *ngIf='prevModel && !model' class=\"Vlt-composite__append--icon\" (click)='revert()'>\n <div class=\"Vlt-composite__icon\">\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-reply\"/></svg>\n </div>\n </div> -->\n <a href='#' *ngIf='model && !multiple' class=\"Vlt-composite__append--icon\" (click)='removeSelection($event)'>\n <div class=\"Vlt-composite__icon\">\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\" />\n </svg>\n </div>\n </a>\n <a [href]='externalLink || model.externalLink' target='_blank' rel='noopener' *ngIf='externalLink && (model && !multiple)' class=\"Vlt-composite__append--icon\" aria-label='Open external'>\n <div class=\"Vlt-composite__icon\">\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\" />\n </svg>\n </div>\n </a>\n </div>\n </div>\n <!-- <span *ngIf='hasCreatables'>\n <button type='button' *ngIf='!model || multiple' (click)='openResource()' class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--icon Vlt-btn--large\" style='margin-left: 12px;'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>\n </button>\n <button type='button' *ngIf='model && !multiple' (click)='openResource(model)' class=\"Vlt-btn Vlt-btn--primary Vlt-btn--icon Vlt-btn--large\" style='margin-left: 12px;'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-edit\"/></svg>\n </button>\n </span> -->\n <div *ngIf='hasAppendButton && !disabled' class=\"Vlt-composite__append\">\n <button (focus)='onActivated($event)' (blur)='onBlur($event)' type='button' *ngIf='!model || multiple'\n (click)='openResource()' class=\"Vlt-btn Vlt-btn--white Vlt-btn--icon\" aria-label='Add new' [disabled]='delegate'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\" />\n </svg>\n </button>\n <button (focus)='onActivated($event)' (blur)='onBlur($event)' type='button' *ngIf='model && !multiple'\n (click)='openResource(model)' class=\"Vlt-btn Vlt-btn--white Vlt-btn--icon\" aria-label='Edit' [disabled]='delegate'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-edit\" />\n </svg>\n </button>\n </div>\n </div>\n <small *ngIf='f.invalid && ((f | metaModel)._parent.submitted || ((ft | metaModel).touched && keyListenerActive))'\n class=\"Vlt-form__element__error\">\n <span *ngIf=\"f.errors.required\">Required</span>\n <span *ngIf=\"f.errors.pattern\">Should match '{{validations.pattern}}' pattern</span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}}&nbsp;</span>\n </small>\n <small *ngIf='meta.helpText || meta.hint' class=\"Vlt-form__element__hint\">{{meta.helpText || meta.hint}}</small>\n</div>\n","import { Component, OnInit, DoCheck } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n standalone: false\n})\nexport class FieldComposite extends FieldAbstract implements OnInit, DoCheck {\n // @Input() meta: any;\n // @Input() parent: any;\n value: any;\n private invisible;\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 ngOnInit() {\n // super.ngOnInit()\n let nestedFieldsRegex: RegExp;\n if (this.meta.name === `composite_${this.meta.label}`) {\n delete this.meta.name; // revisit VGIS-5059, there are composite containes without name on purpose\n }\n if (this.meta.name) {\n this.scope += `${this.meta.name}_`;\n this.value = this.parent[this.meta.name] || {};\n nestedFieldsRegex = new RegExp(`^${this.meta.name}\\\\.(.*)`);\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (value) {\n for (const v of Object.keys(value)) {\n this.value[v] = value[v];\n }\n }\n },\n get: () => {\n if (JSON.stringify(this.value) !== '{}') {\n return this.value;\n }\n },\n enumerable: this.sendToServer,\n configurable: true\n });\n for (const f of this.meta.fields) {\n if (this.isRow) {\n if (f.type === 'text') {\n f.type = 'string';\n }\n }\n const nestedFieldMatch = (f.name || '').match(nestedFieldsRegex);\n if (nestedFieldMatch) {\n f.name = nestedFieldMatch[1]; // for VGIS V2 backward compatibility normalize name with dotted syntax\n }\n }\n } else {\n this.value = this.parent;\n }\n }\n\n ngDoCheck(): void {\n if (typeof (this.invisible) !== 'undefined') {\n if (this.invisible !== this.meta.$invisible) {\n if (this.meta.$invisible === false) {\n if (typeof (this.meta.name) !== 'undefined') {\n this.parent[this.meta.name] = this.value;\n }\n }\n this.invisible = this.meta.$invisible;\n }\n } else {\n this.invisible = this.meta.$invisible;\n }\n }\n\n onValueChange(): void {\n this.onChange.emit(this.value);\n }\n\n}\n","<div [ngClass]=\"{ 'Vlt-grid Vlt-grid--narrow': isRow }\">\n <ng-container *ngFor='let field of fields'>\n <div *ngIf='!field.$hidden && !field.$invisible' style='margin: 0;' [ngClass]=\"{ 'Vlt-col': isRow, 'Vlt-col--1of3': isRow && fields.length > 3 }\">\n <vgip-meta-field *ngIf='!meta.$invisible' [ngClass]=\"{ shown: !field.$invisible}\" [index]='index' [scope]='scope' [meta]='field'\n [parent]='value' [integrationCode]='integrationCode' [resourceType]='resourceType' [preview]='preview' (onChange)='onValueChange()'\n theme='inherit'></vgip-meta-field>\n </div>\n </ng-container>\n</div>\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, 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 standalone: false\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.onModelChange(this.meta.default);\n }, 0);\n }\n }\n\n onOptionChange() {\n this.onModelChange(this.model);\n }\n}\n","<div class='vgip-meta-field-preview' *ngIf='preview && model'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>\n {{ model ? '✔' : '✘'}}\n </div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element\" [ngClass]=\"{ 'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched) }\">\n\t<input class='model' type='hidden' [required]='validations.required' [(ngModel)]='model' #f='ngModel' [name]='name' />\n\t<div class=\"Vlt-switch\" *ngIf=\"meta.subtype === 'switch'\">\n\t\t<label style='vertical-align: middle;'>\n\t\t\t<input class='model' type=\"checkbox\" [(ngModel)]='model' (change)='onOptionChange()' [name]='name'/>\n\t\t\t<span class=\"Vlt-switch__slider\"></span>\n\t\t\t<span style='margin-left: 60px; line-height: 30px; white-space: nowrap;'>{{meta.label || meta.name}}</span>\n\t\t</label>\n\t</div>\n\t<div class=\"Vlt-checkbox\" *ngIf=\"meta.subtype !== 'switch'\">\n\t\t<label style='cursor: pointer;'>\n\t\t\t<span class=\"Vlt-checkbox__button\">\n\t\t\t\t<input class='model' type=\"checkbox\" [(ngModel)]='model' (change)='onOptionChange()' [name]='name'/>\n\t\t\t\t<span class=\"Vlt-checkbox__icon\"></span>\n\t\t\t</span>\n\t\t\t{{meta.label || meta.name}}\n\t\t</label>\n\t</div>\n\t<small *ngIf='f.invalid && ((f | metaModel)._parent.submitted || ((f | metaModel ).touched))' class=\"Vlt-form__element__error\">\n <span *ngIf=\"f.errors.required\">Required</span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}}&nbsp;</span>\n </small>\n\t<small *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n</div>\n","/*\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, 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 standalone: false\n})\n\nexport class FieldRadio extends FieldAbstract implements OnInit {\n // @Input() meta: any;\n value: any;\n\n get options() {\n return this.meta.options || this.meta.picklist;\n }\n\n ngOnInit() {\n this.validationAttributes = ['required'];\n const origValue = this.parent[this.meta.name];\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (value) {\n for (const o of this.options) {\n if ((value.id || value) === (o.id || o.value || o.name || o)) {\n this.model = o;\n this.value = this.modelToValue(o, this.meta.valueType);\n break;\n }\n }\n } else {\n delete this.model;\n delete this.value;\n }\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n\n if (origValue) {\n this.parent[this.meta.name] = origValue;\n }\n\n if (this.default && !this.model) {\n setTimeout(() => {\n this.parent[this.meta.name] = this.meta.valueType === 'object' ? this.default : (this.default.id || this.default);\n setTimeout(() => {\n this.onModelChange(this.model);\n }, 0);\n }, 0);\n }\n }\n\n onOptionChange(model) {\n this.model = model;\n this.onModelChange(this.model);\n }\n\n onActivated(ev) {\n if (!this.keyListenerActive) {\n ev.srcElement.addEventListener('keydown', this.keydown);\n }\n }\n\n onBlur(ev) {\n if (this.keyListenerActive) {\n ev.srcElement.removeEventListener('keydown', this.keydown);\n }\n }\n\n private keydown = (event) => {\n switch (event.key) {\n case 'Backspace': {\n event.preventDefault();\n event.stopPropagation();\n this.clear();\n break;\n }\n }\n };\n}\n","<div class='vgip-meta-field-preview' *ngIf='preview && model'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>\n {{ model.label || model }}\n </div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element\" [ngClass]=\"{ 'Vlt-form__element--error': f && f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched) }\">\n\t<label class=\"Vlt-label\">{{meta.label || meta.name}}<span *ngIf='validations.required' class='Vlt-red'>*</span></label> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control -->\n\t<input class='model' type='hidden' [required]='validations.required' [(ngModel)]='model' #f='ngModel' [name]='name' />\n\t<fieldset *ngFor='let option of options' class=\"Vlt-radio Vlt-radio--inline\">\n\t\t<label style='cursor: pointer;'>\n\t\t\t<span class=\"Vlt-radio__button\">\n <input class='main' (change)='onOptionChange(option)' type=\"radio\" [checked]='option === model' [value]='option' [name]='name' (focus)='onActivated($event)' (blur)='onBlur($event)'/>\n <span class=\"Vlt-radio__icon\"></span>\n </span>\n\t\t\t<span style='white-space: nowrap;'>{{option.label || option}}</span>\n\t\t</label>\n\t</fieldset>\n\t<small *ngIf='f && f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched)' class=\"Vlt-form__element__error\">\n\t\t<span *ngIf=\"f.errors.required\">Required.&nbsp;</span>\n\t\t<span *ngIf=\"f.errors.custom\">{{f.errors.custom}}&nbsp;</span>\n\t</small>\n\t<small *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\n standalone: false\n})\nexport class FieldList extends FieldAbstract implements OnInit {\n items: Array<any> = [];\n value: any;\n\n get list() {\n return this.meta.list || this.meta.reference;\n }\n\n get cloneList() {\n return JSON.parse(JSON.stringify(this.list));\n }\n\n ngOnInit() {\n this.scope += (typeof(this.index) === 'undefined') ? `${this.meta.name}_` : `${this.meta.name}[${this.index}]_`;\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 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 this.onChange.emit(this.model);\n }\n\n remove(itemIndex) {\n this.model.splice(itemIndex, 1);\n this.value = this.model;\n this.onChange.emit(this.model);\n }\n\n onChildChange() {\n this.onChange.emit(this.model);\n }\n}\n","<div *ngIf='true' class=\"Vlt-form__element\" [ngClass]=\"{ 'Vlt-form__element--error': (f | metaModel)._parent.submitted && f.invalid }\">\n <label class=\"Vlt-label\">{{meta.label || meta.name}} ({{(model || []).length}})<span *ngIf='validations.required' class='Vlt-red'>*</span></label> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control -->\n <small style='margin-bottom: 4px;' *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n <input class='model' type='hidden' [required]='validations.required' [(ngModel)]='model' #f='ngModel' [name]='name' />\n <ng-container *ngIf='model'>\n <div *ngFor='let item of model; let i = index;' style='display: flex; border-bottom: 1px solid var(--vgip-meta-separator-color);'>\n <vgip-meta-field style='flex: 1;' [index]='i' [scope]='scope' [meta]='cloneList' [parent]='item' [integrationCode]='integrationCode' [resourceType]='meta.resourceType || resourceType' theme='inherit' [preview]='preview' (onChange)='onChildChange()'></vgip-meta-field>\n <vgip-meta-field *ngIf='meta.selectable' [meta]=\"{ name: meta.selectable.name, label: ' ', type: 'radio', options: [ { id: meta.selectable.value, label: meta.selectable.label } ] }\" [parent]='item' [integrationCode]='integrationCode' theme='inherit' style='margin-left: 12px; margin-top: 12px; margin-right: -12px;' (onChange)='onChildChange()'></vgip-meta-field>\n <div *ngIf='!preview' style='padding-left: 12px; margin-top: 3px;'>\n <button type='button' (click)='remove(i)' class=\"Vlt-btn Vlt-btn--link item-remove-button\" [disabled]='model.length === (validations.min || 0)' aria-label='Remove'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-bin\"/></svg>\n </button>\n </div>\n </div>\n </ng-container>\n <button *ngIf='!preview && (!validations.max || !model || model.length < validations.max)' style='width: 100%;' type='button' (click)='add()' class=\"Vlt-btn Vlt-btn--small Vlt-btn--tertiary Vlt-btn--app Vlt-btn--no-focus item-add-button\" [disabled]='validations.max && model && model.length === validations.max'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>{{list.label}}\n </button>\n <small *ngIf='(f | metaModel)._parent.submitted && f.invalid' class=\"Vlt-form__element__error\">\n <span *ngIf=\"f.errors.required\">Required</span>\n <span *ngIf=\"f.errors.maxlength\">Length can not exceed {{validations.maxlength}} characters</span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}}&nbsp;</span>\n </small>\n <small *ngIf='meta.helpText' class=\"Vlt-form__element__hint\">{{meta.helpText}}</small>\n</div>\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, OnInit } from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\n// import { QUILL_CONFIG_TOKEN, QuillConfig } 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\n// export 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 standalone: false\n})\nexport class FieldRichtext extends FieldAbstract implements OnInit {\n // @Input() meta: any;\n active: boolean;\n quillConfigModules = {\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 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","<div class='vgip-meta-field-preview' *ngIf='preview && parent[meta.name]'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>{{parent[meta.name]}}</div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element\" [ngClass]=\"{ 'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (fq | metaModel).touched) }\">\n <label class=\"Vlt-label\">{{meta.label || meta.name}}<span *ngIf='validations.required' class='Vlt-red'>*</span></label> <!-- eslint-disable-line -->\n <div class=\"Vlt-textarea\" [ngClass]='{ active: active }'>\n <input type='hidden' class='main model' [required]='validations.required' [minlength]='validations.minlength' [maxlength]='validations.maxlength' [(ngModel)]='parent[meta.name]' #f='ngModel' [name]='name'/>\n <quill-editor (onFocus)='active = true' (onBlur)='active = false' class='main model' [(ngModel)]='parent[meta.name]' #fq='ngModel' (ngModelChange)=\"onModelChangeLocal($event)\" [ngModelOptions]='{ standalone: true }' placeholder=' ' [modules]=\"quillConfigModules\"></quill-editor>\n </div>\n <small *ngIf='f.invalid && ((f | metaModel)._parent.submitted || (fq | metaModel).touched)' class=\"Vlt-form__element__error\">\n <span *ngIf=\"f.errors.required\">Required</span>\n <span *ngIf=\"f.errors.maxlength\">Length can not exceed {{validations.maxlength}} characters</span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}}&nbsp;</span>\n </small>\n <small *ngIf='meta.helpText' class=\"Vlt-form__element__hint\">{{meta.helpText}}</small>\n</div>\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 } 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 standalone: false\n})\nexport class FieldDatetime extends FieldAbstract implements OnInit {\n input: any;\n dropdown: any;\n activeSuggestionIndex: number;\n value: any;\n type: string;\n placeholder = 'dd/mm/yyyy';\n\n get suggestions() {\n return this.meta.suggestions || [];\n }\n\n ngOnInit() {\n this.validationAttributes = ['required', 'min', 'max', 'step'];\n this.type = this.meta.type;\n if (this.meta.type === 'datetime') {\n this.type = 'datetime-local';\n this.placeholder += ' --:-- --';\n } else if (this.meta.type === 'time') {\n this.placeholder = '--:-- --';\n }\n const origValue = this.parent[this.meta.name];\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (value) {\n if (['datetime', 'date', 'datetime-local'].indexOf(this.meta.type || this.meta.subtype) !== -1 && value) {\n try {\n let date: Date;\n if ((typeof (value) === 'number')) {\n date = new Date(parseInt(value as any, 10));\n if ('date' === (this.meta.type || this.meta.subtype)) {\n date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\n }\n } else {\n if ('date' === (this.meta.type || this.meta.subtype)) {\n date = new Date(Date.parse(value));\n } else {\n date = new Date(Date.parse(`${value}Z`) + (new Date().getTimezoneOffset() * 60000));\n }\n }\n 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 if (this.meta.valueType === 'isostring') {\n this.value = date.toISOString();\n } else if (this.meta.valueType === 'string') {\n if ((this.meta.type || this.meta.subtype) === 'date') {\n this.value = date.toISOString().split('T')[0];\n } else {\n this.value = date.toISOString();\n }\n } else {\n if ((this.meta.type || this.meta.subtype) === 'date') {\n date.setFullYear(date.getUTCFullYear());\n date.setMonth(date.getUTCMonth());\n date.setDate(date.getUTCDate());\n date.setMinutes(0);\n date.setHours(0);\n date.setSeconds(0);\n date.setMilliseconds(0);\n this.value = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).getTime();\n } else {\n this.value = date.getTime();\n }\n }\n } catch (e) {\n console.error('Date parse error', e.message, `\"${value}\"`, `(${typeof (value)})`);\n }\n } else if ('time' === (this.meta.type || this.meta.subtype)) {\n try {\n let date: Date;\n if (typeof (value) === 'number') {\n date = new Date(parseInt(value as any, 10));\n if (value < 86400000) {\n date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\n }\n } else {\n date = new Date(\n Date.parse(new Date().toISOString().replace(/T.*Z/, `T${value}Z`)) + (new Date().getTimezoneOffset() * 60000)\n );\n }\n this.model = date.toTimeString().split(' ')[0];\n if (this.meta.valueType === 'isostring') {\n this.value = date.toISOString();\n } else {\n date.setFullYear(1970);\n date.setMonth(0);\n date.setDate(1);\n date.setMilliseconds(0);\n if (this.meta.valueType === 'string') {\n this.value = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toISOString().split('T')[1].substring(0,8);\n } else {\n this.value = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).getTime();\n }\n }\n } catch (e) {\n console.error('Date parse error', e.message, `\"${value}\"`, `(${typeof (value)})`);\n }\n }\n } else {\n delete this.model;\n delete this.value;\n }\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n if (typeof(origValue) !== 'undefined') {\n this.parent[this.meta.name] = origValue;\n }\n const d = this.meta.default || this.meta.defaultValue;\n if (d && typeof(this.model) === 'undefined') {\n const defaultValue = ((typeof (d) === 'string') || (typeof (d) === 'number')) ? 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, .Vlt-modal__content');\n if (holder) {\n const el = this.elementRef.nativeElement.querySelector('.Vlt-dropdown__panel');\n const elRect = el.getBoundingClientRect();\n const holderRect = holder.getBoundingClientRect();\n if (holderRect.top + holderRect.height < elRect.top + elRect.height) {\n el.scrollIntoView({ block: 'end' });\n }\n }\n }, 400);\n }\n\n private showDropdown() {\n if (this.meta.suggestions?.length) {\n this.dropdown.classList.add('Vlt-dropdown--expanded');\n this.ensureDropdownIsVisible();\n }\n if (!this.keyListenerActive) {\n this.input.addEventListener('keydown', this.keydown);\n setTimeout(() => {\n document.addEventListener('click', this.clickout);\n }, 200);\n this.keyListenerActive = true;\n if (this.parent[this.meta.name]) {\n for (let suggestionIndex = 0; suggestionIndex < (this.meta.suggestions || []).length; suggestionIndex++) {\n if (this.meta.suggestions[suggestionIndex] === this.parent[this.meta.name]) {\n this.activeSuggestionIndex = suggestionIndex;\n }\n }\n }\n }\n }\n\n private clickout = (event) => {\n if (event.target.className === 'Vlt-dropdown__link' && this.elementRef.nativeElement.contains(event.target)) {\n this.focus();\n // this.dismissDropdown();\n // this.parent[this.meta.name] = event.target.textContent;\n\n } else if (event.target !== this.input && event.target.className !== 'Vlt-dropdown__title') {\n this.dismissDropdown();\n } else {\n this.focus();\n }\n };\n\n private keydown = (event) => {\n switch (event.key) {\n case 'ArrowDown': {\n if (['datetime', 'time', 'date', 'datetime-local'].indexOf(this.meta.type || this.meta.subtype) !== -1) {\n break;\n }\n this.showDropdown();\n event.preventDefault();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = 0;\n } else {\n this.activeSuggestionIndex++;\n if (this.activeSuggestionIndex >= this.suggestions.length) {\n this.activeSuggestionIndex = 0;\n }\n }\n break;\n }\n case 'ArrowUp': {\n if (['datetime', 'time', 'date', 'datetime-local'].indexOf(this.meta.type || this.meta.subtype) !== -1) {\n break;\n }\n this.showDropdown();\n event.preventDefault();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = this.suggestions.length - 1;\n } else {\n this.activeSuggestionIndex--;\n if (this.activeSuggestionIndex < 0) {\n this.activeSuggestionIndex = this.suggestions.length - 1;\n }\n }\n break;\n }\n case 'Space':\n case 'Enter': {\n if (typeof (this.activeSuggestionIndex) !== 'undefined') {\n event.preventDefault();\n event.stopPropagation();\n this.onSuggestionSelect(event, this.suggestions[this.activeSuggestionIndex]);\n delete this.activeSuggestionIndex;\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n event.stopPropagation();\n this.dismissDropdown();\n break;\n }\n }\n };\n\n\n private autoSetValue(againstTimestamp, v, cfg) {\n const compareValue = relativeTimeBuilder(this.meta.type, cfg.offset, this.validations.step, againstTimestamp);\n if (this.model) {\n const currentValue = new Date(this.model).getTime();\n let isInvalid: boolean;\n if (v === 'gt') {\n isInvalid = compareValue > currentValue;\n } else if (v === 'lt') {\n isInvalid = currentValue > compareValue;\n }\n if (isInvalid) {\n this.parent[this.meta.name] = compareValue;\n }\n } else {\n this.parent[this.meta.name] = compareValue;\n }\n }\n\n private setupLogicalValidation(v: string) {\n const cfg = this.meta.auto[v];\n if (typeof(cfg.against) === 'string') {\n let againstValue = this.parent[cfg.against];\n try {\n let againstTimestamp = Date.parse(`${againstValue}Z`) + (new Date().getTimezoneOffset() * 60000);\n if (againstValue) {\n this.autoSetValue(againstTimestamp, v, cfg);\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(cfg.against)) {\n againstValue = value[cfg.against];\n if (againstValue) {\n againstTimestamp = Date.parse(`${againstValue}Z`) + (new Date().getTimezoneOffset() * 60000);\n this.autoSetValue(againstTimestamp, v, cfg);\n }\n }\n });\n } catch (e) {\n if ((window as any).scDebug) console.error(e);\n }\n }\n }\n}\n","<div class='vgip-meta-field-preview' *ngIf='preview && model'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>{{model}}</div>\n</div>\n<div *ngIf='!preview' class=\"Vlt-form__element Vlt-form__element--big\" [ngClass]=\"{'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched), 'has-value': f.value, active: keyListenerActive }\">\n <div class=\"Vlt-input\" [ngClass]=\"{'vgip-disable': disabled}\">\n <label class='wrapper'>\n <input class='main model' [pattern]=\"validations.pattern ? validations.pattern.value || validations.pattern : null\" [required]='validations.required' [minlength]='validations.minlength' [maxlength]='validations.maxlength' [min]='validations.min' [max]='validations.max' [step]='validations.step' [disabled]='disabled' [readonly]='readonly' [(ngModel)]='model' (ngModelChange)=\"onModelChange($event)\" #f='ngModel' [name]='name' [type]=\"type\" [placeholder]=\"placeholder\" (click)='onActivated($event)' (focus)='onActivated($event)' (blur)='onBlur($event)'/>\n <label class='Vlt-truncate'>{{meta.label || meta.name}}<span *ngIf='validations.required' class='Vlt-red'>*</span></label> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control -->\n </label>\n <div class='Vlt-composite__append right-actions'>\n <a href='#' *ngIf='model' class=\"Vlt-composite__append--icon\" (click)='clear($event)' tabindex='0'>\n <div class=\"Vlt-composite__icon\">\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/></svg>\n </div>\n </a>\n </div>\n </div>\n <small *ngIf='f.invalid && ((f | metaModel)._parent.submitted || ((f | metaModel ).touched && keyListenerActive))' class=\"Vlt-form__element__error\">\n <span *ngIf=\"f.errors.required\">Required.&nbsp;</span>\n <span *ngIf=\"f.errors.min\">Must be later than {{validations.min}}.&nbsp;</span>\n <span *ngIf=\"f.errors.max\">Must be no later than {{validations}}.&nbsp;</span>\n <span *ngIf=\"f.errors.custom\">{{f.errors.custom}}&nbsp;</span>\n </small>\n <small *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n</div>\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 } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\n\n@Component({\n templateUrl: './view.html',\n standalone: false\n})\nexport class FieldHidden extends FieldAbstract {}\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 standalone: false\n})\nexport class MetaIconsPipe implements PipeTransform {\n\n constructor(protected sanitizer: DomSanitizer) { }\n\n transform(value: any): any {\n if (typeof(value) === 'string') {\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 value; //this.sanitizer.bypassSecurityTrustHtml(value);\n }\n }\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 standalone: false\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: 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, 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, 3);\n req.onupgradeneeded = (ev: any) => {\n self.db = ev.target.result;\n if (!self.db.objectStoreNames.contains('Draft')) {\n this.createDraftStore();\n }\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, callback: (err, result?) => void) {\n const self = this;\n this._getDb((err) => { // eslint-disable-line no-underscore-dangle\n if (typeof(callback) === 'function') {\n if (err) {\n return callback(err);\n } else if (!self.db.objectStoreNames.contains(collectionName)) {\n return callback(new Error(`IDBDatabase store ${collectionName} does not exist!`));\n } else {\n callback(null, self.db);\n }\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 = () => {\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 private createDraftStore() {\n const objectStore = this.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}\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 COLLECTION = '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(COLLECTION, (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 cb([]);\n }\n\n save(integrationCode, resourceType, draft, cb?: (err, draft?: IDraft) => void) {\n const now = new Date().getTime();\n this.store.save(COLLECTION, {\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(COLLECTION, {\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(COLLECTION, params, null, cb);\n }\n\n findById(draftId, cb?: (err, drafts?: IDraft) => void) {\n this.store.findById(COLLECTION, draftId, cb);\n }\n\n destroyDraft(draft, cb?: (err, drafts?: IDraft) => void) {\n if (draft?.id) {\n this.store.destroyById(COLLECTION, 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 { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\n\nimport { QuillModule } from 'ngx-quill';\n\nimport { MetaRefDialog } from './refDialog';\n\nimport { MetaLayout } from './layout';\n\nimport { MetaResource } from './resource';\n\nimport { MetaResourceCard } from './resourceCard';\n\nimport { FieldUnknown } from './fieldUnknown';\nimport { FieldInput } from './fieldInput';\nimport { FieldText } from './fieldText';\n\nimport { FieldSelect } from './fieldSelect';\n\nimport { FieldReference } from './fieldReference';\n\nimport { FieldComposite } from './fieldComposite';\n\nimport { FieldBoolean } from './fieldBoolean';\nimport { FieldRadio } from './fieldRadio';\n\nimport { FieldList } from './fieldList';\n\nimport { FieldRichtext } from './fieldRichtext';\nimport { FieldDatetime } from './fieldDatetime';\n\nimport { FieldHidden } from './fieldHidden';\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';\nimport { MetaField, MetaFieldContentDirective } from './metaField';\n\nexport * from './common/utils/colorThemes';\nexport * from './common/metaNormalizer';\n\n@NgModule({ 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 FieldHidden,\n MetaAutofocusDirective\n ],\n exports: [\n MetaIconsPipe,\n MetaModelPipe,\n MetaStripHtmlPipe,\n MetaField,\n MetaLayout,\n MetaResource,\n MetaResourceCard,\n MetaAutofocusDirective\n ], imports: [CommonModule,\n FormsModule,\n ReactiveFormsModule,\n QuillModule.forRoot()\n // QuillModule.forRoot({\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 ], providers: [provideHttpClient(withInterceptorsFromDi())] })\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, FieldHidden,\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":["i1.MetaHttpClient","i1.MetaContextService","i1","i1.MetaResourceService","i2.MetaReferenceService","i3.MetaMsgService","i4.MetaContextService","i5","i6.MetaField","i2.MetaContextService","i4","i6.MetaLayout","i7.MetaAutofocusDirective","i2.MetaResource","i3","i2","i4.MetaModelPipe","i1.MetaReferenceService","i2.MetaResourceService","i5.MetaModelPipe","i5.MetaTrackerService","i6","i7","i8.MetaField","i9.MetaModelPipe","i2.MetaField","i3.MetaModelPipe","i3.MetaField"],"mappings":"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"}
1
+ {"version":3,"file":"vgip-meta-ui.mjs","sources":["../../../projects/meta-ui/src/lib/common/utils/colorThemes.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/common/utils/templateBuilder.ts","../../../projects/meta-ui/src/lib/services/metaResource/metaHttpClient.ts","../../../projects/meta-ui/src/lib/services/metaResource/index.ts","../../../projects/meta-ui/src/lib/services/metaContext/index.ts","../../../projects/meta-ui/src/lib/services/metaMsg/index.ts","../../../projects/meta-ui/src/lib/common/utils/resourceCardLabel.ts","../../../projects/meta-ui/src/lib/services/metaReference/index.ts","../../../projects/meta-ui/src/lib/common/utils/smartProp.ts","../../../projects/meta-ui/src/lib/fieldAbstract.ts","../../../projects/meta-ui/src/lib/metaField/index.ts","../../../projects/meta-ui/src/lib/layout/index.ts","../../../projects/meta-ui/src/lib/layout/view.html","../../../projects/meta-ui/src/lib/common/metaAutofocus.directive.ts","../../../projects/meta-ui/src/lib/resource/index.ts","../../../projects/meta-ui/src/lib/resource/view.html","../../../projects/meta-ui/src/lib/refDialog/index.ts","../../../projects/meta-ui/src/lib/refDialog/view.html","../../../projects/meta-ui/src/lib/resourceCard/index.ts","../../../projects/meta-ui/src/lib/resourceCard/view.html","../../../projects/meta-ui/src/lib/fieldUnknown/index.ts","../../../projects/meta-ui/src/lib/fieldUnknown/view.html","../../../projects/meta-ui/src/lib/common/utils/relativeTimeBuilder.ts","../../../projects/meta-ui/src/lib/common/metaModel.pipe.ts","../../../projects/meta-ui/src/lib/fieldInput/index.ts","../../../projects/meta-ui/src/lib/fieldInput/view.html","../../../projects/meta-ui/src/lib/fieldText/index.ts","../../../projects/meta-ui/src/lib/fieldText/view.html","../../../projects/meta-ui/src/lib/fieldSelect/index.ts","../../../projects/meta-ui/src/lib/fieldSelect/view.html","../../../projects/meta-ui/src/lib/services/metaTracker/index.ts","../../../projects/meta-ui/src/lib/fieldReference/index.ts","../../../projects/meta-ui/src/lib/fieldReference/view.html","../../../projects/meta-ui/src/lib/fieldComposite/index.ts","../../../projects/meta-ui/src/lib/fieldComposite/view.html","../../../projects/meta-ui/src/lib/fieldBoolean/index.ts","../../../projects/meta-ui/src/lib/fieldBoolean/view.html","../../../projects/meta-ui/src/lib/fieldRadio/index.ts","../../../projects/meta-ui/src/lib/fieldRadio/view.html","../../../projects/meta-ui/src/lib/fieldList/index.ts","../../../projects/meta-ui/src/lib/fieldList/view.html","../../../projects/meta-ui/src/lib/fieldRichtext/index.ts","../../../projects/meta-ui/src/lib/fieldRichtext/view.html","../../../projects/meta-ui/src/lib/fieldDatetime/index.ts","../../../projects/meta-ui/src/lib/fieldDatetime/view.html","../../../projects/meta-ui/src/lib/fieldHidden/index.ts","../../../projects/meta-ui/src/lib/fieldHidden/view.html","../../../projects/meta-ui/src/lib/common/metaIcons.pipe.ts","../../../projects/meta-ui/src/lib/common/metaStripHtml.pipe.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":["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","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 if (field.type === 'float' || field.subtype === 'float') {\n f.validations = {\n step: field.step || '0.01'\n }\n }\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.acceptNew) {\n f.acceptNew = field.acceptNew;\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 if (field.rows) {\n f.rows = field.rows;\n }\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 if (f.reference instanceof Array) {\n for (const r of f.reference) { // not using forEach on purpose as it is based on callback functions execution\n if (r.defaultValue) {\n r.default = r.defaultValue; // nomralize to V3 protocol naming conventions\n delete r.defaultValue;\n }\n }\n }\n } else if (field.references) {\n f.references = field.references;\n }\n if (field.acceptNew) {\n f.acceptNew = field.acceptNew;\n }\n if (field.searchLabel) {\n f.searchLabel = field.searchLabel;\n }\n if (field.searchUrl || field.searchParams) {\n f.search = {\n url: field.searchUrl,\n params: field.searchParams\n };\n } else if (field.search) {\n f.search = field.search;\n }\n return f;\n};\n","export const radioFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name,\n options: field.options || []\n };\n f.type = field.name ? 'radio' : 'missing name';\n if (field.picklist) {\n for (const o of field.picklist) {\n const opt: any = {\n id: o.name || o.id,\n label: o.label\n };\n if (field.for) {\n opt.for = field.for;\n }\n if (o.validFor && field.controllerName) {\n const validFor = {};\n validFor[field.controllerName] = o.validFor;\n opt.for = validFor;\n }\n f.options.push(opt);\n if (o.defaultValue && !field.default) {\n f.default = opt.id;\n }\n }\n }\n return f;\n};\n","/*\n * @Author: Alexander.Vangelov@vonage.com \n * @Date: 2019-09-19 17:34:34 \n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2021-03-22 17:11:01\n */\n\n export const richtextFieldNormalizer = (field) => {\n const f: any = {\n label: field.label,\n name: field.name\n };\n f.type = field.name ? 'richtext' : 'missing name'; \n return f;\n};\n","/*\n* @Author: Alexander.Vangelov@vonage.com\n* @Date: 2021-03-22 17:09:12\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2026-02-11 20:29:50\n*/\nexport const uniqueNameFilter = (fields: Array<any>, uniqFieldNames: Array<string>, allowDuplicates = false) => {\n if (fields instanceof Array) {\n return allowDuplicates ? fields : fields.filter((f) => {\n if (f.name && !f.visible && !f.hidden) {\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 const 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 Object.assign(f, numberFieldNormalizer(field));\n } else if (['picklist', 'select', 'multipicklist', 'options'].indexOf(fieldType) !== -1) {\n Object.assign(f, optionsFieldNormalizer(field));\n } else if (['string', null, undefined, '', 'email', 'phone', 'url', 'combobox'].indexOf(fieldType) !== -1) {\n Object.assign(f, stringFieldNormalizer(field));\n } else if (['bool', 'boolean', 'checkbox', 'switch'].indexOf(fieldType) !== -1) {\n Object.assign(f, booleanFieldNormalizer(field));\n } else if (['text', 'textarea'].indexOf(fieldType) !== -1) {\n Object.assign(f, textFieldNormalizer(field));\n } else if (['richtext'].indexOf(fieldType) !== -1) {\n Object.assign(f, richtextFieldNormalizer(field));\n } else if (['date', 'time', 'datetime', 'datetime-local'].indexOf(fieldType) !== -1) {\n Object.assign(f, datetimeFieldNormalizer(field));\n } else if (['reference', 'references', 'multireference'].indexOf(fieldType) !== -1) {\n Object.assign(f, referenceFieldNormalizer(field));\n } else if (['radio'].indexOf(fieldType) !== -1) {\n Object.assign(f, radioFieldNormalizer(field));\n } else if (fieldType === 'composite') {\n Object.assign(f, {\n type: 'composite',\n label: field.label,\n name: field.name,\n fields: uniqueNameFilter(\n field.fields || field.reference || [],\n uniqFieldNames,\n (typeof(field.name) !== 'undefined')\n ).map((v) => fieldNormalizer(v, uniqFieldNames))\n });\n if (field.subtype) {\n f.subtype = field.subtype;\n }\n } else if (fieldType === 'list') {\n const list = field.list || field.reference;\n Object.assign(f, {\n type: field.name ? 'list' : 'missing name',\n label: field.label,\n name: field.name,\n list: fieldNormalizer(uniqueNameFilter(list, uniqFieldNames), field.name ? [] : uniqFieldNames)\n });\n if (field.selectable) {\n f.selectable = field.selectable;\n }\n if (field.resourceType) {\n f.resourceType = field.resourceType;\n }\n } else if (fieldType === 'hidden') {\n Object.assign(f, {\n name: field.name,\n type: 'hidden'\n });\n } else {\n Object.assign(f, {\n label: field.label,\n name: field.name,\n type: `@v2 ${fieldType}`\n });\n }\n if (field.validations) {\n Object.assign(f.validations, field.validations);\n }\n if (field.auto) {\n f.auto = field.auto;\n }\n if ((field.default || field.defaultValue) && !f.default) {\n const d = field.default || field.defaultValue;\n if (Array.isArray(d)) {\n f.default = [];\n for (const v of d) {\n if (typeof(v) === 'object' && v !== null) {\n const o: any = {\n id: v.id || v.value || v.name || v.label,\n label: v.label || 'N/A'\n };\n if (v.type) {\n o.type = v.type;\n }\n if (!v.type && f.reference && f.reference.name) { // Bullhorn CAND PT bad metadata\n o.type = f.reference.name;\n }\n f.default.push(o);\n } else {\n f.default = v;\n }\n }\n } else if (typeof(d) === 'object' && d !== null) {\n if (field.type === 'boolean' && typeof(d.value) === 'boolean') {\n f.default = d.value;\n } else if (Object.keys(d).length) {\n const id = d.id || d.value || d.name || d.label;\n if (id) {\n f.default = {\n id: d.id || d.value || d.name || d.label,\n label: d.label || 'N/A'\n };\n }\n if (d.type) {\n f.default.type = d.type;\n }\n }\n } else {\n f.default = d;\n }\n }\n if (field.visible || field.alwaysVisible) {\n f.visible = field.visible || field.alwaysVisible;\n }\n if (field.hidden) {\n f.hidden = field.hidden;\n }\n if (field.hint || field.helpText) {\n f.hint = field.hint || field.helpText;\n }\n if (field.valueType) {\n f.valueType = field.valueType;\n }\n if (field.multiple) {\n f.multiple = field.multiple;\n }\n if (field.suggestions && field.suggestions.length) {\n f.suggestions = field.suggestions;\n }\n if (field.updateable === false || field.updatable === false) {\n if (!f.flags) {\n f.flags = { updatable: false };\n } else {\n f.flags.updatable = false;\n }\n }\n if (field.createable === false || field.creatable === false) {\n if (!f.flags) {\n f.flags = { creatable: false };\n } else {\n f.flags.creatable = false;\n }\n }\n if (typeof(field.enabled) !== 'undefined') {\n f.enabled = field.enabled;\n }\n if (typeof(field.disabled) !== 'undefined') {\n f.disabled = field.disabled;\n }\n return f;\n};\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:34:49\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2023-02-10 09:44:59\n */\n\nimport { fieldNormalizer } from './fieldNormalizer';\nimport { uniqueNameFilter } from './fieldNormalizer/uniqueNameFilter';\n\nconst sortObj = (obj) => {\n if (typeof(obj) !== 'object' || obj === null) {\n return obj;\n }\n\n if (Array.isArray(obj)) {\n return obj.map((e) => sortObj(e)).sort();\n }\n\n return Object.keys(obj).sort().reduce((sorted, k) => {\n sorted[k] = sortObj(obj[k]);\n return sorted;\n }, {});\n};\n\nexport const metaNormalizer = (meta, integration, resourceType) => {\n const uniqFieldNames = [];\n const integrationCode = (integration || '').toUpperCase();\n const metaV3: any = {\n integration,\n resourceType,\n availableLayouts: meta.availableLayouts,\n layout: {\n id: meta.layout.id,\n name: meta.layout.name,\n label: meta.layout.label,\n version: '3.0.0',\n sections: (meta.layout.sections || []).map((s) => {\n const section: any = {\n label: s.label,\n fields: uniqueNameFilter(s.fields || [], uniqFieldNames).map((v) => fieldNormalizer(v, uniqFieldNames)) // VIST-424\n };\n if (s.visible || s.alwaysVisible) {\n section.visible = s.visible || s.alwaysVisible;\n }\n return section;\n })\n }\n };\n if (meta.layout.origLayoutId) {\n metaV3.layout.origLayoutId = meta.layout.origLayoutId;\n }\n if (meta.drafts) {\n metaV3.drafts = meta.drafts;\n }\n if (meta.layout.children) {\n metaV3.layout.children = meta.layout.children;\n }\n\n const fieldFixesByIntegration = (f) => {\n if (f.type === 'boolean' && ((typeof(f.default) !== 'boolean') && f.default && !f.default.value) ) {\n delete f.default;\n } else if (f.type === 'reference') {\n const references = (f.reference instanceof Array) ? f.reference : [f.reference];\n for (const r of references) {\n if (r && r.creatable === false && typeof(r.updatable) === 'undefined') {\n r.updatable = false; // User missing updatable, may be other too\n }\n }\n }\n switch (integrationCode) {\n case 'BULLHORN': {\n if (resourceType === 'Appointment') {\n if (['dateBegin', 'dateEnd'].indexOf(f.name) !== -1) {\n if (!f.validations) {\n f.validations = { step: 1800 };\n } else {\n f.validations.step = 1800;\n }\n f.default = f.name === 'dateBegin' ? 'now' : '30.minutes';\n if (!f.auto) {\n f.auto = {};\n }\n f.auto[f.name === 'dateBegin' ? 'lt' : 'gt'] = {\n against: f.name === 'dateBegin' ? 'dateEnd' : 'dateBegin',\n offset: `${f.name === 'dateBegin' ? '-30' : '30'}.minutes`\n };\n }\n }\n if (f.name === 'comments') {\n if (!f.validations) {\n f.valudations = { required: true };\n } else {\n f.validations.required = true;\n }\n if (resourceType === 'Note') {\n f.type = 'richtext';\n }\n }\n if (f.name === 'address.state') {\n f.creatable = false;\n f.updatable = false;\n }\n break;\n }\n case 'GOOGLE': {\n if (f.name === 'contactId') {\n f.label = 'Contact';\n } else if (['start', 'end'].indexOf(f.name) !== -1) {\n if (!f.auto) {\n f.auto = {};\n }\n f.auto[f.name === 'start' ? 'lt' : 'gt'] = {\n against: f.name === 'start' ? 'end' : 'start',\n offset: `${f.name === 'start' ? '-30' : '30'}.minutes`\n };\n }\n break;\n }\n case 'OFFICE365': {\n if (resourceType === 'Events') {\n if (['start', 'end'].indexOf(f.name) !== -1) {\n if (!f.validations) {\n f.validations = { step: 1800 };\n } else {\n f.validations.step = 1800;\n }\n f.default = f.name === 'start' ? 'now' : '30.minutes';\n }\n }\n if (resourceType === 'Tasks' && f.name === 'checklist') {\n f.creatable = false;\n }\n if (f.name === 'description' && resourceType !== 'Tasks') {\n f.type = 'richtext';\n } else if (f.name === 'content') {\n f.type = 'text';\n }\n break;\n }\n case 'SALESFORCE': {\n if (resourceType === 'Task' && f.name === 'WhatId') {\n f.disabled = {\n 'WhoId.type': 'Lead'\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 if (resourceType === 'Comment' && f.name === 'body') {\n f.visible = true;\n }\n break;\n }\n case 'HUBSPOT': {\n if (\n (resourceType === 'LogCall' && ['body', 'hs_call_body'].indexOf(f.name) !== -1) ||\n (resourceType === 'LogSMS' && f.name === 'hs_communication_body')\n ) {\n f.type = 'richtext';\n }\n break;\n }\n case 'NETSUITE': {\n if (f.name === 'company' && !f.auto) {\n f.auto = {\n search: {\n params: {\n contactId: 'contact.id'\n },\n url: '../Contact/${contactId}?expand=company',\n extract: 'company'\n }\n };\n }\n break;\n }\n case 'ZOHO': {\n if (['Calls', 'Tasks', 'Events'].indexOf(resourceType) !== -1 && ['Who_Id', 'What_Id'].indexOf(f.name) !== -1) {\n if (f.name === 'What_Id') {\n f.visible = true;\n f.disabled = {\n 'Who_Id.type': 'Leads'\n };\n }\n if (f.reference instanceof Array) {\n f.reference.forEach((r) => {\n r.creatable = true;\n r.updatable = true;\n });\n }\n }\n if (resourceType === 'Calls' && f.name === 'Description') {\n f.label = 'Description'\n f.visible = true;\n f.hidden = {\n \"Call_Type\": \"Missed\"\n }\n }\n break;\n }\n }\n if (f.type === 'composite' && f.fields) {\n for (const ff of f.fields) {\n fieldFixesByIntegration(ff);\n }\n }\n };\n\n // common fixes for all integrations\n if (metaV3.layout.sections.length) {\n for (const s of (metaV3.layout.sections)) {\n if (!s || !s.fields) {\n break;\n }\n for (const f of s.fields) {\n fieldFixesByIntegration(f);\n }\n }\n }\n\n // Google Gmail children enhancement\n if (integrationCode === 'GOOGLE') {\n if (resourceType === 'Mail') {\n metaV3.layout.editable = false;\n if (!metaV3.layout.children) {\n metaV3.layout.children = [{ // should be included in v3 api\n label: 'Comments',\n name: 'comments',\n reference: {\n resourceType: 'Comment',\n label: 'Comment',\n editable: false\n }\n }];\n }\n } else if (resourceType === 'Task') {\n if (!metaV3.layout.children) {\n metaV3.layout.children = [{\n label: 'Subtasks',\n name: 'subTasks',\n reference: {\n resourceType: 'Subtask',\n label: 'Subtask'\n }\n }];\n }\n } else if (resourceType === 'Comment') {\n metaV3.layout.editable = false;\n }\n } else if (integrationCode === 'ZENDESK') {\n if (resourceType === 'Ticket') {\n if (!metaV3.layout.children) {\n metaV3.layout.children = [{ // Zendesk Ticket children enhancement\n label: 'Comments',\n name: 'comments',\n reference: {\n resourceType: 'Comment',\n label: 'Comment',\n editable: false\n }\n }];\n }\n } else if (resourceType === 'Comment') {\n metaV3.layout.editable = false;\n }\n } else if (integrationCode === 'MSDYNAMICS' && !metaV3.fieldsMap) {\n if (resourceType === 'phonecall') {\n metaV3.fieldsMap = {\n contactables: ['from', 'to'],\n subject: 'subject',\n phoneNumber: 'phonenumber',\n };\n } else if (resourceType === 'contact') {\n metaV3.fieldsMap = {\n phoneNumber: 'telephone1',\n firstName: 'firstname',\n lastName: 'lastname'\n };\n } else if (resourceType === 'account') {\n metaV3.fieldsMap = {\n phoneNumber: 'telephone1',\n displayName: 'name'\n };\n }\n } else if (integrationCode === 'OFFICE365') {\n if (resourceType === 'Conversations') {\n metaV3.layout.editable = false;\n metaV3.layout.children = [{ // children enhancement\n label: 'Comments',\n name: 'comments',\n reference: {\n resourceType: 'Comment',\n label: 'Comment',\n editable: false\n }\n }];\n } else if (resourceType === 'Comment') {\n metaV3.layout.editable = false;\n }\n } else if (integrationCode === 'JOBDIVA') {\n if (resourceType === 'CandidateNote' || resourceType === 'ContactNote') {\n metaV3.layout.editable = false;\n }\n } else if (integrationCode === 'CLIO' && resourceType === 'Contact') {\n metaV3.layout.sections[0].fields.push({\n name: 'custom_field_values',\n type: 'hidden'\n });\n } else if (integrationCode === 'CONNECTWISE' && ['companies', 'contacts'].indexOf(resourceType) !== -1) {\n metaV3.layout.sections[0].fields.push({\n name: 'billToCompany',\n type: 'hidden'\n });\n metaV3.layout.sections[0].fields.push({\n name: 'identifier',\n type: 'hidden'\n });\n metaV3.layout.sections[0].fields.push({\n name: 'status',\n type: 'hidden'\n });\n }\n else if (integrationCode === 'ZOHO' && resourceType === 'Tasks') {\n metaV3.layout.sections[0].fields.push({\n name: 'module',\n type: 'hidden'\n });\n }\n return sortObj(metaV3);\n};\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 const nestedTagMatch = value.match(/(\\S+)\\.(\\S+)/);\n if (nestedTagMatch) {\n if (typeof(context[nestedTagMatch[1]]) === 'object') {\n return context[nestedTagMatch[1]][nestedTagMatch[2]] || '';\n } else {\n return '';\n }\n } else {\n return context[value] || '';\n }\n }\n }\n });\n return /^\\s+$/.test(patternBuilder) ? '' : 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: 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'\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 DELEGATE_INTEGRATION_URL_TEMPLATE =\n '/portal/v1/accounts/${sessionStorage.vgis.accountId}/users/${sessionStorage.vgis.userId}/integrations/${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 delegate?: any;\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 const baseUrlTemplate = config.delegate ? DELEGATE_INTEGRATION_URL_TEMPLATE : INTEGRATION_URL_TEMPLATE;\n this.baseIntegrationUrl = baseUrlTemplate.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 += `${ url.indexOf('?') === -1 ? '?' : '&' }refresh=true`;\n }\n if (layoutId) {\n url += `${ url.indexOf('?') === -1 ? '?' : '&' }layoutId=${layoutId}`;\n }\n return this.httpClient.get(url);\n }\n\n getDetails(externalId, extraParams?) {\n let params = 'referenceDetails=true';\n if (extraParams) {\n for (const p in extraParams) {\n if (extraParams[p]) {\n params += `&${p}=${extraParams[p]}`;\n }\n }\n }\n return this.httpClient.get(`${this.baseResourceUrl}/${externalId}?${params}`);\n }\n\n getByPath(path) { // TODO not universal!\n let fullPath = `${this.newResourceUrl}${path}`;\n if (/^..\\//.test(path)) {\n fullPath = `${this.baseIntegrationUrl}${path.substring(2)}`;\n }\n return this.httpClient.get(fullPath);\n }\n\n save(payload) {\n if (this.id) {\n return this.httpClient.put(\n `${this.baseResourceUrl}/${this.id}`,\n payload\n );\n } else {\n return this.httpClient.post(\n `${this.baseResourceUrl}`,\n payload\n );\n }\n }\n}\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:35:19\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-03-06 10:10:09\n */\n\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\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 onClick2Dial: (phoneNumber, vrn?: string) => void;\n onContextChange: BehaviorSubject<any>;\n\n constructor() {\n this.onContextChange = new BehaviorSubject({});\n }\n\n get context() {\n return this._context;\n }\n\n set context(value) {\n this._context = value;\n this.onContextChange.next(this._context);\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 setOnClick2Dial(callback: (phoneNumber, vrn?: string) => void) {\n if (typeof(callback) === 'function') {\n this.onClick2Dial = callback;\n } else {\n delete this.onClick2Dial;\n }\n }\n\n}\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:35:19\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-05-03 21:31:16\n */\n\n /*\n * Worker messages systems. Every integration may extend the base functionality by registering an integration worker.\n * This service provides single response for the worker message requests as a callback.\n */\nimport { Injectable } from '@angular/core';\n\nimport { MetaContextService } from '../metaContext';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetaMsgService {\n private msgCallbacks: {[state: number]: any} = {}; // message subscribers holder\n private msgListeneres: Array<string> = []; // ensure listener is registerd only once\n constructor(private metaContext: MetaContextService) {\n }\n\n sendMessage(provider: string, msg: any, callback: (response) => void, isLong = false) {\n provider = (provider || '').toUpperCase();\n const providerWorker = this.metaContext.workers[provider];\n if (providerWorker) {\n if (this.msgListeneres.indexOf(provider)) {\n this.msgListeneres.push(provider);\n providerWorker.addEventListener('message', this.workerMsgListener, false); // register a short time listener\n }\n let state; // message unique identifier\n do {\n state = new Date().getTime();\n } while (this.msgCallbacks[state]);\n\n this.msgCallbacks[state] = callback; // register message callback\n msg.$state = state;\n providerWorker.postMessage(msg);\n\n setTimeout(() => {\n this.cancelMsgListener(msg.action, state); // give up, worker does not replied on time\n const listenerIndex = this.msgListeneres.indexOf(provider);\n if (listenerIndex !== -1) {\n this.msgListeneres.splice(listenerIndex, 1);\n }\n providerWorker.removeEventListener('message', this.workerMsgListener); // remove listener when done\n }, isLong ? 60000 : 2000);\n } else {\n callback({ action: msg.action, error: `Worker ${provider} is not registered` });\n }\n }\n\n private cancelMsgListener(action, storedState) {\n const storedCallback = this.msgCallbacks[storedState];\n if (storedCallback) {\n storedCallback({ action, error: 'Timeout', state: storedState }); // always reply with something\n }\n delete this.msgCallbacks[storedState];\n }\n\n private workerMsgListener = (msg) => {\n if (msg && msg.data && msg.data.action && msg.data.$state) {\n const state = msg.data.$state;\n const callback = this.msgCallbacks[state]; // original requester callback\n if (callback) {\n delete msg.data.$state;\n callback(msg.data);\n }\n delete this.msgCallbacks[state]; // get rid of the listener callback when done\n }\n this.removeExpiredListeners(); // wipe out the expired listeners if any\n };\n\n private removeExpiredListeners() {\n const now = new Date();\n for (const state in this.msgCallbacks) { // cleanup expired listeners (< 1 min ago);\n if (parseInt(state, 10) < now.setMinutes(now.getMinutes() - 1)) {\n delete this.msgCallbacks[state];\n }\n }\n }\n}\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2023-02-08 12:41:56\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2023-02-08 14:04:46\n */\nconst pad2Digit = (t) => t < 10 ? '0' + t : t;\n\nexport const resourceCardLabel = (r: any) => { // TODO make pipe to ask integration worker for this in abstract\n // eslint-disable-next-line no-underscore-dangle\n if (r._vgis && r._vgis.connector === 'CLIO' && r._vgis.resourceType === 'PhoneCommunicationTimer') {\n const duration = r.quantity || 0; // in seconds\n let durationText = '00:00';\n if (duration > 0) {\n const hours = Math.floor(duration / 3600);\n const minutes = Math.floor((duration % 3600) / 60);\n const seconds = Math.round(duration % 60);\n const checkHours = hours ? pad2Digit(hours) + ':' : '';\n\n durationText = checkHours + pad2Digit(minutes) + ':' + pad2Digit(seconds);\n }\n return `⏱ ${ durationText } | $${ (Math.round(r.price) * 100 ) / 100} | ${ r.non_billable ? 'Non-billable' : 'Billable' }`;\n }\n return r.Subject || r.subject || r.summary || r.title || r.CaseNumber || r.comment || r.body || r.name || r.topic || r.content || '...';\n};\n","/*\n * @Author: Alexander.Vangelov@vonage.com\n * @Date: 2019-09-19 17:35:19\n * @Last Modified by: Alexander.Vangelov@vonage.com\n * @Last Modified time: 2020-05-03 21:31:44\n */\n\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetaReferenceService {\n dialogs: Array<any>;\n constructor(\n private router: Router) {\n this.dialogs = [];\n this.router.events.subscribe(() => {\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(\n componentRef, metaResource, integrationCode, reference, resource,\n preview?: boolean, preferResourceType?, theme?: string, overlayContainer?: HTMLElement\n ) {\n const references = !(reference instanceof Array) ? [reference] : reference.filter((r) => r.creatable !== false);\n if (resource && resource.type) {\n if (!references.find((f) => (f.name || f.resourceType) === (resource.resourceType || resource.type))) {\n references.push({\n name: resource.resourceType || resource.type,\n resourceType: resource.resourceType || resource.type,\n label: resource.label || resource.resourceType || resource.type\n });\n }\n }\n\n const modalObservable = new Observable(observer => {\n const refDialog = componentRef.instance;\n refDialog.integrationCode = integrationCode;\n refDialog.reference = references;\n refDialog.resource = resource;\n refDialog.metaResource = metaResource;\n refDialog.edit = !preview;\n refDialog.preferResourceType = preferResourceType;\n refDialog.theme = theme;\n\n const domElem = componentRef.hostView.rootNodes[0] as HTMLElement;\n\n const dialogIndex = this.dialogs.push(refDialog);\n\n if (dialogIndex > 1) {\n const modalPanel: HTMLElement = domElem.querySelector('.Vlt-modal__panel');\n if (modalPanel) {\n modalPanel.style.marginLeft = `${(dialogIndex * 5)}px`;\n modalPanel.style.marginTop = `${(dialogIndex * 10)}px`;\n modalPanel.style.marginBottom = `${((dialogIndex - 1) * 8)}px`;\n }\n }\n\n if (overlayContainer && overlayContainer.appendChild) {\n overlayContainer.appendChild(domElem);\n } else {\n document.body.appendChild(domElem);\n }\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(undefined);\n }\n observer.complete();\n componentRef.destroy();\n this.dialogs.splice(dialogIndex - 1, 1);\n };\n });\n\n return modalObservable;\n }\n}\n","export const extractValueBySmartProp = (rootObj, prop) => {\n // { WhoId: { id: 1, type: 'Contact' } } // \"WhoId.type\" -> 'Contact'\n if (rootObj.hasOwnProperty(prop)) {\n return rootObj[prop];\n } else {\n const parts = prop.split('.');\n if (parts.length > 1) {\n if (rootObj.hasOwnProperty(parts[0])) {\n if (typeof (rootObj[parts[0]]) === 'object' && rootObj[parts[0]][parts[1]]) {\n return extractValueBySmartProp(rootObj[parts[0]], prop.substring(parts[0].length + 1));\n }\n }\n }\n }\n};\n\nexport const extractBooleanValueBySmartProp = (rootValue, visibleObj) => {\n if (rootValue) {\n if(typeof(rootValue) === 'boolean') {\n return visibleObj !== rootValue;\n }else{\n return rootValue !== '' ? visibleObj !== true : visibleObj !== false;\n }\n } else {\n // rootValue is undefined\n return visibleObj !== false;\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: 2026-02-12 08:11:45\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';\nimport { extractValueBySmartProp, extractBooleanValueBySmartProp } from '../lib/common/utils/smartProp';\n\n// export 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 scope = '';\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 onRefTypeChange: EventEmitter<any>; // missing from V2 https://github.com/Vocalocity/gunify-connector-framework/blob/master/sc/common/directives/scField/index.js#L129\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 overlayContainer: HTMLElement;\n lastAutoValue: any;\n delegate: any;\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 get validations() {\n return !this.meta.$invisible ? (this.meta.validations || {}) : {};\n }\n\n get name() {\n return (typeof (this.index) === 'undefined') ? `${this.scope}${this.meta.name}` : `${this.scope}${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 get isOptional() {\n const baseOptional = this.preview || (!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 static setup(instance, parent, meta) { } // eslint-disable-line @typescript-eslint/no-unused-vars\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 if (typeof(this.meta.hidden) !== 'undefined') {\n if (typeof(this.meta.hidden) === 'object') {\n const setHiddenByPropertyConfig = (par) => {\n if (typeof(this.meta.hidden[par]) === 'boolean') { // any value makes me hidden\n this.meta.$hidden = !!this.parent[par];\n } else {\n const value = extractValueBySmartProp(this.parent, par);\n const parValue = value ? (value.id || value.value || value) : value;\n if (this.meta.hidden[par] instanceof Array) {\n this.meta.$hidden = this.meta.hidden[par].indexOf(parValue) !== -1;\n } else {\n this.meta.$hidden = this.meta.hidden[par] === parValue;\n }\n }\n };\n setTimeout(() => { // prevent ExpressionChangedAfterItHasBeenCheckedError\n for (const par of Object.keys(this.meta.hidden)) {\n setHiddenByPropertyConfig(par);\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(par.split('.')[0])) {\n setHiddenByPropertyConfig(par);\n if (this.meta.$hidden) {\n delete this.parent[this.meta.name];\n }\n }\n });\n }\n }, 0);\n } else if (typeof(this.meta.hidden) === 'string') {\n if (this.meta.hidden.toUpperCase() === 'CREATE') {\n this.meta.$hidden = !this.isPersistedParent;\n } else if (this.meta.hidden.toUpperCase() === 'UPDATE') {\n this.meta.$hidden = this.isPersistedParent;\n }\n } else {\n this.meta.$hidden= !!this.meta.hidden;\n }\n }\n\n Object.defineProperty(this.meta, '$invisible', {\n value: false,\n writable: true,\n configurable: true,\n enumerable: false\n });\n if (typeof(this.meta.visible) !== 'undefined') {\n if (typeof(this.meta.visible) === 'object') {\n const setInvisibleByPropertyConfig = (par) => {\n if (typeof(this.meta.visible[par]) === 'boolean') { // any value makes me hidden\n this.meta.$invisible = extractBooleanValueBySmartProp(this.parent[par],this.meta.visible[par]);\n } else {\n const value = extractValueBySmartProp(this.parent, par);\n const parValue = value ? (value.id || value.value || value) : value;\n if (this.meta.visible[par] instanceof Array) {\n this.meta.$invisible = this.meta.visible[par].indexOf(parValue) === -1;\n } else {\n this.meta.$invisible = this.meta.visible[par] !== parValue;\n }\n }\n };\n setTimeout(() => { // prevent ExpressionChangedAfterItHasBeenCheckedError\n for (const par of Object.keys(this.meta.visible)) {\n setInvisibleByPropertyConfig(par);\n this.parentChangeSubject.subscribe(() => {\n // if (value && value.hasOwnProperty(par.split('.')[0])) {\n setInvisibleByPropertyConfig(par);\n if (this.meta.$invisible) {\n delete this.parent[this.meta.name];\n }\n // }\n });\n }\n }, 0 );\n } else if (typeof(this.meta.visible) === 'string') {\n if (this.meta.visible.toUpperCase() === 'CREATE') {\n this.meta.$invisible = this.isPersistedParent;\n } else if (this.meta.visible.toUpperCase() === 'UPDATE') {\n this.meta.$invisible = !this.isPersistedParent;\n }\n }\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 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 case 'number': {\n if (m != null) {\n const v = m.id || m;\n try {\n return parseInt(v, 10);\n } catch(e) {\n if ((window as any).scDebug) console.error(e);\n return v;\n }\n }\n break;\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(this.parent[this.meta.name]);\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 clear() {\n delete this.model;\n this.onModelChange(this.model);\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","import { Component, Directive, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\n\nconst FMAP = async (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 return import('../fieldInput').then(m => m.FieldInput);\n }\n case 'textarea':\n case 'text': {\n // return FieldText\n return import('../fieldText').then(m => m.FieldText);\n }\n case 'select':\n case 'options': {\n // return FieldSelect\n return import('../fieldSelect').then(m => m.FieldSelect);\n }\n case 'reference': {\n // return FieldReference;\n return import('../fieldReference').then(m => m.FieldReference);\n }\n case 'composite': {\n // return FieldComposite;\n return import('../fieldComposite').then(m => m.FieldComposite);\n }\n case 'boolean': {\n // return FieldBoolean;\n return import('../fieldBoolean').then(m => m.FieldBoolean);\n }\n case 'radio': {\n // return FieldRadio;\n return import('../fieldRadio').then(m => m.FieldRadio);\n }\n case 'list': {\n // return FieldList;\n return import('../fieldList').then(m => m.FieldList);\n }\n case 'richtext': {\n // return FieldRichtext;\n return import('../fieldRichtext').then(m => m.FieldRichtext);\n }\n case 'datetime':\n case 'time':\n case 'date': {\n // return FieldDatetime;\n return import('../fieldDatetime').then(m => m.FieldDatetime);\n }\n case 'hidden': {\n return import('../fieldHidden').then(m => m.FieldHidden);\n }\n default: {\n // return FieldUnknown;\n return import('../fieldUnknown').then(m => m.FieldUnknown);\n }\n }\n};\n\n@Directive({\n selector: '[metaFieldContent]',\n standalone: false\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 standalone: false\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() scope: string;\n @Input() preview: boolean;\n @Input() theme: string;\n @Input() overlayContainer: HTMLElement;\n @Input() delegate: any;\n\n // eslint-disable-next-line\n @Output() onChange = new EventEmitter();\n // eslint-disable-next-line\n @Output() onLeave = new EventEmitter();\n // eslint-disable-next-line\n @Output() onRefTypeChange = new EventEmitter();\n\n @ViewChild(MetaFieldContentDirective, { static: true }) fieldContent: MetaFieldContentDirective;\n\n constructor(private el: ElementRef) {\n super();\n }\n\n async ngOnInit() {\n const component = await FMAP(this.meta.type);\n this.fieldContent.viewContainerRef.clear();\n const componentRef = this.fieldContent.viewContainerRef.createComponent(component);\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.scope = this.scope;\n field.elementRef = this.el;\n field.onChange = this.onChange;\n field.onRefTypeChange = this.onRefTypeChange;\n field.onLeave = this.onLeave;\n field.preview = this.preview;\n field.theme = this.theme;\n field.overlayContainer = this.overlayContainer;\n field.delegate = this.delegate;\n Object.defineProperty(field.meta, 'unset', {\n value: false,\n writable: true,\n configurable: true,\n enumerable: false\n });\n }\n}\n","import {\n AfterContentChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n DoCheck,\n ViewContainerRef,\n} from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { resourceCardLabel } from \"../common/utils/resourceCardLabel\";\nimport { MetaResourceService } from \"../services/metaResource\";\nimport { MetaReferenceService } from \"../services/metaReference\";\nimport { debounceTime, distinctUntilChanged } from \"rxjs/operators\";\nimport { metaDark, metaLight } from \"../common/utils/colorThemes\";\nimport { MetaMsgService } from \"../services/metaMsg\";\nimport { MetaContextService } from \"../services/metaContext\";\n\n@Component({\n selector: \"vgip-meta-layout\",\n templateUrl: \"./view.html\",\n styleUrls: [\"./style.scss\"],\n standalone: false\n})\nexport class MetaLayout\n implements OnInit, AfterContentChecked, OnChanges, DoCheck\n{\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 @Input() delegate: any;\n\n optionalFields: any = {};\n optionalFieldsCount: number;\n showAll = false;\n fieldsVisibilityChanged: Subject<string> = new Subject<string>();\n parentForm: HTMLFormElement;\n integrationCode: string;\n resourceType: string;\n childResourceCardLabel = resourceCardLabel;\n overlayContainer: HTMLElement;\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private ref: ChangeDetectorRef,\n private el: ElementRef,\n private metaResource: MetaResourceService,\n private referenceService: MetaReferenceService,\n private metaMsgService: MetaMsgService,\n private metaContext: MetaContextService\n ) {\n // console.log('MetaLayout', this.meta);\n this.overlayContainer = el.nativeElement;\n }\n\n get isPersistedResource() {\n // eslint-disable-next-line no-underscore-dangle\n return (\n this.resource &&\n this.resource._vgis &&\n (this.resource._vgis.externalId || this.resource._vgis.id)\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\n .pipe(debounceTime(100), distinctUntilChanged())\n .subscribe(() => {\n this.countOptionalFields();\n });\n setTimeout(() => {\n this.countOptionalFields();\n }, 0);\n\n if (this.parentForm) {\n this.parentForm.addEventListener(\"change\", () => {\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 if (this.isPersistedResource && this.meta.children && this.preview) {\n this.procChildrenExternalLinks();\n }\n }\n\n ngDoCheck(): void {\n this.countOptionalFields();\n }\n\n ngOnChanges(changes: any) {\n if (changes.meta) {\n this.configureOptionalSections();\n setTimeout(() => {\n this.countOptionalFields();\n }, 0);\n }\n 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?.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?.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 private buildExternalLinkForChild(child) {\n if (child?.externalId || child.id) {\n this.metaMsgService.sendMessage(\n this.integrationCode.toUpperCase(),\n {\n action: \"buildExternalLink\",\n integrationCode: this.integrationCode.toLowerCase(), // don't know why but all workers are written expecting lowercase\n ref: {\n parentRefId: this.resource._vgis.externalId || this.resource._vgis.id,\n parentResourceType: this.resource._vgis.resourceType,\n ...child\n },\n profile: this.metaContext.profiles[ this.integrationCode.toUpperCase()]\n },\n (response) => {\n if (!response.error) {\n child.externalLink = response.externalLink;\n } else {\n console.warn(\n \"No external link support for\",\n this.integrationCode,\n child.resourceType\n );\n }\n }\n );\n }\n }\n\n private procChildrenExternalLinks() {\n for (const child of this.meta.children) {\n let childrenValue = this.resource[child.name];\n Object.defineProperty(this.resource, child.name, {\n set: (children) => {\n childrenValue = children;\n if (children instanceof Array) {\n childrenValue = children;\n for (const c in children) {\n if (children[c]?._vgis && !children[c]._vgis.externalLink) { // some day BE will start providing it\n this.buildExternalLinkForChild(children[c]._vgis);\n }\n }\n }\n },\n get: () => childrenValue,\n enumerable: true,\n configurable: true\n });\n if (childrenValue) {\n this.resource[child.name] = childrenValue;\n }\n }\n }\n\n async openChild(childResource, childModel?) {\n const metaRefDialog = await import(\"../refDialog\").then(\n (m) => m.MetaRefDialog\n );\n childResource.reference.parent = this.resource._vgis; // eslint-disable-line no-underscore-dangle\n const refDialogComponent =\n this.viewContainerRef.createComponent(metaRefDialog);\n this.referenceService\n .openDialog(\n refDialogComponent,\n this.metaResource,\n this.integrationCode,\n childResource.reference,\n childModel,\n childModel && childResource.reference.editable === false // is preview mode\n )\n .subscribe((result: any) => {\n if (result?.raw) {\n if (!this.resource[childResource.name]) {\n this.resource[childResource.name] = [];\n }\n if (childModel) {\n Object.assign(childModel, result.raw);\n } else {\n this.buildExternalLinkForChild(result.raw._vgis);\n this.resource[childResource.name].push(result.raw);\n }\n }\n });\n }\n\n private applyTheme() {\n const metaTheme = this.theme === \"dark\" ? metaDark : metaLight;\n for (const key of Object.keys(metaTheme.properties)) {\n this.el.nativeElement.style.setProperty(key, metaTheme.properties[key]);\n }\n }\n}\n","@for (section of meta.sections; track section) {\n <div class='Vlt-section' [ngClass]=\"{ shown: showAll || section.visible || (!meta.oneTimeOptional && !section.$optional) || (meta.oneTimeOptional && !optionalFieldsCount) }\">\n @if (section.label) {\n <h5 class=\"Vlt-section__title\">{{section.label}}</h5>\n }\n <div style='overflow: visible;' [ngClass]=\"{ 'for-preview': preview }\">\n @if (section.description) {\n <small class=\"Vlt-form__element__hint\">{{section.description}}</small>\n }\n <div>\n @for (field of section.fields; track field) {\n @if (!field.$hidden && (showAll || section.visible || !field.$optional)) {\n <vgip-meta-field [meta]='field' [parent]='resource' [integrationCode]='integrationCode' [resourceType]='resourceType' [preview]='preview' [ngClass]=\"{ shown: !field.$invisible && (showAll || true) }\" theme='inherit' [attr.data-theme]='theme' [delegate]='delegate'></vgip-meta-field>\n }\n }\n </div>\n </div>\n </div>\n}\n@if (isPersistedResource && meta.children && preview) {\n <div>\n @for (child of meta.children; track child) {\n <div>\n <h5 class='Vlt-children__title'>\n <svg class=\"Vlt-icon\"><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-stack\" /></svg>&nbsp;\n {{child.label}} <span class='Vlt-grey'>({{(resource[child.name] || []).length}})</span>\n </h5>\n @for (c of resource[child.name]; track c) {\n <div style='position: relative;'>\n <div class=\"Vlt-card Vlt-bg-white\">\n <div class=\"Vlt-card__content Vlt-btn-on-hover\">\n <h5>{{childResourceCardLabel(c)}}</h5>\n <div style='font-size: 12px; line-height: 16px;'>\n Created: <span class='Vlt-black'>{{c._vgis.createdDate | date:'mediumDate'}}</span>\n Edited: <span class='Vlt-black'>{{c._vgis.modifiedDate | date:'medium'}}</span>\n </div>\n <div class=\"Vlt-badge Vlt-badge--app Vlt-badge--purple Vlt-badge--small\">{{c._vgis.resourceType}}</div>\n <div class=\"Vlt-btn-group Vlt-btn-group--hover\">\n @if (c._vgis.externalLink) {\n <a attr.href='{{c._vgis.externalLink}}' target='_blank' rel='noopener' rel='noopener' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\" aria-label='Open external'><svg style='margin-left: 0; margin-right: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\"/></svg></a>\n }\n <button type='button' (click)='openChild(child, c)' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\"><svg style='margin-left: 0; margin-right: 0;'><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-{{ child.reference.editable ? 'edit' : 'eye-negative' }}\"/></svg></button>\n </div>\n </div>\n </div>\n </div>\n }\n <button style='width: 100%; margin-top: 0; max-width: 100%;' type='button' (click)='openChild(child)' class=\"Vlt-btn Vlt-btn--small Vlt-btn--secondary\" [disabled]='child.creatable === false'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>{{child.reference.label}}\n </button>\n </div>\n }\n </div>\n}\n@if (!(meta.oneTimeOptional && showAll)) {\n <div [ngClass]='{ centered: !meta.oneTimeOptional }'>\n @if (!preview && optionalFieldsCount) {\n <button type='button' (click)='toggleOptionalFields()' class=\"Vlt-btn Vlt-btn--small Vlt-btn--link more-button\" style='margin: 0; margin-bottom: 10px;'>\n <svg><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-chevron-{{ showAll ? 'up' : 'down' }}\"/></svg>\n {{ showAll ? 'Hide' : 'Show' }} Optional Fields ({{optionalFieldsCount}})\n </button>\n }\n </div>\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 standalone: false\n})\nexport class MetaAutofocusDirective implements AfterContentInit {\n @Input() vgipMetaFormAutofocus: boolean;\n\n constructor(private elementRef: ElementRef) {}\n\n ngAfterContentInit(): void {\n if (this.vgipMetaFormAutofocus) {\n setTimeout(() => {\n const firstInput = this.elementRef.nativeElement.querySelector(\n '.Vlt-form__element:not(.has-value) .main:not(.standalone):not([value])'\n );\n if (firstInput) {\n firstInput.focus();\n }\n }, 300);\n }\n }\n}\n","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { MetaResourceService } from '../services/metaResource';\nimport { metaDark, metaLight } from '../common/utils/colorThemes';\nimport { MetaContextService } from '../services/metaContext';\nimport { MetaMsgService } from '../services/metaMsg';\nimport { metaNormalizer } from '../common/metaNormalizer';\nimport { templateBuilder } from '../common/utils/templateBuilder';\nimport { Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, finalize } from 'rxjs/operators';\n\n@Component({\n selector: 'vgip-meta-resource',\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n standalone: false\n})\nexport class MetaResource implements OnInit, OnChanges {\n @Input() resource: any;\n @Input() model: any;\n @Input() metaResourceServiceDelegated: MetaResourceService; // cary it from the parent to keep the interceptors\n @Input() theme: string;\n @Input() editMode = true;\n @Output() public done = new EventEmitter();\n @Output() public resourceChange = new EventEmitter();\n\n @ViewChild('resourceForm') public resourceForm: NgForm;\n\n integrationCode: string;\n resourceType: string;\n meta: any;\n service: MetaResourceService;\n currentLayoutId: any;\n formErrors: any;\n fieldsMap: any;\n edit = true;\n busy: boolean;\n metaLoading: boolean;\n generalError: string;\n resourceMenuVisible: boolean;\n contactsSuggestionsDone = false;\n isEditable: boolean;\n isPersistent: boolean;\n lockedLayoutId: string;\n resourceChanged: Subject<string> = new Subject<string>();\n resourceVrn: string;\n skipLayoutMatchCheck: boolean;\n\n constructor(\n private ref: ChangeDetectorRef,\n private el: ElementRef,\n private metaResourceService: MetaResourceService,\n private metaContext: MetaContextService,\n private metaMsgService: MetaMsgService\n ) {\n\n }\n\n get niceFields() {\n if (\n !this.resource.niceFields\n && this.resource.meta\n && this.resource.meta.layout\n && this.resource.meta.layout.sections\n ) {\n const extractSectionFields = (s) => {\n for (const f of s.fields) {\n if (f.name) {\n this.resource.niceFields[f.name] = f;\n }\n if (f.fields && f.fields.length) {\n extractSectionFields(f);\n }\n }\n };\n this.resource.niceFields = {};\n for (const s of this.resource.meta.layout.sections) {\n extractSectionFields(s);\n }\n }\n return this.resource.niceFields;\n }\n\n get fieldNames() {\n const names = Object.keys(this.niceFields);\n if (this.resource.meta.layout.children) {\n for (const child of this.resource.meta.layout.children) {\n names.push(child.name);\n }\n }\n return names;\n }\n\n ngOnInit() {\n this.integrationCode = (this.resource.integrationCode || '').toUpperCase();\n this.resourceType = this.resource.resourceType;\n this.service = (this.metaResourceServiceDelegated || this.metaResourceService).new(this.resource);\n if (!this.model) {\n this.model = {};\n }\n this.isPersistent = this.resource?.externalId;\n if (this.isPersistent) {\n this.resourceVrn = `vrn:vgis:${this.integrationCode.toLowerCase()}:${this.resource.resourceType}:${this.resource.externalId}`;\n }\n if (this.resource.activity && this.resource.ref.editable === false && !this.resource.externalId) {\n this.resource.externalId = 'MISSING_EXTERNAL_ID';\n }\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.isEditable = this.meta.layout && this.meta.layout.editable !== false;\n if (this.isPersistent && (!this.isEditable || this.editMode === false || this.meta.layout.children)) {\n this.edit = false;\n }\n this.currentLayoutId = this.meta.layout.id;\n this.getDetails();\n this.getFieldsMap();\n }\n if (this.theme !== 'inherit') {\n this.applyTheme();\n }\n this.resourceChanged.pipe(debounceTime(400), distinctUntilChanged()).subscribe((value: string) => {\n this.resourceChange.emit(value);\n });\n }\n\n ngOnChanges(changes: any) {\n if (changes.theme) {\n this.theme = changes.theme.currentValue;\n if (this.theme !== 'inherit') {\n this.applyTheme();\n }\n }\n }\n\n setEditMode() {\n this.edit = true;\n }\n\n loadMetadata(layoutId?, refresh = false, ev?) {\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 (this.currentLayoutId.indexOf(this.lockedLayoutId) === -1) {\n delete this.lockedLayoutId;\n }\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 (!refresh && this.isPersistent && (!this.isEditable || this.editMode === false || this.meta.layout.children)) {\n this.edit = false;\n }\n if (this.isPersistent && meta.layout.isCustom && meta.layout.origLayoutId) { // VGIS-10996, enable for all integrations when there is room for testing\n this.service.getMetadata(meta.layout.origLayoutId, refresh).pipe(\n finalize(() => {\n delete this.busy;\n this.getDetails();\n })\n ).subscribe({\n next: (parentMeta: any) => {\n this.extractFieldsToPreserve(metaNormalizer(parentMeta, this.integrationCode, this.resource.resourceType))\n }\n });\n } else {\n delete this.busy;\n this.getDetails();\n }\n this.getFieldsMap();\n },\n error: (metaError: any) => {\n delete this.busy;\n this.generalError = `Error loading resource metadata (${metaError.statusText})`;\n localStorage.removeItem(layoutStoreKey);\n },\n complete: () => {\n delete this.metaLoading;\n this.forceUiUpdate();\n }\n });\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n return false;\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 delete this.lockedLayoutId;\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 // this.lockedLayoutId = resource._vgis.layoutId || resource._vgis.recordTypeId // not needed anymore, TBD: cleanup code\n\n // sample orig layoutId: 012000000000000AAA, custom layoutId: 66ccbb3d1810985aa3a16202:012000000000000AAA\n // so if the current layout is not inherited from the original one, reload the orig meta\n // CCOMNI-155 - allow form layout change (*unless we are certain that the current and locked match)\n if (!this.skipLayoutMatchCheck && this.lockedLayoutId && (this.currentLayoutId || '').indexOf(this.lockedLayoutId) === -1) {\n this.skipLayoutMatchCheck = true; // ensure prevent HPBR-8782 loop condition\n if ((this.meta.availableLayouts || []).find((l: any) => (l.id || '').indexOf(this.lockedLayoutId) !== -1 )) { // if it's not available, don't even try\n this.loadMetadata(this.lockedLayoutId);\n } else {\n console.warn('Unable to match layout Ids', this.lockedLayoutId, this.currentLayoutId)\n }\n }\n }\n /* eslint-enable no-underscore-dangle */\n for (const p in resource) {\n if ((typeof (resource[p]) !== 'undefined') && (\n this.fieldNames.indexOf(p) !== -1 || p === '_vgis') ||\n (this.resource.preserveFieldsNames || []).indexOf(p) !== -1\n ) {\n this.model[p] = resource[p];\n }\n }\n delete this.busy;\n },\n error: (resourceError) => {\n this.generalError = resourceError.error ? resourceError.error.message || resourceError.message : resourceError.message;\n delete this.busy;\n },\n complete: () => {\n this.forceUiUpdate();\n }\n });\n }\n } else {\n if (this.resource.ref && this.resource.ref.activity) { // reuse failed autoactivities data\n for (const p in this.resource.ref.activity) {\n if (this.resource.ref.activity && this.fieldNames.indexOf(p) !== -1) {\n this.model[p] = this.resource.ref.activity[p]; // VGIS-7215 (copy only valid fields)\n }\n }\n }\n this.performAutoFill();\n }\n }\n\n performAutoFill() {\n this.metaMsgService.sendMessage(\n this.integrationCode,\n {\n action: 'autoFill',\n integration: this.integrationCode,\n resourceType: this.resourceType,\n resource: JSON.parse(JSON.stringify(this.model)),\n fields: this.niceFields,\n event: this.metaContext.context,\n profile: this.metaContext.profiles[this.integrationCode]\n },\n (response) => {\n if (!response.error) {\n for (const afp in response.autoFill) {\n if (!this.model[afp]) {\n this.model[afp] = response.autoFill[afp];\n }\n }\n }\n }\n );\n }\n\n getFieldsMap() {\n if (this.meta.fieldsMap) {\n this.fieldsMap = this.meta.fieldsMap;\n this.markContactables();\n this.buildContactsSuggestions();\n if (!this.resource.externalId) {\n this.buildSubjectTemplate();\n this.execTransformer();\n }\n } else {\n this.metaMsgService.sendMessage(\n this.integrationCode,\n { action: 'fieldsMap', integration: this.integrationCode, resourceType: this.resourceType },\n (response) => {\n if (!response.error) {\n this.fieldsMap = response.fieldsMap;\n this.markContactables();\n this.buildContactsSuggestions();\n if (!this.resource.externalId) {\n this.buildSubjectTemplate();\n this.execTransformer();\n }\n } else {\n console.log('No fields map', this.integrationCode, this.resourceType, response.error);\n }\n }\n );\n }\n }\n\n openResourceMenu() {\n this.resourceMenuVisible = true;\n setTimeout(() => {\n document.addEventListener('click', this.onMenuClickout);\n }, 10);\n }\n\n close(result?) {\n this.done.emit(result);\n }\n\n showParsedError(resourceForm, parsedError) {\n this.formErrors = parsedError.message || 'There is a problem with one or more fields';\n if (parsedError.errors && parsedError.errors.length) {\n this.formErrors += ` (${parsedError.errors.map(e => e.message).join(', ')})`;\n for (const pe of parsedError.errors) {\n if (resourceForm.controls[pe.field]) {\n resourceForm.controls[pe.field].setErrors({ invalid: true, custom: pe.message });\n }\n }\n setTimeout(() => {\n const firstInvalid: HTMLInputElement = this.el.nativeElement.querySelector('.Vlt-form__element--error .main:not(.standalone)');\n if (firstInvalid) {\n firstInvalid.focus();\n }\n });\n }\n }\n\n submit(resourceForm) {\n delete this.formErrors;\n resourceForm.form.submitted = true;\n if (resourceForm.valid) {\n this.busy = true;\n /* 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 if (this.metaContext.vgipEventId) {\n this.model._vgis.eventId = this.metaContext.vgipEventId;\n }\n /* eslint-enable no-underscore-dangle */\n this.service.save(this.model).subscribe((result: any) => {\n this.model = result;\n this.resource.externalId = result._vgis.externalId; // eslint-disable-line no-underscore-dangle\n this.resourceVrn = `vrn:vgis:${this.integrationCode.toLowerCase()}:${this.resource.resourceType}:${this.resource.externalId}`;\n this.isPersistent = true;\n this.close(result);\n this.edit = false;\n delete this.busy;\n }, (errorResult) => {\n if ((errorResult.status === 422 && errorResult.error && !errorResult.error.errors && errorResult.error.integrationError)\n || (errorResult.error && errorResult.error.errors && errorResult.error.errors.length && !errorResult.error.errors[0].field)\n // backend implemented error parsing but broken VGIS-7366\n ) {\n this.formErrors = 'There is a problem with one or more fields';\n try {\n this.metaMsgService.sendMessage(\n this.integrationCode,\n {\n action: 'parseErrorMessage',\n integrationCode: this.integrationCode,\n resourceType: errorResult.error.resourceType,\n rawError: errorResult.error.integrationError,\n profile: this.metaContext.profiles[this.integrationCode.toUpperCase()]\n },\n (response) => {\n if (response.parsedError) {\n this.showParsedError(resourceForm, response.parsedError);\n } else {\n // eslint-disable-next-line no-underscore-dangle\n console.error('No error parser for', this.integrationCode, errorResult.error.integrationError);\n this.formErrors = errorResult.error;\n }\n }\n );\n } catch (err) {\n console.log('....', err);\n }\n } else if (errorResult.status === 422) {\n this.showParsedError(resourceForm, errorResult.error);\n } else {\n this.formErrors = errorResult.error;\n }\n delete this.busy;\n });\n } else {\n this.formErrors = Object.keys(resourceForm.controls)\n .filter((c) => resourceForm.controls[c].invalid)\n .map((f) => (this.niceFields[f] ? (this.niceFields[f].label || f) : f)).join(', ');\n setTimeout(() => {\n const selector = `form[name=\"${this.resourceType}\"] .Vlt-form__element--error .main:not(.standalone)`;\n const firstInvalid: HTMLInputElement = this.el.nativeElement.querySelector(selector);\n if (firstInvalid) {\n firstInvalid.focus();\n }\n });\n }\n }\n\n clearFormErrors() {\n delete this.formErrors;\n }\n\n onFormChange() {\n this.resourceChanged.next(JSON.stringify(this.model));\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 const nestKeys: any = {};\n nestKeys[nestMatch[2]] = value;\n this.model[nestMatch[1]] = [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?.type || 'CALL').toUpperCase()] || profile.defaultSubject.CALL) :\n profile.activityDefaultSubjectTemplate;\n }\n if (subjectTemplate) {\n this.model[this.fieldsMap.subject] = templateBuilder(this.metaContext, subjectTemplate);\n }\n }\n }\n\n private buildContactsSuggestions() {\n // let hasDefaultContact = false;\n if (this.metaContext.contactables[this.integrationCode] && this.meta.layout && this.meta.layout.sections) {\n for (const s of this.meta.layout.sections) {\n for (const f of (s.fields || [])) {\n if (f.type === 'reference') {\n if (!f.suggestions) {\n f.suggestions = [];\n } else {\n f.suggestions = f.suggestions.filter(sg => !sg.auto); // keep meta suggestions if any\n }\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 let tLabel = c.displayName || c.name;\n if (c.phoneNumbers) {\n tLabel += (' ✆' + c.phoneNumbers.map(p => p.phoneNumber).join(','));\n }\n f.suggestions.push({\n id: c.externalId || c.identifier || c.id,\n label: tLabel,\n type: c.resourceType || c.type,\n auto: true\n });\n }\n }\n if ((this.fieldsMap.contactables || []).indexOf(f.name) !== -1) { // evaluate usability?\n f.alwaysVisible = true;\n }\n // if (\n // !hasDefaultContact && this.metaContext.defaultContactables[this.integrationCode]\n // && refTypes.indexOf(this.metaContext.defaultContactables[this.integrationCode].type) !== -1\n // ) {\n // this.resource[f.name] = this.metaContext.defaultContactables[this.integrationCode];\n // hasDefaultContact = true;\n // } else if (!hasDefaultContact && this.fieldsMap.contactables && f.suggestions && f.suggestions.length === 1) {\n // if (this.fieldsMap.contactables.indexOf(f.name) !== -1 && !f.default) {\n // f.default = f.suggestions[0];\n // hasDefaultContact = true;\n // }\n // }\n }\n }\n }\n this.contactsSuggestionsDone = true;\n }\n }\n\n private applyTheme() {\n const metaTheme = this.theme === 'dark' ? metaDark : metaLight;\n 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 private extractFieldsToPreserve(parentMeta) {\n const extractPreserveSectionFields = (s) => {\n for (const f of s.fields) {\n if (f.name && f.flags?.updatable !== false) {\n this.resource.preserveFieldsNames.push(f.name);\n }\n if (f.fields && f.fields.length) {\n extractPreserveSectionFields(f);\n }\n }\n };\n this.resource.preserveFieldsNames = [];\n for (const s of (parentMeta.layout?.sections || [])) {\n extractPreserveSectionFields(s);\n }\n }\n}\n","@if (generalError) {\n <div class=\"Vlt-callout Vlt-callout--critical\" style='overflow: auto; margin: 20px;'>\n <i></i>\n <div class=\"Vlt-callout__content\">\n <p>{{generalError}}</p>\n </div>\n </div>\n}\n@if (!meta) {\n <div class=\"Vlt-progress\">\n <div class=\"Vlt-progress__bar\" [ngClass]=\"{ loading: metaLoading }\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuetext=\"Loading Metadata\" aria-valuemax=\"100\"></div>\n </div>\n}\n@if (meta && !generalError) {\n <form [vgipMetaFormAutofocus]='!resource || !resource.externalId' #resourceForm=\"ngForm\" [name]='resource.resourceType' (ngSubmit)='submit(resourceForm)' (change)='onFormChange()' novalidate>\n <div class='form-content' style='overflow: hidden;'>\n <div [ngClass]=\"{ 'Vlt-callout--dismissed': !formErrors }\" class=\"Vlt-callout Vlt-callout--banner Vlt-callout--critical\">\n <i></i>\n <div class=\"Vlt-callout__content\" style=\"margin-top: auto;\">\n <p>There is a problem with one or more fields</p>\n @if (formErrors) {\n <small style='font-weight: 600; font-size: 1.0em;'>{{ formErrors.message || formErrors }}</small>\n }\n </div>\n <button type='button' class=\"Vlt-callout__dismiss\" (click)='clearFormErrors()' aria-label=\"Dismiss\"></button>\n </div>\n <div class=\"Vlt-card__content\" style='min-height: 40px;'>\n @if (edit) {\n <vgip-meta-layout [meta]='meta.layout' [resource]='model' [preview]='false' [integration]='meta.integration' [type]='resource.resourceType' theme='inherit'></vgip-meta-layout>\n }\n @if (!edit) {\n <vgip-meta-layout [meta]='meta.layout' [resource]='model' [preview]='true' [integration]='meta.integration' [type]='resource.resourceType' theme='inherit' [attr.data-vrn]='resourceVrn'></vgip-meta-layout>\n }\n </div>\n </div>\n <div class=\"Vlt-card__footer\">\n <button class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--outline\" type='button' aria-label='Cancel' (click)='close()'>\n {{ edit ? 'Cancel' : 'Close' }}\n </button>\n @if (edit) {\n <button class=\"Vlt-btn Vlt-btn--app\" [ngClass]=\"{ 'Vlt-btn--primary': isPersistent, 'Vlt-btn--secondary': !isPersistent }\" type='submit'>\n {{ (resource && resource.externalId) ? 'Update' : 'Create' }}\n </button>\n }\n @if (!edit && isEditable) {\n <button (click)='setEditMode()' [disabled]='!isEditable' class=\"Vlt-btn Vlt-btn--app Vlt-btn--primary\" type='button' aria-label='Edit'>\n Edit\n </button>\n }\n <div style='margin-right: 8px; flex: 1;'>\n @if (meta.availableLayouts && meta.availableLayouts.length) {\n <div class=\"Vlt-form__element Vlt-form__element--big\" style='padding: 0; margin: -8px -18px -8px 0;'>\n <div class=\"Vlt-select\">\n <label style='all: inherit;'>\n <select style='border: 0; margin-top: 3px; background: transparent;' (change)='changeLayout()' [(ngModel)]='currentLayoutId' [ngModelOptions]='{ standalone: true }' [disabled]='lockedLayoutId === currentLayoutId'>\n <option selected disabled>Select layout</option>\n @for (layout of meta.availableLayouts; track layout) {\n <option [ngValue]='layout.id'>{{layout.name}}</option>\n }\n </select>\n <label>Layout</label> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control -->\n </label>\n </div>\n </div>\n }\n </div>\n <div class=\"Vlt-dropdown resource-menu\" [ngClass]=\"{ 'Vlt-dropdown--expanded': resourceMenuVisible }\" style='margin-left: 2px;'>\n <div class=\"Vlt-dropdown__panel\" style='bottom: 40px; right: -4px; top: initial;'>\n <div class=\"Vlt-dropdown__panel__content\">\n <a href='#' class=\"Vlt-dropdown__link\" (click)='loadMetadata(currentLayoutId, true, $event)'>\n <div>\n <svg class='Vlt-icon Vlt-icon--smaller'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-refresh\"/></svg>&nbsp;&nbsp;Refresh metadata\n </div>\n </a>\n </div>\n </div>\n <div class=\"Vlt-dropdown__trigger\">\n <button type='button' (click)='openResourceMenu()' class=\"Vlt-btn Vlt-btn--link\" aria-label='Resource menu'>\n <svg class='Vlt-icon Vlt-icon--small' style='margin: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-more-v-negative\"/></svg>\n </button>\n </div>\n </div>\n </div>\n </form>\n}\n<div class='busy-mask' [ngClass]=\"{ active: busy }\">\n <div style='height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center;'>\n <div class=\"Vlt-spinner\"></div>\n </div>\n</div>\n","import { Component, ElementRef, OnInit } from '@angular/core';\nimport { metaDark, metaLight } from '../common/utils/colorThemes';\nimport { MetaResourceService } from '../services/metaResource';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n standalone: false\n})\nexport class MetaRefDialog implements OnInit {\n modal: HTMLElement;\n onComplete: (result?) => undefined;\n fullResource: any;\n resources: any = {};\n models: any = {};\n reference: any;\n currentResource: string;\n services: any = {};\n integrationCode: string;\n resource: any;\n metaResource: MetaResourceService;\n integrationIcon: string;\n preferResourceType: string;\n theme: string;\n\n constructor(\n private el: ElementRef\n ) { }\n\n get isEditable() {\n return this.resources[this.currentResource].meta.layout.editable !== false;\n }\n\n get isPersistent() {\n return this.resource && (this.resource.externalId || this.resource.id);\n }\n\n ngOnInit() {\n let references = (this.reference instanceof Array) ? this.reference : [this.reference];\n /* eslint-disable no-underscore-dangle */\n if (this.resource && this.resource._vgis) {\n this.fullResource = this.resource;\n this.resource = this.resource._vgis;\n }\n /* eslint-enable no-underscore-dangle */\n if (this.resource) {\n references = references.filter((r) => {\n const resType = r.name || r.resourceType || '';\n // comparing case insensitive, because of Zendesk comment vs Comment\n return (resType.id || resType || '').toLowerCase() === (this.resource.resourceType || this.resource.type || '').toLowerCase();\n });\n }\n\n for (const ref of references) {\n if (!ref.name) {\n ref.name = ref.resourceType; // when the resource comes from resources API, not from metadata\n }\n if (!this.currentResource) {\n this.currentResource = ref.name;\n }\n if (ref.name === this.preferResourceType) {\n this.currentResource = this.preferResourceType;\n }\n const rs: any = {\n integrationCode: this.integrationCode,\n resourceType: ref.resourceType || ref.name,\n ref\n };\n if (this.resource) {\n rs.externalId = this.resource.id || this.resource.externalId;\n if (this.resource.eventId) {\n rs.eventId = this.resource.eventId;\n }\n if (this.fullResource) {\n rs.activity = this.fullResource;\n }\n if (this.resource.layoutId) {\n rs.layoutId = this.resource.layoutId;\n }\n }\n rs.parent = ref.parent;\n this.resources[ref.name] = rs;\n this.models[ref.name] = {};\n if (this.resource) {\n this.models[ref.name]._vgis = this.resource; // eslint-disable-line no-underscore-dangle\n }\n }\n\n this.modal = this.el.nativeElement.childNodes[0];\n this.modal.classList.remove('Vlt-modal--out');\n this.modal.classList.add('Vlt-modal_visible');\n document.addEventListener('keydown', this.keyEventListener);\n\n if (this.integrationCode === 'mocks') {\n this.integrationIcon = 'Brand-icon-vonage';\n } else {\n switch (this.integrationCode.toLowerCase()) {\n case 'office365':\n this.integrationIcon = 'Brand-icon-office-color';\n break;\n case 'sugar':\n this.integrationIcon = 'Brand-icon-sugarcrm-color';\n break;\n case 'msdynamics':\n this.integrationIcon = 'Brand-icon-dynamics-color';\n break;\n default:\n this.integrationIcon = `Brand-icon-${(this.integrationCode || '').toLowerCase()}-color`;\n }\n }\n\n this.applyTheme();\n }\n\n close() {\n this.modal.classList.remove('Vlt-modal_visible');\n this.modal.classList.add('Vlt-modal--out');\n }\n\n dismiss(ev?) {\n this.close();\n this.onComplete(null);\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n }\n }\n\n onResourceDone(result) {\n this.close();\n this.onComplete(result);\n }\n\n selectResource(ev, resource) {\n this.currentResource = resource;\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n }\n\n keepOrder = (a) => a;\n\n private keyEventListener = (event) => {\n if (event && event.key === 'Escape') {\n document.removeEventListener('keydown', this.keyEventListener);\n this.dismiss();\n }\n };\n\n private applyTheme() {\n const metaTheme = this.theme === 'dark' ? metaDark : metaLight;\n for (const key of Object.keys(metaTheme.properties)) {\n this.el.nativeElement.style.setProperty(key, metaTheme.properties[key]);\n }\n }\n}\n","<div class='Vlt-modal Vlt-modal--large'>\n <div class=\"Vlt-modal__panel\">\n <div class=\"Vlt-tabs\">\n <div class='Vlt-tabs__header--background'>\n <div class=\"Vlt-tabs__header Vlt-tabs__header--shadow\">\n <svg class=\"Vlt-icon\" [ngStyle]=\"{fill: integrationIcon === 'Brand-icon-vonage' ? 'var(--vgip-meta-input-color)' : ''}\"><use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\" /></svg>\n @for (r of resources | keyvalue: keepOrder; track r) {\n <a href='#' (click)='selectResource($event, r.key)' class=\"Vlt-tabs__link\" [ngClass]=\"{ 'Vlt-tabs__link_active': currentResource === r.key}\">\n {{r.key}}\n </a>\n }\n <a href='#' class=\"Vlt-modal__dismiss\" (click)=\"dismiss($event)\">\n <svg class=\"Vlt-icon\"><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\" /></svg>\n </a>\n </div>\n </div>\n <div class=\"Vlt-tabs__content\" style='min-height: 90px;'>\n @for (r of resources | keyvalue: keepOrder; track r) {\n @if (currentResource === r.key) {\n <div class=\"Vlt-tabs__panel Vlt-tabs__panel_active\">\n <vgip-meta-resource [resource]='r.value' [model]='models[r.key]' [metaResourceServiceDelegated]='metaResource' (done)='onResourceDone($event)' theme='inherit' [attr.data-theme]='theme'></vgip-meta-resource>\n </div>\n }\n }\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit, ViewContainerRef } from '@angular/core';\nimport { MetaResourceService } from '../services/metaResource';\nimport { MetaReferenceService } from '../services/metaReference';\nimport { MetaRefDialog } from '../refDialog';\n\n@Component({\n selector: 'vgip-meta-resource-card',\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n standalone: false\n})\nexport class MetaResourceCard implements OnInit {\n @Input() resource: any;\n @Input() model: any;\n\n integrationCode: string;\n\n constructor(\n private metaResource: MetaResourceService,\n private referenceService: MetaReferenceService,\n private viewContainerRef: ViewContainerRef\n ) { }\n\n ngOnInit() {\n this.integrationCode = (this.resource.integration || this.resource.integrationCode || '').toLowerCase();\n }\n\n open(reference, model?) {\n const refDialogComponent = this.viewContainerRef.createComponent(MetaRefDialog);\n this.referenceService.openDialog(\n refDialogComponent, 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","<div class=\"Vlt-card Vlt-bg-white\">\n <div class=\"Vlt-card__content Vlt-btn-on-hover\">\n <h5>{{model.Subject || model.subject || model.summary || model.title || model.CaseNumber || model.comment || model.body || model.name || model.topic || '...' }}</h5>\n <div style='font-size: 12px; line-height: 16px;'>\n Created: <span class='Vlt-black'>{{model._vgis.createdDate | date:'mediumDate'}}</span>\n Edited: <span class='Vlt-black'>{{model._vgis.modifiedDate | date:'medium'}}</span>\n </div>\n <div class=\"Vlt-badge Vlt-badge--app Vlt-badge--purple Vlt-badge--small\">{{model._vgis.resourceType}}</div>\n <div class=\"Vlt-btn-group Vlt-btn-group--hover\">\n @if (model._vgis.externalLink) {\n <a attr.href='{{model._vgis.externalLink}}' target='_blank' rel='noopener' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\" aria-label='Open external'><svg style='margin-left: 0; margin-right: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\"/></svg></a>\n }\n <button type='button' (click)='open(resource, model)' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\" aria-label='Edit'><svg style='margin-left: 0; margin-right: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-edit\"/></svg></button>\n </div>\n </div>\n</div>\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 } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\n\n@Component({\n templateUrl: './view.html',\n standalone: false\n})\nexport class FieldUnknown extends FieldAbstract {}\n","<div class=\"Vlt-form__element Vlt-form__element--big\">\n <div class=\"Vlt-input\">\n <label class='wrapper'>\n <input class='main model' type=\"text\" placeholder=\"\" value=\"Unknown field type '{{meta.type}}'.\" disabled/>\n <label class=\"Vlt-label Vlt-truncate\" style='padding-right: 20px;'>{{meta.label || meta.name}}</label> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control -->\n </label>\n </div>\n @if (meta.hint) {\n <small class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n }\n</div>\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[3], 10) * (wordToMilliseconds[protoMatch[4]] || 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: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 standalone: false\n})\nexport class MetaModelPipe implements PipeTransform {\n transform(value: any): any {\n return value;\n }\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 standalone: false\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 isPhoneNumber: boolean;\n logicalSubtype: string;\n\n constructor( private metaContext: MetaContextService ) {\n super();\n }\n\n get suggestions() {\n return this.asyncSuggestions || this.meta.suggestions || [];\n }\n\n ngOnInit() {\n this.multiple = (this.meta.type === 'multistring') || this.meta.multiple;\n // console.log('FieldInput init', this.meta.name);\n this.validationAttributes = ['pattern', 'required', 'minlength', 'maxlength', 'min', 'max', 'step'];\n if (this.meta.picklist) { // just for test! all metadata should be transformed to v3 protocol\n this.meta.suggestions = (this.meta.picklist || []).map((s) => s.label);\n }\n if (this.meta.type === 'number') {\n this.logicalSubtype = 'number';\n }\n if (['date', 'time', 'datetime'].indexOf(this.meta.type) !== -1) {\n this.logicalSubtype = this.meta.type;\n if (this.meta.type === 'datetime') {\n this.logicalSubtype = 'datetime-local';\n }\n delete this.multiple; // no multiple support for timestamps\n }\n this.showClear = !this.multiple && [\n '', 'string', 'url', 'email', 'password', 'tel', 'date', 'datetime-local', 'time'\n ].indexOf(this.meta.subtype || '') !== -1;\n const origValue = this.parent[this.meta.name];\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (this.multiple) {\n if (typeof(value) !== 'undefined') {\n const values = (value instanceof Array) ? value : [value];\n this.model = [];\n for (let v of values) {\n if (!this.model) {\n this.model = [];\n }\n if (typeof (v) === 'object' && v !== null) {\n v = v.id || v.value;\n }\n this.model.push(v);\n }\n this.value = this.model;\n }\n } else {\n if (typeof(value) !== 'undefined'\n && !(value === null && ((typeof(this.meta.type) === 'undefined') || ['string', 'number'].indexOf(this.meta.type) !== -1))\n ) {\n if (this.meta.type === 'number' && typeof(value) === 'string') {\n value = parseInt(value, 10);\n } else if (typeof (value) === 'object' && value !== null) {\n value = value.id || value.value;\n }\n if (['datetime', 'date', 'datetime-local'].indexOf(this.meta.subtype || this.meta.type) !== -1 && value) {\n try {\n let date: Date;\n if ((typeof (value) === 'number')) {\n date = new Date(parseInt(value as any, 10));\n if ('date' === (this.meta.type || this.meta.subtype)) {\n date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\n }\n } else {\n if ('date' === (this.meta.subtype || this.meta.type)) {\n date = new Date(Date.parse(value));\n } else {\n date = new Date(Date.parse(`${value}Z`) + (new Date().getTimezoneOffset() * 60000));\n }\n }\n if (typeof (value) === 'number') {\n switch (this.meta.subtype || this.meta.type) {\n case 'datetime-local':\n case 'datetime': {\n this.model = `${date.getFullYear()}-${('00' + (date.getMonth() + 1)).slice(-2)}-${('00' + date.getDate()).slice(-2)}`;\n this.model += `T${('00' + date.getHours()).slice(-2)}:${('00' + date.getMinutes()).slice(-2)}`;\n break;\n }\n case 'date': {\n this.model = date.toISOString().split('T')[0];\n break;\n }\n }\n }\n if (this.meta.valueType === 'string') {\n if ((this.meta.subtype || this.meta.type) === 'date') {\n this.value = date.toISOString().split('T')[0];\n } else {\n this.value = date.toISOString();\n }\n } else {\n if ((this.meta.subtype || this.meta.type) === 'date') {\n date.setFullYear(date.getUTCFullYear());\n date.setMonth(date.getUTCMonth());\n date.setDate(date.getUTCDate());\n date.setMinutes(0);\n date.setHours(0);\n date.setSeconds(0);\n date.setMilliseconds(0);\n this.value = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).getTime();\n } else {\n this.value = date.getTime();\n }\n }\n } catch (e) {\n console.error('Date parse error', e.message, `\"${value}\"`, `(${typeof (value)})`);\n }\n } else if ('time' === (this.meta.subtype || this.meta.type)) {\n try {\n let date: Date;\n if (typeof (value) === 'number') {\n date = new Date(parseInt(value as any, 10));\n if (value < 86400000) {\n date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\n }\n } else {\n date = new Date(\n Date.parse(new Date().toISOString().replace(/T.*Z/, `T${value}Z`)) + (new Date().getTimezoneOffset() * 60000)\n );\n }\n this.model = date.toTimeString().split(' ')[0];\n date.setFullYear(1970);\n date.setMonth(0);\n date.setDate(1);\n date.setMilliseconds(0);\n this.value = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).getTime();\n } catch (e) {\n console.error('Date parse error', e.message, `\"${value}\"`, `(${typeof (value)})`);\n }\n } else {\n if (!value && (typeof(this.prevModel) === 'string') && this.isPersistedParent) {\n value = '';\n }\n this.model = value;\n this.value = value;\n }\n } else {\n delete this.model;\n delete this.value;\n }\n }\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n if (typeof(origValue) !== 'undefined') {\n this.parent[this.meta.name] = origValue;\n }\n if (!this.isPersistedParent && typeof(this.meta.auto?.template) === 'string') {\n this.metaContext.onContextChange.subscribe((context) => {\n const autoValue = templateBuilder({ context }, this.meta.auto.template);\n if (this.model === this.lastAutoValue && autoValue) {\n this.lastAutoValue = autoValue;\n this.parent[this.meta.name] = autoValue;\n }\n });\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 this.lastAutoValue = this.model;\n }\n if (this.preview && this.metaContext.onClick2Dial && origValue) {\n this.isPhoneNumber = /^(?:00|\\+)?(([01]|44|61|48|33( )?\\d|27|30|31|34|371|380|39|41|420|52|40|90|91)(\\s)?)?[-./]?\\(?\\d?\\d{1,3}\\)?[-\\s./]?\\d?[-\\s./]?\\d{1,4}\\)?[-\\s./]?\\d{1,4}[-./]?\\d{1,4}(\\s\\d\\d($|,))?(,[,\\d]+#)?$/.test(origValue);\n }\n }\n\n onActivated(ev) {\n this.input = ev.srcElement;\n if (!this.dropdown) {\n this.dropdown = ev.srcElement.parentNode.parentNode;\n }\n this.showDropdown();\n }\n\n clear(ev?) {\n delete this.model;\n delete this.activeSuggestionIndex;\n delete this.asyncSuggestions;\n this.onModelChange(this.model);\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n return false;\n }\n }\n\n onBlur(ev) {\n let internalControl = false;\n if (ev.relatedTarget) {\n if (!this.elementRef.nativeElement.contains(ev.relatedTarget)) {\n this.dismissDropdown();\n } else {\n internalControl = true;\n }\n }\n if (this.keyListenerActive && !internalControl) {\n this.input.removeEventListener('keydown', this.keydown);\n setTimeout(() => {\n if (!this.keyListenerActive) {\n document.removeEventListener('click', this.clickout);\n }\n }, 400);\n delete this.keyListenerActive;\n }\n }\n\n onAdd(ev) {\n console.log('onAdd', this.addText);\n if (this.addText) {\n if ((this.model || []).indexOf(this.addText) === -1) {\n this.onSuggestionSelect(ev, this.addText);\n if (!this.meta.suggestions) {\n this.meta.suggestions = [];\n }\n this.meta.suggestions.unshift(this.addText);\n } else {\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n }\n delete this.addText;\n }\n }\n\n remove(ev, item) {\n ev.preventDefault();\n ev.stopPropagation();\n const optionIndex = this.model.indexOf(item);\n if (optionIndex !== -1) {\n this.model.splice(optionIndex, 1);\n if (!this.model.length) {\n delete this.model;\n delete this.value;\n }\n this.onModelChange(this.model);\n }\n }\n\n onSuggestionSelect(ev, suggestion) {\n if (!suggestion) {\n return;\n }\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n let suggestionValue = suggestion.id || suggestion.value || suggestion;\n if (typeof(suggestionValue) === 'string') {\n if (/^(date|time)/.test(this.meta.subtype)) {\n suggestionValue = relativeTimeBuilder(this.meta.subtype, suggestionValue, this.validations.step);\n } else if (this.meta.type === 'string') {\n suggestionValue = templateBuilder(this.metaContext, suggestionValue);\n } else {\n suggestionValue = suggestion;\n }\n }\n if (this.multiple) {\n if (!this.model) {\n this.model = [];\n }\n let existingItemIndex = this.model.indexOf(suggestionValue);\n if (existingItemIndex === -1) {\n this.model.push(suggestionValue);\n } else {\n this.model.splice(existingItemIndex, 1);\n existingItemIndex = undefined;\n }\n this.onModelChange(this.model);\n } else {\n this.dismissDropdown();\n this.model = suggestionValue;\n this.onModelChange(suggestionValue);\n this.activeSuggestionIndex = this.suggestions.indexOf(suggestion);\n }\n }\n\n textToSpeech() { }\n\n dismissDropdown(event?) {\n if (event) {\n this.focus();\n }\n if (this.dropdown) {\n this.dropdown.classList.remove('Vlt-dropdown--expanded');\n }\n }\n\n click2dial(ev) {\n ev.preventDefault();\n ev.stopPropagation();\n this.metaContext.onClick2Dial(this.model, this.elementRef.nativeElement.closest('vgip-meta-layout[data-vrn]')?.dataset?.vrn);\n return false;\n }\n\n private ensureDropdownIsVisible() {\n setTimeout(() => {\n const holder = this.dropdown.closest('.Vlt-card__content, .Vlt-modal__content');\n if (holder) {\n const el = this.elementRef.nativeElement.querySelector('.Vlt-dropdown__panel');\n 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 }\n }, 400);\n }\n\n private showDropdown() {\n if (this.meta.suggestions?.length) {\n this.dropdown.classList.add('Vlt-dropdown--expanded');\n this.ensureDropdownIsVisible();\n }\n if (!this.keyListenerActive) {\n this.input.addEventListener('keydown', this.keydown);\n setTimeout(() => {\n document.addEventListener('click', this.clickout);\n }, 200);\n this.keyListenerActive = true;\n }\n if (typeof(this.activeSuggestionIndex) === 'undefined') {\n if (this.model && this.suggestions.length) {\n for (let suggestionIndex = 0; suggestionIndex < this.suggestions.length; suggestionIndex++) {\n if (this.model === this.suggestions[suggestionIndex]) {\n this.activeSuggestionIndex = suggestionIndex;\n return;\n }\n }\n delete this.activeSuggestionIndex;\n }\n }\n }\n\n private clickout = (event) => {\n if (event.target.className === 'Vlt-dropdown__link' && this.elementRef.nativeElement.contains(event.target)) {\n this.focus();\n // this.dismissDropdown();\n // this.parent[this.meta.name] = event.target.textContent;\n\n } else if (event.target !== this.input && event.target.className !== 'Vlt-dropdown__title') {\n this.dismissDropdown();\n } else {\n this.focus();\n }\n };\n\n private keydown = (event) => {\n switch (event.key) {\n case 'ArrowDown': {\n if (['datetime', 'time', 'date', 'datetime-local'].indexOf(this.meta.subtype || this.meta.type) !== -1) {\n break;\n }\n this.showDropdown();\n event.preventDefault();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = 0;\n } else {\n this.activeSuggestionIndex++;\n if (this.activeSuggestionIndex >= this.suggestions.length) {\n this.activeSuggestionIndex = 0;\n }\n }\n break;\n }\n case 'ArrowUp': {\n if (['datetime', 'time', 'date', 'datetime-local'].indexOf(this.meta.subtype || this.meta.type) !== -1) {\n break;\n }\n this.showDropdown();\n event.preventDefault();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = this.suggestions.length - 1;\n } else {\n this.activeSuggestionIndex--;\n if (this.activeSuggestionIndex < 0) {\n this.activeSuggestionIndex = this.suggestions.length - 1;\n }\n }\n break;\n }\n case 'Space':\n case 'Enter': {\n if (typeof (this.activeSuggestionIndex) !== 'undefined') {\n event.preventDefault();\n event.stopPropagation();\n this.onSuggestionSelect(event, this.suggestions[this.activeSuggestionIndex]);\n delete this.activeSuggestionIndex;\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n event.stopPropagation();\n this.dismissDropdown();\n break;\n }\n default: {\n setTimeout(() => {\n if (!this.model) {\n delete this.activeSuggestionIndex;\n delete this.asyncSuggestions;\n } else if (typeof(this.model) === 'string') {\n this.asyncSuggestions = (this.meta.suggestions || []).filter((s) => {\n const suggestionText = (s.id || s.value || s || '').toLowerCase();\n return suggestionText.indexOf(this.model.toLowerCase()) !== -1;\n });\n }\n });\n }\n }\n };\n\n}\n","@if (preview && model) {\n <div class='vgip-meta-field-preview'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>\n @if (isPhoneNumber) {\n <a href='#' (click)=\"click2dial($event)\" class=\"Vlt-text-link\" aria-label='Dial'>\n <svg class=\"Vlt-icon Vlt-icon--smaller\" style=\"margin-top: -3px;\">\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-phone-full\" />\n </svg>\n {{model}}\n </a>\n } @else {\n {{model}}\n }\n </div>\n </div>\n}\n@if (!preview) {\n <div class=\"Vlt-form__element Vlt-form__element--big\" [ngClass]=\"{'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched), 'multiple': multiple, 'has-value': f.value, active: keyListenerActive }\">\n @if (multiple) {\n <div class='items-container'>\n @if (model) {\n <div class='badges-container keep-focus' (click)='focus()'> <!-- eslint-disable-line -->\n @for (item of model; track item) {\n <div class=\"Vlt-badge Vlt-badge--transparent Vlt-badge--app Vlt-badge--large keep-focus\">\n {{item}}\n <button class=\"Vlt-badge__dismiss keep-focus\" (click)='remove($event, item)'></button> <!-- eslint-disable-line @angular-eslint/template/elements-content -->\n </div>\n }\n </div>\n }\n </div>\n }\n <div class=\"Vlt-input Vlt-dropdown\" style='display: block;' [ngClass]=\"{'vgip-disable': disabled}\">\n <label class='wrapper'>\n <input class='main model' [pattern]=\"validations.pattern ? validations.pattern.value || validations.pattern : null\" [required]='validations.required' [minlength]='validations.minlength' [maxlength]='validations.maxlength' [min]='validations.min' [max]='validations.max' [step]='validations.step' [disabled]='disabled' [readonly]=\"readonly\" [(ngModel)]='model' (ngModelChange)=\"onModelChange($event)\" #f='ngModel' [name]='name' [type]=\"multiple ? 'hidden' : (logicalSubtype || meta.subtype || 'text')\" placeholder=\" \" (click)='onActivated($event)' (focus)='onActivated($event)' (blur)='onBlur($event)'/>\n @if (multiple) {\n <input class='main' [pattern]=\"validations.pattern ? validations.pattern.value || validations.pattern : null\" [minlength]='validations.minlength' [maxlength]='validations.maxlength' [min]='validations.min' [max]='validations.max' [(ngModel)]='addText' [ngModelOptions]=\"{ standalone: true }\" [type]=\"logicalSubtype || meta.subtype || 'text'\" [disabled]='disabled' [readonly]='readonly' placeholder=\"+Add\" (keydown.enter)='onAdd($event)' (click)='onActivated($event)' (focus)='onActivated($event)' (blur)='onBlur($event)'/>\n }\n <label class='Vlt-truncate'> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control -->\n {{meta.label || meta.name}}\n @if (validations.required) {\n <span class='Vlt-red'>*</span>\n }\n &nbsp;\n @if (model && multiple) {\n <span class='Vlt-black'>({{model.length}})</span>\n }\n </label>\n </label>\n <div class='Vlt-composite__append right-actions'>\n @if (model && showClear) {\n <a href='#' class=\"Vlt-composite__append--icon\" (click)='clear($event)'>\n <div class=\"Vlt-composite__icon\">\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/></svg>\n </div>\n </a>\n }\n </div>\n <!-- <div *ngIf=\"!meta.subtype || meta.subtype == 'text'\" class=\"Vlt-composite__append Vlt-composite__append--icon\" style='bottom: 7px; right: 10px; padding: 3px; width: initial; height: initial; cursor: pointer;'>\n <div *ngIf=\"!meta.type || meta.type === 'string'\" class=\"Vlt-composite__icon\" (click)='textToSpeech()'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-microphone\"/></svg>\n </div>\n </div> -->\n @if (suggestions.length) {\n <div class=\"Vlt-dropdown__panel\">\n <div class=\"Vlt-dropdown__panel__content Vlt-dropdown__panel__content--scroll-area suggestions\">\n <!-- <div class=\"Vlt-dropdown__title\" style='padding-left: 13px;'>\n Suggestions\n <div class=\"Vlt-dropdown__close Vlt-white\" (click)='dismissDropdown($event)'>\n <svg class='Vlt-icon Vlt-icon--small'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/></svg>\n </div>\n </div> -->\n <div class=\"Vlt-dropdown__block\"></div>\n @if (dropdown) {\n <div class=\"Vlt-dropdown__scroll\">\n @for (suggestion of suggestions; track suggestion; let i = $index) {\n <a href='#' [ngClass]=\"{ 'Vlt-dropdown__link--selected': (activeSuggestionIndex === i) }\" (click)='onSuggestionSelect($event, suggestion)' class=\"Vlt-dropdown__link\" style='padding: 0;'>\n @if (multiple) {\n <div class=\"Vlt-checkbox\" style='width: 100%;'>\n <label [title]='suggestion.label || suggestion'>\n <span class=\"Vlt-checkbox__button\">\n <input type=\"checkbox\" [checked]='model && model.indexOf(suggestion) !== -1'/>\n <span class=\"Vlt-checkbox__icon\"></span>\n </span>\n {{suggestion.label || suggestion}}\n </label>\n </div>\n }\n @if (!multiple) {\n <div style='padding: 12px 20px;'>\n {{suggestion.label || suggestion}}\n </div>\n }\n </a>\n }\n </div>\n }\n @if (!multiple) {\n <div class=\"Vlt-dropdown__block\"></div>\n }\n @if (multiple) {\n <div class=\"Vlt-dropdown__block Vlt-dropdown__block--nowrap\" style='padding: 8px 16px 16px;'>\n <button (click)='clear($event)' type='button' class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small Vlt-btn--outline\">Clear all</button>\n <button (click)='dismissDropdown($event)' type='button' class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small\">Done</button>\n </div>\n }\n </div>\n </div>\n }\n</div>\n@if (f.invalid && ((f | metaModel)._parent.submitted || ((f | metaModel ).touched && keyListenerActive))) {\n <small class=\"Vlt-form__element__error\">\n @if (f.errors.required) {\n <span>Required.&nbsp;</span>\n }\n @if (f.errors.minlength) {\n <span>Must be longer than {{validations.minlength}} characters.&nbsp;</span>\n }\n @if (f.errors.maxlength) {\n <span>Must be lest than {{validations.maxlength}} characters.&nbsp;</span>\n }\n @if (f.errors.pattern) {\n <span>{{ validations.pattern.text || \"Should match '\"+validations.pattern+\"' pattern.\" }}.&nbsp;</span>\n }\n @if (f.errors.custom) {\n <span>{{f.errors.custom}}&nbsp;</span>\n }\n </small>\n}\n@if (meta.hint) {\n <small class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n}\n</div>\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, 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 standalone: false\n})\nexport class FieldText extends FieldAbstract implements OnInit {\n // @Input() meta: any;\n value: string;\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 const origValue = this.parent[this.meta.name];\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (value) {\n this.model = value;\n this.value = value;\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 if (!this.isPersistedParent && typeof(this.meta.auto?.template) === 'string') {\n this.metaContext.onContextChange.subscribe((context) => {\n const autoValue = templateBuilder({ context }, this.meta.auto.template);\n if (this.model === this.lastAutoValue && autoValue) {\n this.lastAutoValue = autoValue;\n this.parent[this.meta.name] = autoValue;\n }\n });\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","@if (preview && model) {\n <div class='vgip-meta-field-preview'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>{{parent[meta.name]}}</div>\n </div>\n}\n@if (!preview) {\n <div class=\"Vlt-form__element Vlt-form__element--big\" [ngClass]=\"{ 'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched) }\">\n <label class='wrapper'>\n <div class=\"Vlt-textarea\">\n <textarea class='main model' [required]='validations.required' [maxlength]='validations.maxlength' rows=\"{{ meta.rows || 4 }}\" placeholder=' ' [(ngModel)]='model' (ngModelChange)=\"onModelChangeLocal($event)\" #f='ngModel' [name]='name'></textarea>\n <!-- <div class=\"Vlt-composite__append Vlt-composite__append--icon\">\n <div class=\"Vlt-composite__icon\" (click)='textToSpeech()'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-microphone\"/></svg>\n </div>\n </div> -->\n <label class=\"Vlt-label\"> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control -->\n {{meta.label || meta.name}}\n @if (validations.required) {\n <span class='Vlt-red'>*</span>\n }\n </label>\n </div>\n </label>\n @if (f.invalid && ((f | metaModel)._parent.submitted || ((f | metaModel ).touched))) {\n <small class=\"Vlt-form__element__error\">\n @if (f.errors.required) {\n <span>Required</span>\n }\n @if (f.errors.maxlength) {\n <span>Length can not exceed {{validations.maxlength}} characters</span>\n }\n @if (f.errors.custom) {\n <span>{{f.errors.custom}}&nbsp;</span>\n }\n </small>\n }\n @if (meta.helpText) {\n <small class=\"Vlt-form__element__hint\">{{meta.helpText}}</small>\n }\n</div>\n}\n","import { Component, OnInit, ViewContainerRef } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { MetaReferenceService } from '../services/metaReference';\nimport { MetaResourceService, IMetaResourceConfig } from '../services/metaResource';\nimport { MetaRefDialog } from '../refDialog';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\n standalone: false\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 isUpdatable = false;\n asyncOptions: Array<any>;\n searching: boolean;\n filteredOptions: Array<any>;\n searchInputText: '';\n searchInput: HTMLInputElement;\n private desiredValue: any;\n\n constructor(\n private referenceService: MetaReferenceService,\n private metaResource: MetaResourceService,\n private viewContainerRef: ViewContainerRef\n ) {\n super();\n }\n\n get options() {\n return this.filteredOptions || this.asyncOptions || this.meta.options || this.meta.picklist || [];\n }\n\n get groupedOptions() {\n return this.options.reduce((r, { group }) => {\n if (!r.some(o => o.group === group)) {\n r.push({ group, groupItem: this.options.filter(v => v.group === group) });\n }\n return r;\n }, []);\n }\n\n get resourceService() {\n if (!this.metaResourceService) {\n const metaResourceConfig: IMetaResourceConfig = {\n integrationCode: this.integrationCode,\n resourceType: this.resourceType,\n delegate: this.delegate\n };\n this.metaResourceService = this.metaResource.new(metaResourceConfig);\n }\n return this.metaResourceService;\n }\n\n get optionsBackup() {\n return this.asyncOptions || this.meta.options || this.meta.picklist || [];\n }\n\n // static setup(instance, parent, meta) { } // eslint-disable-line @typescript-eslint/no-unused-vars\n\n ngOnInit() {\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 this.isUpdatable = this.meta.reference.updatable\n }\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n this.desiredValue = value;\n if (this.multiple) {\n if (value && value instanceof Array === false) {\n for (const o of this.optionsBackup) {\n if ((value.id || value) === (o.id || o.value || o.name || 0)) {\n this.model = [o];\n this.value = [this.modelToValue(o, this.meta.valueType)];\n break;\n }\n }\n }\n if (!value || value.length) {\n const values = (value instanceof Array) ? value : (value || '').split(';'); // should not handle incorrect values\n this.value = [];\n this.model = [];\n for (const v of values) {\n if (v) {\n for (const o of this.optionsBackup) {\n if ((v.id || v) === (o.id || o.value || o.name || 0)) {\n this.model.push(o);\n this.value.push(this.modelToValue(o, this.meta.valueType));\n break;\n }\n }\n }\n }\n if (!this.model.length && !this.isPersistedParent) {\n delete this.model;\n delete this.value;\n delete this.showText;\n } else {\n this.showText = (this.model || []).map((o) => o.label || o).join(', ');\n }\n }\n } else {\n if (value) {\n for (const o of this.options) {\n if ((value.id || value) === (o.id || o.value || o.name || o)) {\n this.model = o;\n this.value = this.modelToValue(o, this.meta.valueType);\n this.showText = o.label || o;\n break;\n }\n }\n if (this.meta.acceptNew && (this.model?.id || this.model) !== value) { // VGIS-10948\n const newOption = {\n id: value.id || value,\n label: value.id || value\n };\n if (!this.options.find((o) => o.id === newOption.id)) { // VGIS-10985\n this.options.push(newOption);\n }\n this.model = newOption;\n this.value = this.modelToValue(newOption, this.meta.valueType);\n this.showText = newOption.label;\n }\n } else {\n delete this.model;\n delete this.value;\n delete this.showText;\n }\n }\n this.onSubjectChange(this.value);\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 if (!this.model) {\n this.parent[this.meta.name] = this.default.id || this.default;\n }\n }, 0);\n }\n\n if (typeof (this.meta.enabled) !== 'undefined') {\n if (typeof (this.meta.enabled) === 'object') { // TODO move me up\n for (const par of Object.keys(this.meta.enabled)) {\n // console.log('this.meta.enabled', this.meta.enabled)\n const parValue = this.parent[par];\n if (parValue) {\n // logic for specific values, this works only for true\n } else {\n this.logicalDisabled = true;\n this.clear();\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(par)) {\n setTimeout(() => {\n this.logicalDisabled = !value[par];\n if (this.logicalDisabled) {\n this.clear();\n } else {\n this.filterOptions();\n }\n }, 0 );\n }\n });\n }\n this.filterOptions();\n }\n }\n\n if (this.meta.search) {\n const searchParams = this.meta.search.params;\n if (searchParams) {\n for (const par of Object.keys(searchParams)) {\n const parValue = this.parent[searchParams[par]];\n if (parValue) {\n const params = {};\n params[par] = parValue;\n this.searchOptions(params);\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value?.hasOwnProperty(searchParams[par])) {\n if (!this.logicalDisabled) {\n this.searchOptions(value);\n }\n }\n });\n }\n }\n }\n if ((this.meta.options || []).find((o) => o.for )) { // there are dependent options\n this.filterOptions();\n }\n }\n\n onActivated(ev) {\n // ev.preventDefault();\n // ev.stopPropagation();\n this.input = ev.srcElement;\n if (!this.dropdown) {\n this.dropdown = ev.srcElement.parentNode.parentNode.parentNode;\n this.searchInput = this.dropdown.querySelector('.vgip-search_input');\n }\n this.showDropdown();\n }\n\n detectSearchBlock(element) {\n return this.elementRef.nativeElement.querySelector('.Vlt-search_wrap').contains(element);\n }\n\n onBlur(ev) {\n let internalControl = false;\n if (ev.relatedTarget) {\n\n if (!this.detectSearchBlock(ev.relatedTarget) && !this.elementRef.nativeElement.contains(ev.relatedTarget)) {\n this.dismissDropdown();\n } else {\n internalControl = true;\n }\n }\n if (this.keyListenerActive && !internalControl) {\n this.input.removeEventListener('keydown', this.keydown);\n if (this.searchInput) {\n this.searchInput.removeEventListener('keydown', this.keydown);\n }\n setTimeout(() => {\n if (!this.keyListenerActive) {\n document.removeEventListener('click', this.clickout);\n }\n }, 400);\n delete this.keyListenerActive;\n }\n this.onLeave.emit(ev);\n }\n\n onOptionSelect(ev, option) {\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n this.focus();\n if (this.multiple) {\n if (!this.model) {\n this.model = [];\n }\n const optionIndex = this.model.indexOf(option);\n if (optionIndex === -1) {\n this.model.push(option);\n } else {\n this.model.splice(optionIndex, 1);\n if (!this.model.length) {\n delete this.model;\n }\n }\n this.onModelChange(this.model);\n if (this.model) {\n this.showText = (this.model || []).map((o) => o.label || o).join(', ');\n } else {\n delete this.showText;\n }\n } else {\n this.dismissDropdown();\n if (typeof option !== 'undefined') {\n this.model = option;\n this.onModelChange(option);\n this.showText = option.label || (option.id === '' ? '--empty--' : option);\n if (typeof (option) === 'object' && !option.id && option.id !== '') {\n delete this.showText;\n }\n }\n }\n }\n\n clear(ev?) {\n delete this.model;\n this.onModelChange(this.model);\n delete this.showText;\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n }\n }\n\n openResource(ev) {\n this.dismissDropdown();\n if (this.model && typeof(this.meta.reference.updatable) === 'function') {\n return this.meta.reference.updatable(this);\n } else if (typeof(this.meta.reference.creatable) === 'function') {\n return this.meta.reference.creatable(this);\n }\n const refDialogComponent = this.viewContainerRef.createComponent(MetaRefDialog);\n let theme = this.elementRef.nativeElement.dataset.theme;\n if (!theme || theme === 'inherit') {\n let parentComponent = this.elementRef.nativeElement.closest('vgip-meta-layout');\n if (parentComponent) {\n theme = parentComponent.dataset.theme;\n }\n if (!theme || theme === 'inherit') {\n parentComponent = this.elementRef.nativeElement.closest('vgip-meta-resource');\n if (parentComponent) {\n theme = parentComponent.dataset.theme;\n }\n }\n }\n this.referenceService.openDialog(\n refDialogComponent, this.metaResource, this.integrationCode, this.meta.reference, null, false, null, theme, this.overlayContainer\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(updateActiveSuggestionIndex = true) {\n this.dropdown.classList.add('Vlt-dropdown--expanded');\n if (!this.keyListenerActive) {\n if (this.searchInput) {\n this.searchInput.focus(); // Focus directly on search input first visit\n this.searchInput.addEventListener('keydown', this.keydown);\n }\n this.input.addEventListener('keydown', this.keydown);\n setTimeout(() => {\n document.addEventListener('click', this.clickout);\n }, 200);\n this.keyListenerActive = true;\n }\n if (updateActiveSuggestionIndex && 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 break;\n }\n }\n }\n this.ensureDropdownIsVisible();\n }\n\n dismissDropdown(event?) {\n if (event) {\n this.focus();\n }\n if (this.dropdown) {\n this.dropdown.classList.remove('Vlt-dropdown--expanded');\n }\n if (this.searchInput) {\n this.clearSearchField();\n }\n delete this.activeSuggestionIndex;\n }\n\n onSearchChange() {\n const search = new RegExp(this.searchInputText, 'gi');\n if (this.searchInputText === '') {\n this.filteredOptions = [...this.optionsBackup];\n } else {\n this.filteredOptions = this.optionsBackup.filter(option => (option.label || option.id || option.name || option).match(search));\n }\n }\n\n clearSearchField(ev?) {\n this.searchInputText = '';\n this.onSearchChange();\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n }\n }\n\n private ensureDropdownIsVisible() {\n setTimeout(() => {\n const holder = this.dropdown.closest('.Vlt-card__content, .Vlt-modal__content');\n if (holder) {\n const el = this.elementRef.nativeElement.querySelector('.Vlt-dropdown__panel');\n const elRect = el.getBoundingClientRect();\n const holderRect = holder.getBoundingClientRect();\n if (holderRect.top + holderRect.height < elRect.top + elRect.height) {\n el.scrollIntoView({ block: 'end' });\n }\n }\n }, 400);\n }\n\n private ensureDropdownOptionIsVisible() {\n if (!this.dropdownScrollContainer) {\n this.dropdownScrollContainer = this.dropdown.querySelector('.Vlt-dropdown__scroll');\n }\n if (this.dropdownScrollContainer && typeof (this.activeSuggestionIndex) === 'number') {\n const scrollTop = 44 * this.activeSuggestionIndex;\n const scrollBottom = 44 * (this.activeSuggestionIndex - 7);\n if (scrollTop < this.dropdownScrollContainer.scrollTop) {\n this.dropdownScrollContainer.scrollTop = scrollTop;\n } else if (scrollBottom > this.dropdownScrollContainer.scrollTop) {\n this.dropdownScrollContainer.scrollTop = scrollBottom;\n }\n }\n }\n\n private filterOptions() {\n // console.log('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 if (this.model) {\n // replace current selections with valid ones from the new options list (support duplicate id)\n if (this.multiple) {\n const validSelections = [];\n for (let i = this.model.length - 1; i >= 0; i--) {\n const applicable = this.asyncOptions.find((o) => o.id === this.model[i].id);\n if (applicable) {\n validSelections.push(applicable);\n }\n }\n this.model = validSelections;\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.model = this.asyncOptions.find((m) => m.id === this.model.id);\n }\n this.onModelChange(this.model);\n }\n }\n\n private clickout = (event) => {\n if (\n event.target.className === 'Vlt-dropdown__link' && this.elementRef.nativeElement.contains(event.target)\n ) {\n this.focus();\n } else if (\n event.target !== this.input &&\n !event.target.classList.contains('Vlt-dropdown__block') &&\n !this.detectSearchBlock(event.target)\n ) {\n this.dismissDropdown();\n } else if (this.detectSearchBlock(event.target)) {\n event.target.focus();\n } else {\n this.focus();\n }\n };\n\n private keydown = (event) => {\n switch (event.key) {\n case 'ArrowDown': {\n this.showDropdown(false);\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(false);\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = this.options.length - 1;\n } else {\n this.activeSuggestionIndex--;\n if (this.activeSuggestionIndex < 0) {\n this.activeSuggestionIndex = this.options.length - 1;\n }\n }\n this.ensureDropdownOptionIsVisible();\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n case 'Enter':\n case 'Space':\n case ' ': {\n if (typeof (this.activeSuggestionIndex) !== 'undefined') {\n event.preventDefault();\n event.stopPropagation();\n this.onOptionSelect(event, this.options[this.activeSuggestionIndex]);\n if (!this.multiple) {\n delete this.activeSuggestionIndex;\n }\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n event.stopPropagation();\n this.dismissDropdown();\n break;\n }\n case 'Backspace': {\n if (!this.dropdown.classList.contains('Vlt-dropdown--expanded')) {\n event.preventDefault();\n event.stopPropagation();\n this.clear();\n }\n break;\n }\n }\n };\n\n private searchOptions(params?) { // eslint-disable-line @typescript-eslint/no-unused-vars\n let searchUrl = `/fields/${this.meta.name}/search`;\n if (this.meta.search) {\n const searchParams = this.meta.search.params;\n if (this.meta.search.url) {\n searchUrl = this.meta.search.url.replace(/\\${\\s*([\\w.]+)\\s*}/g, (match, key) => {\n if (searchParams.hasOwnProperty(key)) {\n const props = searchParams[key].split('.');\n const field = props[0];\n const prop = props[1];\n delete searchParams[key]; // if it is URL param, remove it as query param\n let parValue = this.parent[field];\n if (parValue) {\n if (prop) {\n parValue = parValue[prop];\n }\n if (parValue) {\n return parValue;\n }\n }\n }\n return 'undefined';\n });\n }\n 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 const value = this.value || this.desiredValue;\n if (this.multiple) {\n if (value) {\n const values = value instanceof Array ? value : (value || \"\").split(\";\");\n validValue = values.some(\n (v) =>\n options.find(\n (o) => (v.id || v) === (o.id || o.value || o.name || 0)\n ) !== undefined\n );\n }\n } else {\n if (value) {\n validValue = options.find((o) => (o.id || o) === (value.id || value)) !== undefined;\n }\n }\n\n if (!validValue) {\n this.clear();\n } else {\n this.parent[this.meta.name] = value;\n }\n delete this.searching;\n });\n }\n\n}","@if (preview && model) {\n <div class='vgip-meta-field-preview'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>\n {{showText}}\n </div>\n </div>\n}\n@if (!preview) {\n <div class=\"Vlt-form__element\"\n [ngClass]=\"{ 'Vlt-form__element--big': !meta.small ,'has-value': f.value, active: keyListenerActive, 'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (ft | metaModel ).touched), 'no-x': meta.noX }\">\n <div class=\"Vlt-composite Vlt-dropdown Vlt-input\" style='display: block;'\n [ngClass]=\"{ 'has-append-button': isCreatable && !disabled }\">\n <div class=\"Vlt-select\">\n <label class='wrapper'> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control-->\n <label class='Vlt-truncate'> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control-->\n {{meta.label || meta.name}}\n @if (validations.required && options.length) {\n <span class='Vlt-red'>*</span>\n }\n </label>\n <input class='main' [required]='validations.required && !!options.length' readonly [ngModel]='showText'\n #ft='ngModel' [ngModelOptions]=\"{standalone: true}\" type=\"text\"\n [placeholder]=\"meta.placeholder || ' '\" (click)='onActivated($event)' (focus)='onActivated($event)'\n (blur)='onBlur($event)' [ngClass]=\"{ 'standalone': meta.standalone }\"\n [disabled]='disabled' [attr.aria-label]='meta.label' />\n </label>\n <select class='model' [required]='validations.required && !!options.length' style='display: none;'\n [(ngModel)]='model' [ngModelOptions]=\"{standalone: meta.standalone}\"\n (ngModelChange)=\"onModelChange($event)\" #f='ngModel' [name]='name'></select>\n @if (searching) {\n <div class='search-progress'>\n <div class=\"container\">\n <div class=\"bar Vlt-bg-purple\"></div>\n </div>\n </div>\n }\n <div class='Vlt-composite__append right-actions'>\n @if (model && !meta.noX && !disabled) {\n <a href='#' class=\"Vlt-composite__append--icon\"\n (click)='clear($event)'>\n <div class=\"Vlt-composite__icon\">\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\" />\n </svg>\n </div>\n </a>\n }\n </div>\n </div>\n <div class='Vlt-dropdown__panel'>\n <div class=\"Vlt-dropdown__panel__content Vlt-dropdown__panel__content--scroll-area\">\n <!-- <div class=\"Vlt-dropdown__title\" style='padding-left: 15px;'>\n Select ({{options.length}})\n <div class=\"Vlt-dropdown__close Vlt-white\" (click)='dismissDropdown($event)'>\n <svg class='Vlt-icon Vlt-icon--small'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/></svg>\n </div>\n </div> -->\n <div class=\"Vlt-dropdown__block Vlt-search_wrap\">\n @if (optionsBackup.length > 12) {\n <div class=\"Vlt-composite\" [ngClass]=\"{'vgip-disable': disabled}\">\n <div class=\"Vlt-composite__prepend Vlt-composite__prepend--icon\"\n style=\"top: 0; padding-top: 15px;\">\n <div class=\"Vlt-composite__icon\">\n <svg class='Vlt-grey'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-search\"></use>\n </svg>\n </div>\n </div>\n <div class=\"Vlt-input\">\n <input type=\"text\" class=\"vgip-search_input\" [(ngModel)]=\"searchInputText\" placeholder=\"Search\" (input)=\"onSearchChange()\" (blur)='onBlur($event)' [ngModelOptions]=\"{standalone: true}\">\n </div>\n <a href='#' class=\"Vlt-composite__append--icon\" style=\"top: 2px;\" (click)=\"clearSearchField($event)\" [hidden]=\"!searchInputText\">\n <div class=\"Vlt-composite__icon\">\n <svg class='Vlt-icon Vlt-icon--small'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/>\n </svg>\n </div>\n </a>\n </div>\n }\n </div>\n @if (dropdown) {\n <div class='Vlt-dropdown__scroll'>\n @for (option of options; track option; let i = $index) {\n <a href='#' [ngClass]=\"{ 'Vlt-dropdown__link--selected': activeSuggestionIndex === i }\"\n (click)='onOptionSelect($event, option)'\n class=\"Vlt-dropdown__link\" title=\"{{option.hint}}\">\n @if (multiple) {\n <div class=\"Vlt-checkbox\" style='width: 100%;'>\n <label>\n <span class=\"Vlt-checkbox__button\">\n <input type=\"checkbox\" [checked]='model && model.indexOf(option) !== -1' />\n <span class=\"Vlt-checkbox__icon\"></span>\n </span>\n {{option.label || (option.id === '' ? '--empty--' : option)}}\n </label>\n </div>\n }\n @if (!multiple) {\n <div style='padding: 12px 20px;'>{{option.label || (option.id === '' ?\n '--empty--' : option)}}</div>\n }\n </a>\n }\n <!-- No Option Found -->\n @if (options.length === 0) {\n <div class=\"Vlt-dropdown__link\">\n <span style='padding: 12px 20px;'>\n No Option Found\n </span>\n @if (isCreatable && !disabled) {\n <button type=\"button\" class=\"Vlt-btn Vlt-btn--link\" (click)='openResource($event)'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\" />\n </svg> Add new\n </button>\n }\n </div>\n }\n </div>\n }\n @if (!multiple) {\n <div class=\"Vlt-dropdown__block\"></div>\n }\n @if (multiple) {\n <div class=\"Vlt-dropdown__block Vlt-dropdown__block--nowrap\"\n style='padding: 8px 16px 16px;'>\n <button (click)='clear($event)' type='button'\n class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small Vlt-btn--outline\"\n style='margin-right: 8px;'>Clear all</button>\n <button (click)='dismissDropdown($event)' type='button'\n class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--app Vlt-btn--small\">Done</button>\n </div>\n }\n </div>\n </div>\n <!-- <span *ngIf='isCreatable'>\n <button type='button' (click)='openResource($event)' class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--icon Vlt-btn--large\" style='margin-left: 12px;'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>\n </button>\n </span> -->\n @if (isCreatable && !disabled) {\n <div class=\"Vlt-composite__append\">\n <button (focus)='onActivated($event)' (blur)='onBlur($event)' type='button' (click)='openResource($event)'\n class=\"Vlt-btn Vlt-btn--white Vlt-btn--icon add-button\" aria-label='Add new'>\n <svg>\n <use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-{{ (isUpdatable && model) ? 'edit' : 'plus'}}\" />\n </svg>\n </button>\n </div>\n }\n</div>\n@if (f.invalid && ((f | metaModel)._parent.submitted || ((ft | metaModel).touched))) {\n <small\n class=\"Vlt-form__element__error\">\n @if (f.errors.required) {\n <span>Required.&nbsp;</span>\n }\n @if (f.errors.custom) {\n <span>{{f.errors.custom}}&nbsp;</span>\n }\n </small>\n}\n@if (meta.hint) {\n <small class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n}\n</div>\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","import { Component, OnInit, ViewContainerRef } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { MetaReferenceService } from '../services/metaReference';\nimport { Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { MetaResourceService, IMetaResourceConfig } from '../services/metaResource';\nimport { MetaRefDialog } from '../refDialog';\nimport { MetaMsgService } from '../services/metaMsg';\nimport { MetaContextService } from '../services/metaContext';\nimport { IMetaTrackerEvent, MetaTrackerService } from '../services/metaTracker';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\n standalone: false\n})\nexport class FieldReference extends FieldAbstract implements OnInit {\n input: any;\n dropdown: HTMLElement;\n dropdownScrollContainer: HTMLElement;\n searching: boolean;\n searchResourceType: any = {};\n searchText: string;\n searchResults: Array<any>;\n searchError: any;\n activeSuggestionIndex: number;\n searchResourceTypesScope: string;\n searchTextChanged: Subject<string> = new Subject<string>();\n isCreatable = false;\n value: any;\n isPolymorphic: boolean;\n isSearchable: boolean;\n multiple: boolean;\n vr: MetaResourceService;\n externalLink: string;\n dropdownVisible = false;\n searchResourceTypeMeta: any = {\n type: 'select',\n name: 'resourceType',\n label: 'Type',\n options: [], // { label: '-- All types --' }],\n standalone: true\n };\n filteredSuggestions: Array<any> = [];\n placeHolderLabel: string;\n asyncSuggestions: Array<any>;\n smartSuggestions: Array<any> = [];\n\n constructor(\n private referenceService: MetaReferenceService,\n private metaResource: MetaResourceService,\n private metaMsgService: MetaMsgService,\n private metaContext: MetaContextService,\n private metaTracker: MetaTrackerService,\n private viewContainerRef: ViewContainerRef\n ) {\n super();\n }\n\n get disabled() {\n const superDisabled = this.logicalDisabled || this.validations.disabled || this.meta.disabled === true\n || (this.meta.updatable === false && this.isPersistedParent);\n this.searchResourceTypeMeta.disabled = superDisabled;\n return superDisabled;\n }\n\n get showTypes() {\n return (typeof (this.meta.showTypes) !== 'undefined') ? this.meta.showTypes : true;\n }\n\n get suggestions() {\n return this.smartSuggestions.concat(\n !this.searchResourceType.resourceType ?\n // eslint-disable-next-line max-len\n (this.asyncSuggestions || this.meta.suggestions || []) : (this.asyncSuggestions || this.meta.suggestions || []).filter((s) => s.type === this.searchResourceType.resourceType)\n );\n }\n\n get hasAppendButton() {\n if (!this.multiple && this.model) {\n if (this.isPolymorphic) {\n for (const ref of this.metaReference) {\n if ((ref.name || ref.resourceType) === (this.model.type || this.model.resourceType)) {\n return ref.updatable || (ref.creatable && ref.updatable !== false);\n }\n }\n } else {\n return this.metaReference.updatable || (this.metaReference.creatable && this.metaReference.updatable !== false); // VGIS-6911\n }\n } else if (this.metaReference instanceof Array) {\n // setTimeout(() => {\n // this.searchResourceTypesScope = this.metaReference.map(rt => rt.name).join(',');\n // }, 0);\n for (const rt of this.metaReference) {\n if (rt.hidden !== false && rt.creatable) {\n return true;\n }\n }\n } else {\n return this.metaReference.creatable;\n }\n }\n\n get resourceService() {\n if (!this.metaResourceService) {\n const metaResourceConfig: IMetaResourceConfig = {\n integrationCode: this.integrationCode,\n resourceType: this.resourceType,\n delegate: this.delegate\n };\n this.metaResourceService = this.metaResource.new(metaResourceConfig);\n }\n return this.metaResourceService;\n }\n\n get metaReference() {\n return this.meta.reference || {};\n }\n\n ngOnInit() {\n this.multiple = (this.meta.type === 'multireference') || this.meta.multiple;\n this.searchResourceTypeMeta.label = this.meta.label;\n if (!this.meta.valueType) {\n // this.meta.valueType = 'object';\n Object.defineProperty(this.meta, 'valueType', {\n value: 'object'\n });\n }\n if (this.metaReference instanceof Array) {\n this.isPolymorphic = true;\n this.isSearchable = true;\n this.searchResourceTypesScope = this.metaReference.filter(rt => rt.hidden !== true).map(rt => rt.name).join(',');\n for (const rt of this.metaReference) {\n if (rt.creatable) {\n this.isCreatable = true;\n if (typeof (rt.searchable) !== 'undefined' && !rt.searchable) {\n this.isSearchable = false;\n }\n }\n }\n this.metaReference.forEach((r) => {\n if (!r.hidden) {\n this.searchResourceTypeMeta.options.push({ id: r.name, label: r.label || r.name });\n if (r.default) {\n this.searchResourceTypeMeta.default = r.name;\n }\n }\n });\n } else {\n this.isSearchable = typeof (this.metaReference.searchable) === 'undefined' || this.metaReference.searchable;\n this.searchResourceType = this.metaReference;\n this.searchResourceTypesScope = this.metaReference.name || this.metaReference.resourceType;\n this.isCreatable = this.metaReference.creatable;\n }\n this.buildPlaceholderLabel();\n this.searchTextChanged.pipe(debounceTime(300), distinctUntilChanged()).subscribe((value: string) => {\n this.searchText = value;\n this.search();\n });\n const origValue = this.parent[this.meta.name];\n\n // this.suggestions = this.meta.suggestions; // TODO filter by default type\n // console.log('this.suggestions', this.suggestions);\n\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (value === '') {\n value = null;\n }\n if (this.multiple) {\n if (value && value instanceof Array) {\n for (const v of value) {\n if (!this.model) {\n this.model = [];\n }\n if (typeof (v) === 'string') {\n this.model.push({\n id: v,\n label: v,\n type: this.metaReference.name\n });\n }\n }\n } else {\n value = null; // protect when value from server is not array\n }\n } else {\n if (typeof (value) === 'string') {\n value = {\n id: value,\n label: value, // could be found with extra call\n type: this.metaReference.name\n };\n }\n this.searchText = value ?\n ((!value.label || value.label === ' ') ? `N/A (${value.type}#${value.id})` : value.label || value) :\n '';\n // if (this.isPolymorphic && this.model) { //TODO show or not?\n // this.searchResourceType = this.metaReference.find((rt)=> {\n // return rt.name === this.model.type;\n // });\n // }\n }\n this.model = value;\n if (!this.multiple) {\n this.value = this.modelToValue(value, this.meta.valueType || 'object');\n this.buildExternalLink();\n } else {\n this.value = !this.model ? this.model : this.model.map((m) => this.modelToValue(m, this.meta.valueType || 'object'));\n }\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n if (origValue) {\n this.parent[this.meta.name] = origValue;\n }\n if (!this.model && this.default) {\n if (this.multiple) {\n this.parent[this.meta.name] = [];\n if (this.default.length) {\n for (const dv of this.default) {\n if ((dv.id || dv.value) && dv.type) {\n const item: any = {\n id: dv.id || dv.value,\n label: dv.label || dv.id || dv.value,\n type: dv.type\n };\n if (dv.externalLink) {\n item.externalLink = dv.externalLink;\n }\n this.parent[this.meta.name].push(item);\n }\n }\n }\n if (!this.parent[this.meta.name].length) {\n this.clear();\n }\n } else {\n if (this.default.id && this.default.label && this.default.type) {\n setTimeout(() => {\n if (!this.model) {\n const item: any = {\n id: this.default.id || this.default.value,\n label: this.default.label || this.default.id || this.default.value,\n type: this.default.type,\n smart: true\n };\n if (this.default.externalLink) {\n item.externalLink = this.default.externalLink;\n }\n this.parent[this.meta.name] = item;\n }\n }, 0);\n } else {\n console.warn('!!!default value is not valid format', this.meta);\n }\n }\n }\n\n if (typeof (this.meta.disabled) !== 'undefined') {\n if (typeof (this.meta.disabled) === 'object') {\n for (const p of Object.keys(this.meta.disabled)) {\n const props = p.split('.');\n if (typeof (this.parent[props[0]]) !== 'undefined') {\n let val = this.parent;\n for (const prop of props) {\n val = val[prop];\n if (!val) {\n break;\n }\n }\n if (val === this.meta.disabled[p]) {\n this.logicalDisabled = true;\n this.clear();\n }\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(props[0])) {\n let val = this.parent;\n for (const prop of props) {\n val = val[prop];\n if (!val) {\n break;\n }\n }\n if (val === this.meta.disabled[p]) {\n this.logicalDisabled = true;\n this.clear();\n } else {\n delete this.logicalDisabled;\n }\n }\n });\n }\n }\n }\n\n if (this.meta.auto && this.meta.auto.search) {\n const searchParams = this.meta.auto.search.params;\n if (searchParams) {\n for (const par of Object.keys(searchParams)) {\n const props = searchParams[par].split('.');\n const field = props[0];\n const prop = props[1];\n let parValue = this.parent[field];\n if (parValue) {\n if (prop) {\n parValue = parValue[prop];\n }\n if (parValue) {\n const params = {};\n params[par] = parValue;\n this.searchAutoSuggestions(params);\n }\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(field)) {\n if (value[field]) {\n if (prop) {\n value[field] = value[field][prop];\n }\n const params = {};\n params[par] = value[field];\n this.searchAutoSuggestions(params);\n }\n }\n });\n }\n }\n }\n }\n\n clearSearchResourceType() {\n this.searchResourceType = {};\n this.onSearchResourceTypeChanged();\n }\n\n onSearchResourceTypeChanged(resourceType?) {\n if (!resourceType || !resourceType.id) {\n this.searchResourceType.resourceType = null;\n this.searchResourceTypesScope = (this.metaReference || []).filter(rt => rt.hidden !== true).map(rt => rt.name).join(',');\n } else {\n this.searchResourceType.resourceType = resourceType.id;\n this.searchResourceTypesScope = resourceType.id;\n }\n this.buildPlaceholderLabel();\n this.focus();\n if (!this.model && !this.searchText) { // filter suggestions by type\n this.filteredSuggestions = !resourceType ? (this.meta.suggestions || []) : (this.meta.suggestions || []).filter(\n (s) => s.type === resourceType.id\n );\n } else { // regular search (return scoped results)\n if (!this.model) {\n this.search();\n } else if (this.searchResults && resourceType) {\n this.searchResults = this.searchResults.filter((s) => s.type === resourceType.id);\n }\n }\n delete this.searchError;\n this.onRefTypeChange.emit(resourceType);\n }\n\n onSearchTextChanged(value: string) {\n this.searchTextChanged.next(value);\n }\n\n search() {\n this.searching = true;\n // this.activeSuggestionIndex;\n if (!this.searchText || this.searchText.length < 2) {\n this.searching = false;\n delete this.searchResults;\n return;\n }\n const showSearchResults = (results) => {\n this.searching = false;\n delete this.searchError;\n delete this.activeSuggestionIndex;\n if (!results || !(results instanceof Array)) {\n results = [];\n }\n if (this.meta.acceptNew && this.meta.acceptNew.type && this.meta.acceptNew.pattern) {\n const regex = new RegExp(this.meta.acceptNew.pattern);\n if (regex.test(this.searchText)) {\n results.unshift({ id: null, label: this.searchText, type: this.meta.acceptNew.type });\n }\n }\n this.searchResults = results.map((r) => { // eslint-disable-line arrow-body-style\n return { id: r.id, label: r.label, type: r.type || r.resourceType || this.searchResourceType.name, externalLink: r.externalLink };\n });\n if (!/Vlt-dropdown--expanded/.test(this.dropdown.className)) {\n this.showDropdown();\n }\n };\n\n if (this.meta.search) {\n const searchParams = this.meta.search.params || {};\n let searchUrl = `/fields/${this.meta.name}/search`;\n if (this.meta.search.url) {\n searchUrl = this.meta.search.url.replace(/\\${\\s*([\\w.]+)\\s*}/g, (match, key) => {\n if (searchParams.hasOwnProperty(key)) {\n const props = searchParams[key].split('.');\n const field = props[0];\n const prop = props[1];\n delete searchParams[key]; // if it is URL param, remove it as query param\n let parValue = this.parent[field];\n if (parValue) {\n if (prop) {\n parValue = parValue[prop];\n }\n if (parValue) {\n return parValue;\n }\n }\n }\n return 'undefined';\n });\n }\n for (const p of Object.keys(searchParams)) {\n searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}${encodeURIComponent(p)}=${encodeURIComponent(searchParams[p])}`;\n }\n searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}q=${encodeURIComponent(this.searchText)}`;\n this.searching = true;\n this.resourceService.getByPath(searchUrl).subscribe((results) => {\n showSearchResults(results);\n }, (error) => {\n delete this.searching;\n this.searchResults = [];\n this.searchError = error.error ? error.error.message || error.error : error.message || error;\n if (!/Vlt-dropdown--expanded/.test(this.dropdown.className)) {\n this.showDropdown();\n }\n });\n } else {\n if (!this.vr) {\n this.vr = this.metaResource.new({\n integrationCode: this.integrationCode,\n resourceType: null,\n delegate: this.delegate\n });\n }\n this.vr.searchIntegration(\n this.searchText,\n this.searchResourceType.name || this.searchResourceTypesScope\n ).subscribe((results: Array<any>) => {\n showSearchResults(results);\n }, (error) => {\n this.searching = false;\n this.searchResults = [];\n this.searchError = error.error ? error.error.message || error.error : error.message || error;\n if (!/Vlt-dropdown--expanded/.test(this.dropdown.className)) {\n this.showDropdown();\n }\n });\n }\n }\n\n onActivated(ev) {\n // ev.preventDefault();\n // ev.stopPropagation();\n this.input = ev.srcElement;\n if (!this.dropdown) {\n // this.dropdown = ev.srcElement.parentNode.parentNode;\n this.dropdown = this.elementRef.nativeElement.querySelector('.dropdown-wrapper');\n }\n this.showDropdown();\n }\n\n onBlur(ev) {\n let internalControl = false;\n if (ev.relatedTarget) {\n if (!this.elementRef.nativeElement.contains(ev.relatedTarget)) {\n this.dismissDropdown();\n } else {\n internalControl = true;\n }\n }\n if (this.keyListenerActive && !internalControl) {\n this.input.removeEventListener('keydown', this.keydown);\n setTimeout(() => {\n if (!this.keyListenerActive) {\n document.removeEventListener('click', this.clickout);\n }\n }, 400);\n delete this.keyListenerActive;\n }\n }\n\n removeSelection(ev?) {\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n if (this.model && !this.suggestions.find((s) => (s.id === this.model.id && s.type === this.model.type))) {\n this.smartSuggestions.push({\n id: this.model.id,\n label: this.model.label,\n type: this.model.type,\n smart: true\n });\n }\n this.metaTracker.emit(this.buildTrackEvent('REMOVE'));\n this.clear();\n }\n\n onSuggestionSelect(ev, suggestion) {\n if (!suggestion) {\n return;\n }\n ev.preventDefault();\n ev.stopPropagation();\n this.focus();\n this.metaTracker.emit(this.buildTrackEvent('SELECT'));\n if (this.multiple) {\n if (!this.model) {\n this.model = [];\n }\n let existingEntry;\n for (const entry of this.model) {\n if (suggestion.id && (entry.id === suggestion.id)) {\n existingEntry = entry;\n break;\n } else if (suggestion.label === entry.label) { // create new (google emails)\n existingEntry = entry;\n break;\n }\n }\n if (!existingEntry) {\n this.model.push(suggestion);\n }\n this.onModelChange(this.model);\n delete this.searchText;\n this.searchTextChanged.next(this.searchText);\n } else {\n this.model = suggestion;\n this.externalLink = suggestion.externalLink;\n this.onModelChange(suggestion);\n this.searchText = suggestion.label;\n this.activeSuggestionIndex = (this.searchResults || this.suggestions).indexOf(suggestion);\n }\n this.dismissDropdown();\n // if (this.isPolymorphic) {\n // this.searchResourceType = this.metaReference.find((rt)=> {\n // return rt.name === suggestion.type;\n // });\n // }\n }\n\n showDropdown() {\n if (this.disabled) {\n return;\n }\n this.dropdownVisible = true;\n this.dropdown.classList.add('Vlt-dropdown--expanded');\n if (!this.keyListenerActive) {\n this.input.addEventListener('keydown', this.keydown);\n setTimeout(() => {\n document.addEventListener('click', this.clickout);\n }, 200);\n this.keyListenerActive = true;\n }\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n if (this.model && (this.searchResults || this.suggestions)) {\n for (let suggestionIndex = 0; suggestionIndex < (this.searchResults || this.suggestions).length; suggestionIndex++) {\n const item = (this.searchResults || this.suggestions)[suggestionIndex];\n if (this.model.id === item.id && this.model.type === item.type) {\n this.activeSuggestionIndex = suggestionIndex;\n break;\n }\n }\n }\n }\n this.ensureDropdownIsVisible();\n }\n\n dismissDropdown(event?) {\n this.dropdownVisible = false;\n if (event) {\n this.focus();\n }\n if (this.dropdown) {\n this.dropdown.classList.remove('Vlt-dropdown--expanded');\n }\n }\n\n clear() {\n this.prevModel = this.model;\n delete this.searchText;\n delete this.searchResults;\n delete this.model;\n delete this.activeSuggestionIndex;\n this.onModelChange(this.model);\n this.onSearchTextChanged(this.searchText);\n this.focus();\n }\n\n revert() {\n this.model = this.prevModel;\n delete this.prevModel;\n this.onModelChange(this.model);\n this.focus();\n }\n\n remove(ev, item) {\n ev.preventDefault();\n ev.stopPropagation();\n const optionIndex = this.model.indexOf(item);\n if (optionIndex !== -1) {\n this.model.splice(optionIndex, 1);\n if (!this.model.length) {\n delete this.model;\n delete this.value;\n }\n this.onModelChange(this.model);\n }\n }\n\n openResource(model?) {\n this.keyListenerActive = true; // suppress dropdown in this case\n setTimeout(() => {\n this.dismissDropdown();\n });\n const refDialogComponent = this.viewContainerRef.createComponent(MetaRefDialog);\n this.metaTracker.emit(this.buildTrackEvent(model ? 'EDIT' : 'NEW'));\n let theme = this.elementRef.nativeElement.dataset.theme;\n if (!theme || theme === 'inherit') {\n let parentComponent = this.elementRef.nativeElement.closest('vgip-meta-layout');\n if (parentComponent) {\n theme = parentComponent.dataset.theme;\n }\n if (!theme || theme === 'inherit') {\n parentComponent = this.elementRef.nativeElement.closest('vgip-meta-resource');\n if (parentComponent) {\n theme = parentComponent.dataset.theme;\n }\n }\n }\n this.referenceService.openDialog(\n refDialogComponent, this.metaResource, this.integrationCode,\n (this.metaReference instanceof Array) ? this.metaReference.filter(rt => rt.hidden !== true) : this.metaReference,\n model, null, this.searchResourceType.resourceType, theme, this.overlayContainer\n ).subscribe((result: any) => {\n if (result) {\n this.parent[this.meta.name] = result;\n this.onChange.emit(result);\n const existingSuggestion = (this.meta.suggestions || []).find((s) => (s.id === result.id && s.type === result.type));\n if (existingSuggestion) {\n existingSuggestion.label = result.label;\n } else {\n if (!this.meta.suggestions) {\n this.meta.suggestions = [];\n }\n this.meta.suggestions.unshift(result);\n }\n this.metaTracker.emit(this.buildTrackEvent(model ? 'UPDATE' : 'CREATE', result.type || result.resourceType));\n } else {\n this.metaTracker.emit(this.buildTrackEvent(model ? 'CANCEL_EDIT' : 'CANCEL_UPDATE'));\n }\n });\n }\n\n private ensureDropdownIsVisible() {\n setTimeout(() => {\n const holder = this.dropdown.closest('.Vlt-card__content, .Vlt-modal__content');\n if (holder) {\n const el = this.elementRef.nativeElement.querySelector('.Vlt-dropdown__panel');\n const elRect = el.getBoundingClientRect();\n const holderRect = holder.getBoundingClientRect();\n if (holderRect.top + holderRect.height < elRect.top + elRect.height) {\n el.scrollIntoView({ block: 'end' });\n }\n }\n }, 400);\n }\n\n private ensureDropdownOptionIsVisible() {\n if (!this.dropdownScrollContainer) {\n this.dropdownScrollContainer = this.dropdown.querySelector('.Vlt-dropdown__scroll');\n }\n if (this.dropdownScrollContainer && typeof (this.activeSuggestionIndex) === 'number') {\n const scrollTop = 44 * this.activeSuggestionIndex;\n const scrollBottom = 44 * (this.activeSuggestionIndex - 7);\n if (scrollTop < this.dropdownScrollContainer.scrollTop) {\n this.dropdownScrollContainer.scrollTop = scrollTop;\n } else if (scrollBottom > this.dropdownScrollContainer.scrollTop) {\n this.dropdownScrollContainer.scrollTop = scrollBottom;\n }\n }\n }\n\n private clickout = (event) => {\n const internalControl = this.elementRef.nativeElement.contains(event.target);\n if (internalControl && ['Vlt-dropdown__link', 'Vlt-dropdown__block'].indexOf(event.target.className) !== -1) {\n this.focus();\n } else if (!internalControl && event.target !== this.input && event.target.className !== 'Vlt-dropdown__title') {\n this.dismissDropdown();\n } else {\n if (!internalControl && internalControl.tagName !== 'INPUT') {\n this.focus();\n }\n }\n };\n\n private buildTrackEvent(action: string, value?: string) {\n const e: IMetaTrackerEvent = {\n integration: this.integrationCode,\n resource: this.model ? (this.model.type || this.model.resourceType) : this.searchResourceType.resourceType,\n field: this.meta.name,\n action\n };\n if (this.meta.$isContactable) {\n e.isContactable = true;\n }\n if (typeof (value) !== 'undefined') {\n e.value = value;\n }\n return e;\n }\n\n private buildPlaceholderLabel() {\n this.placeHolderLabel = this.meta.label;\n if (this.multiple && !this.isPolymorphic) {\n this.placeHolderLabel = '+Add ';\n } else {\n this.placeHolderLabel = (this.isSearchable && (this.multiple || !this.isPolymorphic)) ? 'Search ' : '';\n }\n this.placeHolderLabel += this.searchResourceType.resourceType ? this.searchResourceType.resourceType : this.searchResourceTypesScope;\n }\n\n private keydown = (event) => {\n switch (event.key) {\n case 'ArrowDown': {\n this.showDropdown();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = 0;\n } else {\n this.activeSuggestionIndex++;\n if (this.activeSuggestionIndex >= (this.searchResults || this.suggestions).length) {\n this.activeSuggestionIndex = 0;\n }\n }\n this.ensureDropdownOptionIsVisible();\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n case 'ArrowUp': {\n this.showDropdown();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = (this.searchResults || this.suggestions).length - 1;\n } else {\n this.activeSuggestionIndex--;\n if (this.activeSuggestionIndex < 0) {\n this.activeSuggestionIndex = (this.searchResults || this.suggestions).length - 1;\n }\n }\n this.ensureDropdownOptionIsVisible();\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n case 'Space':\n case 'Enter': {\n if (typeof (this.activeSuggestionIndex) !== 'undefined') {\n event.preventDefault();\n event.stopPropagation();\n this.onSuggestionSelect(event, (this.searchResults || this.suggestions)[this.activeSuggestionIndex]);\n delete this.activeSuggestionIndex;\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n event.stopPropagation();\n this.dismissDropdown();\n break;\n }\n case 'Backspace': {\n if (!this.multiple && this.model) { // HPBR-8229\n event.preventDefault();\n event.stopPropagation();\n this.removeSelection();\n }\n break;\n }\n }\n };\n\n private buildExternalLink() {\n if (this.model) {\n if (this.model.externalLink) {\n this.externalLink = this.model.externalLink;\n } else if (this.metaContext.profiles[this.integrationCode.toUpperCase()]) {\n delete this.externalLink;\n this.metaMsgService.sendMessage(\n this.integrationCode.toUpperCase(),\n {\n action: 'buildExternalLink',\n integrationCode: this.integrationCode,\n ref: this.model,\n profile: this.metaContext.profiles[this.integrationCode.toUpperCase()]\n },\n (response) => {\n if (!response.error) {\n this.externalLink = response.externalLink;\n } else {\n console.warn('No external link support for', this.integrationCode, this.model.resourceType || this.model.type);\n }\n }\n );\n }\n } else {\n delete this.externalLink;\n }\n }\n\n private searchAutoSuggestions(params?) {\n let searchUrl = `/suggestions/${this.meta.name}/search`;\n if (this.meta.auto && this.meta.auto.search) {\n if (this.meta.auto.search.url) {\n searchUrl = this.meta.auto.search.url.replace(/\\${\\s*([\\w.]+)\\s*}/g, (match, key) => {\n if (params.hasOwnProperty(key)) {\n const val = params[key];\n delete params[key];\n return val;\n }\n return '';\n });\n }\n for (const p of Object.keys(params)) {\n searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}${encodeURIComponent(p)}=${encodeURIComponent(params[p])}`;\n }\n this.searching = true;\n this.resourceService.getByPath(searchUrl).subscribe((result) => {\n delete this.searching;\n if (result) {\n let suggestions;\n suggestions = result;\n if (this.meta.auto.search.extract) {\n suggestions = result[this.meta.auto.search.extract];\n }\n if (suggestions instanceof Array !== true) {\n suggestions = [suggestions];\n }\n const asyncSuggestions = [];\n suggestions.forEach((s) => {\n if (s && s.id && s.type) { // TOOD check the type is acceptable\n asyncSuggestions.push({\n id: s.id,\n label: s.label || `${s.type}#${s.id}`,\n type: s.type\n });\n }\n });\n if (asyncSuggestions.length) {\n if (asyncSuggestions.length === 1) {\n this.parent[this.meta.name] = asyncSuggestions[0];\n } else {\n delete this.asyncSuggestions;\n }\n }\n this.asyncSuggestions = asyncSuggestions;\n }\n }, () => {\n delete this.searching;\n });\n }\n }\n\n}","@if (preview && model && (!multiple || (multiple && model.length))) {\n <div class='vgip-meta-field-preview'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n @if (!multiple) {\n <div class='vgip-meta-field-value __gu' [ngClass]=\"{ 'has-external-link': externalLink || model.externalLink }\">\n <svg class=\"Vlt-icon Vlt-icon--smaller\" style='margin-top: -3px;'>\n <use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\" />\n </svg>\n {{model.label || model.id}} <span class='Vlt-grey'>({{model.type}})</span>\n </div>\n }\n @if (multiple) {\n <div class='vgip-meta-field-value __gu'>\n @for (m of (model || []); track m) {\n <span class='Vlt-badge Vlt-badge--app'>\n {{m.label || m.id || m}} @if (isPolymorphic) {\n <span class='Vlt-grey-dark'>({{m.type}})</span>\n }\n </span>\n }\n </div>\n }\n @if (externalLink && (model && !multiple)) {\n <a [href]='externalLink || model.externalLink' target='_blank' rel='noopener'\n class=\"Vlt-composite__append--icon preview\" aria-label='Open external'>\n <div class=\"Vlt-composite__icon\">\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\" />\n </svg>\n </div>\n </a>\n }\n</div>\n}\n@if (!preview) {\n <div class=\"meta-field-reference Vlt-form__element Vlt-form__element--big\"\n [ngClass]=\"{ 'Vlt-form__element--error': (searchError && keyListenerActive) || (f.invalid && ((f | metaModel)._parent.submitted || (ft | metaModel ).touched)), 'multiple': multiple, 'has-value': model, active: keyListenerActive }\">\n @if (multiple) {\n <div class='items-container' [ngClass]='{ creatable: isCreatable }'>\n @if (model) {\n <div class='badges-container keep-focus' (click)='focus()' style='width: 100%;'> <!-- eslint-disable-line -->\n @for (item of model; track item) {\n <div class=\"Vlt-badge Vlt-badge--transparent Vlt-badge--app Vlt-badge--large keep-focus\" [ngClass]=\"{ grid: (item.label || item.id || '').length > 56}\">\n <span class='Vlt-truncate'>{{item.label || item.id || item }} @if (isPolymorphic) {\n <span class='Vlt-grey-darker' style='font-weight: normal;'>({{item.type}})</span>\n }</span>\n <button class=\"Vlt-badge__dismiss keep-focus\" (click)='remove($event, item)' style='position: absolute; right: 12px; top: 8px;' aria-label='Remove'></button>\n </div>\n }\n </div>\n }\n </div>\n }\n <div class=\"Vlt-composite\">\n <div class='dropdown-wrapper Vlt-dropdown' style='width: 100%; position: absolute; top: 48px;'>\n <div class=\"Vlt-dropdown__panel\">\n @if (searchError) {\n <div>\n <div class=\"Vlt-callout Vlt-callout--critical keep-focus\">\n <i></i>\n <div class=\"Vlt-callout__content\">{{searchError}}</div>\n </div>\n </div>\n }\n @if (!searchError && (suggestions.length || searchResults)) {\n <div [ngClass]=\"{ suggestions: !searchResults}\"\n class=\"Vlt-dropdown__panel__content Vlt-dropdown__panel__content--scroll-area\" style='padding: 0;'>\n <div class=\"Vlt-dropdown__block\"></div>\n @if (!searchResults) {\n <div class=\"Vlt-dropdown__scroll\">\n @for (suggestion of suggestions; track suggestion; let i = $index) {\n <a href='#' [ngClass]=\"{ 'Vlt-dropdown__link--selected': activeSuggestionIndex === i, smart: suggestion.smart }\" (click)='onSuggestionSelect($event, suggestion)' class=\"Vlt-dropdown__link has-type\">\n <svg class='Vlt-icon Vlt-icon--small'><use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\"/></svg>\n <div class='__gu' [title]='suggestion.label'>{{ suggestion.label }}</div>\n <small class='Vlt-grey-dark' style='text-transform: capitalize;'>{{suggestion.type}}</small>\n </a>\n }\n </div>\n }\n @if (searchResults) {\n <div class=\"Vlt-dropdown__scroll\">\n @if (!searchResults.length) {\n <div class='Vlt-dropdown__block'> No records matching '<b style='pointer-events: none;'>{{searchText}}</b>' were found.</div>\n }\n @for (suggestion of searchResults; track suggestion; let i = $index) {\n <a href='#' [ngClass]=\"{ 'Vlt-dropdown__link--selected': activeSuggestionIndex === i }\" (click)='onSuggestionSelect($event, suggestion)' class=\"Vlt-dropdown__link has-type\">\n <svg class='Vlt-icon Vlt-icon--small'><use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\"/></svg>\n <div class='__gu' [title]='suggestion.label'>{{ suggestion.label }}</div>\n <small class='Vlt-grey-dark' style='text-transform: capitalize;'>{{suggestion.type}}</small>\n </a>\n }\n </div>\n }\n <!-- <div *ngIf='searchResults' class=\"Vlt-dropdown__block\" style='text-align: right; padding-top: 0;'>\n <small>\n {{ searchResults ? searchResults.length+' results' : 'Suggestions' }} <span style='font-style: italic; font-weight: normal;' *ngIf='searchResults'>~{{ model ? 'last search' : searchText}}</span>\n </small>\n </div> -->\n <div class=\"Vlt-dropdown__block\"></div>\n </div>\n }\n </div>\n </div>\n @if (isPolymorphic && showTypes && (multiple || !model || (dropdownVisible && ((suggestions || searchResults || []).length || searchResourceType.resourceType)))) {\n <div class=\"Vlt-composite__prepend\"\n >\n <div class=\"search-scope\" [ngClass]=\"{ 'has-value': searchResourceType.resourceType }\">\n <vgip-meta-field class='shown' [meta]='searchResourceTypeMeta' [parent]='searchResourceType'\n (onChange)='onSearchResourceTypeChanged($event)' (onLeave)='onBlur($event)'\n [integrationCode]='integrationCode' theme='inherit'></vgip-meta-field>\n <svg class='Vlt-icon Vlt-grey Vlt-icon--smaller visible-mobile mobile-icon'\n style='position: absolute; top: 15px; left: 14px; pointer-events: none;'>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-menu\" />\n </svg>\n </div>\n </div>\n }\n @if (!(isPolymorphic && showTypes && (multiple || !model || dropdownVisible))) {\n <div>\n <!-- required by css -->\n </div>\n }\n <div class=\"Vlt-composite__wrapper Vlt-input\" style='overflow: hidden;'\n [ngClass]=\"{ 'has-append-button': hasAppendButton && !disabled, 'vgip-disable': disabled }\">\n <label class='wrapper'>\n <div class=\"Vlt-composite__prepend Vlt-composite__prepend--icon\" style='top: 0; padding-top: 15px;'>\n <div class=\"Vlt-composite__icon\">\n @if (isSearchable && (!model || multiple)) {\n <svg class='Vlt-grey'>\n <use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-{{ multiple ? 'stack' : 'search'}}\" />\n </svg>\n }\n @if (!isSearchable || (model && !multiple)) {\n <svg\n [ngStyle]=\"{fill: integrationIcon === 'Brand-icon-vonage' ? 'var(--vgip-meta-input-color)' : ''}\">\n <use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\" />\n </svg>\n }\n </div>\n @if (suggestions.length) {\n <div class=\"Vlt-badge Vlt-badge--small Vlt-badge--purple\"\n style='padding: 0px 4px; position: absolute; top: 26px; left: 4px; pointer-events: none; min-width: 14px;'>\n {{suggestions.length}}</div>\n }\n </div>\n <input class='model' type='hidden' [required]='validations.required' [(ngModel)]='model' #f='ngModel' [name]='name' />\n <input class='main' [readonly]='!isSearchable || (model && !multiple)' [ngModel]='searchText' #ft='ngModel' (ngModelChange)='onSearchTextChanged($event)' [ngModelOptions]=\"{standalone: true}\" type=\"text\" placeholder=\"{{ placeHolderLabel || ' ' }}\" [ngClass]='{ ext: externalLink }' (click)='onActivated($event)' (focus)='onActivated($event)' (blur)='onBlur($event)' [disabled]='disabled' [title]=\"model ? model.label : ''\"/>\n <label class='Vlt-truncate hidden-mobile' style='padding-left: 25px; padding-right: 42px;'> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control-->\n {{ (multiple && isPolymorphic) ? '+Add ' : ((model || !isPolymorphic) ? meta.label : ( meta.searchLabel || 'Search')) }}\n @if (validations.required) {\n <span class='Vlt-red'>*</span>\n }\n &nbsp;\n @if (model) {\n <span style='color: var(--vgip-meta-input-color); text-transform: capitalize;'>({{model.type || model.resourceType || model.length}})</span>\n }\n </label>\n <label class='Vlt-truncate hidden-desktop' style='padding-left: 25px; padding-right: 42px;'> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control-->\n {{meta.label || meta.name}}\n @if (validations.required) {\n <span class='Vlt-red'>*</span>\n }\n &nbsp;\n @if (model) {\n <span style='color: var(--vgip-meta-input-color); text-transform: capitalize;'>({{model.type || model.resourceType || model.length}})</span>\n }\n </label>\n </label>\n @if (searching) {\n <div class='search-progress'>\n <div class=\"container\">\n <div class=\"bar Vlt-bg-purple\"></div>\n </div>\n </div>\n }\n <div class='Vlt-composite__append right-actions'>\n <!-- <div *ngIf='prevModel && !model' class=\"Vlt-composite__append--icon\" (click)='revert()'>\n <div class=\"Vlt-composite__icon\">\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-reply\"/></svg>\n </div>\n </div> -->\n @if (model && !multiple) {\n <a href='#' class=\"Vlt-composite__append--icon\" (click)='removeSelection($event)'>\n <div class=\"Vlt-composite__icon\">\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\" />\n </svg>\n </div>\n </a>\n }\n @if (externalLink && (model && !multiple)) {\n <a [href]='externalLink || model.externalLink' target='_blank' rel='noopener' class=\"Vlt-composite__append--icon\" aria-label='Open external'>\n <div class=\"Vlt-composite__icon\">\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\" />\n </svg>\n </div>\n </a>\n }\n </div>\n </div>\n <!-- <span *ngIf='hasCreatables'>\n <button type='button' *ngIf='!model || multiple' (click)='openResource()' class=\"Vlt-btn Vlt-btn--secondary Vlt-btn--icon Vlt-btn--large\" style='margin-left: 12px;'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>\n </button>\n <button type='button' *ngIf='model && !multiple' (click)='openResource(model)' class=\"Vlt-btn Vlt-btn--primary Vlt-btn--icon Vlt-btn--large\" style='margin-left: 12px;'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-edit\"/></svg>\n </button>\n</span> -->\n@if (hasAppendButton && !disabled) {\n <div class=\"Vlt-composite__append\">\n @if (!model || multiple) {\n <button (focus)='onActivated($event)' (blur)='onBlur($event)' type='button'\n (click)='openResource()' class=\"Vlt-btn Vlt-btn--white Vlt-btn--icon\" aria-label='Add new' [disabled]='delegate'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\" />\n </svg>\n </button>\n }\n @if (model && !multiple) {\n <button (focus)='onActivated($event)' (blur)='onBlur($event)' type='button'\n (click)='openResource(model)' class=\"Vlt-btn Vlt-btn--white Vlt-btn--icon\" aria-label='Edit' [disabled]='delegate'>\n <svg>\n <use xlink:href=\"volta/volta-icons.svg#Vlt-icon-edit\" />\n </svg>\n </button>\n }\n </div>\n}\n</div>\n@if (f.invalid && ((f | metaModel)._parent.submitted || ((ft | metaModel).touched && keyListenerActive))) {\n <small\n class=\"Vlt-form__element__error\">\n @if (f.errors.required) {\n <span>Required</span>\n }\n @if (f.errors.pattern) {\n <span>Should match '{{validations.pattern}}' pattern</span>\n }\n @if (f.errors.custom) {\n <span>{{f.errors.custom}}&nbsp;</span>\n }\n </small>\n}\n@if (meta.helpText || meta.hint) {\n <small class=\"Vlt-form__element__hint\">{{meta.helpText || meta.hint}}</small>\n}\n</div>\n}\n","import { Component, OnInit, DoCheck } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n standalone: false\n})\nexport class FieldComposite extends FieldAbstract implements OnInit, DoCheck {\n // @Input() meta: any;\n // @Input() parent: any;\n value: any;\n private invisible;\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 ngOnInit() {\n // super.ngOnInit()\n let nestedFieldsRegex: RegExp;\n if (this.meta.name === `composite_${this.meta.label}`) {\n delete this.meta.name; // revisit VGIS-5059, there are composite containes without name on purpose\n }\n if (this.meta.name) {\n this.scope += `${this.meta.name}_`;\n this.value = this.parent[this.meta.name] || {};\n nestedFieldsRegex = new RegExp(`^${this.meta.name}\\\\.(.*)`);\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (value) {\n for (const v of Object.keys(value)) {\n this.value[v] = value[v];\n }\n }\n },\n get: () => {\n if (JSON.stringify(this.value) !== '{}') {\n return this.value;\n }\n },\n enumerable: this.sendToServer,\n configurable: true\n });\n for (const f of this.meta.fields) {\n if (this.isRow) {\n if (f.type === 'text') {\n f.type = 'string';\n }\n }\n const nestedFieldMatch = (f.name || '').match(nestedFieldsRegex);\n if (nestedFieldMatch) {\n f.name = nestedFieldMatch[1]; // for VGIS V2 backward compatibility normalize name with dotted syntax\n }\n }\n } else {\n this.value = this.parent;\n }\n }\n\n ngDoCheck(): void {\n if (typeof (this.invisible) !== 'undefined') {\n if (this.invisible !== this.meta.$invisible) {\n if (this.meta.$invisible === false) {\n if (typeof (this.meta.name) !== 'undefined') {\n this.parent[this.meta.name] = this.value;\n }\n }\n this.invisible = this.meta.$invisible;\n }\n } else {\n this.invisible = this.meta.$invisible;\n }\n }\n\n onValueChange(): void {\n this.onChange.emit(this.value);\n }\n\n}\n","<div [ngClass]=\"{ 'Vlt-grid Vlt-grid--narrow': isRow }\">\n @for (field of fields; track field) {\n @if (!field.$hidden && !field.$invisible) {\n <div style='margin: 0;' [ngClass]=\"{ 'Vlt-col': isRow, 'Vlt-col--1of3': isRow && fields.length > 3 }\">\n @if (!meta.$invisible) {\n <vgip-meta-field [ngClass]=\"{ shown: !field.$invisible}\" [index]='index' [scope]='scope' [meta]='field'\n [parent]='value' [integrationCode]='integrationCode' [resourceType]='resourceType' [preview]='preview' (onChange)='onValueChange()'\n theme='inherit'></vgip-meta-field>\n }\n </div>\n }\n }\n</div>\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, 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 standalone: false\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.onModelChange(this.meta.default);\n }, 0);\n }\n }\n\n onOptionChange() {\n this.onModelChange(this.model);\n }\n}\n","@if (preview && model) {\n <div class='vgip-meta-field-preview'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>\n {{ model ? '✔' : '✘'}}\n </div>\n </div>\n}\n@if (!preview) {\n <div class=\"Vlt-form__element\" [ngClass]=\"{ 'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched) }\">\n <input class='model' type='hidden' [required]='validations.required' [(ngModel)]='model' #f='ngModel' [name]='name' />\n @if (meta.subtype === 'switch') {\n <div class=\"Vlt-switch\">\n <label style='vertical-align: middle;'>\n <input class='model' type=\"checkbox\" [(ngModel)]='model' (change)='onOptionChange()' [name]='name'/>\n <span class=\"Vlt-switch__slider\"></span>\n <span style='margin-left: 60px; line-height: 30px; white-space: nowrap;'>{{meta.label || meta.name}}</span>\n </label>\n </div>\n }\n @if (meta.subtype !== 'switch') {\n <div class=\"Vlt-checkbox\">\n <label style='cursor: pointer;'>\n <span class=\"Vlt-checkbox__button\">\n <input class='model' type=\"checkbox\" [(ngModel)]='model' (change)='onOptionChange()' [name]='name'/>\n <span class=\"Vlt-checkbox__icon\"></span>\n </span>\n {{meta.label || meta.name}}\n </label>\n </div>\n }\n @if (f.invalid && ((f | metaModel)._parent.submitted || ((f | metaModel ).touched))) {\n <small class=\"Vlt-form__element__error\">\n @if (f.errors.required) {\n <span>Required</span>\n }\n @if (f.errors.custom) {\n <span>{{f.errors.custom}}&nbsp;</span>\n }\n </small>\n }\n @if (meta.hint) {\n <small class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n }\n </div>\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, 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 standalone: false\n})\n\nexport class FieldRadio extends FieldAbstract implements OnInit {\n // @Input() meta: any;\n value: any;\n\n get options() {\n return this.meta.options || this.meta.picklist;\n }\n\n ngOnInit() {\n this.validationAttributes = ['required'];\n const origValue = this.parent[this.meta.name];\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (value) {\n for (const o of this.options) {\n if ((value.id || value) === (o.id || o.value || o.name || o)) {\n this.model = o;\n this.value = this.modelToValue(o, this.meta.valueType);\n break;\n }\n }\n } else {\n delete this.model;\n delete this.value;\n }\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n\n if (origValue) {\n this.parent[this.meta.name] = origValue;\n }\n\n if (this.default && !this.model) {\n setTimeout(() => {\n this.parent[this.meta.name] = this.meta.valueType === 'object' ? this.default : (this.default.id || this.default);\n setTimeout(() => {\n this.onModelChange(this.model);\n }, 0);\n }, 0);\n }\n }\n\n onOptionChange(model) {\n this.model = model;\n this.onModelChange(this.model);\n }\n\n onActivated(ev) {\n if (!this.keyListenerActive) {\n ev.srcElement.addEventListener('keydown', this.keydown);\n }\n }\n\n onBlur(ev) {\n if (this.keyListenerActive) {\n ev.srcElement.removeEventListener('keydown', this.keydown);\n }\n }\n\n private keydown = (event) => {\n switch (event.key) {\n case 'Backspace': {\n event.preventDefault();\n event.stopPropagation();\n this.clear();\n break;\n }\n }\n };\n}\n","@if (preview && model) {\n <div class='vgip-meta-field-preview'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>\n {{ model.label || model }}\n </div>\n </div>\n}\n@if (!preview) {\n <div class=\"Vlt-form__element\" [ngClass]=\"{ 'Vlt-form__element--error': f && f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched) }\">\n <label class=\"Vlt-label\"> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control -->\n {{meta.label || meta.name}}\n @if (validations.required) {\n <span class='Vlt-red'>*</span>\n }\n </label>\n <input class='model' type='hidden' [required]='validations.required' [(ngModel)]='model' #f='ngModel' [name]='name' />\n @for (option of options; track option) {\n <fieldset class=\"Vlt-radio Vlt-radio--inline\">\n <label style='cursor: pointer;'>\n <span class=\"Vlt-radio__button\">\n <input class='main' (change)='onOptionChange(option)' type=\"radio\" [checked]='option === model' [value]='option' [name]='name' (focus)='onActivated($event)' (blur)='onBlur($event)'/>\n <span class=\"Vlt-radio__icon\"></span>\n </span>\n <span style='white-space: nowrap;'>{{option.label || option}}</span>\n </label>\n </fieldset>\n }\n @if (f && f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched)) {\n <small class=\"Vlt-form__element__error\">\n @if (f.errors.required) {\n <span>Required.&nbsp;</span>\n }\n @if (f.errors.custom) {\n <span>{{f.errors.custom}}&nbsp;</span>\n }\n </small>\n }\n @if (meta.hint) {\n <small class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n }\n </div>\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\n@Component({\n templateUrl: './view.html',\n styleUrls: ['./style.scss'],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\n standalone: false\n})\nexport class FieldList extends FieldAbstract implements OnInit {\n items: Array<any> = [];\n value: any;\n\n get list() {\n return this.meta.list || this.meta.reference;\n }\n\n get cloneList() {\n return JSON.parse(JSON.stringify(this.list));\n }\n\n ngOnInit() {\n this.scope += (typeof(this.index) === 'undefined') ? `${this.meta.name}_` : `${this.meta.name}[${this.index}]_`;\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 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 this.onChange.emit(this.model);\n }\n\n remove(itemIndex) {\n this.model.splice(itemIndex, 1);\n this.value = this.model;\n this.onChange.emit(this.model);\n }\n\n onChildChange() {\n this.onChange.emit(this.model);\n }\n}\n","@if (true) {\n <div class=\"Vlt-form__element\" [ngClass]=\"{ 'Vlt-form__element--error': (f | metaModel)._parent.submitted && f.invalid }\">\n <label class=\"Vlt-label\"> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control -->\n {{meta.label || meta.name}} ({{(model || []).length}})\n @if (validations.required) {\n <span class='Vlt-red'>*</span>\n }\n </label>\n @if (meta.hint) {\n <small style='margin-bottom: 4px;' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n }\n <input class='model' type='hidden' [required]='validations.required' [(ngModel)]='model' #f='ngModel' [name]='name' />\n @if (model) {\n @for (item of model; track item; let i = $index) {\n <div style='display: flex; border-bottom: 1px solid var(--vgip-meta-separator-color);'>\n <vgip-meta-field style='flex: 1;' [index]='i' [scope]='scope' [meta]='cloneList' [parent]='item' [integrationCode]='integrationCode' [resourceType]='meta.resourceType || resourceType' theme='inherit' [preview]='preview' (onChange)='onChildChange()'></vgip-meta-field>\n @if (meta.selectable) {\n <vgip-meta-field [meta]=\"{ name: meta.selectable.name, label: ' ', type: 'radio', options: [ { id: meta.selectable.value, label: meta.selectable.label } ] }\" [parent]='item' [integrationCode]='integrationCode' theme='inherit' style='margin-left: 12px; margin-top: 12px; margin-right: -12px;' (onChange)='onChildChange()'></vgip-meta-field>\n }\n @if (!preview) {\n <div style='padding-left: 12px; margin-top: 3px;'>\n <button type='button' (click)='remove(i)' class=\"Vlt-btn Vlt-btn--link item-remove-button\" [disabled]='model.length === (validations.min || 0)' aria-label='Remove'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-bin\"/></svg>\n </button>\n </div>\n }\n </div>\n }\n }\n @if (!preview && (!validations.max || !model || model.length < validations.max)) {\n <button style='width: 100%;' type='button' (click)='add()' class=\"Vlt-btn Vlt-btn--small Vlt-btn--tertiary Vlt-btn--app Vlt-btn--no-focus item-add-button\" [disabled]='validations.max && model && model.length === validations.max'>\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>{{list.label}}\n </button>\n }\n @if ((f | metaModel)._parent.submitted && f.invalid) {\n <small class=\"Vlt-form__element__error\">\n @if (f.errors.required) {\n <span>Required</span>\n }\n @if (f.errors.maxlength) {\n <span>Length can not exceed {{validations.maxlength}} characters</span>\n }\n @if (f.errors.custom) {\n <span>{{f.errors.custom}}&nbsp;</span>\n }\n </small>\n }\n @if (meta.helpText) {\n <small class=\"Vlt-form__element__hint\">{{meta.helpText}}</small>\n }\n </div>\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, OnInit } from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\n// import { QUILL_CONFIG_TOKEN, QuillConfig } 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\n// export 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 standalone: false\n})\nexport class FieldRichtext extends FieldAbstract implements OnInit {\n // @Input() meta: any;\n active: boolean;\n quillConfigModules = {\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 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","@if (preview && parent[meta.name]) {\n <div class='vgip-meta-field-preview'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>{{parent[meta.name]}}</div>\n </div>\n}\n@if (!preview) {\n <div class=\"Vlt-form__element\" [ngClass]=\"{ 'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (fq | metaModel).touched) }\">\n <label class=\"Vlt-label\"> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control-->\n {{meta.label || meta.name}}\n @if (validations.required) {\n <span class='Vlt-red'>*</span>\n }\n </label>\n <div class=\"Vlt-textarea\" [ngClass]='{ active: active }'>\n <input type='hidden' class='main model' [required]='validations.required' [minlength]='validations.minlength' [maxlength]='validations.maxlength' [(ngModel)]='parent[meta.name]' #f='ngModel' [name]='name'/>\n <quill-editor (onFocus)='active = true' (onBlur)='active = false' class='main model' [(ngModel)]='parent[meta.name]' #fq='ngModel' (ngModelChange)=\"onModelChangeLocal($event)\" [ngModelOptions]='{ standalone: true }' placeholder=' ' [modules]=\"quillConfigModules\"></quill-editor>\n </div>\n @if (f.invalid && ((f | metaModel)._parent.submitted || (fq | metaModel).touched)) {\n <small class=\"Vlt-form__element__error\">\n @if (f.errors.required) {\n <span>Required</span>\n }\n @if (f.errors.maxlength) {\n <span>Length can not exceed {{validations.maxlength}} characters</span>\n }\n @if (f.errors.custom) {\n <span>{{f.errors.custom}}&nbsp;</span>\n }\n </small>\n }\n @if (meta.helpText) {\n <small class=\"Vlt-form__element__hint\">{{meta.helpText}}</small>\n }\n </div>\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 } 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 standalone: false\n})\nexport class FieldDatetime extends FieldAbstract implements OnInit {\n input: any;\n dropdown: any;\n activeSuggestionIndex: number;\n value: any;\n type: string;\n placeholder = 'dd/mm/yyyy';\n\n get suggestions() {\n return this.meta.suggestions || [];\n }\n\n ngOnInit() {\n this.validationAttributes = ['required', 'min', 'max', 'step'];\n this.type = this.meta.type;\n if (this.meta.type === 'datetime') {\n this.type = 'datetime-local';\n this.placeholder += ' --:-- --';\n } else if (this.meta.type === 'time') {\n this.placeholder = '--:-- --';\n }\n const origValue = this.parent[this.meta.name];\n Object.defineProperty(this.parent, this.meta.name, {\n set: (value) => {\n if (value) {\n if (['datetime', 'date', 'datetime-local'].indexOf(this.meta.type || this.meta.subtype) !== -1 && value) {\n try {\n let date: Date;\n if ((typeof (value) === 'number')) {\n date = new Date(parseInt(value as any, 10));\n if ('date' === (this.meta.type || this.meta.subtype)) {\n date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\n }\n } else {\n if ('date' === (this.meta.type || this.meta.subtype)) {\n date = new Date(Date.parse(value));\n } else {\n date = new Date(Date.parse(`${value}Z`) + (new Date().getTimezoneOffset() * 60000));\n }\n }\n 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 if (this.meta.valueType === 'isostring') {\n this.value = date.toISOString();\n } else if (this.meta.valueType === 'string') {\n if ((this.meta.type || this.meta.subtype) === 'date') {\n this.value = date.toISOString().split('T')[0];\n } else {\n this.value = date.toISOString();\n }\n } else {\n if ((this.meta.type || this.meta.subtype) === 'date') {\n date.setFullYear(date.getUTCFullYear());\n date.setMonth(date.getUTCMonth());\n date.setDate(date.getUTCDate());\n date.setMinutes(0);\n date.setHours(0);\n date.setSeconds(0);\n date.setMilliseconds(0);\n this.value = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).getTime();\n } else {\n this.value = date.getTime();\n }\n }\n } catch (e) {\n console.error('Date parse error', e.message, `\"${value}\"`, `(${typeof (value)})`);\n }\n } else if ('time' === (this.meta.type || this.meta.subtype)) {\n try {\n let date: Date;\n if (typeof (value) === 'number') {\n date = new Date(parseInt(value as any, 10));\n if (value < 86400000) {\n date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\n }\n } else {\n date = new Date(\n Date.parse(new Date().toISOString().replace(/T.*Z/, `T${value}Z`)) + (new Date().getTimezoneOffset() * 60000)\n );\n }\n this.model = date.toTimeString().split(' ')[0];\n if (this.meta.valueType === 'isostring') {\n this.value = date.toISOString();\n } else {\n date.setFullYear(1970);\n date.setMonth(0);\n date.setDate(1);\n date.setMilliseconds(0);\n if (this.meta.valueType === 'string') {\n this.value = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toISOString().split('T')[1].substring(0,8);\n } else {\n this.value = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).getTime();\n }\n }\n } catch (e) {\n console.error('Date parse error', e.message, `\"${value}\"`, `(${typeof (value)})`);\n }\n }\n } else {\n delete this.model;\n delete this.value;\n }\n this.meta.$optional = this.isOptional;\n },\n get: () => this.value,\n enumerable: this.sendToServer,\n configurable: true\n });\n if (typeof(origValue) !== 'undefined') {\n this.parent[this.meta.name] = origValue;\n }\n const d = this.meta.default || this.meta.defaultValue;\n if (d && typeof(this.model) === 'undefined') {\n const defaultValue = ((typeof (d) === 'string') || (typeof (d) === 'number')) ? 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, .Vlt-modal__content');\n if (holder) {\n const el = this.elementRef.nativeElement.querySelector('.Vlt-dropdown__panel');\n const elRect = el.getBoundingClientRect();\n const holderRect = holder.getBoundingClientRect();\n if (holderRect.top + holderRect.height < elRect.top + elRect.height) {\n el.scrollIntoView({ block: 'end' });\n }\n }\n }, 400);\n }\n\n private showDropdown() {\n if (this.meta.suggestions?.length) {\n this.dropdown.classList.add('Vlt-dropdown--expanded');\n this.ensureDropdownIsVisible();\n }\n if (!this.keyListenerActive) {\n this.input.addEventListener('keydown', this.keydown);\n setTimeout(() => {\n document.addEventListener('click', this.clickout);\n }, 200);\n this.keyListenerActive = true;\n if (this.parent[this.meta.name]) {\n for (let suggestionIndex = 0; suggestionIndex < (this.meta.suggestions || []).length; suggestionIndex++) {\n if (this.meta.suggestions[suggestionIndex] === this.parent[this.meta.name]) {\n this.activeSuggestionIndex = suggestionIndex;\n }\n }\n }\n }\n }\n\n private clickout = (event) => {\n if (event.target.className === 'Vlt-dropdown__link' && this.elementRef.nativeElement.contains(event.target)) {\n this.focus();\n // this.dismissDropdown();\n // this.parent[this.meta.name] = event.target.textContent;\n\n } else if (event.target !== this.input && event.target.className !== 'Vlt-dropdown__title') {\n this.dismissDropdown();\n } else {\n this.focus();\n }\n };\n\n private keydown = (event) => {\n switch (event.key) {\n case 'ArrowDown': {\n if (['datetime', 'time', 'date', 'datetime-local'].indexOf(this.meta.type || this.meta.subtype) !== -1) {\n break;\n }\n this.showDropdown();\n event.preventDefault();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = 0;\n } else {\n this.activeSuggestionIndex++;\n if (this.activeSuggestionIndex >= this.suggestions.length) {\n this.activeSuggestionIndex = 0;\n }\n }\n break;\n }\n case 'ArrowUp': {\n if (['datetime', 'time', 'date', 'datetime-local'].indexOf(this.meta.type || this.meta.subtype) !== -1) {\n break;\n }\n this.showDropdown();\n event.preventDefault();\n if (typeof (this.activeSuggestionIndex) === 'undefined') {\n this.activeSuggestionIndex = this.suggestions.length - 1;\n } else {\n this.activeSuggestionIndex--;\n if (this.activeSuggestionIndex < 0) {\n this.activeSuggestionIndex = this.suggestions.length - 1;\n }\n }\n break;\n }\n case 'Space':\n case 'Enter': {\n if (typeof (this.activeSuggestionIndex) !== 'undefined') {\n event.preventDefault();\n event.stopPropagation();\n this.onSuggestionSelect(event, this.suggestions[this.activeSuggestionIndex]);\n delete this.activeSuggestionIndex;\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n event.stopPropagation();\n this.dismissDropdown();\n break;\n }\n }\n };\n\n\n private autoSetValue(againstTimestamp, v, cfg) {\n const compareValue = relativeTimeBuilder(this.meta.type, cfg.offset, this.validations.step, againstTimestamp);\n if (this.model) {\n const currentValue = new Date(this.model).getTime();\n let isInvalid: boolean;\n if (v === 'gt') {\n isInvalid = compareValue > currentValue;\n } else if (v === 'lt') {\n isInvalid = currentValue > compareValue;\n }\n if (isInvalid) {\n this.parent[this.meta.name] = compareValue;\n }\n } else {\n this.parent[this.meta.name] = compareValue;\n }\n }\n\n private setupLogicalValidation(v: string) {\n const cfg = this.meta.auto[v];\n if (typeof(cfg.against) === 'string') {\n let againstValue = this.parent[cfg.against];\n try {\n let againstTimestamp = Date.parse(`${againstValue}Z`) + (new Date().getTimezoneOffset() * 60000);\n if (againstValue) {\n this.autoSetValue(againstTimestamp, v, cfg);\n }\n this.parentChangeSubject.subscribe((value) => {\n if (value && value.hasOwnProperty(cfg.against)) {\n againstValue = value[cfg.against];\n if (againstValue) {\n againstTimestamp = Date.parse(`${againstValue}Z`) + (new Date().getTimezoneOffset() * 60000);\n this.autoSetValue(againstTimestamp, v, cfg);\n }\n }\n });\n } catch (e) {\n if ((window as any).scDebug) console.error(e);\n }\n }\n }\n}\n","@if (preview && model) {\n <div class='vgip-meta-field-preview'>\n <div class='vgip-meta-field-label' [title]='meta.label || meta.name'>{{meta.label || meta.name}}</div>\n <div class='vgip-meta-field-value __gu'>{{model}}</div>\n </div>\n}\n@if (!preview) {\n <div class=\"Vlt-form__element Vlt-form__element--big\" [ngClass]=\"{'Vlt-form__element--error': f.invalid && ((f | metaModel)._parent.submitted || (f | metaModel ).touched), 'has-value': f.value, active: keyListenerActive }\">\n <div class=\"Vlt-input\" [ngClass]=\"{'vgip-disable': disabled}\">\n <label class='wrapper'>\n <input class='main model' [pattern]=\"validations.pattern ? validations.pattern.value || validations.pattern : null\" [required]='validations.required' [minlength]='validations.minlength' [maxlength]='validations.maxlength' [min]='validations.min' [max]='validations.max' [step]='validations.step' [disabled]='disabled' [readonly]='readonly' [(ngModel)]='model' (ngModelChange)=\"onModelChange($event)\" #f='ngModel' [name]='name' [type]=\"type\" [placeholder]=\"placeholder\" (click)='onActivated($event)' (focus)='onActivated($event)' (blur)='onBlur($event)'/>\n <label class='Vlt-truncate'> <!-- eslint-disable-line @angular-eslint/template/label-has-associated-control -->\n {{meta.label || meta.name}}\n @if (validations.required) {\n <span class='Vlt-red'>*</span>\n }\n </label>\n </label>\n <div class='Vlt-composite__append right-actions'>\n @if (model) {\n <a href='#' class=\"Vlt-composite__append--icon\" (click)='clear($event)' tabindex='0'>\n <div class=\"Vlt-composite__icon\">\n <svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\"/></svg>\n </div>\n </a>\n }\n </div>\n </div>\n @if (f.invalid && ((f | metaModel)._parent.submitted || ((f | metaModel ).touched && keyListenerActive))) {\n <small class=\"Vlt-form__element__error\">\n @if (f.errors.required) {\n <span>Required.&nbsp;</span>\n }\n @if (f.errors.min) {\n <span>Must be later than {{validations.min}}.&nbsp;</span>\n }\n @if (f.errors.max) {\n <span>Must be no later than {{validations}}.&nbsp;</span>\n }\n @if (f.errors.custom) {\n <span>{{f.errors.custom}}&nbsp;</span>\n }\n </small>\n }\n @if (meta.hint) {\n <small class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n }\n </div>\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 } from '@angular/core';\nimport { FieldAbstract } from '../fieldAbstract';\n\n@Component({\n templateUrl: './view.html',\n standalone: false\n})\nexport class FieldHidden extends FieldAbstract {}\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 standalone: false\n})\nexport class MetaIconsPipe implements PipeTransform {\n\n constructor(protected sanitizer: DomSanitizer) { }\n\n transform(value: any): any {\n if (typeof(value) === 'string') {\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 value; //this.sanitizer.bypassSecurityTrustHtml(value);\n }\n }\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 standalone: false\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: 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, 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, 3);\n req.onupgradeneeded = (ev: any) => {\n self.db = ev.target.result;\n if (!self.db.objectStoreNames.contains('Draft')) {\n this.createDraftStore();\n }\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, callback: (err, result?) => void) {\n const self = this;\n this._getDb((err) => { // eslint-disable-line no-underscore-dangle\n if (typeof(callback) === 'function') {\n if (err) {\n return callback(err);\n } else if (!self.db.objectStoreNames.contains(collectionName)) {\n return callback(new Error(`IDBDatabase store ${collectionName} does not exist!`));\n } else {\n callback(null, self.db);\n }\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 = () => {\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 private createDraftStore() {\n const objectStore = this.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}\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 COLLECTION = '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(COLLECTION, (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 cb([]);\n }\n\n save(integrationCode, resourceType, draft, cb?: (err, draft?: IDraft) => void) {\n const now = new Date().getTime();\n this.store.save(COLLECTION, {\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(COLLECTION, {\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(COLLECTION, params, null, cb);\n }\n\n findById(draftId, cb?: (err, drafts?: IDraft) => void) {\n this.store.findById(COLLECTION, draftId, cb);\n }\n\n destroyDraft(draft, cb?: (err, drafts?: IDraft) => void) {\n if (draft?.id) {\n this.store.destroyById(COLLECTION, 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 { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\n\nimport { QuillModule } from 'ngx-quill';\n\nimport { MetaRefDialog } from './refDialog';\n\nimport { MetaLayout } from './layout';\n\nimport { MetaResource } from './resource';\n\nimport { MetaResourceCard } from './resourceCard';\n\nimport { FieldUnknown } from './fieldUnknown';\nimport { FieldInput } from './fieldInput';\nimport { FieldText } from './fieldText';\n\nimport { FieldSelect } from './fieldSelect';\n\nimport { FieldReference } from './fieldReference';\n\nimport { FieldComposite } from './fieldComposite';\n\nimport { FieldBoolean } from './fieldBoolean';\nimport { FieldRadio } from './fieldRadio';\n\nimport { FieldList } from './fieldList';\n\nimport { FieldRichtext } from './fieldRichtext';\nimport { FieldDatetime } from './fieldDatetime';\n\nimport { FieldHidden } from './fieldHidden';\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';\nimport { MetaField, MetaFieldContentDirective } from './metaField';\n\nexport * from './common/utils/colorThemes';\nexport * from './common/metaNormalizer';\n\n@NgModule({ 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 FieldHidden,\n MetaAutofocusDirective\n ],\n exports: [\n MetaIconsPipe,\n MetaModelPipe,\n MetaStripHtmlPipe,\n MetaField,\n MetaLayout,\n MetaResource,\n MetaResourceCard,\n MetaAutofocusDirective\n ], imports: [CommonModule,\n FormsModule,\n ReactiveFormsModule,\n QuillModule.forRoot()\n // QuillModule.forRoot({\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 ], providers: [provideHttpClient(withInterceptorsFromDi())] })\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, FieldHidden,\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":["i1.MetaHttpClient","i1.MetaContextService","i1","i1.MetaResourceService","i2.MetaReferenceService","i3.MetaMsgService","i4.MetaContextService","i5","i6.MetaField","i2.MetaContextService","i4","i6.MetaLayout","i7.MetaAutofocusDirective","i2.MetaResource","i3","i2","i4.MetaModelPipe","i1.MetaReferenceService","i2.MetaResourceService","i5.MetaModelPipe","i5.MetaTrackerService","i6","i7","i8.MetaField","i9.MetaModelPipe","i2.MetaField","i3.MetaModelPipe","i3.MetaField"],"mappings":"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"}