@provoly/dashboard 0.25.0 → 0.25.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 (115) hide show
  1. package/assets/svgs/format_bold.svg +1 -0
  2. package/assets/svgs/format_details.svg +1 -0
  3. package/assets/svgs/format_italic.svg +1 -0
  4. package/assets/svgs/format_list_bulleted.svg +1 -0
  5. package/assets/svgs/format_list_numbered.svg +1 -0
  6. package/assets/svgs/format_quote.svg +1 -0
  7. package/assets/svgs/format_strikethrough.svg +1 -0
  8. package/assets/svgs/format_table.svg +1 -0
  9. package/assets/svgs/format_title.svg +1 -0
  10. package/assets/svgs/format_underlined.svg +1 -0
  11. package/components/text-editor/component/text-editor.component.d.ts +38 -0
  12. package/components/text-editor/i18n/en.translations.d.ts +22 -0
  13. package/components/text-editor/i18n/fr.translations.d.ts +22 -0
  14. package/components/text-editor/index.d.ts +5 -0
  15. package/components/text-editor/mdToHtml.pipe.d.ts +7 -0
  16. package/components/text-editor/public-api.d.ts +5 -0
  17. package/components/text-editor/service/text-editor.service.d.ts +40 -0
  18. package/components/text-editor/style/_o-text-editor.scss +120 -0
  19. package/components/text-editor/style/css.component.d.ts +5 -0
  20. package/components/text-editor/text-editor.module.d.ts +17 -0
  21. package/dataset/components/dataset-detail/dataset-detail.component.d.ts +11 -4
  22. package/dataset/components/dataset-version-form/dataset-version-form.component.d.ts +23 -0
  23. package/dataset/dataset.module.d.ts +7 -5
  24. package/dataset/i18n/en.translations.d.ts +6 -0
  25. package/dataset/i18n/fr.translations.d.ts +6 -0
  26. package/dataset/style/_o-pry-dataset-detail.scss +61 -25
  27. package/dataset/style/_o-pry-dataset-version-form.scss +7 -0
  28. package/esm2022/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.mjs +1 -1
  29. package/esm2022/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.mjs +1 -1
  30. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.mjs +1 -1
  31. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +1 -1
  32. package/esm2022/admin/components/admin-environment/admin-environment-select/admin-environment-select.component.mjs +1 -1
  33. package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +1 -1
  34. package/esm2022/admin/components/admin-metadata/admin-select-metadata/admin-select-metadata.component.mjs +1 -1
  35. package/esm2022/admin/components/admin-metadata-rules/admin-select-metadata-rules/admin-select-metadata-rules.component.mjs +1 -1
  36. package/esm2022/admin/components/admin-metadata-user/admin-user-select-metadata/admin-user-select-metadata.component.mjs +1 -1
  37. package/esm2022/admin/components/admin-predicates/admin-predicates-select/admin-predicates-select.component.mjs +1 -1
  38. package/esm2022/admin/components/admin-relation-types/admin-relation-types-select/admin-relation-types-select.component.mjs +1 -1
  39. package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs +1 -1
  40. package/esm2022/components/text-editor/component/text-editor.component.mjs +126 -0
  41. package/esm2022/components/text-editor/i18n/en.translations.mjs +23 -0
  42. package/esm2022/components/text-editor/i18n/fr.translations.mjs +23 -0
  43. package/esm2022/components/text-editor/mdToHtml.pipe.mjs +17 -0
  44. package/esm2022/components/text-editor/provoly-dashboard-components-text-editor.mjs +5 -0
  45. package/esm2022/components/text-editor/public-api.mjs +6 -0
  46. package/esm2022/components/text-editor/service/text-editor.service.mjs +136 -0
  47. package/esm2022/components/text-editor/style/css.component.mjs +11 -0
  48. package/esm2022/components/text-editor/text-editor.module.mjs +32 -0
  49. package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +1 -1
  50. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +42 -9
  51. package/esm2022/dataset/components/dataset-version-form/dataset-version-form.component.mjs +58 -0
  52. package/esm2022/dataset/dataset.module.mjs +25 -8
  53. package/esm2022/dataset/i18n/en.translations.mjs +7 -1
  54. package/esm2022/dataset/i18n/fr.translations.mjs +7 -1
  55. package/esm2022/dataset/style/css.component.mjs +3 -3
  56. package/esm2022/filters/autocomplete/autocomplete.component.mjs +2 -2
  57. package/esm2022/import/components/import.component.mjs +39 -21
  58. package/esm2022/import/import.module.mjs +12 -5
  59. package/esm2022/import/store/import.actions.mjs +1 -1
  60. package/esm2022/import/store/import.effects.mjs +4 -2
  61. package/esm2022/import/store/import.service.mjs +3 -2
  62. package/esm2022/lib/core/components/share/group-share/group-share.component.mjs +3 -3
  63. package/esm2022/lib/core/components/tabs/tab-group.component.mjs +7 -3
  64. package/esm2022/lib/core/i18n/en.translations.mjs +4 -3
  65. package/esm2022/lib/core/i18n/fr.translations.mjs +2 -1
  66. package/esm2022/lib/core/store/data-source/data-source.actions.mjs +4 -2
  67. package/esm2022/lib/core/store/data-source/data-source.effects.mjs +2 -1
  68. package/esm2022/lib/core/store/data-source/data-source.model.mjs +1 -1
  69. package/esm2022/lib/core/store/data-source/data-source.reducer.mjs +4 -1
  70. package/esm2022/lib/core/store/data-source/data-source.service.mjs +13 -1
  71. package/esm2022/lib/core/store/search/filter-param-encoder.mjs +27 -0
  72. package/esm2022/lib/core/store/search/search.selectors.mjs +2 -2
  73. package/esm2022/lib/core/store/search/search.service.mjs +4 -3
  74. package/esm2022/restitution/style/css.component.mjs +2 -2
  75. package/esm2022/toolbox/components/share/share.component.mjs +47 -18
  76. package/esm2022/toolbox/style/css.component.mjs +2 -2
  77. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +3 -3
  78. package/fesm2022/provoly-dashboard-admin.mjs +12 -12
  79. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  80. package/fesm2022/provoly-dashboard-components-text-editor.mjs +356 -0
  81. package/fesm2022/provoly-dashboard-components-text-editor.mjs.map +1 -0
  82. package/fesm2022/provoly-dashboard-dataset.mjs +128 -18
  83. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  84. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs +1 -1
  85. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs.map +1 -1
  86. package/fesm2022/provoly-dashboard-import.mjs +53 -25
  87. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  88. package/fesm2022/provoly-dashboard-restitution.mjs +2 -2
  89. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  90. package/fesm2022/provoly-dashboard-toolbox.mjs +47 -19
  91. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  92. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +2 -2
  93. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  94. package/fesm2022/provoly-dashboard.mjs +72 -10
  95. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  96. package/import/components/import.component.d.ts +10 -5
  97. package/import/import.module.d.ts +2 -1
  98. package/import/store/import.actions.d.ts +2 -0
  99. package/import/store/import.service.d.ts +1 -1
  100. package/lib/core/components/tabs/tab-group.component.d.ts +3 -2
  101. package/lib/core/i18n/en.translations.d.ts +2 -1
  102. package/lib/core/i18n/fr.translations.d.ts +1 -0
  103. package/lib/core/store/data-source/data-source.actions.d.ts +10 -0
  104. package/lib/core/store/data-source/data-source.effects.d.ts +8 -5
  105. package/lib/core/store/data-source/data-source.model.d.ts +3 -0
  106. package/lib/core/store/data-source/data-source.service.d.ts +2 -0
  107. package/lib/core/store/search/filter-param-encoder.d.ts +5 -0
  108. package/package.json +36 -30
  109. package/restitution/style/_o-restitution.scss +0 -1
  110. package/styles/base/_utils.scss +4 -0
  111. package/styles/components/_o-text-panel.scss +64 -0
  112. package/styles/main.scss +1 -0
  113. package/styles-theme/components-theme/_a-form-field.theme.scss +2 -0
  114. package/toolbox/components/share/share.component.d.ts +13 -7
  115. package/toolbox/style/_o-dashboard-details.component.scss +3 -25
@@ -0,0 +1,136 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export const mdStyles = {
4
+ h1: '# ',
5
+ h2: '## ',
6
+ h3: '### ',
7
+ h4: '#### ',
8
+ h5: '##### ',
9
+ h6: '###### ',
10
+ bold: '**',
11
+ italic: '*',
12
+ underline: '<u>',
13
+ strikeThrough: '~~',
14
+ code: '`',
15
+ blockquote: '> ',
16
+ list: '- ',
17
+ orderedList: '\\d+\\. ',
18
+ table: '| | |\n| --- | --- |\n| | |',
19
+ details: '<details>\n<summary></summary>\n'
20
+ };
21
+ export const wrapperStyles = ['bold', 'italic', 'underline', 'strikeThrough', 'code'];
22
+ export const selfClosingStyles = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
23
+ export const listStyles = ['blockquote', 'list', 'orderedList'];
24
+ export const otherStyles = ['table', 'details'];
25
+ export class TextEditorService {
26
+ constructor() { }
27
+ getClosingTag(style) {
28
+ switch (style) {
29
+ case 'underline':
30
+ return '</u>';
31
+ case 'details':
32
+ return '\n</details>';
33
+ case 'bold':
34
+ case 'italic':
35
+ case 'strikeThrough':
36
+ case 'code':
37
+ return mdStyles[style];
38
+ default:
39
+ return '';
40
+ }
41
+ }
42
+ addMarkdown(text, style) {
43
+ if (wrapperStyles.includes(style)) {
44
+ return this.toggleWrapperStyle(text, style);
45
+ }
46
+ if (selfClosingStyles.includes(style)) {
47
+ return this.toggleSelfClosingStyle(text, style);
48
+ }
49
+ if (listStyles.includes(style)) {
50
+ return this.toggleListStyle(text, style);
51
+ }
52
+ if (otherStyles.includes(style)) {
53
+ return this.insertOtherStyle(text, style);
54
+ }
55
+ console.error(`Markdown style ${style} not supported`);
56
+ return text;
57
+ }
58
+ toggleWrapperStyle(text, style) {
59
+ if (text.startsWith(mdStyles[style])) {
60
+ const startRegex = new RegExp(`^${this.escapeRegExp(mdStyles[style])}`);
61
+ const endRegex = new RegExp(`${this.escapeRegExp(this.getClosingTag(style))}$`);
62
+ return text.replace(startRegex, '').replace(endRegex, '');
63
+ }
64
+ return `${mdStyles[style]}${text}${this.getClosingTag(style)}`;
65
+ }
66
+ toggleSelfClosingStyle(text, style) {
67
+ if (text.startsWith(mdStyles[style])) {
68
+ const startRegex = new RegExp(`^${this.escapeRegExp(mdStyles[style])}`);
69
+ return text.replace(startRegex, '');
70
+ }
71
+ return `${mdStyles[style]}${text}`;
72
+ }
73
+ toggleListStyle(text, style) {
74
+ const listStyle = mdStyles[style];
75
+ const lines = text.split('\n');
76
+ const startRegex = new RegExp(`^${style === 'orderedList' ? listStyle : this.escapeRegExp(listStyle)}`);
77
+ const isListAlready = lines.every((line) => startRegex.test(line));
78
+ const newLines = lines.map((line, index) => {
79
+ if (isListAlready) {
80
+ return line.replace(startRegex, '');
81
+ }
82
+ return `${style === 'orderedList' ? (index + 1).toString() + '. ' : listStyle}${line}`;
83
+ });
84
+ return newLines.join('\n');
85
+ }
86
+ insertOtherStyle(text, style) {
87
+ return `${mdStyles[style]}${text}${this.getClosingTag(style)}`;
88
+ }
89
+ escapeRegExp(text) {
90
+ return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
91
+ }
92
+ isListLine(line) {
93
+ return /^(\d+\.|- |\* |\> )/.test(line);
94
+ }
95
+ isOrderedListLine(text) {
96
+ return /^\d+\./.test(text);
97
+ }
98
+ getListCharacter(previousLine) {
99
+ if (this.isOrderedListLine(previousLine)) {
100
+ const match = previousLine.match(/^\d+/)?.[0];
101
+ return (parseInt(match ?? '1') + 1).toString() + '. ';
102
+ }
103
+ if (/^- /.test(previousLine)) {
104
+ return '- ';
105
+ }
106
+ if (/^\* /.test(previousLine)) {
107
+ return '* ';
108
+ }
109
+ if (/^\> /.test(previousLine)) {
110
+ return '> ';
111
+ }
112
+ return 'list';
113
+ }
114
+ updateOrderedListLines(text) {
115
+ let order = 1;
116
+ return text
117
+ .split('\n')
118
+ .map((line) => {
119
+ if (/^\d+\./.test(line)) {
120
+ return line.replace(/^\d+\. /, `${order++}. `);
121
+ }
122
+ order = 1;
123
+ return line;
124
+ })
125
+ .join('\n');
126
+ }
127
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TextEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
128
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TextEditorService, providedIn: 'root' }); }
129
+ }
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TextEditorService, decorators: [{
131
+ type: Injectable,
132
+ args: [{
133
+ providedIn: 'root'
134
+ }]
135
+ }], ctorParameters: () => [] });
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc2VydmljZS90ZXh0LWVkaXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUN0QixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxLQUFLO0lBQ1QsRUFBRSxFQUFFLE1BQU07SUFDVixFQUFFLEVBQUUsT0FBTztJQUNYLEVBQUUsRUFBRSxRQUFRO0lBQ1osRUFBRSxFQUFFLFNBQVM7SUFDYixJQUFJLEVBQUUsSUFBSTtJQUNWLE1BQU0sRUFBRSxHQUFHO0lBQ1gsU0FBUyxFQUFFLEtBQUs7SUFDaEIsYUFBYSxFQUFFLElBQUk7SUFDbkIsSUFBSSxFQUFFLEdBQUc7SUFDVCxVQUFVLEVBQUUsSUFBSTtJQUNoQixJQUFJLEVBQUUsSUFBSTtJQUNWLFdBQVcsRUFBRSxVQUFVO0lBQ3ZCLEtBQUssRUFBRSxpQ0FBaUM7SUFDeEMsT0FBTyxFQUFFLGtDQUFrQztDQUM1QyxDQUFDO0FBSUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFjLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2pHLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFjLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQWMsQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBYyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztBQUszRCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLGdCQUFlLENBQUM7SUFFaEIsYUFBYSxDQUFDLEtBQWM7UUFDMUIsUUFBUSxLQUFLLEVBQUUsQ0FBQztZQUNkLEtBQUssV0FBVztnQkFDZCxPQUFPLE1BQU0sQ0FBQztZQUNoQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxjQUFjLENBQUM7WUFDeEIsS0FBSyxNQUFNLENBQUM7WUFDWixLQUFLLFFBQVEsQ0FBQztZQUNkLEtBQUssZUFBZSxDQUFDO1lBQ3JCLEtBQUssTUFBTTtnQkFDVCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QjtnQkFDRSxPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVksRUFBRSxLQUFjO1FBQ3RDLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQVksRUFBRSxLQUFjO1FBQzdDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sVUFBVSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVELENBQUM7UUFDRCxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVELHNCQUFzQixDQUFDLElBQVksRUFBRSxLQUFjO1FBQ2pELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sVUFBVSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsT0FBTyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVksRUFBRSxLQUFjO1FBQzFDLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLE1BQU0sVUFBVSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RyxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkUsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN6QyxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7WUFDRCxPQUFPLEdBQUcsS0FBSyxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDekYsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVksRUFBRSxLQUFjO1FBQzNDLE9BQU8sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVk7UUFDdkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLDBCQUEwQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWTtRQUNyQixPQUFPLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBWTtRQUM1QixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLFlBQW9CO1FBQ25DLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDekMsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQztRQUN4RCxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELHNCQUFzQixDQUFDLElBQVk7UUFDakMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsT0FBTyxJQUFJO2FBQ1IsS0FBSyxDQUFDLElBQUksQ0FBQzthQUNYLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1osSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakQsQ0FBQztZQUNELEtBQUssR0FBRyxDQUFDLENBQUM7WUFDVixPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQzthQUNELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQixDQUFDOzhHQWhIVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgbWRTdHlsZXMgPSB7XG4gIGgxOiAnIyAnLFxuICBoMjogJyMjICcsXG4gIGgzOiAnIyMjICcsXG4gIGg0OiAnIyMjIyAnLFxuICBoNTogJyMjIyMjICcsXG4gIGg2OiAnIyMjIyMjICcsXG4gIGJvbGQ6ICcqKicsXG4gIGl0YWxpYzogJyonLFxuICB1bmRlcmxpbmU6ICc8dT4nLFxuICBzdHJpa2VUaHJvdWdoOiAnfn4nLFxuICBjb2RlOiAnYCcsXG4gIGJsb2NrcXVvdGU6ICc+ICcsXG4gIGxpc3Q6ICctICcsXG4gIG9yZGVyZWRMaXN0OiAnXFxcXGQrXFxcXC4gJyxcbiAgdGFibGU6ICd8ICB8ICB8XFxufCAtLS0gfCAtLS0gfFxcbnwgIHwgIHwnLFxuICBkZXRhaWxzOiAnPGRldGFpbHM+XFxuPHN1bW1hcnk+PC9zdW1tYXJ5Plxcbidcbn07XG5cbmV4cG9ydCB0eXBlIE1kU3R5bGUgPSBrZXlvZiB0eXBlb2YgbWRTdHlsZXM7XG5cbmV4cG9ydCBjb25zdCB3cmFwcGVyU3R5bGVzOiBNZFN0eWxlW10gPSBbJ2JvbGQnLCAnaXRhbGljJywgJ3VuZGVybGluZScsICdzdHJpa2VUaHJvdWdoJywgJ2NvZGUnXTtcbmV4cG9ydCBjb25zdCBzZWxmQ2xvc2luZ1N0eWxlczogTWRTdHlsZVtdID0gWydoMScsICdoMicsICdoMycsICdoNCcsICdoNScsICdoNiddO1xuZXhwb3J0IGNvbnN0IGxpc3RTdHlsZXM6IE1kU3R5bGVbXSA9IFsnYmxvY2txdW90ZScsICdsaXN0JywgJ29yZGVyZWRMaXN0J107XG5leHBvcnQgY29uc3Qgb3RoZXJTdHlsZXM6IE1kU3R5bGVbXSA9IFsndGFibGUnLCAnZGV0YWlscyddO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUZXh0RWRpdG9yU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBnZXRDbG9zaW5nVGFnKHN0eWxlOiBNZFN0eWxlKSB7XG4gICAgc3dpdGNoIChzdHlsZSkge1xuICAgICAgY2FzZSAndW5kZXJsaW5lJzpcbiAgICAgICAgcmV0dXJuICc8L3U+JztcbiAgICAgIGNhc2UgJ2RldGFpbHMnOlxuICAgICAgICByZXR1cm4gJ1xcbjwvZGV0YWlscz4nO1xuICAgICAgY2FzZSAnYm9sZCc6XG4gICAgICBjYXNlICdpdGFsaWMnOlxuICAgICAgY2FzZSAnc3RyaWtlVGhyb3VnaCc6XG4gICAgICBjYXNlICdjb2RlJzpcbiAgICAgICAgcmV0dXJuIG1kU3R5bGVzW3N0eWxlXTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICBhZGRNYXJrZG93bih0ZXh0OiBzdHJpbmcsIHN0eWxlOiBNZFN0eWxlKSB7XG4gICAgaWYgKHdyYXBwZXJTdHlsZXMuaW5jbHVkZXMoc3R5bGUpKSB7XG4gICAgICByZXR1cm4gdGhpcy50b2dnbGVXcmFwcGVyU3R5bGUodGV4dCwgc3R5bGUpO1xuICAgIH1cbiAgICBpZiAoc2VsZkNsb3NpbmdTdHlsZXMuaW5jbHVkZXMoc3R5bGUpKSB7XG4gICAgICByZXR1cm4gdGhpcy50b2dnbGVTZWxmQ2xvc2luZ1N0eWxlKHRleHQsIHN0eWxlKTtcbiAgICB9XG4gICAgaWYgKGxpc3RTdHlsZXMuaW5jbHVkZXMoc3R5bGUpKSB7XG4gICAgICByZXR1cm4gdGhpcy50b2dnbGVMaXN0U3R5bGUodGV4dCwgc3R5bGUpO1xuICAgIH1cbiAgICBpZiAob3RoZXJTdHlsZXMuaW5jbHVkZXMoc3R5bGUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbnNlcnRPdGhlclN0eWxlKHRleHQsIHN0eWxlKTtcbiAgICB9XG4gICAgY29uc29sZS5lcnJvcihgTWFya2Rvd24gc3R5bGUgJHtzdHlsZX0gbm90IHN1cHBvcnRlZGApO1xuICAgIHJldHVybiB0ZXh0O1xuICB9XG5cbiAgdG9nZ2xlV3JhcHBlclN0eWxlKHRleHQ6IHN0cmluZywgc3R5bGU6IE1kU3R5bGUpIHtcbiAgICBpZiAodGV4dC5zdGFydHNXaXRoKG1kU3R5bGVzW3N0eWxlXSkpIHtcbiAgICAgIGNvbnN0IHN0YXJ0UmVnZXggPSBuZXcgUmVnRXhwKGBeJHt0aGlzLmVzY2FwZVJlZ0V4cChtZFN0eWxlc1tzdHlsZV0pfWApO1xuICAgICAgY29uc3QgZW5kUmVnZXggPSBuZXcgUmVnRXhwKGAke3RoaXMuZXNjYXBlUmVnRXhwKHRoaXMuZ2V0Q2xvc2luZ1RhZyhzdHlsZSkpfSRgKTtcbiAgICAgIHJldHVybiB0ZXh0LnJlcGxhY2Uoc3RhcnRSZWdleCwgJycpLnJlcGxhY2UoZW5kUmVnZXgsICcnKTtcbiAgICB9XG4gICAgcmV0dXJuIGAke21kU3R5bGVzW3N0eWxlXX0ke3RleHR9JHt0aGlzLmdldENsb3NpbmdUYWcoc3R5bGUpfWA7XG4gIH1cblxuICB0b2dnbGVTZWxmQ2xvc2luZ1N0eWxlKHRleHQ6IHN0cmluZywgc3R5bGU6IE1kU3R5bGUpIHtcbiAgICBpZiAodGV4dC5zdGFydHNXaXRoKG1kU3R5bGVzW3N0eWxlXSkpIHtcbiAgICAgIGNvbnN0IHN0YXJ0UmVnZXggPSBuZXcgUmVnRXhwKGBeJHt0aGlzLmVzY2FwZVJlZ0V4cChtZFN0eWxlc1tzdHlsZV0pfWApO1xuICAgICAgcmV0dXJuIHRleHQucmVwbGFjZShzdGFydFJlZ2V4LCAnJyk7XG4gICAgfVxuICAgIHJldHVybiBgJHttZFN0eWxlc1tzdHlsZV19JHt0ZXh0fWA7XG4gIH1cblxuICB0b2dnbGVMaXN0U3R5bGUodGV4dDogc3RyaW5nLCBzdHlsZTogTWRTdHlsZSkge1xuICAgIGNvbnN0IGxpc3RTdHlsZSA9IG1kU3R5bGVzW3N0eWxlXTtcbiAgICBjb25zdCBsaW5lcyA9IHRleHQuc3BsaXQoJ1xcbicpO1xuICAgIGNvbnN0IHN0YXJ0UmVnZXggPSBuZXcgUmVnRXhwKGBeJHtzdHlsZSA9PT0gJ29yZGVyZWRMaXN0JyA/IGxpc3RTdHlsZSA6IHRoaXMuZXNjYXBlUmVnRXhwKGxpc3RTdHlsZSl9YCk7XG4gICAgY29uc3QgaXNMaXN0QWxyZWFkeSA9IGxpbmVzLmV2ZXJ5KChsaW5lKSA9PiBzdGFydFJlZ2V4LnRlc3QobGluZSkpO1xuICAgIGNvbnN0IG5ld0xpbmVzID0gbGluZXMubWFwKChsaW5lLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGlzTGlzdEFscmVhZHkpIHtcbiAgICAgICAgcmV0dXJuIGxpbmUucmVwbGFjZShzdGFydFJlZ2V4LCAnJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYCR7c3R5bGUgPT09ICdvcmRlcmVkTGlzdCcgPyAoaW5kZXggKyAxKS50b1N0cmluZygpICsgJy4gJyA6IGxpc3RTdHlsZX0ke2xpbmV9YDtcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3TGluZXMuam9pbignXFxuJyk7XG4gIH1cblxuICBpbnNlcnRPdGhlclN0eWxlKHRleHQ6IHN0cmluZywgc3R5bGU6IE1kU3R5bGUpIHtcbiAgICByZXR1cm4gYCR7bWRTdHlsZXNbc3R5bGVdfSR7dGV4dH0ke3RoaXMuZ2V0Q2xvc2luZ1RhZyhzdHlsZSl9YDtcbiAgfVxuXG4gIGVzY2FwZVJlZ0V4cCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZXh0LnJlcGxhY2UoL1stW1xcXXt9KCkqKz8uLFxcXFxeJHwjXFxzXS9nLCAnXFxcXCQmJyk7XG4gIH1cblxuICBpc0xpc3RMaW5lKGxpbmU6IHN0cmluZykge1xuICAgIHJldHVybiAvXihcXGQrXFwufC0gfFxcKiB8XFw+ICkvLnRlc3QobGluZSk7XG4gIH1cblxuICBpc09yZGVyZWRMaXN0TGluZSh0ZXh0OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gL15cXGQrXFwuLy50ZXN0KHRleHQpO1xuICB9XG5cbiAgZ2V0TGlzdENoYXJhY3RlcihwcmV2aW91c0xpbmU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmlzT3JkZXJlZExpc3RMaW5lKHByZXZpb3VzTGluZSkpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gcHJldmlvdXNMaW5lLm1hdGNoKC9eXFxkKy8pPy5bMF07XG4gICAgICByZXR1cm4gKHBhcnNlSW50KG1hdGNoID8/ICcxJykgKyAxKS50b1N0cmluZygpICsgJy4gJztcbiAgICB9XG4gICAgaWYgKC9eLSAvLnRlc3QocHJldmlvdXNMaW5lKSkge1xuICAgICAgcmV0dXJuICctICc7XG4gICAgfVxuICAgIGlmICgvXlxcKiAvLnRlc3QocHJldmlvdXNMaW5lKSkge1xuICAgICAgcmV0dXJuICcqICc7XG4gICAgfVxuICAgIGlmICgvXlxcPiAvLnRlc3QocHJldmlvdXNMaW5lKSkge1xuICAgICAgcmV0dXJuICc+ICc7XG4gICAgfVxuICAgIHJldHVybiAnbGlzdCc7XG4gIH1cblxuICB1cGRhdGVPcmRlcmVkTGlzdExpbmVzKHRleHQ6IHN0cmluZykge1xuICAgIGxldCBvcmRlciA9IDE7XG4gICAgcmV0dXJuIHRleHRcbiAgICAgIC5zcGxpdCgnXFxuJylcbiAgICAgIC5tYXAoKGxpbmUpID0+IHtcbiAgICAgICAgaWYgKC9eXFxkK1xcLi8udGVzdChsaW5lKSkge1xuICAgICAgICAgIHJldHVybiBsaW5lLnJlcGxhY2UoL15cXGQrXFwuIC8sIGAke29yZGVyKyt9LiBgKTtcbiAgICAgICAgfVxuICAgICAgICBvcmRlciA9IDE7XG4gICAgICAgIHJldHVybiBsaW5lO1xuICAgICAgfSlcbiAgICAgIC5qb2luKCdcXG4nKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,11 @@
1
+ import { Component, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class PryTextEditorCssComponent {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryTextEditorCssComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryTextEditorCssComponent, selector: "pry-text-editor-css", ngImport: i0, template: '', isInline: true, styles: [".o-draggable-menu__list,.o-draggable-menu__list__submenu{margin:0;padding:0}.o-draggable-menu__list li,.o-draggable-menu__list__submenu li{list-style:none}.o-text-editor__preview h1,.o-text-editor__preview h2,.o-text-editor__preview h3,.o-text-editor__preview h4,.o-text-editor__preview h5,.o-text-editor__preview h6{padding:0;margin:0;color:#253043}.o-text-editor__preview h5{font-size:.875rem}.o-text-editor__preview span,.o-text-editor__preview p{font-size:.875rem;color:#263340;white-space:pre-wrap}.o-text-editor__preview div{padding-bottom:10px}.o-text-editor__preview ul,.o-text-editor__preview ol{margin:0;line-height:1rem}.o-text-editor__preview li{color:#253043;font-size:.875rem}.o-text-editor__preview table{border-collapse:collapse}.o-text-editor__preview table thead tr{border-bottom-width:.0625rem;border-bottom-style:solid}.o-text-editor__preview table thead tr th{padding-top:.75rem;padding-bottom:.75rem;text-align:left}.o-text-editor__preview table tbody tr{border-bottom-width:.0625rem;border-bottom-style:solid}.o-text-editor__preview table tbody tr td{padding:.75rem .5rem;text-align:left}.o-draggable-menu,.o-draggable-menu--text-editor{display:flex;flex-direction:column;width:10.625rem;padding:.375rem}.o-draggable-menu.-dropdown,.-dropdown.o-draggable-menu--text-editor{width:fit-content}.o-draggable-menu.-dropdown button,.-dropdown.o-draggable-menu--text-editor button{border:none}.o-draggable-menu__list__item .a-btn,.o-draggable-menu__list__item .a-link{display:flex;align-items:center;justify-content:flex-start;gap:.3125rem;width:100%;min-width:max-content;height:auto;padding:.25rem .625rem;word-break:keep-all;cursor:pointer}.o-draggable-menu__list__item .a-btn[aria-expanded=true]+.o-draggable-menu__list__submenu,.o-draggable-menu__list__item .a-btn:hover+.o-draggable-menu__list__submenu,.o-draggable-menu__list__item .a-link[aria-expanded=true]+.o-draggable-menu__list__submenu,.o-draggable-menu__list__item .a-link:hover+.o-draggable-menu__list__submenu{display:block}.o-draggable-menu__list__submenu{position:absolute;left:96%;display:none;min-width:max-content;margin-top:-2.1875rem;padding:.375rem}.o-draggable-menu__list__submenu [draggable]{cursor:move}.o-draggable-menu__list__submenu.is-active,.o-draggable-menu__list__submenu:hover{display:block}.o-draggable-menu,.o-draggable-menu--text-editor{border-radius:.5rem;background-color:#fff;box-shadow:0 1px 3px #0000001a}.o-draggable-menu__list__item .a-btn,.o-draggable-menu__list__item .a-link{border-radius:.375rem;font-family:Ubuntu,sans-serif;font-size:.875rem;line-height:1.0625rem;font-weight:400;font-style:normal}.o-draggable-menu__list__submenu{border-radius:.3125rem;background-color:#fff;box-shadow:0 1px 3px #0000001a}.o-text-editor{display:flex;flex-direction:column}.o-text-editor__header{display:flex;justify-content:space-between;align-items:center}.o-text-editor__header>.a-tooltip:last-child.a-tooltip[data-tooltip][data-tooltip-position=bottom]:after{left:calc(50% - 15px)}.o-text-editor__tabs{display:flex;gap:.3125rem}.o-text-editor__tab{padding:0 .625rem;font-size:.625rem;height:1.125rem;margin-top:-3px}.o-text-editor__tab.-active{margin-top:-1px;background-color:#fff;border:1px solid #BCCAD8;border-top:none;border-radius:0 0 4px 4px;font-weight:700;z-index:2}.o-text-editor__buttons{display:flex;flex-wrap:wrap;align-items:center}.o-text-editor__button{padding:.3125rem;overflow:visible;color:#113b6e}.o-text-editor__button:hover{transition:background-color .3s ease,color .3s ease;background-color:#d8e7f7}.o-text-editor__content{display:flex;gap:.625rem;min-height:12.6875rem;width:100%}.o-text-editor__tab-panel{width:100%}.o-text-editor__textarea.-half-width{flex-grow:0;width:auto}.o-text-editor__textarea.-full-width{flex-grow:1;width:100%}.o-text-editor__textarea.-remove-corner-radius{border-bottom-left-radius:0}.o-text-editor__preview{flex:1;background-color:#fff;padding:.4375rem .75rem .25rem;border:1px solid #BCCAD8;border-radius:4px;width:100%;height:100%;overflow-y:auto}.o-draggable-menu--text-editor{display:flex;flex-direction:column}.o-draggable-menu--text-editor .o-draggable-menu__list__item{width:100%;font-size:.875rem}.o-draggable-menu--text-editor .o-text-editor__button{display:flex;align-items:center;gap:.3125rem}\n"], encapsulation: i0.ViewEncapsulation.None }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryTextEditorCssComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'pry-text-editor-css', template: '', encapsulation: ViewEncapsulation.None, styles: [".o-draggable-menu__list,.o-draggable-menu__list__submenu{margin:0;padding:0}.o-draggable-menu__list li,.o-draggable-menu__list__submenu li{list-style:none}.o-text-editor__preview h1,.o-text-editor__preview h2,.o-text-editor__preview h3,.o-text-editor__preview h4,.o-text-editor__preview h5,.o-text-editor__preview h6{padding:0;margin:0;color:#253043}.o-text-editor__preview h5{font-size:.875rem}.o-text-editor__preview span,.o-text-editor__preview p{font-size:.875rem;color:#263340;white-space:pre-wrap}.o-text-editor__preview div{padding-bottom:10px}.o-text-editor__preview ul,.o-text-editor__preview ol{margin:0;line-height:1rem}.o-text-editor__preview li{color:#253043;font-size:.875rem}.o-text-editor__preview table{border-collapse:collapse}.o-text-editor__preview table thead tr{border-bottom-width:.0625rem;border-bottom-style:solid}.o-text-editor__preview table thead tr th{padding-top:.75rem;padding-bottom:.75rem;text-align:left}.o-text-editor__preview table tbody tr{border-bottom-width:.0625rem;border-bottom-style:solid}.o-text-editor__preview table tbody tr td{padding:.75rem .5rem;text-align:left}.o-draggable-menu,.o-draggable-menu--text-editor{display:flex;flex-direction:column;width:10.625rem;padding:.375rem}.o-draggable-menu.-dropdown,.-dropdown.o-draggable-menu--text-editor{width:fit-content}.o-draggable-menu.-dropdown button,.-dropdown.o-draggable-menu--text-editor button{border:none}.o-draggable-menu__list__item .a-btn,.o-draggable-menu__list__item .a-link{display:flex;align-items:center;justify-content:flex-start;gap:.3125rem;width:100%;min-width:max-content;height:auto;padding:.25rem .625rem;word-break:keep-all;cursor:pointer}.o-draggable-menu__list__item .a-btn[aria-expanded=true]+.o-draggable-menu__list__submenu,.o-draggable-menu__list__item .a-btn:hover+.o-draggable-menu__list__submenu,.o-draggable-menu__list__item .a-link[aria-expanded=true]+.o-draggable-menu__list__submenu,.o-draggable-menu__list__item .a-link:hover+.o-draggable-menu__list__submenu{display:block}.o-draggable-menu__list__submenu{position:absolute;left:96%;display:none;min-width:max-content;margin-top:-2.1875rem;padding:.375rem}.o-draggable-menu__list__submenu [draggable]{cursor:move}.o-draggable-menu__list__submenu.is-active,.o-draggable-menu__list__submenu:hover{display:block}.o-draggable-menu,.o-draggable-menu--text-editor{border-radius:.5rem;background-color:#fff;box-shadow:0 1px 3px #0000001a}.o-draggable-menu__list__item .a-btn,.o-draggable-menu__list__item .a-link{border-radius:.375rem;font-family:Ubuntu,sans-serif;font-size:.875rem;line-height:1.0625rem;font-weight:400;font-style:normal}.o-draggable-menu__list__submenu{border-radius:.3125rem;background-color:#fff;box-shadow:0 1px 3px #0000001a}.o-text-editor{display:flex;flex-direction:column}.o-text-editor__header{display:flex;justify-content:space-between;align-items:center}.o-text-editor__header>.a-tooltip:last-child.a-tooltip[data-tooltip][data-tooltip-position=bottom]:after{left:calc(50% - 15px)}.o-text-editor__tabs{display:flex;gap:.3125rem}.o-text-editor__tab{padding:0 .625rem;font-size:.625rem;height:1.125rem;margin-top:-3px}.o-text-editor__tab.-active{margin-top:-1px;background-color:#fff;border:1px solid #BCCAD8;border-top:none;border-radius:0 0 4px 4px;font-weight:700;z-index:2}.o-text-editor__buttons{display:flex;flex-wrap:wrap;align-items:center}.o-text-editor__button{padding:.3125rem;overflow:visible;color:#113b6e}.o-text-editor__button:hover{transition:background-color .3s ease,color .3s ease;background-color:#d8e7f7}.o-text-editor__content{display:flex;gap:.625rem;min-height:12.6875rem;width:100%}.o-text-editor__tab-panel{width:100%}.o-text-editor__textarea.-half-width{flex-grow:0;width:auto}.o-text-editor__textarea.-full-width{flex-grow:1;width:100%}.o-text-editor__textarea.-remove-corner-radius{border-bottom-left-radius:0}.o-text-editor__preview{flex:1;background-color:#fff;padding:.4375rem .75rem .25rem;border:1px solid #BCCAD8;border-radius:4px;width:100%;height:100%;overflow-y:auto}.o-draggable-menu--text-editor{display:flex;flex-direction:column}.o-draggable-menu--text-editor .o-draggable-menu__list__item{width:100%;font-size:.875rem}.o-draggable-menu--text-editor .o-text-editor__button{display:flex;align-items:center;gap:.3125rem}\n"] }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3R5bGUvY3NzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVE3RCxNQUFNLE9BQU8seUJBQXlCOzhHQUF6Qix5QkFBeUI7a0dBQXpCLHlCQUF5QiwyREFKMUIsRUFBRTs7MkZBSUQseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLHFCQUFxQixZQUNyQixFQUFFLGlCQUVHLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS10ZXh0LWVkaXRvci1jc3MnLFxuICB0ZW1wbGF0ZTogJycsXG4gIHN0eWxlVXJsczogWycuL19vLXRleHQtZWRpdG9yLnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBQcnlUZXh0RWRpdG9yQ3NzQ29tcG9uZW50IHt9XG4iXX0=
@@ -0,0 +1,32 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { PryCoreModule, PryI18nModule, PryIconModule } from '@provoly/dashboard';
5
+ import { PryTextEditorCssComponent } from './style/css.component';
6
+ import { PryTextEditorComponent } from './component/text-editor.component';
7
+ import { MdToHtmlPipe } from './mdToHtml.pipe';
8
+ import { enTranslations } from './i18n/en.translations';
9
+ import { frTranslations } from './i18n/fr.translations';
10
+ import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
11
+ import { PryToolboxModule } from '@provoly/dashboard/toolbox';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@provoly/dashboard";
14
+ export class PryTextEditorModule {
15
+ constructor(pryTranslateService) {
16
+ this.pryTranslateService = pryTranslateService;
17
+ this.pryTranslateService.addLangObject('fr', 'textEditor', frTranslations);
18
+ this.pryTranslateService.addLangObject('en', 'textEditor', enTranslations);
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryTextEditorModule, deps: [{ token: i1.PryI18nService }], target: i0.ɵɵFactoryTarget.NgModule }); }
21
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: PryTextEditorModule, declarations: [PryTextEditorComponent, PryTextEditorCssComponent, MdToHtmlPipe], imports: [CommonModule, FormsModule, ReactiveFormsModule, PryCoreModule, PryIconModule, PryI18nModule, CdkOverlayOrigin, CdkConnectedOverlay, PryToolboxModule], exports: [PryTextEditorComponent, MdToHtmlPipe] }); }
22
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryTextEditorModule, imports: [CommonModule, FormsModule, ReactiveFormsModule, PryCoreModule, PryIconModule, PryI18nModule, PryToolboxModule] }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryTextEditorModule, decorators: [{
25
+ type: NgModule,
26
+ args: [{
27
+ declarations: [PryTextEditorComponent, PryTextEditorCssComponent, MdToHtmlPipe],
28
+ exports: [PryTextEditorComponent, MdToHtmlPipe],
29
+ imports: [CommonModule, FormsModule, ReactiveFormsModule, PryCoreModule, PryIconModule, PryI18nModule, CdkOverlayOrigin, CdkConnectedOverlay, PryToolboxModule]
30
+ }]
31
+ }], ctorParameters: () => [{ type: i1.PryI18nService }] });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvY29tcG9uZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFrQixhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBTzlELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFBb0IsbUJBQW1DO1FBQW5DLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBZ0I7UUFDckQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM3RSxDQUFDOzhHQUpVLG1CQUFtQjsrR0FBbkIsbUJBQW1CLGlCQUpmLHNCQUFzQixFQUFFLHlCQUF5QixFQUFFLFlBQVksYUFFcEUsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsYUFEcEosc0JBQXNCLEVBQUUsWUFBWTsrR0FHbkMsbUJBQW1CLFlBRnBCLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQXlDLGdCQUFnQjs7MkZBRW5KLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSx5QkFBeUIsRUFBRSxZQUFZLENBQUM7b0JBQy9FLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLFlBQVksQ0FBQztvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQztpQkFDaEsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUHJ5Q29yZU1vZHVsZSwgUHJ5STE4bk1vZHVsZSwgUHJ5STE4blNlcnZpY2UsIFByeUljb25Nb2R1bGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgUHJ5VGV4dEVkaXRvckNzc0NvbXBvbmVudCB9IGZyb20gJy4vc3R5bGUvY3NzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcnlUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQvdGV4dC1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IE1kVG9IdG1sUGlwZSB9IGZyb20gJy4vbWRUb0h0bWwucGlwZSc7XG5pbXBvcnQgeyBlblRyYW5zbGF0aW9ucyB9IGZyb20gJy4vaTE4bi9lbi50cmFuc2xhdGlvbnMnO1xuaW1wb3J0IHsgZnJUcmFuc2xhdGlvbnMgfSBmcm9tICcuL2kxOG4vZnIudHJhbnNsYXRpb25zJztcbmltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXksIENka092ZXJsYXlPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBQcnlUb29sYm94TW9kdWxlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtQcnlUZXh0RWRpdG9yQ29tcG9uZW50LCBQcnlUZXh0RWRpdG9yQ3NzQ29tcG9uZW50LCBNZFRvSHRtbFBpcGVdLFxuICBleHBvcnRzOiBbUHJ5VGV4dEVkaXRvckNvbXBvbmVudCwgTWRUb0h0bWxQaXBlXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFByeUNvcmVNb2R1bGUsIFByeUljb25Nb2R1bGUsIFByeUkxOG5Nb2R1bGUsIENka092ZXJsYXlPcmlnaW4sIENka0Nvbm5lY3RlZE92ZXJsYXksIFByeVRvb2xib3hNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFByeVRleHRFZGl0b3JNb2R1bGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHByeVRyYW5zbGF0ZVNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlKSB7XG4gICAgdGhpcy5wcnlUcmFuc2xhdGVTZXJ2aWNlLmFkZExhbmdPYmplY3QoJ2ZyJywgJ3RleHRFZGl0b3InLCBmclRyYW5zbGF0aW9ucyk7XG4gICAgdGhpcy5wcnlUcmFuc2xhdGVTZXJ2aWNlLmFkZExhbmdPYmplY3QoJ2VuJywgJ3RleHRFZGl0b3InLCBlblRyYW5zbGF0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
38
38
  }], consult: [{
39
39
  type: Output
40
40
  }] } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2RhdGFzZXQvY29tcG9uZW50cy9kYXRhc2V0LWNhcmQvZGF0YXNldC1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2RhdGFzZXQvY29tcG9uZW50cy9kYXRhc2V0LWNhcmQvZGF0YXNldC1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBMkIsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBT3ZDLE1BQU0sT0FBTyx1QkFBdUI7SUFLbEMsWUFBb0IsS0FBWTtRQUFaLFVBQUssR0FBTCxLQUFLLENBQU87UUFIdEIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFHYixDQUFDO0lBQ3BDLGtCQUFrQjtRQUNoQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUs7YUFDL0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQzlDLEdBQUcsQ0FDRCxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ1gsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsRUFBRSxZQUFZLENBQ2pILENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxXQUErQixFQUFFLFNBQWlCO1FBQ3BFLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsU0FBUyxFQUFFLENBQUM7WUFDbEQsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDakQsQ0FBQztRQUNELE9BQWUsV0FBVyxDQUFDO0lBQzdCLENBQUM7SUFDRCxjQUFjO1FBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7OEdBekJVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLHlIQ1RwQyxxd0NBZ0NBOzsyRkR2QmEsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNFLGtCQUFrQjswRUFJbkIsT0FBTztzQkFBZixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YXNldCwgRGF0YXNldFZlcnNpb24sIERhdGFTb3VyY2VTZWxlY3RvcnMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWRhdGFzZXQtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhc2V0LWNhcmQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeURhdGFzZXRDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCAge1xuICBASW5wdXQoKSBkYXRhc2V0ITogRGF0YXNldDtcbiAgQE91dHB1dCgpIGNvbnN1bHQgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGFzZXQ+KCk7XG4gIGRhdGFzZXRWZXJzaW9ucyQhOiBPYnNlcnZhYmxlPERhdGFzZXRWZXJzaW9uW10+O1xuICBhY3RpdmVWZXJzaW9uJCE6IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG4gIG5nQWZ0ZXJDb250ZW50SW5pdCAgKCkge1xuICAgIHRoaXMuZGF0YXNldFZlcnNpb25zJCA9IHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5tYXRjaGluZ0RhdGFzZXRWZXJzaW9ucyh0aGlzLmRhdGFzZXQuaWQpKVxuICAgICAgLnBpcGUobWFwKChyZXMpID0+IFsuLi5yZXNdLnNvcnQoKGEsIGIpID0+IGIudmVyc2lvbiAtIGEudmVyc2lvbikpKTtcbiAgICB0aGlzLmFjdGl2ZVZlcnNpb24kID0gdGhpcy5kYXRhc2V0VmVyc2lvbnMkLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgICh2ZXJzaW9ucykgPT5cbiAgICAgICAgICB2ZXJzaW9ucy5zb3J0KCh2MSwgdjIpID0+IHYyLnZlcnNpb24gLSB2MS52ZXJzaW9uKS5maW5kKCh2ZXJzaW9uKSA9PiB2ZXJzaW9uLnN0YXRlID09PSAnQUNUSVZFJyk/Lmxhc3RNb2RpZmllZFxuICAgICAgKVxuICAgICk7XG4gIH1cbiAgdHJ1bmNhdGVEZXNjcmlwdGlvbihkZXNjcmlwdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkLCBtYXhMZW5ndGg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKGRlc2NyaXB0aW9uICYmIGRlc2NyaXB0aW9uLmxlbmd0aCA+IG1heExlbmd0aCkge1xuICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uLnNsaWNlKDAsIG1heExlbmd0aCkgKyAnLi4uJztcbiAgICB9XG4gICAgcmV0dXJuIDxzdHJpbmc+ZGVzY3JpcHRpb247XG4gIH1cbiAgZ29Ub0RldGFpbFZpZXcoKSB7XG4gICAgdGhpcy5jb25zdWx0LmVtaXQodGhpcy5kYXRhc2V0KTtcbiAgfVxufVxuIiwiPHByeS1kYXRhc2V0LWNzcz48L3ByeS1kYXRhc2V0LWNzcz5cbjxkaXYgY2xhc3M9XCJvLXByeS1kYXRhc2V0LWNhcmRcIiAoY2xpY2spPVwiZ29Ub0RldGFpbFZpZXcoKVwiPlxuICA8ZGl2IGNsYXNzPVwiby1wcnktZGF0YXNldC1jYXJkX19oZWFkZXJcIj5cbiAgICA8aW1nXG4gICAgICBhbHQ9XCJcIlxuICAgICAgW2hlaWdodF09XCIyNVwiXG4gICAgICBbd2lkdGhdPVwiMjVcIlxuICAgICAgW3NyY109XCJkYXRhc2V0LmlkIHwgdHJhbnNsYXRlSWQgOiB7IHR5cGU6ICdkYXRhc291cmNlJywgb3V0cHV0OiAnaWNvbicgfSB8IGFzeW5jXCJcbiAgICAvPlxuICAgIDxkaXYgY2xhc3M9XCJhLWg0IGRhdGFzZXQtbmFtZVwiPnt7IGRhdGFzZXQubmFtZSB9fTwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm8tcHJ5LWRhdGFzZXQtY2FyZF9fdHh0XCI+XG4gICAgPGRpdiBjbGFzcz1cImEtcFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVZlcnNpb24kIHwgYXN5bmM7IGVsc2Ugbm9BY3RpdmVWZXJzaW9uXCI+XG4gICAgICAgIDxwIGNsYXNzPVwiYS1wIC1kYXRlXCI+e3sgJ0BwcnkuZGF0YXNldC5zaW5jZV9kYXknIHwgaTE4biB9fSB7eyAoYWN0aXZlVmVyc2lvbiQgfCBhc3luYykhIHwgc2luY2VEYXRlIH19PC9wPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI25vQWN0aXZlVmVyc2lvbj5cbiAgICAgICAgPHNwYW4+IHt7ICdAcHJ5LmRhdGFzZXQubm9BY3RpdmVWZXJzaW9uJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tcHJ5LWRhdGFzZXQtY2FyZF9fZGVzY3JpcHRpb24tY29udGFpbmVyXCIgZWxsaXBzaXMgdGV4dEVsZW1lbnRTZWxlY3Rvcj1cIi5kZXNjcmlwdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj57eyB0cnVuY2F0ZURlc2NyaXB0aW9uKGRhdGFzZXQuZGVzY3JpcHRpb24sIDEwMCkgfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiby1wcnktZGF0YXNldC1jYXJkX19mb290ZXJcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG5cIj5cbiAgICAgIHt7ICdAcHJ5LmRhdGFzZXQuY29uc3VsdCcgfCBpMThuIH19XG4gICAgICA8cHJ5LWljb24gW3dpZHRoXT1cIjIwXCIgW2hlaWdodF09XCIyMFwiIGljb25Tdmc9XCJhcnJvd19yaWdodFwiPjwvcHJ5LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2RhdGFzZXQvY29tcG9uZW50cy9kYXRhc2V0LWNhcmQvZGF0YXNldC1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2RhdGFzZXQvY29tcG9uZW50cy9kYXRhc2V0LWNhcmQvZGF0YXNldC1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBMkIsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBT3ZDLE1BQU0sT0FBTyx1QkFBdUI7SUFNbEMsWUFBb0IsS0FBWTtRQUFaLFVBQUssR0FBTCxLQUFLLENBQU87UUFKdEIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFJYixDQUFDO0lBRXBDLGtCQUFrQjtRQUNoQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUs7YUFDL0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQzlDLEdBQUcsQ0FDRCxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ1gsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsRUFBRSxZQUFZLENBQ2pILENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxXQUErQixFQUFFLFNBQWlCO1FBQ3BFLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsU0FBUyxFQUFFLENBQUM7WUFDbEQsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDakQsQ0FBQztRQUNELE9BQWUsV0FBVyxDQUFDO0lBQzdCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7OEdBN0JVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLHlIQ1RwQyxxd0NBZ0NBOzsyRkR2QmEsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNFLGtCQUFrQjswRUFJbkIsT0FBTztzQkFBZixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YXNldCwgRGF0YXNldFZlcnNpb24sIERhdGFTb3VyY2VTZWxlY3RvcnMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWRhdGFzZXQtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhc2V0LWNhcmQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeURhdGFzZXRDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCAge1xuICBASW5wdXQoKSBkYXRhc2V0ITogRGF0YXNldDtcbiAgQE91dHB1dCgpIGNvbnN1bHQgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGFzZXQ+KCk7XG4gIGRhdGFzZXRWZXJzaW9ucyQhOiBPYnNlcnZhYmxlPERhdGFzZXRWZXJzaW9uW10+O1xuICBhY3RpdmVWZXJzaW9uJCE6IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZSkge31cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5kYXRhc2V0VmVyc2lvbnMkID0gdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLm1hdGNoaW5nRGF0YXNldFZlcnNpb25zKHRoaXMuZGF0YXNldC5pZCkpXG4gICAgICAucGlwZShtYXAoKHJlcykgPT4gWy4uLnJlc10uc29ydCgoYSwgYikgPT4gYi52ZXJzaW9uIC0gYS52ZXJzaW9uKSkpO1xuICAgIHRoaXMuYWN0aXZlVmVyc2lvbiQgPSB0aGlzLmRhdGFzZXRWZXJzaW9ucyQucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKHZlcnNpb25zKSA9PlxuICAgICAgICAgIHZlcnNpb25zLnNvcnQoKHYxLCB2MikgPT4gdjIudmVyc2lvbiAtIHYxLnZlcnNpb24pLmZpbmQoKHZlcnNpb24pID0+IHZlcnNpb24uc3RhdGUgPT09ICdBQ1RJVkUnKT8ubGFzdE1vZGlmaWVkXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHRydW5jYXRlRGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyB8IHVuZGVmaW5lZCwgbWF4TGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmIChkZXNjcmlwdGlvbiAmJiBkZXNjcmlwdGlvbi5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICAgIHJldHVybiBkZXNjcmlwdGlvbi5zbGljZSgwLCBtYXhMZW5ndGgpICsgJy4uLic7XG4gICAgfVxuICAgIHJldHVybiA8c3RyaW5nPmRlc2NyaXB0aW9uO1xuICB9XG5cbiAgZ29Ub0RldGFpbFZpZXcoKSB7XG4gICAgdGhpcy5jb25zdWx0LmVtaXQodGhpcy5kYXRhc2V0KTtcbiAgfVxufVxuIiwiPHByeS1kYXRhc2V0LWNzcz48L3ByeS1kYXRhc2V0LWNzcz5cbjxkaXYgY2xhc3M9XCJvLXByeS1kYXRhc2V0LWNhcmRcIiAoY2xpY2spPVwiZ29Ub0RldGFpbFZpZXcoKVwiPlxuICA8ZGl2IGNsYXNzPVwiby1wcnktZGF0YXNldC1jYXJkX19oZWFkZXJcIj5cbiAgICA8aW1nXG4gICAgICBhbHQ9XCJcIlxuICAgICAgW2hlaWdodF09XCIyNVwiXG4gICAgICBbd2lkdGhdPVwiMjVcIlxuICAgICAgW3NyY109XCJkYXRhc2V0LmlkIHwgdHJhbnNsYXRlSWQgOiB7IHR5cGU6ICdkYXRhc291cmNlJywgb3V0cHV0OiAnaWNvbicgfSB8IGFzeW5jXCJcbiAgICAvPlxuICAgIDxkaXYgY2xhc3M9XCJhLWg0IGRhdGFzZXQtbmFtZVwiPnt7IGRhdGFzZXQubmFtZSB9fTwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm8tcHJ5LWRhdGFzZXQtY2FyZF9fdHh0XCI+XG4gICAgPGRpdiBjbGFzcz1cImEtcFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVZlcnNpb24kIHwgYXN5bmM7IGVsc2Ugbm9BY3RpdmVWZXJzaW9uXCI+XG4gICAgICAgIDxwIGNsYXNzPVwiYS1wIC1kYXRlXCI+e3sgJ0BwcnkuZGF0YXNldC5zaW5jZV9kYXknIHwgaTE4biB9fSB7eyAoYWN0aXZlVmVyc2lvbiQgfCBhc3luYykhIHwgc2luY2VEYXRlIH19PC9wPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI25vQWN0aXZlVmVyc2lvbj5cbiAgICAgICAgPHNwYW4+IHt7ICdAcHJ5LmRhdGFzZXQubm9BY3RpdmVWZXJzaW9uJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tcHJ5LWRhdGFzZXQtY2FyZF9fZGVzY3JpcHRpb24tY29udGFpbmVyXCIgZWxsaXBzaXMgdGV4dEVsZW1lbnRTZWxlY3Rvcj1cIi5kZXNjcmlwdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj57eyB0cnVuY2F0ZURlc2NyaXB0aW9uKGRhdGFzZXQuZGVzY3JpcHRpb24sIDEwMCkgfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiby1wcnktZGF0YXNldC1jYXJkX19mb290ZXJcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG5cIj5cbiAgICAgIHt7ICdAcHJ5LmRhdGFzZXQuY29uc3VsdCcgfCBpMThuIH19XG4gICAgICA8cHJ5LWljb24gW3dpZHRoXT1cIjIwXCIgW2hlaWdodF09XCIyMFwiIGljb25Tdmc9XCJhcnJvd19yaWdodFwiPjwvcHJ5LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,14 +1,17 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { DashboardActions, DashboardSelectors, DataSourceActions, DataSourceSelectors, SearchActions, ViewMode } from '@provoly/dashboard';
2
+ import { DashboardActions, DashboardSelectors, DataSourceActions, DataSourceSelectors, SearchActions, SubscriptionnerDirective, ViewMode } from '@provoly/dashboard';
3
3
  import { map } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@ngrx/store";
6
6
  import * as i2 from "@angular/common";
7
7
  import * as i3 from "@provoly/dashboard";
8
- import * as i4 from "@provoly/dashboard/components/sinceDate";
8
+ import * as i4 from "../dataset-version-form/dataset-version-form.component";
9
+ import * as i5 from "@provoly/dashboard/components/sinceDate";
10
+ import * as i6 from "@provoly/dashboard/components/text-editor";
9
11
  let nextCompId = 0;
10
- export class PryDatasetDetailComponent {
12
+ export class PryDatasetDetailComponent extends SubscriptionnerDirective {
11
13
  constructor(store) {
14
+ super();
12
15
  this.store = store;
13
16
  this.goToCatalog = new EventEmitter();
14
17
  this.widgetManifest = {
@@ -36,6 +39,9 @@ export class PryDatasetDetailComponent {
36
39
  this.tab = 0;
37
40
  this.showModalStatus = false;
38
41
  this.selectedMode = ViewMode.CONSULT;
42
+ this.isEditingVersion = false;
43
+ this.isPanelOpen = false;
44
+ this.datasetItems$ = this.store.select(DashboardSelectors.resultSets);
39
45
  this.compId = nextCompId++;
40
46
  }
41
47
  ngOnInit() {
@@ -46,14 +52,20 @@ export class PryDatasetDetailComponent {
46
52
  excludeGeo: false,
47
53
  from: 'PryDatasetDetailComponent.ngOnInit()'
48
54
  }));
49
- this.datasetItems$ = this.store.select(DashboardSelectors.resultSets);
50
55
  this.datasetVersions$ = this.store
51
56
  .select(DataSourceSelectors.matchingDatasetVersions(this.dataset.id))
52
57
  .pipe(map((res) => [...res].sort((a, b) => b.version - a.version)));
58
+ this.activeVersion$ = this.datasetVersions$.pipe(map((versions) => versions.sort((v1, v2) => v2.version - v1.version).find((version) => version.state === 'ACTIVE')));
59
+ this.subscriptions.add(this.datasetVersions$.subscribe((versions) => {
60
+ if (this.selectedVersion) {
61
+ this.selectedVersion = {
62
+ ...this.selectedVersion,
63
+ ...versions.find((version) => version.id === this.selectedVersion?.id)
64
+ };
65
+ }
66
+ }));
53
67
  this.widgetManifest['table'].datasource = [this.dataset.id];
54
68
  this.widgetManifest['map'].datasource = [this.dataset.id];
55
- this.activeVersion$ = this.datasetVersions$.pipe(map((versions) => versions.sort((v1, v2) => v2.version - v1.version).find((version) => version.state === 'ACTIVE')?.id ??
56
- 'no active version found'));
57
69
  }
58
70
  goBack() {
59
71
  this.goToCatalog.emit();
@@ -119,15 +131,36 @@ export class PryDatasetDetailComponent {
119
131
  versionId: version.id
120
132
  }));
121
133
  }
134
+ onTabSwitch($event) {
135
+ if ([0, 1, 2].includes($event)) {
136
+ this.isPanelOpen = false;
137
+ }
138
+ }
139
+ togglePanel(selectedVersion) {
140
+ if (selectedVersion) {
141
+ this.selectedVersion = selectedVersion;
142
+ this.isPanelOpen = true;
143
+ this.isEditingVersion = false;
144
+ }
145
+ else {
146
+ this.isPanelOpen = !this.isPanelOpen;
147
+ }
148
+ }
149
+ editVersion() {
150
+ this.isEditingVersion = true;
151
+ }
152
+ formValidated($event) {
153
+ this.isEditingVersion = false;
154
+ }
122
155
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryDatasetDetailComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
123
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryDatasetDetailComponent, selector: "pry-dataset-detail", inputs: { dataset: "dataset" }, outputs: { goToCatalog: "goToCatalog" }, ngImport: i0, template: "<div class=\"o-manifest-layout__toolbox\">\n <button class=\"a-btn a-btn--primary\" (click)=\"goBack()\">{{ '@pry.dataset.returnToList' | i18n }}</button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"refresh()\">\n {{ '@pry.dataset.refresh' | i18n }}\n <pry-icon iconSvg=\"synchro\"></pry-icon>\n </button>\n</div>\n\n<div class=\"o-dataset-layout__content\">\n <div class=\"a-p\">\n <h1 class=\"a-h1\">{{ dataset.name }}</h1>\n <span class=\"description\">{{ dataset.description }}</span>\n </div>\n\n <div class=\"dataset-detail\">\n <pry-tab-group translationStringBase=\"@pry.dataset.\">\n <pry-tab [templateRef]=\"table\" name=\"data\"></pry-tab>\n <pry-tab [templateRef]=\"map\" name=\"map\"></pry-tab>\n <pry-tab [templateRef]=\"datasetVersions\" name=\"versionHistory\"></pry-tab>\n </pry-tab-group>\n </div>\n</div>\n\n<ng-template #table>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['table']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #map>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['map']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #datasetVersions>\n <div *ngIf=\"activeVersion$ | async as activeVersionId\" class=\"table-container\">\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>{{ '@pry.dataset.version.title' | i18n }}</th>\n <th>{{ '@pry.dataset.date' | i18n }}</th>\n <th>{{ '@pry.dataset.status' | i18n }}</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let version of datasetVersions$ | async\">\n <td>\n {{ version.version }}\n <pry-icon *ngIf=\"activeVersionId === version.id\" iconSvg=\"check\" class=\"check\"></pry-icon>\n </td>\n <td>\n <div\n class=\"a-tooltip\"\n [attr.data-tooltip]=\"version.lastModified | sinceDate : { onlyLocale: true }\"\n data-tooltip-position=\"right\"\n >\n {{ version.lastModified | sinceDate : { onlyLocale: true } }}\n </div>\n </td>\n <td>\n {{\n (activeVersionId === version.id\n ? '@pry.dataset.version.currentlyActive'\n : '@pry.dataset.version.' + version.state\n ) | i18n\n }}\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-md\"\n [attr.data-tooltip]=\"'@pry.dataset.tooltip.' + getVersionTooltipContent(version, activeVersionId) | i18n\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </td>\n <td>\n <ng-container\n *ngIf=\"version.state !== 'LOADING' && version.state !== 'INDEXING' && version.state !== 'ERROR'\"\n >\n <ng-container *ngIf=\"dataset.owner && (version.state === 'ACTIVE' || version.state === 'INACTIVE')\">\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'list-dataset', action: 'activate' }\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary a-btn--icon-text ng-star-inserted\"\n (click)=\"handleButtonAction(version)\"\n >\n {{ '@pry.dataset.buttonAction.' + version.state | i18n }}\n </button>\n <ng-container *ngIf=\"version.state === 'ACTIVE' || version.state === 'INACTIVE'\">\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-lg\"\n [attr.data-tooltip]=\"\n (version.state === 'ACTIVE'\n ? '@pry.dataset.tooltip.invalidateButton'\n : '@pry.dataset.tooltip.validateButton'\n ) | i18n\n \"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </td>\n <td>\n <ng-container *ngIf=\"version.hasWarnings || version.state === 'ERROR'\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary a-btn--icon-text ng-star-inserted\"\n (click)=\"consultErrors(version)\"\n >\n {{\n (version.state === 'ERROR' ? '@pry.dataset.buttonAction.ERROR' : '@pry.dataset.buttonAction.WARNING')\n | i18n\n }}\n </button>\n </ng-container>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"showModalStatus\">\n <pry-modal-status [version]=\"selectedDatasetVersion\" (gotoConsult)=\"goToConsult($event)\"></pry-modal-status>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i3.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i3.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i3.DashboardComponent, selector: "pry-dashboard", inputs: ["staticDashboard", "forceModeEdition", "CloseOnDragOut", "displayOptions", "noBackground", "breakpoint"], outputs: ["rowHeight", "rows"] }, { kind: "component", type: i3.PryModalStatusComponent, selector: "pry-modal-status", inputs: ["version"], outputs: ["gotoConsult"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }, { kind: "pipe", type: i4.PrySinceDatePipe, name: "sinceDate" }] }); }
156
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: PryDatasetDetailComponent, selector: "pry-dataset-detail", inputs: { dataset: "dataset" }, outputs: { goToCatalog: "goToCatalog" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-manifest-layout__toolbox\">\n <button class=\"a-btn a-btn--primary\" (click)=\"goBack()\">{{ '@pry.dataset.returnToList' | i18n }}</button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"refresh()\">\n {{ '@pry.dataset.refresh' | i18n }}\n <pry-icon iconSvg=\"synchro\"></pry-icon>\n </button>\n</div>\n\n<div class=\"o-dataset-layout\">\n <div class=\"o-dataset-layout__content\">\n <div class=\"a-p\">\n <h2 class=\"a-h1\">{{ dataset.name }}</h2>\n </div>\n\n <div class=\"o-dataset-detail\">\n <div class=\"o-dataset-detail__content\">\n <pry-tab-group translationStringBase=\"@pry.dataset.\" (clickedTabIdx)=\"onTabSwitch($event)\">\n <pry-tab [templateRef]=\"information\" name=\"information\"></pry-tab>\n <pry-tab [templateRef]=\"table\" name=\"data\"></pry-tab>\n <pry-tab [templateRef]=\"map\" name=\"map\"></pry-tab>\n <pry-tab [templateRef]=\"datasetVersions\" name=\"versionHistory\"></pry-tab>\n </pry-tab-group>\n </div>\n </div>\n </div>\n @if (isPanelOpen) {\n <div class=\"o-dataset-layout__panel\">\n <div class=\"panel__header u-display-flex -justify-space-between\">\n <h3>{{ '@pry.dataset.information' | i18n }}</h3>\n <button role=\"button\" (click)=\"togglePanel()\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <div class=\"panel__content u-display-flex -column\">\n @if (!isEditingVersion) {\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.productionDate' | i18n }}</span>\n <span>{{\n (selectedVersion?.productionDate | date: 'dd-MM-yyyy, HH:mm') ??\n ('@pry.dataset.version.notProvided' | i18n)\n }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.producer' | i18n }}</span>\n <span>{{ selectedVersion?.producer ?? ('@pry.dataset.version.notProvided' | i18n) }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.additionalInformation' | i18n }}</span>\n <div\n class=\"version-information\"\n [innerHTML]=\"\n selectedVersion?.additionalInformation ?? ('@pry.dataset.version.notProvided' | i18n) | mdToHtml\n \"\n ></div>\n </div>\n <button *pryAccess=\"{ module: 'admin', page: 'list-dataset', action: 'edit_version' }\" role=\"button\" class=\"a-btn a-btn--primary u-self-end\" (click)=\"editVersion()\">\n {{ '@pry.action.edit' | i18n }}\n </button>\n } @else {\n <pry-dataset-version-form\n [version]=\"selectedVersion\"\n (formValidated)=\"formValidated($event)\"\n ></pry-dataset-version-form>\n }\n </div>\n </div>\n }\n</div>\n\n<ng-template #information>\n @if (activeVersion$ | async; as activeVersion) {\n <div class=\"u-display-flex -column o-dataset-detail__information\">\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.description' | i18n }}</span>\n <span>{{ dataset.description ?? ('@pry.dataset.version.notProvided' | i18n) }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.productionDate' | i18n }}</span>\n <span>{{\n (activeVersion?.productionDate | date: 'dd-MM-yyyy, HH:mm') ?? ('@pry.dataset.version.notProvided' | i18n)\n }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.producer' | i18n }}</span>\n <span>{{ activeVersion?.producer ?? ('@pry.dataset.version.notProvided' | i18n) }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.additionalInformation' | i18n }}</span>\n <div\n class=\"version-information\"\n [innerHTML]=\"activeVersion?.additionalInformation ?? ('@pry.dataset.version.notProvided' | i18n) | mdToHtml\"\n ></div>\n </div>\n </div>\n } @else {\n <div class=\"a-p\">\n <p>{{ '@pry.dataset.noActiveVersion' | i18n }}</p>\n </div>\n }\n</ng-template>\n\n<ng-template #table>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['table']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #map>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['map']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #datasetVersions>\n <div *ngIf=\"activeVersion$ | async as activeVersion\" class=\"dataset-detail__table table-container\">\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>{{ '@pry.dataset.version.title' | i18n }}</th>\n <th>{{ '@pry.dataset.date' | i18n }}</th>\n <th>{{ '@pry.dataset.status' | i18n }}</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let version of datasetVersions$ | async\" (click)=\"togglePanel(version)\">\n <td>\n {{ version.version }}\n <pry-icon *ngIf=\"activeVersion.id === version.id\" iconSvg=\"check\" class=\"check\"></pry-icon>\n </td>\n <td>\n <div\n class=\"a-tooltip\"\n [attr.data-tooltip]=\"version.lastModified | sinceDate: { onlyLocale: true }\"\n data-tooltip-position=\"right\"\n >\n {{ version.lastModified | sinceDate: { onlyLocale: true } }}\n </div>\n </td>\n <td>\n {{\n (activeVersion.id === version.id\n ? '@pry.dataset.version.currentlyActive'\n : '@pry.dataset.version.' + version.state\n ) | i18n\n }}\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-md\"\n [attr.data-tooltip]=\"'@pry.dataset.tooltip.' + getVersionTooltipContent(version, activeVersion.id) | i18n\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </td>\n <td>\n <ng-container\n *ngIf=\"version.state !== 'LOADING' && version.state !== 'INDEXING' && version.state !== 'ERROR'\"\n >\n <ng-container *ngIf=\"dataset.owner && (version.state === 'ACTIVE' || version.state === 'INACTIVE')\">\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'list-dataset', action: 'activate' }\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary a-btn--icon-text ng-star-inserted\"\n (click)=\"handleButtonAction(version)\"\n >\n {{ '@pry.dataset.buttonAction.' + version.state | i18n }}\n </button>\n <ng-container *ngIf=\"version.state === 'ACTIVE' || version.state === 'INACTIVE'\">\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-lg\"\n [attr.data-tooltip]=\"\n (version.state === 'ACTIVE'\n ? '@pry.dataset.tooltip.invalidateButton'\n : '@pry.dataset.tooltip.validateButton'\n ) | i18n\n \"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </td>\n <td>\n <ng-container *ngIf=\"version.hasWarnings || version.state === 'ERROR'\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary a-btn--icon-text ng-star-inserted\"\n (click)=\"consultErrors(version)\"\n >\n {{\n (version.state === 'ERROR' ? '@pry.dataset.buttonAction.ERROR' : '@pry.dataset.buttonAction.WARNING')\n | i18n\n }}\n </button>\n </ng-container>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"showModalStatus\">\n <pry-modal-status [version]=\"selectedDatasetVersion\" (gotoConsult)=\"goToConsult($event)\"></pry-modal-status>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i3.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"], outputs: ["clickedTabIdx"] }, { kind: "component", type: i3.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i3.DashboardComponent, selector: "pry-dashboard", inputs: ["staticDashboard", "forceModeEdition", "CloseOnDragOut", "displayOptions", "noBackground", "breakpoint"], outputs: ["rowHeight", "rows"] }, { kind: "component", type: i3.PryModalStatusComponent, selector: "pry-modal-status", inputs: ["version"], outputs: ["gotoConsult"] }, { kind: "component", type: i4.PryDatasetVersionFormComponent, selector: "pry-dataset-version-form", inputs: ["version"], outputs: ["formValidated"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }, { kind: "pipe", type: i5.PrySinceDatePipe, name: "sinceDate" }, { kind: "pipe", type: i6.MdToHtmlPipe, name: "mdToHtml" }] }); }
124
157
  }
125
158
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryDatasetDetailComponent, decorators: [{
126
159
  type: Component,
127
- args: [{ selector: 'pry-dataset-detail', template: "<div class=\"o-manifest-layout__toolbox\">\n <button class=\"a-btn a-btn--primary\" (click)=\"goBack()\">{{ '@pry.dataset.returnToList' | i18n }}</button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"refresh()\">\n {{ '@pry.dataset.refresh' | i18n }}\n <pry-icon iconSvg=\"synchro\"></pry-icon>\n </button>\n</div>\n\n<div class=\"o-dataset-layout__content\">\n <div class=\"a-p\">\n <h1 class=\"a-h1\">{{ dataset.name }}</h1>\n <span class=\"description\">{{ dataset.description }}</span>\n </div>\n\n <div class=\"dataset-detail\">\n <pry-tab-group translationStringBase=\"@pry.dataset.\">\n <pry-tab [templateRef]=\"table\" name=\"data\"></pry-tab>\n <pry-tab [templateRef]=\"map\" name=\"map\"></pry-tab>\n <pry-tab [templateRef]=\"datasetVersions\" name=\"versionHistory\"></pry-tab>\n </pry-tab-group>\n </div>\n</div>\n\n<ng-template #table>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['table']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #map>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['map']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #datasetVersions>\n <div *ngIf=\"activeVersion$ | async as activeVersionId\" class=\"table-container\">\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>{{ '@pry.dataset.version.title' | i18n }}</th>\n <th>{{ '@pry.dataset.date' | i18n }}</th>\n <th>{{ '@pry.dataset.status' | i18n }}</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let version of datasetVersions$ | async\">\n <td>\n {{ version.version }}\n <pry-icon *ngIf=\"activeVersionId === version.id\" iconSvg=\"check\" class=\"check\"></pry-icon>\n </td>\n <td>\n <div\n class=\"a-tooltip\"\n [attr.data-tooltip]=\"version.lastModified | sinceDate : { onlyLocale: true }\"\n data-tooltip-position=\"right\"\n >\n {{ version.lastModified | sinceDate : { onlyLocale: true } }}\n </div>\n </td>\n <td>\n {{\n (activeVersionId === version.id\n ? '@pry.dataset.version.currentlyActive'\n : '@pry.dataset.version.' + version.state\n ) | i18n\n }}\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-md\"\n [attr.data-tooltip]=\"'@pry.dataset.tooltip.' + getVersionTooltipContent(version, activeVersionId) | i18n\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </td>\n <td>\n <ng-container\n *ngIf=\"version.state !== 'LOADING' && version.state !== 'INDEXING' && version.state !== 'ERROR'\"\n >\n <ng-container *ngIf=\"dataset.owner && (version.state === 'ACTIVE' || version.state === 'INACTIVE')\">\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'list-dataset', action: 'activate' }\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary a-btn--icon-text ng-star-inserted\"\n (click)=\"handleButtonAction(version)\"\n >\n {{ '@pry.dataset.buttonAction.' + version.state | i18n }}\n </button>\n <ng-container *ngIf=\"version.state === 'ACTIVE' || version.state === 'INACTIVE'\">\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-lg\"\n [attr.data-tooltip]=\"\n (version.state === 'ACTIVE'\n ? '@pry.dataset.tooltip.invalidateButton'\n : '@pry.dataset.tooltip.validateButton'\n ) | i18n\n \"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </td>\n <td>\n <ng-container *ngIf=\"version.hasWarnings || version.state === 'ERROR'\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary a-btn--icon-text ng-star-inserted\"\n (click)=\"consultErrors(version)\"\n >\n {{\n (version.state === 'ERROR' ? '@pry.dataset.buttonAction.ERROR' : '@pry.dataset.buttonAction.WARNING')\n | i18n\n }}\n </button>\n </ng-container>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"showModalStatus\">\n <pry-modal-status [version]=\"selectedDatasetVersion\" (gotoConsult)=\"goToConsult($event)\"></pry-modal-status>\n</ng-container>\n" }]
160
+ args: [{ selector: 'pry-dataset-detail', template: "<div class=\"o-manifest-layout__toolbox\">\n <button class=\"a-btn a-btn--primary\" (click)=\"goBack()\">{{ '@pry.dataset.returnToList' | i18n }}</button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"refresh()\">\n {{ '@pry.dataset.refresh' | i18n }}\n <pry-icon iconSvg=\"synchro\"></pry-icon>\n </button>\n</div>\n\n<div class=\"o-dataset-layout\">\n <div class=\"o-dataset-layout__content\">\n <div class=\"a-p\">\n <h2 class=\"a-h1\">{{ dataset.name }}</h2>\n </div>\n\n <div class=\"o-dataset-detail\">\n <div class=\"o-dataset-detail__content\">\n <pry-tab-group translationStringBase=\"@pry.dataset.\" (clickedTabIdx)=\"onTabSwitch($event)\">\n <pry-tab [templateRef]=\"information\" name=\"information\"></pry-tab>\n <pry-tab [templateRef]=\"table\" name=\"data\"></pry-tab>\n <pry-tab [templateRef]=\"map\" name=\"map\"></pry-tab>\n <pry-tab [templateRef]=\"datasetVersions\" name=\"versionHistory\"></pry-tab>\n </pry-tab-group>\n </div>\n </div>\n </div>\n @if (isPanelOpen) {\n <div class=\"o-dataset-layout__panel\">\n <div class=\"panel__header u-display-flex -justify-space-between\">\n <h3>{{ '@pry.dataset.information' | i18n }}</h3>\n <button role=\"button\" (click)=\"togglePanel()\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <div class=\"panel__content u-display-flex -column\">\n @if (!isEditingVersion) {\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.productionDate' | i18n }}</span>\n <span>{{\n (selectedVersion?.productionDate | date: 'dd-MM-yyyy, HH:mm') ??\n ('@pry.dataset.version.notProvided' | i18n)\n }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.producer' | i18n }}</span>\n <span>{{ selectedVersion?.producer ?? ('@pry.dataset.version.notProvided' | i18n) }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.additionalInformation' | i18n }}</span>\n <div\n class=\"version-information\"\n [innerHTML]=\"\n selectedVersion?.additionalInformation ?? ('@pry.dataset.version.notProvided' | i18n) | mdToHtml\n \"\n ></div>\n </div>\n <button *pryAccess=\"{ module: 'admin', page: 'list-dataset', action: 'edit_version' }\" role=\"button\" class=\"a-btn a-btn--primary u-self-end\" (click)=\"editVersion()\">\n {{ '@pry.action.edit' | i18n }}\n </button>\n } @else {\n <pry-dataset-version-form\n [version]=\"selectedVersion\"\n (formValidated)=\"formValidated($event)\"\n ></pry-dataset-version-form>\n }\n </div>\n </div>\n }\n</div>\n\n<ng-template #information>\n @if (activeVersion$ | async; as activeVersion) {\n <div class=\"u-display-flex -column o-dataset-detail__information\">\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.description' | i18n }}</span>\n <span>{{ dataset.description ?? ('@pry.dataset.version.notProvided' | i18n) }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.productionDate' | i18n }}</span>\n <span>{{\n (activeVersion?.productionDate | date: 'dd-MM-yyyy, HH:mm') ?? ('@pry.dataset.version.notProvided' | i18n)\n }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.producer' | i18n }}</span>\n <span>{{ activeVersion?.producer ?? ('@pry.dataset.version.notProvided' | i18n) }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.additionalInformation' | i18n }}</span>\n <div\n class=\"version-information\"\n [innerHTML]=\"activeVersion?.additionalInformation ?? ('@pry.dataset.version.notProvided' | i18n) | mdToHtml\"\n ></div>\n </div>\n </div>\n } @else {\n <div class=\"a-p\">\n <p>{{ '@pry.dataset.noActiveVersion' | i18n }}</p>\n </div>\n }\n</ng-template>\n\n<ng-template #table>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['table']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #map>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['map']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #datasetVersions>\n <div *ngIf=\"activeVersion$ | async as activeVersion\" class=\"dataset-detail__table table-container\">\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>{{ '@pry.dataset.version.title' | i18n }}</th>\n <th>{{ '@pry.dataset.date' | i18n }}</th>\n <th>{{ '@pry.dataset.status' | i18n }}</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let version of datasetVersions$ | async\" (click)=\"togglePanel(version)\">\n <td>\n {{ version.version }}\n <pry-icon *ngIf=\"activeVersion.id === version.id\" iconSvg=\"check\" class=\"check\"></pry-icon>\n </td>\n <td>\n <div\n class=\"a-tooltip\"\n [attr.data-tooltip]=\"version.lastModified | sinceDate: { onlyLocale: true }\"\n data-tooltip-position=\"right\"\n >\n {{ version.lastModified | sinceDate: { onlyLocale: true } }}\n </div>\n </td>\n <td>\n {{\n (activeVersion.id === version.id\n ? '@pry.dataset.version.currentlyActive'\n : '@pry.dataset.version.' + version.state\n ) | i18n\n }}\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-md\"\n [attr.data-tooltip]=\"'@pry.dataset.tooltip.' + getVersionTooltipContent(version, activeVersion.id) | i18n\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </td>\n <td>\n <ng-container\n *ngIf=\"version.state !== 'LOADING' && version.state !== 'INDEXING' && version.state !== 'ERROR'\"\n >\n <ng-container *ngIf=\"dataset.owner && (version.state === 'ACTIVE' || version.state === 'INACTIVE')\">\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'list-dataset', action: 'activate' }\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary a-btn--icon-text ng-star-inserted\"\n (click)=\"handleButtonAction(version)\"\n >\n {{ '@pry.dataset.buttonAction.' + version.state | i18n }}\n </button>\n <ng-container *ngIf=\"version.state === 'ACTIVE' || version.state === 'INACTIVE'\">\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-lg\"\n [attr.data-tooltip]=\"\n (version.state === 'ACTIVE'\n ? '@pry.dataset.tooltip.invalidateButton'\n : '@pry.dataset.tooltip.validateButton'\n ) | i18n\n \"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </td>\n <td>\n <ng-container *ngIf=\"version.hasWarnings || version.state === 'ERROR'\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary a-btn--icon-text ng-star-inserted\"\n (click)=\"consultErrors(version)\"\n >\n {{\n (version.state === 'ERROR' ? '@pry.dataset.buttonAction.ERROR' : '@pry.dataset.buttonAction.WARNING')\n | i18n\n }}\n </button>\n </ng-container>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"showModalStatus\">\n <pry-modal-status [version]=\"selectedDatasetVersion\" (gotoConsult)=\"goToConsult($event)\"></pry-modal-status>\n</ng-container>\n" }]
128
161
  }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { dataset: [{
129
162
  type: Input
130
163
  }], goToCatalog: [{
131
164
  type: Output
132
165
  }] } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvZGF0YXNldC9jb21wb25lbnRzL2RhdGFzZXQtZGV0YWlsL2RhdGFzZXQtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2RhdGFzZXQvY29tcG9uZW50cy9kYXRhc2V0LWRldGFpbC9kYXRhc2V0LWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBR2xCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFFbkIsYUFBYSxFQUNiLFFBQVEsRUFFVCxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7Ozs7OztBQUV2QyxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFNbkIsTUFBTSxPQUFPLHlCQUF5QjtJQWlDcEMsWUFBb0IsS0FBWTtRQUFaLFVBQUssR0FBTCxLQUFLLENBQU87UUEvQnRCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQyxtQkFBYyxHQUFHO1lBQ2YsS0FBSyxFQUFFO2dCQUNMLE1BQU0sRUFBRSxJQUFJO2dCQUNaLElBQUksRUFBRSxPQUFPO2dCQUNiLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7Z0JBQzdDLE9BQU8sRUFBRSxFQUFFO2dCQUNYLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQzthQUNqQjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUsS0FBSztnQkFDYixJQUFJLEVBQUUsS0FBSztnQkFDWCxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO2dCQUM3QyxPQUFPLEVBQUU7b0JBQ1AsTUFBTSxFQUFFLEVBQUU7b0JBQ1YsR0FBRyxFQUFFLElBQUk7b0JBQ1QsZUFBZSxFQUFFLElBQUk7aUJBQ3RCO2dCQUNELFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQzthQUNqQjtTQUNtQyxDQUFDO1FBQ3BCLGFBQVEsR0FBRyxRQUFRLENBQUM7UUFDdkMsV0FBTSxHQUFXLENBQUMsQ0FBQztRQUNuQixRQUFHLEdBQVcsQ0FBQyxDQUFDO1FBR2hCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBRWpDLGlCQUFZLEdBQWEsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUl4QyxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQztZQUMvQixFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25CLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLElBQUksRUFBRSxzQ0FBc0M7U0FDN0MsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSzthQUMvQixNQUFNLENBQUMsbUJBQW1CLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNwRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUM5QyxHQUFHLENBQ0QsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUNYLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUNwRyx5QkFBeUIsQ0FDNUIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQztZQUMvQixFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25CLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLElBQUksRUFBRSxxQ0FBcUM7U0FDNUMsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQW1DO1FBQzdDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxPQUFPLENBQUM7UUFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBYztRQUNuQixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztJQUNwQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsT0FBdUI7UUFDeEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLE9BQU8sQ0FBQztRQUN0QyxRQUFRLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNoQyxNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzlCLE1BQU07WUFDUjtnQkFDRSxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsT0FBdUI7UUFDbkMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLE9BQU8sQ0FBQztRQUN0QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsd0JBQXdCLENBQUMsT0FBdUIsRUFBRSxlQUF1QjtRQUN2RSxRQUFRLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxPQUFPLENBQUM7WUFDakIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sT0FBTyxDQUFDLEVBQUUsS0FBSyxlQUFlLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1lBQ2hFLEtBQUssU0FBUyxDQUFDO1lBQ2YsS0FBSyxVQUFVO2dCQUNiLE9BQU8sU0FBUyxDQUFDO1lBQ25CLEtBQUssVUFBVTtnQkFDYixPQUFPLFNBQVMsQ0FBQztZQUNuQjtnQkFDRSxPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE9BQXVCO1FBQy9DLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNqQixpQkFBaUIsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUM7WUFDakQsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxQixTQUFTLEVBQUUsT0FBTyxDQUFDLEVBQUU7U0FDdEIsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sZUFBZSxDQUFDLE9BQXVCO1FBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNqQixpQkFBaUIsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUM7WUFDL0MsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxQixTQUFTLEVBQUUsT0FBTyxDQUFDLEVBQUU7U0FDdEIsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOzhHQTNJVSx5QkFBeUI7a0dBQXpCLHlCQUF5QixtSUN0QnRDLGl1S0F3SUE7OzJGRGxIYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0Usb0JBQW9COzBFQUlyQixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGFzaGJvYXJkU2VsZWN0b3JzLFxuICBEYXRhc2V0LFxuICBEYXRhc2V0VmVyc2lvbixcbiAgRGF0YVNvdXJjZUFjdGlvbnMsXG4gIERhdGFTb3VyY2VTZWxlY3RvcnMsXG4gIFJlc3VsdFNldHMsXG4gIFNlYXJjaEFjdGlvbnMsXG4gIFZpZXdNb2RlLFxuICBXaWRnZXRNYW5pZmVzdFxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmxldCBuZXh0Q29tcElkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWRhdGFzZXQtZGV0YWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGFzZXQtZGV0YWlsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlEYXRhc2V0RGV0YWlsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZGF0YXNldCE6IERhdGFzZXQ7XG4gIEBPdXRwdXQoKSBnb1RvQ2F0YWxvZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgd2lkZ2V0TWFuaWZlc3QgPSB7XG4gICAgdGFibGU6IHtcbiAgICAgIGhlYWRlcjogdHJ1ZSxcbiAgICAgIHR5cGU6ICd0YWJsZScsXG4gICAgICBsYXlvdXQ6IHsgeDogMSwgeTogMSwgaGVpZ2h0OiAxMiwgd2lkdGg6IDEyIH0sXG4gICAgICBvcHRpb25zOiB7fSxcbiAgICAgIGRhdGFzb3VyY2U6IFsnJ11cbiAgICB9LFxuICAgIG1hcDoge1xuICAgICAgaGVhZGVyOiBmYWxzZSxcbiAgICAgIHR5cGU6ICdtYXAnLFxuICAgICAgbGF5b3V0OiB7IHg6IDEsIHk6IDEsIGhlaWdodDogMTIsIHdpZHRoOiAxMiB9LFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBsYXllcnM6IFtdLFxuICAgICAgICBmaXQ6IHRydWUsXG4gICAgICAgIGF1dG9tYXRpY0xheWVyczogdHJ1ZVxuICAgICAgfSxcbiAgICAgIGRhdGFzb3VyY2U6IFsnJ11cbiAgICB9XG4gIH0gYXMgeyBba2V5OiBzdHJpbmddOiBXaWRnZXRNYW5pZmVzdCB9O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgVmlld01vZGUgPSBWaWV3TW9kZTtcbiAgY29tcElkOiBudW1iZXIgPSAwO1xuICB0YWI6IG51bWJlciA9IDA7XG4gIGRhdGFzZXRJdGVtcyQ6IE9ic2VydmFibGU8UmVzdWx0U2V0cyB8IG51bGw+IHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgZGF0YXNldFZlcnNpb25zJCE6IE9ic2VydmFibGU8RGF0YXNldFZlcnNpb25bXT47XG4gIHNob3dNb2RhbFN0YXR1czogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZERhdGFzZXRWZXJzaW9uPzogRGF0YXNldFZlcnNpb247XG4gIHNlbGVjdGVkTW9kZTogVmlld01vZGUgPSBWaWV3TW9kZS5DT05TVUxUO1xuICBhY3RpdmVWZXJzaW9uJCE6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZSkge1xuICAgIHRoaXMuY29tcElkID0gbmV4dENvbXBJZCsrO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0Lmxpc3RWZXJzaW9uc0J5RGF0YXNldElkKHsgaWQ6IHRoaXMuZGF0YXNldC5pZCB9KSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnJlbW92ZUZpbHRlcnMoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIFNlYXJjaEFjdGlvbnMuZ2V0RGF0YXNvdXJjZUl0ZW1zKHtcbiAgICAgICAgaWQ6IHRoaXMuZGF0YXNldC5pZCxcbiAgICAgICAgZXhjbHVkZUdlbzogZmFsc2UsXG4gICAgICAgIGZyb206ICdQcnlEYXRhc2V0RGV0YWlsQ29tcG9uZW50Lm5nT25Jbml0KCknXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5kYXRhc2V0SXRlbXMkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJlc3VsdFNldHMpO1xuICAgIHRoaXMuZGF0YXNldFZlcnNpb25zJCA9IHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5tYXRjaGluZ0RhdGFzZXRWZXJzaW9ucyh0aGlzLmRhdGFzZXQuaWQpKVxuICAgICAgLnBpcGUobWFwKChyZXMpID0+IFsuLi5yZXNdLnNvcnQoKGEsIGIpID0+IGIudmVyc2lvbiAtIGEudmVyc2lvbikpKTtcbiAgICB0aGlzLndpZGdldE1hbmlmZXN0Wyd0YWJsZSddLmRhdGFzb3VyY2UgPSBbdGhpcy5kYXRhc2V0LmlkXTtcbiAgICB0aGlzLndpZGdldE1hbmlmZXN0WydtYXAnXS5kYXRhc291cmNlID0gW3RoaXMuZGF0YXNldC5pZF07XG4gICAgdGhpcy5hY3RpdmVWZXJzaW9uJCA9IHRoaXMuZGF0YXNldFZlcnNpb25zJC5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICAodmVyc2lvbnMpID0+XG4gICAgICAgICAgdmVyc2lvbnMuc29ydCgodjEsIHYyKSA9PiB2Mi52ZXJzaW9uIC0gdjEudmVyc2lvbikuZmluZCgodmVyc2lvbikgPT4gdmVyc2lvbi5zdGF0ZSA9PT0gJ0FDVElWRScpPy5pZCA/P1xuICAgICAgICAgICdubyBhY3RpdmUgdmVyc2lvbiBmb3VuZCdcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgZ29CYWNrKCkge1xuICAgIHRoaXMuZ29Ub0NhdGFsb2cuZW1pdCgpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5saXN0VmVyc2lvbnMoKSk7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyh7XG4gICAgICAgIGlkOiB0aGlzLmRhdGFzZXQuaWQsXG4gICAgICAgIGV4Y2x1ZGVHZW86IGZhbHNlLFxuICAgICAgICBmcm9tOiAnUHJ5RGF0YXNldERldGFpbENvbXBvbmVudC5yZWZyZXNoKCknXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0Lmxpc3RWZXJzaW9ucygpKTtcbiAgfVxuXG4gIGdvVG9Db25zdWx0KHZlcnNpb246IERhdGFzZXRWZXJzaW9uIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFzZXRWZXJzaW9uID0gdmVyc2lvbjtcbiAgICB0aGlzLnNob3dNb2RhbFN0YXR1cyA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlID0gVmlld01vZGUuQ09OU1VMVDtcbiAgfVxuXG4gIHN3aXRjaChudW1iZXI6IG51bWJlcikge1xuICAgIHRoaXMudGFiID0gbnVtYmVyO1xuICB9XG5cbiAgaGFuZGxlQnV0dG9uQWN0aW9uKHZlcnNpb246IERhdGFzZXRWZXJzaW9uKSB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFzZXRWZXJzaW9uID0gdmVyc2lvbjtcbiAgICBzd2l0Y2ggKHZlcnNpb24uc3RhdGUpIHtcbiAgICAgIGNhc2UgJ0FDVElWRSc6XG4gICAgICAgIHRoaXMuZGVhY3RpdmF0ZVZlcnNpb24odmVyc2lvbik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnSU5BQ1RJVkUnOlxuICAgICAgICB0aGlzLmFjdGl2YXRlVmVyc2lvbih2ZXJzaW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBjb25zdWx0RXJyb3JzKHZlcnNpb246IERhdGFzZXRWZXJzaW9uKSB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFzZXRWZXJzaW9uID0gdmVyc2lvbjtcbiAgICB0aGlzLnNob3dNb2RhbFN0YXR1cyA9IHRydWU7XG4gIH1cblxuICBnZXRWZXJzaW9uVG9vbHRpcENvbnRlbnQodmVyc2lvbjogRGF0YXNldFZlcnNpb24sIGFjdGl2ZVZlcnNpb25JZDogc3RyaW5nKSB7XG4gICAgc3dpdGNoICh2ZXJzaW9uLnN0YXRlKSB7XG4gICAgICBjYXNlICdFUlJPUic6XG4gICAgICAgIHJldHVybiAnZXJyb3InO1xuICAgICAgY2FzZSAnQUNUSVZFJzpcbiAgICAgICAgcmV0dXJuIHZlcnNpb24uaWQgPT09IGFjdGl2ZVZlcnNpb25JZCA/ICdhY3RpdmUnIDogJ2luYWN0aXZlJztcbiAgICAgIGNhc2UgJ0xPQURJTkcnOlxuICAgICAgY2FzZSAnSU5ERVhJTkcnOlxuICAgICAgICByZXR1cm4gJ2xvYWRpbmcnO1xuICAgICAgY2FzZSAnSU5BQ1RJVkUnOlxuICAgICAgICByZXR1cm4gJ2ludmFsaWQnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICd1bmtub3duJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlYWN0aXZhdGVWZXJzaW9uKHZlcnNpb246IERhdGFzZXRWZXJzaW9uKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVhY3RpdmF0ZURhdGFzZXRWZXJzaW9uKHtcbiAgICAgICAgZGF0YXNldElkOiB0aGlzLmRhdGFzZXQuaWQsXG4gICAgICAgIHZlcnNpb25JZDogdmVyc2lvbi5pZFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmF0ZVZlcnNpb24odmVyc2lvbjogRGF0YXNldFZlcnNpb24pIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5hY3RpdmF0ZURhdGFzZXRWZXJzaW9uKHtcbiAgICAgICAgZGF0YXNldElkOiB0aGlzLmRhdGFzZXQuaWQsXG4gICAgICAgIHZlcnNpb25JZDogdmVyc2lvbi5pZFxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRfX3Rvb2xib3hcIj5cbiAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cImdvQmFjaygpXCI+e3sgJ0BwcnkuZGF0YXNldC5yZXR1cm5Ub0xpc3QnIHwgaTE4biB9fTwvYnV0dG9uPlxuICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiIChjbGljayk9XCJyZWZyZXNoKClcIj5cbiAgICB7eyAnQHByeS5kYXRhc2V0LnJlZnJlc2gnIHwgaTE4biB9fVxuICAgIDxwcnktaWNvbiBpY29uU3ZnPVwic3luY2hyb1wiPjwvcHJ5LWljb24+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJvLWRhdGFzZXQtbGF5b3V0X19jb250ZW50XCI+XG4gIDxkaXYgY2xhc3M9XCJhLXBcIj5cbiAgICA8aDEgY2xhc3M9XCJhLWgxXCI+e3sgZGF0YXNldC5uYW1lIH19PC9oMT5cbiAgICA8c3BhbiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+e3sgZGF0YXNldC5kZXNjcmlwdGlvbiB9fTwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImRhdGFzZXQtZGV0YWlsXCI+XG4gICAgPHByeS10YWItZ3JvdXAgdHJhbnNsYXRpb25TdHJpbmdCYXNlPVwiQHByeS5kYXRhc2V0LlwiPlxuICAgICAgPHByeS10YWIgW3RlbXBsYXRlUmVmXT1cInRhYmxlXCIgbmFtZT1cImRhdGFcIj48L3ByeS10YWI+XG4gICAgICA8cHJ5LXRhYiBbdGVtcGxhdGVSZWZdPVwibWFwXCIgbmFtZT1cIm1hcFwiPjwvcHJ5LXRhYj5cbiAgICAgIDxwcnktdGFiIFt0ZW1wbGF0ZVJlZl09XCJkYXRhc2V0VmVyc2lvbnNcIiBuYW1lPVwidmVyc2lvbkhpc3RvcnlcIj48L3ByeS10YWI+XG4gICAgPC9wcnktdGFiLWdyb3VwPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3RhYmxlPlxuICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWNvbnRhaW5lclwiPlxuICAgIDxwcnktZGFzaGJvYXJkIFtzdGF0aWNEYXNoYm9hcmRdPVwieyB3aWRnZXRzOiBbd2lkZ2V0TWFuaWZlc3RbJ3RhYmxlJ11dIH1cIj48L3ByeS1kYXNoYm9hcmQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbWFwPlxuICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWNvbnRhaW5lclwiPlxuICAgIDxwcnktZGFzaGJvYXJkIFtzdGF0aWNEYXNoYm9hcmRdPVwieyB3aWRnZXRzOiBbd2lkZ2V0TWFuaWZlc3RbJ21hcCddXSB9XCI+PC9wcnktZGFzaGJvYXJkPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2RhdGFzZXRWZXJzaW9ucz5cbiAgPGRpdiAqbmdJZj1cImFjdGl2ZVZlcnNpb24kIHwgYXN5bmMgYXMgYWN0aXZlVmVyc2lvbklkXCIgY2xhc3M9XCJ0YWJsZS1jb250YWluZXJcIj5cbiAgICA8dGFibGUgY2xhc3M9XCJhLXRhYmxlXCI+XG4gICAgICA8Y2FwdGlvbj5cbiAgICAgICAge3tcbiAgICAgICAgICAnQHByeS5hZG1pbi5kYXRhc2V0LnRpdGxlJyB8IGkxOG5cbiAgICAgICAgfX0sXG4gICAgICAgIHt7XG4gICAgICAgICAgJ0BwcnkuYWN0aW9uLnNvcnRhYmxlQ29sdW1uSGVhZGVyJyB8IGkxOG5cbiAgICAgICAgfX1cbiAgICAgIDwvY2FwdGlvbj5cbiAgICAgIDx0aGVhZD5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0aD57eyAnQHByeS5kYXRhc2V0LnZlcnNpb24udGl0bGUnIHwgaTE4biB9fTwvdGg+XG4gICAgICAgICAgPHRoPnt7ICdAcHJ5LmRhdGFzZXQuZGF0ZScgfCBpMThuIH19PC90aD5cbiAgICAgICAgICA8dGg+e3sgJ0BwcnkuZGF0YXNldC5zdGF0dXMnIHwgaTE4biB9fTwvdGg+XG4gICAgICAgICAgPHRoPjwvdGg+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3RoZWFkPlxuICAgICAgPHRib2R5PlxuICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHZlcnNpb24gb2YgZGF0YXNldFZlcnNpb25zJCB8IGFzeW5jXCI+XG4gICAgICAgICAgPHRkPlxuICAgICAgICAgICAge3sgdmVyc2lvbi52ZXJzaW9uIH19XG4gICAgICAgICAgICA8cHJ5LWljb24gKm5nSWY9XCJhY3RpdmVWZXJzaW9uSWQgPT09IHZlcnNpb24uaWRcIiBpY29uU3ZnPVwiY2hlY2tcIiBjbGFzcz1cImNoZWNrXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJhLXRvb2x0aXBcIlxuICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwidmVyc2lvbi5sYXN0TW9kaWZpZWQgfCBzaW5jZURhdGUgOiB7IG9ubHlMb2NhbGU6IHRydWUgfVwiXG4gICAgICAgICAgICAgIGRhdGEtdG9vbHRpcC1wb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgdmVyc2lvbi5sYXN0TW9kaWZpZWQgfCBzaW5jZURhdGUgOiB7IG9ubHlMb2NhbGU6IHRydWUgfSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAoYWN0aXZlVmVyc2lvbklkID09PSB2ZXJzaW9uLmlkXG4gICAgICAgICAgICAgICAgPyAnQHByeS5kYXRhc2V0LnZlcnNpb24uY3VycmVudGx5QWN0aXZlJ1xuICAgICAgICAgICAgICAgIDogJ0BwcnkuZGF0YXNldC52ZXJzaW9uLicgKyB2ZXJzaW9uLnN0YXRlXG4gICAgICAgICAgICAgICkgfCBpMThuXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cIm0taW5mby1pY29uIGEtdG9vbHRpcCAtdG9vbHRpcC13aWR0aC1tZFwiXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtdG9vbHRpcF09XCInQHByeS5kYXRhc2V0LnRvb2x0aXAuJyArIGdldFZlcnNpb25Ub29sdGlwQ29udGVudCh2ZXJzaW9uLCBhY3RpdmVWZXJzaW9uSWQpIHwgaTE4blwiXG4gICAgICAgICAgICAgIGRhdGEtdG9vbHRpcC1wb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4+aTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdJZj1cInZlcnNpb24uc3RhdGUgIT09ICdMT0FESU5HJyAmJiB2ZXJzaW9uLnN0YXRlICE9PSAnSU5ERVhJTkcnICYmIHZlcnNpb24uc3RhdGUgIT09ICdFUlJPUidcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YXNldC5vd25lciAmJiAodmVyc2lvbi5zdGF0ZSA9PT0gJ0FDVElWRScgfHwgdmVyc2lvbi5zdGF0ZSA9PT0gJ0lOQUNUSVZFJylcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2Rhc2hib2FyZCcsIHBhZ2U6ICdsaXN0LWRhdGFzZXQnLCBhY3Rpb246ICdhY3RpdmF0ZScgfVwiPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeSBhLWJ0bi0taWNvbi10ZXh0IG5nLXN0YXItaW5zZXJ0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQnV0dG9uQWN0aW9uKHZlcnNpb24pXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuZGF0YXNldC5idXR0b25BY3Rpb24uJyArIHZlcnNpb24uc3RhdGUgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2ZXJzaW9uLnN0YXRlID09PSAnQUNUSVZFJyB8fCB2ZXJzaW9uLnN0YXRlID09PSAnSU5BQ1RJVkUnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0taW5mby1pY29uIGEtdG9vbHRpcCAtdG9vbHRpcC13aWR0aC1sZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHZlcnNpb24uc3RhdGUgPT09ICdBQ1RJVkUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gJ0BwcnkuZGF0YXNldC50b29sdGlwLmludmFsaWRhdGVCdXR0b24nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogJ0BwcnkuZGF0YXNldC50b29sdGlwLnZhbGlkYXRlQnV0dG9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKSB8IGkxOG5cbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdG9vbHRpcC1wb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPmk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmVyc2lvbi5oYXNXYXJuaW5ncyB8fCB2ZXJzaW9uLnN0YXRlID09PSAnRVJST1InXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnkgYS1idG4tLWljb24tdGV4dCBuZy1zdGFyLWluc2VydGVkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29uc3VsdEVycm9ycyh2ZXJzaW9uKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgKHZlcnNpb24uc3RhdGUgPT09ICdFUlJPUicgPyAnQHByeS5kYXRhc2V0LmJ1dHRvbkFjdGlvbi5FUlJPUicgOiAnQHByeS5kYXRhc2V0LmJ1dHRvbkFjdGlvbi5XQVJOSU5HJylcbiAgICAgICAgICAgICAgICAgICAgfCBpMThuXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93TW9kYWxTdGF0dXNcIj5cbiAgPHByeS1tb2RhbC1zdGF0dXMgW3ZlcnNpb25dPVwic2VsZWN0ZWREYXRhc2V0VmVyc2lvblwiIChnb3RvQ29uc3VsdCk9XCJnb1RvQ29uc3VsdCgkZXZlbnQpXCI+PC9wcnktbW9kYWwtc3RhdHVzPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvZGF0YXNldC9jb21wb25lbnRzL2RhdGFzZXQtZGV0YWlsL2RhdGFzZXQtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2RhdGFzZXQvY29tcG9uZW50cy9kYXRhc2V0LWRldGFpbC9kYXRhc2V0LWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBR2xCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFFbkIsYUFBYSxFQUNiLHdCQUF3QixFQUN4QixRQUFRLEVBRVQsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsR0FBRyxFQUF1QixNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFHaEQsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBTW5CLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7SUFxQ3JFLFlBQW9CLEtBQVk7UUFDOUIsS0FBSyxFQUFFLENBQUM7UUFEVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBbkN0QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0MsbUJBQWMsR0FBRztZQUNmLEtBQUssRUFBRTtnQkFDTCxNQUFNLEVBQUUsSUFBSTtnQkFDWixJQUFJLEVBQUUsT0FBTztnQkFDYixNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFB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Q0Usb0JBQW9COzBFQUlyQixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGFzaGJvYXJkU2VsZWN0b3JzLFxuICBEYXRhc2V0LFxuICBEYXRhc2V0VmVyc2lvbixcbiAgRGF0YVNvdXJjZUFjdGlvbnMsXG4gIERhdGFTb3VyY2VTZWxlY3RvcnMsXG4gIFJlc3VsdFNldHMsXG4gIFNlYXJjaEFjdGlvbnMsXG4gIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSxcbiAgVmlld01vZGUsXG4gIFdpZGdldE1hbmlmZXN0XG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5sZXQgbmV4dENvbXBJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1kYXRhc2V0LWRldGFpbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhc2V0LWRldGFpbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5RGF0YXNldERldGFpbENvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGRhdGFzZXQhOiBEYXRhc2V0O1xuICBAT3V0cHV0KCkgZ29Ub0NhdGFsb2cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHdpZGdldE1hbmlmZXN0ID0ge1xuICAgIHRhYmxlOiB7XG4gICAgICBoZWFkZXI6IHRydWUsXG4gICAgICB0eXBlOiAndGFibGUnLFxuICAgICAgbGF5b3V0OiB7IHg6IDEsIHk6IDEsIGhlaWdodDogMTIsIHdpZHRoOiAxMiB9LFxuICAgICAgb3B0aW9uczoge30sXG4gICAgICBkYXRhc291cmNlOiBbJyddXG4gICAgfSxcbiAgICBtYXA6IHtcbiAgICAgIGhlYWRlcjogZmFsc2UsXG4gICAgICB0eXBlOiAnbWFwJyxcbiAgICAgIGxheW91dDogeyB4OiAxLCB5OiAxLCBoZWlnaHQ6IDEyLCB3aWR0aDogMTIgfSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgbGF5ZXJzOiBbXSxcbiAgICAgICAgZml0OiB0cnVlLFxuICAgICAgICBhdXRvbWF0aWNMYXllcnM6IHRydWVcbiAgICAgIH0sXG4gICAgICBkYXRhc291cmNlOiBbJyddXG4gICAgfVxuICB9IGFzIHsgW2tleTogc3RyaW5nXTogV2lkZ2V0TWFuaWZlc3QgfTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IFZpZXdNb2RlID0gVmlld01vZGU7XG4gIGNvbXBJZDogbnVtYmVyID0gMDtcbiAgdGFiOiBudW1iZXIgPSAwO1xuICBkYXRhc2V0SXRlbXMkOiBPYnNlcnZhYmxlPFJlc3VsdFNldHMgfCBudWxsPjtcbiAgcHVibGljIGRhdGFzZXRWZXJzaW9ucyQhOiBPYnNlcnZhYmxlPERhdGFzZXRWZXJzaW9uW10+O1xuICBzaG93TW9kYWxTdGF0dXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2VsZWN0ZWREYXRhc2V0VmVyc2lvbj86IERhdGFzZXRWZXJzaW9uO1xuICBzZWxlY3RlZE1vZGU6IFZpZXdNb2RlID0gVmlld01vZGUuQ09OU1VMVDtcbiAgYWN0aXZlVmVyc2lvbiQhOiBPYnNlcnZhYmxlPERhdGFzZXRWZXJzaW9uIHwgdW5kZWZpbmVkPjtcbiAgaXNFZGl0aW5nVmVyc2lvbiA9IGZhbHNlO1xuXG4gIGlzUGFuZWxPcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIHNlbGVjdGVkVmVyc2lvbj86IERhdGFzZXRWZXJzaW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmRhdGFzZXRJdGVtcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucmVzdWx0U2V0cyk7XG4gICAgdGhpcy5jb21wSWQgPSBuZXh0Q29tcElkKys7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubGlzdFZlcnNpb25zQnlEYXRhc2V0SWQoeyBpZDogdGhpcy5kYXRhc2V0LmlkIH0pKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMucmVtb3ZlRmlsdGVycygpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMoe1xuICAgICAgICBpZDogdGhpcy5kYXRhc2V0LmlkLFxuICAgICAgICBleGNsdWRlR2VvOiBmYWxzZSxcbiAgICAgICAgZnJvbTogJ1ByeURhdGFzZXREZXRhaWxDb21wb25lbnQubmdPbkluaXQoKSdcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuZGF0YXNldFZlcnNpb25zJCA9IHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5tYXRjaGluZ0RhdGFzZXRWZXJzaW9ucyh0aGlzLmRhdGFzZXQuaWQpKVxuICAgICAgLnBpcGUobWFwKChyZXMpID0+IFsuLi5yZXNdLnNvcnQoKGEsIGIpID0+IGIudmVyc2lvbiAtIGEudmVyc2lvbikpKTtcbiAgICB0aGlzLmFjdGl2ZVZlcnNpb24kID0gdGhpcy5kYXRhc2V0VmVyc2lvbnMkLnBpcGUoXG4gICAgICBtYXAoKHZlcnNpb25zKSA9PlxuICAgICAgICB2ZXJzaW9ucy5zb3J0KCh2MSwgdjIpID0+IHYyLnZlcnNpb24gLSB2MS52ZXJzaW9uKS5maW5kKCh2ZXJzaW9uKSA9PiB2ZXJzaW9uLnN0YXRlID09PSAnQUNUSVZFJylcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuZGF0YXNldFZlcnNpb25zJC5zdWJzY3JpYmUoKHZlcnNpb25zKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVmVyc2lvbikge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWZXJzaW9uID0ge1xuICAgICAgICAgICAgLi4udGhpcy5zZWxlY3RlZFZlcnNpb24sXG4gICAgICAgICAgICAuLi52ZXJzaW9ucy5maW5kKCh2ZXJzaW9uKSA9PiB2ZXJzaW9uLmlkID09PSB0aGlzLnNlbGVjdGVkVmVyc2lvbj8uaWQpXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy53aWRnZXRNYW5pZmVzdFsndGFibGUnXS5kYXRhc291cmNlID0gW3RoaXMuZGF0YXNldC5pZF07XG4gICAgdGhpcy53aWRnZXRNYW5pZmVzdFsnbWFwJ10uZGF0YXNvdXJjZSA9IFt0aGlzLmRhdGFzZXQuaWRdO1xuICB9XG5cbiAgZ29CYWNrKCkge1xuICAgIHRoaXMuZ29Ub0NhdGFsb2cuZW1pdCgpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5saXN0VmVyc2lvbnMoKSk7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyh7XG4gICAgICAgIGlkOiB0aGlzLmRhdGFzZXQuaWQsXG4gICAgICAgIGV4Y2x1ZGVHZW86IGZhbHNlLFxuICAgICAgICBmcm9tOiAnUHJ5RGF0YXNldERldGFpbENvbXBvbmVudC5yZWZyZXNoKCknXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0Lmxpc3RWZXJzaW9ucygpKTtcbiAgfVxuXG4gIGdvVG9Db25zdWx0KHZlcnNpb246IERhdGFzZXRWZXJzaW9uIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFzZXRWZXJzaW9uID0gdmVyc2lvbjtcbiAgICB0aGlzLnNob3dNb2RhbFN0YXR1cyA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlID0gVmlld01vZGUuQ09OU1VMVDtcbiAgfVxuXG4gIHN3aXRjaChudW1iZXI6IG51bWJlcikge1xuICAgIHRoaXMudGFiID0gbnVtYmVyO1xuICB9XG5cbiAgaGFuZGxlQnV0dG9uQWN0aW9uKHZlcnNpb246IERhdGFzZXRWZXJzaW9uKSB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFzZXRWZXJzaW9uID0gdmVyc2lvbjtcbiAgICBzd2l0Y2ggKHZlcnNpb24uc3RhdGUpIHtcbiAgICAgIGNhc2UgJ0FDVElWRSc6XG4gICAgICAgIHRoaXMuZGVhY3RpdmF0ZVZlcnNpb24odmVyc2lvbik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnSU5BQ1RJVkUnOlxuICAgICAgICB0aGlzLmFjdGl2YXRlVmVyc2lvbih2ZXJzaW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBjb25zdWx0RXJyb3JzKHZlcnNpb246IERhdGFzZXRWZXJzaW9uKSB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFzZXRWZXJzaW9uID0gdmVyc2lvbjtcbiAgICB0aGlzLnNob3dNb2RhbFN0YXR1cyA9IHRydWU7XG4gIH1cblxuICBnZXRWZXJzaW9uVG9vbHRpcENvbnRlbnQodmVyc2lvbjogRGF0YXNldFZlcnNpb24sIGFjdGl2ZVZlcnNpb25JZDogc3RyaW5nKSB7XG4gICAgc3dpdGNoICh2ZXJzaW9uLnN0YXRlKSB7XG4gICAgICBjYXNlICdFUlJPUic6XG4gICAgICAgIHJldHVybiAnZXJyb3InO1xuICAgICAgY2FzZSAnQUNUSVZFJzpcbiAgICAgICAgcmV0dXJuIHZlcnNpb24uaWQgPT09IGFjdGl2ZVZlcnNpb25JZCA/ICdhY3RpdmUnIDogJ2luYWN0aXZlJztcbiAgICAgIGNhc2UgJ0xPQURJTkcnOlxuICAgICAgY2FzZSAnSU5ERVhJTkcnOlxuICAgICAgICByZXR1cm4gJ2xvYWRpbmcnO1xuICAgICAgY2FzZSAnSU5BQ1RJVkUnOlxuICAgICAgICByZXR1cm4gJ2ludmFsaWQnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICd1bmtub3duJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlYWN0aXZhdGVWZXJzaW9uKHZlcnNpb246IERhdGFzZXRWZXJzaW9uKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVhY3RpdmF0ZURhdGFzZXRWZXJzaW9uKHtcbiAgICAgICAgZGF0YXNldElkOiB0aGlzLmRhdGFzZXQuaWQsXG4gICAgICAgIHZlcnNpb25JZDogdmVyc2lvbi5pZFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmF0ZVZlcnNpb24odmVyc2lvbjogRGF0YXNldFZlcnNpb24pIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5hY3RpdmF0ZURhdGFzZXRWZXJzaW9uKHtcbiAgICAgICAgZGF0YXNldElkOiB0aGlzLmRhdGFzZXQuaWQsXG4gICAgICAgIHZlcnNpb25JZDogdmVyc2lvbi5pZFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgb25UYWJTd2l0Y2goJGV2ZW50OiBudW1iZXIpIHtcbiAgICBpZiAoWzAsIDEsIDJdLmluY2x1ZGVzKCRldmVudCkpIHtcbiAgICAgIHRoaXMuaXNQYW5lbE9wZW4gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVQYW5lbChzZWxlY3RlZFZlcnNpb24/OiBEYXRhc2V0VmVyc2lvbikge1xuICAgIGlmIChzZWxlY3RlZFZlcnNpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWZXJzaW9uID0gc2VsZWN0ZWRWZXJzaW9uO1xuICAgICAgdGhpcy5pc1BhbmVsT3BlbiA9IHRydWU7XG4gICAgICB0aGlzLmlzRWRpdGluZ1ZlcnNpb24gPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc1BhbmVsT3BlbiA9ICF0aGlzLmlzUGFuZWxPcGVuO1xuICAgIH1cbiAgfVxuXG4gIGVkaXRWZXJzaW9uKCkge1xuICAgIHRoaXMuaXNFZGl0aW5nVmVyc2lvbiA9IHRydWU7XG4gIH1cblxuICBmb3JtVmFsaWRhdGVkKCRldmVudDogUGFydGlhbDxEYXRhc2V0VmVyc2lvbj4pIHtcbiAgICB0aGlzLmlzRWRpdGluZ1ZlcnNpb24gPSBmYWxzZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm8tbWFuaWZlc3QtbGF5b3V0X190b29sYm94XCI+XG4gIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIChjbGljayk9XCJnb0JhY2soKVwiPnt7ICdAcHJ5LmRhdGFzZXQucmV0dXJuVG9MaXN0JyB8IGkxOG4gfX08L2J1dHRvbj5cbiAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIiAoY2xpY2spPVwicmVmcmVzaCgpXCI+XG4gICAge3sgJ0BwcnkuZGF0YXNldC5yZWZyZXNoJyB8IGkxOG4gfX1cbiAgICA8cHJ5LWljb24gaWNvblN2Zz1cInN5bmNocm9cIj48L3ByeS1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiby1kYXRhc2V0LWxheW91dFwiPlxuICA8ZGl2IGNsYXNzPVwiby1kYXRhc2V0LWxheW91dF9fY29udGVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJhLXBcIj5cbiAgICAgIDxoMiBjbGFzcz1cImEtaDFcIj57eyBkYXRhc2V0Lm5hbWUgfX08L2gyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm8tZGF0YXNldC1kZXRhaWxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLWRhdGFzZXQtZGV0YWlsX19jb250ZW50XCI+XG4gICAgICAgIDxwcnktdGFiLWdyb3VwIHRyYW5zbGF0aW9uU3RyaW5nQmFzZT1cIkBwcnkuZGF0YXNldC5cIiAoY2xpY2tlZFRhYklkeCk9XCJvblRhYlN3aXRjaCgkZXZlbnQpXCI+XG4gICAgICAgICAgPHByeS10YWIgW3RlbXBsYXRlUmVmXT1cImluZm9ybWF0aW9uXCIgbmFtZT1cImluZm9ybWF0aW9uXCI+PC9wcnktdGFiPlxuICAgICAgICAgIDxwcnktdGFiIFt0ZW1wbGF0ZVJlZl09XCJ0YWJsZVwiIG5hbWU9XCJkYXRhXCI+PC9wcnktdGFiPlxuICAgICAgICAgIDxwcnktdGFiIFt0ZW1wbGF0ZVJlZl09XCJtYXBcIiBuYW1lPVwibWFwXCI+PC9wcnktdGFiPlxuICAgICAgICAgIDxwcnktdGFiIFt0ZW1wbGF0ZVJlZl09XCJkYXRhc2V0VmVyc2lvbnNcIiBuYW1lPVwidmVyc2lvbkhpc3RvcnlcIj48L3ByeS10YWI+XG4gICAgICAgIDwvcHJ5LXRhYi1ncm91cD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgQGlmIChpc1BhbmVsT3Blbikge1xuICAgIDxkaXYgY2xhc3M9XCJvLWRhdGFzZXQtbGF5b3V0X19wYW5lbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBhbmVsX19oZWFkZXIgdS1kaXNwbGF5LWZsZXggLWp1c3RpZnktc3BhY2UtYmV0d2VlblwiPlxuICAgICAgICA8aDM+e3sgJ0BwcnkuZGF0YXNldC5pbmZvcm1hdGlvbicgfCBpMThuIH19PC9oMz5cbiAgICAgICAgPGJ1dHRvbiByb2xlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZVBhbmVsKClcIj5cbiAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNsb3NlXCI+PC9wcnktaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbF9fY29udGVudCB1LWRpc3BsYXktZmxleCAtY29sdW1uXCI+XG4gICAgICAgIEBpZiAoIWlzRWRpdGluZ1ZlcnNpb24pIHtcbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZGF0YXNldC52ZXJzaW9uLnByb2R1Y3Rpb25EYXRlJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57e1xuICAgICAgICAgICAgICAoc2VsZWN0ZWRWZXJzaW9uPy5wcm9kdWN0aW9uRGF0ZSB8IGRhdGU6ICdkZC1NTS15eXl5LCBISDptbScpID8/XG4gICAgICAgICAgICAgICAgKCdAcHJ5LmRhdGFzZXQudmVyc2lvbi5ub3RQcm92aWRlZCcgfCBpMThuKVxuICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmRhdGFzZXQudmVyc2lvbi5wcm9kdWNlcicgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+e3sgc2VsZWN0ZWRWZXJzaW9uPy5wcm9kdWNlciA/PyAoJ0BwcnkuZGF0YXNldC52ZXJzaW9uLm5vdFByb3ZpZGVkJyB8IGkxOG4pIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5kYXRhc2V0LnZlcnNpb24uYWRkaXRpb25hbEluZm9ybWF0aW9uJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidmVyc2lvbi1pbmZvcm1hdGlvblwiXG4gICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRWZXJzaW9uPy5hZGRpdGlvbmFsSW5mb3JtYXRpb24gPz8gKCdAcHJ5LmRhdGFzZXQudmVyc2lvbi5ub3RQcm92aWRlZCcgfCBpMThuKSB8IG1kVG9IdG1sXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGJ1dHRvbiAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdhZG1pbicsIHBhZ2U6ICdsaXN0LWRhdGFzZXQnLCBhY3Rpb246ICdlZGl0X3ZlcnNpb24nIH1cIiByb2xlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeSB1LXNlbGYtZW5kXCIgKGNsaWNrKT1cImVkaXRWZXJzaW9uKClcIj5cbiAgICAgICAgICAgIHt7ICdAcHJ5LmFjdGlvbi5lZGl0JyB8IGkxOG4gfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPHByeS1kYXRhc2V0LXZlcnNpb24tZm9ybVxuICAgICAgICAgICAgW3ZlcnNpb25dPVwic2VsZWN0ZWRWZXJzaW9uXCJcbiAgICAgICAgICAgIChmb3JtVmFsaWRhdGVkKT1cImZvcm1WYWxpZGF0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvcHJ5LWRhdGFzZXQtdmVyc2lvbi1mb3JtPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjaW5mb3JtYXRpb24+XG4gIEBpZiAoYWN0aXZlVmVyc2lvbiQgfCBhc3luYzsgYXMgYWN0aXZlVmVyc2lvbikge1xuICAgIDxkaXYgY2xhc3M9XCJ1LWRpc3BsYXktZmxleCAtY29sdW1uIG8tZGF0YXNldC1kZXRhaWxfX2luZm9ybWF0aW9uXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5kYXRhc2V0LmRlc2NyaXB0aW9uJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDxzcGFuPnt7IGRhdGFzZXQuZGVzY3JpcHRpb24gPz8gKCdAcHJ5LmRhdGFzZXQudmVyc2lvbi5ub3RQcm92aWRlZCcgfCBpMThuKSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZGF0YXNldC52ZXJzaW9uLnByb2R1Y3Rpb25EYXRlJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDxzcGFuPnt7XG4gICAgICAgICAgKGFjdGl2ZVZlcnNpb24/LnByb2R1Y3Rpb25EYXRlIHwgZGF0ZTogJ2RkLU1NLXl5eXksIEhIOm1tJykgPz8gKCdAcHJ5LmRhdGFzZXQudmVyc2lvbi5ub3RQcm92aWRlZCcgfCBpMThuKVxuICAgICAgICB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZGF0YXNldC52ZXJzaW9uLnByb2R1Y2VyJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDxzcGFuPnt7IGFjdGl2ZVZlcnNpb24/LnByb2R1Y2VyID8/ICgnQHByeS5kYXRhc2V0LnZlcnNpb24ubm90UHJvdmlkZWQnIHwgaTE4bikgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmRhdGFzZXQudmVyc2lvbi5hZGRpdGlvbmFsSW5mb3JtYXRpb24nIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidmVyc2lvbi1pbmZvcm1hdGlvblwiXG4gICAgICAgICAgW2lubmVySFRNTF09XCJhY3RpdmVWZXJzaW9uPy5hZGRpdGlvbmFsSW5mb3JtYXRpb24gPz8gKCdAcHJ5LmRhdGFzZXQudmVyc2lvbi5ub3RQcm92aWRlZCcgfCBpMThuKSB8IG1kVG9IdG1sXCJcbiAgICAgICAgPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH0gQGVsc2Uge1xuICAgIDxkaXYgY2xhc3M9XCJhLXBcIj5cbiAgICAgIDxwPnt7ICdAcHJ5LmRhdGFzZXQubm9BY3RpdmVWZXJzaW9uJyB8IGkxOG4gfX08L3A+XG4gICAgPC9kaXY+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGFibGU+XG4gIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmQtY29udGFpbmVyXCI+XG4gICAgPHByeS1kYXNoYm9hcmQgW3N0YXRpY0Rhc2hib2FyZF09XCJ7IHdpZGdldHM6IFt3aWRnZXRNYW5pZmVzdFsndGFibGUnXV0gfVwiPjwvcHJ5LWRhc2hib2FyZD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNtYXA+XG4gIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmQtY29udGFpbmVyXCI+XG4gICAgPHByeS1kYXNoYm9hcmQgW3N0YXRpY0Rhc2hib2FyZF09XCJ7IHdpZGdldHM6IFt3aWRnZXRNYW5pZmVzdFsnbWFwJ11dIH1cIj48L3ByeS1kYXNoYm9hcmQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZGF0YXNldFZlcnNpb25zPlxuICA8ZGl2ICpuZ0lmPVwiYWN0aXZlVmVyc2lvbiQgfCBhc3luYyBhcyBhY3RpdmVWZXJzaW9uXCIgY2xhc3M9XCJkYXRhc2V0LWRldGFpbF9fdGFibGUgdGFibGUtY29udGFpbmVyXCI+XG4gICAgPHRhYmxlIGNsYXNzPVwiYS10YWJsZVwiPlxuICAgICAgPGNhcHRpb24+XG4gICAgICAgIHt7XG4gICAgICAgICAgJ0BwcnkuYWRtaW4uZGF0YXNldC50aXRsZScgfCBpMThuXG4gICAgICAgIH19LFxuICAgICAgICB7e1xuICAgICAgICAgICdAcHJ5LmFjdGlvbi5zb3J0YWJsZUNvbHVtbkhlYWRlcicgfCBpMThuXG4gICAgICAgIH19XG4gICAgICA8L2NhcHRpb24+XG4gICAgICA8dGhlYWQ+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGg+e3sgJ0BwcnkuZGF0YXNldC52ZXJzaW9uLnRpdGxlJyB8IGkxOG4gfX08L3RoPlxuICAgICAgICAgIDx0aD57eyAnQHByeS5kYXRhc2V0LmRhdGUnIHwgaTE4biB9fTwvdGg+XG4gICAgICAgICAgPHRoPnt7ICdAcHJ5LmRhdGFzZXQuc3RhdHVzJyB8IGkxOG4gfX08L3RoPlxuICAgICAgICAgIDx0aD48L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyICpuZ0Zvcj1cImxldCB2ZXJzaW9uIG9mIGRhdGFzZXRWZXJzaW9ucyQgfCBhc3luY1wiIChjbGljayk9XCJ0b2dnbGVQYW5lbCh2ZXJzaW9uKVwiPlxuICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgIHt7IHZlcnNpb24udmVyc2lvbiB9fVxuICAgICAgICAgICAgPHByeS1pY29uICpuZ0lmPVwiYWN0aXZlVmVyc2lvbi5pZCA9PT0gdmVyc2lvbi5pZFwiIGljb25Tdmc9XCJjaGVja1wiIGNsYXNzPVwiY2hlY2tcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImEtdG9vbHRpcFwiXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtdG9vbHRpcF09XCJ2ZXJzaW9uLmxhc3RNb2RpZmllZCB8IHNpbmNlRGF0ZTogeyBvbmx5TG9jYWxlOiB0cnVlIH1cIlxuICAgICAgICAgICAgICBkYXRhLXRvb2x0aXAtcG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IHZlcnNpb24ubGFzdE1vZGlmaWVkIHwgc2luY2VEYXRlOiB7IG9ubHlMb2NhbGU6IHRydWUgfSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAoYWN0aXZlVmVyc2lvbi5pZCA9PT0gdmVyc2lvbi5pZFxuICAgICAgICAgICAgICAgID8gJ0BwcnkuZGF0YXNldC52ZXJzaW9uLmN1cnJlbnRseUFjdGl2ZSdcbiAgICAgICAgICAgICAgICA6ICdAcHJ5LmRhdGFzZXQudmVyc2lvbi4nICsgdmVyc2lvbi5zdGF0ZVxuICAgICAgICAgICAgICApIHwgaTE4blxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJtLWluZm8taWNvbiBhLXRvb2x0aXAgLXRvb2x0aXAtd2lkdGgtbWRcIlxuICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0BwcnkuZGF0YXNldC50b29sdGlwLicgKyBnZXRWZXJzaW9uVG9vbHRpcENvbnRlbnQodmVyc2lvbiwgYWN0aXZlVmVyc2lvbi5pZCkgfCBpMThuXCJcbiAgICAgICAgICAgICAgZGF0YS10b29sdGlwLXBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3Bhbj5pPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwidmVyc2lvbi5zdGF0ZSAhPT0gJ0xPQURJTkcnICYmIHZlcnNpb24uc3RhdGUgIT09ICdJTkRFWElORycgJiYgdmVyc2lvbi5zdGF0ZSAhPT0gJ0VSUk9SJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhc2V0Lm93bmVyICYmICh2ZXJzaW9uLnN0YXRlID09PSAnQUNUSVZFJyB8fCB2ZXJzaW9uLnN0YXRlID09PSAnSU5BQ1RJVkUnKVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnByeUFjY2Vzcz1cInsgbW9kdWxlOiAnZGFzaGJvYXJkJywgcGFnZTogJ2xpc3QtZGF0YXNldCcsIGFjdGlvbjogJ2FjdGl2YXRlJyB9XCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5IGEtYnRuLS1pY29uLXRleHQgbmctc3Rhci1pbnNlcnRlZFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVCdXR0b25BY3Rpb24odmVyc2lvbilcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyAnQHByeS5kYXRhc2V0LmJ1dHRvbkFjdGlvbi4nICsgdmVyc2lvbi5zdGF0ZSB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZlcnNpb24uc3RhdGUgPT09ICdBQ1RJVkUnIHx8IHZlcnNpb24uc3RhdGUgPT09ICdJTkFDVElWRSdcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibS1pbmZvLWljb24gYS10b29sdGlwIC10b29sdGlwLXdpZHRoLWxnXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAodmVyc2lvbi5zdGF0ZSA9PT0gJ0FDVElWRSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnQHByeS5kYXRhc2V0LnRvb2x0aXAuaW52YWxpZGF0ZUJ1dHRvbidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnQHByeS5kYXRhc2V0LnRvb2x0aXAudmFsaWRhdGVCdXR0b24nXG4gICAgICAgICAgICAgICAgICAgICAgICApIHwgaTE4blxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YS10b29sdGlwLXBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4+aTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2ZXJzaW9uLmhhc1dhcm5pbmdzIHx8IHZlcnNpb24uc3RhdGUgPT09ICdFUlJPUidcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeSBhLWJ0bi0taWNvbi10ZXh0IG5nLXN0YXItaW5zZXJ0ZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjb25zdWx0RXJyb3JzKHZlcnNpb24pXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAodmVyc2lvbi5zdGF0ZSA9PT0gJ0VSUk9SJyA/ICdAcHJ5LmRhdGFzZXQuYnV0dG9uQWN0aW9uLkVSUk9SJyA6ICdAcHJ5LmRhdGFzZXQuYnV0dG9uQWN0aW9uLldBUk5JTkcnKVxuICAgICAgICAgICAgICAgICAgICB8IGkxOG5cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dNb2RhbFN0YXR1c1wiPlxuICA8cHJ5LW1vZGFsLXN0YXR1cyBbdmVyc2lvbl09XCJzZWxlY3RlZERhdGFzZXRWZXJzaW9uXCIgKGdvdG9Db25zdWx0KT1cImdvVG9Db25zdWx0KCRldmVudClcIj48L3ByeS1tb2RhbC1zdGF0dXM+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==