@vgip/meta-ui 1.1.6 → 1.2.2

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