@colijnit/sharedcomponents 1.0.70 → 254.1.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 (74) hide show
  1. package/3rdpartylicenses.txt +205 -0
  2. package/bundles/colijnit-sharedcomponents.umd.js +609 -153
  3. package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
  4. package/colijnit-sharedcomponents.d.ts +2 -0
  5. package/colijnit-sharedcomponents.metadata.json +1 -1
  6. package/esm2015/colijnit-sharedcomponents.js +3 -1
  7. package/esm2015/lib/businessobject/co-document-right.bo.js +1 -1
  8. package/esm2015/lib/components/activity-overview-component/component-activity-overview.component.js +8 -7
  9. package/esm2015/lib/components/activity-overview-component/components/base-activity-overview.component.js +15 -21
  10. package/esm2015/lib/components/image-display/image-display.component.js +7 -7
  11. package/esm2015/lib/components/modify-task-form/components/base-activity-summary.component.js +8 -10
  12. package/esm2015/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.component.js +2 -2
  13. package/esm2015/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.component.js +5 -5
  14. package/esm2015/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.component.js +2 -2
  15. package/esm2015/lib/components/modify-task-form/components/status-summary-block/status-summary-block.component.js +7 -4
  16. package/esm2015/lib/components/modify-task-form/components/task-details/task-details.component.js +7 -4
  17. package/esm2015/lib/components/modify-task-form/modify-task-form.component.js +39 -13
  18. package/esm2015/lib/components/modify-task-form/modify-task-form.module.js +10 -3
  19. package/esm2015/lib/components/open-activity-list/component-activity-list.component.js +42 -57
  20. package/esm2015/lib/components/open-activity-list/components/base-open-activity-list.component.js +5 -3
  21. package/esm2015/lib/components/simple-tags/simple-tags.component.js +5 -147
  22. package/esm2015/lib/components/simple-tags/simple-tags.module.js +4 -2
  23. package/esm2015/lib/components/simple-tags-form/simple-tags-form.component.js +196 -0
  24. package/esm2015/lib/components/simple-tags-form/simple-tags-form.module.js +26 -0
  25. package/esm2015/lib/components/task-modifyer/task-modifier.component.js +9 -9
  26. package/esm2015/lib/components/workflow-info-tiles/components/workflow-info-tile.component.js +45 -0
  27. package/esm2015/lib/components/workflow-info-tiles/components/workflow-info-tile.module.js +22 -0
  28. package/esm2015/lib/components/workflow-info-tiles/workflow-info-tiles.component.js +55 -0
  29. package/esm2015/lib/components/workflow-info-tiles/workflow-info-tiles.module.js +22 -0
  30. package/esm2015/lib/interface/operation-callback-simple-function.js +1 -1
  31. package/esm2015/lib/service/shared-connector.service.js +93 -1
  32. package/esm2015/lib/service/shared.service.js +44 -1
  33. package/esm2015/public-api.js +5 -1
  34. package/fesm2015/colijnit-sharedcomponents.js +571 -224
  35. package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
  36. package/index.html +2 -2
  37. package/lib/components/activity-overview-component/component-activity-overview.component.d.ts +3 -1
  38. package/lib/components/activity-overview-component/components/base-activity-overview.component.d.ts +3 -8
  39. package/lib/components/modify-task-form/components/base-activity-summary.component.d.ts +3 -4
  40. package/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.component.d.ts +2 -2
  41. package/lib/components/modify-task-form/components/status-summary-block/status-summary-block.component.d.ts +3 -1
  42. package/lib/components/modify-task-form/components/task-details/task-details.component.d.ts +3 -1
  43. package/lib/components/modify-task-form/modify-task-form.component.d.ts +9 -4
  44. package/lib/components/modify-task-form/style/_layout.scss +4 -0
  45. package/lib/components/open-activity-list/component-activity-list.component.d.ts +9 -11
  46. package/lib/components/open-activity-list/components/base-open-activity-list.component.d.ts +2 -0
  47. package/lib/components/simple-tags/simple-tags.component.d.ts +1 -8
  48. package/lib/components/simple-tags-form/simple-tags-form.component.d.ts +29 -0
  49. package/lib/components/simple-tags-form/simple-tags-form.module.d.ts +2 -0
  50. package/lib/components/simple-tags-form/style/_layout.scss +257 -0
  51. package/lib/components/simple-tags-form/style/_material-definition.scss +39 -0
  52. package/lib/components/simple-tags-form/style/_theme.scss +4 -0
  53. package/lib/components/simple-tags-form/style/material.scss +4 -0
  54. package/lib/components/task-modifyer/task-modifier.component.d.ts +3 -5
  55. package/lib/components/workflow-info-tiles/components/style/_layout.scss +49 -0
  56. package/lib/components/workflow-info-tiles/components/style/_material-definition.scss +0 -0
  57. package/lib/components/workflow-info-tiles/components/style/_theme.scss +4 -0
  58. package/lib/components/workflow-info-tiles/components/style/material.scss +4 -0
  59. package/lib/components/workflow-info-tiles/components/workflow-info-tile.component.d.ts +15 -0
  60. package/lib/components/workflow-info-tiles/components/workflow-info-tile.module.d.ts +2 -0
  61. package/lib/components/workflow-info-tiles/style/_layout.scss +16 -0
  62. package/lib/components/workflow-info-tiles/style/_material-definition.scss +0 -0
  63. package/lib/components/workflow-info-tiles/style/_theme.scss +4 -0
  64. package/lib/components/workflow-info-tiles/style/material.scss +4 -0
  65. package/lib/components/workflow-info-tiles/workflow-info-tiles.component.d.ts +21 -0
  66. package/lib/components/workflow-info-tiles/workflow-info-tiles.module.d.ts +2 -0
  67. package/lib/service/shared-connector.service.d.ts +10 -0
  68. package/lib/service/shared.service.d.ts +12 -0
  69. package/main.894c3ac9caba556953e2.js +1 -0
  70. package/package.json +6 -5
  71. package/public-api.d.ts +4 -0
  72. package/styles.b92683eab3a233f3fb51.css +1 -0
  73. package/main.36b466467ac98ce720f9.js +0 -1
  74. package/styles.6375d1d30814ecba5d0c.css +0 -1
@@ -0,0 +1,196 @@
1
+ import { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from "@angular/core";
2
+ import { IconCacheService } from "../../service/icon-cache.service";
3
+ import { Icon } from "../../enum/icon.enum";
4
+ import { SharedService } from "../../service/shared.service";
5
+ export class SimpleTagsFormComponent {
6
+ constructor(iconCacheService, sharedService) {
7
+ this.iconCacheService = iconCacheService;
8
+ this.sharedService = sharedService;
9
+ this.icon = Icon;
10
+ this.linkedTagsChange = new EventEmitter();
11
+ this.breadCrumbs = [];
12
+ this.displayTags = [];
13
+ this.searchString = '';
14
+ this._tags = [];
15
+ this._linkedTags = [];
16
+ }
17
+ set tags(tags) {
18
+ this._tags = tags;
19
+ this.setRootDisplayTags();
20
+ }
21
+ set linkedTags(tags) {
22
+ this._linkedTags = tags;
23
+ tags.forEach((tag) => this._loadThumbnail(tag));
24
+ }
25
+ get linkedTags() {
26
+ return this._linkedTags;
27
+ }
28
+ showClass() {
29
+ return true;
30
+ }
31
+ setRootDisplayTags() {
32
+ this.displayTags = this._tags.filter((tag) => tag.treeLevel === 0);
33
+ this.breadCrumbs = [];
34
+ this.searchString = '';
35
+ }
36
+ handleTagSelected(selectedTag) {
37
+ if (selectedTag.tagType === 'TR' || selectedTag.tagType === 'TG') {
38
+ if (selectedTag !== this.breadCrumbs[0]) {
39
+ this.breadCrumbs.push(selectedTag);
40
+ }
41
+ this.displayTags = this._tags.filter((tag) => {
42
+ return tag.parentId === selectedTag.id && tag.treeLevel === selectedTag.treeLevel + 1;
43
+ });
44
+ }
45
+ }
46
+ handleCrumbClicked(tag, index) {
47
+ if (tag !== this.breadCrumbs[this.breadCrumbs.length - 1]) {
48
+ this.breadCrumbs.splice(index + 1);
49
+ this.handleTagSelected(tag);
50
+ }
51
+ }
52
+ handleAddTag(event) {
53
+ const draggedTag = this.displayTags[event.previousIndex];
54
+ if (!this._linkedTags.includes(draggedTag)) {
55
+ this._linkedTags.push(this.displayTags[event.previousIndex]);
56
+ this._loadThumbnail(draggedTag);
57
+ }
58
+ }
59
+ deleteLinkedTag(tag) {
60
+ this._linkedTags.splice(this._linkedTags.indexOf(tag), 1);
61
+ }
62
+ searchCollection() {
63
+ if (!this.searchString) {
64
+ this.searchString = '';
65
+ this.setRootDisplayTags();
66
+ return;
67
+ }
68
+ if (this.searchString.length < 2) {
69
+ return;
70
+ }
71
+ if (this.searchString === '') {
72
+ this.setRootDisplayTags();
73
+ return;
74
+ }
75
+ const matchingObjects = [];
76
+ this._tags.filter((item) => item.tagType === 'T').forEach((obj) => {
77
+ Object.values(obj).forEach((value) => {
78
+ if (typeof value === 'string' || typeof value === 'number') {
79
+ const stringValue = String(value).toLowerCase();
80
+ if (stringValue.includes(this.searchString.toLowerCase())) {
81
+ matchingObjects.push(obj);
82
+ }
83
+ }
84
+ });
85
+ });
86
+ this.displayTags = matchingObjects;
87
+ this.breadCrumbs = [];
88
+ }
89
+ _loadThumbnail(tagTreeItem) {
90
+ if (tagTreeItem.image && tagTreeItem.image.documentId && !tagTreeItem.image.thumbnailBody) {
91
+ this.sharedService.getDocumentContent(tagTreeItem.image.documentId, true)
92
+ .then((result) => {
93
+ if (result) {
94
+ tagTreeItem.image.thumbnailBody = result;
95
+ }
96
+ });
97
+ }
98
+ }
99
+ }
100
+ SimpleTagsFormComponent.decorators = [
101
+ { type: Component, args: [{
102
+ selector: "co-simple-tags-form",
103
+ template: `
104
+ <div class="form-content-wrapper">
105
+ <div class="collection-navigation co-small-scrollbar">
106
+ <span class="title" [textContent]="'Beschikbare tags'"></span>
107
+ <co-input-search
108
+ [(model)]="searchString"
109
+ [placeholder]="'Search for tag name'"
110
+ (search)="searchCollection()"
111
+ (modelChange)="searchCollection()"
112
+ (rightIconClick)="searchCollection()"
113
+ ></co-input-search>
114
+ <div class="breadcrumbs">
115
+ <co-icon
116
+ [iconData]="iconCacheService.getIcon(icon.HouseBlankRegular)"
117
+ (click)="setRootDisplayTags()"
118
+ ></co-icon>
119
+ <div class="crumbs">
120
+ <span class="spacer" [textContent]="'|'"></span>
121
+ <div class="crumb" *ngFor="let crumb of breadCrumbs; let index = index" (click)="handleCrumbClicked(crumb, index)">
122
+ <span class="spacer" *ngIf="index !== 0" [textContent]="'/'"></span>
123
+ <span [textContent]="crumb.description"></span>
124
+ </div>
125
+ </div>
126
+ </div>
127
+ <div class="collection-view"
128
+ cdkDropList
129
+ cdkDropListSortingDisabled
130
+ #collectionList="cdkDropList"
131
+ [cdkDropListData]="displayTags"
132
+ [cdkDropListConnectedTo]="[linkedList]">
133
+ <div class="collection-item"
134
+ *ngFor="let tag of displayTags"
135
+ cdkDrag
136
+ [cdkDragDisabled]="tag.tagType !== 'T' || linkedTags.includes(tag)"
137
+ [class.draggable]="tag.tagType === 'T' && !linkedTags.includes(tag)"
138
+ [class.disabled]="linkedTags.includes(tag)"
139
+ (click)="handleTagSelected(tag)">
140
+
141
+ <div class="collection-item" *cdkDragPlaceholder>
142
+ <co-icon *ngIf="tag.tagType === 'T'" [iconData]="iconCacheService.getIcon(icon.TagRegular)"></co-icon>
143
+ <span [textContent]="tag.description"></span>
144
+ </div>
145
+
146
+ <div *cdkDragPreview><co-icon [iconData]="iconCacheService.getIcon(icon.TagRegular)"></co-icon></div>
147
+
148
+ <co-icon *ngIf="tag.tagType === 'T'" [iconData]="iconCacheService.getIcon(icon.TagRegular)"></co-icon>
149
+ <span [textContent]="tag.description"></span>
150
+ </div>
151
+ </div>
152
+ </div>
153
+
154
+ <div class="linked-tags-view">
155
+ <span class="title" [textContent]="'Gekoppelde tags'"></span>
156
+ <div class="view-wrapper"
157
+ cdkDropList
158
+ #linkedList="cdkDropList"
159
+ [cdkDropListData]="linkedTags"
160
+ (cdkDropListDropped)="handleAddTag($event)">
161
+ <div class="tag-item" *ngFor="let tag of linkedTags" [cdkDragDisabled]="true" cdkDrag [style.background-color]="tag.color?.replace('0x', '#')">
162
+ <div class="placeholderLinked" *cdkDragPlaceholder></div>
163
+
164
+ <div class="thumbnail-description">
165
+ <co-icon *ngIf="!tag.image?.thumbnailBody" [iconData]="iconCacheService.getIcon(icon.TagRegular)"></co-icon>
166
+ <div *ngIf="tag.image" class="thumbnail-wrapper">
167
+ <img [src]="tag.image.thumbnailBodyAsDataUri">
168
+ </div>
169
+
170
+ <div class="description-wrapper">
171
+ <span [textContent]="tag.parentDescription"></span>
172
+ <span class="description" [textContent]="tag.description"></span>
173
+ </div>
174
+ </div>
175
+ <co-icon class="delete-tag" (click)="deleteLinkedTag(tag)"
176
+ [iconData]="iconCacheService.getIcon(icon.XSolid)"
177
+ ></co-icon>
178
+ </div>
179
+ </div>
180
+ </div>
181
+ </div>
182
+ `,
183
+ encapsulation: ViewEncapsulation.None
184
+ },] }
185
+ ];
186
+ SimpleTagsFormComponent.ctorParameters = () => [
187
+ { type: IconCacheService },
188
+ { type: SharedService }
189
+ ];
190
+ SimpleTagsFormComponent.propDecorators = {
191
+ tags: [{ type: Input }],
192
+ linkedTags: [{ type: Input }],
193
+ linkedTagsChange: [{ type: Output }],
194
+ showClass: [{ type: HostBinding, args: ["class.co-simple-tags-form",] }]
195
+ };
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXRhZ3MtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zaW1wbGUtdGFncy1mb3JtL3NpbXBsZS10YWdzLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUUxQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUF1RjNELE1BQU0sT0FBTyx1QkFBdUI7SUFrQ2xDLFlBQ1MsZ0JBQWtDLEVBQ2xDLGFBQTRCO1FBRDVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFuQ3JCLFNBQUksR0FBZ0IsSUFBSSxDQUFDO1FBbUJ6QixxQkFBZ0IsR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFFM0YsZ0JBQVcsR0FBa0IsRUFBRSxDQUFDO1FBQ2hDLGdCQUFXLEdBQWtCLEVBQUUsQ0FBQztRQUNoQyxpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUV6QixVQUFLLEdBQWtCLEVBQUUsQ0FBQztRQUMxQixnQkFBVyxHQUFrQixFQUFFLENBQUM7SUFVcEMsQ0FBQztJQWxDTCxJQUNXLElBQUksQ0FBQyxJQUFtQjtRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFDVyxVQUFVLENBQUMsSUFB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QUFhLEdBQUcsTUFBTSxDQUFDO2lCQUMxQztZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDOzs7WUF2TUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStFVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBekZPLGdCQUFnQjtZQUdoQixhQUFhOzs7bUJBMEZsQixLQUFLO3lCQU1MLEtBQUs7K0JBVUwsTUFBTTt3QkFVTixXQUFXLFNBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0Nka0RyYWdEcm9wfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RyYWctZHJvcFwiO1xyXG5pbXBvcnQge1NoYXJlZFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3NoYXJlZC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VGFnVHJlZUl0ZW19IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC90YWctdHJlZS1pdGVtLmJvXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1zaW1wbGUtdGFncy1mb3JtXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRlbnQtd3JhcHBlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sbGVjdGlvbi1uYXZpZ2F0aW9uIGNvLXNtYWxsLXNjcm9sbGJhclwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIiBbdGV4dENvbnRlbnRdPVwiJ0Jlc2NoaWtiYXJlIHRhZ3MnXCI+PC9zcGFuPlxyXG4gICAgICAgIDxjby1pbnB1dC1zZWFyY2hcclxuICAgICAgICAgIFsobW9kZWwpXT1cInNlYXJjaFN0cmluZ1wiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlYXJjaCBmb3IgdGFnIG5hbWUnXCJcclxuICAgICAgICAgIChzZWFyY2gpPVwic2VhcmNoQ29sbGVjdGlvbigpXCJcclxuICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJzZWFyY2hDb2xsZWN0aW9uKClcIlxyXG4gICAgICAgICAgKHJpZ2h0SWNvbkNsaWNrKT1cInNlYXJjaENvbGxlY3Rpb24oKVwiXHJcbiAgICAgICAgPjwvY28taW5wdXQtc2VhcmNoPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJicmVhZGNydW1ic1wiPlxyXG4gICAgICAgICAgPGNvLWljb25cclxuICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29uLkhvdXNlQmxhbmtSZWd1bGFyKVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRSb290RGlzcGxheVRhZ3MoKVwiXHJcbiAgICAgICAgICA+PC9jby1pY29uPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNydW1ic1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNwYWNlclwiIFt0ZXh0Q29udGVudF09XCInfCdcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcnVtYlwiICpuZ0Zvcj1cImxldCBjcnVtYiBvZiBicmVhZENydW1iczsgbGV0IGluZGV4ID0gaW5kZXhcIiAoY2xpY2spPVwiaGFuZGxlQ3J1bWJDbGlja2VkKGNydW1iLCBpbmRleClcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNwYWNlclwiICpuZ0lmPVwiaW5kZXggIT09IDBcIiBbdGV4dENvbnRlbnRdPVwiJy8nXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJjcnVtYi5kZXNjcmlwdGlvblwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGVjdGlvbi12aWV3XCJcclxuICAgICAgICAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgICAgICAgICBjZGtEcm9wTGlzdFNvcnRpbmdEaXNhYmxlZFxyXG4gICAgICAgICAgICAgI2NvbGxlY3Rpb25MaXN0PVwiY2RrRHJvcExpc3RcIlxyXG4gICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJkaXNwbGF5VGFnc1wiXHJcbiAgICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbbGlua2VkTGlzdF1cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsZWN0aW9uLWl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHRhZyBvZiBkaXNwbGF5VGFnc1wiXHJcbiAgICAgICAgICAgICAgICBjZGtEcmFnXHJcbiAgICAgICAgICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cInRhZy50YWdUeXBlICE9PSAnVCcgfHwgbGlua2VkVGFncy5pbmNsdWRlcyh0YWcpXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5kcmFnZ2FibGVdPVwidGFnLnRhZ1R5cGUgPT09ICdUJyAmJiAhbGlua2VkVGFncy5pbmNsdWRlcyh0YWcpXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJsaW5rZWRUYWdzLmluY2x1ZGVzKHRhZylcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVRhZ1NlbGVjdGVkKHRhZylcIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsZWN0aW9uLWl0ZW1cIiAqY2RrRHJhZ1BsYWNlaG9sZGVyPlxyXG4gICAgICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwidGFnLnRhZ1R5cGUgPT09ICdUJ1wiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbi5UYWdSZWd1bGFyKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwidGFnLmRlc2NyaXB0aW9uXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgKmNka0RyYWdQcmV2aWV3Pjxjby1pY29uIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbi5UYWdSZWd1bGFyKVwiPjwvY28taWNvbj48L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwidGFnLnRhZ1R5cGUgPT09ICdUJ1wiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbi5UYWdSZWd1bGFyKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInRhZy5kZXNjcmlwdGlvblwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsaW5rZWQtdGFncy12aWV3XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiIFt0ZXh0Q29udGVudF09XCInR2Vrb3BwZWxkZSB0YWdzJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidmlldy13cmFwcGVyXCJcclxuICAgICAgICAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgICAgICAgICAjbGlua2VkTGlzdD1cImNka0Ryb3BMaXN0XCJcclxuICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwibGlua2VkVGFnc1wiXHJcbiAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImhhbmRsZUFkZFRhZygkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFnLWl0ZW1cIiAqbmdGb3I9XCJsZXQgdGFnIG9mIGxpbmtlZFRhZ3NcIiBbY2RrRHJhZ0Rpc2FibGVkXT1cInRydWVcIiBjZGtEcmFnIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cInRhZy5jb2xvcj8ucmVwbGFjZSgnMHgnLCAnIycpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFjZWhvbGRlckxpbmtlZFwiICpjZGtEcmFnUGxhY2Vob2xkZXI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGh1bWJuYWlsLWRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWljb24gKm5nSWY9XCIhdGFnLmltYWdlPy50aHVtYm5haWxCb2R5XCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29uLlRhZ1JlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0YWcuaW1hZ2VcIiBjbGFzcz1cInRodW1ibmFpbC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwidGFnLmltYWdlLnRodW1ibmFpbEJvZHlBc0RhdGFVcmlcIj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJ0YWcucGFyZW50RGVzY3JpcHRpb25cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cInRhZy5kZXNjcmlwdGlvblwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwiZGVsZXRlLXRhZ1wiIChjbGljayk9XCJkZWxldGVMaW5rZWRUYWcodGFnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbi5YU29saWQpXCJcclxuICAgICAgICAgICAgPjwvY28taWNvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2ltcGxlVGFnc0Zvcm1Db21wb25lbnQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCB0YWdzKHRhZ3M6IFRhZ1RyZWVJdGVtW10pIHtcclxuICAgIHRoaXMuX3RhZ3MgPSB0YWdzO1xyXG4gICAgdGhpcy5zZXRSb290RGlzcGxheVRhZ3MoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBsaW5rZWRUYWdzKHRhZ3M6IFRhZ1RyZWVJdGVtW10pIHtcclxuICAgIHRoaXMuX2xpbmtlZFRhZ3MgPSB0YWdzO1xyXG4gICAgdGFncy5mb3JFYWNoKCh0YWcpID0+IHRoaXMuX2xvYWRUaHVtYm5haWwodGFnKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGxpbmtlZFRhZ3MoKTogVGFnVHJlZUl0ZW1bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGlua2VkVGFncztcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBsaW5rZWRUYWdzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8VGFnVHJlZUl0ZW1bXT4gPSBuZXcgRXZlbnRFbWl0dGVyPFRhZ1RyZWVJdGVtW10+KCk7XHJcblxyXG4gIHB1YmxpYyBicmVhZENydW1iczogVGFnVHJlZUl0ZW1bXSA9IFtdO1xyXG4gIHB1YmxpYyBkaXNwbGF5VGFnczogVGFnVHJlZUl0ZW1bXSA9IFtdO1xyXG4gIHB1YmxpYyBzZWFyY2hTdHJpbmc6IHN0cmluZyA9ICcnO1xyXG5cclxuICBwcml2YXRlIF90YWdzOiBUYWdUcmVlSXRlbVtdID0gW107XHJcbiAgcHJpdmF0ZSBfbGlua2VkVGFnczogVGFnVHJlZUl0ZW1bXSA9IFtdO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1zaW1wbGUtdGFncy1mb3JtXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHB1YmxpYyBzaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlLFxyXG4gICkgeyB9XHJcblxyXG4gIHB1YmxpYyBzZXRSb290RGlzcGxheVRhZ3MoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc3BsYXlUYWdzID0gdGhpcy5fdGFncy5maWx0ZXIoKHRhZzogVGFnVHJlZUl0ZW0pID0+IHRhZy50cmVlTGV2ZWwgPT09IDApO1xyXG4gICAgdGhpcy5icmVhZENydW1icyA9IFtdO1xyXG4gICAgdGhpcy5zZWFyY2hTdHJpbmcgPSAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVUYWdTZWxlY3RlZChzZWxlY3RlZFRhZzogVGFnVHJlZUl0ZW0pOiB2b2lkIHtcclxuICAgIGlmIChzZWxlY3RlZFRhZy50YWdUeXBlID09PSAnVFInIHx8IHNlbGVjdGVkVGFnLnRhZ1R5cGUgPT09ICdURycpIHtcclxuICAgICAgaWYgKHNlbGVjdGVkVGFnICE9PSB0aGlzLmJyZWFkQ3J1bWJzWzBdKSB7XHJcbiAgICAgICAgdGhpcy5icmVhZENydW1icy5wdXNoKHNlbGVjdGVkVGFnKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRpc3BsYXlUYWdzID0gdGhpcy5fdGFncy5maWx0ZXIoKHRhZzogVGFnVHJlZUl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gdGFnLnBhcmVudElkID09PSBzZWxlY3RlZFRhZy5pZCAmJiB0YWcudHJlZUxldmVsID09PSBzZWxlY3RlZFRhZy50cmVlTGV2ZWwgKyAxXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNydW1iQ2xpY2tlZCh0YWc6IFRhZ1RyZWVJdGVtLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAodGFnICE9PSB0aGlzLmJyZWFkQ3J1bWJzW3RoaXMuYnJlYWRDcnVtYnMubGVuZ3RoIC0gMV0pIHtcclxuICAgICAgdGhpcy5icmVhZENydW1icy5zcGxpY2UoaW5kZXggKyAxKTtcclxuICAgICAgdGhpcy5oYW5kbGVUYWdTZWxlY3RlZCh0YWcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUFkZFRhZyhldmVudDogQ2RrRHJhZ0Ryb3A8VGFnVHJlZUl0ZW1bXSwgYW55Pik6IHZvaWQge1xyXG4gICAgY29uc3QgZHJhZ2dlZFRhZzogVGFnVHJlZUl0ZW0gPSB0aGlzLmRpc3BsYXlUYWdzW2V2ZW50LnByZXZpb3VzSW5kZXhdO1xyXG4gICAgaWYgKCF0aGlzLl9saW5rZWRUYWdzLmluY2x1ZGVzKGRyYWdnZWRUYWcpKSB7XHJcbiAgICAgIHRoaXMuX2xpbmtlZFRhZ3MucHVzaCh0aGlzLmRpc3BsYXlUYWdzW2V2ZW50LnByZXZpb3VzSW5kZXhdKTtcclxuICAgICAgdGhpcy5fbG9hZFRodW1ibmFpbChkcmFnZ2VkVGFnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZWxldGVMaW5rZWRUYWcodGFnOiBUYWdUcmVlSXRlbSk6IHZvaWQge1xyXG4gICAgdGhpcy5fbGlua2VkVGFncy5zcGxpY2UodGhpcy5fbGlua2VkVGFncy5pbmRleE9mKHRhZyksIDEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlYXJjaENvbGxlY3Rpb24oKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuc2VhcmNoU3RyaW5nKSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoU3RyaW5nID0gJyc7XHJcbiAgICAgIHRoaXMuc2V0Um9vdERpc3BsYXlUYWdzKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlYXJjaFN0cmluZy5sZW5ndGggPCAyKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlYXJjaFN0cmluZyA9PT0gJycpIHtcclxuICAgICAgdGhpcy5zZXRSb290RGlzcGxheVRhZ3MoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1hdGNoaW5nT2JqZWN0czogVGFnVHJlZUl0ZW1bXSA9IFtdO1xyXG5cclxuICAgIHRoaXMuX3RhZ3MuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnRhZ1R5cGUgPT09ICdUJykuZm9yRWFjaCgob2JqKSA9PiB7XHJcbiAgICAgIE9iamVjdC52YWx1ZXMob2JqKS5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgIGNvbnN0IHN0cmluZ1ZhbHVlID0gU3RyaW5nKHZhbHVlKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgaWYgKHN0cmluZ1ZhbHVlLmluY2x1ZGVzKHRoaXMuc2VhcmNoU3RyaW5nLnRvTG93ZXJDYXNlKCkpKSB7XHJcbiAgICAgICAgICAgIG1hdGNoaW5nT2JqZWN0cy5wdXNoKG9iaik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZGlzcGxheVRhZ3MgPSBtYXRjaGluZ09iamVjdHM7XHJcbiAgICB0aGlzLmJyZWFkQ3J1bWJzID0gW107XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9sb2FkVGh1bWJuYWlsKHRhZ1RyZWVJdGVtOiBUYWdUcmVlSXRlbSk6IHZvaWQge1xyXG4gICAgaWYgKHRhZ1RyZWVJdGVtLmltYWdlICYmIHRhZ1RyZWVJdGVtLmltYWdlLmRvY3VtZW50SWQgJiYgIXRhZ1RyZWVJdGVtLmltYWdlLnRodW1ibmFpbEJvZHkpIHtcclxuICAgICAgdGhpcy5zaGFyZWRTZXJ2aWNlLmdldERvY3VtZW50Q29udGVudCh0YWdUcmVlSXRlbS5pbWFnZS5kb2N1bWVudElkLCB0cnVlKVxyXG4gICAgICAgIC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgdGFnVHJlZUl0ZW0uaW1hZ2UudGh1bWJuYWlsQm9keSA9IHJlc3VsdDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,26 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { SimpleTagsFormComponent } from "./simple-tags-form.component";
4
+ import { ButtonModule, CoDialogModule, IconModule, InputSearchModule } from "@colijnit/corecomponents_v12";
5
+ import { DragDropModule } from "@angular/cdk/drag-drop";
6
+ export class SimpleTagsFormModule {
7
+ }
8
+ SimpleTagsFormModule.decorators = [
9
+ { type: NgModule, args: [{
10
+ imports: [
11
+ CommonModule,
12
+ CoDialogModule,
13
+ InputSearchModule,
14
+ IconModule,
15
+ DragDropModule,
16
+ ButtonModule
17
+ ],
18
+ declarations: [
19
+ SimpleTagsFormComponent
20
+ ],
21
+ exports: [
22
+ SimpleTagsFormComponent
23
+ ]
24
+ },] }
25
+ ];
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXRhZ3MtZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zaW1wbGUtdGFncy1mb3JtL3NpbXBsZS10YWdzLWZvcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3pHLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQWtCdEQsTUFBTSxPQUFPLG9CQUFvQjs7O1lBaEJoQyxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osY0FBYztvQkFDZCxpQkFBaUI7b0JBQ2pCLFVBQVU7b0JBQ1YsY0FBYztvQkFDZCxZQUFZO2lCQUNiO2dCQUNELFlBQVksRUFBRTtvQkFDWix1QkFBdUI7aUJBQ3hCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCx1QkFBdUI7aUJBQ3hCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge1NpbXBsZVRhZ3NGb3JtQ29tcG9uZW50fSBmcm9tIFwiLi9zaW1wbGUtdGFncy1mb3JtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0J1dHRvbk1vZHVsZSwgQ29EaWFsb2dNb2R1bGUsIEljb25Nb2R1bGUsIElucHV0U2VhcmNoTW9kdWxlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0RyYWdEcm9wTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RyYWctZHJvcFwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBDb0RpYWxvZ01vZHVsZSxcclxuICAgIElucHV0U2VhcmNoTW9kdWxlLFxyXG4gICAgSWNvbk1vZHVsZSxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgQnV0dG9uTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNpbXBsZVRhZ3NGb3JtQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBTaW1wbGVUYWdzRm9ybUNvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNpbXBsZVRhZ3NGb3JtTW9kdWxlIHtcclxufVxyXG4iXX0=
@@ -9,12 +9,14 @@ import { BusinessObjectFactory } from "@colijnit/ioneconnector/build/service/bus
9
9
  import { IconCacheService } from "../../service/icon-cache.service";
10
10
  import { AppPopupButtonType } from "../../enum/app-button-type.enum";
11
11
  import { ModifyTaskFormComponent } from "../modify-task-form/modify-task-form.component";
12
+ import { SharedService } from "../../service/shared.service";
12
13
  export class TaskModifierComponent {
13
- constructor(_dialogService, _boFactory, _dictionary, iconService) {
14
+ constructor(_dialogService, _boFactory, _dictionary, iconService, sharedService) {
14
15
  this._dialogService = _dialogService;
15
16
  this._boFactory = _boFactory;
16
17
  this._dictionary = _dictionary;
17
18
  this.iconService = iconService;
19
+ this.sharedService = sharedService;
18
20
  this.icons = Icon;
19
21
  this.editingComplete = new EventEmitter();
20
22
  this.activitySaved = new EventEmitter();
@@ -79,7 +81,7 @@ export class TaskModifierComponent {
79
81
  return __awaiter(this, void 0, void 0, function* () {
80
82
  if (this.editActivity) {
81
83
  const newActivity = this.editActivity.isNew;
82
- const result = yield this.upsertActivityOperation(this.editActivity);
84
+ const result = yield this.sharedService.updateActivity(this.editActivity);
83
85
  if (result) {
84
86
  this.activitySaved.next(this.editActivity);
85
87
  this.editingComplete.next(this.editActivity);
@@ -126,7 +128,7 @@ export class TaskModifierComponent {
126
128
  return __awaiter(this, void 0, void 0, function* () {
127
129
  const doDelete = yield this._dialogService.showYesNo("DELETE_TASK", "DELETE_TASK", false);
128
130
  if (doDelete.button === AppPopupButtonType.Yes) {
129
- yield this.deleteActivityOperation(this.editActivity);
131
+ yield this.sharedService.deleteActivity(this.editActivity);
130
132
  this.activityDeleted.next(this.editActivity);
131
133
  this.hide();
132
134
  }
@@ -149,7 +151,7 @@ export class TaskModifierComponent {
149
151
  return;
150
152
  }
151
153
  this.showAfterInsert = false;
152
- yield this.tryLockTaskOperation(activity.task.taskId);
154
+ yield this.sharedService.lockTask(activity.task.taskId);
153
155
  activity.task = activity.task;
154
156
  this.currentActivity = activity;
155
157
  this._createClone();
@@ -240,7 +242,8 @@ TaskModifierComponent.ctorParameters = () => [
240
242
  { type: CoreDialogService },
241
243
  { type: BusinessObjectFactory },
242
244
  { type: DictionaryService },
243
- { type: IconCacheService }
245
+ { type: IconCacheService },
246
+ { type: SharedService }
244
247
  ];
245
248
  TaskModifierComponent.propDecorators = {
246
249
  mainForm: [{ type: ViewChild, args: [FormComponent,] }],
@@ -250,9 +253,6 @@ TaskModifierComponent.propDecorators = {
250
253
  referenceId: [{ type: Input }],
251
254
  userGroupId: [{ type: Input }],
252
255
  relationId: [{ type: Input }],
253
- upsertActivityOperation: [{ type: Input }],
254
- deleteActivityOperation: [{ type: Input }],
255
- tryLockTaskOperation: [{ type: Input }],
256
256
  createTaskOperation: [{ type: Input }],
257
257
  forceReadonly: [{ type: Input }],
258
258
  editingComplete: [{ type: Output }],
@@ -267,4 +267,4 @@ TaskModifierComponent.propDecorators = {
267
267
  __decorate([
268
268
  InputBoolean()
269
269
  ], TaskModifierComponent.prototype, "forceReadonly", void 0);
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1tb2RpZmllci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90YXNrLW1vZGlmeWVyL3Rhc2stbW9kaWZpZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFDTCxpQkFBaUIsRUFFakIsYUFBYSxFQUNkLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUVyRSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFJcEcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUE2RHZGLE1BQU0sT0FBTyxxQkFBcUI7SUEwSDlCLFlBQ1ksY0FBaUMsRUFDakMsVUFBaUMsRUFDeEIsV0FBOEIsRUFDeEMsV0FBNkI7UUFINUIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQXVCO1FBQ3hCLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQUN4QyxnQkFBVyxHQUFYLFdBQVcs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QyxVQUFVLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQVksQ0FBQztJQUMxRyxDQUFDO0lBRU0sb0JBQW9CLENBQUMsUUFBaUI7UUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFFBQWtCO1FBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFhLENBQUM7SUFDL0YsQ0FBQzs7O1lBMVNKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXNEVDthQUNKOzs7WUEzRUMsaUJBQWlCO1lBU1gscUJBQXFCO1lBRHJCLGlCQUFpQjtZQUtqQixnQkFBZ0I7Ozt1QkFrRW5CLFNBQVMsU0FBQyxhQUFhOzZCQUd2QixTQUFTLFNBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDOytCQVduRCxLQUFLO3dCQUdMLEtBQUs7MEJBR0wsS0FBSzswQkFHTCxLQUFLO3lCQUdMLEtBQUs7c0NBR0wsS0FBSztzQ0FHTCxLQUFLO21DQUdMLEtBQUs7a0NBR0wsS0FBSzs0QkFHTCxLQUFLOzhCQUlMLE1BQU07NEJBR04sTUFBTTs4QkFHTixNQUFNO29DQUdOLE1BQU07MEJBR04sTUFBTTswQkFHTixNQUFNOzJCQUdOLE1BQU07d0JBR1IsV0FBVyxTQUFDLHdCQUF3Qjs7QUF2Qm5DO0lBREMsWUFBWSxFQUFFOzREQUNlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIENvcmVEaWFsb2dTZXJ2aWNlLFxyXG4gIERpYWxvZ1Jlc3BvbnNlSW50ZXJmYWNlLFxyXG4gIEZvcm1Db21wb25lbnRcclxufSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0FjdGl2aXR5fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHkuYm9cIjtcclxuaW1wb3J0IHtJbnB1dEJvb2xlYW59IGZyb20gXCIuLi8uLi9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtXb3JrZmxvd0NhdGVnb3J5VHlwZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vd29ya2Zsb3ctY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtCdXNpbmVzc09iamVjdEZhY3Rvcnl9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9zZXJ2aWNlL2J1c2luZXNzLW9iamVjdC1mYWN0b3J5XCI7XHJcbmltcG9ydCB7T3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbn0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZS9vcGVyYXRpb24tY2FsbGJhY2stc2ltcGxlLWZ1bmN0aW9uXCI7XHJcbmltcG9ydCB7VGFza30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3Rhc2suYm9cIjtcclxuaW1wb3J0IHtPcGVyYXRpb25DYWxsYmFja0FjdGl2aXR5fSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlL29wZXJhdGlvbi1jYWxsYmFjay1hY3Rpdml0eVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0FwcFBvcHVwQnV0dG9uVHlwZX0gZnJvbSBcIi4uLy4uL2VudW0vYXBwLWJ1dHRvbi10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtNb2RpZnlUYXNrRm9ybUNvbXBvbmVudH0gZnJvbSBcIi4uL21vZGlmeS10YXNrLWZvcm0vbW9kaWZ5LXRhc2stZm9ybS5jb21wb25lbnRcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImNvLXRhc2stbW9kaWZpZXJcIixcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGNvLWRpYWxvZyAgKm5nSWY9XCJzaG93Rm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwib25Qb3B1cENsb3NlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGFzay1wb3B1cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY3NzSWQ9XCJ0YXNrX21vZGlmaWVyX3BvcHVwXCJcclxuICAgICAgICAgICAgICAgICAgICBub0NsaWNrT3V0c2lkZSBjb250ZW50U2l6ZT5cclxuPCEtLVxyXG4gICAgICAgICAgW2hlYWRlcl09XCJoZWFkZXJcIlxyXG4gICAgICAgICAgW3N1YkhlYWRlcl09XCJzdWJIZWFkZXJcIlxyXG4gICAgICAgICAgW3N1YkhlYWRlckxpbmtdPVwic3ViSGVhZGVyTGlua1wiXHJcbiAgICAgICAgICBbc3ViU3ViSGVhZGVyXT1cInN1YlN1YkhlYWRlclwiXHJcbiAgICAgICAgICBbaGVhZGVySWNvbl09XCJpY29ucy5UYXNrXCJcclxuICAgICAgICAgIChvcGVuTGluayk9XCJvcGVuUmVmZXJlbmNlSW5Nb2R1bGUoKVwiLS0+XHJcbiAgICAgIDwhLS0gICAgICA8bmctdGVtcGxhdGU+LS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtd3JhcHBlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIihzaG93TmV3Rm9ybSkgPyAnbmV3LXRhc2stcG9wdXAnIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS13cmFwcGVyIG1pbmktc2Nyb2xsYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjby1mb3JtICNtYWluRm9ybSAodmFsaWRTdWJtaXQpPVwib25WYWxpZCgpXCI+XHJcbjwhLS1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZXctdGFzay1mb3JtICpuZ0lmPVwic2hvd05ld0Zvcm1cIiBbYWN0aXZpdHldPVwiZWRpdEFjdGl2aXR5XCIgW215Q2ZnTmFtZXNdPVwidGFza0NmZ05hbWVzXCIgW3Rhc2tLZXldPVwicmVmZXJlbmNlSWRcIiBbdGFza1dvcmtmbG93Q2F0ZWdvcnldPVwid29ya2Zsb3dDYXRlZ29yeVwiPjwvbmV3LXRhc2stZm9ybT5cclxuLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tbW9kaWZ5LXRhc2stZm9ybSAjbW9kaWZ5VGFza0Zvcm0gKm5nSWY9XCJzaG93TW9kaWZpY2F0aW9uRm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZpdHldPVwiZWRpdEFjdGl2aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcG9wdXBDb250ZXh0XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0YXR1c0NoYW5nZSk9XCJkb0hhbmRsZVN0YXR1c0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzaG93V29ya0xvZyk9XCJzaG93V29ya0xvZy5lbWl0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5Q2hhbmdlKT1cInVwZGF0ZUVkaXRBY3Rpdml0eSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLW1vZGlmeS10YXNrLWZvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvY28tZm9ybT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWJ1dHRvbnNcIiBmeExheW91dD1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93TmV3Rm9ybVwiIGZ4TGF5b3V0PVwicm93XCIgY2xhc3M9XCJwb3B1cC10aHVtYlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJ1NIT1dfQUZURVJfSU5TRVJUJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICA8IS0tICAgICAgICAgPHRodW1iIFsoYWN0aXZlKV09c2hvd0FmdGVySW5zZXJ0XCI+PC90aHVtYj4tLT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib2stY2FuY2VsLWJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIFtkaXNhYmxlZF09XCJyZWFkb25seSB8fCB0YXNrRWRpdHRpbmdcIiBbdGV4dENvbnRlbnRdPVwiJ1NBVkUnIHwgbG9jYWxpemVcIiAoY2xpY2spPVwiaGFuZGxlU2F2ZUZvcm0oKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLW1pZGRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uICpuZ0lmPVwic2hvd05ld0Zvcm1cIiBbdGV4dENvbnRlbnRdPVwiJ0NBTkNFTCcgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJoYW5kbGVDYW5jZWxGb3JtKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiAqbmdJZj1cInNob3dNb2RpZmljYXRpb25Gb3JtICYmICFyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5UcmFzaGJpbilcIiBjbGFzcz1cImRlbGV0ZSBsaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicmVhZG9ubHkgfHwgdGFza0VkaXR0aW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVUYXNrKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgPCEtLSA8L25nLXRlbXBsYXRlPi0tPlxyXG4gICAgICAgIDwvY28tZGlhbG9nPlxyXG4gICAgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhc2tNb2RpZmllckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgICBAVmlld0NoaWxkKEZvcm1Db21wb25lbnQpXHJcbiAgICBwdWJsaWMgbWFpbkZvcm06IEZvcm1Db21wb25lbnQ7XHJcblxyXG4gICAgQFZpZXdDaGlsZChmb3J3YXJkUmVmKCgpID0+IE1vZGlmeVRhc2tGb3JtQ29tcG9uZW50KSlcclxuICAgIHB1YmxpYyBtb2RpZnlUYXNrRm9ybTogTW9kaWZ5VGFza0Zvcm1Db21wb25lbnQ7XHJcblxyXG4gICAgcHVibGljIGdldCByZWFkb25seSgpOiBib29sZWFuIHtcclxuICAgICAgICAvL3JldHVybiB0aGlzLm1vZHVsZVNlcnZpY2UucmVhZG9ubHkgJiZcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuLyogICAgQElucHV0KClcclxuICAgIHB1YmxpYyB0YXNrQ2ZnTmFtZXM6IEFjdGl2aXRpZXNUYXNrQ29uZmlnTmFtZXM7Ki9cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHdvcmtmbG93Q2F0ZWdvcnk6IFdvcmtmbG93Q2F0ZWdvcnlUeXBlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcmVmZXJlbmNlOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyByZWZlcmVuY2VJZDogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdXNlckdyb3VwSWQ6IG51bWJlcjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJlbGF0aW9uSWQ6IG51bWJlcjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHVwc2VydEFjdGl2aXR5T3BlcmF0aW9uOiBPcGVyYXRpb25DYWxsYmFja1NpbXBsZUZ1bmN0aW9uO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZGVsZXRlQWN0aXZpdHlPcGVyYXRpb246IE9wZXJhdGlvbkNhbGxiYWNrU2ltcGxlRnVuY3Rpb247XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB0cnlMb2NrVGFza09wZXJhdGlvbjogT3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGNyZWF0ZVRhc2tPcGVyYXRpb246IE9wZXJhdGlvbkNhbGxiYWNrQWN0aXZpdHk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIGZvcmNlUmVhZG9ubHk6IGJvb2xlYW47XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZWRpdGluZ0NvbXBsZXRlOiBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+ID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBhY3Rpdml0eVNhdmVkOiBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+ID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBhY3Rpdml0eURlbGV0ZWQ6IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGl2aXR5PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IGNsb3NlZFdpdGhvdXRDb21wbGV0ZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IHNob3dXb3JrTG9nOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGFza0NyZWF0ZWQ6IEV2ZW50RW1pdHRlcjxUYXNrPiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFzaz4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSB0YXNrTW9kaWZpZWQ6IEV2ZW50RW1pdHRlcjxUYXNrPiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFzaz4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdGFzay1tb2RpZmllclwiKVxyXG4gICAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBzaG93Rm9ybSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zaG93TmV3Rm9ybSB8fCB0aGlzLnNob3dNb2RpZmljYXRpb25Gb3JtO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaGVhZGVyKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLnNob3dNb2RpZmljYXRpb25Gb3JtKSA/IFwiVEFTS1wiIDogXCJBRERfVEFTSzJcIjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHN1YkhlYWRlcigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRBY3Rpdml0eSA/IHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2sudGFza0lkICsgXCJcIiA6IFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBzdWJTdWJIZWFkZXIoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50QWN0aXZpdHk/LnRhc2s/Lmxhc3RNb2RpZmllZEJ5ICYmIHRoaXMuY3VycmVudEFjdGl2aXR5Py50YXNrPy5sYXN0TW9kaWZpZWREYXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5fZGljdGlvbmFyeS5nZXQoJ0xBU1RfQ0hBTkdFJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGxhc3RNb2RpZmllZEJ5OiBzdHJpbmcgPSB0aGlzLmN1cnJlbnRBY3Rpdml0eS50YXNrPy5sYXN0TW9kaWZpZWREaXNwbGF5TmFtZTtcclxuICAgICAgICAgICAgY29uc3QgbGFzdE1vZGlmaWVkRGF0ZTogc3RyaW5nID0gdGhpcy5jdXJyZW50QWN0aXZpdHkudGFzaz8ubGFzdE1vZGlmaWVkRGF0ZS50b0xvY2FsZVN0cmluZygpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGxhYmVsICsgJzogJyArIGxhc3RNb2RpZmllZEJ5ICsgJyB8ICcgKyBsYXN0TW9kaWZpZWREYXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHN1YkhlYWRlckxpbmsoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5zaG93TW9kaWZpY2F0aW9uRm9ybSAmJiB0aGlzLmN1cnJlbnRBY3Rpdml0eSAmJiB0aGlzLmN1cnJlbnRBY3Rpdml0eS50YXNrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRBY3Rpdml0eS50YXNrLndvcmtmbG93Q2F0ZWdvcnkgJiYgdGhpcy5jdXJyZW50QWN0aXZpdHkudGFzay5yZWZlcmVuY2UpIHtcclxuICAgICAgICAgICAgICAgIGxldCBhY3Rpdml0eU5hbWU6IHN0cmluZztcclxuICAgICAgICAgICAgICAgIGFjdGl2aXR5TmFtZSA9IHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiV09SS0ZMT1dfQ0FURUdPUllfXCIgKyB0aGlzLmN1cnJlbnRBY3Rpdml0eS50YXNrLndvcmtmbG93Q2F0ZWdvcnkpICsgXCIgXCIgKyB0aGlzLmN1cnJlbnRBY3Rpdml0eS50YXNrLnJlZmVyZW5jZSArIFwiKVwiO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjdGl2aXR5TmFtZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHVzZXJJc1Rhc2tSZXBvcnRlcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lZGl0QWN0aXZpdHkgJiZcclxuICAgICAgICAgICAgKCh0aGlzLmVkaXRBY3Rpdml0eS50YXNrLnJlcG9ydGVyVXNlckdyb3VwSWQgJiYgdGhpcy5lZGl0QWN0aXZpdHkudGFzay5yZXBvcnRlclVzZXJHcm91cElkID09PSB0aGlzLnVzZXJHcm91cElkKSB8fFxyXG4gICAgICAgICAgICAgICAgKHRoaXMuZWRpdEFjdGl2aXR5LnRhc2sucmVwb3J0ZXIgJiYgdGhpcy5lZGl0QWN0aXZpdHkudGFzay5yZXBvcnRlci5yZWxhdGlvbklkID09PSB0aGlzLnJlbGF0aW9uSWQpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2hvd0FmdGVySW5zZXJ0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgc2hvd05ld0Zvcm06IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzaG93TW9kaWZpY2F0aW9uRm9ybTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGN1cnJlbnRBY3Rpdml0eTogQWN0aXZpdHk7XHJcbiAgICBwdWJsaWMgZWRpdEFjdGl2aXR5OiBBY3Rpdml0eTtcclxuXHJcbiAgICBwdWJsaWMgdGFza0VkaXR0aW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogQ29yZURpYWxvZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfYm9GYWN0b3J5OiBCdXNpbmVzc09iamVjdEZhY3RvcnksXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZGljdGlvbmFyeTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGljb25TZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZVNhdmVGb3JtKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubWFpbkZvcm0uc3VibWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIG9uVmFsaWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdEFjdGl2aXR5KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0FjdGl2aXR5OiBib29sZWFuID0gdGhpcy5lZGl0QWN0aXZpdHkuaXNOZXc7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMudXBzZXJ0QWN0aXZpdHlPcGVyYXRpb24odGhpcy5lZGl0QWN0aXZpdHkpO1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2aXR5U2F2ZWQubmV4dCh0aGlzLmVkaXRBY3Rpdml0eSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVkaXRpbmdDb21wbGV0ZS5uZXh0KHRoaXMuZWRpdEFjdGl2aXR5KTtcclxuICAgICAgICAgICAgICAgIGlmIChuZXdBY3Rpdml0eSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFza0NyZWF0ZWQubmV4dCh0aGlzLmVkaXRBY3Rpdml0eS50YXNrKVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhc2tNb2RpZmllZC5uZXh0KHRoaXMuZWRpdEFjdGl2aXR5LnRhc2spO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2hvd0FmdGVySW5zZXJ0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydE1vZGlmeWluZ1Rhc2sodGhpcy5lZGl0QWN0aXZpdHkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUNhbmNlbEZvcm0oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlQ2xvbmUoKTtcclxuICAgICAgICAvL1RPRE86IGlzIHRoaXMgbmVlZGVkP1xyXG4gICAgICAgIC8vdGhpcy5tb2R1bGVTZXJ2aWNlLmNhbmNlbEVkaXQoKTtcclxuICAgICAgICB0aGlzLmNsb3NlZFdpdGhvdXRDb21wbGV0ZS5uZXh0KHRydWUpO1xyXG4gICAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvblBvcHVwQ2xvc2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb3JjZVJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy5jbG9zZWRXaXRob3V0Q29tcGxldGUubmV4dCh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvL1RPRE8gZmlndXJlIG91dCByb3V0aW5nIGZyb20gZXh0ZXJuYWwgY29tcG9uZW50XHJcbiAgICAvKnB1YmxpYyBvcGVuUmVmZXJlbmNlSW5Nb2R1bGUoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjdGl2aXR5ICYmIHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2spIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2sud29ya2Zsb3dDYXRlZ29yeSA9PT0gV29ya2Zsb3dDYXRlZ29yeVR5cGUuQWJzZW5jZUZpbGUgfHwgdGhpcy5jdXJyZW50QWN0aXZpdHkudGFzay53b3JrZmxvd0NhdGVnb3J5ID09PSBXb3JrZmxvd0NhdGVnb3J5VHlwZS5QcmV2ZW50aXZlQWJzZW5jZUZpbGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FwcE5hdmlnYXRvci5uYXZpZ2F0ZVRvSU9uZU1vZHVsZShJT25lTW9kdWxlTmFtZS5BYnNlbmNlRmlsZSwgdGhpcy5jdXJyZW50QWN0aXZpdHkudGFzay5yZWZlcmVuY2VJZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfSovXHJcblxyXG4gICAgcHVibGljIGhpZGUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93TmV3Rm9ybSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2hvd01vZGlmaWNhdGlvbkZvcm0gPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZGVsZXRlVGFzaygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBjb25zdCBkb0RlbGV0ZTogRGlhbG9nUmVzcG9uc2VJbnRlcmZhY2UgPSBhd2FpdCB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dZZXNObyhcIkRFTEVURV9UQVNLXCIsXCJERUxFVEVfVEFTS1wiLGZhbHNlKTtcclxuICAgICAgICBpZiAoZG9EZWxldGUuYnV0dG9uID09PSBBcHBQb3B1cEJ1dHRvblR5cGUuWWVzKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlQWN0aXZpdHlPcGVyYXRpb24odGhpcy5lZGl0QWN0aXZpdHkpO1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2aXR5RGVsZXRlZC5uZXh0KHRoaXMuZWRpdEFjdGl2aXR5KTtcclxuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBjcmVhdGVOZXdUYXNrKHN0YW5kYWxvbmU6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2hvd0Zvcm0pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zaG93QWZ0ZXJJbnNlcnQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRBY3Rpdml0eSA9IGF3YWl0IHRoaXMuY3JlYXRlVGFza09wZXJhdGlvbih7c3RhbmRhbG9uZTogc3RhbmRhbG9uZSwgd29ya2Zsb3dDYXRlZ29yeTogdGhpcy53b3JrZmxvd0NhdGVnb3J5LCByZWZlcmVuY2U6IHRoaXMucmVmZXJlbmNlLCByZWZlcmVuY2VJZDogdGhpcy5yZWZlcmVuY2VJZH0pO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZUNsb25lKCk7XHJcbiAgICAgICAgdGhpcy5zaG93TmV3Rm9ybSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIHN0YXJ0TW9kaWZ5aW5nVGFzayhhY3Rpdml0eTogQWN0aXZpdHkpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAodGhpcy5zaG93Rm9ybSB8fCAhYWN0aXZpdHkuSXNUYXNrKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd0FmdGVySW5zZXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgYXdhaXQgdGhpcy50cnlMb2NrVGFza09wZXJhdGlvbihhY3Rpdml0eS50YXNrLnRhc2tJZCk7XHJcbiAgICAgICAgYWN0aXZpdHkudGFzayA9IGFjdGl2aXR5LnRhc2s7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZpdHkgPSBhY3Rpdml0eTtcclxuICAgICAgICB0aGlzLl9jcmVhdGVDbG9uZSgpO1xyXG4gICAgICAgIHRoaXMuc2hvd01vZGlmaWNhdGlvbkZvcm0gPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBzdGFydE1vZGlmeWluZ1Rhc2tBbmRXb3JrTG9nKGFjdGl2aXR5OiBBY3Rpdml0eSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc3RhcnRNb2RpZnlpbmdUYXNrKGFjdGl2aXR5KTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgLyppZiAodGhpcy5tb2RpZnlUYXNrRm9ybSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RpZnlUYXNrRm9ybS5oYW5kbGVSZWdpc3RlcldvcmsoKTtcclxuICAgICAgICAgICAgfSovXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIF9jcmVhdGVDbG9uZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVkaXRBY3Rpdml0eSA9IHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKEFjdGl2aXR5LCB0aGlzLmN1cnJlbnRBY3Rpdml0eSlhcyBBY3Rpdml0eTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZG9IYW5kbGVTdGF0dXNDaGFuZ2UoZWRpdHRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRhc2tFZGl0dGluZyA9IGVkaXR0aW5nO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGRhdGVFZGl0QWN0aXZpdHkoYWN0aXZpdHk6IEFjdGl2aXR5KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5lZGl0QWN0aXZpdHkgPSB0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShBY3Rpdml0eSwgYWN0aXZpdHkpIGFzIEFjdGl2aXR5O1xyXG4gICAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgSWNvbiA9IEljb247XHJcbn1cclxuIl19
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1tb2RpZmllci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90YXNrLW1vZGlmeWVyL3Rhc2stbW9kaWZpZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFDTCxpQkFBaUIsRUFFakIsYUFBYSxFQUNkLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUVyRSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFJcEcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDdkYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBNkQzRCxNQUFNLE9BQU8scUJBQXFCO0lBaUg5QixZQUNZLGNBQWlDLEVBQ2pDLFVBQWlDLEVBQ3hCLFdBQThCLEVBQ3hDLFdBQTZCLEVBQzFCLGFBQTRCO1FBSjlCLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxlQUFVLEdBQVYsVUFBVSxD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SG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIENvcmVEaWFsb2dTZXJ2aWNlLFxyXG4gIERpYWxvZ1Jlc3BvbnNlSW50ZXJmYWNlLFxyXG4gIEZvcm1Db21wb25lbnRcclxufSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0FjdGl2aXR5fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHkuYm9cIjtcclxuaW1wb3J0IHtJbnB1dEJvb2xlYW59IGZyb20gXCIuLi8uLi9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtXb3JrZmxvd0NhdGVnb3J5VHlwZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vd29ya2Zsb3ctY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtCdXNpbmVzc09iamVjdEZhY3Rvcnl9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9zZXJ2aWNlL2J1c2luZXNzLW9iamVjdC1mYWN0b3J5XCI7XHJcbmltcG9ydCB7T3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbn0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZS9vcGVyYXRpb24tY2FsbGJhY2stc2ltcGxlLWZ1bmN0aW9uXCI7XHJcbmltcG9ydCB7VGFza30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3Rhc2suYm9cIjtcclxuaW1wb3J0IHtPcGVyYXRpb25DYWxsYmFja0FjdGl2aXR5fSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlL29wZXJhdGlvbi1jYWxsYmFjay1hY3Rpdml0eVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0FwcFBvcHVwQnV0dG9uVHlwZX0gZnJvbSBcIi4uLy4uL2VudW0vYXBwLWJ1dHRvbi10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtNb2RpZnlUYXNrRm9ybUNvbXBvbmVudH0gZnJvbSBcIi4uL21vZGlmeS10YXNrLWZvcm0vbW9kaWZ5LXRhc2stZm9ybS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtTaGFyZWRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zaGFyZWQuc2VydmljZVwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiY28tdGFzay1tb2RpZmllclwiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8Y28tZGlhbG9nICAqbmdJZj1cInNob3dGb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJvblBvcHVwQ2xvc2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0YXNrLXBvcHVwXCJcclxuICAgICAgICAgICAgICAgICAgICBjc3NJZD1cInRhc2tfbW9kaWZpZXJfcG9wdXBcIlxyXG4gICAgICAgICAgICAgICAgICAgIG5vQ2xpY2tPdXRzaWRlIGNvbnRlbnRTaXplPlxyXG48IS0tXHJcbiAgICAgICAgICBbaGVhZGVyXT1cImhlYWRlclwiXHJcbiAgICAgICAgICBbc3ViSGVhZGVyXT1cInN1YkhlYWRlclwiXHJcbiAgICAgICAgICBbc3ViSGVhZGVyTGlua109XCJzdWJIZWFkZXJMaW5rXCJcclxuICAgICAgICAgIFtzdWJTdWJIZWFkZXJdPVwic3ViU3ViSGVhZGVyXCJcclxuICAgICAgICAgIFtoZWFkZXJJY29uXT1cImljb25zLlRhc2tcIlxyXG4gICAgICAgICAgKG9wZW5MaW5rKT1cIm9wZW5SZWZlcmVuY2VJbk1vZHVsZSgpXCItLT5cclxuICAgICAgPCEtLSAgICAgIDxuZy10ZW1wbGF0ZT4tLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC13cmFwcGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiKHNob3dOZXdGb3JtKSA/ICduZXctdGFzay1wb3B1cCcgOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXdyYXBwZXIgbWluaS1zY3JvbGxiYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWZvcm0gI21haW5Gb3JtICh2YWxpZFN1Ym1pdCk9XCJvblZhbGlkKClcIj5cclxuPCEtLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5ldy10YXNrLWZvcm0gKm5nSWY9XCJzaG93TmV3Rm9ybVwiIFthY3Rpdml0eV09XCJlZGl0QWN0aXZpdHlcIiBbbXlDZmdOYW1lc109XCJ0YXNrQ2ZnTmFtZXNcIiBbdGFza0tleV09XCJyZWZlcmVuY2VJZFwiIFt0YXNrV29ya2Zsb3dDYXRlZ29yeV09XCJ3b3JrZmxvd0NhdGVnb3J5XCI+PC9uZXctdGFzay1mb3JtPlxyXG4tLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1tb2RpZnktdGFzay1mb3JtICNtb2RpZnlUYXNrRm9ybSAqbmdJZj1cInNob3dNb2RpZmljYXRpb25Gb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3Rpdml0eV09XCJlZGl0QWN0aXZpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwb3B1cENvbnRleHRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RhdHVzQ2hhbmdlKT1cImRvSGFuZGxlU3RhdHVzQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNob3dXb3JrTG9nKT1cInNob3dXb3JrTG9nLmVtaXQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWN0aXZpdHlDaGFuZ2UpPVwidXBkYXRlRWRpdEFjdGl2aXR5KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tbW9kaWZ5LXRhc2stZm9ybT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtYnV0dG9uc1wiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dOZXdGb3JtXCIgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cInBvcHVwLXRodW1iXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInU0hPV19BRlRFUl9JTlNFUlQnIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDwhLS0gICAgICAgICA8dGh1bWIgWyhhY3RpdmUpXT1zaG93QWZ0ZXJJbnNlcnRcIj48L3RodW1iPi0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvay1jYW5jZWwtYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjby1idXR0b24gW2Rpc2FibGVkXT1cInJlYWRvbmx5IHx8IHRhc2tFZGl0dGluZ1wiIFt0ZXh0Q29udGVudF09XCInU0FWRScgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJoYW5kbGVTYXZlRm9ybSgpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tbWlkZGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjby1idXR0b24gKm5nSWY9XCJzaG93TmV3Rm9ybVwiIFt0ZXh0Q29udGVudF09XCInQ0FOQ0VMJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cImhhbmRsZUNhbmNlbEZvcm0oKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uICpuZ0lmPVwic2hvd01vZGlmaWNhdGlvbkZvcm0gJiYgIXJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLlRyYXNoYmluKVwiIGNsYXNzPVwiZGVsZXRlIGxpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seSB8fCB0YXNrRWRpdHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVRhc2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICA8IS0tIDwvbmctdGVtcGxhdGU+LS0+XHJcbiAgICAgICAgPC9jby1kaWFsb2c+XHJcbiAgICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFza01vZGlmaWVyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAgIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoRm9ybUNvbXBvbmVudClcclxuICAgIHB1YmxpYyBtYWluRm9ybTogRm9ybUNvbXBvbmVudDtcclxuXHJcbiAgICBAVmlld0NoaWxkKGZvcndhcmRSZWYoKCkgPT4gTW9kaWZ5VGFza0Zvcm1Db21wb25lbnQpKVxyXG4gICAgcHVibGljIG1vZGlmeVRhc2tGb3JtOiBNb2RpZnlUYXNrRm9ybUNvbXBvbmVudDtcclxuXHJcbiAgICBwdWJsaWMgZ2V0IHJlYWRvbmx5KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIC8vcmV0dXJuIHRoaXMubW9kdWxlU2VydmljZS5yZWFkb25seSAmJlxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4vKiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHRhc2tDZmdOYW1lczogQWN0aXZpdGllc1Rhc2tDb25maWdOYW1lczsqL1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgd29ya2Zsb3dDYXRlZ29yeTogV29ya2Zsb3dDYXRlZ29yeVR5cGU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyByZWZlcmVuY2U6IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJlZmVyZW5jZUlkOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB1c2VyR3JvdXBJZDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcmVsYXRpb25JZDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY3JlYXRlVGFza09wZXJhdGlvbjogT3BlcmF0aW9uQ2FsbGJhY2tBY3Rpdml0eTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgZm9yY2VSZWFkb25seTogYm9vbGVhbjtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBlZGl0aW5nQ29tcGxldGU6IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGl2aXR5PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IGFjdGl2aXR5U2F2ZWQ6IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGl2aXR5PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IGFjdGl2aXR5RGVsZXRlZDogRXZlbnRFbWl0dGVyPEFjdGl2aXR5PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2xvc2VkV2l0aG91dENvbXBsZXRlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2hvd1dvcmtMb2c6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSB0YXNrQ3JlYXRlZDogRXZlbnRFbWl0dGVyPFRhc2s+ID0gbmV3IEV2ZW50RW1pdHRlcjxUYXNrPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IHRhc2tNb2RpZmllZDogRXZlbnRFbWl0dGVyPFRhc2s+ID0gbmV3IEV2ZW50RW1pdHRlcjxUYXNrPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10YXNrLW1vZGlmaWVyXCIpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHNob3dGb3JtKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNob3dOZXdGb3JtIHx8IHRoaXMuc2hvd01vZGlmaWNhdGlvbkZvcm07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBoZWFkZXIoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMuc2hvd01vZGlmaWNhdGlvbkZvcm0pID8gXCJUQVNLXCIgOiBcIkFERF9UQVNLMlwiO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgc3ViSGVhZGVyKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudEFjdGl2aXR5ID8gdGhpcy5jdXJyZW50QWN0aXZpdHkudGFzay50YXNrSWQgKyBcIlwiIDogXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHN1YlN1YkhlYWRlcigpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRBY3Rpdml0eT8udGFzaz8ubGFzdE1vZGlmaWVkQnkgJiYgdGhpcy5jdXJyZW50QWN0aXZpdHk/LnRhc2s/Lmxhc3RNb2RpZmllZERhdGUpIHtcclxuICAgICAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLl9kaWN0aW9uYXJ5LmdldCgnTEFTVF9DSEFOR0UnKTtcclxuICAgICAgICAgICAgY29uc3QgbGFzdE1vZGlmaWVkQnk6IHN0cmluZyA9IHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2s/Lmxhc3RNb2RpZmllZERpc3BsYXlOYW1lO1xyXG4gICAgICAgICAgICBjb25zdCBsYXN0TW9kaWZpZWREYXRlOiBzdHJpbmcgPSB0aGlzLmN1cnJlbnRBY3Rpdml0eS50YXNrPy5sYXN0TW9kaWZpZWREYXRlLnRvTG9jYWxlU3RyaW5nKCk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gbGFiZWwgKyAnOiAnICsgbGFzdE1vZGlmaWVkQnkgKyAnIHwgJyArIGxhc3RNb2RpZmllZERhdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgc3ViSGVhZGVyTGluaygpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLnNob3dNb2RpZmljYXRpb25Gb3JtICYmIHRoaXMuY3VycmVudEFjdGl2aXR5ICYmIHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2spIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2sud29ya2Zsb3dDYXRlZ29yeSAmJiB0aGlzLmN1cnJlbnRBY3Rpdml0eS50YXNrLnJlZmVyZW5jZSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGFjdGl2aXR5TmFtZTogc3RyaW5nO1xyXG4gICAgICAgICAgICAgICAgYWN0aXZpdHlOYW1lID0gdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJXT1JLRkxPV19DQVRFR09SWV9cIiArIHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2sud29ya2Zsb3dDYXRlZ29yeSkgKyBcIiBcIiArIHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2sucmVmZXJlbmNlICsgXCIpXCI7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYWN0aXZpdHlOYW1lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdXNlcklzVGFza1JlcG9ydGVyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRBY3Rpdml0eSAmJlxyXG4gICAgICAgICAgICAoKHRoaXMuZWRpdEFjdGl2aXR5LnRhc2sucmVwb3J0ZXJVc2VyR3JvdXBJZCAmJiB0aGlzLmVkaXRBY3Rpdml0eS50YXNrLnJlcG9ydGVyVXNlckdyb3VwSWQgPT09IHRoaXMudXNlckdyb3VwSWQpIHx8XHJcbiAgICAgICAgICAgICAgICAodGhpcy5lZGl0QWN0aXZpdHkudGFzay5yZXBvcnRlciAmJiB0aGlzLmVkaXRBY3Rpdml0eS50YXNrLnJlcG9ydGVyLnJlbGF0aW9uSWQgPT09IHRoaXMucmVsYXRpb25JZCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzaG93QWZ0ZXJJbnNlcnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzaG93TmV3Rm9ybTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNob3dNb2RpZmljYXRpb25Gb3JtOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgY3VycmVudEFjdGl2aXR5OiBBY3Rpdml0eTtcclxuICAgIHB1YmxpYyBlZGl0QWN0aXZpdHk6IEFjdGl2aXR5O1xyXG5cclxuICAgIHB1YmxpYyB0YXNrRWRpdHRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBDb3JlRGlhbG9nU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9ib0ZhY3Rvcnk6IEJ1c2luZXNzT2JqZWN0RmFjdG9yeSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9kaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgICAgICBwdWJsaWMgaWNvblNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIHNoYXJlZFNlcnZpY2U6IFNoYXJlZFNlcnZpY2VcclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVTYXZlRm9ybSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm1haW5Gb3JtLnN1Ym1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBvblZhbGlkKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRBY3Rpdml0eSkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdBY3Rpdml0eTogYm9vbGVhbiA9IHRoaXMuZWRpdEFjdGl2aXR5LmlzTmV3O1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UudXBkYXRlQWN0aXZpdHkodGhpcy5lZGl0QWN0aXZpdHkpO1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2aXR5U2F2ZWQubmV4dCh0aGlzLmVkaXRBY3Rpdml0eSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVkaXRpbmdDb21wbGV0ZS5uZXh0KHRoaXMuZWRpdEFjdGl2aXR5KTtcclxuICAgICAgICAgICAgICAgIGlmIChuZXdBY3Rpdml0eSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFza0NyZWF0ZWQubmV4dCh0aGlzLmVkaXRBY3Rpdml0eS50YXNrKVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhc2tNb2RpZmllZC5uZXh0KHRoaXMuZWRpdEFjdGl2aXR5LnRhc2spO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2hvd0FmdGVySW5zZXJ0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydE1vZGlmeWluZ1Rhc2sodGhpcy5lZGl0QWN0aXZpdHkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUNhbmNlbEZvcm0oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlQ2xvbmUoKTtcclxuICAgICAgICAvL1RPRE86IGlzIHRoaXMgbmVlZGVkP1xyXG4gICAgICAgIC8vdGhpcy5tb2R1bGVTZXJ2aWNlLmNhbmNlbEVkaXQoKTtcclxuICAgICAgICB0aGlzLmNsb3NlZFdpdGhvdXRDb21wbGV0ZS5uZXh0KHRydWUpO1xyXG4gICAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvblBvcHVwQ2xvc2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb3JjZVJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy5jbG9zZWRXaXRob3V0Q29tcGxldGUubmV4dCh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvL1RPRE8gZmlndXJlIG91dCByb3V0aW5nIGZyb20gZXh0ZXJuYWwgY29tcG9uZW50XHJcbiAgICAvKnB1YmxpYyBvcGVuUmVmZXJlbmNlSW5Nb2R1bGUoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjdGl2aXR5ICYmIHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2spIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2sud29ya2Zsb3dDYXRlZ29yeSA9PT0gV29ya2Zsb3dDYXRlZ29yeVR5cGUuQWJzZW5jZUZpbGUgfHwgdGhpcy5jdXJyZW50QWN0aXZpdHkudGFzay53b3JrZmxvd0NhdGVnb3J5ID09PSBXb3JrZmxvd0NhdGVnb3J5VHlwZS5QcmV2ZW50aXZlQWJzZW5jZUZpbGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FwcE5hdmlnYXRvci5uYXZpZ2F0ZVRvSU9uZU1vZHVsZShJT25lTW9kdWxlTmFtZS5BYnNlbmNlRmlsZSwgdGhpcy5jdXJyZW50QWN0aXZpdHkudGFzay5yZWZlcmVuY2VJZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfSovXHJcblxyXG4gICAgcHVibGljIGhpZGUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93TmV3Rm9ybSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2hvd01vZGlmaWNhdGlvbkZvcm0gPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZGVsZXRlVGFzaygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBjb25zdCBkb0RlbGV0ZTogRGlhbG9nUmVzcG9uc2VJbnRlcmZhY2UgPSBhd2FpdCB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dZZXNObyhcIkRFTEVURV9UQVNLXCIsXCJERUxFVEVfVEFTS1wiLGZhbHNlKTtcclxuICAgICAgICBpZiAoZG9EZWxldGUuYnV0dG9uID09PSBBcHBQb3B1cEJ1dHRvblR5cGUuWWVzKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5kZWxldGVBY3Rpdml0eSh0aGlzLmVkaXRBY3Rpdml0eSk7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZpdHlEZWxldGVkLm5leHQodGhpcy5lZGl0QWN0aXZpdHkpO1xyXG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGNyZWF0ZU5ld1Rhc2soc3RhbmRhbG9uZTogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAodGhpcy5zaG93Rm9ybSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNob3dBZnRlckluc2VydCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY3VycmVudEFjdGl2aXR5ID0gYXdhaXQgdGhpcy5jcmVhdGVUYXNrT3BlcmF0aW9uKHtzdGFuZGFsb25lOiBzdGFuZGFsb25lLCB3b3JrZmxvd0NhdGVnb3J5OiB0aGlzLndvcmtmbG93Q2F0ZWdvcnksIHJlZmVyZW5jZTogdGhpcy5yZWZlcmVuY2UsIHJlZmVyZW5jZUlkOiB0aGlzLnJlZmVyZW5jZUlkfSk7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlQ2xvbmUoKTtcclxuICAgICAgICB0aGlzLnNob3dOZXdGb3JtID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgc3RhcnRNb2RpZnlpbmdUYXNrKGFjdGl2aXR5OiBBY3Rpdml0eSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGlmICh0aGlzLnNob3dGb3JtIHx8ICFhY3Rpdml0eS5Jc1Rhc2spIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zaG93QWZ0ZXJJbnNlcnQgPSBmYWxzZTtcclxuICAgICAgICBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UubG9ja1Rhc2soYWN0aXZpdHkudGFzay50YXNrSWQpO1xyXG4gICAgICAgIGFjdGl2aXR5LnRhc2sgPSBhY3Rpdml0eS50YXNrO1xyXG4gICAgICAgIHRoaXMuY3VycmVudEFjdGl2aXR5ID0gYWN0aXZpdHk7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlQ2xvbmUoKTtcclxuICAgICAgICB0aGlzLnNob3dNb2RpZmljYXRpb25Gb3JtID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgc3RhcnRNb2RpZnlpbmdUYXNrQW5kV29ya0xvZyhhY3Rpdml0eTogQWN0aXZpdHkpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBhd2FpdCB0aGlzLnN0YXJ0TW9kaWZ5aW5nVGFzayhhY3Rpdml0eSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIC8qaWYgKHRoaXMubW9kaWZ5VGFza0Zvcm0pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubW9kaWZ5VGFza0Zvcm0uaGFuZGxlUmVnaXN0ZXJXb3JrKCk7XHJcbiAgICAgICAgICAgIH0qL1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBfY3JlYXRlQ2xvbmUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5lZGl0QWN0aXZpdHkgPSB0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShBY3Rpdml0eSwgdGhpcy5jdXJyZW50QWN0aXZpdHkpYXMgQWN0aXZpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRvSGFuZGxlU3RhdHVzQ2hhbmdlKGVkaXR0aW5nOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50YXNrRWRpdHRpbmcgPSBlZGl0dGluZztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdXBkYXRlRWRpdEFjdGl2aXR5KGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZWRpdEFjdGl2aXR5ID0gdGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQWN0aXZpdHksIGFjdGl2aXR5KSBhcyBBY3Rpdml0eTtcclxuICAgIH1cclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEljb24gPSBJY29uO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,45 @@
1
+ import { Component, HostBinding, Input, ViewEncapsulation } from "@angular/core";
2
+ import { IconCacheService } from "../../../service/icon-cache.service";
3
+ import { Icon } from "../../../enum/icon.enum";
4
+ import { ColorSequenceService } from "@colijnit/corecomponents_v12";
5
+ export class WorkflowInfoTileComponent {
6
+ constructor(iconCacheService, colorService) {
7
+ this.iconCacheService = iconCacheService;
8
+ this.colorService = colorService;
9
+ this.Icon = Icon;
10
+ }
11
+ showClass() {
12
+ return true;
13
+ }
14
+ ngOnInit() {
15
+ this.backgroundColor = this.colorService.GetRandomColorWithSettings([0, 360], [90, 100], [40, 95], [1, 1]);
16
+ }
17
+ }
18
+ WorkflowInfoTileComponent.decorators = [
19
+ { type: Component, args: [{
20
+ selector: "co-workflow-info-tile",
21
+ template: `
22
+ <div class="top">
23
+ <div class="tile-row">
24
+ <label class="status-text" [textContent]="'STATUS' | localize"></label>
25
+ <co-icon class="corner-icon" [iconData]="iconCacheService.getIcon(Icon.DetailView)" ></co-icon>
26
+ </div>
27
+ <label class="name-text" [textContent]="workflowProcessInfoPerStatus.statusName"></label>
28
+ </div>
29
+ <div class="bottom">
30
+ <label class="name-text" [textContent]="workflowProcessInfoPerStatus.workflowProcessCount"></label>
31
+ </div>
32
+ `,
33
+ encapsulation: ViewEncapsulation.None
34
+ },] }
35
+ ];
36
+ WorkflowInfoTileComponent.ctorParameters = () => [
37
+ { type: IconCacheService },
38
+ { type: ColorSequenceService }
39
+ ];
40
+ WorkflowInfoTileComponent.propDecorators = {
41
+ workflowProcessInfoPerStatus: [{ type: Input }],
42
+ showClass: [{ type: HostBinding, args: ["class.co-workflow-info-tile",] }],
43
+ backgroundColor: [{ type: HostBinding, args: ["style.background-color",] }]
44
+ };
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctaW5mby10aWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWluZm8tdGlsZXMvY29tcG9uZW50cy93b3JrZmxvdy1pbmZvLXRpbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFDTCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBbUJsRSxNQUFNLE9BQU8seUJBQXlCO0lBY2xDLFlBQW1CLGdCQUFrQyxFQUNsQyxZQUFrQztRQURsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFzQjtRQWRyQyxTQUFJLEdBQUcsSUFBSSxDQUFDO0lBZTVCLENBQUM7SUFUTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBU0QsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVHLENBQUM7OztZQXJDSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsUUFBUSxFQUFFOzs7Ozs7Ozs7OztLQVdUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3hDOzs7WUFuQk8sZ0JBQWdCO1lBRWhCLG9CQUFvQjs7OzJDQXNCdkIsS0FBSzt3QkFHTCxXQUFXLFNBQUMsNkJBQTZCOzhCQUt6QyxXQUFXLFNBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7V29ya2Zsb3dQcm9jZXNzSW5mb1BlclN0YXR1c30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3dvcmtmbG93LXByb2Nlc3MtaW5mby1wZXItc3RhdHVzXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7Q29sb3JTZXF1ZW5jZVNlcnZpY2V9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImNvLXdvcmtmbG93LWluZm8tdGlsZVwiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aWxlLXJvd1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInN0YXR1cy10ZXh0XCIgW3RleHRDb250ZW50XT1cIidTVEFUVVMnIHwgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwiY29ybmVyLWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKEljb24uRGV0YWlsVmlldylcIiA+PC9jby1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJuYW1lLXRleHRcIiBbdGV4dENvbnRlbnRdPVwid29ya2Zsb3dQcm9jZXNzSW5mb1BlclN0YXR1cy5zdGF0dXNOYW1lXCI+PC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm90dG9tXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCAgY2xhc3M9XCJuYW1lLXRleHRcIiBbdGV4dENvbnRlbnRdPVwid29ya2Zsb3dQcm9jZXNzSW5mb1BlclN0YXR1cy53b3JrZmxvd1Byb2Nlc3NDb3VudFwiPjwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0luZm9UaWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gICAgcHVibGljIHJlYWRvbmx5IEljb24gPSBJY29uO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgd29ya2Zsb3dQcm9jZXNzSW5mb1BlclN0YXR1czogV29ya2Zsb3dQcm9jZXNzSW5mb1BlclN0YXR1cztcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby13b3JrZmxvdy1pbmZvLXRpbGVcIilcclxuICAgIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0QmluZGluZyhcInN0eWxlLmJhY2tncm91bmQtY29sb3JcIilcclxuICAgIHB1YmxpYyBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgICAgICAgICAgICAgIHB1YmxpYyBjb2xvclNlcnZpY2U6IENvbG9yU2VxdWVuY2VTZXJ2aWNlKSB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgIHRoaXMuYmFja2dyb3VuZENvbG9yID0gdGhpcy5jb2xvclNlcnZpY2UuR2V0UmFuZG9tQ29sb3JXaXRoU2V0dGluZ3MoWzAsIDM2MF0sIFs5MCwgMTAwXSwgWzQwLCA5NV0sIFsxLDFdKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { WorkflowInfoTileComponent } from "./workflow-info-tile.component";
3
+ import { LocalizationModule } from "../../../localization/localization.module";
4
+ import { IconModule } from "@colijnit/corecomponents_v12";
5
+ export class WorkflowInfoTileModule {
6
+ }
7
+ WorkflowInfoTileModule.decorators = [
8
+ { type: NgModule, args: [{
9
+ imports: [
10
+ LocalizationModule,
11
+ IconModule
12
+ ],
13
+ declarations: [
14
+ WorkflowInfoTileComponent
15
+ ],
16
+ exports: [
17
+ WorkflowInfoTileComponent
18
+ ],
19
+ providers: []
20
+ },] }
21
+ ];
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctaW5mby10aWxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWluZm8tdGlsZXMvY29tcG9uZW50cy93b3JrZmxvdy1pbmZvLXRpbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDN0UsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBZ0J4RCxNQUFNLE9BQU8sc0JBQXNCOzs7WUFkbEMsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxrQkFBa0I7b0JBQ2xCLFVBQVU7aUJBQ1g7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLHlCQUF5QjtpQkFDMUI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLHlCQUF5QjtpQkFDMUI7Z0JBQ0QsU0FBUyxFQUFFLEVBQ1Y7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7V29ya2Zsb3dJbmZvVGlsZUNvbXBvbmVudH0gZnJvbSBcIi4vd29ya2Zsb3ctaW5mby10aWxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0xvY2FsaXphdGlvbk1vZHVsZX0gZnJvbSBcIi4uLy4uLy4uL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24ubW9kdWxlXCI7XHJcbmltcG9ydCB7SWNvbk1vZHVsZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgTG9jYWxpemF0aW9uTW9kdWxlLFxyXG4gICAgSWNvbk1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBXb3JrZmxvd0luZm9UaWxlQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBXb3JrZmxvd0luZm9UaWxlQ29tcG9uZW50XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0luZm9UaWxlTW9kdWxlIHtcclxuXHJcbn1cclxuIl19
@@ -0,0 +1,55 @@
1
+ import { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from "@angular/core";
2
+ import { Icon } from "../../enum/icon.enum";
3
+ import { IconCacheService } from "../../service/icon-cache.service";
4
+ import { SharedService } from "../../service/shared.service";
5
+ export class WorkflowInfoTilesComponent {
6
+ constructor(iconCacheService, sharedService) {
7
+ this.iconCacheService = iconCacheService;
8
+ this.sharedService = sharedService;
9
+ this.Icon = Icon;
10
+ this.icons = Icon;
11
+ this.workflowProcessInfoPerStatusClicked = new EventEmitter();
12
+ }
13
+ set workflowCategory(value) {
14
+ this._workflowCategory = value;
15
+ this.getWorkflowProcessInfoPerStatusCollection();
16
+ }
17
+ showClass() {
18
+ return true;
19
+ }
20
+ ngOnInit() {
21
+ this.getWorkflowProcessInfoPerStatusCollection();
22
+ }
23
+ workflowProcessInfoPerStatusClickedHandler(status) {
24
+ this.workflowProcessInfoPerStatusClicked.emit(status.statusName);
25
+ }
26
+ getWorkflowProcessInfoPerStatusCollection() {
27
+ if (this._workflowCategory) {
28
+ this.sharedService.getWorkflowProcessInfoPerStatus(this._workflowCategory).then((result) => {
29
+ this.WorkflowProcessInfoPerStatusCollection = result;
30
+ });
31
+ }
32
+ }
33
+ }
34
+ WorkflowInfoTilesComponent.decorators = [
35
+ { type: Component, args: [{
36
+ selector: "co-workflow-info-tiles",
37
+ template: `
38
+ <div class="tile-row">
39
+ <co-workflow-info-tile *ngFor="let workflowProcessInfoPerStatus of WorkflowProcessInfoPerStatusCollection" [workflowProcessInfoPerStatus]="workflowProcessInfoPerStatus"
40
+ (click)="workflowProcessInfoPerStatusClickedHandler(workflowProcessInfoPerStatus)"></co-workflow-info-tile>
41
+ </div>
42
+ `,
43
+ encapsulation: ViewEncapsulation.None
44
+ },] }
45
+ ];
46
+ WorkflowInfoTilesComponent.ctorParameters = () => [
47
+ { type: IconCacheService },
48
+ { type: SharedService }
49
+ ];
50
+ WorkflowInfoTilesComponent.propDecorators = {
51
+ workflowCategory: [{ type: Input }],
52
+ workflowProcessInfoPerStatusClicked: [{ type: Output }],
53
+ showClass: [{ type: HostBinding, args: ["class.co-workflow-info-tiles",] }]
54
+ };
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctaW5mby10aWxlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvdy1pbmZvLXRpbGVzL3dvcmtmbG93LWluZm8tdGlsZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTdHLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUVsRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFhM0QsTUFBTSxPQUFPLDBCQUEwQjtJQW9CbkMsWUFBbUIsZ0JBQWtDLEVBQ2xDLGFBQTRCO1FBRDVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFwQjVCLFNBQUksR0FBRyxJQUFJLENBQUM7UUFDZixVQUFLLEdBQWdCLElBQUksQ0FBQztRQVFuQyx3Q0FBbUMsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQVk5RixDQUFDO0lBbkJELElBQ1csZ0JBQWdCLENBQUMsS0FBMkI7UUFDckQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMseUNBQXlDLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBU00sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQU1ELFFBQVE7UUFDTixJQUFJLENBQUMseUNBQXlDLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRU0sMENBQTBDLENBQUMsTUFBb0M7UUFDcEYsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVPLHlDQUF5QztRQUMvQyxJQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQXNDLEVBQUUsRUFBRTtnQkFDekgsSUFBSSxDQUFDLHNDQUFzQyxHQUFHLE1BQU0sQ0FBQztZQUN2RCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7O1lBakRKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxRQUFRLEVBQUU7Ozs7O0tBS1Q7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDeEM7OztZQWJPLGdCQUFnQjtZQUVoQixhQUFhOzs7K0JBZ0JoQixLQUFLO2tEQU1MLE1BQU07d0JBTVIsV0FBVyxTQUFDLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1dvcmtmbG93Q2F0ZWdvcnlUeXBlfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS93b3JrZmxvdy1jYXRlZ29yeS5lbnVtXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7V29ya2Zsb3dQcm9jZXNzSW5mb1BlclN0YXR1c30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3dvcmtmbG93LXByb2Nlc3MtaW5mby1wZXItc3RhdHVzXCI7XHJcbmltcG9ydCB7U2hhcmVkU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uvc2hhcmVkLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiY28td29ya2Zsb3ctaW5mby10aWxlc1wiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGlsZS1yb3dcIj5cclxuICAgICAgICAgICAgPGNvLXdvcmtmbG93LWluZm8tdGlsZSAqbmdGb3I9XCJsZXQgd29ya2Zsb3dQcm9jZXNzSW5mb1BlclN0YXR1cyBvZiBXb3JrZmxvd1Byb2Nlc3NJbmZvUGVyU3RhdHVzQ29sbGVjdGlvblwiIFt3b3JrZmxvd1Byb2Nlc3NJbmZvUGVyU3RhdHVzXT1cIndvcmtmbG93UHJvY2Vzc0luZm9QZXJTdGF0dXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ3b3JrZmxvd1Byb2Nlc3NJbmZvUGVyU3RhdHVzQ2xpY2tlZEhhbmRsZXIod29ya2Zsb3dQcm9jZXNzSW5mb1BlclN0YXR1cylcIj48L2NvLXdvcmtmbG93LWluZm8tdGlsZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFdvcmtmbG93SW5mb1RpbGVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBJY29uID0gSWNvbjtcclxuICAgIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgd29ya2Zsb3dDYXRlZ29yeSh2YWx1ZTogV29ya2Zsb3dDYXRlZ29yeVR5cGUpIHtcclxuICAgICAgdGhpcy5fd29ya2Zsb3dDYXRlZ29yeSA9IHZhbHVlO1xyXG4gICAgICB0aGlzLmdldFdvcmtmbG93UHJvY2Vzc0luZm9QZXJTdGF0dXNDb2xsZWN0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgd29ya2Zsb3dQcm9jZXNzSW5mb1BlclN0YXR1c0NsaWNrZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gICAgcHVibGljIFdvcmtmbG93UHJvY2Vzc0luZm9QZXJTdGF0dXNDb2xsZWN0aW9uOiBXb3JrZmxvd1Byb2Nlc3NJbmZvUGVyU3RhdHVzW107XHJcbiAgICBwcml2YXRlIF93b3JrZmxvd0NhdGVnb3J5OiBXb3JrZmxvd0NhdGVnb3J5VHlwZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28td29ya2Zsb3ctaW5mby10aWxlc1wiKVxyXG4gICAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBwdWJsaWMgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICB0aGlzLmdldFdvcmtmbG93UHJvY2Vzc0luZm9QZXJTdGF0dXNDb2xsZWN0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHdvcmtmbG93UHJvY2Vzc0luZm9QZXJTdGF0dXNDbGlja2VkSGFuZGxlcihzdGF0dXM6IFdvcmtmbG93UHJvY2Vzc0luZm9QZXJTdGF0dXMpe1xyXG4gICAgICB0aGlzLndvcmtmbG93UHJvY2Vzc0luZm9QZXJTdGF0dXNDbGlja2VkLmVtaXQoc3RhdHVzLnN0YXR1c05hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0V29ya2Zsb3dQcm9jZXNzSW5mb1BlclN0YXR1c0NvbGxlY3Rpb24oKTogdm9pZCB7XHJcbiAgICAgIGlmKHRoaXMuX3dvcmtmbG93Q2F0ZWdvcnkpIHtcclxuICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuZ2V0V29ya2Zsb3dQcm9jZXNzSW5mb1BlclN0YXR1cyh0aGlzLl93b3JrZmxvd0NhdGVnb3J5KS50aGVuKChyZXN1bHQ6IFdvcmtmbG93UHJvY2Vzc0luZm9QZXJTdGF0dXNbXSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5Xb3JrZmxvd1Byb2Nlc3NJbmZvUGVyU3RhdHVzQ29sbGVjdGlvbiA9IHJlc3VsdDtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { WorkflowInfoTilesComponent } from "./workflow-info-tiles.component";
3
+ import { WorkflowInfoTileModule } from "./components/workflow-info-tile.module";
4
+ import { CommonModule } from "@angular/common";
5
+ export class WorkflowInfoTilesModule {
6
+ }
7
+ WorkflowInfoTilesModule.decorators = [
8
+ { type: NgModule, args: [{
9
+ imports: [
10
+ WorkflowInfoTileModule,
11
+ CommonModule
12
+ ],
13
+ declarations: [
14
+ WorkflowInfoTilesComponent
15
+ ],
16
+ exports: [
17
+ WorkflowInfoTilesComponent
18
+ ],
19
+ providers: []
20
+ },] }
21
+ ];
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctaW5mby10aWxlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvdy1pbmZvLXRpbGVzL3dvcmtmbG93LWluZm8tdGlsZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBZ0I3QyxNQUFNLE9BQU8sdUJBQXVCOzs7WUFkbkMsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxzQkFBc0I7b0JBQ3RCLFlBQVk7aUJBQ2I7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLDBCQUEwQjtpQkFDM0I7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLDBCQUEwQjtpQkFDM0I7Z0JBQ0QsU0FBUyxFQUFFLEVBQ1Y7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7V29ya2Zsb3dJbmZvVGlsZXNDb21wb25lbnR9IGZyb20gXCIuL3dvcmtmbG93LWluZm8tdGlsZXMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7V29ya2Zsb3dJbmZvVGlsZU1vZHVsZX0gZnJvbSBcIi4vY29tcG9uZW50cy93b3JrZmxvdy1pbmZvLXRpbGUubW9kdWxlXCI7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIFdvcmtmbG93SW5mb1RpbGVNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgV29ya2Zsb3dJbmZvVGlsZXNDb21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFdvcmtmbG93SW5mb1RpbGVzQ29tcG9uZW50XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0luZm9UaWxlc01vZHVsZSB7XHJcblxyXG59XHJcbiJdfQ==
@@ -1,4 +1,4 @@
1
1
  export function OperationWithAlwaysSuccessCallback(object) {
2
2
  return Promise.resolve(true);
3
3
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLWNhbGxiYWNrLXNpbXBsZS1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9pbnRlcmZhY2Uvb3BlcmF0aW9uLWNhbGxiYWNrLXNpbXBsZS1mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLFVBQVUsa0NBQWtDLENBQUMsTUFBVztJQUMxRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE9wZXJhdGlvbkNhbGxiYWNrU2ltcGxlRnVuY3Rpb24gPSB7IChvYmplY3Q6IGFueSk6IFByb21pc2U8Ym9vbGVhbj47IH07XG5leHBvcnQgZnVuY3Rpb24gT3BlcmF0aW9uV2l0aEFsd2F5c1N1Y2Nlc3NDYWxsYmFjayhvYmplY3Q6IGFueSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XG59XG4iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLWNhbGxiYWNrLXNpbXBsZS1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9pbnRlcmZhY2Uvb3BlcmF0aW9uLWNhbGxiYWNrLXNpbXBsZS1mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLFVBQVUsa0NBQWtDLENBQUMsTUFBVztJQUMxRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE9wZXJhdGlvbkNhbGxiYWNrU2ltcGxlRnVuY3Rpb24gPSB7IChvYmplY3Q6IGFueSk6IFByb21pc2U8Ym9vbGVhbj47IH07XHJcbmV4cG9ydCBmdW5jdGlvbiBPcGVyYXRpb25XaXRoQWx3YXlzU3VjY2Vzc0NhbGxiYWNrKG9iamVjdDogYW55KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xyXG59XHJcbiJdfQ==