vc-create-dashboard 3.0.80 → 3.0.82

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 (45) hide show
  1. package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.mjs +79 -290
  2. package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.mjs +1 -1
  3. package/esm2022/lib/create-dashboard-container/constants/assets.constant.mjs +1 -1
  4. package/esm2022/lib/create-dashboard-container/create-dashboard.component.mjs +826 -404
  5. package/esm2022/lib/create-dashboard-container/create-dashboard.module.mjs +7 -3
  6. package/esm2022/lib/create-dashboard-container/pipes/search-program.pipe.mjs +37 -0
  7. package/esm2022/lib/create-dashboard-container/program-list/constant.mjs +31 -0
  8. package/esm2022/lib/create-dashboard-container/program-list/information-block/information-block.component.mjs +13 -0
  9. package/esm2022/lib/create-dashboard-container/program-list/interfaces/list-item.interface.mjs +2 -0
  10. package/esm2022/lib/create-dashboard-container/program-list/list-container/list-container.component.mjs +50 -0
  11. package/esm2022/lib/create-dashboard-container/program-list/pipes/check-selected-items.pipes.mjs +23 -0
  12. package/esm2022/lib/create-dashboard-container/program-list/program-list/program-list.component.mjs +294 -0
  13. package/esm2022/lib/create-dashboard-container/program-list/program-list.module.mjs +60 -0
  14. package/esm2022/lib/create-dashboard-container/program-list/services/list-utils.service.mjs +27 -0
  15. package/esm2022/lib/create-dashboard-container/program-list/services/program-list-api.service.mjs +35 -0
  16. package/esm2022/lib/create-dashboard-container/services/configure-widgets.service.mjs +80 -72
  17. package/esm2022/lib/create-dashboard-container/services/create-dashboard.service.mjs +87 -4
  18. package/esm2022/lib/create-dashboard-container/utils/dashboard-edit.utils.mjs +181 -0
  19. package/esm2022/lib/ui-kit/dialog/dialog.component.mjs +8 -11
  20. package/esm2022/lib/ui-kit/loaders/loaders.module.mjs +24 -0
  21. package/esm2022/lib/ui-kit/loaders/table-loader/table-loader.component.mjs +18 -0
  22. package/fesm2022/vc-create-dashboard.mjs +3555 -2515
  23. package/fesm2022/vc-create-dashboard.mjs.map +1 -1
  24. package/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.d.ts +6 -16
  25. package/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.d.ts +1 -1
  26. package/lib/create-dashboard-container/create-dashboard.component.d.ts +62 -23
  27. package/lib/create-dashboard-container/create-dashboard.module.d.ts +2 -1
  28. package/lib/create-dashboard-container/pipes/search-program.pipe.d.ts +7 -0
  29. package/lib/create-dashboard-container/program-list/constant.d.ts +24 -0
  30. package/lib/create-dashboard-container/program-list/information-block/information-block.component.d.ts +6 -0
  31. package/lib/create-dashboard-container/program-list/interfaces/list-item.interface.d.ts +5 -0
  32. package/lib/create-dashboard-container/program-list/list-container/list-container.component.d.ts +9 -0
  33. package/lib/create-dashboard-container/program-list/pipes/check-selected-items.pipes.d.ts +7 -0
  34. package/lib/create-dashboard-container/program-list/program-list/program-list.component.d.ts +119 -0
  35. package/lib/create-dashboard-container/program-list/program-list.module.d.ts +17 -0
  36. package/lib/create-dashboard-container/program-list/services/list-utils.service.d.ts +7 -0
  37. package/lib/create-dashboard-container/program-list/services/program-list-api.service.d.ts +14 -0
  38. package/lib/create-dashboard-container/services/configure-widgets.service.d.ts +1 -16
  39. package/lib/create-dashboard-container/services/create-dashboard.service.d.ts +38 -1
  40. package/lib/create-dashboard-container/utils/dashboard-edit.utils.d.ts +16 -0
  41. package/lib/ui-kit/loaders/loaders.module.d.ts +8 -0
  42. package/lib/ui-kit/loaders/table-loader/table-loader.component.d.ts +9 -0
  43. package/package.json +1 -1
  44. package/esm2022/lib/create-dashboard-container/services/urlConfig.service.mjs +0 -29
  45. package/lib/create-dashboard-container/services/urlConfig.service.d.ts +0 -10
@@ -0,0 +1,181 @@
1
+ /** Shared helpers for custom dashboard create/edit form hydration. */
2
+ export function normalizeIdArray(value) {
3
+ if (value == null || value === '') {
4
+ return [];
5
+ }
6
+ const items = Array.isArray(value) ? value : [value];
7
+ return items
8
+ .map((item) => {
9
+ if (typeof item === 'number' || typeof item === 'string') {
10
+ return Number(item);
11
+ }
12
+ if (typeof item === 'object' && item != null) {
13
+ const obj = item;
14
+ return Number(obj['id'] ??
15
+ obj['programId'] ??
16
+ obj['rcid'] ??
17
+ obj['rc_id'] ??
18
+ obj['rcId'] ??
19
+ obj['item_id']);
20
+ }
21
+ return NaN;
22
+ })
23
+ .filter((id) => !Number.isNaN(id));
24
+ }
25
+ export function extractProgramIdsFromDashboard(data) {
26
+ if (!data) {
27
+ return [];
28
+ }
29
+ const direct = normalizeIdArray(data.programs ?? data.programId ?? data.program?.programId ?? data.programIds);
30
+ if (direct.length) {
31
+ return direct;
32
+ }
33
+ const allPrograms = data.program?.all_programs;
34
+ if (!Array.isArray(allPrograms) || !allPrograms.length) {
35
+ return [];
36
+ }
37
+ if (typeof allPrograms[0] === 'object') {
38
+ const fromObjects = [
39
+ ...new Set(allPrograms
40
+ .map((item) => Number(item?.programId ?? item?.program_id ?? item?.parentId))
41
+ .filter((id) => !Number.isNaN(id))),
42
+ ];
43
+ if (fromObjects.length) {
44
+ return fromObjects;
45
+ }
46
+ return normalizeIdArray(allPrograms);
47
+ }
48
+ return normalizeIdArray(allPrograms);
49
+ }
50
+ export function extractCategoryIdsFromDashboard(data) {
51
+ if (!data) {
52
+ return [];
53
+ }
54
+ return normalizeIdArray(data.responsibility_category ??
55
+ data.responsibilityCategory ??
56
+ data.responsibilityCategoryId ??
57
+ data.compliance_category ??
58
+ data.categoryId ??
59
+ data.categoryIds ??
60
+ []);
61
+ }
62
+ export function extractRcIdsFromDashboard(data) {
63
+ if (!data) {
64
+ return [];
65
+ }
66
+ const fromRcId = normalizeIdArray(data.rcId);
67
+ if (fromRcId.length) {
68
+ return fromRcId;
69
+ }
70
+ return normalizeIdArray(data.responsibilityCenters ??
71
+ data.responsibilityCenterId ??
72
+ data.responsibility_center ??
73
+ data.responsibility_centers ??
74
+ data.rcs ??
75
+ []);
76
+ }
77
+ export function hasProgramSelectionInMap(map) {
78
+ if (!map || typeof map !== 'object' || Array.isArray(map)) {
79
+ return false;
80
+ }
81
+ return Object.keys(map).some((key) => (map[key] ?? []).length > 0);
82
+ }
83
+ export function normalizeProgramCategories(categories) {
84
+ return categories.map((category) => ({
85
+ ...category,
86
+ category_id: category.category_id ?? category.id,
87
+ item_name: category.item_name ?? category.name,
88
+ }));
89
+ }
90
+ export function flattenProgramSelectionMap(selections) {
91
+ return Object.keys(selections ?? {}).reduce((acc, key) => acc.concat(selections[key] ?? []), []);
92
+ }
93
+ export function normalizeProgramSelectionMap(map) {
94
+ const normalized = {};
95
+ Object.keys(map ?? {}).forEach((programKey) => {
96
+ normalized[String(programKey)] = (map[programKey] ?? []).map((cat) => {
97
+ if (typeof cat === 'number' || typeof cat === 'string') {
98
+ return {
99
+ id: String(cat),
100
+ category_id: Number(cat),
101
+ };
102
+ }
103
+ return {
104
+ ...cat,
105
+ id: String(cat?.id ?? cat?.category_id),
106
+ name: cat?.name ?? cat?.item_name,
107
+ };
108
+ });
109
+ });
110
+ return hasProgramSelectionInMap(normalized) ? normalized : null;
111
+ }
112
+ export function resolveCategoryProgramId(cat, complianceCatalog = []) {
113
+ const direct = cat?.programId ?? cat?.program_id ?? cat?.parentId ?? cat?.program?.id;
114
+ if (direct != null && direct !== '') {
115
+ return String(direct);
116
+ }
117
+ const catId = Number(cat?.category_id ?? cat?.id);
118
+ if (!Number.isNaN(catId)) {
119
+ const found = complianceCatalog.find((c) => Number(c?.category_id ?? c?.id) === catId);
120
+ if (found) {
121
+ return String(found?.programId ?? found?.program_id ?? found?.parentId ?? '');
122
+ }
123
+ }
124
+ return '';
125
+ }
126
+ export function buildProgramSelectionMapFromCategories(categories, complianceCatalog = []) {
127
+ const map = {};
128
+ (categories ?? []).forEach((cat) => {
129
+ const programKey = resolveCategoryProgramId(cat, complianceCatalog);
130
+ if (!programKey || programKey === 'undefined' || programKey === 'NaN') {
131
+ return;
132
+ }
133
+ if (!map[programKey]) {
134
+ map[programKey] = [];
135
+ }
136
+ map[programKey].push({
137
+ ...cat,
138
+ id: String(cat?.id ?? cat?.category_id),
139
+ name: cat?.name ?? cat?.item_name,
140
+ });
141
+ });
142
+ return map;
143
+ }
144
+ export function parseSailsProgramList(res) {
145
+ if (Array.isArray(res?.data?.programs)) {
146
+ return res.data.programs;
147
+ }
148
+ if (Array.isArray(res?.programs)) {
149
+ return res.programs;
150
+ }
151
+ return [];
152
+ }
153
+ export function getEditDashboardCdid(data, dashboardDetails, dashboardId) {
154
+ const row = data ?? dashboardDetails ?? {};
155
+ const core = row?.dashboard_details ?? row?.dashboard ?? row;
156
+ const cdid = core?.cdid ??
157
+ core?.cddid ??
158
+ row?.cdid ??
159
+ row?.cddid ??
160
+ dashboardDetails?.cdid ??
161
+ dashboardDetails?.cddid;
162
+ if (cdid != null && cdid !== '') {
163
+ return String(cdid);
164
+ }
165
+ const fallback = dashboardId ?? '';
166
+ if (fallback && !/^\d+$/.test(String(fallback))) {
167
+ return String(fallback);
168
+ }
169
+ return '';
170
+ }
171
+ export function getSelectedProgramsMap(data) {
172
+ const map = data?.program?.selected_programs;
173
+ if (map && typeof map === 'object' && !Array.isArray(map)) {
174
+ return map;
175
+ }
176
+ return undefined;
177
+ }
178
+ export function filterActiveWidgets(widgets) {
179
+ return (widgets ?? []).filter((w) => !w?.state || w.state === 'ACTIVE');
180
+ }
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWVkaXQudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvY3JlYXRlLWRhc2hib2FyZC1jb250YWluZXIvdXRpbHMvZGFzaGJvYXJkLWVkaXQudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0VBQXNFO0FBSXRFLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFjO0lBQzdDLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFO1FBQ2pDLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFDRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsT0FBTyxLQUFLO1NBQ1QsR0FBRyxDQUFDLENBQUMsSUFBYSxFQUFFLEVBQUU7UUFDckIsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ3hELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JCO1FBQ0QsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtZQUM1QyxNQUFNLEdBQUcsR0FBRyxJQUErQixDQUFDO1lBQzVDLE9BQU8sTUFBTSxDQUNYLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQ1AsR0FBRyxDQUFDLFdBQVcsQ0FBQztnQkFDaEIsR0FBRyxDQUFDLE1BQU0sQ0FBQztnQkFDWCxHQUFHLENBQUMsT0FBTyxDQUFDO2dCQUNaLEdBQUcsQ0FBQyxNQUFNLENBQUM7Z0JBQ1gsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUNqQixDQUFDO1NBQ0g7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsQ0FBQztT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QyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDekQsT0FBTyxHQUFHLENBQUM7S0FDWjtJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsT0FBYztJQUNoRCxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUM7QUFDMUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBTaGFyZWQgaGVscGVycyBmb3IgY3VzdG9tIGRhc2hib2FyZCBjcmVhdGUvZWRpdCBmb3JtIGh5ZHJhdGlvbi4gKi9cblxuZXhwb3J0IHR5cGUgUHJvZ3JhbVNlbGVjdGlvbk1hcCA9IFJlY29yZDxzdHJpbmcsIGFueVtdPjtcblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUlkQXJyYXkodmFsdWU6IHVua25vd24pOiBudW1iZXJbXSB7XG4gIGlmICh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09PSAnJykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBjb25zdCBpdGVtcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICByZXR1cm4gaXRlbXNcbiAgICAubWFwKChpdGVtOiB1bmtub3duKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdudW1iZXInIHx8IHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gTnVtYmVyKGl0ZW0pO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtICE9IG51bGwpIHtcbiAgICAgICAgY29uc3Qgb2JqID0gaXRlbSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgICAgcmV0dXJuIE51bWJlcihcbiAgICAgICAgICBvYmpbJ2lkJ10gPz9cbiAgICAgICAgICAgIG9ialsncHJvZ3JhbUlkJ10gPz9cbiAgICAgICAgICAgIG9ialsncmNpZCddID8/XG4gICAgICAgICAgICBvYmpbJ3JjX2lkJ10gPz9cbiAgICAgICAgICAgIG9ialsncmNJZCddID8/XG4gICAgICAgICAgICBvYmpbJ2l0ZW1faWQnXVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIE5hTjtcbiAgICB9KVxuICAgIC5maWx0ZXIoKGlkOiBudW1iZXIpID0+ICFOdW1iZXIuaXNOYU4oaWQpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RQcm9ncmFtSWRzRnJvbURhc2hib2FyZChkYXRhOiBhbnkpOiBudW1iZXJbXSB7XG4gIGlmICghZGF0YSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBjb25zdCBkaXJlY3QgPSBub3JtYWxpemVJZEFycmF5KFxuICAgIGRhdGEucHJvZ3JhbXMgPz8gZGF0YS5wcm9ncmFtSWQgPz8gZGF0YS5wcm9ncmFtPy5wcm9ncmFtSWQgPz8gZGF0YS5wcm9ncmFtSWRzXG4gICk7XG4gIGlmIChkaXJlY3QubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGRpcmVjdDtcbiAgfVxuICBjb25zdCBhbGxQcm9ncmFtcyA9IGRhdGEucHJvZ3JhbT8uYWxsX3Byb2dyYW1zO1xuICBpZiAoIUFycmF5LmlzQXJyYXkoYWxsUHJvZ3JhbXMpIHx8ICFhbGxQcm9ncmFtcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgaWYgKHR5cGVvZiBhbGxQcm9ncmFtc1swXSA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCBmcm9tT2JqZWN0cyA9IFtcbiAgICAgIC4uLm5ldyBTZXQoXG4gICAgICAgIGFsbFByb2dyYW1zXG4gICAgICAgICAgLm1hcCgoaXRlbTogYW55KSA9PlxuICAgICAgICAgICAgTnVtYmVyKGl0ZW0/LnByb2dyYW1JZCA/PyBpdGVtPy5wcm9ncmFtX2lkID8/IGl0ZW0/LnBhcmVudElkKVxuICAgICAgICAgIClcbiAgICAgICAgICAuZmlsdGVyKChpZDogbnVtYmVyKSA9PiAhTnVtYmVyLmlzTmFOKGlkKSlcbiAgICAgICksXG4gICAgXTtcbiAgICBpZiAoZnJvbU9iamVjdHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZnJvbU9iamVjdHM7XG4gICAgfVxuICAgIHJldHVybiBub3JtYWxpemVJZEFycmF5KGFsbFByb2dyYW1zKTtcbiAgfVxuICByZXR1cm4gbm9ybWFsaXplSWRBcnJheShhbGxQcm9ncmFtcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0Q2F0ZWdvcnlJZHNGcm9tRGFzaGJvYXJkKGRhdGE6IGFueSk6IG51bWJlcltdIHtcbiAgaWYgKCFkYXRhKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiBub3JtYWxpemVJZEFycmF5KFxuICAgIGRhdGEucmVzcG9uc2liaWxpdHlfY2F0ZWdvcnkgPz9cbiAgICAgIGRhdGEucmVzcG9uc2liaWxpdHlDYXRlZ29yeSA/P1xuICAgICAgZGF0YS5yZXNwb25zaWJpbGl0eUNhdGVnb3J5SWQgPz9cbiAgICAgIGRhdGEuY29tcGxpYW5jZV9jYXRlZ29yeSA/P1xuICAgICAgZGF0YS5jYXRlZ29yeUlkID8/XG4gICAgICBkYXRhLmNhdGVnb3J5SWRzID8/XG4gICAgICBbXVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFJjSWRzRnJvbURhc2hib2FyZChkYXRhOiBhbnkpOiBudW1iZXJbXSB7XG4gIGlmICghZGF0YSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBjb25zdCBmcm9tUmNJZCA9IG5vcm1hbGl6ZUlkQXJyYXkoZGF0YS5yY0lkKTtcbiAgaWYgKGZyb21SY0lkLmxlbmd0aCkge1xuICAgIHJldHVybiBmcm9tUmNJZDtcbiAgfVxuICByZXR1cm4gbm9ybWFsaXplSWRBcnJheShcbiAgICBkYXRhLnJlc3BvbnNpYmlsaXR5Q2VudGVycyA/P1xuICAgICAgZGF0YS5yZXNwb25zaWJpbGl0eUNlbnRlcklkID8/XG4gICAgICBkYXRhLnJlc3BvbnNpYmlsaXR5X2NlbnRlciA/P1xuICAgICAgZGF0YS5yZXNwb25zaWJpbGl0eV9jZW50ZXJzID8/XG4gICAgICBkYXRhLnJjcyA/P1xuICAgICAgW11cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1Byb2dyYW1TZWxlY3Rpb25Jbk1hcChcbiAgbWFwOiBQcm9ncmFtU2VsZWN0aW9uTWFwIHwgbnVsbCB8IHVuZGVmaW5lZFxuKTogYm9vbGVhbiB7XG4gIGlmICghbWFwIHx8IHR5cGVvZiBtYXAgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkobWFwKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gT2JqZWN0LmtleXMobWFwKS5zb21lKChrZXkpID0+IChtYXBba2V5XSA/PyBbXSkubGVuZ3RoID4gMCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQcm9ncmFtQ2F0ZWdvcmllcyhjYXRlZ29yaWVzOiBhbnlbXSk6IGFueVtdIHtcbiAgcmV0dXJuIGNhdGVnb3JpZXMubWFwKChjYXRlZ29yeSkgPT4gKHtcbiAgICAuLi5jYXRlZ29yeSxcbiAgICBjYXRlZ29yeV9pZDogY2F0ZWdvcnkuY2F0ZWdvcnlfaWQgPz8gY2F0ZWdvcnkuaWQsXG4gICAgaXRlbV9uYW1lOiBjYXRlZ29yeS5pdGVtX25hbWUgPz8gY2F0ZWdvcnkubmFtZSxcbiAgfSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmxhdHRlblByb2dyYW1TZWxlY3Rpb25NYXAoXG4gIHNlbGVjdGlvbnM6IFByb2dyYW1TZWxlY3Rpb25NYXBcbik6IGFueVtdIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHNlbGVjdGlvbnMgPz8ge30pLnJlZHVjZShcbiAgICAoYWNjOiBhbnlbXSwga2V5OiBzdHJpbmcpID0+IGFjYy5jb25jYXQoc2VsZWN0aW9uc1trZXldID8/IFtdKSxcbiAgICBbXVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUHJvZ3JhbVNlbGVjdGlvbk1hcChcbiAgbWFwOiBQcm9ncmFtU2VsZWN0aW9uTWFwXG4pOiBQcm9ncmFtU2VsZWN0aW9uTWFwIHwgbnVsbCB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQ6IFByb2dyYW1TZWxlY3Rpb25NYXAgPSB7fTtcbiAgT2JqZWN0LmtleXMobWFwID8/IHt9KS5mb3JFYWNoKChwcm9ncmFtS2V5KSA9PiB7XG4gICAgbm9ybWFsaXplZFtTdHJpbmcocHJvZ3JhbUtleSldID0gKG1hcFtwcm9ncmFtS2V5XSA/PyBbXSkubWFwKChjYXQpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgY2F0ID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgY2F0ID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlkOiBTdHJpbmcoY2F0KSxcbiAgICAgICAgICBjYXRlZ29yeV9pZDogTnVtYmVyKGNhdCksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5jYXQsXG4gICAgICAgIGlkOiBTdHJpbmcoY2F0Py5pZCA/PyBjYXQ/LmNhdGVnb3J5X2lkKSxcbiAgICAgICAgbmFtZTogY2F0Py5uYW1lID8/IGNhdD8uaXRlbV9uYW1lLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBoYXNQcm9ncmFtU2VsZWN0aW9uSW5NYXAobm9ybWFsaXplZCkgPyBub3JtYWxpemVkIDogbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDYXRlZ29yeVByb2dyYW1JZChcbiAgY2F0OiBhbnksXG4gIGNvbXBsaWFuY2VDYXRhbG9nOiBhbnlbXSA9IFtdXG4pOiBzdHJpbmcge1xuICBjb25zdCBkaXJlY3QgPVxuICAgIGNhdD8ucHJvZ3JhbUlkID8/IGNhdD8ucHJvZ3JhbV9pZCA/PyBjYXQ/LnBhcmVudElkID8/IGNhdD8ucHJvZ3JhbT8uaWQ7XG4gIGlmIChkaXJlY3QgIT0gbnVsbCAmJiBkaXJlY3QgIT09ICcnKSB7XG4gICAgcmV0dXJuIFN0cmluZyhkaXJlY3QpO1xuICB9XG4gIGNvbnN0IGNhdElkID0gTnVtYmVyKGNhdD8uY2F0ZWdvcnlfaWQgPz8gY2F0Py5pZCk7XG4gIGlmICghTnVtYmVyLmlzTmFOKGNhdElkKSkge1xuICAgIGNvbnN0IGZvdW5kID0gY29tcGxpYW5jZUNhdGFsb2cuZmluZChcbiAgICAgIChjOiBhbnkpID0+IE51bWJlcihjPy5jYXRlZ29yeV9pZCA/PyBjPy5pZCkgPT09IGNhdElkXG4gICAgKTtcbiAgICBpZiAoZm91bmQpIHtcbiAgICAgIHJldHVybiBTdHJpbmcoXG4gICAgICAgIGZvdW5kPy5wcm9ncmFtSWQgPz8gZm91bmQ/LnByb2dyYW1faWQgPz8gZm91bmQ/LnBhcmVudElkID8/ICcnXG4gICAgICApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFByb2dyYW1TZWxlY3Rpb25NYXBGcm9tQ2F0ZWdvcmllcyhcbiAgY2F0ZWdvcmllczogYW55W10sXG4gIGNvbXBsaWFuY2VDYXRhbG9nOiBhbnlbXSA9IFtdXG4pOiBQcm9ncmFtU2VsZWN0aW9uTWFwIHtcbiAgY29uc3QgbWFwOiBQcm9ncmFtU2VsZWN0aW9uTWFwID0ge307XG4gIChjYXRlZ29yaWVzID8/IFtdKS5mb3JFYWNoKChjYXQpID0+IHtcbiAgICBjb25zdCBwcm9ncmFtS2V5ID0gcmVzb2x2ZUNhdGVnb3J5UHJvZ3JhbUlkKGNhdCwgY29tcGxpYW5jZUNhdGFsb2cpO1xuICAgIGlmICghcHJvZ3JhbUtleSB8fCBwcm9ncmFtS2V5ID09PSAndW5kZWZpbmVkJyB8fCBwcm9ncmFtS2V5ID09PSAnTmFOJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIW1hcFtwcm9ncmFtS2V5XSkge1xuICAgICAgbWFwW3Byb2dyYW1LZXldID0gW107XG4gICAgfVxuICAgIG1hcFtwcm9ncmFtS2V5XS5wdXNoKHtcbiAgICAgIC4uLmNhdCxcbiAgICAgIGlkOiBTdHJpbmcoY2F0Py5pZCA/PyBjYXQ/LmNhdGVnb3J5X2lkKSxcbiAgICAgIG5hbWU6IGNhdD8ubmFtZSA/PyBjYXQ/Lml0ZW1fbmFtZSxcbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBtYXA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVNhaWxzUHJvZ3JhbUxpc3QocmVzOiBhbnkpOiBhbnlbXSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHJlcz8uZGF0YT8ucHJvZ3JhbXMpKSB7XG4gICAgcmV0dXJuIHJlcy5kYXRhLnByb2dyYW1zO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHJlcz8ucHJvZ3JhbXMpKSB7XG4gICAgcmV0dXJuIHJlcy5wcm9ncmFtcztcbiAgfVxuICByZXR1cm4gW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFZGl0RGFzaGJvYXJkQ2RpZChcbiAgZGF0YTogYW55LFxuICBkYXNoYm9hcmREZXRhaWxzOiBhbnksXG4gIGRhc2hib2FyZElkOiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIGNvbnN0IHJvdyA9IGRhdGEgPz8gZGFzaGJvYXJkRGV0YWlscyA/PyB7fTtcbiAgY29uc3QgY29yZSA9IHJvdz8uZGFzaGJvYXJkX2RldGFpbHMgPz8gcm93Py5kYXNoYm9hcmQgPz8gcm93O1xuICBjb25zdCBjZGlkID1cbiAgICBjb3JlPy5jZGlkID8/XG4gICAgY29yZT8uY2RkaWQgPz9cbiAgICByb3c/LmNkaWQgPz9cbiAgICByb3c/LmNkZGlkID8/XG4gICAgZGFzaGJvYXJkRGV0YWlscz8uY2RpZCA/P1xuICAgIGRhc2hib2FyZERldGFpbHM/LmNkZGlkO1xuICBpZiAoY2RpZCAhPSBudWxsICYmIGNkaWQgIT09ICcnKSB7XG4gICAgcmV0dXJuIFN0cmluZyhjZGlkKTtcbiAgfVxuICBjb25zdCBmYWxsYmFjayA9IGRhc2hib2FyZElkID8/ICcnO1xuICBpZiAoZmFsbGJhY2sgJiYgIS9eXFxkKyQvLnRlc3QoU3RyaW5nKGZhbGxiYWNrKSkpIHtcbiAgICByZXR1cm4gU3RyaW5nKGZhbGxiYWNrKTtcbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3RlZFByb2dyYW1zTWFwKFxuICBkYXRhOiBhbnlcbik6IFByb2dyYW1TZWxlY3Rpb25NYXAgfCB1bmRlZmluZWQge1xuICBjb25zdCBtYXAgPSBkYXRhPy5wcm9ncmFtPy5zZWxlY3RlZF9wcm9ncmFtcztcbiAgaWYgKG1hcCAmJiB0eXBlb2YgbWFwID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShtYXApKSB7XG4gICAgcmV0dXJuIG1hcDtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyQWN0aXZlV2lkZ2V0cyh3aWRnZXRzOiBhbnlbXSk6IGFueVtdIHtcbiAgcmV0dXJuICh3aWRnZXRzID8/IFtdKS5maWx0ZXIoKHcpID0+ICF3Py5zdGF0ZSB8fCB3LnN0YXRlID09PSAnQUNUSVZFJyk7XG59XG4iXX0=
@@ -1,13 +1,13 @@
1
- import { Component, ViewChild, Inject, } from '@angular/core';
1
+ import { Component, ViewChild, } from '@angular/core';
2
2
  import { InsertionDirective } from './insertion.directive';
3
3
  import { Subject } from 'rxjs';
4
4
  import { NavigationEnd, NavigationError, NavigationStart, } from '@angular/router';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "./dialog-ref";
7
7
  import * as i2 from "./dialog-config";
8
- import * as i3 from "@angular/common";
9
- import * as i4 from "./insertion.directive";
10
- import * as i5 from "@angular/router";
8
+ import * as i3 from "@angular/router";
9
+ import * as i4 from "@angular/common";
10
+ import * as i5 from "./insertion.directive";
11
11
  export class DialogComponent {
12
12
  componentFactoryResolver;
13
13
  cd;
@@ -83,17 +83,14 @@ export class DialogComponent {
83
83
  this.onDialogClose.next(data);
84
84
  document.body.style.overflow = 'auto';
85
85
  }
86
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }, { token: i1.DialogRef }, { token: i2.DialogConfig }, { token: 'router' }], target: i0.ɵɵFactoryTarget.Component });
87
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DialogComponent, selector: "app-dialog", viewQueries: [{ propertyName: "insertionPoint", first: true, predicate: InsertionDirective, descendants: true, static: true }], ngImport: i0, template: "<div\n class=\"overlay\"\n (click)=\"onOverlayClicked($event)\"\n [ngClass]=\"{\n top: position === 'TOP',\n right: position === 'RIGHT',\n bottom: position === 'BOTTOM',\n left: position === 'LEFT',\n center: position === 'CENTER',\n black: background === 'black'\n }\" [class.pointer-none]=\"pointer === 'none'\"\n>\n <div\n class=\"dialog\"\n [class.animate]=\"animation\"\n (click)=\"onDialogClicked($event)\"\n [ngClass]=\"{\n top: position === 'TOP',\n right: position === 'RIGHT',\n bottom: position === 'BOTTOM',\n left: position === 'LEFT',\n center: position === 'CENTER'\n }\"\n >\n <ng-template appInsertion></ng-template>\n </div>\n</div>\n", styles: [".overlay{display:flex;position:fixed;inset:0;align-items:center;justify-content:center;z-index:9}.overlay.low{z-index:1}.overlay.black{background:#000000b3}.overlay.top{align-items:flex-start}.overlay.right{justify-content:flex-end}.overlay.bottom{align-items:flex-end}.overlay.left{justify-content:flex-start}.dialog{position:relative}.dialog.animate.top{animation:animate-top .2s cubic-bezier(.25,.46,.45,.94) both}@keyframes animate-top{0%{transform:translateY(-100px)}to{transform:translateY(0)}}.dialog.animate.right{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}.pointer-none{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.InsertionDirective, selector: "[appInsertion]" }] });
86
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }, { token: i1.DialogRef }, { token: i2.DialogConfig }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
87
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DialogComponent, selector: "app-dialog", viewQueries: [{ propertyName: "insertionPoint", first: true, predicate: InsertionDirective, descendants: true, static: true }], ngImport: i0, template: "<div\n class=\"overlay\"\n (click)=\"onOverlayClicked($event)\"\n [ngClass]=\"{\n top: position === 'TOP',\n right: position === 'RIGHT',\n bottom: position === 'BOTTOM',\n left: position === 'LEFT',\n center: position === 'CENTER',\n black: background === 'black'\n }\" [class.pointer-none]=\"pointer === 'none'\"\n>\n <div\n class=\"dialog\"\n [class.animate]=\"animation\"\n (click)=\"onDialogClicked($event)\"\n [ngClass]=\"{\n top: position === 'TOP',\n right: position === 'RIGHT',\n bottom: position === 'BOTTOM',\n left: position === 'LEFT',\n center: position === 'CENTER'\n }\"\n >\n <ng-template appInsertion></ng-template>\n </div>\n</div>\n", styles: [".overlay{display:flex;position:fixed;inset:0;align-items:center;justify-content:center;z-index:9}.overlay.low{z-index:1}.overlay.black{background:#000000b3}.overlay.top{align-items:flex-start}.overlay.right{justify-content:flex-end}.overlay.bottom{align-items:flex-end}.overlay.left{justify-content:flex-start}.dialog{position:relative}.dialog.animate.top{animation:animate-top .2s cubic-bezier(.25,.46,.45,.94) both}@keyframes animate-top{0%{transform:translateY(-100px)}to{transform:translateY(0)}}.dialog.animate.right{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}.pointer-none{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.InsertionDirective, selector: "[appInsertion]" }] });
88
88
  }
89
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogComponent, decorators: [{
90
90
  type: Component,
91
91
  args: [{ selector: 'app-dialog', template: "<div\n class=\"overlay\"\n (click)=\"onOverlayClicked($event)\"\n [ngClass]=\"{\n top: position === 'TOP',\n right: position === 'RIGHT',\n bottom: position === 'BOTTOM',\n left: position === 'LEFT',\n center: position === 'CENTER',\n black: background === 'black'\n }\" [class.pointer-none]=\"pointer === 'none'\"\n>\n <div\n class=\"dialog\"\n [class.animate]=\"animation\"\n (click)=\"onDialogClicked($event)\"\n [ngClass]=\"{\n top: position === 'TOP',\n right: position === 'RIGHT',\n bottom: position === 'BOTTOM',\n left: position === 'LEFT',\n center: position === 'CENTER'\n }\"\n >\n <ng-template appInsertion></ng-template>\n </div>\n</div>\n", styles: [".overlay{display:flex;position:fixed;inset:0;align-items:center;justify-content:center;z-index:9}.overlay.low{z-index:1}.overlay.black{background:#000000b3}.overlay.top{align-items:flex-start}.overlay.right{justify-content:flex-end}.overlay.bottom{align-items:flex-end}.overlay.left{justify-content:flex-start}.dialog{position:relative}.dialog.animate.top{animation:animate-top .2s cubic-bezier(.25,.46,.45,.94) both}@keyframes animate-top{0%{transform:translateY(-100px)}to{transform:translateY(0)}}.dialog.animate.right{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}.pointer-none{pointer-events:none}\n"] }]
92
- }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.ChangeDetectorRef }, { type: i1.DialogRef }, { type: i2.DialogConfig }, { type: i5.Router, decorators: [{
93
- type: Inject,
94
- args: ['router']
95
- }] }]; }, propDecorators: { insertionPoint: [{
92
+ }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.ChangeDetectorRef }, { type: i1.DialogRef }, { type: i2.DialogConfig }, { type: i3.Router }]; }, propDecorators: { insertionPoint: [{
96
93
  type: ViewChild,
97
94
  args: [InsertionDirective, { static: true }]
98
95
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi91aS1raXQvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L2RpYWxvZy9kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFHVCxTQUFTLEVBTVQsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0IsT0FBTyxFQUNMLGFBQWEsRUFDYixlQUFlLEVBQ2YsZUFBZSxHQUdoQixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7O0FBT3pCLE1BQU0sT0FBTyxlQUFlO0lBZWhCO0lBQ0E7SUFDQTtJQUNEO0lBQ21CO0lBbEI1QixZQUFZLENBQXFCO0lBQ2pDLFFBQVEsQ0FBTTtJQUNkLFVBQVUsQ0FBTTtJQUNoQixPQUFPLENBQU07SUFFYixjQUFjLENBQXNCO0lBQ3BDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFFQSxhQUFhLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQUM3QyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVuRCxrQkFBa0IsQ0FBYTtJQUUvQixZQUNVLHdCQUFrRCxFQUNsRCxFQUFxQixFQUNyQixTQUFvQixFQUNyQixNQUFvQixFQUNELE1BQWM7UUFKaEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRXhDLHlDQUF5QztRQUN6QyxpQ0FBaUM7UUFDakMsOENBQThDO1FBQzlDLHNEQUFzRDtJQUN4RCxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUN6QyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3hDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDUixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUMxQyxJQUFJLEtBQUssWUFBWSxlQUFlLEVBQUU7Z0JBQ3BDLHlCQUF5QjthQUMxQjtZQUNELElBQUksS0FBSyxZQUFZLGFBQWEsRUFBRTtnQkFDbEMseUJBQXlCO2dCQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3hCO1lBQ0QsSUFBSSxLQUFLLFlBQVksZUFBZSxFQUFFO2dCQUNwQyx5QkFBeUI7Z0JBQ3pCLHdCQUF3QjthQUN6QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGVBQWU7UUFDYixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBZTtRQUM5QiwwQkFBMEI7SUFDNUIsQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFlO1FBQzdCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsYUFBd0I7UUFDekMsTUFBTSxnQkFBZ0IsR0FDcEIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXZFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztRQUM5RCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUMsWUFBWSxHQUFHLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVU7UUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO0lBQ3hDLENBQUM7d0dBbkZVLGVBQWUsZ0pBbUJoQixRQUFROzRGQW5CUCxlQUFlLGtHQUtmLGtCQUFrQiw4RENsQy9CLG10QkEyQkE7OzRGREVhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsWUFBWTs7MEJBdUJuQixNQUFNOzJCQUFDLFFBQVE7NENBYmxCLGNBQWM7c0JBRGIsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIFR5cGUsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgVmlld0NoaWxkLFxuICBPbkRlc3Ryb3ksXG4gIENvbXBvbmVudFJlZixcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIE9uSW5pdCxcbiAgSW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEluc2VydGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vaW5zZXJ0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICcuL2RpYWxvZy1yZWYnO1xuaW1wb3J0IHsgRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi9kaWFsb2ctY29uZmlnJztcbmltcG9ydCB7XG4gIE5hdmlnYXRpb25FbmQsXG4gIE5hdmlnYXRpb25FcnJvcixcbiAgTmF2aWdhdGlvblN0YXJ0LFxuICBSb3V0ZXIsXG4gIFJPVVRFUl9DT05GSUdVUkFUSU9OLFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RpYWxvZy5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgY29tcG9uZW50UmVmITogQ29tcG9uZW50UmVmPGFueT47XG4gIHBvc2l0aW9uOiBhbnk7XG4gIGJhY2tncm91bmQ6IGFueTtcbiAgcG9pbnRlcjogYW55O1xuICBAVmlld0NoaWxkKEluc2VydGlvbkRpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSlcbiAgaW5zZXJ0aW9uUG9pbnQhOiBJbnNlcnRpb25EaXJlY3RpdmU7XG4gIGFuaW1hdGlvbiA9IHRydWU7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvbkRpYWxvZ0Nsb3NlID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBwdWJsaWMgb25DbG9zZSA9IHRoaXMub25EaWFsb2dDbG9zZS5hc09ic2VydmFibGUoKTtcblxuICBjaGlsZENvbXBvbmVudFR5cGUhOiBUeXBlPGFueT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGRpYWxvZ1JlZjogRGlhbG9nUmVmLFxuICAgIHB1YmxpYyBjb25maWc6IERpYWxvZ0NvbmZpZyxcbiAgICBASW5qZWN0KCdyb3V0ZXInKSBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge1xuICAgIC8vIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRSZWY7XG4gICAgLy8gdGhpcy5hbmltYXRlID0gICB0aGlzLmFuaW1hdGU7XG4gICAgLy8gdGhpcy5pbnNlcnRpb25Qb2ludCA9ICB0aGlzLmluc2VydGlvblBvaW50O1xuICAgIC8vIHRoaXMuY2hpbGRDb21wb25lbnRUeXBlID0gIHRoaXMuY2hpbGRDb21wb25lbnRUeXBlO1xuICB9XG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucG9zaXRpb24gPSB0aGlzLmNvbmZpZy5wb3NpdGlvbjtcbiAgICB0aGlzLmJhY2tncm91bmQgPSB0aGlzLmNvbmZpZy5iYWNrZ3JvdW5kO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XG4gICAgfSwgMjAwKTtcbiAgICB0aGlzLnJvdXRlQWN0aW9uKCk7XG4gIH1cblxuICByb3V0ZUFjdGlvbigpIHtcbiAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgLy8gU2hvdyBsb2FkaW5nIGluZGljYXRvclxuICAgICAgfVxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICAvLyBIaWRlIGxvYWRpbmcgaW5kaWNhdG9yXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRXJyb3IpIHtcbiAgICAgICAgLy8gSGlkZSBsb2FkaW5nIGluZGljYXRvclxuICAgICAgICAvLyBQcmVzZW50IGVycm9yIHRvIHVzZXJcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5sb2FkQ2hpbGRDb21wb25lbnQodGhpcy5jaGlsZENvbXBvbmVudFR5cGUpO1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25PdmVybGF5Q2xpY2tlZChldnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAvLyB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG5cbiAgb25EaWFsb2dDbGlja2VkKGV2dDogTW91c2VFdmVudCkge1xuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIGxvYWRDaGlsZENvbXBvbmVudChjb21wb25lbnRUeXBlOiBUeXBlPGFueT4pIHtcbiAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID1cbiAgICAgIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudFR5cGUpO1xuXG4gICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZiA9IHRoaXMuaW5zZXJ0aW9uUG9pbnQudmlld0NvbnRhaW5lclJlZjtcbiAgICB2aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG5cbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2UoZGF0YT86IGFueSkge1xuICAgIHRoaXMub25EaWFsb2dDbG9zZS5uZXh0KGRhdGEpO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJvdmVybGF5XCJcbiAgKGNsaWNrKT1cIm9uT3ZlcmxheUNsaWNrZWQoJGV2ZW50KVwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICB0b3A6IHBvc2l0aW9uID09PSAnVE9QJyxcbiAgICByaWdodDogcG9zaXRpb24gPT09ICdSSUdIVCcsXG4gICAgYm90dG9tOiBwb3NpdGlvbiA9PT0gJ0JPVFRPTScsXG4gICAgbGVmdDogcG9zaXRpb24gPT09ICdMRUZUJyxcbiAgICBjZW50ZXI6IHBvc2l0aW9uID09PSAnQ0VOVEVSJyxcbiAgICBibGFjazogYmFja2dyb3VuZCA9PT0gJ2JsYWNrJ1xuICB9XCIgW2NsYXNzLnBvaW50ZXItbm9uZV09XCJwb2ludGVyID09PSAnbm9uZSdcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJkaWFsb2dcIlxuICAgIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiXG4gICAgKGNsaWNrKT1cIm9uRGlhbG9nQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICB0b3A6IHBvc2l0aW9uID09PSAnVE9QJyxcbiAgICAgIHJpZ2h0OiBwb3NpdGlvbiA9PT0gJ1JJR0hUJyxcbiAgICAgIGJvdHRvbTogcG9zaXRpb24gPT09ICdCT1RUT00nLFxuICAgICAgbGVmdDogcG9zaXRpb24gPT09ICdMRUZUJyxcbiAgICAgIGNlbnRlcjogcG9zaXRpb24gPT09ICdDRU5URVInXG4gICAgfVwiXG4gID5cbiAgICA8bmctdGVtcGxhdGUgYXBwSW5zZXJ0aW9uPjwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi91aS1raXQvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L2RpYWxvZy9kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFHVCxTQUFTLEdBTVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQ0wsYUFBYSxFQUNiLGVBQWUsRUFDZixlQUFlLEdBRWhCLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7QUFPekIsTUFBTSxPQUFPLGVBQWU7SUFlaEI7SUFDQTtJQUNBO0lBQ0Q7SUFDQztJQWxCVixZQUFZLENBQXFCO0lBQ2pDLFFBQVEsQ0FBTTtJQUNkLFVBQVUsQ0FBTTtJQUNoQixPQUFPLENBQU07SUFFYixjQUFjLENBQXNCO0lBQ3BDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFFQSxhQUFhLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQUM3QyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVuRCxrQkFBa0IsQ0FBYTtJQUUvQixZQUNVLHdCQUFrRCxFQUNsRCxFQUFxQixFQUNyQixTQUFvQixFQUNyQixNQUFvQixFQUNuQixNQUFjO1FBSmQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUV0Qix5Q0FBeUM7UUFDekMsaUNBQWlDO1FBQ2pDLDhDQUE4QztRQUM5QyxzREFBc0Q7SUFDeEQsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDekMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN4QyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDMUMsSUFBSSxLQUFLLFlBQVksZUFBZSxFQUFFO2dCQUNwQyx5QkFBeUI7YUFDMUI7WUFDRCxJQUFJLEtBQUssWUFBWSxhQUFhLEVBQUU7Z0JBQ2xDLHlCQUF5QjtnQkFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUN4QjtZQUNELElBQUksS0FBSyxZQUFZLGVBQWUsRUFBRTtnQkFDcEMseUJBQXlCO2dCQUN6Qix3QkFBd0I7YUFDekI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEdBQWU7UUFDOUIsMEJBQTBCO0lBQzVCLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBZTtRQUM3QixHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGtCQUFrQixDQUFDLGFBQXdCO1FBQ3pDLE1BQU0sZ0JBQWdCLEdBQ3BCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV2RSxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUM7UUFDOUQsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFekIsSUFBSSxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFVO1FBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztJQUN4QyxDQUFDO3dHQW5GVSxlQUFlOzRGQUFmLGVBQWUsa0dBS2Ysa0JBQWtCLDhEQ2hDL0IsbXRCQTJCQTs7NEZEQWEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxZQUFZO3VOQVV0QixjQUFjO3NCQURiLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBUeXBlLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIFZpZXdDaGlsZCxcbiAgT25EZXN0cm95LFxuICBDb21wb25lbnRSZWYsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5zZXJ0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9pbnNlcnRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJy4vZGlhbG9nLXJlZic7XG5pbXBvcnQgeyBEaWFsb2dDb25maWcgfSBmcm9tICcuL2RpYWxvZy1jb25maWcnO1xuaW1wb3J0IHtcbiAgTmF2aWdhdGlvbkVuZCxcbiAgTmF2aWdhdGlvbkVycm9yLFxuICBOYXZpZ2F0aW9uU3RhcnQsXG4gIFJvdXRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kaWFsb2cuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIGNvbXBvbmVudFJlZiE6IENvbXBvbmVudFJlZjxhbnk+O1xuICBwb3NpdGlvbjogYW55O1xuICBiYWNrZ3JvdW5kOiBhbnk7XG4gIHBvaW50ZXI6IGFueTtcbiAgQFZpZXdDaGlsZChJbnNlcnRpb25EaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXG4gIGluc2VydGlvblBvaW50ITogSW5zZXJ0aW9uRGlyZWN0aXZlO1xuICBhbmltYXRpb24gPSB0cnVlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgb25EaWFsb2dDbG9zZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgcHVibGljIG9uQ2xvc2UgPSB0aGlzLm9uRGlhbG9nQ2xvc2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY2hpbGRDb21wb25lbnRUeXBlITogVHlwZTxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IERpYWxvZ1JlZixcbiAgICBwdWJsaWMgY29uZmlnOiBEaWFsb2dDb25maWcsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICAvLyB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50UmVmO1xuICAgIC8vIHRoaXMuYW5pbWF0ZSA9ICAgdGhpcy5hbmltYXRlO1xuICAgIC8vIHRoaXMuaW5zZXJ0aW9uUG9pbnQgPSAgdGhpcy5pbnNlcnRpb25Qb2ludDtcbiAgICAvLyB0aGlzLmNoaWxkQ29tcG9uZW50VHlwZSA9ICB0aGlzLmNoaWxkQ29tcG9uZW50VHlwZTtcbiAgfVxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnBvc2l0aW9uID0gdGhpcy5jb25maWcucG9zaXRpb247XG4gICAgdGhpcy5iYWNrZ3JvdW5kID0gdGhpcy5jb25maWcuYmFja2dyb3VuZDtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xuICAgIH0sIDIwMCk7XG4gICAgdGhpcy5yb3V0ZUFjdGlvbigpO1xuICB9XG5cbiAgcm91dGVBY3Rpb24oKSB7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgIC8vIFNob3cgbG9hZGluZyBpbmRpY2F0b3JcbiAgICAgIH1cbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgLy8gSGlkZSBsb2FkaW5nIGluZGljYXRvclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVycm9yKSB7XG4gICAgICAgIC8vIEhpZGUgbG9hZGluZyBpbmRpY2F0b3JcbiAgICAgICAgLy8gUHJlc2VudCBlcnJvciB0byB1c2VyXG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMubG9hZENoaWxkQ29tcG9uZW50KHRoaXMuY2hpbGRDb21wb25lbnRUeXBlKTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9uT3ZlcmxheUNsaWNrZWQoZXZ0OiBNb3VzZUV2ZW50KSB7XG4gICAgLy8gdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxuXG4gIG9uRGlhbG9nQ2xpY2tlZChldnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBsb2FkQ2hpbGRDb21wb25lbnQoY29tcG9uZW50VHlwZTogVHlwZTxhbnk+KSB7XG4gICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9XG4gICAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnRUeXBlKTtcblxuICAgIGNvbnN0IHZpZXdDb250YWluZXJSZWYgPSB0aGlzLmluc2VydGlvblBvaW50LnZpZXdDb250YWluZXJSZWY7XG4gICAgdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuXG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlKGRhdGE/OiBhbnkpIHtcbiAgICB0aGlzLm9uRGlhbG9nQ2xvc2UubmV4dChkYXRhKTtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2F1dG8nO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwib3ZlcmxheVwiXG4gIChjbGljayk9XCJvbk92ZXJsYXlDbGlja2VkKCRldmVudClcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgdG9wOiBwb3NpdGlvbiA9PT0gJ1RPUCcsXG4gICAgcmlnaHQ6IHBvc2l0aW9uID09PSAnUklHSFQnLFxuICAgIGJvdHRvbTogcG9zaXRpb24gPT09ICdCT1RUT00nLFxuICAgIGxlZnQ6IHBvc2l0aW9uID09PSAnTEVGVCcsXG4gICAgY2VudGVyOiBwb3NpdGlvbiA9PT0gJ0NFTlRFUicsXG4gICAgYmxhY2s6IGJhY2tncm91bmQgPT09ICdibGFjaydcbiAgfVwiIFtjbGFzcy5wb2ludGVyLW5vbmVdPVwicG9pbnRlciA9PT0gJ25vbmUnXCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZGlhbG9nXCJcbiAgICBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIlxuICAgIChjbGljayk9XCJvbkRpYWxvZ0NsaWNrZWQoJGV2ZW50KVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgdG9wOiBwb3NpdGlvbiA9PT0gJ1RPUCcsXG4gICAgICByaWdodDogcG9zaXRpb24gPT09ICdSSUdIVCcsXG4gICAgICBib3R0b206IHBvc2l0aW9uID09PSAnQk9UVE9NJyxcbiAgICAgIGxlZnQ6IHBvc2l0aW9uID09PSAnTEVGVCcsXG4gICAgICBjZW50ZXI6IHBvc2l0aW9uID09PSAnQ0VOVEVSJ1xuICAgIH1cIlxuICA+XG4gICAgPG5nLXRlbXBsYXRlIGFwcEluc2VydGlvbj48L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,24 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { TableLoaderComponent } from './table-loader/table-loader.component';
4
+ import * as i0 from "@angular/core";
5
+ export class LoadersModule {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoadersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: LoadersModule, declarations: [TableLoaderComponent], imports: [CommonModule], exports: [TableLoaderComponent] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoadersModule, imports: [CommonModule] });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoadersModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [
14
+ TableLoaderComponent
15
+ ],
16
+ imports: [
17
+ CommonModule
18
+ ],
19
+ exports: [
20
+ TableLoaderComponent
21
+ ]
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVycy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L2xvYWRlcnMvbG9hZGVycy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7O0FBZTdFLE1BQU0sT0FBTyxhQUFhO3dHQUFiLGFBQWE7eUdBQWIsYUFBYSxpQkFUdEIsb0JBQW9CLGFBR3BCLFlBQVksYUFHWixvQkFBb0I7eUdBR1gsYUFBYSxZQU50QixZQUFZOzs0RkFNSCxhQUFhO2tCQVh6QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixvQkFBb0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7cUJBQ3JCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUYWJsZUxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtbG9hZGVyL3RhYmxlLWxvYWRlci5jb21wb25lbnQnO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgVGFibGVMb2FkZXJDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVGFibGVMb2FkZXJDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2FkZXJzTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,18 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class TableLoaderComponent {
5
+ listSize = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
6
+ constructor() { }
7
+ ngOnInit() {
8
+ }
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableLoaderComponent, selector: "app-table-loader", inputs: { listSize: "listSize" }, ngImport: i0, template: "<div class=\"table\">\n <table class=\"table-loader\">\n <tbody>\n <tr *ngFor=\"let data of listSize\">\n <td class=\"serial\">\n <span class=\"serial\"></span>\n </td>\n <td class=\"name\" width=\"50%\">\n <span class=\"loader\"></span>\n </td>\n <td class=\"action\" width=\"50%\">\n <span class=\"loader\"></span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>", styles: [".table table.table-loader{width:100%;position:relative;border-collapse:separate;border-spacing:0 .1875rem;border:none;table-layout:auto}.table table.table-loader thead tr th{font-size:.6875rem;padding:.75rem .625rem;background:#f1f1f1;text-transform:uppercase;color:#747576;font-weight:600;line-height:1.0625rem;text-align:left;position:sticky;top:.1875rem;font-weight:400;white-space:nowrap;z-index:2}.table table.table-loader thead tr th:before{height:.3125rem;content:\"\";position:absolute;top:-.1875rem;right:0;left:0;background:#f1f1f1;z-index:1}.table table.table-loader thead tr th:first-child{border-radius:2px 0 0;text-align:center;width:2.75rem}.table table.table-loader thead tr th:last-child{border-radius:0 2px 0 0}.table table.table-loader thead tr th:last-child:before{border-radius:0 2px 0 0}.table table.table-loader tbody tr{margin-bottom:.1875rem;table-layout:auto;position:relative;transition:all .2s ease-in-out}.table table.table-loader tbody tr td{background:#fff;padding:0 .5rem;height:3.125rem;max-width:15.625rem;border:none;width:50%;table-layout:auto}.table table.table-loader tbody tr td.serial{width:2rem}.table table.table-loader tbody tr td span.serial{width:1rem;margin:0;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;display:flex;align-items:center;justify-content:center;height:3.125rem;font-weight:500}.table table.table-loader tbody tr td span.loader{display:block;width:100%;height:.75rem;border-radius:.75rem;background:#f3f3f3}.table table.table-loader tbody tr td.name{width:calc(100% - 31.25rem);padding-left:0}.table table.table-loader tbody tr td:first-child{border-radius:2px 0 0 2px}.table table.table-loader tbody tr td:last-child{text-align:right;border-radius:0 2px 2px 0}.table table.table-loader tbody tr td:last-child .loader{border-radius:.5rem;width:1.5rem;float:right}.table table.table-loader tbody tr:hover{box-shadow:0 0 15px #1e5dd359;z-index:2}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableLoaderComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ selector: 'app-table-loader', template: "<div class=\"table\">\n <table class=\"table-loader\">\n <tbody>\n <tr *ngFor=\"let data of listSize\">\n <td class=\"serial\">\n <span class=\"serial\"></span>\n </td>\n <td class=\"name\" width=\"50%\">\n <span class=\"loader\"></span>\n </td>\n <td class=\"action\" width=\"50%\">\n <span class=\"loader\"></span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>", styles: [".table table.table-loader{width:100%;position:relative;border-collapse:separate;border-spacing:0 .1875rem;border:none;table-layout:auto}.table table.table-loader thead tr th{font-size:.6875rem;padding:.75rem .625rem;background:#f1f1f1;text-transform:uppercase;color:#747576;font-weight:600;line-height:1.0625rem;text-align:left;position:sticky;top:.1875rem;font-weight:400;white-space:nowrap;z-index:2}.table table.table-loader thead tr th:before{height:.3125rem;content:\"\";position:absolute;top:-.1875rem;right:0;left:0;background:#f1f1f1;z-index:1}.table table.table-loader thead tr th:first-child{border-radius:2px 0 0;text-align:center;width:2.75rem}.table table.table-loader thead tr th:last-child{border-radius:0 2px 0 0}.table table.table-loader thead tr th:last-child:before{border-radius:0 2px 0 0}.table table.table-loader tbody tr{margin-bottom:.1875rem;table-layout:auto;position:relative;transition:all .2s ease-in-out}.table table.table-loader tbody tr td{background:#fff;padding:0 .5rem;height:3.125rem;max-width:15.625rem;border:none;width:50%;table-layout:auto}.table table.table-loader tbody tr td.serial{width:2rem}.table table.table-loader tbody tr td span.serial{width:1rem;margin:0;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;display:flex;align-items:center;justify-content:center;height:3.125rem;font-weight:500}.table table.table-loader tbody tr td span.loader{display:block;width:100%;height:.75rem;border-radius:.75rem;background:#f3f3f3}.table table.table-loader tbody tr td.name{width:calc(100% - 31.25rem);padding-left:0}.table table.table-loader tbody tr td:first-child{border-radius:2px 0 0 2px}.table table.table-loader tbody tr td:last-child{text-align:right;border-radius:0 2px 2px 0}.table table.table-loader tbody tr td:last-child .loader{border-radius:.5rem;width:1.5rem;float:right}.table table.table-loader tbody tr:hover{box-shadow:0 0 15px #1e5dd359;z-index:2}\n"] }]
15
+ }], ctorParameters: function () { return []; }, propDecorators: { listSize: [{
16
+ type: Input
17
+ }] } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi91aS1raXQvbG9hZGVycy90YWJsZS1sb2FkZXIvdGFibGUtbG9hZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi91aS1raXQvbG9hZGVycy90YWJsZS1sb2FkZXIvdGFibGUtbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFPekQsTUFBTSxPQUFPLG9CQUFvQjtJQUV0QixRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU1RCxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzt3R0FQVSxvQkFBb0I7NEZBQXBCLG9CQUFvQiwwRkNQakMseWlCQWdCTTs7NEZEVE8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjswRUFNbkIsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGFibGUtbG9hZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWxvYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLWxvYWRlci5jb21wb25lbnQubGVzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlTG9hZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBsaXN0U2l6ZSA9IFsxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxXTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0YWJsZVwiPlxuICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlLWxvYWRlclwiPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGRhdGEgb2YgbGlzdFNpemVcIj5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJzZXJpYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXJpYWxcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJuYW1lXCIgd2lkdGg9XCI1MCVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsb2FkZXJcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhY3Rpb25cIiB3aWR0aD1cIjUwJVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxvYWRlclwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuPC9kaXY+Il19