@vgip/meta-ui 1.9.9 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/fesm2022/vgip-meta-ui.mjs +5614 -78
  2. package/fesm2022/vgip-meta-ui.mjs.map +1 -1
  3. package/index.d.ts +709 -5
  4. package/package.json +5 -8
  5. package/vendor/volta3/README.md +1 -0
  6. package/vendor/volta3/fonts/Spezia-Regular.eot +0 -0
  7. package/vendor/volta3/fonts/Spezia-Regular.ttf +0 -0
  8. package/vendor/volta3/fonts/Spezia-Regular.woff +0 -0
  9. package/vendor/volta3/fonts/Spezia-Regular.woff2 +0 -0
  10. package/vendor/volta3/fonts/Spezia-SemiBold.eot +0 -0
  11. package/vendor/volta3/fonts/Spezia-SemiBold.ttf +0 -0
  12. package/vendor/volta3/fonts/Spezia-SemiBold.woff +0 -0
  13. package/vendor/volta3/fonts/Spezia-SemiBold.woff2 +0 -0
  14. package/vendor/volta3/fonts/Spezia-SemiMonoSemiBold.eot +0 -0
  15. package/vendor/volta3/fonts/Spezia-SemiMonoSemiBold.ttf +0 -0
  16. package/vendor/volta3/fonts/Spezia-SemiMonoSemiBold.woff +0 -0
  17. package/vendor/volta3/fonts/Spezia-SemiMonoSemiBold.woff2 +0 -0
  18. package/vendor/volta3/fonts/Spezia-WideMedium.eot +0 -0
  19. package/vendor/volta3/fonts/Spezia-WideMedium.ttf +0 -0
  20. package/vendor/volta3/fonts/Spezia-WideMedium.woff +0 -0
  21. package/vendor/volta3/fonts/Spezia-WideMedium.woff2 +0 -0
  22. package/vendor/volta3/scss/components/_accordions.scss +165 -0
  23. package/vendor/volta3/scss/components/_badge.scss +325 -0
  24. package/vendor/volta3/scss/components/_blockquote.scss +35 -0
  25. package/vendor/volta3/scss/components/_boxes.scss +113 -0
  26. package/vendor/volta3/scss/components/_buttons.scss +794 -0
  27. package/vendor/volta3/scss/components/_callouts.scss +427 -0
  28. package/vendor/volta3/scss/components/_card.scss +421 -0
  29. package/vendor/volta3/scss/components/_color-classes.scss +186 -0
  30. package/vendor/volta3/scss/components/_dialpad.scss +224 -0
  31. package/vendor/volta3/scss/components/_dropdowns.scss +495 -0
  32. package/vendor/volta3/scss/components/_empties.scss +77 -0
  33. package/vendor/volta3/scss/components/_flash-messages.scss +39 -0
  34. package/vendor/volta3/scss/components/_form-elements.scss +879 -0
  35. package/vendor/volta3/scss/components/_lists.scss +427 -0
  36. package/vendor/volta3/scss/components/_modals.scss +227 -0
  37. package/vendor/volta3/scss/components/_popups.scss +173 -0
  38. package/vendor/volta3/scss/components/_progress.scss +28 -0
  39. package/vendor/volta3/scss/components/_spinner.scss +105 -0
  40. package/vendor/volta3/scss/components/_steps.scss +242 -0
  41. package/vendor/volta3/scss/components/_switch.scss +353 -0
  42. package/vendor/volta3/scss/components/_tables.scss +739 -0
  43. package/vendor/volta3/scss/components/_tabs.scss +296 -0
  44. package/vendor/volta3/scss/components/_text-separator.scss +61 -0
  45. package/vendor/volta3/scss/components/_tooltips.scss +152 -0
  46. package/vendor/volta3/scss/components/side-navigation/_side-nav--aqua.scss +179 -0
  47. package/vendor/volta3/scss/components/side-navigation/_side-nav--collapsible.scss +381 -0
  48. package/vendor/volta3/scss/components/side-navigation/_side-nav--dark.scss +196 -0
  49. package/vendor/volta3/scss/components/side-navigation/_side-nav--light.scss +174 -0
  50. package/vendor/volta3/scss/components/side-navigation/_side-nav--structure.scss +631 -0
  51. package/vendor/volta3/scss/components/side-navigation/_side-nav--tabs.scss +88 -0
  52. package/vendor/volta3/scss/flatpickr/_flatpickr-volta.scss +407 -0
  53. package/vendor/volta3/scss/flatpickr/_flatpickr.css +785 -0
  54. package/vendor/volta3/scss/layout/_article.scss +119 -0
  55. package/vendor/volta3/scss/layout/_utils.scss +174 -0
  56. package/vendor/volta3/scss/lib/_grid.scss +374 -0
  57. package/vendor/volta3/scss/lib/_mediaqueries.scss +52 -0
  58. package/vendor/volta3/scss/lib/_reset.scss +110 -0
  59. package/vendor/volta3/scss/lib/_type.scss +345 -0
  60. package/vendor/volta3/scss/lib/_utils.scss +26 -0
  61. package/vendor/volta3/scss/lib/_variables.scss +115 -0
  62. package/vendor/volta3/scss/prism/_prism-volta.scss +390 -0
  63. package/vendor/volta3/scss/prism/_prism.css +326 -0
  64. package/vendor/volta3/scss/templates/volta-error-page.scss +57 -0
  65. package/vendor/volta3/scss/templates/volta-templates.scss +114 -0
  66. package/vendor/volta3/scss/volta-flatpickr.scss +10 -0
  67. package/vendor/volta3/scss/volta-prism.scss +7 -0
  68. package/vendor/volta3/scss/volta.scss +39 -0
  69. package/vendor/volta3/symbol/volta-brand-icons.svg +1 -0
  70. package/vendor/volta3/symbol/volta-flag-icons.svg +1 -0
  71. package/vendor/volta3/symbol/volta-icons.svg +1 -0
  72. package/esm2022/lib/common/fieldNormalizer/boolean.mjs +0 -12
  73. package/esm2022/lib/common/fieldNormalizer/datetime.mjs +0 -9
  74. package/esm2022/lib/common/fieldNormalizer/index.mjs +0 -183
  75. package/esm2022/lib/common/fieldNormalizer/number.mjs +0 -14
  76. package/esm2022/lib/common/fieldNormalizer/options.mjs +0 -50
  77. package/esm2022/lib/common/fieldNormalizer/radio.mjs +0 -30
  78. package/esm2022/lib/common/fieldNormalizer/reference.mjs +0 -36
  79. package/esm2022/lib/common/fieldNormalizer/richtext.mjs +0 -15
  80. package/esm2022/lib/common/fieldNormalizer/string.mjs +0 -24
  81. package/esm2022/lib/common/fieldNormalizer/text.mjs +0 -18
  82. package/esm2022/lib/common/fieldNormalizer/uniqueNameFilter.mjs +0 -23
  83. package/esm2022/lib/common/metaAutofocus.directive.mjs +0 -35
  84. package/esm2022/lib/common/metaIcons.pipe.mjs +0 -29
  85. package/esm2022/lib/common/metaModel.pipe.mjs +0 -23
  86. package/esm2022/lib/common/metaNormalizer.mjs +0 -375
  87. package/esm2022/lib/common/metaStripHtml.pipe.mjs +0 -22
  88. package/esm2022/lib/common/utils/colorThemes.mjs +0 -77
  89. package/esm2022/lib/common/utils/indexedDbStore/index.mjs +0 -228
  90. package/esm2022/lib/common/utils/relativeTimeBuilder.mjs +0 -49
  91. package/esm2022/lib/common/utils/resourceCardLabel.mjs +0 -24
  92. package/esm2022/lib/common/utils/smartProp.mjs +0 -31
  93. package/esm2022/lib/common/utils/templateBuilder.mjs +0 -103
  94. package/esm2022/lib/fieldAbstract.mjs +0 -291
  95. package/esm2022/lib/fieldBoolean/index.mjs +0 -53
  96. package/esm2022/lib/fieldComposite/index.mjs +0 -82
  97. package/esm2022/lib/fieldDatetime/index.mjs +0 -365
  98. package/esm2022/lib/fieldHidden/index.mjs +0 -18
  99. package/esm2022/lib/fieldInput/index.mjs +0 -475
  100. package/esm2022/lib/fieldList/index.mjs +0 -74
  101. package/esm2022/lib/fieldRadio/index.mjs +0 -88
  102. package/esm2022/lib/fieldReference/index.mjs +0 -834
  103. package/esm2022/lib/fieldRichtext/index.mjs +0 -93
  104. package/esm2022/lib/fieldSelect/index.mjs +0 -568
  105. package/esm2022/lib/fieldText/index.mjs +0 -83
  106. package/esm2022/lib/fieldUnknown/index.mjs +0 -19
  107. package/esm2022/lib/index.mjs +0 -163
  108. package/esm2022/lib/layout/index.mjs +0 -212
  109. package/esm2022/lib/metaField/index.mjs +0 -148
  110. package/esm2022/lib/refDialog/index.mjs +0 -135
  111. package/esm2022/lib/resource/index.mjs +0 -525
  112. package/esm2022/lib/resourceCard/index.mjs +0 -40
  113. package/esm2022/lib/services/metaContext/index.mjs +0 -52
  114. package/esm2022/lib/services/metaMsg/index.mjs +0 -84
  115. package/esm2022/lib/services/metaReference/index.mjs +0 -94
  116. package/esm2022/lib/services/metaResource/index.mjs +0 -139
  117. package/esm2022/lib/services/metaResource/metaHttpClient.mjs +0 -64
  118. package/esm2022/lib/services/metaTracker/index.mjs +0 -31
  119. package/esm2022/lib/services/resourceDrafts/index.mjs +0 -69
  120. package/esm2022/public-api.mjs +0 -5
  121. package/esm2022/vgip-meta-ui.mjs +0 -5
  122. package/fesm2022/vgip-meta-ui-fieldAbstract-baeaf24d.mjs +0 -399
  123. package/fesm2022/vgip-meta-ui-fieldAbstract-baeaf24d.mjs.map +0 -1
  124. package/fesm2022/vgip-meta-ui-index-0184d5ec.mjs +0 -478
  125. package/fesm2022/vgip-meta-ui-index-0184d5ec.mjs.map +0 -1
  126. package/fesm2022/vgip-meta-ui-index-050d4a8c.mjs +0 -87
  127. package/fesm2022/vgip-meta-ui-index-050d4a8c.mjs.map +0 -1
  128. package/fesm2022/vgip-meta-ui-index-1ddfcce0.mjs +0 -86
  129. package/fesm2022/vgip-meta-ui-index-1ddfcce0.mjs.map +0 -1
  130. package/fesm2022/vgip-meta-ui-index-37358620.mjs +0 -158
  131. package/fesm2022/vgip-meta-ui-index-37358620.mjs.map +0 -1
  132. package/fesm2022/vgip-meta-ui-index-4e9c383f.mjs +0 -95
  133. package/fesm2022/vgip-meta-ui-index-4e9c383f.mjs.map +0 -1
  134. package/fesm2022/vgip-meta-ui-index-70d40f26.mjs +0 -79
  135. package/fesm2022/vgip-meta-ui-index-70d40f26.mjs.map +0 -1
  136. package/fesm2022/vgip-meta-ui-index-7741951a.mjs +0 -23
  137. package/fesm2022/vgip-meta-ui-index-7741951a.mjs.map +0 -1
  138. package/fesm2022/vgip-meta-ui-index-80ab405f.mjs +0 -93
  139. package/fesm2022/vgip-meta-ui-index-80ab405f.mjs.map +0 -1
  140. package/fesm2022/vgip-meta-ui-index-86d5c4b7.mjs +0 -575
  141. package/fesm2022/vgip-meta-ui-index-86d5c4b7.mjs.map +0 -1
  142. package/fesm2022/vgip-meta-ui-index-926ae006.mjs +0 -58
  143. package/fesm2022/vgip-meta-ui-index-926ae006.mjs.map +0 -1
  144. package/fesm2022/vgip-meta-ui-index-ac6d744b.mjs +0 -867
  145. package/fesm2022/vgip-meta-ui-index-ac6d744b.mjs.map +0 -1
  146. package/fesm2022/vgip-meta-ui-index-c943b7c0.mjs +0 -24
  147. package/fesm2022/vgip-meta-ui-index-c943b7c0.mjs.map +0 -1
  148. package/fesm2022/vgip-meta-ui-index-f2a08550.mjs +0 -2058
  149. package/fesm2022/vgip-meta-ui-index-f2a08550.mjs.map +0 -1
  150. package/fesm2022/vgip-meta-ui-index-f8b00f06.mjs +0 -370
  151. package/fesm2022/vgip-meta-ui-index-f8b00f06.mjs.map +0 -1
  152. package/fesm2022/vgip-meta-ui-index-fa271433.mjs +0 -151
  153. package/fesm2022/vgip-meta-ui-index-fa271433.mjs.map +0 -1
  154. package/fesm2022/vgip-meta-ui-metaModel.pipe-6b803e66.mjs +0 -26
  155. package/fesm2022/vgip-meta-ui-metaModel.pipe-6b803e66.mjs.map +0 -1
  156. package/fesm2022/vgip-meta-ui-relativeTimeBuilder-31791ce4.mjs +0 -51
  157. package/fesm2022/vgip-meta-ui-relativeTimeBuilder-31791ce4.mjs.map +0 -1
  158. package/lib/common/fieldNormalizer/boolean.d.ts +0 -1
  159. package/lib/common/fieldNormalizer/datetime.d.ts +0 -1
  160. package/lib/common/fieldNormalizer/index.d.ts +0 -1
  161. package/lib/common/fieldNormalizer/number.d.ts +0 -1
  162. package/lib/common/fieldNormalizer/options.d.ts +0 -1
  163. package/lib/common/fieldNormalizer/radio.d.ts +0 -1
  164. package/lib/common/fieldNormalizer/reference.d.ts +0 -1
  165. package/lib/common/fieldNormalizer/richtext.d.ts +0 -1
  166. package/lib/common/fieldNormalizer/string.d.ts +0 -1
  167. package/lib/common/fieldNormalizer/text.d.ts +0 -1
  168. package/lib/common/fieldNormalizer/uniqueNameFilter.d.ts +0 -1
  169. package/lib/common/metaAutofocus.directive.d.ts +0 -10
  170. package/lib/common/metaIcons.pipe.d.ts +0 -10
  171. package/lib/common/metaModel.pipe.d.ts +0 -7
  172. package/lib/common/metaNormalizer.d.ts +0 -1
  173. package/lib/common/metaStripHtml.pipe.d.ts +0 -7
  174. package/lib/common/utils/colorThemes.d.ts +0 -8
  175. package/lib/common/utils/indexedDbStore/index.d.ts +0 -25
  176. package/lib/common/utils/relativeTimeBuilder.d.ts +0 -1
  177. package/lib/common/utils/resourceCardLabel.d.ts +0 -1
  178. package/lib/common/utils/smartProp.d.ts +0 -2
  179. package/lib/common/utils/templateBuilder.d.ts +0 -1
  180. package/lib/fieldAbstract.d.ts +0 -60
  181. package/lib/fieldBoolean/index.d.ts +0 -10
  182. package/lib/fieldComposite/index.d.ts +0 -14
  183. package/lib/fieldDatetime/index.d.ts +0 -26
  184. package/lib/fieldHidden/index.d.ts +0 -6
  185. package/lib/fieldInput/index.d.ts +0 -35
  186. package/lib/fieldList/index.d.ts +0 -15
  187. package/lib/fieldRadio/index.d.ts +0 -14
  188. package/lib/fieldReference/index.d.ts +0 -73
  189. package/lib/fieldRichtext/index.d.ts +0 -27
  190. package/lib/fieldSelect/index.d.ts +0 -49
  191. package/lib/fieldText/index.d.ts +0 -15
  192. package/lib/fieldUnknown/index.d.ts +0 -6
  193. package/lib/index.d.ts +0 -65
  194. package/lib/layout/index.d.ts +0 -46
  195. package/lib/metaField/index.d.ts +0 -28
  196. package/lib/refDialog/index.d.ts +0 -33
  197. package/lib/resource/index.d.ts +0 -68
  198. package/lib/resourceCard/index.d.ts +0 -17
  199. package/lib/services/metaContext/index.d.ts +0 -32
  200. package/lib/services/metaMsg/index.d.ts +0 -14
  201. package/lib/services/metaReference/index.d.ts +0 -11
  202. package/lib/services/metaResource/index.d.ts +0 -31
  203. package/lib/services/metaResource/metaHttpClient.d.ts +0 -15
  204. package/lib/services/metaTracker/index.d.ts +0 -19
  205. package/lib/services/resourceDrafts/index.d.ts +0 -26
  206. package/public-api.d.ts +0 -1
@@ -1,83 +0,0 @@
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 } 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 * as i0 from "@angular/core";
13
- import * as i1 from "../services/metaContext";
14
- import * as i2 from "@angular/common";
15
- import * as i3 from "@angular/forms";
16
- import * as i4 from "../common/metaModel.pipe";
17
- export class FieldText extends FieldAbstract {
18
- constructor(metaContext) {
19
- super();
20
- this.metaContext = metaContext;
21
- }
22
- static setup(instance, parent, meta) {
23
- const d = meta.default || meta.defaultValue;
24
- if (d && !parent[meta.name]) {
25
- if (typeof (d) === 'string') {
26
- parent[meta.name] = d;
27
- }
28
- else {
29
- parent[meta.name] = d.id || d.value;
30
- }
31
- }
32
- }
33
- ngOnInit() {
34
- // if (typeof(this.parent[this.meta.name]) === 'string') {
35
- // this.parent[this.meta.name] = templateBuilder(this.metaContext, this.parent[this.meta.name]);
36
- // }
37
- const origValue = this.parent[this.meta.name];
38
- Object.defineProperty(this.parent, this.meta.name, {
39
- set: (value) => {
40
- if (value) {
41
- this.model = value;
42
- this.value = value;
43
- }
44
- else {
45
- delete this.model;
46
- delete this.value;
47
- }
48
- this.meta.$optional = this.isOptional;
49
- },
50
- get: () => this.value,
51
- enumerable: this.sendToServer,
52
- configurable: true
53
- });
54
- if (typeof (origValue) !== 'undefined') {
55
- this.parent[this.meta.name] = origValue;
56
- }
57
- if (!this.isPersistedParent && typeof (this.meta.auto?.template) === 'string') {
58
- this.metaContext.onContextChange.subscribe((context) => {
59
- const autoValue = templateBuilder({ context }, this.meta.auto.template);
60
- if (this.model === this.lastAutoValue && autoValue) {
61
- this.lastAutoValue = autoValue;
62
- this.parent[this.meta.name] = autoValue;
63
- }
64
- });
65
- }
66
- }
67
- onModelChangeLocal(value) {
68
- if (!value && this.prevModel && this.isPersistedParent) {
69
- value = '';
70
- }
71
- this.onModelChange(value);
72
- }
73
- textToSpeech() {
74
- this.focus();
75
- }
76
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: FieldText, deps: [{ token: i1.MetaContextService }], target: i0.ɵɵFactoryTarget.Component }); }
77
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: FieldText, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<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", styles: [".Vlt-composite__append--icon{bottom:7px;right:16px;padding:3px;width:initial;height:initial;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)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i4.MetaModelPipe, name: "metaModel" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
78
- }
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: FieldText, decorators: [{
80
- type: Component,
81
- args: [{ viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<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", styles: [".Vlt-composite__append--icon{bottom:7px;right:16px;padding:3px;width:initial;height:initial;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)}\n"] }]
82
- }], ctorParameters: function () { return [{ type: i1.MetaContextService }]; } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXRhLXVpL3NyYy9saWIvZmllbGRUZXh0L2luZGV4LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWV0YS11aS9zcmMvbGliL2ZpZWxkVGV4dC92aWV3Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsNkRBQTZEO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7O0FBUWxFLE1BQU0sT0FBTyxTQUFVLFNBQVEsYUFBYTtJQUkxQyxZQUFxQixXQUErQjtRQUNsRCxLQUFLLEVBQUUsQ0FBQztRQURXLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtJQUVwRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUk7UUFDakMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzQixJQUFJLE9BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLEVBQUU7Z0JBQzFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDO2FBQ3JDO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLDBEQUEwRDtRQUMxRCxrR0FBa0c7UUFDbEcsSUFBSTtRQUNKLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDakQsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxLQUFLLEVBQUU7b0JBQ1QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7b0JBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2lCQUNwQjtxQkFBTTtvQkFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztpQkFDbkI7Z0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUN4QyxDQUFDO1lBQ0QsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQ3JCLFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWTtZQUM3QixZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUFDLENBQUM7UUFDSCxJQUFJLE9BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxXQUFXLEVBQUU7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztTQUN6QztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksT0FBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLFFBQVEsRUFBRTtZQUM1RSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDckQsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3hFLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsYUFBYSxJQUFJLFNBQVMsRUFBRTtvQkFDbEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7b0JBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUM7aUJBQ3pDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFLO1FBQ3RCLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDdEQsS0FBSyxHQUFHLEVBQUUsQ0FBQztTQUNaO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7K0dBOURVLFNBQVM7bUdBQVQsU0FBUywyRUNwQnRCLG90REF1QkEscWxERExpQixDQUFFLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBRTs7NEZBRTFELFNBQVM7a0JBTHJCLFNBQVM7b0NBR08sQ0FBRSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQEF1dGhvcjogQWxleGFuZGVyLlZhbmdlbG92QHZvbmFnZS5jb21cbiAqIEBEYXRlOiAyMDE5LTA5LTE5IDE3OjM1OjEzXG4gKiBATGFzdCBNb2RpZmllZCBieTogQWxleGFuZGVyLlZhbmdlbG92QHZvbmFnZS5jb21cbiAqIEBMYXN0IE1vZGlmaWVkIHRpbWU6IDIwMjAtMDItMjYgMjA6MDA6MzNcbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBGaWVsZEFic3RyYWN0IH0gZnJvbSAnLi4vZmllbGRBYnN0cmFjdCc7XG4vLyBpbXBvcnQgeyB0TWV0YUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vbWV0YVR5cGVzL3RNZXRhRmllbGQnXG5pbXBvcnQgeyB0ZW1wbGF0ZUJ1aWxkZXIgfSBmcm9tICcuLi9jb21tb24vdXRpbHMvdGVtcGxhdGVCdWlsZGVyJztcbmltcG9ydCB7IE1ldGFDb250ZXh0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21ldGFDb250ZXh0JztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi92aWV3Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS5zY3NzJ10sXG4gIHZpZXdQcm92aWRlcnM6IFsgeyBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLCB1c2VFeGlzdGluZzogTmdGb3JtIH0gXVxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZFRleHQgZXh0ZW5kcyBGaWVsZEFic3RyYWN0IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gQElucHV0KCkgbWV0YTogYW55O1xuICB2YWx1ZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIG1ldGFDb250ZXh0OiBNZXRhQ29udGV4dFNlcnZpY2UgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHN0YXRpYyBzZXR1cChpbnN0YW5jZSwgcGFyZW50LCBtZXRhKSB7XG4gICAgY29uc3QgZCA9IG1ldGEuZGVmYXVsdCB8fCBtZXRhLmRlZmF1bHRWYWx1ZTtcbiAgICBpZiAoZCAmJiAhcGFyZW50W21ldGEubmFtZV0pIHtcbiAgICAgIGlmICh0eXBlb2YoZCkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHBhcmVudFttZXRhLm5hbWVdID0gZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhcmVudFttZXRhLm5hbWVdID0gZC5pZCB8fCBkLnZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIGlmICh0eXBlb2YodGhpcy5wYXJlbnRbdGhpcy5tZXRhLm5hbWVdKSA9PT0gJ3N0cmluZycpIHtcbiAgICAvLyAgIHRoaXMucGFyZW50W3RoaXMubWV0YS5uYW1lXSA9IHRlbXBsYXRlQnVpbGRlcih0aGlzLm1ldGFDb250ZXh0LCB0aGlzLnBhcmVudFt0aGlzLm1ldGEubmFtZV0pO1xuICAgIC8vIH1cbiAgICBjb25zdCBvcmlnVmFsdWUgPSB0aGlzLnBhcmVudFt0aGlzLm1ldGEubmFtZV07XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMucGFyZW50LCB0aGlzLm1ldGEubmFtZSwge1xuICAgICAgc2V0OiAodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5tb2RlbCA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZWxldGUgdGhpcy5tb2RlbDtcbiAgICAgICAgICBkZWxldGUgdGhpcy52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1ldGEuJG9wdGlvbmFsID0gdGhpcy5pc09wdGlvbmFsO1xuICAgICAgfSxcbiAgICAgIGdldDogKCkgPT4gdGhpcy52YWx1ZSxcbiAgICAgIGVudW1lcmFibGU6IHRoaXMuc2VuZFRvU2VydmVyLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgaWYgKHR5cGVvZihvcmlnVmFsdWUpICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5wYXJlbnRbdGhpcy5tZXRhLm5hbWVdID0gb3JpZ1ZhbHVlO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNQZXJzaXN0ZWRQYXJlbnQgJiYgdHlwZW9mKHRoaXMubWV0YS5hdXRvPy50ZW1wbGF0ZSkgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLm1ldGFDb250ZXh0Lm9uQ29udGV4dENoYW5nZS5zdWJzY3JpYmUoKGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgYXV0b1ZhbHVlID0gdGVtcGxhdGVCdWlsZGVyKHsgY29udGV4dCB9LCB0aGlzLm1ldGEuYXV0by50ZW1wbGF0ZSk7XG4gICAgICAgIGlmICh0aGlzLm1vZGVsID09PSB0aGlzLmxhc3RBdXRvVmFsdWUgJiYgYXV0b1ZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5sYXN0QXV0b1ZhbHVlID0gYXV0b1ZhbHVlO1xuICAgICAgICAgIHRoaXMucGFyZW50W3RoaXMubWV0YS5uYW1lXSA9IGF1dG9WYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25Nb2RlbENoYW5nZUxvY2FsKHZhbHVlKSB7XG4gICAgaWYgKCF2YWx1ZSAmJiB0aGlzLnByZXZNb2RlbCAmJiB0aGlzLmlzUGVyc2lzdGVkUGFyZW50KSB7XG4gICAgICB2YWx1ZSA9ICcnO1xuICAgIH1cbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgdGV4dFRvU3BlZWNoKCkge1xuICAgIHRoaXMuZm9jdXMoKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPSd2Z2lwLW1ldGEtZmllbGQtcHJldmlldycgKm5nSWY9J3ByZXZpZXcgJiYgbW9kZWwnPlxuICA8ZGl2IGNsYXNzPSd2Z2lwLW1ldGEtZmllbGQtbGFiZWwnIFt0aXRsZV09J21ldGEubGFiZWwgfHwgbWV0YS5uYW1lJz57e21ldGEubGFiZWwgfHwgbWV0YS5uYW1lfX08L2Rpdj5cbiAgPGRpdiBjbGFzcz0ndmdpcC1tZXRhLWZpZWxkLXZhbHVlIF9fZ3UnPnt7cGFyZW50W21ldGEubmFtZV19fTwvZGl2PlxuPC9kaXY+XG48ZGl2ICpuZ0lmPSchcHJldmlldycgY2xhc3M9XCJWbHQtZm9ybV9fZWxlbWVudCBWbHQtZm9ybV9fZWxlbWVudC0tYmlnXCIgW25nQ2xhc3NdPVwieyAnVmx0LWZvcm1fX2VsZW1lbnQtLWVycm9yJzogZi5pbnZhbGlkICYmICgoZiB8IG1ldGFNb2RlbCkuX3BhcmVudC5zdWJtaXR0ZWQgfHwgKGYgfCBtZXRhTW9kZWwgKS50b3VjaGVkKSB9XCI+XG4gIDxsYWJlbCBjbGFzcz0nd3JhcHBlcic+XG4gICAgPGRpdiBjbGFzcz1cIlZsdC10ZXh0YXJlYVwiPlxuICAgICAgPHRleHRhcmVhIGNsYXNzPSdtYWluIG1vZGVsJyBbcmVxdWlyZWRdPSd2YWxpZGF0aW9ucy5yZXF1aXJlZCcgW21heGxlbmd0aF09J3ZhbGlkYXRpb25zLm1heGxlbmd0aCcgcm93cz1cInt7IG1ldGEucm93cyB8fCA0IH19XCIgcGxhY2Vob2xkZXI9JyAnIFsobmdNb2RlbCldPSdtb2RlbCcgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlbENoYW5nZUxvY2FsKCRldmVudClcIiAjZj0nbmdNb2RlbCcgW25hbWVdPSduYW1lJz48L3RleHRhcmVhPlxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiVmx0LWNvbXBvc2l0ZV9fYXBwZW5kIFZsdC1jb21wb3NpdGVfX2FwcGVuZC0taWNvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiVmx0LWNvbXBvc2l0ZV9faWNvblwiIChjbGljayk9J3RleHRUb1NwZWVjaCgpJz5cbiAgICAgICAgICA8c3ZnPjx1c2UgeGxpbms6aHJlZj1cInZvbHRhL3ZvbHRhLWljb25zLnN2ZyNWbHQtaWNvbi1taWNyb3Bob25lXCIvPjwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PiAtLT5cbiAgICAgIDxsYWJlbCBjbGFzcz1cIlZsdC1sYWJlbFwiPnt7bWV0YS5sYWJlbCB8fCBtZXRhLm5hbWV9fTxzcGFuICpuZ0lmPSd2YWxpZGF0aW9ucy5yZXF1aXJlZCcgY2xhc3M9J1ZsdC1yZWQnPio8L3NwYW4+PC9sYWJlbD4gPCEtLSBlc2xpbnQtZGlzYWJsZS1saW5lIEBhbmd1bGFyLWVzbGludC90ZW1wbGF0ZS9sYWJlbC1oYXMtYXNzb2NpYXRlZC1jb250cm9sIC0tPlxuICAgIDwvZGl2PlxuICA8L2xhYmVsPlxuICA8c21hbGwgKm5nSWY9J2YuaW52YWxpZCAmJiAoKGYgfCBtZXRhTW9kZWwpLl9wYXJlbnQuc3VibWl0dGVkIHx8ICgoZiB8IG1ldGFNb2RlbCApLnRvdWNoZWQpKScgY2xhc3M9XCJWbHQtZm9ybV9fZWxlbWVudF9fZXJyb3JcIj5cbiAgICA8c3BhbiAqbmdJZj1cImYuZXJyb3JzLnJlcXVpcmVkXCI+UmVxdWlyZWQ8L3NwYW4+XG4gICAgPHNwYW4gKm5nSWY9XCJmLmVycm9ycy5tYXhsZW5ndGhcIj5MZW5ndGggY2FuIG5vdCBleGNlZWQge3t2YWxpZGF0aW9ucy5tYXhsZW5ndGh9fSBjaGFyYWN0ZXJzPC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwiZi5lcnJvcnMuY3VzdG9tXCI+e3tmLmVycm9ycy5jdXN0b219fSZuYnNwOzwvc3Bhbj5cbiAgPC9zbWFsbD5cbiAgPHNtYWxsICpuZ0lmPSdtZXRhLmhlbHBUZXh0JyBjbGFzcz1cIlZsdC1mb3JtX19lbGVtZW50X19oaW50XCI+e3ttZXRhLmhlbHBUZXh0fX08L3NtYWxsPlxuPC9kaXY+XG4iXX0=
@@ -1,19 +0,0 @@
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
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/common";
11
- export class FieldUnknown extends FieldAbstract {
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: FieldUnknown, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: FieldUnknown, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<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", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: FieldUnknown, decorators: [{
16
- type: Component,
17
- args: [{ template: "<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" }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXRhLXVpL3NyYy9saWIvZmllbGRVbmtub3duL2luZGV4LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWV0YS11aS9zcmMvbGliL2ZpZWxkVW5rbm93bi92aWV3Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBS2pELE1BQU0sT0FBTyxZQUFhLFNBQVEsYUFBYTsrR0FBbEMsWUFBWTttR0FBWixZQUFZLDJFQ2J6QixzaUJBU0E7OzRGRElhLFlBQVk7a0JBSHhCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQEF1dGhvcjogQWxleGFuZGVyLlZhbmdlbG92QHZvbmFnZS5jb21cbiAqIEBEYXRlOiAyMDE5LTA5LTE5IDE3OjM1OjE5XG4gKiBATGFzdCBNb2RpZmllZCBieTogQWxleGFuZGVyLlZhbmdlbG92QHZvbmFnZS5jb21cbiAqIEBMYXN0IE1vZGlmaWVkIHRpbWU6IDIwMTktMTEtMTUgMTM6MDQ6MDFcbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkQWJzdHJhY3QgfSBmcm9tICcuLi9maWVsZEFic3RyYWN0JztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi92aWV3Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkVW5rbm93biBleHRlbmRzIEZpZWxkQWJzdHJhY3Qge31cbiIsIjxkaXYgY2xhc3M9XCJWbHQtZm9ybV9fZWxlbWVudCBWbHQtZm9ybV9fZWxlbWVudC0tYmlnXCI+XG4gIDxkaXYgY2xhc3M9XCJWbHQtaW5wdXRcIj5cbiAgICA8bGFiZWwgY2xhc3M9J3dyYXBwZXInPlxuICAgICAgPGlucHV0IGNsYXNzPSdtYWluIG1vZGVsJyB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiXCIgdmFsdWU9XCJVbmtub3duIGZpZWxkIHR5cGUgJ3t7bWV0YS50eXBlfX0nLlwiIGRpc2FibGVkLz5cbiAgICAgIDxsYWJlbCBjbGFzcz1cIlZsdC1sYWJlbCBWbHQtdHJ1bmNhdGVcIiBzdHlsZT0ncGFkZGluZy1yaWdodDogMjBweDsnPnt7bWV0YS5sYWJlbCB8fCBtZXRhLm5hbWV9fTwvbGFiZWw+IDwhLS0gZXNsaW50LWRpc2FibGUtbGluZSBAYW5ndWxhci1lc2xpbnQvdGVtcGxhdGUvbGFiZWwtaGFzLWFzc29jaWF0ZWQtY29udHJvbCAtLT5cbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbiAgPHNtYWxsICpuZ0lmPSdtZXRhLmhpbnQnIGNsYXNzPVwiVmx0LWZvcm1fX2VsZW1lbnRfX2hpbnRcIj57e21ldGEuaGludH19PC9zbWFsbD5cbjwvZGl2PlxuIl19
@@ -1,163 +0,0 @@
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 { MetaRefDialog } from './refDialog';
13
- import { MetaLayout } from './layout';
14
- import { MetaResource } from './resource';
15
- import { MetaResourceCard } from './resourceCard';
16
- import { FieldUnknown } from './fieldUnknown';
17
- import { FieldInput } from './fieldInput';
18
- import { FieldText } from './fieldText';
19
- import { FieldSelect } from './fieldSelect';
20
- import { FieldReference } from './fieldReference';
21
- import { FieldComposite } from './fieldComposite';
22
- import { FieldBoolean } from './fieldBoolean';
23
- import { FieldRadio } from './fieldRadio';
24
- import { FieldList } from './fieldList';
25
- import { FieldRichtext } from './fieldRichtext';
26
- import { FieldDatetime } from './fieldDatetime';
27
- import { FieldHidden } from './fieldHidden';
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
- import { MetaField, MetaFieldContentDirective } from './metaField';
41
- import * as i0 from "@angular/core";
42
- import * as i1 from "ngx-quill";
43
- export * from './common/utils/colorThemes';
44
- export * from './common/metaNormalizer';
45
- export class MetaModule {
46
- static withProviders(customProviders) {
47
- return {
48
- ngModule: MetaModule,
49
- providers: customProviders
50
- };
51
- }
52
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: MetaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
53
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.11", ngImport: i0, type: MetaModule, declarations: [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
- FieldHidden,
74
- MetaAutofocusDirective], imports: [CommonModule,
75
- FormsModule,
76
- ReactiveFormsModule,
77
- HttpClientModule, i1.QuillModule], exports: [MetaIconsPipe,
78
- MetaModelPipe,
79
- MetaStripHtmlPipe,
80
- MetaField,
81
- MetaLayout,
82
- MetaResource,
83
- MetaResourceCard,
84
- MetaAutofocusDirective] }); }
85
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: MetaModule, imports: [CommonModule,
86
- FormsModule,
87
- ReactiveFormsModule,
88
- HttpClientModule,
89
- QuillModule.forRoot()
90
- // QuillModule.forRoot({
91
- // modules: {
92
- // syntax: false,
93
- // toolbar: [
94
- // ['bold', 'italic', 'underline'],
95
- // [{ list: 'bullet' }],
96
- // [{ header: [1, 2, 3, 4, 5, 6, false] }],
97
- // [{ font: [] }],
98
- // [{ align: [] }]
99
- // ]
100
- // }
101
- // })
102
- ] }); }
103
- }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: MetaModule, decorators: [{
105
- type: NgModule,
106
- args: [{
107
- declarations: [
108
- MetaIconsPipe,
109
- MetaModelPipe,
110
- MetaStripHtmlPipe,
111
- MetaField,
112
- MetaRefDialog,
113
- MetaFieldContentDirective,
114
- MetaLayout,
115
- MetaResource,
116
- MetaResourceCard,
117
- FieldUnknown,
118
- FieldInput,
119
- FieldText,
120
- FieldSelect,
121
- FieldReference,
122
- FieldComposite,
123
- FieldBoolean,
124
- FieldRadio,
125
- FieldList,
126
- FieldRichtext,
127
- FieldDatetime,
128
- FieldHidden,
129
- MetaAutofocusDirective
130
- ],
131
- exports: [
132
- MetaIconsPipe,
133
- MetaModelPipe,
134
- MetaStripHtmlPipe,
135
- MetaField,
136
- MetaLayout,
137
- MetaResource,
138
- MetaResourceCard,
139
- MetaAutofocusDirective
140
- ],
141
- imports: [
142
- CommonModule,
143
- FormsModule,
144
- ReactiveFormsModule,
145
- HttpClientModule,
146
- QuillModule.forRoot()
147
- // QuillModule.forRoot({
148
- // modules: {
149
- // syntax: false,
150
- // toolbar: [
151
- // ['bold', 'italic', 'underline'],
152
- // [{ list: 'bullet' }],
153
- // [{ header: [1, 2, 3, 4, 5, 6, false] }],
154
- // [{ font: [] }],
155
- // [{ align: [] }]
156
- // ]
157
- // }
158
- // })
159
- ]
160
- }]
161
- }] });
162
- export { MetaField, MetaFieldContentDirective, MetaRefDialog, MetaResourceCard, MetaIconsPipe, MetaModelPipe, MetaStripHtmlPipe, MetaAutofocusDirective, FieldUnknown, FieldInput, FieldText, FieldSelect, MetaLayout, MetaResource, FieldBoolean, FieldRadio, FieldList, FieldComposite, FieldReference, FieldHidden, FieldRichtext, FieldDatetime, MetaContextService, MetaTrackerService, ResourceDraftsService, MetaMsgService, MetaReferenceService, MetaResourceService, MetaHttpClient, relativeTimeBuilder };
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXRhLXVpL3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsUUFBUSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxN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d0JBQ2IsV0FBVzt3QkFDWCxzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixTQUFTO3dCQUNULFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsV0FBVyxDQUFDLE9BQU8sRUFBRTt3QkFDckIsd0JBQXdCO3dCQUN4QixlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQix5Q0FBeUM7d0JBQ3pDLDhCQUE4Qjt3QkFDOUIsaURBQWlEO3dCQUNqRCx3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIsUUFBUTt3QkFDUixNQUFNO3dCQUNOLEtBQUs7cUJBQ047aUJBQ0Y7O0FBVUQsT0FBTyxFQUNMLFNBQVMsRUFBRSx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQ3JFLGFBQWEsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQ3ZFLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUMxRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFDaEYsYUFBYSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFDM0YsY0FBYyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFDekUsbUJBQW1CLEVBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQEF1dGhvcjogQWxleGFuZGVyLlZhbmdlbG92QHZvbmFnZS5jb21cbiAqIEBEYXRlOiAyMDE5LTA5LTE5IDE3OjM0OjM0XG4gKiBATGFzdCBNb2RpZmllZCBieTogQWxleGFuZGVyLlZhbmdlbG92QHZvbmFnZS5jb21cbiAqIEBMYXN0IE1vZGlmaWVkIHRpbWU6IDIwMjEtMDItMDkgMTY6NTc6MjlcbiAqL1xuXG5pbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgUXVpbGxNb2R1bGUgfSBmcm9tICduZ3gtcXVpbGwnO1xuXG5pbXBvcnQgeyBNZXRhUmVmRGlhbG9nIH0gZnJvbSAnLi9yZWZEaWFsb2cnO1xuXG5pbXBvcnQgeyBNZXRhTGF5b3V0IH0gZnJvbSAnLi9sYXlvdXQnO1xuXG5pbXBvcnQgeyBNZXRhUmVzb3VyY2UgfSBmcm9tICcuL3Jlc291cmNlJztcblxuaW1wb3J0IHsgTWV0YVJlc291cmNlQ2FyZCB9IGZyb20gJy4vcmVzb3VyY2VDYXJkJztcblxuaW1wb3J0IHsgRmllbGRVbmtub3duIH0gZnJvbSAnLi9maWVsZFVua25vd24nO1xuaW1wb3J0IHsgRmllbGRJbnB1dCB9IGZyb20gJy4vZmllbGRJbnB1dCc7XG5pbXBvcnQgeyBGaWVsZFRleHQgfSBmcm9tICcuL2ZpZWxkVGV4dCc7XG5cbmltcG9ydCB7IEZpZWxkU2VsZWN0IH0gZnJvbSAnLi9maWVsZFNlbGVjdCc7XG5cbmltcG9ydCB7IEZpZWxkUmVmZXJlbmNlIH0gZnJvbSAnLi9maWVsZFJlZmVyZW5jZSc7XG5cbmltcG9ydCB7IEZpZWxkQ29tcG9zaXRlIH0gZnJvbSAnLi9maWVsZENvbXBvc2l0ZSc7XG5cbmltcG9ydCB7IEZpZWxkQm9vbGVhbiB9IGZyb20gJy4vZmllbGRCb29sZWFuJztcbmltcG9ydCB7IEZpZWxkUmFkaW8gfSBmcm9tICcuL2ZpZWxkUmFkaW8nO1xuXG5pbXBvcnQgeyBGaWVsZExpc3QgfSBmcm9tICcuL2ZpZWxkTGlzdCc7XG5cbmltcG9ydCB7IEZpZWxkUmljaHRleHQgfSBmcm9tICcuL2ZpZWxkUmljaHRleHQnO1xuaW1wb3J0IHsgRmllbGREYXRldGltZSB9IGZyb20gJy4vZmllbGREYXRldGltZSc7XG5cbmltcG9ydCB7IEZpZWxkSGlkZGVuIH0gZnJvbSAnLi9maWVsZEhpZGRlbic7XG5cbmltcG9ydCB7IE1ldGFJY29uc1BpcGUgfSBmcm9tICcuL2NvbW1vbi9tZXRhSWNvbnMucGlwZSc7XG5pbXBvcnQgeyBNZXRhTW9kZWxQaXBlIH0gZnJvbSAnLi9jb21tb24vbWV0YU1vZGVsLnBpcGUnO1xuaW1wb3J0IHsgTWV0YVN0cmlwSHRtbFBpcGUgfSBmcm9tICcuL2NvbW1vbi9tZXRhU3RyaXBIdG1sLnBpcGUnO1xuaW1wb3J0IHsgTWV0YUF1dG9mb2N1c0RpcmVjdGl2ZSB9IGZyb20gJy4vY29tbW9uL21ldGFBdXRvZm9jdXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IE1ldGFDb250ZXh0U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvbWV0YUNvbnRleHQnO1xuaW1wb3J0IHsgTWV0YVRyYWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9tZXRhVHJhY2tlcic7XG5pbXBvcnQgeyBSZXNvdXJjZURyYWZ0c1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3Jlc291cmNlRHJhZnRzJztcbmltcG9ydCB7IE1ldGFNc2dTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9tZXRhTXNnJztcbmltcG9ydCB7IE1ldGFSZWZlcmVuY2VTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9tZXRhUmVmZXJlbmNlJztcbmltcG9ydCB7IE1ldGFSZXNvdXJjZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL21ldGFSZXNvdXJjZSc7XG5pbXBvcnQgeyBNZXRhSHR0cENsaWVudCB9IGZyb20gJy4vc2VydmljZXMvbWV0YVJlc291cmNlL21ldGFIdHRwQ2xpZW50JztcbmltcG9ydCB7IHJlbGF0aXZlVGltZUJ1aWxkZXIgfSBmcm9tICcuL2NvbW1vbi91dGlscy9yZWxhdGl2ZVRpbWVCdWlsZGVyJztcbmltcG9ydCB7IE1ldGFGaWVsZCwgTWV0YUZpZWxkQ29udGVudERpcmVjdGl2ZSB9IGZyb20gJy4vbWV0YUZpZWxkJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb21tb24vdXRpbHMvY29sb3JUaGVtZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tb24vbWV0YU5vcm1hbGl6ZXInO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBNZXRhSWNvbnNQaXBlLFxuICAgIE1ldGFNb2RlbFBpcGUsXG4gICAgTWV0YVN0cmlwSHRtbFBpcGUsXG4gICAgTWV0YUZpZWxkLFxuICAgIE1ldGFSZWZEaWFsb2csXG4gICAgTWV0YUZpZWxkQ29udGVudERpcmVjdGl2ZSxcbiAgICBNZXRhTGF5b3V0LFxuICAgIE1ldGFSZXNvdXJjZSxcbiAgICBNZXRhUmVzb3VyY2VDYXJkLFxuICAgIEZpZWxkVW5rbm93bixcbiAgICBGaWVsZElucHV0LFxuICAgIEZpZWxkVGV4dCxcbiAgICBGaWVsZFNlbGVjdCxcbiAgICBGaWVsZFJlZmVyZW5jZSxcbiAgICBGaWVsZENvbXBvc2l0ZSxcbiAgICBGaWVsZEJvb2xlYW4sXG4gICAgRmllbGRSYWRpbyxcbiAgICBGaWVsZExpc3QsXG4gICAgRmllbGRSaWNodGV4dCxcbiAgICBGaWVsZERhdGV0aW1lLFxuICAgIEZpZWxkSGlkZGVuLFxuICAgIE1ldGFBdXRvZm9jdXNEaXJlY3RpdmVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIE1ldGFJY29uc1BpcGUsXG4gICAgTWV0YU1vZGVsUGlwZSxcbiAgICBNZXRhU3RyaXBIdG1sUGlwZSxcbiAgICBNZXRhRmllbGQsXG4gICAgTWV0YUxheW91dCxcbiAgICBNZXRhUmVzb3VyY2UsXG4gICAgTWV0YVJlc291cmNlQ2FyZCxcbiAgICBNZXRhQXV0b2ZvY3VzRGlyZWN0aXZlXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIFF1aWxsTW9kdWxlLmZvclJvb3QoKVxuICAgIC8vIFF1aWxsTW9kdWxlLmZvclJvb3Qoe1xuICAgIC8vICAgbW9kdWxlczoge1xuICAgIC8vICAgICBzeW50YXg6IGZhbHNlLFxuICAgIC8vICAgICB0b29sYmFyOiBbXG4gICAgLy8gICAgICAgWydib2xkJywgJ2l0YWxpYycsICd1bmRlcmxpbmUnXSxcbiAgICAvLyAgICAgICBbeyBsaXN0OiAnYnVsbGV0JyB9XSxcbiAgICAvLyAgICAgICBbeyBoZWFkZXI6IFsxLCAyLCAzLCA0LCA1LCA2LCBmYWxzZV0gfV0sXG4gICAgLy8gICAgICAgW3sgZm9udDogW10gfV0sXG4gICAgLy8gICAgICAgW3sgYWxpZ246IFtdIH1dXG4gICAgLy8gICAgIF1cbiAgICAvLyAgIH1cbiAgICAvLyB9KVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFNb2R1bGUge1xuICBzdGF0aWMgd2l0aFByb3ZpZGVycyhjdXN0b21Qcm92aWRlcnM6IGFueSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TWV0YU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTWV0YU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogY3VzdG9tUHJvdmlkZXJzXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQge1xuICBNZXRhRmllbGQsIE1ldGFGaWVsZENvbnRlbnREaXJlY3RpdmUsIE1ldGFSZWZEaWFsb2csIE1ldGFSZXNvdXJjZUNhcmQsXG4gIE1ldGFJY29uc1BpcGUsIE1ldGFNb2RlbFBpcGUsIE1ldGFTdHJpcEh0bWxQaXBlLCBNZXRhQXV0b2ZvY3VzRGlyZWN0aXZlLFxuICBGaWVsZFVua25vd24sIEZpZWxkSW5wdXQsIEZpZWxkVGV4dCwgRmllbGRTZWxlY3QsIE1ldGFMYXlvdXQsIE1ldGFSZXNvdXJjZSxcbiAgRmllbGRCb29sZWFuLCBGaWVsZFJhZGlvLCBGaWVsZExpc3QsIEZpZWxkQ29tcG9zaXRlLCBGaWVsZFJlZmVyZW5jZSwgRmllbGRIaWRkZW4sXG4gIEZpZWxkUmljaHRleHQsIEZpZWxkRGF0ZXRpbWUsIE1ldGFDb250ZXh0U2VydmljZSwgTWV0YVRyYWNrZXJTZXJ2aWNlLCBSZXNvdXJjZURyYWZ0c1NlcnZpY2UsXG4gIE1ldGFNc2dTZXJ2aWNlLCBNZXRhUmVmZXJlbmNlU2VydmljZSwgTWV0YVJlc291cmNlU2VydmljZSwgTWV0YUh0dHBDbGllbnQsXG4gIHJlbGF0aXZlVGltZUJ1aWxkZXJcbn07XG4iXX0=
@@ -1,212 +0,0 @@
1
- import { Component, Input, } from "@angular/core";
2
- import { Subject } from "rxjs";
3
- import { resourceCardLabel } from "../common/utils/resourceCardLabel";
4
- import { debounceTime, distinctUntilChanged } from "rxjs/operators";
5
- import { metaDark, metaLight } from "../common/utils/colorThemes";
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../services/metaResource";
8
- import * as i2 from "../services/metaReference";
9
- import * as i3 from "../services/metaMsg";
10
- import * as i4 from "../services/metaContext";
11
- import * as i5 from "@angular/common";
12
- import * as i6 from "../metaField/index";
13
- export class MetaLayout {
14
- constructor(viewContainerRef, ref, el, metaResource, referenceService, metaMsgService, metaContext) {
15
- this.viewContainerRef = viewContainerRef;
16
- this.ref = ref;
17
- this.el = el;
18
- this.metaResource = metaResource;
19
- this.referenceService = referenceService;
20
- this.metaMsgService = metaMsgService;
21
- this.metaContext = metaContext;
22
- this.optionalFields = {};
23
- this.showAll = false;
24
- this.fieldsVisibilityChanged = new Subject();
25
- this.childResourceCardLabel = resourceCardLabel;
26
- // console.log('MetaLayout', this.meta);
27
- this.overlayContainer = el.nativeElement;
28
- }
29
- get isPersistedResource() {
30
- // eslint-disable-next-line no-underscore-dangle
31
- return (this.resource &&
32
- this.resource._vgis &&
33
- (this.resource._vgis.externalId || this.resource._vgis.id));
34
- }
35
- ngOnInit() {
36
- this.integrationCode = this.meta.integrationCode || this.integration;
37
- this.resourceType = this.meta.resourceType || this.type;
38
- this.parentForm = this.el.nativeElement.closest("form");
39
- this.configureOptionalSections();
40
- this.fieldsVisibilityChanged
41
- .pipe(debounceTime(100), distinctUntilChanged())
42
- .subscribe(() => {
43
- this.countOptionalFields();
44
- });
45
- setTimeout(() => {
46
- this.countOptionalFields();
47
- }, 0);
48
- if (this.parentForm) {
49
- this.parentForm.addEventListener("change", () => {
50
- setTimeout(() => {
51
- this.fieldsVisibilityChanged.next(JSON.stringify(this.resource));
52
- this.countOptionalFields();
53
- }, 0);
54
- });
55
- }
56
- if (this.theme !== "inherit") {
57
- this.applyTheme();
58
- }
59
- if (this.isPersistedResource && this.meta.children && this.preview) {
60
- this.procChildrenExternalLinks();
61
- }
62
- }
63
- ngDoCheck() {
64
- this.countOptionalFields();
65
- }
66
- ngOnChanges(changes) {
67
- if (changes.meta) {
68
- this.configureOptionalSections();
69
- setTimeout(() => {
70
- this.countOptionalFields();
71
- }, 0);
72
- }
73
- if (changes.theme) {
74
- this.theme = changes.theme.currentValue;
75
- this.applyTheme();
76
- }
77
- }
78
- countOptionalFields() {
79
- let count = 0;
80
- const countSectionFields = (s) => {
81
- for (const f of s.fields || []) {
82
- if (f.fields?.length && !f.visible) {
83
- countSectionFields(f);
84
- }
85
- else {
86
- if (f.$optional && !f.$hidden) {
87
- count++;
88
- }
89
- }
90
- }
91
- };
92
- for (const s of this.meta.sections) {
93
- const notOptionalAny = s.fields?.find((f) => !f.$optional);
94
- s.$optional = !notOptionalAny;
95
- if (!s.visible) {
96
- countSectionFields(s);
97
- }
98
- }
99
- this.optionalFieldsCount = count;
100
- }
101
- configureOptionalSections() {
102
- if (this.meta?.sections) {
103
- for (const s of this.meta.sections) {
104
- Object.defineProperty(s, "$optional", {
105
- value: true,
106
- writable: true,
107
- configurable: true,
108
- enumerable: false,
109
- });
110
- }
111
- }
112
- }
113
- ngAfterContentChecked() {
114
- this.ref.detectChanges();
115
- }
116
- toggleOptionalFields() {
117
- this.showAll = !this.showAll;
118
- this.ngAfterContentChecked();
119
- }
120
- buildExternalLinkForChild(child) {
121
- if (child?.externalId || child.id) {
122
- this.metaMsgService.sendMessage(this.integrationCode.toUpperCase(), {
123
- action: "buildExternalLink",
124
- integrationCode: this.integrationCode.toLowerCase(),
125
- ref: {
126
- parentRefId: this.resource._vgis.externalId || this.resource._vgis.id,
127
- parentResourceType: this.resource._vgis.resourceType,
128
- ...child
129
- },
130
- profile: this.metaContext.profiles[this.integrationCode.toUpperCase()]
131
- }, (response) => {
132
- if (!response.error) {
133
- child.externalLink = response.externalLink;
134
- }
135
- else {
136
- console.warn("No external link support for", this.integrationCode, child.resourceType);
137
- }
138
- });
139
- }
140
- }
141
- procChildrenExternalLinks() {
142
- for (const child of this.meta.children) {
143
- let childrenValue = this.resource[child.name];
144
- Object.defineProperty(this.resource, child.name, {
145
- set: (children) => {
146
- childrenValue = children;
147
- if (children instanceof Array) {
148
- childrenValue = children;
149
- for (const c in children) {
150
- if (children[c]?._vgis && !children[c]._vgis.externalLink) { // some day BE will start providing it
151
- this.buildExternalLinkForChild(children[c]._vgis);
152
- }
153
- }
154
- }
155
- },
156
- get: () => childrenValue,
157
- enumerable: true,
158
- configurable: true
159
- });
160
- if (childrenValue) {
161
- this.resource[child.name] = childrenValue;
162
- }
163
- }
164
- }
165
- async openChild(childResource, childModel) {
166
- const metaRefDialog = await import("../refDialog").then((m) => m.MetaRefDialog);
167
- childResource.reference.parent = this.resource._vgis; // eslint-disable-line no-underscore-dangle
168
- const refDialogComponent = this.viewContainerRef.createComponent(metaRefDialog);
169
- this.referenceService
170
- .openDialog(refDialogComponent, this.metaResource, this.integrationCode, childResource.reference, childModel, childModel && childResource.reference.editable === false // is preview mode
171
- )
172
- .subscribe((result) => {
173
- if (result?.raw) {
174
- if (!this.resource[childResource.name]) {
175
- this.resource[childResource.name] = [];
176
- }
177
- if (childModel) {
178
- Object.assign(childModel, result.raw);
179
- }
180
- else {
181
- this.buildExternalLinkForChild(result.raw._vgis);
182
- this.resource[childResource.name].push(result.raw);
183
- }
184
- }
185
- });
186
- }
187
- applyTheme() {
188
- const metaTheme = this.theme === "dark" ? metaDark : metaLight;
189
- for (const key of Object.keys(metaTheme.properties)) {
190
- this.el.nativeElement.style.setProperty(key, metaTheme.properties[key]);
191
- }
192
- }
193
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: MetaLayout, deps: [{ token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.MetaResourceService }, { token: i2.MetaReferenceService }, { token: i3.MetaMsgService }, { token: i4.MetaContextService }], target: i0.ɵɵFactoryTarget.Component }); }
194
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: MetaLayout, selector: "vgip-meta-layout", inputs: { meta: "meta", resource: "resource", integration: "integration", type: "type", preview: "preview", theme: "theme" }, usesOnChanges: true, ngImport: i0, 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: !field.$invisible && (showAll || true) }\" theme='inherit' [attr.data-theme]='theme'></vgip-meta-field>\n\t\t\t</ng-container>\n\t\t</div>\n\t</div>\n</div>\n<div *ngIf='isPersistedResource && meta.children && preview'>\n\t<div *ngFor='let child of meta.children'>\n\t\t<h5 class='Vlt-children__title'>\n\t\t\t<svg class=\"Vlt-icon\"><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-stack\" /></svg>&nbsp;\n\t\t\t{{child.label}} <span class='Vlt-grey'>({{(resource[child.name] || []).length}})</span>\n\t\t</h5>\n\t\t<div *ngFor=\"let c of resource[child.name]\" style='position: relative;'>\n\n\t\t\t<div class=\"Vlt-card Vlt-bg-white\">\n\t\t\t\t<div class=\"Vlt-card__content Vlt-btn-on-hover\">\n\t\t\t\t\t<h5>{{childResourceCardLabel(c)}}</h5>\n\t\t\t\t\t<div style='font-size: 12px; line-height: 16px;'>\n\t\t\t\t\t\tCreated: <span class='Vlt-black'>{{c._vgis.createdDate | date:'mediumDate'}}</span>\n\t\t\t\t\t\tEdited: <span class='Vlt-black'>{{c._vgis.modifiedDate | date:'medium'}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"Vlt-badge Vlt-badge--app Vlt-badge--purple Vlt-badge--small\">{{c._vgis.resourceType}}</div>\n\t\t\t\t\t<div class=\"Vlt-btn-group Vlt-btn-group--hover\">\n\t\t\t\t\t\t<a *ngIf='c._vgis.externalLink' attr.href='{{c._vgis.externalLink}}' target='_blank' rel='noopener' rel='noopener' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\" aria-label='Open external'><svg style='margin-left: 0; margin-right: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\"/></svg></a>\n\t\t\t\t\t\t<button type='button' (click)='openChild(child, c)' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\"><svg style='margin-left: 0; margin-right: 0;'><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-{{ child.reference.editable ? 'edit' : 'eye-negative' }}\"/></svg></button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<button style='width: 100%; margin-top: 0; max-width: 100%;' type='button' (click)='openChild(child)' class=\"Vlt-btn Vlt-btn--small Vlt-btn--secondary\" [disabled]='child.creatable === false'>\n\t\t\t<svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>{{child.reference.label}}\n\t\t</button>\n\t</div>\n</div>\n<div *ngIf='!(meta.oneTimeOptional && showAll)' [ngClass]='{ centered: !meta.oneTimeOptional }'>\n\t<button *ngIf='!preview && optionalFieldsCount' type='button' (click)='toggleOptionalFields()' class=\"Vlt-btn Vlt-btn--small Vlt-btn--link more-button\" style='margin: 0; margin-bottom: 10px;'>\n\t\t<svg><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-chevron-{{ showAll ? 'up' : 'down' }}\"/></svg>\n\t\t{{ showAll ? 'Hide' : 'Show' }} Optional Fields ({{optionalFieldsCount}})\n\t</button>\n</div>\n", styles: ["vgip-meta-field{display:none}vgip-meta-field.shown{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)}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MetaField, selector: "vgip-meta-field", inputs: ["meta", "parent", "integrationCode", "resourceType", "index", "scope", "preview", "theme", "overlayContainer"], outputs: ["onChange", "onLeave"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }] }); }
195
- }
196
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: MetaLayout, decorators: [{
197
- type: Component,
198
- args: [{ selector: "vgip-meta-layout", 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: !field.$invisible && (showAll || true) }\" theme='inherit' [attr.data-theme]='theme'></vgip-meta-field>\n\t\t\t</ng-container>\n\t\t</div>\n\t</div>\n</div>\n<div *ngIf='isPersistedResource && meta.children && preview'>\n\t<div *ngFor='let child of meta.children'>\n\t\t<h5 class='Vlt-children__title'>\n\t\t\t<svg class=\"Vlt-icon\"><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-stack\" /></svg>&nbsp;\n\t\t\t{{child.label}} <span class='Vlt-grey'>({{(resource[child.name] || []).length}})</span>\n\t\t</h5>\n\t\t<div *ngFor=\"let c of resource[child.name]\" style='position: relative;'>\n\n\t\t\t<div class=\"Vlt-card Vlt-bg-white\">\n\t\t\t\t<div class=\"Vlt-card__content Vlt-btn-on-hover\">\n\t\t\t\t\t<h5>{{childResourceCardLabel(c)}}</h5>\n\t\t\t\t\t<div style='font-size: 12px; line-height: 16px;'>\n\t\t\t\t\t\tCreated: <span class='Vlt-black'>{{c._vgis.createdDate | date:'mediumDate'}}</span>\n\t\t\t\t\t\tEdited: <span class='Vlt-black'>{{c._vgis.modifiedDate | date:'medium'}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"Vlt-badge Vlt-badge--app Vlt-badge--purple Vlt-badge--small\">{{c._vgis.resourceType}}</div>\n\t\t\t\t\t<div class=\"Vlt-btn-group Vlt-btn-group--hover\">\n\t\t\t\t\t\t<a *ngIf='c._vgis.externalLink' attr.href='{{c._vgis.externalLink}}' target='_blank' rel='noopener' rel='noopener' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\" aria-label='Open external'><svg style='margin-left: 0; margin-right: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\"/></svg></a>\n\t\t\t\t\t\t<button type='button' (click)='openChild(child, c)' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\"><svg style='margin-left: 0; margin-right: 0;'><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-{{ child.reference.editable ? 'edit' : 'eye-negative' }}\"/></svg></button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<button style='width: 100%; margin-top: 0; max-width: 100%;' type='button' (click)='openChild(child)' class=\"Vlt-btn Vlt-btn--small Vlt-btn--secondary\" [disabled]='child.creatable === false'>\n\t\t\t<svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>{{child.reference.label}}\n\t\t</button>\n\t</div>\n</div>\n<div *ngIf='!(meta.oneTimeOptional && showAll)' [ngClass]='{ centered: !meta.oneTimeOptional }'>\n\t<button *ngIf='!preview && optionalFieldsCount' type='button' (click)='toggleOptionalFields()' class=\"Vlt-btn Vlt-btn--small Vlt-btn--link more-button\" style='margin: 0; margin-bottom: 10px;'>\n\t\t<svg><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-chevron-{{ showAll ? 'up' : 'down' }}\"/></svg>\n\t\t{{ showAll ? 'Hide' : 'Show' }} Optional Fields ({{optionalFieldsCount}})\n\t</button>\n</div>\n", styles: ["vgip-meta-field{display:none}vgip-meta-field.shown{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)}\n"] }]
199
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.MetaResourceService }, { type: i2.MetaReferenceService }, { type: i3.MetaMsgService }, { type: i4.MetaContextService }]; }, propDecorators: { meta: [{
200
- type: Input
201
- }], resource: [{
202
- type: Input
203
- }], integration: [{
204
- type: Input
205
- }], type: [{
206
- type: Input
207
- }], preview: [{
208
- type: Input
209
- }], theme: [{
210
- type: Input
211
- }] } });
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXRhLXVpL3NyYy9saWIvbGF5b3V0L2luZGV4LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWV0YS11aS9zcmMvbGliL2xheW91dC92aWV3Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxLQUFLLEdBS04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUd0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7QUFTbEUsTUFBTSxPQUFPLFVBQVU7SUFvQnJCLFlBQ1UsZ0JBQWtDLEVBQ2xDLEdBQXNCLEVBQ3RCLEVBQWMsRUFDZCxZQUFpQyxFQUNqQyxnQkFBc0MsRUFDdEMsY0FBOEIsRUFDOUIsV0FBK0I7UUFOL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBc0I7UUFDdEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQWpCekMsbUJBQWMsR0FBUSxFQUFFLENBQUM7UUFFekIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQiw0QkFBdUIsR0FBb0IsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUlqRSwyQkFBc0IsR0FBRyxpQkFBaUIsQ0FBQztRQVl6Qyx3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLGdEQUFnRDtRQUNoRCxPQUFPLENBQ0wsSUFBSSxDQUFDLFFBQVE7WUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUs7WUFDbkIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQzNELENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFFakMsSUFBSSxDQUFDLHVCQUF1QjthQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUM7YUFDL0MsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVOLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQzlDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO29CQUNqRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDN0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ1IsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO1FBQ0QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNsRSxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFZO1FBQ3RCLElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtZQUNoQixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZQUNqQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO1FBQ0QsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFDeEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDL0IsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUU7b0JBQ2xDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN2QjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFO3dCQUM3QixLQUFLLEVBQUUsQ0FBQztxQkFDVDtpQkFDRjthQUNGO1FBQ0gsQ0FBQyxDQUFDO1FBQ0YsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQyxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0QsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLGNBQWMsQ0FBQztZQUM5QixJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRTtnQkFDZCxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN2QjtTQUNGO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDdkIsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDbEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFO29CQUNwQyxLQUFLLEVBQUUsSUFBSTtvQkFDWCxRQUFRLEVBQUUsSUFBSTtvQkFDZCxZQUFZLEVBQUUsSUFBSTtvQkFDbEIsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCLENBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU8seUJBQXlCLENBQUMsS0FBSztRQUNyQyxJQUFJLEtBQUssRUFBRSxVQUFVLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsRUFDbEM7Z0JBQ0UsTUFBTSxFQUFFLG1CQUFtQjtnQkFDM0IsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFO2dCQUNuRCxHQUFHLEVBQUU7b0JBQ0gsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNyRSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZO29CQUNwRCxHQUFHLEtBQUs7aUJBQ1Q7Z0JBQ0QsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDeEUsRUFDRCxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFO29CQUNuQixLQUFLLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUM7aUJBQzVDO3FCQUFNO29CQUNMLE9BQU8sQ0FBQyxJQUFJLENBQ1YsOEJBQThCLEVBQzlCLElBQUksQ0FBQyxlQUFlLEVBQ3BCLEtBQUssQ0FBQyxZQUFZLENBQ25CLENBQUM7aUJBQ0g7WUFDSCxDQUFDLENBQ0YsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVPLHlCQUF5QjtRQUMvQixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3RDLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUMvQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtvQkFDaEIsYUFBYSxHQUFHLFFBQVEsQ0FBQztvQkFDekIsSUFBSSxRQUFRLFlBQVksS0FBSyxFQUFFO3dCQUM3QixhQUFhLEdBQUcsUUFBUSxDQUFDO3dCQUN6QixLQUFLLE1BQU0sQ0FBQyxJQUFJLFFBQVEsRUFBRTs0QkFDeEIsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsRUFBRSxzQ0FBc0M7Z0NBQ2pHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7NkJBQ25EO3lCQUNGO3FCQUNGO2dCQUNILENBQUM7Z0JBQ0QsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLGFBQWE7Z0JBQ3hCLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixZQUFZLEVBQUUsSUFBSTthQUNuQixDQUFDLENBQUM7WUFDSCxJQUFJLGFBQWEsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsYUFBYSxDQUFDO2FBQzNDO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsVUFBVztRQUN4QyxNQUFNLGFBQWEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQ3JELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUN2QixDQUFDO1FBQ0YsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQywyQ0FBMkM7UUFDakcsTUFBTSxrQkFBa0IsR0FDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsZ0JBQWdCO2FBQ2xCLFVBQVUsQ0FDVCxrQkFBa0IsRUFDbEIsSUFBSSxDQUFDLFlBQVksRUFDakIsSUFBSSxDQUFDLGVBQWUsRUFDcEIsYUFBYSxDQUFDLFNBQVMsRUFDdkIsVUFBVSxFQUNWLFVBQVUsSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLFFBQVEsS0FBSyxLQUFLLENBQUMsa0JBQWtCO1NBQzVFO2FBQ0EsU0FBUyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDekIsSUFBSSxNQUFNLEVBQUUsR0FBRyxFQUFFO2dCQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2lCQUN4QztnQkFDRCxJQUFJLFVBQVUsRUFBRTtvQkFDZCxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ3ZDO3FCQUFNO29CQUNMLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNqRCxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNwRDthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sVUFBVTtRQUNoQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDL0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDekU7SUFDSCxDQUFDOytHQWxPVSxVQUFVO21HQUFWLFVBQVUsMk1DekJ2QiwrNkdBNkNBOzs0RkRwQmEsVUFBVTtrQkFMdEIsU0FBUzsrQkFDRSxrQkFBa0I7bVNBT25CLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIERvQ2hlY2ssXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHJlc291cmNlQ2FyZExhYmVsIH0gZnJvbSBcIi4uL2NvbW1vbi91dGlscy9yZXNvdXJjZUNhcmRMYWJlbFwiO1xuaW1wb3J0IHsgTWV0YVJlc291cmNlU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9tZXRhUmVzb3VyY2VcIjtcbmltcG9ydCB7IE1ldGFSZWZlcmVuY2VTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL21ldGFSZWZlcmVuY2VcIjtcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IG1ldGFEYXJrLCBtZXRhTGlnaHQgfSBmcm9tIFwiLi4vY29tbW9uL3V0aWxzL2NvbG9yVGhlbWVzXCI7XG5pbXBvcnQgeyBNZXRhTXNnU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9tZXRhTXNnXCI7XG5pbXBvcnQgeyBNZXRhQ29udGV4dFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvbWV0YUNvbnRleHRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInZnaXAtbWV0YS1sYXlvdXRcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi92aWV3Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3N0eWxlLnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFMYXlvdXRcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudENoZWNrZWQsIE9uQ2hhbmdlcywgRG9DaGVja1xue1xuICBASW5wdXQoKSBtZXRhOiBhbnk7XG4gIEBJbnB1dCgpIHJlc291cmNlOiBhbnk7XG4gIEBJbnB1dCgpIGludGVncmF0aW9uOiBhbnk7XG4gIEBJbnB1dCgpIHR5cGU6IGFueTtcbiAgQElucHV0KCkgcHJldmlldzogYm9vbGVhbjtcbiAgQElucHV0KCkgdGhlbWU6IHN0cmluZztcblxuICBvcHRpb25hbEZpZWxkczogYW55ID0ge307XG4gIG9wdGlvbmFsRmllbGRzQ291bnQ6IG51bWJlcjtcbiAgc2hvd0FsbCA9IGZhbHNlO1xuICBmaWVsZHNWaXNpYmlsaXR5Q2hhbmdlZDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwYXJlbnRGb3JtOiBIVE1MRm9ybUVsZW1lbnQ7XG4gIGludGVncmF0aW9uQ29kZTogc3RyaW5nO1xuICByZXNvdXJjZVR5cGU6IHN0cmluZztcbiAgY2hpbGRSZXNvdXJjZUNhcmRMYWJlbCA9IHJlc291cmNlQ2FyZExhYmVsO1xuICBvdmVybGF5Q29udGFpbmVyOiBIVE1MRWxlbWVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBtZXRhUmVzb3VyY2U6IE1ldGFSZXNvdXJjZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWZlcmVuY2VTZXJ2aWNlOiBNZXRhUmVmZXJlbmNlU2VydmljZSxcbiAgICBwcml2YXRlIG1ldGFNc2dTZXJ2aWNlOiBNZXRhTXNnU2VydmljZSxcbiAgICBwcml2YXRlIG1ldGFDb250ZXh0OiBNZXRhQ29udGV4dFNlcnZpY2VcbiAgKSB7XG4gICAgLy8gY29uc29sZS5sb2coJ01ldGFMYXlvdXQnLCB0aGlzLm1ldGEpO1xuICAgIHRoaXMub3ZlcmxheUNvbnRhaW5lciA9IGVsLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBnZXQgaXNQZXJzaXN0ZWRSZXNvdXJjZSgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5yZXNvdXJjZSAmJlxuICAgICAgdGhpcy5yZXNvdXJjZS5fdmdpcyAmJlxuICAgICAgKHRoaXMucmVzb3VyY2UuX3ZnaXMuZXh0ZXJuYWxJZCB8fCB0aGlzLnJlc291cmNlLl92Z2lzLmlkKVxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmludGVncmF0aW9uQ29kZSA9IHRoaXMubWV0YS5pbnRlZ3JhdGlvbkNvZGUgfHwgdGhpcy5pbnRlZ3JhdGlvbjtcbiAgICB0aGlzLnJlc291cmNlVHlwZSA9IHRoaXMubWV0YS5yZXNvdXJjZVR5cGUgfHwgdGhpcy50eXBlO1xuICAgIHRoaXMucGFyZW50Rm9ybSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbG9zZXN0KFwiZm9ybVwiKTtcbiAgICB0aGlzLmNvbmZpZ3VyZU9wdGlvbmFsU2VjdGlvbnMoKTtcblxuICAgIHRoaXMuZmllbGRzVmlzaWJpbGl0eUNoYW5nZWRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY291bnRPcHRpb25hbEZpZWxkcygpO1xuICAgICAgfSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNvdW50T3B0aW9uYWxGaWVsZHMoKTtcbiAgICB9LCAwKTtcblxuICAgIGlmICh0aGlzLnBhcmVudEZvcm0pIHtcbiAgICAgIHRoaXMucGFyZW50Rm9ybS5hZGRFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5maWVsZHNWaXNpYmlsaXR5Q2hhbmdlZC5uZXh0KEpTT04uc3RyaW5naWZ5KHRoaXMucmVzb3VyY2UpKTtcbiAgICAgICAgICB0aGlzLmNvdW50T3B0aW9uYWxGaWVsZHMoKTtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50aGVtZSAhPT0gXCJpbmhlcml0XCIpIHtcbiAgICAgIHRoaXMuYXBwbHlUaGVtZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc1BlcnNpc3RlZFJlc291cmNlICYmIHRoaXMubWV0YS5jaGlsZHJlbiAmJiB0aGlzLnByZXZpZXcpIHtcbiAgICAgIHRoaXMucHJvY0NoaWxkcmVuRXh0ZXJuYWxMaW5rcygpO1xuICAgIH1cbiAgfVxuXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICB0aGlzLmNvdW50T3B0aW9uYWxGaWVsZHMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IGFueSkge1xuICAgIGlmIChjaGFuZ2VzLm1ldGEpIHtcbiAgICAgIHRoaXMuY29uZmlndXJlT3B0aW9uYWxTZWN0aW9ucygpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY291bnRPcHRpb25hbEZpZWxkcygpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLnRoZW1lKSB7XG4gICAgICB0aGlzLnRoZW1lID0gY2hhbmdlcy50aGVtZS5jdXJyZW50VmFsdWU7XG4gICAgICB0aGlzLmFwcGx5VGhlbWUoKTtcbiAgICB9XG4gIH1cblxuICBjb3VudE9wdGlvbmFsRmllbGRzKCkge1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgY29uc3QgY291bnRTZWN0aW9uRmllbGRzID0gKHMpID0+IHtcbiAgICAgIGZvciAoY29uc3QgZiBvZiBzLmZpZWxkcyB8fCBbXSkge1xuICAgICAgICBpZiAoZi5maWVsZHM/Lmxlbmd0aCAmJiAhZi52aXNpYmxlKSB7XG4gICAgICAgICAgY291bnRTZWN0aW9uRmllbGRzKGYpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChmLiRvcHRpb25hbCAmJiAhZi4kaGlkZGVuKSB7XG4gICAgICAgICAgICBjb3VudCsrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgZm9yIChjb25zdCBzIG9mIHRoaXMubWV0YS5zZWN0aW9ucykge1xuICAgICAgY29uc3Qgbm90T3B0aW9uYWxBbnkgPSBzLmZpZWxkcz8uZmluZCgoZikgPT4gIWYuJG9wdGlvbmFsKTtcbiAgICAgIHMuJG9wdGlvbmFsID0gIW5vdE9wdGlvbmFsQW55O1xuICAgICAgaWYgKCFzLnZpc2libGUpIHtcbiAgICAgICAgY291bnRTZWN0aW9uRmllbGRzKHMpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLm9wdGlvbmFsRmllbGRzQ291bnQgPSBjb3VudDtcbiAgfVxuXG4gIGNvbmZpZ3VyZU9wdGlvbmFsU2VjdGlvbnMoKSB7XG4gICAgaWYgKHRoaXMubWV0YT8uc2VjdGlvbnMpIHtcbiAgICAgIGZvciAoY29uc3QgcyBvZiB0aGlzLm1ldGEuc2VjdGlvbnMpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsIFwiJG9wdGlvbmFsXCIsIHtcbiAgICAgICAgICB2YWx1ZTogdHJ1ZSxcbiAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB0b2dnbGVPcHRpb25hbEZpZWxkcygpIHtcbiAgICB0aGlzLnNob3dBbGwgPSAhdGhpcy5zaG93QWxsO1xuICAgIHRoaXMubmdBZnRlckNvbnRlbnRDaGVja2VkKCk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRXh0ZXJuYWxMaW5rRm9yQ2hpbGQoY2hpbGQpIHtcbiAgICBpZiAoY2hpbGQ/LmV4dGVybmFsSWQgfHwgY2hpbGQuaWQpIHtcbiAgICAgIHRoaXMubWV0YU1zZ1NlcnZpY2Uuc2VuZE1lc3NhZ2UoXG4gICAgICAgIHRoaXMuaW50ZWdyYXRpb25Db2RlLnRvVXBwZXJDYXNlKCksXG4gICAgICAgIHtcbiAgICAgICAgICBhY3Rpb246IFwiYnVpbGRFeHRlcm5hbExpbmtcIixcbiAgICAgICAgICBpbnRlZ3JhdGlvbkNvZGU6IHRoaXMuaW50ZWdyYXRpb25Db2RlLnRvTG93ZXJDYXNlKCksIC8vIGRvbid0IGtub3cgd2h5IGJ1dCBhbGwgd29ya2VycyBhcmUgd3JpdHRlbiBleHBlY3RpbmcgbG93ZXJjYXNlXG4gICAgICAgICAgcmVmOiB7XG4gICAgICAgICAgICBwYXJlbnRSZWZJZDogdGhpcy5yZXNvdXJjZS5fdmdpcy5leHRlcm5hbElkIHx8IHRoaXMucmVzb3VyY2UuX3ZnaXMuaWQsXG4gICAgICAgICAgICBwYXJlbnRSZXNvdXJjZVR5cGU6IHRoaXMucmVzb3VyY2UuX3ZnaXMucmVzb3VyY2VUeXBlLFxuICAgICAgICAgICAgLi4uY2hpbGRcbiAgICAgICAgICB9LFxuICAgICAgICAgIHByb2ZpbGU6IHRoaXMubWV0YUNvbnRleHQucHJvZmlsZXNbIHRoaXMuaW50ZWdyYXRpb25Db2RlLnRvVXBwZXJDYXNlKCldXG4gICAgICAgIH0sXG4gICAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGlmICghcmVzcG9uc2UuZXJyb3IpIHtcbiAgICAgICAgICAgIGNoaWxkLmV4dGVybmFsTGluayA9IHJlc3BvbnNlLmV4dGVybmFsTGluaztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICBcIk5vIGV4dGVybmFsIGxpbmsgc3VwcG9ydCBmb3JcIixcbiAgICAgICAgICAgICAgdGhpcy5pbnRlZ3JhdGlvbkNvZGUsXG4gICAgICAgICAgICAgIGNoaWxkLnJlc291cmNlVHlwZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwcm9jQ2hpbGRyZW5FeHRlcm5hbExpbmtzKCkge1xuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5tZXRhLmNoaWxkcmVuKSB7XG4gICAgICBsZXQgY2hpbGRyZW5WYWx1ZSA9IHRoaXMucmVzb3VyY2VbY2hpbGQubmFtZV07XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5yZXNvdXJjZSwgY2hpbGQubmFtZSwge1xuICAgICAgICBzZXQ6IChjaGlsZHJlbikgPT4ge1xuICAgICAgICAgIGNoaWxkcmVuVmFsdWUgPSBjaGlsZHJlbjtcbiAgICAgICAgICBpZiAoY2hpbGRyZW4gaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgY2hpbGRyZW5WYWx1ZSA9IGNoaWxkcmVuO1xuICAgICAgICAgICAgZm9yIChjb25zdCBjIGluIGNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgIGlmIChjaGlsZHJlbltjXT8uX3ZnaXMgJiYgIWNoaWxkcmVuW2NdLl92Z2lzLmV4dGVybmFsTGluaykgeyAvLyBzb21lIGRheSBCRSB3aWxsIHN0YXJ0IHByb3ZpZGluZyBpdFxuICAgICAgICAgICAgICAgIHRoaXMuYnVpbGRFeHRlcm5hbExpbmtGb3JDaGlsZChjaGlsZHJlbltjXS5fdmdpcyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGdldDogKCkgPT4gY2hpbGRyZW5WYWx1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIGlmIChjaGlsZHJlblZhbHVlKSB7XG4gICAgICAgIHRoaXMucmVzb3VyY2VbY2hpbGQubmFtZV0gPSBjaGlsZHJlblZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9wZW5DaGlsZChjaGlsZFJlc291cmNlLCBjaGlsZE1vZGVsPykge1xuICAgIGNvbnN0IG1ldGFSZWZEaWFsb2cgPSBhd2FpdCBpbXBvcnQoXCIuLi9yZWZEaWFsb2dcIikudGhlbihcbiAgICAgIChtKSA9PiBtLk1ldGFSZWZEaWFsb2dcbiAgICApO1xuICAgIGNoaWxkUmVzb3VyY2UucmVmZXJlbmNlLnBhcmVudCA9IHRoaXMucmVzb3VyY2UuX3ZnaXM7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICBjb25zdCByZWZEaWFsb2dDb21wb25lbnQgPVxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChtZXRhUmVmRGlhbG9nKTtcbiAgICB0aGlzLnJlZmVyZW5jZVNlcnZpY2VcbiAgICAgIC5vcGVuRGlhbG9nKFxuICAgICAgICByZWZEaWFsb2dDb21wb25lbnQsXG4gICAgICAgIHRoaXMubWV0YVJlc291cmNlLFxuICAgICAgICB0aGlzLmludGVncmF0aW9uQ29kZSxcbiAgICAgICAgY2hpbGRSZXNvdXJjZS5yZWZlcmVuY2UsXG4gICAgICAgIGNoaWxkTW9kZWwsXG4gICAgICAgIGNoaWxkTW9kZWwgJiYgY2hpbGRSZXNvdXJjZS5yZWZlcmVuY2UuZWRpdGFibGUgPT09IGZhbHNlIC8vIGlzIHByZXZpZXcgbW9kZVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdD8ucmF3KSB7XG4gICAgICAgICAgaWYgKCF0aGlzLnJlc291cmNlW2NoaWxkUmVzb3VyY2UubmFtZV0pIHtcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VbY2hpbGRSZXNvdXJjZS5uYW1lXSA9IFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY2hpbGRNb2RlbCkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihjaGlsZE1vZGVsLCByZXN1bHQucmF3KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5idWlsZEV4dGVybmFsTGlua0ZvckNoaWxkKHJlc3VsdC5yYXcuX3ZnaXMpO1xuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZVtjaGlsZFJlc291cmNlLm5hbWVdLnB1c2gocmVzdWx0LnJhdyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlUaGVtZSgpIHtcbiAgICBjb25zdCBtZXRhVGhlbWUgPSB0aGlzLnRoZW1lID09PSBcImRhcmtcIiA/IG1ldGFEYXJrIDogbWV0YUxpZ2h0O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG1ldGFUaGVtZS5wcm9wZXJ0aWVzKSkge1xuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGtleSwgbWV0YVRoZW1lLnByb3BlcnRpZXNba2V5XSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0Zvcj0nbGV0IHNlY3Rpb24gb2YgbWV0YS5zZWN0aW9ucycgY2xhc3M9J1ZsdC1zZWN0aW9uJyBbbmdDbGFzc109XCJ7IHNob3duOiBzaG93QWxsIHx8IHNlY3Rpb24udmlzaWJsZSB8fCAoIW1ldGEub25lVGltZU9wdGlvbmFsICYmICFzZWN0aW9uLiRvcHRpb25hbCkgfHwgKG1ldGEub25lVGltZU9wdGlvbmFsICYmICFvcHRpb25hbEZpZWxkc0NvdW50KSB9XCI+XG5cdDxoNSAqbmdJZj0nc2VjdGlvbi5sYWJlbCcgY2xhc3M9XCJWbHQtc2VjdGlvbl9fdGl0bGVcIj57e3NlY3Rpb24ubGFiZWx9fTwvaDU+XG5cdDxkaXYgc3R5bGU9J292ZXJmbG93OiB2aXNpYmxlOycgW25nQ2xhc3NdPVwieyAnZm9yLXByZXZpZXcnOiBwcmV2aWV3IH1cIj5cblx0XHQ8c21hbGwgKm5nSWY9J3NlY3Rpb24uZGVzY3JpcHRpb24nIGNsYXNzPVwiVmx0LWZvcm1fX2VsZW1lbnRfX2hpbnRcIj57e3NlY3Rpb24uZGVzY3JpcHRpb259fTwvc21hbGw+XG5cdFx0PGRpdj5cblx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPSdsZXQgZmllbGQgb2Ygc2VjdGlvbi5maWVsZHMnPlxuXHRcdFx0XHQ8dmdpcC1tZXRhLWZpZWxkICpuZ0lmPSchZmllbGQuJGhpZGRlbiAmJiAoc2hvd0FsbCB8fCBzZWN0aW9uLnZpc2libGUgfHwgIWZpZWxkLiRvcHRpb25hbCknIFttZXRhXT0nZmllbGQnIFtwYXJlbnRdPSdyZXNvdXJjZScgW2ludGVncmF0aW9uQ29kZV09J2ludGVncmF0aW9uQ29kZScgW3Jlc291cmNlVHlwZV09J3Jlc291cmNlVHlwZScgW3ByZXZpZXddPSdwcmV2aWV3JyBbbmdDbGFzc109XCJ7IHNob3duOiAhZmllbGQuJGludmlzaWJsZSAmJiAoc2hvd0FsbCB8fCB0cnVlKSB9XCIgdGhlbWU9J2luaGVyaXQnIFthdHRyLmRhdGEtdGhlbWVdPSd0aGVtZSc+PC92Z2lwLW1ldGEtZmllbGQ+XG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG48L2Rpdj5cbjxkaXYgKm5nSWY9J2lzUGVyc2lzdGVkUmVzb3VyY2UgJiYgbWV0YS5jaGlsZHJlbiAmJiBwcmV2aWV3Jz5cblx0PGRpdiAqbmdGb3I9J2xldCBjaGlsZCBvZiBtZXRhLmNoaWxkcmVuJz5cblx0XHQ8aDUgY2xhc3M9J1ZsdC1jaGlsZHJlbl9fdGl0bGUnPlxuXHRcdFx0PHN2ZyBjbGFzcz1cIlZsdC1pY29uXCI+PHVzZSB4bGluazpocmVmPVwidm9sdGEvdm9sdGEtaWNvbnMuc3ZnI1ZsdC1pY29uLXN0YWNrXCIgLz48L3N2Zz4mbmJzcDtcblx0XHRcdHt7Y2hpbGQubGFiZWx9fSA8c3BhbiBjbGFzcz0nVmx0LWdyZXknPih7eyhyZXNvdXJjZVtjaGlsZC5uYW1lXSB8fCBbXSkubGVuZ3RofX0pPC9zcGFuPlxuXHRcdDwvaDU+XG5cdFx0PGRpdiAqbmdGb3I9XCJsZXQgYyBvZiByZXNvdXJjZVtjaGlsZC5uYW1lXVwiIHN0eWxlPSdwb3NpdGlvbjogcmVsYXRpdmU7Jz5cblxuXHRcdFx0PGRpdiBjbGFzcz1cIlZsdC1jYXJkIFZsdC1iZy13aGl0ZVwiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiVmx0LWNhcmRfX2NvbnRlbnQgVmx0LWJ0bi1vbi1ob3ZlclwiPlxuXHRcdFx0XHRcdDxoNT57e2NoaWxkUmVzb3VyY2VDYXJkTGFiZWwoYyl9fTwvaDU+XG5cdFx0XHRcdFx0PGRpdiBzdHlsZT0nZm9udC1zaXplOiAxMnB4OyBsaW5lLWhlaWdodDogMTZweDsnPlxuXHRcdFx0XHRcdFx0Q3JlYXRlZDogPHNwYW4gY2xhc3M9J1ZsdC1ibGFjayc+e3tjLl92Z2lzLmNyZWF0ZWREYXRlIHwgZGF0ZTonbWVkaXVtRGF0ZSd9fTwvc3Bhbj5cblx0XHRcdFx0XHRcdEVkaXRlZDogPHNwYW4gY2xhc3M9J1ZsdC1ibGFjayc+e3tjLl92Z2lzLm1vZGlmaWVkRGF0ZSB8IGRhdGU6J21lZGl1bSd9fTwvc3Bhbj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiVmx0LWJhZGdlIFZsdC1iYWRnZS0tYXBwIFZsdC1iYWRnZS0tcHVycGxlIFZsdC1iYWRnZS0tc21hbGxcIj57e2MuX3ZnaXMucmVzb3VyY2VUeXBlfX08L2Rpdj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiVmx0LWJ0bi1ncm91cCBWbHQtYnRuLWdyb3VwLS1ob3ZlclwiPlxuXHRcdFx0XHRcdFx0PGEgKm5nSWY9J2MuX3ZnaXMuZXh0ZXJuYWxMaW5rJyBhdHRyLmhyZWY9J3t7Yy5fdmdpcy5leHRlcm5hbExpbmt9fScgdGFyZ2V0PSdfYmxhbmsnIHJlbD0nbm9vcGVuZXInIHJlbD0nbm9vcGVuZXInIGNsYXNzPVwiVmx0LWJ0biBWbHQtYnRuLS10ZXJ0aWFyeSBWbHQtYnRuLS1pY29uXCIgYXJpYS1sYWJlbD0nT3BlbiBleHRlcm5hbCc+PHN2ZyBzdHlsZT0nbWFyZ2luLWxlZnQ6IDA7IG1hcmdpbi1yaWdodDogMDsnPjx1c2UgeGxpbms6aHJlZj1cInZvbHRhL3ZvbHRhLWljb25zLnN2ZyNWbHQtaWNvbi1vcGVuXCIvPjwvc3ZnPjwvYT5cblx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT0nYnV0dG9uJyAoY2xpY2spPSdvcGVuQ2hpbGQoY2hpbGQsIGMpJyBjbGFzcz1cIlZsdC1idG4gVmx0LWJ0bi0tdGVydGlhcnkgVmx0LWJ0bi0taWNvblwiPjxzdmcgc3R5bGU9J21hcmdpbi1sZWZ0OiAwOyBtYXJnaW4tcmlnaHQ6IDA7Jz48dXNlIGF0dHIueGxpbms6aHJlZj1cInZvbHRhL3ZvbHRhLWljb25zLnN2ZyNWbHQtaWNvbi17eyBjaGlsZC5yZWZlcmVuY2UuZWRpdGFibGUgPyAnZWRpdCcgOiAnZXllLW5lZ2F0aXZlJyB9fVwiLz48L3N2Zz48L2J1dHRvbj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0XHQ8YnV0dG9uIHN0eWxlPSd3aWR0aDogMTAwJTsgbWFyZ2luLXRvcDogMDsgbWF4LXdpZHRoOiAxMDAlOycgdHlwZT0nYnV0dG9uJyAoY2xpY2spPSdvcGVuQ2hpbGQoY2hpbGQpJyBjbGFzcz1cIlZsdC1idG4gVmx0LWJ0bi0tc21hbGwgVmx0LWJ0bi0tc2Vjb25kYXJ5XCIgW2Rpc2FibGVkXT0nY2hpbGQuY3JlYXRhYmxlID09PSBmYWxzZSc+XG5cdFx0XHQ8c3ZnPjx1c2UgeGxpbms6aHJlZj1cInZvbHRhL3ZvbHRhLWljb25zLnN2ZyNWbHQtaWNvbi1wbHVzXCIvPjwvc3ZnPnt7Y2hpbGQucmVmZXJlbmNlLmxhYmVsfX1cblx0XHQ8L2J1dHRvbj5cblx0PC9kaXY+XG48L2Rpdj5cbjxkaXYgKm5nSWY9JyEobWV0YS5vbmVUaW1lT3B0aW9uYWwgJiYgc2hvd0FsbCknIFtuZ0NsYXNzXT0neyBjZW50ZXJlZDogIW1ldGEub25lVGltZU9wdGlvbmFsIH0nPlxuXHQ8YnV0dG9uICpuZ0lmPSchcHJldmlldyAmJiBvcHRpb25hbEZpZWxkc0NvdW50JyB0eXBlPSdidXR0b24nIChjbGljayk9J3RvZ2dsZU9wdGlvbmFsRmllbGRzKCknIGNsYXNzPVwiVmx0LWJ0biBWbHQtYnRuLS1zbWFsbCBWbHQtYnRuLS1saW5rIG1vcmUtYnV0dG9uXCIgc3R5bGU9J21hcmdpbjogMDsgbWFyZ2luLWJvdHRvbTogMTBweDsnPlxuXHRcdDxzdmc+PHVzZSBhdHRyLnhsaW5rOmhyZWY9XCJ2b2x0YS92b2x0YS1pY29ucy5zdmcjVmx0LWljb24tY2hldnJvbi17eyBzaG93QWxsID8gJ3VwJyA6ICdkb3duJyB9fVwiLz48L3N2Zz5cblx0XHR7eyBzaG93QWxsID8gJ0hpZGUnIDogJ1Nob3cnIH19IE9wdGlvbmFsIEZpZWxkcyAoe3tvcHRpb25hbEZpZWxkc0NvdW50fX0pXG5cdDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=