@vgip/meta-ui 1.5.6 → 1.5.7

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 (98) hide show
  1. package/esm2020/lib/fieldAbstract.mjs +6 -6
  2. package/esm2020/lib/fieldComposite/index.mjs +65 -0
  3. package/esm2020/lib/fieldList/index.mjs +68 -0
  4. package/esm2020/lib/fieldReference/index.mjs +823 -0
  5. package/esm2020/lib/fieldSelect/index.mjs +481 -0
  6. package/esm2020/lib/index.mjs +10 -18
  7. package/esm2020/lib/layout/index.mjs +151 -0
  8. package/esm2020/lib/metaField/index.mjs +139 -0
  9. package/esm2020/lib/refDialog/index.mjs +127 -0
  10. package/esm2020/lib/resource/index.mjs +480 -0
  11. package/esm2020/lib/resourceCard/index.mjs +42 -0
  12. package/esm2020/lib/services/metaReference/index.mjs +2 -3
  13. package/fesm2015/vgip-meta-ui-fieldAbstract-2d0882f1.mjs +382 -0
  14. package/fesm2015/vgip-meta-ui-fieldAbstract-2d0882f1.mjs.map +1 -0
  15. package/fesm2015/vgip-meta-ui-index-0068fb77.mjs +368 -0
  16. package/fesm2015/vgip-meta-ui-index-0068fb77.mjs.map +1 -0
  17. package/fesm2015/vgip-meta-ui-index-1911ddae.mjs +1882 -0
  18. package/fesm2015/vgip-meta-ui-index-1911ddae.mjs.map +1 -0
  19. package/fesm2015/vgip-meta-ui-index-3488da98.mjs +130 -0
  20. package/fesm2015/vgip-meta-ui-index-3488da98.mjs.map +1 -0
  21. package/fesm2015/vgip-meta-ui-index-3f6cd57a.mjs +74 -0
  22. package/fesm2015/vgip-meta-ui-index-3f6cd57a.mjs.map +1 -0
  23. package/fesm2015/vgip-meta-ui-index-5615e618.mjs +95 -0
  24. package/fesm2015/vgip-meta-ui-index-5615e618.mjs.map +1 -0
  25. package/fesm2015/vgip-meta-ui-index-65c10356.mjs +57 -0
  26. package/fesm2015/vgip-meta-ui-index-65c10356.mjs.map +1 -0
  27. package/fesm2015/vgip-meta-ui-index-6dcd556a.mjs +145 -0
  28. package/fesm2015/vgip-meta-ui-index-6dcd556a.mjs.map +1 -0
  29. package/fesm2015/vgip-meta-ui-index-8f5be5a7.mjs +24 -0
  30. package/fesm2015/vgip-meta-ui-index-8f5be5a7.mjs.map +1 -0
  31. package/fesm2015/vgip-meta-ui-index-934aeabf.mjs +68 -0
  32. package/fesm2015/vgip-meta-ui-index-934aeabf.mjs.map +1 -0
  33. package/fesm2015/vgip-meta-ui-index-9b5ee0c4.mjs +88 -0
  34. package/fesm2015/vgip-meta-ui-index-9b5ee0c4.mjs.map +1 -0
  35. package/fesm2015/vgip-meta-ui-index-b925a3a8.mjs +856 -0
  36. package/fesm2015/vgip-meta-ui-index-b925a3a8.mjs.map +1 -0
  37. package/fesm2015/vgip-meta-ui-index-dc1b440d.mjs +489 -0
  38. package/fesm2015/vgip-meta-ui-index-dc1b440d.mjs.map +1 -0
  39. package/fesm2015/vgip-meta-ui-index-f026e8e5.mjs +71 -0
  40. package/fesm2015/vgip-meta-ui-index-f026e8e5.mjs.map +1 -0
  41. package/fesm2015/vgip-meta-ui-index-fa0b1b8b.mjs +460 -0
  42. package/fesm2015/vgip-meta-ui-index-fa0b1b8b.mjs.map +1 -0
  43. package/fesm2015/vgip-meta-ui-metaModel.pipe-725f401c.mjs +28 -0
  44. package/fesm2015/vgip-meta-ui-metaModel.pipe-725f401c.mjs.map +1 -0
  45. package/fesm2015/vgip-meta-ui-relativeTimeBuilder-31791ce4.mjs +51 -0
  46. package/fesm2015/vgip-meta-ui-relativeTimeBuilder-31791ce4.mjs.map +1 -0
  47. package/fesm2015/vgip-meta-ui.mjs +40 -5083
  48. package/fesm2015/vgip-meta-ui.mjs.map +1 -1
  49. package/fesm2020/vgip-meta-ui-fieldAbstract-2d0882f1.mjs +382 -0
  50. package/fesm2020/vgip-meta-ui-fieldAbstract-2d0882f1.mjs.map +1 -0
  51. package/fesm2020/vgip-meta-ui-index-0068fb77.mjs +368 -0
  52. package/fesm2020/vgip-meta-ui-index-0068fb77.mjs.map +1 -0
  53. package/fesm2020/vgip-meta-ui-index-1a54864a.mjs +70 -0
  54. package/fesm2020/vgip-meta-ui-index-1a54864a.mjs.map +1 -0
  55. package/fesm2020/vgip-meta-ui-index-2e6b2b56.mjs +73 -0
  56. package/fesm2020/vgip-meta-ui-index-2e6b2b56.mjs.map +1 -0
  57. package/fesm2020/vgip-meta-ui-index-3488da98.mjs +130 -0
  58. package/fesm2020/vgip-meta-ui-index-3488da98.mjs.map +1 -0
  59. package/fesm2020/vgip-meta-ui-index-5615e618.mjs +95 -0
  60. package/fesm2020/vgip-meta-ui-index-5615e618.mjs.map +1 -0
  61. package/fesm2020/vgip-meta-ui-index-65c10356.mjs +57 -0
  62. package/fesm2020/vgip-meta-ui-index-65c10356.mjs.map +1 -0
  63. package/fesm2020/vgip-meta-ui-index-7f4f2d15.mjs +142 -0
  64. package/fesm2020/vgip-meta-ui-index-7f4f2d15.mjs.map +1 -0
  65. package/fesm2020/vgip-meta-ui-index-8f5be5a7.mjs +24 -0
  66. package/fesm2020/vgip-meta-ui-index-8f5be5a7.mjs.map +1 -0
  67. package/fesm2020/vgip-meta-ui-index-934aeabf.mjs +68 -0
  68. package/fesm2020/vgip-meta-ui-index-934aeabf.mjs.map +1 -0
  69. package/fesm2020/vgip-meta-ui-index-9b33fba1.mjs +856 -0
  70. package/fesm2020/vgip-meta-ui-index-9b33fba1.mjs.map +1 -0
  71. package/fesm2020/vgip-meta-ui-index-9b590fc8.mjs +488 -0
  72. package/fesm2020/vgip-meta-ui-index-9b590fc8.mjs.map +1 -0
  73. package/fesm2020/vgip-meta-ui-index-9b5ee0c4.mjs +88 -0
  74. package/fesm2020/vgip-meta-ui-index-9b5ee0c4.mjs.map +1 -0
  75. package/fesm2020/vgip-meta-ui-index-e73dc574.mjs +1879 -0
  76. package/fesm2020/vgip-meta-ui-index-e73dc574.mjs.map +1 -0
  77. package/fesm2020/vgip-meta-ui-index-fa0b1b8b.mjs +460 -0
  78. package/fesm2020/vgip-meta-ui-index-fa0b1b8b.mjs.map +1 -0
  79. package/fesm2020/vgip-meta-ui-metaModel.pipe-725f401c.mjs +28 -0
  80. package/fesm2020/vgip-meta-ui-metaModel.pipe-725f401c.mjs.map +1 -0
  81. package/fesm2020/vgip-meta-ui-relativeTimeBuilder-31791ce4.mjs +51 -0
  82. package/fesm2020/vgip-meta-ui-relativeTimeBuilder-31791ce4.mjs.map +1 -0
  83. package/fesm2020/vgip-meta-ui.mjs +39 -5083
  84. package/fesm2020/vgip-meta-ui.mjs.map +1 -1
  85. package/lib/fieldComposite/index.d.ts +12 -0
  86. package/lib/fieldList/index.d.ts +14 -0
  87. package/lib/fieldReference/index.d.ts +73 -0
  88. package/lib/fieldSelect/index.d.ts +48 -0
  89. package/lib/index.d.ts +31 -23
  90. package/lib/layout/index.d.ts +39 -0
  91. package/lib/metaField/index.d.ts +26 -0
  92. package/lib/refDialog/index.d.ts +33 -0
  93. package/lib/resource/index.d.ts +58 -0
  94. package/lib/resourceCard/index.d.ts +18 -0
  95. package/lib/services/metaReference/index.d.ts +1 -1
  96. package/package.json +1 -1
  97. package/esm2020/lib/field.mjs +0 -2325
  98. package/lib/field.d.ts +0 -292
@@ -0,0 +1,127 @@
1
+ import { Component } from '@angular/core';
2
+ import { metaDark, metaLight } from '../common/utils/colorThemes';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "../resource/index";
6
+ export class MetaRefDialog {
7
+ constructor(el) {
8
+ this.el = el;
9
+ this.resources = {};
10
+ this.models = {};
11
+ this.services = {};
12
+ this.keepOrder = (a, b) => a;
13
+ this.keyEventListener = (event) => {
14
+ if (event && event.key === 'Escape') {
15
+ document.removeEventListener('keydown', this.keyEventListener);
16
+ this.dismiss();
17
+ }
18
+ };
19
+ }
20
+ get isEditable() {
21
+ return this.resources[this.currentResource].meta.layout.editable !== false;
22
+ }
23
+ get isPersistent() {
24
+ return this.resource && (this.resource.externalId || this.resource.id);
25
+ }
26
+ ngOnInit() {
27
+ let references = (this.reference instanceof Array) ? this.reference : [this.reference];
28
+ /* eslint-disable no-underscore-dangle */
29
+ if (this.resource && this.resource._vgis) {
30
+ this.fullResource = this.resource;
31
+ this.resource = this.resource._vgis;
32
+ }
33
+ /* eslint-enable no-underscore-dangle */
34
+ if (this.resource) {
35
+ references = references.filter((r) => {
36
+ const resType = r.name || r.resourceType || '';
37
+ // comparing case insensitive, because of Zendesk comment vs Comment
38
+ return (resType.id || resType || '').toLowerCase() === (this.resource.resourceType || this.resource.type || '').toLowerCase();
39
+ });
40
+ }
41
+ for (const ref of references) {
42
+ if (!ref.name) {
43
+ ref.name = ref.resourceType; // when the resource comes from resources API, not from metadata
44
+ }
45
+ if (!this.currentResource) {
46
+ this.currentResource = ref.name;
47
+ }
48
+ if (ref.name === this.preferResourceType) {
49
+ this.currentResource = this.preferResourceType;
50
+ }
51
+ const rs = {
52
+ integrationCode: this.integrationCode,
53
+ resourceType: ref.resourceType || ref.name,
54
+ ref
55
+ };
56
+ if (this.resource) {
57
+ rs.externalId = this.resource.id || this.resource.externalId;
58
+ if (this.resource.eventId) {
59
+ rs.eventId = this.resource.eventId;
60
+ }
61
+ if (this.fullResource) {
62
+ rs.activity = this.fullResource;
63
+ }
64
+ if (this.resource.layoutId) {
65
+ rs.layoutId = this.resource.layoutId;
66
+ }
67
+ }
68
+ rs.parent = ref.parent;
69
+ this.resources[ref.name] = rs;
70
+ this.models[ref.name] = {};
71
+ if (this.resource) {
72
+ this.models[ref.name]._vgis = this.resource; // eslint-disable-line no-underscore-dangle
73
+ }
74
+ }
75
+ this.modal = this.el.nativeElement.childNodes[0];
76
+ this.modal.classList.remove('Vlt-modal--out');
77
+ this.modal.classList.add('Vlt-modal_visible');
78
+ document.addEventListener('keydown', this.keyEventListener);
79
+ if (this.integrationCode === 'mocks') {
80
+ this.integrationIcon = 'Brand-icon-vonage';
81
+ }
82
+ else {
83
+ switch (this.integrationCode.toLowerCase()) {
84
+ case 'office365':
85
+ this.integrationIcon = 'Brand-icon-office-color';
86
+ break;
87
+ case 'sugar':
88
+ this.integrationIcon = 'Brand-icon-sugarcrm-color';
89
+ break;
90
+ case 'msdynamics':
91
+ this.integrationIcon = 'Brand-icon-dynamics-color';
92
+ break;
93
+ default:
94
+ this.integrationIcon = `Brand-icon-${(this.integrationCode || '').toLowerCase()}-color`;
95
+ }
96
+ }
97
+ this.applyTheme();
98
+ }
99
+ close() {
100
+ this.modal.classList.remove('Vlt-modal_visible');
101
+ this.modal.classList.add('Vlt-modal--out');
102
+ }
103
+ dismiss() {
104
+ this.close();
105
+ this.onComplete(null);
106
+ }
107
+ onResourceDone(result) {
108
+ this.close();
109
+ this.onComplete(result);
110
+ }
111
+ selectResource(resource) {
112
+ this.currentResource = resource;
113
+ }
114
+ applyTheme() {
115
+ const metaTheme = this.theme === 'dark' ? metaDark : metaLight;
116
+ for (const key of Object.keys(metaTheme.properties)) {
117
+ this.el.nativeElement.style.setProperty(key, metaTheme.properties[key]);
118
+ }
119
+ }
120
+ }
121
+ MetaRefDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: MetaRefDialog, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
122
+ MetaRefDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: MetaRefDialog, selector: "ng-component", ngImport: i0, 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", 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:initial}.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:initial}.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:initial;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: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;inset: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}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MetaResource, selector: "vgip-meta-resource", inputs: ["resource", "model", "metaResourceServiceDelegated", "theme"], outputs: ["done"] }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }] });
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: MetaRefDialog, decorators: [{
124
+ type: Component,
125
+ args: [{ 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", 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:initial}.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:initial}.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:initial;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: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;inset: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}\n"] }]
126
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXRhLXVpL3NyYy9saWIvcmVmRGlhbG9nL2luZGV4LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWV0YS11aS9zcmMvbGliL3JlZkRpYWxvZy92aWV3Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQU9sRSxNQUFNLE9BQU8sYUFBYTtJQWdCeEIsWUFDVSxFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQWJ4QixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFHakIsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQW9IbkIsY0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWhCLHFCQUFnQixHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkMsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUU7Z0JBQ25DLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQy9ELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNoQjtRQUNILENBQUMsQ0FBQztJQWpIRSxDQUFDO0lBRUwsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsS0FBSyxLQUFLLENBQUM7SUFDN0UsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUks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LENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBTTtRQUNuQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjLENBQUMsUUFBUTtRQUNyQixJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQztJQUNsQyxDQUFDO0lBV08sVUFBVTtRQUNoQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDL0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDekU7SUFDSCxDQUFDOzswR0ExSVUsYUFBYTs4RkFBYixhQUFhLG9EQ1IxQixvNkNBd0JBOzJGRGhCYSxhQUFhO2tCQUp6QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1ldGFEYXJrLCBtZXRhTGlnaHQgfSBmcm9tICcuLi9jb21tb24vdXRpbHMvY29sb3JUaGVtZXMnO1xuaW1wb3J0IHsgTWV0YVJlc291cmNlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21ldGFSZXNvdXJjZSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vdmlldy5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3R5bGUuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFSZWZEaWFsb2cgaW1wbGVtZW50cyBPbkluaXQge1xuICBtb2RhbDogSFRNTEVsZW1lbnQ7XG4gIG9uQ29tcGxldGU6IChyZXN1bHQ/KSA9PiB1bmRlZmluZWQ7XG4gIGZ1bGxSZXNvdXJjZTogYW55O1xuICByZXNvdXJjZXM6IGFueSA9IHt9O1xuICBtb2RlbHM6IGFueSA9IHt9O1xuICByZWZlcmVuY2U6IGFueTtcbiAgY3VycmVudFJlc291cmNlOiBzdHJpbmc7XG4gIHNlcnZpY2VzOiBhbnkgPSB7fTtcbiAgaW50ZWdyYXRpb25Db2RlOiBzdHJpbmc7XG4gIHJlc291cmNlOiBhbnk7XG4gIG1ldGFSZXNvdXJjZTogTWV0YVJlc291cmNlU2VydmljZTtcbiAgaW50ZWdyYXRpb25JY29uOiBzdHJpbmc7XG4gIHByZWZlclJlc291cmNlVHlwZTogc3RyaW5nO1xuICB0aGVtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWZcbiAgKSB7IH1cblxuICBnZXQgaXNFZGl0YWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXNbdGhpcy5jdXJyZW50UmVzb3VyY2VdLm1ldGEubGF5b3V0LmVkaXRhYmxlICE9PSBmYWxzZTtcbiAgfVxuXG4gIGdldCBpc1BlcnNpc3RlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2UgJiYgKHRoaXMucmVzb3VyY2UuZXh0ZXJuYWxJZCB8fCB0aGlzLnJlc291cmNlLmlkKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGxldCByZWZlcmVuY2VzID0gKHRoaXMucmVmZXJlbmNlIGluc3RhbmNlb2YgQXJyYXkpID8gdGhpcy5yZWZlcmVuY2UgOiBbdGhpcy5yZWZlcmVuY2VdO1xuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVyc2NvcmUtZGFuZ2xlICovXG4gICAgaWYgKHRoaXMucmVzb3VyY2UgJiYgdGhpcy5yZXNvdXJjZS5fdmdpcykge1xuICAgICAgdGhpcy5mdWxsUmVzb3VyY2UgPSB0aGlzLnJlc291cmNlO1xuICAgICAgdGhpcy5yZXNvdXJjZSA9IHRoaXMucmVzb3VyY2UuX3ZnaXM7XG4gICAgfVxuICAgIC8qIGVzbGludC1lbmFibGUgbm8tdW5kZXJzY29yZS1kYW5nbGUgKi9cbiAgICBpZiAodGhpcy5yZXNvdXJjZSkge1xuICAgICAgcmVmZXJlbmNlcyA9IHJlZmVyZW5jZXMuZmlsdGVyKChyKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc1R5cGUgPSByLm5hbWUgfHwgci5yZXNvdXJjZVR5cGUgfHwgJyc7XG4gICAgICAgIC8vIGNvbXBhcmluZyBjYXNlIGluc2Vuc2l0aXZlLCBiZWNhdXNlIG9mIFplbmRlc2sgY29tbWVudCB2cyBDb21tZW50XG4gICAgICAgIHJldHVybiAocmVzVHlwZS5pZCB8fCByZXNUeXBlIHx8ICcnKS50b0xvd2VyQ2FzZSgpID09PSAodGhpcy5yZXNvdXJjZS5yZXNvdXJjZVR5cGUgfHwgdGhpcy5yZXNvdXJjZS50eXBlIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCByZWYgb2YgcmVmZXJlbmNlcykge1xuICAgICAgaWYgKCFyZWYubmFtZSkge1xuICAgICAgICByZWYubmFtZSA9IHJlZi5yZXNvdXJjZVR5cGU7IC8vIHdoZW4gdGhlIHJlc291cmNlIGNvbWVzIGZyb20gcmVzb3VyY2VzIEFQSSwgbm90IGZyb20gbWV0YWRhdGFcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5jdXJyZW50UmVzb3VyY2UpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50UmVzb3VyY2UgPSByZWYubmFtZTtcbiAgICAgIH1cbiAgICAgIGlmIChyZWYubmFtZSA9PT0gdGhpcy5wcmVmZXJSZXNvdXJjZVR5cGUpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50UmVzb3VyY2UgPSB0aGlzLnByZWZlclJlc291cmNlVHlwZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJzOiBhbnkgPSB7XG4gICAgICAgIGludGVncmF0aW9uQ29kZTogdGhpcy5pbnRlZ3JhdGlvbkNvZGUsXG4gICAgICAgIHJlc291cmNlVHlwZTogcmVmLnJlc291cmNlVHlwZSB8fCByZWYubmFtZSxcbiAgICAgICAgcmVmXG4gICAgICB9O1xuICAgICAgaWYgKHRoaXMucmVzb3VyY2UpIHtcbiAgICAgICAgcnMuZXh0ZXJuYWxJZCA9IHRoaXMucmVzb3VyY2UuaWQgfHwgdGhpcy5yZXNvdXJjZS5leHRlcm5hbElkO1xuICAgICAgICBpZiAodGhpcy5yZXNvdXJjZS5ldmVudElkKSB7XG4gICAgICAgICAgcnMuZXZlbnRJZCA9IHRoaXMucmVzb3VyY2UuZXZlbnRJZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5mdWxsUmVzb3VyY2UpIHtcbiAgICAgICAgICBycy5hY3Rpdml0eSA9IHRoaXMuZnVsbFJlc291cmNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnJlc291cmNlLmxheW91dElkKSB7XG4gICAgICAgICAgcnMubGF5b3V0SWQgPSB0aGlzLnJlc291cmNlLmxheW91dElkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBycy5wYXJlbnQgPSByZWYucGFyZW50O1xuICAgICAgdGhpcy5yZXNvdXJjZXNbcmVmLm5hbWVdID0gcnM7XG4gICAgICB0aGlzLm1vZGVsc1tyZWYubmFtZV0gPSB7fTtcbiAgICAgIGlmICh0aGlzLnJlc291cmNlKSB7XG4gICAgICAgIHRoaXMubW9kZWxzW3JlZi5uYW1lXS5fdmdpcyA9IHRoaXMucmVzb3VyY2U7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLm1vZGFsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNoaWxkTm9kZXNbMF07XG4gICAgdGhpcy5tb2RhbC5jbGFzc0xpc3QucmVtb3ZlKCdWbHQtbW9kYWwtLW91dCcpO1xuICAgIHRoaXMubW9kYWwuY2xhc3NMaXN0LmFkZCgnVmx0LW1vZGFsX3Zpc2libGUnKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5rZXlFdmVudExpc3RlbmVyKTtcblxuICAgIGlmICh0aGlzLmludGVncmF0aW9uQ29kZSA9PT0gJ21vY2tzJykge1xuICAgICAgdGhpcy5pbnRlZ3JhdGlvbkljb24gPSAnQnJhbmQtaWNvbi12b25hZ2UnO1xuICAgIH0gZWxzZSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuaW50ZWdyYXRpb25Db2RlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgY2FzZSAnb2ZmaWNlMzY1JzpcbiAgICAgICAgICB0aGlzLmludGVncmF0aW9uSWNvbiA9ICdCcmFuZC1pY29uLW9mZmljZS1jb2xvcic7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3N1Z2FyJzpcbiAgICAgICAgICB0aGlzLmludGVncmF0aW9uSWNvbiA9ICdCcmFuZC1pY29uLXN1Z2FyY3JtLWNvbG9yJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbXNkeW5hbWljcyc6XG4gICAgICAgICAgdGhpcy5pbnRlZ3JhdGlvbkljb24gPSAnQnJhbmQtaWNvbi1keW5hbWljcy1jb2xvcic7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhpcy5pbnRlZ3JhdGlvbkljb24gPSBgQnJhbmQtaWNvbi0keyh0aGlzLmludGVncmF0aW9uQ29kZSB8fCAnJykudG9Mb3dlckNhc2UoKX0tY29sb3JgO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuYXBwbHlUaGVtZSgpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5tb2RhbC5jbGFzc0xpc3QucmVtb3ZlKCdWbHQtbW9kYWxfdmlzaWJsZScpO1xuICAgIHRoaXMubW9kYWwuY2xhc3NMaXN0LmFkZCgnVmx0LW1vZGFsLS1vdXQnKTtcbiAgfVxuXG4gIGRpc21pc3MoKSB7XG4gICAgdGhpcy5jbG9zZSgpO1xuICAgIHRoaXMub25Db21wbGV0ZShudWxsKTtcbiAgfVxuXG4gIG9uUmVzb3VyY2VEb25lKHJlc3VsdCkge1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgICB0aGlzLm9uQ29tcGxldGUocmVzdWx0KTtcbiAgfVxuXG4gIHNlbGVjdFJlc291cmNlKHJlc291cmNlKSB7XG4gICAgdGhpcy5jdXJyZW50UmVzb3VyY2UgPSByZXNvdXJjZTtcbiAgfVxuXG4gIGtlZXBPcmRlciA9IChhLCBiKSA9PiBhO1xuXG4gIHByaXZhdGUga2V5RXZlbnRMaXN0ZW5lciA9IChldmVudCkgPT4ge1xuICAgIGlmIChldmVudCAmJiBldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5rZXlFdmVudExpc3RlbmVyKTtcbiAgICAgIHRoaXMuZGlzbWlzcygpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIGFwcGx5VGhlbWUoKSB7XG4gICAgY29uc3QgbWV0YVRoZW1lID0gdGhpcy50aGVtZSA9PT0gJ2RhcmsnID8gbWV0YURhcmsgOiBtZXRhTGlnaHQ7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobWV0YVRoZW1lLnByb3BlcnRpZXMpKSB7XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoa2V5LCBtZXRhVGhlbWUucHJvcGVydGllc1trZXldKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9J1ZsdC1tb2RhbCBWbHQtbW9kYWwtLWxhcmdlJz5cbiAgPGRpdiBjbGFzcz1cIlZsdC1tb2RhbF9fcGFuZWxcIj5cbiAgICA8ZGl2IGNsYXNzPVwiVmx0LXRhYnNcIj5cbiAgICAgIDxkaXYgY2xhc3M9J1ZsdC10YWJzX19oZWFkZXItLWJhY2tncm91bmQnPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiVmx0LXRhYnNfX2hlYWRlciBWbHQtdGFic19faGVhZGVyLS1zaGFkb3dcIj5cbiAgICAgICAgICA8c3ZnIGNsYXNzPVwiVmx0LWljb25cIiBbbmdTdHlsZV09XCJ7ZmlsbDogaW50ZWdyYXRpb25JY29uID09PSAnQnJhbmQtaWNvbi12b25hZ2UnID8gJ3ZhcigtLXZnaXAtbWV0YS1pbnB1dC1jb2xvciknIDogJyd9XCI+PHVzZSBhdHRyLnhsaW5rOmhyZWY9XCJ2b2x0YS92b2x0YS1icmFuZC1pY29ucy5zdmcje3tpbnRlZ3JhdGlvbkljb259fVwiIC8+PC9zdmc+XG4gICAgICAgICAgPGRpdiAqbmdGb3I9J2xldCByIG9mIHJlc291cmNlcyB8IGtleXZhbHVlOiBrZWVwT3JkZXInIChjbGljayk9J3NlbGVjdFJlc291cmNlKHIua2V5KScgY2xhc3M9XCJWbHQtdGFic19fbGlua1wiIFtuZ0NsYXNzXT1cInsgJ1ZsdC10YWJzX19saW5rX2FjdGl2ZSc6IGN1cnJlbnRSZXNvdXJjZSA9PT0gci5rZXl9XCI+XG4gICAgICAgICAgICB7e3Iua2V5fX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiVmx0LW1vZGFsX19kaXNtaXNzXCIgKGNsaWNrKT1cImRpc21pc3MoKVwiPlxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cIlZsdC1pY29uXCI+PHVzZSB4bGluazpocmVmPVwidm9sdGEvdm9sdGEtaWNvbnMuc3ZnI1ZsdC1pY29uLWNyb3NzXCIgLz48L3N2Zz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJWbHQtdGFic19fY29udGVudFwiIHN0eWxlPSdtaW4taGVpZ2h0OiA5MHB4Oyc+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPSdsZXQgciBvZiByZXNvdXJjZXMgfCBrZXl2YWx1ZToga2VlcE9yZGVyJz5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPSdjdXJyZW50UmVzb3VyY2UgPT09IHIua2V5JyBjbGFzcz1cIlZsdC10YWJzX19wYW5lbCBWbHQtdGFic19fcGFuZWxfYWN0aXZlXCI+XG4gICAgICAgICAgICA8dmdpcC1tZXRhLXJlc291cmNlIFtyZXNvdXJjZV09J3IudmFsdWUnIFttb2RlbF09J21vZGVsc1tyLmtleV0nIFttZXRhUmVzb3VyY2VTZXJ2aWNlRGVsZWdhdGVkXT0nbWV0YVJlc291cmNlJyAoZG9uZSk9J29uUmVzb3VyY2VEb25lKCRldmVudCknIHRoZW1lPSdpbmhlcml0JyBbYXR0ci5kYXRhLXRoZW1lXT0ndGhlbWUnPjwvdmdpcC1tZXRhLXJlc291cmNlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19