@vgip/meta-ui 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/README.md +2 -0
  2. package/bundles/vgip-meta-ui.umd.js +6323 -0
  3. package/bundles/vgip-meta-ui.umd.js.map +1 -0
  4. package/esm2015/lib/common/fieldNormalizer/boolean.js +12 -0
  5. package/esm2015/lib/common/fieldNormalizer/datetime.js +9 -0
  6. package/esm2015/lib/common/fieldNormalizer/index.js +168 -0
  7. package/esm2015/lib/common/fieldNormalizer/number.js +9 -0
  8. package/esm2015/lib/common/fieldNormalizer/options.js +50 -0
  9. package/esm2015/lib/common/fieldNormalizer/radio.js +10 -0
  10. package/esm2015/lib/common/fieldNormalizer/reference.js +36 -0
  11. package/esm2015/lib/common/fieldNormalizer/richtext.js +15 -0
  12. package/esm2015/lib/common/fieldNormalizer/string.js +24 -0
  13. package/esm2015/lib/common/fieldNormalizer/text.js +15 -0
  14. package/esm2015/lib/common/fieldNormalizer/uniqueNameFilter.js +23 -0
  15. package/esm2015/lib/common/metaAutofocus.directive.js +35 -0
  16. package/esm2015/lib/common/metaIcons.pipe.js +28 -0
  17. package/esm2015/lib/common/metaModel.pipe.js +22 -0
  18. package/esm2015/lib/common/metaNormalizer.js +311 -0
  19. package/esm2015/lib/common/metaStripHtml.pipe.js +18 -0
  20. package/esm2015/lib/common/utils/colorThemes.js +77 -0
  21. package/esm2015/lib/common/utils/indexedDbStore/index.js +218 -0
  22. package/esm2015/lib/common/utils/relativeTimeBuilder.js +51 -0
  23. package/esm2015/lib/common/utils/templateBuilder.js +92 -0
  24. package/esm2015/lib/field.js +157 -0
  25. package/esm2015/lib/fieldAbstract.js +195 -0
  26. package/esm2015/lib/fieldBoolean/index.js +50 -0
  27. package/esm2015/lib/fieldComposite/index.js +41 -0
  28. package/esm2015/lib/fieldDatetime/index.js +334 -0
  29. package/esm2015/lib/fieldInput/index.js +421 -0
  30. package/esm2015/lib/fieldList/index.js +68 -0
  31. package/esm2015/lib/fieldRadio/index.js +85 -0
  32. package/esm2015/lib/fieldReference/index.js +797 -0
  33. package/esm2015/lib/fieldRichtext/index.js +82 -0
  34. package/esm2015/lib/fieldSelect/index.js +448 -0
  35. package/esm2015/lib/fieldText/index.js +66 -0
  36. package/esm2015/lib/fieldUnknown/index.js +16 -0
  37. package/esm2015/lib/index.js +105 -0
  38. package/esm2015/lib/layout/index.js +155 -0
  39. package/esm2015/lib/refDialog/index.js +134 -0
  40. package/esm2015/lib/resource/index.js +424 -0
  41. package/esm2015/lib/resourceCard/index.js +56 -0
  42. package/esm2015/lib/services/metaContext/index.js +34 -0
  43. package/esm2015/lib/services/metaMsg/index.js +86 -0
  44. package/esm2015/lib/services/metaReference/index.js +98 -0
  45. package/esm2015/lib/services/metaResource/index.js +141 -0
  46. package/esm2015/lib/services/metaResource/metaHttpClient.js +65 -0
  47. package/esm2015/lib/services/metaTracker/index.js +30 -0
  48. package/esm2015/lib/services/resourceDrafts/index.js +70 -0
  49. package/esm2015/public-api.js +5 -0
  50. package/esm2015/vgip-meta-ui.js +5 -0
  51. package/fesm2015/vgip-meta-ui.js +5226 -0
  52. package/fesm2015/vgip-meta-ui.js.map +1 -0
  53. package/lib/common/fieldNormalizer/boolean.d.ts +1 -0
  54. package/lib/common/fieldNormalizer/datetime.d.ts +1 -0
  55. package/lib/common/fieldNormalizer/index.d.ts +1 -0
  56. package/lib/common/fieldNormalizer/number.d.ts +1 -0
  57. package/lib/common/fieldNormalizer/options.d.ts +1 -0
  58. package/lib/common/fieldNormalizer/radio.d.ts +1 -0
  59. package/lib/common/fieldNormalizer/reference.d.ts +1 -0
  60. package/lib/common/fieldNormalizer/richtext.d.ts +1 -0
  61. package/lib/common/fieldNormalizer/string.d.ts +1 -0
  62. package/lib/common/fieldNormalizer/text.d.ts +1 -0
  63. package/lib/common/fieldNormalizer/uniqueNameFilter.d.ts +1 -0
  64. package/lib/common/metaAutofocus.directive.d.ts +7 -0
  65. package/lib/common/metaIcons.pipe.d.ts +7 -0
  66. package/lib/common/metaModel.pipe.d.ts +5 -0
  67. package/lib/common/metaNormalizer.d.ts +1 -0
  68. package/lib/common/metaStripHtml.pipe.d.ts +4 -0
  69. package/lib/common/utils/colorThemes.d.ts +8 -0
  70. package/lib/common/utils/indexedDbStore/index.d.ts +24 -0
  71. package/lib/common/utils/relativeTimeBuilder.d.ts +1 -0
  72. package/lib/common/utils/templateBuilder.d.ts +1 -0
  73. package/lib/field.d.ts +22 -0
  74. package/lib/fieldAbstract.d.ts +58 -0
  75. package/lib/fieldBoolean/index.d.ts +7 -0
  76. package/lib/fieldComposite/index.d.ts +8 -0
  77. package/lib/fieldDatetime/index.d.ts +23 -0
  78. package/lib/fieldInput/index.d.ts +28 -0
  79. package/lib/fieldList/index.d.ts +10 -0
  80. package/lib/fieldRadio/index.d.ts +12 -0
  81. package/lib/fieldReference/index.d.ts +68 -0
  82. package/lib/fieldRichtext/index.d.ts +27 -0
  83. package/lib/fieldSelect/index.d.ts +38 -0
  84. package/lib/fieldText/index.d.ts +12 -0
  85. package/lib/fieldUnknown/index.d.ts +3 -0
  86. package/lib/index.d.ts +35 -0
  87. package/lib/layout/index.d.ts +35 -0
  88. package/lib/refDialog/index.d.ts +30 -0
  89. package/lib/resource/index.d.ts +54 -0
  90. package/lib/resourceCard/index.d.ts +15 -0
  91. package/lib/services/metaContext/index.d.ts +23 -0
  92. package/lib/services/metaMsg/index.d.ts +11 -0
  93. package/lib/services/metaReference/index.d.ts +11 -0
  94. package/lib/services/metaResource/index.d.ts +28 -0
  95. package/lib/services/metaResource/metaHttpClient.d.ts +12 -0
  96. package/lib/services/metaTracker/index.d.ts +16 -0
  97. package/lib/services/resourceDrafts/index.d.ts +23 -0
  98. package/package.json +23 -0
  99. package/public-api.d.ts +1 -0
  100. package/vgip-meta-ui.d.ts +4 -0
  101. package/vgip-meta-ui.metadata.json +1 -0
@@ -0,0 +1,66 @@
1
+ /*
2
+ * @Author: Alexander.Vangelov@vonage.com
3
+ * @Date: 2019-09-19 17:35:13
4
+ * @Last Modified by: Alexander.Vangelov@vonage.com
5
+ * @Last Modified time: 2020-02-26 20:00:33
6
+ */
7
+ import { Component, Input } from '@angular/core';
8
+ import { ControlContainer, NgForm } from '@angular/forms';
9
+ import { FieldAbstract } from '../fieldAbstract';
10
+ // import { tMetaField } from '../../../metaTypes/tMetaField'
11
+ import { templateBuilder } from '../common/utils/templateBuilder';
12
+ import { MetaContextService } from '../services/metaContext';
13
+ export class FieldText extends FieldAbstract {
14
+ constructor(metaContext) {
15
+ super();
16
+ this.metaContext = metaContext;
17
+ }
18
+ static setup(instance, parent, meta) {
19
+ const d = meta.default || meta.defaultValue;
20
+ if (d && !parent[meta.name]) {
21
+ if (typeof (d) === 'string') {
22
+ parent[meta.name] = d;
23
+ }
24
+ else {
25
+ parent[meta.name] = d.id || d.value;
26
+ }
27
+ }
28
+ }
29
+ ngOnInit() {
30
+ if (typeof (this.parent[this.meta.name]) === 'string') {
31
+ this.parent[this.meta.name] = templateBuilder(this.metaContext, this.parent[this.meta.name]);
32
+ }
33
+ // if (this.default && !this.model) {
34
+ // setTimeout(()=>{
35
+ // if (typeof(this.default) == 'string') {
36
+ // this.parent[this.meta.name] = this.default;
37
+ // } else {
38
+ // this.parent[this.meta.name] = this.default.id || this.default.value;
39
+ // }
40
+ // }, 0);
41
+ // }
42
+ }
43
+ onModelChangeLocal(value) {
44
+ if (!value && this.prevModel && this.isPersistedParent) {
45
+ value = '';
46
+ }
47
+ this.onModelChange(value);
48
+ }
49
+ textToSpeech() {
50
+ this.focus();
51
+ }
52
+ }
53
+ FieldText.decorators = [
54
+ { type: Component, args: [{
55
+ template: "<div class='vgip-meta-field-preview' *ngIf='preview && parent[meta.name]'>\n <div class='vgip-meta-field-label'>{{meta.label}}</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)]='parent[meta.name]' (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}}<span *ngIf='validations.required' class='Vlt-red'>*</span></label>\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 </small>\n <small *ngIf='meta.helpText' class=\"Vlt-form__element__hint\">{{meta.helpText}}</small>\n</div>",
56
+ viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],
57
+ styles: [".Vlt-composite__append--icon{bottom:7px;right:16px;padding:3px;width:auto;height:auto;cursor:pointer}.Vlt-composite__append--icon:hover svg{fill:#2c2d30}.Vlt-form__element--big .Vlt-textarea .Vlt-label{right:18px;background:transparent}.Vlt-form__element--error textarea{border-color:#f25a6b;background:var(--vgip-meta-input-bg-color)}"]
58
+ },] }
59
+ ];
60
+ FieldText.ctorParameters = () => [
61
+ { type: MetaContextService }
62
+ ];
63
+ FieldText.propDecorators = {
64
+ meta: [{ type: Input }]
65
+ };
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXRhLXVpL3NyYy9saWIvZmllbGRUZXh0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCw2REFBNkQ7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBTzdELE1BQU0sT0FBTyxTQUFVLFNBQVEsYUFBYTtJQUcxQyxZQUFxQixXQUErQjtRQUNsRCxLQUFLLEVBQUUsQ0FBQztRQURXLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtJQUVwRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUk7UUFDakMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzQixJQUFJLE9BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLEVBQUU7Z0JBQzFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDO2FBQ3JDO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksT0FBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLFFBQVEsRUFBRTtZQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDOUY7UUFDRCxxQ0FBcUM7UUFDckMscUJBQXFCO1FBQ3JCLDhDQUE4QztRQUM5QyxvREFBb0Q7UUFDcEQsZUFBZTtRQUNmLDZFQUE2RTtRQUM3RSxRQUFRO1FBQ1IsV0FBVztRQUNYLElBQUk7SUFDTixDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBSztRQUN0QixJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3RELEtBQUssR0FBRyxFQUFFLENBQUM7U0FDWjtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDOzs7WUEvQ0YsU0FBUyxTQUFDO2dCQUNULCtoREFBMEI7Z0JBRTFCLGFBQWEsRUFBRSxDQUFFLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBRTs7YUFDdEU7OztZQU5RLGtCQUFrQjs7O21CQVF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIEBBdXRob3I6IEFsZXhhbmRlci5WYW5nZWxvdkB2b25hZ2UuY29tXG4gKiBARGF0ZTogMjAxOS0wOS0xOSAxNzozNToxM1xuICogQExhc3QgTW9kaWZpZWQgYnk6IEFsZXhhbmRlci5WYW5nZWxvdkB2b25hZ2UuY29tXG4gKiBATGFzdCBNb2RpZmllZCB0aW1lOiAyMDIwLTAyLTI2IDIwOjAwOjMzXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEZpZWxkQWJzdHJhY3QgfSBmcm9tICcuLi9maWVsZEFic3RyYWN0Jztcbi8vIGltcG9ydCB7IHRNZXRhRmllbGQgfSBmcm9tICcuLi8uLi8uLi9tZXRhVHlwZXMvdE1ldGFGaWVsZCdcbmltcG9ydCB7IHRlbXBsYXRlQnVpbGRlciB9IGZyb20gJy4uL2NvbW1vbi91dGlscy90ZW1wbGF0ZUJ1aWxkZXInO1xuaW1wb3J0IHsgTWV0YUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbWV0YUNvbnRleHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXcuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlLnNjc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogWyB7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBOZ0Zvcm0gfSBdXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkVGV4dCBleHRlbmRzIEZpZWxkQWJzdHJhY3QgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBtZXRhOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoIHByaXZhdGUgbWV0YUNvbnRleHQ6IE1ldGFDb250ZXh0U2VydmljZSApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgc3RhdGljIHNldHVwKGluc3RhbmNlLCBwYXJlbnQsIG1ldGEpIHtcbiAgICBjb25zdCBkID0gbWV0YS5kZWZhdWx0IHx8IG1ldGEuZGVmYXVsdFZhbHVlO1xuICAgIGlmIChkICYmICFwYXJlbnRbbWV0YS5uYW1lXSkge1xuICAgICAgaWYgKHR5cGVvZihkKSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcGFyZW50W21ldGEubmFtZV0gPSBkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyZW50W21ldGEubmFtZV0gPSBkLmlkIHx8IGQudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHR5cGVvZih0aGlzLnBhcmVudFt0aGlzLm1ldGEubmFtZV0pID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5wYXJlbnRbdGhpcy5tZXRhLm5hbWVdID0gdGVtcGxhdGVCdWlsZGVyKHRoaXMubWV0YUNvbnRleHQsIHRoaXMucGFyZW50W3RoaXMubWV0YS5uYW1lXSk7XG4gICAgfVxuICAgIC8vIGlmICh0aGlzLmRlZmF1bHQgJiYgIXRoaXMubW9kZWwpIHtcbiAgICAvLyAgIHNldFRpbWVvdXQoKCk9PntcbiAgICAvLyAgICAgaWYgKHR5cGVvZih0aGlzLmRlZmF1bHQpID09ICdzdHJpbmcnKSB7XG4gICAgLy8gICAgICAgdGhpcy5wYXJlbnRbdGhpcy5tZXRhLm5hbWVdID0gdGhpcy5kZWZhdWx0O1xuICAgIC8vICAgICB9IGVsc2Uge1xuICAgIC8vICAgICAgIHRoaXMucGFyZW50W3RoaXMubWV0YS5uYW1lXSA9IHRoaXMuZGVmYXVsdC5pZCB8fCB0aGlzLmRlZmF1bHQudmFsdWU7XG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH0sIDApO1xuICAgIC8vIH1cbiAgfVxuXG4gIG9uTW9kZWxDaGFuZ2VMb2NhbCh2YWx1ZSkge1xuICAgIGlmICghdmFsdWUgJiYgdGhpcy5wcmV2TW9kZWwgJiYgdGhpcy5pc1BlcnNpc3RlZFBhcmVudCkge1xuICAgICAgdmFsdWUgPSAnJztcbiAgICB9XG4gICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIHRleHRUb1NwZWVjaCgpIHtcbiAgICB0aGlzLmZvY3VzKCk7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,16 @@
1
+ /*
2
+ * @Author: Alexander.Vangelov@vonage.com
3
+ * @Date: 2019-09-19 17:35:19
4
+ * @Last Modified by: Alexander.Vangelov@vonage.com
5
+ * @Last Modified time: 2019-11-15 13:04:01
6
+ */
7
+ import { Component } from '@angular/core';
8
+ import { FieldAbstract } from '../fieldAbstract';
9
+ export class FieldUnknown extends FieldAbstract {
10
+ }
11
+ FieldUnknown.decorators = [
12
+ { type: Component, args: [{
13
+ template: "<div class=\"Vlt-form__element Vlt-form__element--big\">\n <div class=\"Vlt-input\">\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}}</label>\n </div>\n <small *ngIf='meta.hint' class=\"Vlt-form__element__hint\">{{meta.hint}}</small>\n</div>"
14
+ },] }
15
+ ];
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXRhLXVpL3NyYy9saWIvZmllbGRVbmtub3duL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBS2pELE1BQU0sT0FBTyxZQUFhLFNBQVEsYUFBYTs7O1lBSDlDLFNBQVMsU0FBQztnQkFDVCwrWkFBMEI7YUFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQEF1dGhvcjogQWxleGFuZGVyLlZhbmdlbG92QHZvbmFnZS5jb20gXG4gKiBARGF0ZTogMjAxOS0wOS0xOSAxNzozNToxOSBcbiAqIEBMYXN0IE1vZGlmaWVkIGJ5OiBBbGV4YW5kZXIuVmFuZ2Vsb3ZAdm9uYWdlLmNvbVxuICogQExhc3QgTW9kaWZpZWQgdGltZTogMjAxOS0xMS0xNSAxMzowNDowMVxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGRBYnN0cmFjdCB9IGZyb20gJy4uL2ZpZWxkQWJzdHJhY3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXcuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRmllbGRVbmtub3duIGV4dGVuZHMgRmllbGRBYnN0cmFjdCB7fVxuIl19
@@ -0,0 +1,105 @@
1
+ /*
2
+ * @Author: Alexander.Vangelov@vonage.com
3
+ * @Date: 2019-09-19 17:34:34
4
+ * @Last Modified by: Alexander.Vangelov@vonage.com
5
+ * @Last Modified time: 2021-02-09 16:57:29
6
+ */
7
+ import { NgModule } from '@angular/core';
8
+ import { CommonModule } from '@angular/common';
9
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
10
+ import { HttpClientModule } from '@angular/common/http';
11
+ import { QuillModule } from 'ngx-quill';
12
+ import { MetaField, MetaFieldContentDirective } from './field';
13
+ import { MetaRefDialog } from './refDialog';
14
+ import { MetaLayout } from './layout';
15
+ import { MetaResource } from './resource';
16
+ import { MetaResourceCard } from './resourceCard';
17
+ import { FieldUnknown } from './fieldUnknown';
18
+ import { FieldInput } from './fieldInput';
19
+ import { FieldText } from './fieldText';
20
+ import { FieldSelect } from './fieldSelect';
21
+ import { FieldReference } from './fieldReference';
22
+ import { FieldComposite } from './fieldComposite';
23
+ import { FieldBoolean } from './fieldBoolean';
24
+ import { FieldRadio } from './fieldRadio';
25
+ import { FieldList } from './fieldList';
26
+ import { FieldRichtext } from './fieldRichtext';
27
+ import { FieldDatetime } from './fieldDatetime';
28
+ import { MetaIconsPipe } from './common/metaIcons.pipe';
29
+ import { MetaModelPipe } from './common/metaModel.pipe';
30
+ import { MetaStripHtmlPipe } from './common/metaStripHtml.pipe';
31
+ import { MetaAutofocusDirective } from './common/metaAutofocus.directive';
32
+ import { MetaContextService } from './services/metaContext';
33
+ import { MetaTrackerService } from './services/metaTracker';
34
+ import { ResourceDraftsService } from './services/resourceDrafts';
35
+ import { MetaMsgService } from './services/metaMsg';
36
+ import { MetaReferenceService } from './services/metaReference';
37
+ import { MetaResourceService } from './services/metaResource';
38
+ import { MetaHttpClient } from './services/metaResource/metaHttpClient';
39
+ import { relativeTimeBuilder } from './common/utils/relativeTimeBuilder';
40
+ export * from './common/utils/colorThemes';
41
+ export * from './common/metaNormalizer';
42
+ export class MetaModule {
43
+ static withProviders(customProviders) {
44
+ return {
45
+ ngModule: MetaModule,
46
+ providers: customProviders
47
+ };
48
+ }
49
+ }
50
+ MetaModule.decorators = [
51
+ { type: NgModule, args: [{
52
+ declarations: [
53
+ MetaIconsPipe,
54
+ MetaModelPipe,
55
+ MetaStripHtmlPipe,
56
+ MetaField,
57
+ MetaRefDialog,
58
+ MetaFieldContentDirective,
59
+ MetaLayout,
60
+ MetaResource,
61
+ MetaResourceCard,
62
+ FieldUnknown,
63
+ FieldInput,
64
+ FieldText,
65
+ FieldSelect,
66
+ FieldReference,
67
+ FieldComposite,
68
+ FieldBoolean,
69
+ FieldRadio,
70
+ FieldList,
71
+ FieldRichtext,
72
+ FieldDatetime,
73
+ MetaAutofocusDirective
74
+ ],
75
+ exports: [
76
+ MetaIconsPipe,
77
+ MetaModelPipe,
78
+ MetaStripHtmlPipe,
79
+ MetaField,
80
+ MetaLayout,
81
+ MetaResource,
82
+ MetaResourceCard,
83
+ MetaAutofocusDirective
84
+ ],
85
+ imports: [
86
+ CommonModule,
87
+ FormsModule,
88
+ ReactiveFormsModule,
89
+ HttpClientModule,
90
+ QuillModule.forRoot({
91
+ modules: {
92
+ toolbar: [
93
+ ['bold', 'italic', 'underline'],
94
+ [{ list: 'bullet' }],
95
+ [{ header: [1, 2, 3, 4, 5, 6, false] }],
96
+ [{ font: [] }],
97
+ [{ align: [] }]
98
+ ]
99
+ }
100
+ })
101
+ ]
102
+ },] }
103
+ ];
104
+ export { MetaField, MetaFieldContentDirective, MetaRefDialog, MetaResourceCard, MetaIconsPipe, MetaModelPipe, MetaStripHtmlPipe, MetaAutofocusDirective, FieldUnknown, FieldInput, FieldText, FieldSelect, MetaLayout, MetaResource, FieldBoolean, FieldRadio, FieldList, FieldComposite, FieldReference, FieldRichtext, FieldDatetime, MetaContextService, MetaTrackerService, ResourceDraftsService, MetaMsgService, MetaReferenceService, MetaResourceService, MetaHttpClient, relativeTimeBuilder };
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXRhLXVpL3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsUUFBUSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFeEMsT0FBTyxFQUFFLFNBQVMsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFF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Q3ZFLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUMxRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUNuRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixFQUMzRixjQUFjLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUN6RSxtQkFBbUIsRUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBAQXV0aG9yOiBBbGV4YW5kZXIuVmFuZ2Vsb3ZAdm9uYWdlLmNvbSBcbiAqIEBEYXRlOiAyMDE5LTA5LTE5IDE3OjM0OjM0IFxuICogQExhc3QgTW9kaWZpZWQgYnk6IEFsZXhhbmRlci5WYW5nZWxvdkB2b25hZ2UuY29tXG4gKiBATGFzdCBNb2RpZmllZCB0aW1lOiAyMDIxLTAyLTA5IDE2OjU3OjI5XG4gKi9cblxuaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7IFF1aWxsTW9kdWxlIH0gZnJvbSAnbmd4LXF1aWxsJztcblxuaW1wb3J0IHsgTWV0YUZpZWxkLCBNZXRhRmllbGRDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9maWVsZCc7XG5pbXBvcnQgeyBNZXRhUmVmRGlhbG9nIH0gZnJvbSAnLi9yZWZEaWFsb2cnO1xuaW1wb3J0IHsgTWV0YUxheW91dCB9IGZyb20gJy4vbGF5b3V0JztcbmltcG9ydCB7IE1ldGFSZXNvdXJjZSB9IGZyb20gJy4vcmVzb3VyY2UnO1xuaW1wb3J0IHsgTWV0YVJlc291cmNlQ2FyZCB9IGZyb20gJy4vcmVzb3VyY2VDYXJkJztcbmltcG9ydCB7IEZpZWxkVW5rbm93biB9IGZyb20gJy4vZmllbGRVbmtub3duJztcbmltcG9ydCB7IEZpZWxkSW5wdXQgfSBmcm9tICcuL2ZpZWxkSW5wdXQnO1xuaW1wb3J0IHsgRmllbGRUZXh0IH0gZnJvbSAnLi9maWVsZFRleHQnO1xuaW1wb3J0IHsgRmllbGRTZWxlY3QgfSBmcm9tICcuL2ZpZWxkU2VsZWN0JztcbmltcG9ydCB7IEZpZWxkUmVmZXJlbmNlIH0gZnJvbSAnLi9maWVsZFJlZmVyZW5jZSc7XG5pbXBvcnQgeyBGaWVsZENvbXBvc2l0ZSB9IGZyb20gJy4vZmllbGRDb21wb3NpdGUnO1xuaW1wb3J0IHsgRmllbGRCb29sZWFuIH0gZnJvbSAnLi9maWVsZEJvb2xlYW4nO1xuaW1wb3J0IHsgRmllbGRSYWRpbyB9IGZyb20gJy4vZmllbGRSYWRpbyc7XG5pbXBvcnQgeyBGaWVsZExpc3QgfSBmcm9tICcuL2ZpZWxkTGlzdCc7XG5pbXBvcnQgeyBGaWVsZFJpY2h0ZXh0IH0gZnJvbSAnLi9maWVsZFJpY2h0ZXh0JztcbmltcG9ydCB7IEZpZWxkRGF0ZXRpbWUgfSBmcm9tICcuL2ZpZWxkRGF0ZXRpbWUnO1xuXG5pbXBvcnQgeyBNZXRhSWNvbnNQaXBlIH0gZnJvbSAnLi9jb21tb24vbWV0YUljb25zLnBpcGUnO1xuaW1wb3J0IHsgTWV0YU1vZGVsUGlwZSB9IGZyb20gJy4vY29tbW9uL21ldGFNb2RlbC5waXBlJztcbmltcG9ydCB7IE1ldGFTdHJpcEh0bWxQaXBlIH0gZnJvbSAnLi9jb21tb24vbWV0YVN0cmlwSHRtbC5waXBlJztcbmltcG9ydCB7IE1ldGFBdXRvZm9jdXNEaXJlY3RpdmUgfSBmcm9tICcuL2NvbW1vbi9tZXRhQXV0b2ZvY3VzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNZXRhQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL21ldGFDb250ZXh0JztcbmltcG9ydCB7IE1ldGFUcmFja2VyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvbWV0YVRyYWNrZXInO1xuaW1wb3J0IHsgUmVzb3VyY2VEcmFmdHNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9yZXNvdXJjZURyYWZ0cyc7XG5pbXBvcnQgeyBNZXRhTXNnU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvbWV0YU1zZyc7XG5pbXBvcnQgeyBNZXRhUmVmZXJlbmNlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvbWV0YVJlZmVyZW5jZSc7XG5pbXBvcnQgeyBNZXRhUmVzb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9tZXRhUmVzb3VyY2UnO1xuaW1wb3J0IHsgTWV0YUh0dHBDbGllbnQgfSBmcm9tICcuL3NlcnZpY2VzL21ldGFSZXNvdXJjZS9tZXRhSHR0cENsaWVudCc7XG5pbXBvcnQgeyByZWxhdGl2ZVRpbWVCdWlsZGVyIH0gZnJvbSAnLi9jb21tb24vdXRpbHMvcmVsYXRpdmVUaW1lQnVpbGRlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uL3V0aWxzL2NvbG9yVGhlbWVzJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uL21ldGFOb3JtYWxpemVyJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTWV0YUljb25zUGlwZSxcbiAgICBNZXRhTW9kZWxQaXBlLFxuICAgIE1ldGFTdHJpcEh0bWxQaXBlLFxuICAgIE1ldGFGaWVsZCwgXG4gICAgTWV0YVJlZkRpYWxvZyxcbiAgICBNZXRhRmllbGRDb250ZW50RGlyZWN0aXZlLFxuICAgIE1ldGFMYXlvdXQsXG4gICAgTWV0YVJlc291cmNlLFxuICAgIE1ldGFSZXNvdXJjZUNhcmQsXG4gICAgRmllbGRVbmtub3duLFxuICAgIEZpZWxkSW5wdXQsXG4gICAgRmllbGRUZXh0LFxuICAgIEZpZWxkU2VsZWN0LFxuICAgIEZpZWxkUmVmZXJlbmNlLFxuICAgIEZpZWxkQ29tcG9zaXRlLFxuICAgIEZpZWxkQm9vbGVhbixcbiAgICBGaWVsZFJhZGlvLFxuICAgIEZpZWxkTGlzdCxcbiAgICBGaWVsZFJpY2h0ZXh0LFxuICAgIEZpZWxkRGF0ZXRpbWUsXG4gICAgTWV0YUF1dG9mb2N1c0RpcmVjdGl2ZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTWV0YUljb25zUGlwZSxcbiAgICBNZXRhTW9kZWxQaXBlLFxuICAgIE1ldGFTdHJpcEh0bWxQaXBlLFxuICAgIE1ldGFGaWVsZCxcbiAgICBNZXRhTGF5b3V0LFxuICAgIE1ldGFSZXNvdXJjZSxcbiAgICBNZXRhUmVzb3VyY2VDYXJkLFxuICAgIE1ldGFBdXRvZm9jdXNEaXJlY3RpdmVcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSwgXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIFF1aWxsTW9kdWxlLmZvclJvb3Qoe1xuICAgICAgbW9kdWxlczoge1xuICAgICAgICB0b29sYmFyOiBbXG4gICAgICAgICAgWydib2xkJywgJ2l0YWxpYycsICd1bmRlcmxpbmUnXSxcbiAgICAgICAgICBbeyBsaXN0OiAnYnVsbGV0JyB9XSxcbiAgICAgICAgICBbeyBoZWFkZXI6IFsxLCAyLCAzLCA0LCA1LCA2LCBmYWxzZV0gfV0sXG4gICAgICAgICAgW3sgZm9udDogW10gfV0sXG4gICAgICAgICAgW3sgYWxpZ246IFtdIH1dXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9KVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFNb2R1bGUge1xuICBzdGF0aWMgd2l0aFByb3ZpZGVycyhjdXN0b21Qcm92aWRlcnM6IGFueSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TWV0YU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTWV0YU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogY3VzdG9tUHJvdmlkZXJzXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgeyBcbiAgTWV0YUZpZWxkLCBNZXRhRmllbGRDb250ZW50RGlyZWN0aXZlLCBNZXRhUmVmRGlhbG9nLCBNZXRhUmVzb3VyY2VDYXJkLFxuICBNZXRhSWNvbnNQaXBlLCBNZXRhTW9kZWxQaXBlLCBNZXRhU3RyaXBIdG1sUGlwZSwgTWV0YUF1dG9mb2N1c0RpcmVjdGl2ZSxcbiAgRmllbGRVbmtub3duLCBGaWVsZElucHV0LCBGaWVsZFRleHQsIEZpZWxkU2VsZWN0LCBNZXRhTGF5b3V0LCBNZXRhUmVzb3VyY2UsXG4gIEZpZWxkQm9vbGVhbiwgRmllbGRSYWRpbywgRmllbGRMaXN0LCBGaWVsZENvbXBvc2l0ZSwgRmllbGRSZWZlcmVuY2UsXG4gIEZpZWxkUmljaHRleHQsIEZpZWxkRGF0ZXRpbWUsIE1ldGFDb250ZXh0U2VydmljZSwgTWV0YVRyYWNrZXJTZXJ2aWNlLCBSZXNvdXJjZURyYWZ0c1NlcnZpY2UsXG4gIE1ldGFNc2dTZXJ2aWNlLCBNZXRhUmVmZXJlbmNlU2VydmljZSwgTWV0YVJlc291cmNlU2VydmljZSwgTWV0YUh0dHBDbGllbnQsXG4gIHJlbGF0aXZlVGltZUJ1aWxkZXJcbn07XG4iXX0=
@@ -0,0 +1,155 @@
1
+ /*
2
+ * @Author: Alexander.Vangelov@vonage.com
3
+ * @Date: 2019-09-19 17:35:28
4
+ * @Last Modified by: Alexander.Vangelov@vonage.com
5
+ * @Last Modified time: 2021-03-24 22:55:34
6
+ */
7
+ import { Component, Input, ChangeDetectorRef, ElementRef, ComponentFactoryResolver } from '@angular/core';
8
+ import { Subject } from 'rxjs';
9
+ import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
10
+ import { MetaResourceService } from '../services/metaResource';
11
+ import { MetaRefDialog } from '../refDialog';
12
+ import { MetaReferenceService } from '../services/metaReference';
13
+ import { metaDark, metaLight } from '../common/utils/colorThemes';
14
+ // import { tMetaLayout } from '../definitions/tMetaLayout';
15
+ export class MetaLayout {
16
+ constructor(componentFactoryResolver, ref, el, metaResource, referenceService) {
17
+ // console.log('MetaLayout', this.meta);
18
+ this.componentFactoryResolver = componentFactoryResolver;
19
+ this.ref = ref;
20
+ this.el = el;
21
+ this.metaResource = metaResource;
22
+ this.referenceService = referenceService;
23
+ this.optionalFields = {};
24
+ this.showAll = false;
25
+ this.fieldsVisibilityChanged = new Subject();
26
+ }
27
+ ngOnInit() {
28
+ this.integrationCode = this.meta.integrationCode || this.integration;
29
+ this.resourceType = this.meta.resourceType || this.type;
30
+ this.parentForm = this.el.nativeElement.closest('form');
31
+ this.configureOptionalSections();
32
+ this.fieldsVisibilityChanged.pipe(debounceTime(100), distinctUntilChanged()).subscribe((value) => {
33
+ this.countOptionalFields();
34
+ });
35
+ setTimeout(() => {
36
+ this.countOptionalFields();
37
+ }, 0);
38
+ if (this.parentForm) {
39
+ this.parentForm.addEventListener('change', (e) => {
40
+ setTimeout(() => {
41
+ this.fieldsVisibilityChanged.next(JSON.stringify(this.resource));
42
+ this.countOptionalFields();
43
+ }, 0);
44
+ });
45
+ }
46
+ if (this.theme !== 'inherit') {
47
+ this.applyTheme();
48
+ }
49
+ }
50
+ ngOnChanges(changes) {
51
+ if (changes.meta) {
52
+ this.configureOptionalSections();
53
+ setTimeout(() => {
54
+ this.countOptionalFields();
55
+ }, 0);
56
+ }
57
+ else if (changes.theme) {
58
+ this.theme = changes.theme.currentValue;
59
+ this.applyTheme();
60
+ }
61
+ }
62
+ countOptionalFields() {
63
+ let count = 0;
64
+ const countSectionFields = (s) => {
65
+ for (const f of s.fields) {
66
+ if (f.fields && f.fields.length && !f.visible) {
67
+ countSectionFields(f);
68
+ }
69
+ else {
70
+ if (f.$optional && !f.$hidden) {
71
+ count++;
72
+ }
73
+ }
74
+ }
75
+ };
76
+ for (const s of this.meta.sections) {
77
+ const notOptionalAny = s.fields.find(f => !f.$optional);
78
+ s.$optional = !notOptionalAny;
79
+ if (!s.visible) {
80
+ countSectionFields(s);
81
+ }
82
+ }
83
+ this.optionalFieldsCount = count;
84
+ }
85
+ configureOptionalSections() {
86
+ if (this.meta && this.meta.sections) {
87
+ for (const s of this.meta.sections) {
88
+ Object.defineProperty(s, '$optional', {
89
+ value: true,
90
+ writable: true,
91
+ configurable: true,
92
+ enumerable: false
93
+ });
94
+ }
95
+ }
96
+ }
97
+ ngAfterContentChecked() {
98
+ this.ref.detectChanges();
99
+ }
100
+ toggleOptionalFields() {
101
+ this.showAll = !this.showAll;
102
+ this.ngAfterContentChecked();
103
+ }
104
+ openChild(childResource, childModel) {
105
+ childResource.reference.parent = this.resource._vgis; // eslint-disable-line no-underscore-dangle
106
+ if (!this.refDialogFactory) {
107
+ this.refDialogFactory = this.componentFactoryResolver.resolveComponentFactory(MetaRefDialog);
108
+ }
109
+ this.referenceService.openDialog(this.refDialogFactory, this.metaResource, this.integrationCode, childResource.reference, childModel, childModel && (childResource.reference.editable === false) // is preview mode
110
+ ).subscribe((result) => {
111
+ if (result && result.raw) {
112
+ if (!this.resource[childResource.name]) {
113
+ this.resource[childResource.name] = [];
114
+ }
115
+ this.resource[childResource.name].push(result.raw);
116
+ }
117
+ });
118
+ }
119
+ get isPersistedResource() {
120
+ // eslint-disable-next-line no-underscore-dangle
121
+ return this.resource && this.resource._vgis && (this.resource._vgis.externalId || this.resource._vgis.id);
122
+ }
123
+ applyTheme() {
124
+ const metaTheme = this.theme === 'dark' ? metaDark : metaLight;
125
+ for (const key of Object.keys(metaTheme.properties)) {
126
+ this.el.nativeElement.style.setProperty(key, metaTheme.properties[key]);
127
+ }
128
+ }
129
+ }
130
+ MetaLayout.decorators = [
131
+ { type: Component, args: [{
132
+ selector: 'vgip-meta-layout',
133
+ template: "<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: showAll || true }\" theme='inherit' [attr.data-theme]='theme'></vgip-meta-field>\n\t\t\t</ng-container>\n\t\t</div>\n\t</div>\n</div>\n<div *ngIf='isPersistedResource && meta.children && preview'>\n\t<div *ngFor='let child of meta.children'>\n\t\t<h5 class='Vlt-children__title'>\n\t\t\t<svg class=\"Vlt-icon\"><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-stack\" /></svg>&nbsp;\n\t\t\t{{child.label}} <span class='Vlt-grey'>({{(resource[child.name] || []).length}})</span>\n\t\t</h5>\n\t\t<div *ngFor=\"let c of resource[child.name]\" style='position: relative;'>\n\n\t\t\t<div class=\"Vlt-card Vlt-bg-white\">\n\t\t\t\t<div class=\"Vlt-card__content Vlt-btn-on-hover\">\n\t\t\t\t\t<h5>{{c.Subject || c.subject || c.summary || c.title || c.CaseNumber || c.comment || c.body || c.name || c.topic || c.content || '...' }}</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",
134
+ entryComponents: [
135
+ MetaRefDialog
136
+ ],
137
+ styles: ["vgip-meta-field{display:none}vgip-meta-field.shown{display:inline;display:initial}.Vlt-section__title{line-height:14px;padding:16px 16px 14px 3px;margin:-9px -1px 8px;background-color:var(--vgip-meta-resource-bg-color);color:var(--vgip-meta-resource-color);position:sticky;top:-9px;z-index:3;border-bottom:1px solid var(--vgip-meta-separator-color)}.Vlt-section{margin:0;padding-bottom:8px;display:none}.Vlt-section.shown{display:block}.Vlt-btn.vlt-add-child:hover{transform:scale(1.02)}.for-preview{margin-top:-6px}.Vlt-card{margin-bottom:16px;padding:16px}.Vlt-card .Vlt-btn-group.Vlt-btn-group--hover{right:-8px}button.more-button:focus{font-weight:700}.centered{text-align:center}.Vlt-btn--link{color:var(--vgip-meta-link-color)}.Vlt-btn--link:hover{color:var(--vgip-meta-link-hover-color)}.Vlt-btn--link svg{fill:var(--vgip-meta-link-color)}"]
138
+ },] }
139
+ ];
140
+ MetaLayout.ctorParameters = () => [
141
+ { type: ComponentFactoryResolver },
142
+ { type: ChangeDetectorRef },
143
+ { type: ElementRef },
144
+ { type: MetaResourceService },
145
+ { type: MetaReferenceService }
146
+ ];
147
+ MetaLayout.propDecorators = {
148
+ meta: [{ type: Input }],
149
+ resource: [{ type: Input }],
150
+ integration: [{ type: Input }],
151
+ type: [{ type: Input }],
152
+ preview: [{ type: Input }],
153
+ theme: [{ type: Input }]
154
+ };
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXRhLXVpL3NyYy9saWIvbGF5b3V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQzFDLFVBQVUsRUFBdUIsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWxFLDREQUE0RDtBQVU1RCxNQUFNLE9BQU8sVUFBVTtJQWlCckIsWUFDVSx3QkFBa0QsRUFDbEQsR0FBc0IsRUFDdEIsRUFBYyxFQUNkLFlBQWlDLEVBQ2pDLGdCQUFzQztRQUU5Qyx3Q0FBd0M7UUFOaEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBc0I7UUFkaEQsbUJBQWMsR0FBUSxFQUFFLENBQUM7UUFFekIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQiw0QkFBdUIsR0FBb0IsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQWVqRSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUks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RyxDQUFDLENBQUMsQ0FBQztTQUN6RTtJQUNILENBQUM7OztZQXBKRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsMGdIQUEwQjtnQkFFMUIsZUFBZSxFQUFFO29CQUNmLGFBQWE7aUJBQ2Q7O2FBQ0Y7OztZQW5Ca0Msd0JBQXdCO1lBRGhDLGlCQUFpQjtZQUMxQyxVQUFVO1lBS0gsbUJBQW1CO1lBRW5CLG9CQUFvQjs7O21CQWMxQixLQUFLO3VCQUNMLEtBQUs7MEJBQ0wsS0FBSzttQkFDTCxLQUFLO3NCQUNMLEtBQUs7b0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBAQXV0aG9yOiBBbGV4YW5kZXIuVmFuZ2Vsb3ZAdm9uYWdlLmNvbVxuICogQERhdGU6IDIwMTktMDktMTkgMTc6MzU6MjhcbiAqIEBMYXN0IE1vZGlmaWVkIGJ5OiBBbGV4YW5kZXIuVmFuZ2Vsb3ZAdm9uYWdlLmNvbVxuICogQExhc3QgTW9kaWZpZWQgdGltZTogMjAyMS0wMy0yNCAyMjo1NTozNFxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdG9yUmVmLCBPbkluaXQsIE9uQ2hhbmdlcyxcbiAgRWxlbWVudFJlZiwgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE1ldGFSZXNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tZXRhUmVzb3VyY2UnO1xuaW1wb3J0IHsgTWV0YVJlZkRpYWxvZyB9IGZyb20gJy4uL3JlZkRpYWxvZyc7XG5pbXBvcnQgeyBNZXRhUmVmZXJlbmNlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21ldGFSZWZlcmVuY2UnO1xuaW1wb3J0IHsgbWV0YURhcmssIG1ldGFMaWdodCB9IGZyb20gJy4uL2NvbW1vbi91dGlscy9jb2xvclRoZW1lcyc7XG5cbi8vIGltcG9ydCB7IHRNZXRhTGF5b3V0IH0gZnJvbSAnLi4vZGVmaW5pdGlvbnMvdE1ldGFMYXlvdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2Z2lwLW1ldGEtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXcuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlLnNjc3MnXSxcbiAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgTWV0YVJlZkRpYWxvZ1xuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFMYXlvdXQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudENoZWNrZWQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG1ldGE6IGFueTtcbiAgQElucHV0KCkgcmVzb3VyY2U6IGFueTtcbiAgQElucHV0KCkgaW50ZWdyYXRpb246IGFueTtcbiAgQElucHV0KCkgdHlwZTogYW55O1xuICBASW5wdXQoKSBwcmV2aWV3OiBib29sZWFuO1xuICBASW5wdXQoKSB0aGVtZTogc3RyaW5nO1xuXG4gIG9wdGlvbmFsRmllbGRzOiBhbnkgPSB7fTtcbiAgb3B0aW9uYWxGaWVsZHNDb3VudDogbnVtYmVyO1xuICBzaG93QWxsID0gZmFsc2U7XG4gIGZpZWxkc1Zpc2liaWxpdHlDaGFuZ2VkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHJlZkRpYWxvZ0ZhY3Rvcnk6IGFueTtcbiAgcGFyZW50Rm9ybTogSFRNTEZvcm1FbGVtZW50O1xuICBpbnRlZ3JhdGlvbkNvZGU6IHN0cmluZztcbiAgcmVzb3VyY2VUeXBlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIG1ldGFSZXNvdXJjZTogTWV0YVJlc291cmNlU2VydmljZSxcbiAgICBwcml2YXRlIHJlZmVyZW5jZVNlcnZpY2U6IE1ldGFSZWZlcmVuY2VTZXJ2aWNlXG4gICkge1xuICAgIC8vIGNvbnNvbGUubG9nKCdNZXRhTGF5b3V0JywgdGhpcy5tZXRhKTtcblxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbnRlZ3JhdGlvbkNvZGUgPSB0aGlzLm1ldGEuaW50ZWdyYXRpb25Db2RlIHx8IHRoaXMuaW50ZWdyYXRpb247XG4gICAgdGhpcy5yZXNvdXJjZVR5cGUgPSB0aGlzLm1ldGEucmVzb3VyY2VUeXBlIHx8IHRoaXMudHlwZTtcbiAgICB0aGlzLnBhcmVudEZvcm0gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnZm9ybScpO1xuICAgIHRoaXMuY29uZmlndXJlT3B0aW9uYWxTZWN0aW9ucygpO1xuICAgIFxuICAgIHRoaXMuZmllbGRzVmlzaWJpbGl0eUNoYW5nZWQucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICB0aGlzLmNvdW50T3B0aW9uYWxGaWVsZHMoKTtcbiAgICB9KTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY291bnRPcHRpb25hbEZpZWxkcygpO1xuICAgIH0sIDApO1xuXG4gICAgaWYgKHRoaXMucGFyZW50Rm9ybSkge1xuICAgICAgdGhpcy5wYXJlbnRGb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChlKSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZmllbGRzVmlzaWJpbGl0eUNoYW5nZWQubmV4dChKU09OLnN0cmluZ2lmeSh0aGlzLnJlc291cmNlKSk7XG4gICAgICAgICAgdGhpcy5jb3VudE9wdGlvbmFsRmllbGRzKCk7XG4gICAgICAgIH0sIDApO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGhlbWUgIT09ICdpbmhlcml0Jykge1xuICAgICAgdGhpcy5hcHBseVRoZW1lKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogYW55KSB7XG4gICAgaWYgKGNoYW5nZXMubWV0YSkge1xuICAgICAgdGhpcy5jb25maWd1cmVPcHRpb25hbFNlY3Rpb25zKCk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jb3VudE9wdGlvbmFsRmllbGRzKCk7XG4gICAgICB9LCAwKTtcbiAgICB9IGVsc2UgaWYgKGNoYW5nZXMudGhlbWUpIHtcbiAgICAgIHRoaXMudGhlbWUgPSBjaGFuZ2VzLnRoZW1lLmN1cnJlbnRWYWx1ZTtcbiAgICAgIHRoaXMuYXBwbHlUaGVtZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNvdW50T3B0aW9uYWxGaWVsZHMoKSB7XG4gICAgbGV0IGNvdW50ID0gMDtcbiAgICBjb25zdCBjb3VudFNlY3Rpb25GaWVsZHMgPSAocykgPT4ge1xuICAgICAgZm9yIChjb25zdCBmIG9mIHMuZmllbGRzKSB7XG4gICAgICAgIGlmIChmLmZpZWxkcyAmJiBmLmZpZWxkcy5sZW5ndGggJiYgIWYudmlzaWJsZSkge1xuICAgICAgICAgIGNvdW50U2VjdGlvbkZpZWxkcyhmKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoZi4kb3B0aW9uYWwgJiYgIWYuJGhpZGRlbikge1xuICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIGZvciAoY29uc3QgcyBvZiB0aGlzLm1ldGEuc2VjdGlvbnMpIHtcbiAgICAgIGNvbnN0IG5vdE9wdGlvbmFsQW55ID0gcy5maWVsZHMuZmluZChmID0+ICFmLiRvcHRpb25hbCk7XG4gICAgICBzLiRvcHRpb25hbCA9ICFub3RPcHRpb25hbEFueTtcbiAgICAgIGlmICghcy52aXNpYmxlKSB7XG4gICAgICAgIGNvdW50U2VjdGlvbkZpZWxkcyhzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5vcHRpb25hbEZpZWxkc0NvdW50ID0gY291bnQ7XG4gIH1cblxuICBjb25maWd1cmVPcHRpb25hbFNlY3Rpb25zKCkge1xuICAgIGlmICh0aGlzLm1ldGEgJiYgdGhpcy5tZXRhLnNlY3Rpb25zKSB7XG4gICAgICBmb3IgKGNvbnN0IHMgb2YgdGhpcy5tZXRhLnNlY3Rpb25zKSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCAnJG9wdGlvbmFsJywge1xuICAgICAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKSB7XG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdG9nZ2xlT3B0aW9uYWxGaWVsZHMoKSB7XG4gICAgdGhpcy5zaG93QWxsID0gIXRoaXMuc2hvd0FsbDtcbiAgICB0aGlzLm5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpO1xuICB9XG5cbiAgb3BlbkNoaWxkKGNoaWxkUmVzb3VyY2UsIGNoaWxkTW9kZWw/KSB7XG4gICAgY2hpbGRSZXNvdXJjZS5yZWZlcmVuY2UucGFyZW50ID0gdGhpcy5yZXNvdXJjZS5fdmdpczsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICAgIGlmICghdGhpcy5yZWZEaWFsb2dGYWN0b3J5KSB7XG4gICAgICB0aGlzLnJlZkRpYWxvZ0ZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShNZXRhUmVmRGlhbG9nKTtcbiAgICB9XG4gICAgdGhpcy5yZWZlcmVuY2VTZXJ2aWNlLm9wZW5EaWFsb2coXG4gICAgICB0aGlzLnJlZkRpYWxvZ0ZhY3RvcnksIHRoaXMubWV0YVJlc291cmNlLCB0aGlzLmludGVncmF0aW9uQ29kZSwgY2hpbGRSZXNvdXJjZS5yZWZlcmVuY2UsIGNoaWxkTW9kZWwsIFxuICAgICAgY2hpbGRNb2RlbCAmJiAoY2hpbGRSZXNvdXJjZS5yZWZlcmVuY2UuZWRpdGFibGUgPT09IGZhbHNlKSAvLyBpcyBwcmV2aWV3IG1vZGVcbiAgICApLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LnJhdykge1xuICAgICAgICBpZiAoIXRoaXMucmVzb3VyY2VbY2hpbGRSZXNvdXJjZS5uYW1lXSkge1xuICAgICAgICAgIHRoaXMucmVzb3VyY2VbY2hpbGRSZXNvdXJjZS5uYW1lXSA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzb3VyY2VbY2hpbGRSZXNvdXJjZS5uYW1lXS5wdXNoKHJlc3VsdC5yYXcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGlzUGVyc2lzdGVkUmVzb3VyY2UoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2UgJiYgdGhpcy5yZXNvdXJjZS5fdmdpcyAmJiAodGhpcy5yZXNvdXJjZS5fdmdpcy5leHRlcm5hbElkIHx8IHRoaXMucmVzb3VyY2UuX3ZnaXMuaWQgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlUaGVtZSgpIHtcbiAgICBjb25zdCBtZXRhVGhlbWUgPSB0aGlzLnRoZW1lID09PSAnZGFyaycgPyBtZXRhRGFyayA6IG1ldGFMaWdodDtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtZXRhVGhlbWUucHJvcGVydGllcykpIHtcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShrZXksIG1ldGFUaGVtZS5wcm9wZXJ0aWVzW2tleV0pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,134 @@
1
+ /*
2
+ * @Author: Alexander.Vangelov@vonage.com
3
+ * @Date: 2019-09-19 17:35:03
4
+ * @Last Modified by: Alexander.Vangelov@vonage.com
5
+ * @Last Modified time: 2020-05-03 21:21:07
6
+ */
7
+ import { Component, ElementRef } from '@angular/core';
8
+ import { metaDark, metaLight } from '../common/utils/colorThemes';
9
+ export class MetaRefDialog {
10
+ constructor(el) {
11
+ this.el = el;
12
+ this.resources = {};
13
+ this.models = {};
14
+ this.services = {};
15
+ this.keepOrder = (a, b) => a;
16
+ this.keyEventListener = (event) => {
17
+ if (event && event.key === 'Escape') {
18
+ document.removeEventListener('keydown', this.keyEventListener);
19
+ this.dismiss();
20
+ }
21
+ };
22
+ }
23
+ ngOnInit() {
24
+ let references = (this.reference instanceof Array) ? this.reference : [this.reference];
25
+ /* eslint-disable no-underscore-dangle */
26
+ if (this.resource && this.resource._vgis) {
27
+ this.fullResource = this.resource;
28
+ this.resource = this.resource._vgis;
29
+ }
30
+ /* eslint-enable no-underscore-dangle */
31
+ if (this.resource) {
32
+ references = references.filter((r) => {
33
+ const resType = r.name || r.resourceType || '';
34
+ // comparing case insensitive, because of Zendesk comment vs Comment
35
+ return (resType.id || resType || '').toLowerCase() === (this.resource.resourceType || this.resource.type || '').toLowerCase();
36
+ });
37
+ }
38
+ for (const ref of references) {
39
+ if (!ref.name) {
40
+ ref.name = ref.resourceType; // when the resource comes from resources API, not from metadata
41
+ }
42
+ if (!this.currentResource) {
43
+ this.currentResource = ref.name;
44
+ }
45
+ if (ref.name === this.preferResourceType) {
46
+ this.currentResource = this.preferResourceType;
47
+ }
48
+ const rs = {
49
+ integrationCode: this.integrationCode,
50
+ resourceType: ref.resourceType || ref.name,
51
+ ref
52
+ };
53
+ if (this.resource) {
54
+ rs.externalId = this.resource.id || this.resource.externalId;
55
+ if (this.resource.eventId) {
56
+ rs.eventId = this.resource.eventId;
57
+ }
58
+ if (this.fullResource) {
59
+ rs.activity = this.fullResource;
60
+ }
61
+ if (this.resource.layoutId) {
62
+ rs.layoutId = this.resource.layoutId;
63
+ }
64
+ }
65
+ rs.parent = ref.parent;
66
+ this.resources[ref.name] = rs;
67
+ this.models[ref.name] = {};
68
+ if (this.resource) {
69
+ this.models[ref.name]._vgis = this.resource; // eslint-disable-line no-underscore-dangle
70
+ }
71
+ }
72
+ this.modal = this.el.nativeElement.childNodes[0];
73
+ this.modal.classList.remove('Vlt-modal--out');
74
+ this.modal.classList.add('Vlt-modal_visible');
75
+ document.addEventListener('keydown', this.keyEventListener);
76
+ if (this.integrationCode === 'mocks') {
77
+ this.integrationIcon = 'Brand-icon-vonage';
78
+ }
79
+ else {
80
+ switch (this.integrationCode.toLowerCase()) {
81
+ case 'office365':
82
+ this.integrationIcon = 'Brand-icon-office-color';
83
+ break;
84
+ case 'sugar':
85
+ this.integrationIcon = 'Brand-icon-sugarcrm-color';
86
+ break;
87
+ case 'msdynamics':
88
+ this.integrationIcon = 'Brand-icon-dynamics-color';
89
+ break;
90
+ default:
91
+ this.integrationIcon = `Brand-icon-${(this.integrationCode || '').toLowerCase()}-color`;
92
+ }
93
+ }
94
+ this.applyTheme();
95
+ }
96
+ get isEditable() {
97
+ return this.resources[this.currentResource].meta.layout.editable !== false;
98
+ }
99
+ get isPersistent() {
100
+ return this.resource && (this.resource.externalId || this.resource.id);
101
+ }
102
+ close() {
103
+ this.modal.classList.remove('Vlt-modal_visible');
104
+ this.modal.classList.add('Vlt-modal--out');
105
+ }
106
+ dismiss() {
107
+ this.close();
108
+ this.onComplete(null);
109
+ }
110
+ onResourceDone(result) {
111
+ console.log('onResourceDone', result);
112
+ this.close();
113
+ this.onComplete(result);
114
+ }
115
+ selectResource(resource) {
116
+ this.currentResource = resource;
117
+ }
118
+ applyTheme() {
119
+ const metaTheme = this.theme === 'dark' ? metaDark : metaLight;
120
+ for (const key of Object.keys(metaTheme.properties)) {
121
+ this.el.nativeElement.style.setProperty(key, metaTheme.properties[key]);
122
+ }
123
+ }
124
+ }
125
+ MetaRefDialog.decorators = [
126
+ { type: Component, args: [{
127
+ template: "<div class='Vlt-modal Vlt-modal--large'>\n <div class=\"Vlt-modal__panel\">\n <div class=\"Vlt-tabs\">\n <div class='Vlt-tabs__header--background'>\n <div class=\"Vlt-tabs__header Vlt-tabs__header--shadow\">\n <svg class=\"Vlt-icon\" [ngStyle]=\"{fill: integrationIcon === 'Brand-icon-vonage' ? 'var(--vgip-meta-input-color)' : ''}\"><use attr.xlink:href=\"volta/volta-brand-icons.svg#{{integrationIcon}}\" /></svg>\n <div *ngFor='let r of resources | keyvalue: keepOrder' (click)='selectResource(r.key)' class=\"Vlt-tabs__link\" [ngClass]=\"{ 'Vlt-tabs__link_active': currentResource === r.key}\">\n {{r.key}}\n </div>\n <div class=\"Vlt-modal__dismiss\" (click)=\"dismiss()\">\n <svg class=\"Vlt-icon\"><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-cross\" /></svg>\n </div>\n </div>\n </div>\n <div class=\"Vlt-tabs__content\" style='min-height: 90px;'>\n <ng-container *ngFor='let r of resources | keyvalue: keepOrder'>\n <div *ngIf='currentResource === r.key' class=\"Vlt-tabs__panel Vlt-tabs__panel_active\">\n <vgip-meta-resource [resource]='r.value' [model]='models[r.key]' [metaResourceServiceDelegated]='metaResource' (done)='onResourceDone($event)' theme='inherit' [attr.data-theme]='theme'></vgip-meta-resource>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n",
128
+ styles: [".Vlt-modal_visible{background:var(--vgip-meta-overlay-background)}.Vlt-modal__panel{padding:0;background:var(--vgip-meta-resource-bg-color);overflow:hidden}@media only screen and (max-width:575px){.Vlt-modal__panel{height:100%;width:100%;max-height:none;border-bottom-left-radius:0;border-bottom-right-radius:0;margin:10px 6px 0}.Vlt-modal__panel ::ng-deep .busy-mask{min-height:calc(100vh - 58px)}}.Vlt-modal__panel .Vlt-tabs__header--background{border-top-left-radius:5px;border-top-right-radius:5px}.Vlt-modal__panel .Vlt-tabs__header{background:var(--vgip-meta-resource-bar-color);padding-left:52px;padding-right:45px;border-bottom:0;flex-wrap:wrap;min-height:52px;max-height:52px;align-items:center}.Vlt-modal__panel .Vlt-tabs__header>.Vlt-icon{position:absolute;left:14px}.Vlt-modal__panel .Vlt-tabs__header h5{margin-bottom:0;font-weight:400}.Vlt-modal__panel .Vlt-tabs__header .Vlt-tabs__link{padding-top:4px;padding-bottom:2px;color:var(--vgip-meta-input-label-color);text-transform:capitalize}.Vlt-modal__panel .Vlt-tabs__header .Vlt-tabs__link_active{color:var(--vgip-meta-input-accent-color)}.Vlt-modal__panel .Vlt-tabs__header .Vlt-tabs__link_active:after{background:var(--vgip-meta-input-accent-color)}.Vlt-modal__panel .Vlt-tabs__header .Vlt-modal__dismiss{background-image:none;width:18px;height:18px;opacity:1}.Vlt-modal__panel .Vlt-tabs__header .Vlt-modal__dismiss svg{width:16px;height:16px;fill:var(--vgip-meta-input-label-color)}.Vlt-modal__panel .Vlt-tabs__header .Vlt-modal__dismiss:hover svg{fill:var(--vgip-meta-input-accent-color)}.Vlt-modal__panel .Vlt-tabs__header::-webkit-scrollbar{width:8px}.Vlt-modal__panel .Vlt-tabs__header::-webkit-scrollbar-thumb{background-color:var(--vgip-meta-scrollbar-color);border:2px solid transparent;border-radius:6px;background-clip:content-box}.Vlt-modal__panel .Vlt-tabs__content{margin-top:0}.Vlt-modal__panel .Vlt-tabs__content .Vlt-tabs__link{font-size:1.8rem}.Vlt-modal__panel .Vlt-callout--banner{justify-content:normal;text-align:left;text-align:initial;overflow-y:auto}.Vlt-modal__panel .Vlt-callout--banner.Vlt-callout--dismissed{padding:0}.Vlt-modal__panel .Vlt-callout--banner:not(.Vlt-callout--dismissed){min-height:78px}.Vlt-modal__panel .Vlt-modal__cancel{z-index:899}.Vlt-modal__panel .Vlt-modal__dismiss{right:16px;top:14px}.Vlt-modal__panel .Vlt-card__footer button{margin-top:0;margin-bottom:0}.Vlt-modal__panel .Vlt-select select:disabled{background:transparent none repeat 0 0/auto auto padding-box border-box scroll;background:initial;cursor:not-allowed}.Vlt-modal__panel ::ng-deep .form-content{min-height:0;max-height:calc(95vh - 172px)}@media only screen and (max-width:575px){.Vlt-modal__panel ::ng-deep .form-content{min-height:calc(100vh - 113px)}}.resource-menu button{margin:0 -10px}.resource-menu button:not(:hover) .Vlt-icon{color:#616266;fill:#616266}.busy-mask{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.32);opacity:1;z-index:898;display:none;border-bottom-left-radius:6px;border-bottom-right-radius:6px;margin:1px;cursor:progress}.busy-mask.active{display:block}"]
129
+ },] }
130
+ ];
131
+ MetaRefDialog.ctorParameters = () => [
132
+ { type: ElementRef }
133
+ ];
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXRhLXVpL3NyYy9saWIvcmVmRGlhbG9nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBVSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU1sRSxNQUFNLE9BQU8sYUFBYTtJQWdCeEIsWUFDVSxFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQWJ4QixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFHakIsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQXFIbkIsY0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWhCLHFCQUFnQixHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkMsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUU7Z0JBQ25DLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQy9ELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNoQjtRQUNILENBQUMsQ0FBQztJQWxIQyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkYseUNBQXlDO1FBQ3pDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRTtZQUN4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QUFTLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBTTtRQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUFRO1FBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDO0lBQ2xDLENBQUM7SUFXTyxVQUFVO1FBQ2hCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMvRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ25ELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN6RTtJQUNILENBQUM7OztZQS9JRixTQUFTLFNBQUM7Z0JBQ1QsODZDQUEwQjs7YUFFM0I7OztZQVIyQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIEBBdXRob3I6IEFsZXhhbmRlci5WYW5nZWxvdkB2b25hZ2UuY29tXG4gKiBARGF0ZTogMjAxOS0wOS0xOSAxNzozNTowM1xuICogQExhc3QgTW9kaWZpZWQgYnk6IEFsZXhhbmRlci5WYW5nZWxvdkB2b25hZ2UuY29tXG4gKiBATGFzdCBNb2RpZmllZCB0aW1lOiAyMDIwLTA1LTAzIDIxOjIxOjA3XG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWV0YVJlc291cmNlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21ldGFSZXNvdXJjZSc7XG5pbXBvcnQgeyBtZXRhRGFyaywgbWV0YUxpZ2h0IH0gZnJvbSAnLi4vY29tbW9uL3V0aWxzL2NvbG9yVGhlbWVzJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi92aWV3Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTWV0YVJlZkRpYWxvZyBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG1vZGFsOiBIVE1MRWxlbWVudDtcbiAgb25Db21wbGV0ZTogKHJlc3VsdD8pID0+IHVuZGVmaW5lZDtcbiAgZnVsbFJlc291cmNlOiBhbnk7XG4gIHJlc291cmNlczogYW55ID0ge307XG4gIG1vZGVsczogYW55ID0ge307XG4gIHJlZmVyZW5jZTogYW55O1xuICBjdXJyZW50UmVzb3VyY2U6IHN0cmluZztcbiAgc2VydmljZXM6IGFueSA9IHt9O1xuICBpbnRlZ3JhdGlvbkNvZGU6IHN0cmluZztcbiAgcmVzb3VyY2U6IGFueTtcbiAgbWV0YVJlc291cmNlOiBNZXRhUmVzb3VyY2VTZXJ2aWNlO1xuICBpbnRlZ3JhdGlvbkljb246IHN0cmluZztcbiAgcHJlZmVyUmVzb3VyY2VUeXBlOiBzdHJpbmc7XG4gIHRoZW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgbGV0IHJlZmVyZW5jZXMgPSAodGhpcy5yZWZlcmVuY2UgaW5zdGFuY2VvZiBBcnJheSkgPyB0aGlzLnJlZmVyZW5jZSA6IFt0aGlzLnJlZmVyZW5jZV07XG4gICAgLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZXJzY29yZS1kYW5nbGUgKi9cbiAgICBpZiAodGhpcy5yZXNvdXJjZSAmJiB0aGlzLnJlc291cmNlLl92Z2lzKSB7XG4gICAgICB0aGlzLmZ1bGxSZXNvdXJjZSA9IHRoaXMucmVzb3VyY2U7XG4gICAgICB0aGlzLnJlc291cmNlID0gdGhpcy5yZXNvdXJjZS5fdmdpcztcbiAgICB9XG4gICAgLyogZXNsaW50LWVuYWJsZSBuby11bmRlcnNjb3JlLWRhbmdsZSAqL1xuICAgIGlmICh0aGlzLnJlc291cmNlKSB7XG4gICAgICByZWZlcmVuY2VzID0gcmVmZXJlbmNlcy5maWx0ZXIoKHIpID0+IHtcbiAgICAgICAgY29uc3QgcmVzVHlwZSA9IHIubmFtZSB8fCByLnJlc291cmNlVHlwZSB8fCAnJztcbiAgICAgICAgLy8gY29tcGFyaW5nIGNhc2UgaW5zZW5zaXRpdmUsIGJlY2F1c2Ugb2YgWmVuZGVzayBjb21tZW50IHZzIENvbW1lbnRcbiAgICAgICAgcmV0dXJuIChyZXNUeXBlLmlkIHx8IHJlc1R5cGUgfHwgJycpLnRvTG93ZXJDYXNlKCkgPT09ICh0aGlzLnJlc291cmNlLnJlc291cmNlVHlwZSB8fCB0aGlzLnJlc291cmNlLnR5cGUgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHJlZiBvZiByZWZlcmVuY2VzKSB7XG4gICAgICBpZiAoIXJlZi5uYW1lKSB7XG4gICAgICAgIHJlZi5uYW1lID0gcmVmLnJlc291cmNlVHlwZTsgLy8gd2hlbiB0aGUgcmVzb3VyY2UgY29tZXMgZnJvbSByZXNvdXJjZXMgQVBJLCBub3QgZnJvbSBtZXRhZGF0YVxuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmN1cnJlbnRSZXNvdXJjZSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRSZXNvdXJjZSA9IHJlZi5uYW1lO1xuICAgICAgfVxuICAgICAgaWYgKHJlZi5uYW1lID09PSB0aGlzLnByZWZlclJlc291cmNlVHlwZSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRSZXNvdXJjZSA9IHRoaXMucHJlZmVyUmVzb3VyY2VUeXBlO1xuICAgICAgfVxuICAgICAgY29uc3QgcnM6IGFueSA9IHtcbiAgICAgICAgaW50ZWdyYXRpb25Db2RlOiB0aGlzLmludGVncmF0aW9uQ29kZSxcbiAgICAgICAgcmVzb3VyY2VUeXBlOiByZWYucmVzb3VyY2VUeXBlIHx8IHJlZi5uYW1lLFxuICAgICAgICByZWZcbiAgICAgIH07XG4gICAgICBpZiAodGhpcy5yZXNvdXJjZSkge1xuICAgICAgICBycy5leHRlcm5hbElkID0gdGhpcy5yZXNvdXJjZS5pZCB8fCB0aGlzLnJlc291cmNlLmV4dGVybmFsSWQ7XG4gICAgICAgIGlmICh0aGlzLnJlc291cmNlLmV2ZW50SWQpIHtcbiAgICAgICAgICBycy5ldmVudElkID0gdGhpcy5yZXNvdXJjZS5ldmVudElkO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZ1bGxSZXNvdXJjZSkge1xuICAgICAgICAgIHJzLmFjdGl2aXR5ID0gdGhpcy5mdWxsUmVzb3VyY2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucmVzb3VyY2UubGF5b3V0SWQpIHtcbiAgICAgICAgICBycy5sYXlvdXRJZCA9IHRoaXMucmVzb3VyY2UubGF5b3V0SWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJzLnBhcmVudCA9IHJlZi5wYXJlbnQ7XG4gICAgICB0aGlzLnJlc291cmNlc1tyZWYubmFtZV0gPSBycztcbiAgICAgIHRoaXMubW9kZWxzW3JlZi5uYW1lXSA9IHt9O1xuICAgICAgaWYgKHRoaXMucmVzb3VyY2UpIHtcbiAgICAgICAgdGhpcy5tb2RlbHNbcmVmLm5hbWVdLl92Z2lzID0gdGhpcy5yZXNvdXJjZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubW9kYWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlc1swXTtcbiAgICB0aGlzLm1vZGFsLmNsYXNzTGlzdC5yZW1vdmUoJ1ZsdC1tb2RhbC0tb3V0Jyk7XG4gICAgdGhpcy5tb2RhbC5jbGFzc0xpc3QuYWRkKCdWbHQtbW9kYWxfdmlzaWJsZScpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLmtleUV2ZW50TGlzdGVuZXIpO1xuXG4gICAgaWYgKHRoaXMuaW50ZWdyYXRpb25Db2RlID09PSAnbW9ja3MnKSB7XG4gICAgICB0aGlzLmludGVncmF0aW9uSWNvbiA9ICdCcmFuZC1pY29uLXZvbmFnZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN3aXRjaCAodGhpcy5pbnRlZ3JhdGlvbkNvZGUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICBjYXNlICdvZmZpY2UzNjUnOlxuICAgICAgICAgIHRoaXMuaW50ZWdyYXRpb25JY29uID0gJ0JyYW5kLWljb24tb2ZmaWNlLWNvbG9yJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnc3VnYXInOlxuICAgICAgICAgIHRoaXMuaW50ZWdyYXRpb25JY29uID0gJ0JyYW5kLWljb24tc3VnYXJjcm0tY29sb3InO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdtc2R5bmFtaWNzJzpcbiAgICAgICAgICB0aGlzLmludGVncmF0aW9uSWNvbiA9ICdCcmFuZC1pY29uLWR5bmFtaWNzLWNvbG9yJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aGlzLmludGVncmF0aW9uSWNvbiA9IGBCcmFuZC1pY29uLSR7KHRoaXMuaW50ZWdyYXRpb25Db2RlIHx8ICcnKS50b0xvd2VyQ2FzZSgpfS1jb2xvcmA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5hcHBseVRoZW1lKCk7XG4gIH1cblxuICBnZXQgaXNFZGl0YWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXNbdGhpcy5jdXJyZW50UmVzb3VyY2VdLm1ldGEubGF5b3V0LmVkaXRhYmxlICE9PSBmYWxzZTtcbiAgfVxuXG4gIGdldCBpc1BlcnNpc3RlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2UgJiYgKHRoaXMucmVzb3VyY2UuZXh0ZXJuYWxJZCB8fCB0aGlzLnJlc291cmNlLmlkKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMubW9kYWwuY2xhc3NMaXN0LnJlbW92ZSgnVmx0LW1vZGFsX3Zpc2libGUnKTtcbiAgICB0aGlzLm1vZGFsLmNsYXNzTGlzdC5hZGQoJ1ZsdC1tb2RhbC0tb3V0Jyk7XG4gIH1cblxuICBkaXNtaXNzKCkge1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgICB0aGlzLm9uQ29tcGxldGUobnVsbCk7XG4gIH1cblxuICBvblJlc291cmNlRG9uZShyZXN1bHQpIHtcbiAgICBjb25zb2xlLmxvZygnb25SZXNvdXJjZURvbmUnLCByZXN1bHQpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgICB0aGlzLm9uQ29tcGxldGUocmVzdWx0KTtcbiAgfVxuXG4gIHNlbGVjdFJlc291cmNlKHJlc291cmNlKSB7XG4gICAgdGhpcy5jdXJyZW50UmVzb3VyY2UgPSByZXNvdXJjZTtcbiAgfVxuXG4gIGtlZXBPcmRlciA9IChhLCBiKSA9PiBhO1xuXG4gIHByaXZhdGUga2V5RXZlbnRMaXN0ZW5lciA9IChldmVudCkgPT4ge1xuICAgIGlmIChldmVudCAmJiBldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5rZXlFdmVudExpc3RlbmVyKTtcbiAgICAgIHRoaXMuZGlzbWlzcygpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIGFwcGx5VGhlbWUoKSB7XG4gICAgY29uc3QgbWV0YVRoZW1lID0gdGhpcy50aGVtZSA9PT0gJ2RhcmsnID8gbWV0YURhcmsgOiBtZXRhTGlnaHQ7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobWV0YVRoZW1lLnByb3BlcnRpZXMpKSB7XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoa2V5LCBtZXRhVGhlbWUucHJvcGVydGllc1trZXldKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==