@colijnit/sharedcomponents 1.0.68 → 1.0.70
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.
- package/3rdpartylicenses.txt +1203 -0
- package/bundles/colijnit-sharedcomponents.umd.js +3335 -7
- package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
- package/colijnit-sharedcomponents.d.ts +36 -0
- package/colijnit-sharedcomponents.metadata.json +1 -1
- package/esm2015/colijnit-sharedcomponents.js +37 -1
- package/esm2015/lib/businessobject/co-document-right.bo.js +1 -1
- package/esm2015/lib/components/activity-list-header/activity-list-header.component.js +67 -0
- package/esm2015/lib/components/activity-list-header/activity-list-header.module.js +28 -0
- package/esm2015/lib/components/activity-list-header/components/period-filter/period-filter-popup.component.js +55 -0
- package/esm2015/lib/components/activity-list-header/components/period-filter/period-filter.component.js +103 -0
- package/esm2015/lib/components/activity-list-header/components/period-filter/period-filter.module.js +34 -0
- package/esm2015/lib/components/activity-overview-component/component-activity-overview.component.js +129 -0
- package/esm2015/lib/components/activity-overview-component/component-activity-overview.module.js +26 -0
- package/esm2015/lib/components/activity-overview-component/components/base-activity-overview.component.js +284 -0
- package/esm2015/lib/components/date-planning/component/agenda/agenda-header.component.js +32 -3
- package/esm2015/lib/components/image-display/image-display.component.js +7 -7
- package/esm2015/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.component.js +100 -0
- package/esm2015/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.module.js +25 -0
- package/esm2015/lib/components/modify-task-form/components/base-activity-summary.component.js +134 -0
- package/esm2015/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.component.js +118 -0
- package/esm2015/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.module.js +27 -0
- package/esm2015/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.component.js +88 -0
- package/esm2015/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.module.js +24 -0
- package/esm2015/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.component.js +77 -0
- package/esm2015/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.module.js +24 -0
- package/esm2015/lib/components/modify-task-form/components/status-summary-block/status-summary-block.component.js +71 -0
- package/esm2015/lib/components/modify-task-form/components/status-summary-block/status-summary-block.module.js +25 -0
- package/esm2015/lib/components/modify-task-form/components/task-details/task-details.component.js +102 -0
- package/esm2015/lib/components/modify-task-form/components/task-details/task-details.module.js +25 -0
- package/esm2015/lib/components/modify-task-form/modify-task-form.component.js +258 -0
- package/esm2015/lib/components/modify-task-form/modify-task-form.module.js +33 -0
- package/esm2015/lib/components/open-activity-list/component-activity-list.component.js +293 -0
- package/esm2015/lib/components/open-activity-list/component-activity-list.module.js +30 -0
- package/esm2015/lib/components/open-activity-list/components/base-open-activity-list.component.js +264 -0
- package/esm2015/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.component.js +41 -0
- package/esm2015/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.module..js +19 -0
- package/esm2015/lib/components/task-modifyer/task-modifier.component.js +270 -0
- package/esm2015/lib/components/task-modifyer/task-modifyer.module..js +31 -0
- package/esm2015/lib/components/workflow-notification-toggle/workflow-notification-toggle-popup.js +53 -0
- package/esm2015/lib/components/workflow-notification-toggle/workflow-notification-toggle.component.js +81 -0
- package/esm2015/lib/components/workflow-notification-toggle/workflow-notification-toggle.module.js +34 -0
- package/esm2015/lib/directives/absolute-overlay-template.directive.js +29 -0
- package/esm2015/lib/directives/align-with.directive.js +174 -0
- package/esm2015/lib/directives/click-outside.directive.js +25 -0
- package/esm2015/lib/directives/directives.module.js +22 -0
- package/esm2015/lib/enum/activity-cfg-name.enum.js +29 -0
- package/esm2015/lib/enum/app-button-type.enum.js +11 -0
- package/esm2015/lib/enum/calendar-view.enum.js +2 -1
- package/esm2015/lib/enum/icon.enum.js +13 -1
- package/esm2015/lib/interface/activities-task-config-names.js +2 -0
- package/esm2015/lib/interface/operation-callback-activity.js +5 -0
- package/esm2015/lib/interface/operation-callback-function-with-validation.js +5 -0
- package/esm2015/lib/interface/operation-callback-simple-function.js +1 -1
- package/esm2015/lib/model/icon-svg.js +15 -3
- package/esm2015/lib/service/app-absolute-overlay-outlet.service.js +20 -0
- package/esm2015/lib/service/shared-connector.service.js +121 -1
- package/esm2015/lib/service/shared.service.js +50 -1
- package/esm2015/lib/utils/browser-utils.js +100 -0
- package/esm2015/lib/utils/calendar.utils.js +34 -1
- package/esm2015/lib/utils/event-utils.js +59 -0
- package/esm2015/lib/utils/string-utils.js +5 -1
- package/esm2015/public-api.js +3 -1
- package/favicon.ico +0 -0
- package/fesm2015/colijnit-sharedcomponents.js +3486 -13
- package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
- package/index.html +12 -0
- package/lib/components/activity-list-header/activity-list-header.component.d.ts +25 -0
- package/lib/components/activity-list-header/activity-list-header.module.d.ts +2 -0
- package/lib/components/activity-list-header/components/period-filter/period-filter-popup.component.d.ts +11 -0
- package/lib/components/activity-list-header/components/period-filter/period-filter.component.d.ts +26 -0
- package/lib/components/activity-list-header/components/period-filter/period-filter.module.d.ts +2 -0
- package/lib/components/activity-list-header/components/period-filter/style/_layout.scss +62 -0
- package/lib/components/activity-list-header/components/period-filter/style/_material-definition.scss +1 -0
- package/lib/components/activity-list-header/components/period-filter/style/_theme.scss +5 -0
- package/lib/components/activity-list-header/components/period-filter/style/material.scss +4 -0
- package/lib/components/activity-list-header/style/_layout.scss +84 -0
- package/lib/components/activity-list-header/style/_material-definition.scss +1 -0
- package/lib/components/activity-list-header/style/_theme.scss +5 -0
- package/lib/components/activity-list-header/style/material.scss +4 -0
- package/lib/components/activity-overview-component/component-activity-overview.component.d.ts +13 -0
- package/lib/components/activity-overview-component/component-activity-overview.module.d.ts +2 -0
- package/lib/components/activity-overview-component/components/base-activity-overview.component.d.ts +84 -0
- package/lib/components/activity-overview-component/style/_layout.scss +107 -0
- package/lib/components/activity-overview-component/style/_material-definition.scss +1 -0
- package/lib/components/activity-overview-component/style/_theme.scss +5 -0
- package/lib/components/activity-overview-component/style/material.scss +4 -0
- package/lib/components/date-planning/component/agenda/style/_layout.scss +68 -55
- package/lib/components/date-planning/component/agenda/style/_material-definition.scss +1 -1
- package/lib/components/date-planning/style/_layout.scss +1 -0
- package/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.component.d.ts +31 -0
- package/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.module.d.ts +2 -0
- package/lib/components/modify-task-form/components/activity-summary-block/style/_layout.scss +139 -0
- package/lib/components/modify-task-form/components/activity-summary-block/style/_material-definition.scss +0 -0
- package/lib/components/modify-task-form/components/activity-summary-block/style/_theme.scss +5 -0
- package/lib/components/modify-task-form/components/activity-summary-block/style/material.scss +4 -0
- package/lib/components/modify-task-form/components/base-activity-summary.component.d.ts +53 -0
- package/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.component.d.ts +28 -0
- package/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.module.d.ts +2 -0
- package/lib/components/modify-task-form/components/creation-summary-block/style/_layout.scss +5 -0
- package/lib/components/modify-task-form/components/creation-summary-block/style/_material-definition.scss +0 -0
- package/lib/components/modify-task-form/components/creation-summary-block/style/_theme.scss +5 -0
- package/lib/components/modify-task-form/components/creation-summary-block/style/material.scss +4 -0
- package/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.component.d.ts +24 -0
- package/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.module.d.ts +2 -0
- package/lib/components/modify-task-form/components/executive-summary-block/style/_layout.scss +5 -0
- package/lib/components/modify-task-form/components/executive-summary-block/style/_material-definition.scss +0 -0
- package/lib/components/modify-task-form/components/executive-summary-block/style/_theme.scss +5 -0
- package/lib/components/modify-task-form/components/executive-summary-block/style/material.scss +4 -0
- package/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.component.d.ts +23 -0
- package/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.module.d.ts +2 -0
- package/lib/components/modify-task-form/components/notification-summary-block/style/_layout.scss +161 -0
- package/lib/components/modify-task-form/components/notification-summary-block/style/_material-definition.scss +0 -0
- package/lib/components/modify-task-form/components/notification-summary-block/style/_theme.scss +5 -0
- package/lib/components/modify-task-form/components/notification-summary-block/style/material.scss +4 -0
- package/lib/components/modify-task-form/components/status-summary-block/status-summary-block.component.d.ts +15 -0
- package/lib/components/modify-task-form/components/status-summary-block/status-summary-block.module.d.ts +2 -0
- package/lib/components/modify-task-form/components/status-summary-block/style/_layout.scss +18 -0
- package/lib/components/modify-task-form/components/status-summary-block/style/_material-definition.scss +0 -0
- package/lib/components/modify-task-form/components/status-summary-block/style/_theme.scss +5 -0
- package/lib/components/modify-task-form/components/status-summary-block/style/material.scss +4 -0
- package/lib/components/modify-task-form/components/task-details/style/_layout.scss +142 -0
- package/lib/components/modify-task-form/components/task-details/style/_material-definition.scss +0 -0
- package/lib/components/modify-task-form/components/task-details/style/_theme.scss +5 -0
- package/lib/components/modify-task-form/components/task-details/style/material.scss +4 -0
- package/lib/components/modify-task-form/components/task-details/task-details.component.d.ts +21 -0
- package/lib/components/modify-task-form/components/task-details/task-details.module.d.ts +2 -0
- package/lib/components/modify-task-form/modify-task-form.component.d.ts +49 -0
- package/lib/components/modify-task-form/modify-task-form.module.d.ts +2 -0
- package/lib/components/modify-task-form/style/_layout.scss +135 -0
- package/lib/components/modify-task-form/style/_material-definition.scss +0 -0
- package/lib/components/modify-task-form/style/_theme.scss +5 -0
- package/lib/components/modify-task-form/style/material.scss +4 -0
- package/lib/components/open-activity-list/component-activity-list.component.d.ts +69 -0
- package/lib/components/open-activity-list/component-activity-list.module.d.ts +2 -0
- package/lib/components/open-activity-list/components/base-open-activity-list.component.d.ts +46 -0
- package/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.component.d.ts +4 -0
- package/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.module..d.ts +2 -0
- package/lib/components/open-activity-list/components/personal-activity-overview/style/_layout.scss +105 -0
- package/lib/components/open-activity-list/components/personal-activity-overview/style/_material-definition.scss +0 -0
- package/lib/components/open-activity-list/components/personal-activity-overview/style/_theme.scss +4 -0
- package/lib/components/open-activity-list/components/personal-activity-overview/style/material.scss +4 -0
- package/lib/components/open-activity-list/style/_layout.scss +26 -0
- package/lib/components/open-activity-list/style/_material-definition.scss +0 -0
- package/lib/components/open-activity-list/style/_theme.scss +4 -0
- package/lib/components/open-activity-list/style/material.scss +4 -0
- package/lib/components/task-modifyer/style/_layout.scss +5 -0
- package/lib/components/task-modifyer/style/_material-definition.scss +0 -0
- package/lib/components/task-modifyer/style/_theme.scss +4 -0
- package/lib/components/task-modifyer/style/material.scss +4 -0
- package/lib/components/task-modifyer/task-modifier.component.d.ts +67 -0
- package/lib/components/task-modifyer/task-modifyer.module..d.ts +2 -0
- package/lib/components/workflow-notification-toggle/style/_layout.scss +59 -0
- package/lib/components/workflow-notification-toggle/style/_material-definition.scss +0 -0
- package/lib/components/workflow-notification-toggle/style/_theme.scss +4 -0
- package/lib/components/workflow-notification-toggle/style/material.scss +4 -0
- package/lib/components/workflow-notification-toggle/workflow-notification-toggle-popup.d.ts +15 -0
- package/lib/components/workflow-notification-toggle/workflow-notification-toggle.component.d.ts +28 -0
- package/lib/components/workflow-notification-toggle/workflow-notification-toggle.module.d.ts +2 -0
- package/lib/directives/absolute-overlay-template.directive.d.ts +9 -0
- package/lib/directives/align-with.directive.d.ts +35 -0
- package/lib/directives/click-outside.directive.d.ts +7 -0
- package/lib/directives/directives.module.d.ts +2 -0
- package/lib/enum/activity-cfg-name.enum.d.ts +27 -0
- package/lib/enum/app-button-type.enum.d.ts +9 -0
- package/lib/enum/calendar-view.enum.d.ts +1 -0
- package/lib/enum/icon.enum.d.ts +12 -0
- package/lib/interface/activities-task-config-names.d.ts +12 -0
- package/lib/interface/operation-callback-activity.d.ts +5 -0
- package/lib/interface/operation-callback-function-with-validation.d.ts +5 -0
- package/lib/service/app-absolute-overlay-outlet.service.d.ts +9 -0
- package/lib/service/shared-connector.service.d.ts +18 -0
- package/lib/service/shared.service.d.ts +16 -0
- package/lib/utils/browser-utils.d.ts +15 -0
- package/lib/utils/calendar.utils.d.ts +1 -0
- package/lib/utils/event-utils.d.ts +12 -0
- package/lib/utils/string-utils.d.ts +1 -0
- package/main.36b466467ac98ce720f9.js +1 -0
- package/package.json +2 -1
- package/polyfills.907fe9d1887c5de17993.js +1 -0
- package/public-api.d.ts +2 -0
- package/runtime.8aac21847ed3d3829cca.js +1 -0
- package/styles.6375d1d30814ecba5d0c.css +1 -0
|
@@ -69,6 +69,9 @@ export class AgendaHeaderComponent {
|
|
|
69
69
|
case CalendarView.DayView:
|
|
70
70
|
newDate.setDate(this.selectedDate.getDate() - 1);
|
|
71
71
|
break;
|
|
72
|
+
case CalendarView.DaysAround:
|
|
73
|
+
newDate.setDate(this.selectedDate.getDate() - 1);
|
|
74
|
+
break;
|
|
72
75
|
case CalendarView.WeekView:
|
|
73
76
|
newDate.setDate(this.selectedDate.getDate() - 3);
|
|
74
77
|
break;
|
|
@@ -90,6 +93,9 @@ export class AgendaHeaderComponent {
|
|
|
90
93
|
case CalendarView.DayView:
|
|
91
94
|
newDate.setDate(this.selectedDate.getDate() + 1);
|
|
92
95
|
break;
|
|
96
|
+
case CalendarView.DaysAround:
|
|
97
|
+
newDate.setDate(this.selectedDate.getDate() + 1);
|
|
98
|
+
break;
|
|
93
99
|
case CalendarView.WeekView:
|
|
94
100
|
newDate.setDate(this.selectedDate.getDate() + 3);
|
|
95
101
|
break;
|
|
@@ -131,6 +137,13 @@ export class AgendaHeaderComponent {
|
|
|
131
137
|
day.description = this.selectedDate.toLocaleDateString(this._locale, options);
|
|
132
138
|
this.day = day;
|
|
133
139
|
break;
|
|
140
|
+
case CalendarView.DaysAround:
|
|
141
|
+
const weekAroundView = CalendarUtils.GetDaysAround(this.selectedDate);
|
|
142
|
+
this.weekDays = weekAroundView.weekDays;
|
|
143
|
+
if (this.firstAvailableDate) {
|
|
144
|
+
this.showBackButton = this.weekDays.find(wd => DateUtils.DatesEqual(this.firstAvailableDate, wd.date)) === undefined;
|
|
145
|
+
}
|
|
146
|
+
break;
|
|
134
147
|
case CalendarView.WeekView:
|
|
135
148
|
const weekView = CalendarUtils.GetDaysOfWeek(this.selectedDate);
|
|
136
149
|
this.weekDays = weekView.weekDays;
|
|
@@ -184,6 +197,24 @@ AgendaHeaderComponent.decorators = [
|
|
|
184
197
|
[iconData]="iconCacheService.getIcon(icons.ArrowPointRight)" (click)="addUnit()"></co-icon>
|
|
185
198
|
</div>
|
|
186
199
|
</div>
|
|
200
|
+
<div class="agenda-header-wrapper days-around" *ngIf="view === viewTypes.DaysAround">
|
|
201
|
+
<div class="hour-label-placeholder" *ngIf="viewSelection">
|
|
202
|
+
<view-select [selectedView]="view" (selectedViewChange)="changeTheView($event)"></view-select>
|
|
203
|
+
</div>
|
|
204
|
+
<div class="week-day-label days-around" *ngFor="let weekDay of weekDays; let index = index"
|
|
205
|
+
[class.selected]="weekDay.weekdaySelected" (click)="setUnit(weekDay)">
|
|
206
|
+
<co-icon *ngIf="showBackButton && index === 0" class="pointer-hover no-user-select sub-unit-icon dark"
|
|
207
|
+
[iconData]="iconCacheService.getIcon(icons.ArrowPointLeft)" (click)="subUnit()"></co-icon>
|
|
208
|
+
<div *ngIf="weekDay.newMonth" [textContent]="weekDay.weekdayMonthLong + ' ' + weekDay.weekdayYear"
|
|
209
|
+
class="month-description"></div>
|
|
210
|
+
<div class="weekday-value day"
|
|
211
|
+
[textContent]="capitalizeString(weekDay.weekdayShort)"></div>
|
|
212
|
+
<div class="weekday-value date"
|
|
213
|
+
[textContent]="weekDay.weekdayDay"></div>
|
|
214
|
+
<co-icon *ngIf="index === 6" class="pointer-hover no-user-select add-unit-icon dark"
|
|
215
|
+
[iconData]="iconCacheService.getIcon(icons.ArrowPointRight)" (click)="addUnit()"></co-icon>
|
|
216
|
+
</div>
|
|
217
|
+
</div>
|
|
187
218
|
<div class="agenda-header-wrapper" *ngIf="view === viewTypes.WeekView">
|
|
188
219
|
<div class="hour-label-placeholder" *ngIf="viewSelection">
|
|
189
220
|
<view-select [selectedView]="view" (selectedViewChange)="changeTheView($event)"></view-select>
|
|
@@ -196,8 +227,6 @@ AgendaHeaderComponent.decorators = [
|
|
|
196
227
|
class="month-description"></div>
|
|
197
228
|
<div class="weekday-value"
|
|
198
229
|
[textContent]="capitalizeString(weekDay.weekdayLong) + ' ' + weekDay.weekdayDay + ' ' + capitalizeString(weekDay.weekdayMonthLong) + ' ' + weekDay.weekdayYear "></div>
|
|
199
|
-
<!-- <div class="weekday-description" [textContent]="weekDay.weekdayYear"></div>-->
|
|
200
|
-
|
|
201
230
|
<co-icon *ngIf="index === 2" class="pointer-hover no-user-select add-unit-icon dark"
|
|
202
231
|
[iconData]="iconCacheService.getIcon(icons.ArrowPointRight)" (click)="addUnit()"></co-icon>
|
|
203
232
|
|
|
@@ -249,4 +278,4 @@ AgendaHeaderComponent.propDecorators = {
|
|
|
249
278
|
selectedDateChange: [{ type: Output }],
|
|
250
279
|
rangeChange: [{ type: Output }]
|
|
251
280
|
};
|
|
252
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbmRhLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBsYW5uaW5nL2NvbXBvbmVudC9hZ2VuZGEvYWdlbmRhLWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBR04sTUFBTSxFQUNOLFNBQVMsRUFBRSxpQkFBaUIsRUFDN0IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUdqRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDL0QsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQTtBQUMvQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFaEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBZ0V4RSxNQUFNLE9BQU8scUJBQXFCO0lBMkQ5QixZQUN3QyxPQUFxQixFQUNqRCxXQUF1QixFQUN2QixTQUFvQixFQUNwQixPQUFlLEVBQ2hCLGdCQUFrQztRQUpMLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFDakQsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixZQUFPLEdBQVAsT0FBTyxD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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBeURUO2dCQUNILGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUF4RU8sWUFBWSx1QkFxSVgsTUFBTSxTQUFDLFNBQVM7WUFqSnZCLFVBQVU7WUFTVixTQUFTO1lBSlQsTUFBTTtZQWdCQSxnQkFBZ0I7OzsyQkF3RW5CLEtBQUs7bUJBVUwsS0FBSztpQ0FHTCxLQUFLOzJCQVlMLEtBQUs7NEJBTUwsS0FBSzt5QkFHTCxNQUFNO2lDQUdOLE1BQU07MEJBR04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIExPQ0FMRV9JRCxcclxuICBOZ1pvbmUsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUmVuZGVyZXIyLCBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Q2FsZW5kYXJWaWV3fSBmcm9tIFwiLi4vLi4vLi4vLi4vZW51bS9jYWxlbmRhci12aWV3LmVudW1cIjtcclxuaW1wb3J0IHtMYW5ndWFnZUNvZGV9IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL2xhbmd1YWdlLWNvZGUuZW51bVwiO1xyXG5pbXBvcnQge1dlZWtkYXl9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbC93ZWVrZGF5Lm1vZGVsXCI7XHJcbmltcG9ydCB7V2Vla30gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVsL3dlZWsubW9kZWxcIjtcclxuaW1wb3J0IHtDYWxlbmRhclV0aWxzfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbHMvY2FsZW5kYXIudXRpbHNcIjtcclxuaW1wb3J0IHtOVUxMX0RBWX0gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVsL2FnZW5kYS1udWxsLW9iamVjdHNcIjtcclxuaW1wb3J0IHtEYXl9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbC9kYXkubW9kZWxcIlxyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0FnZW5kYUV2ZW50UGVyRGF5fSBmcm9tIFwiLi4vLi4vLi4vLi4vbW9kZWwvYWdlbmRhLWV2ZW50LXBlci1kYXkubW9kZWxcIjtcclxuaW1wb3J0IHtEYXRlVXRpbHN9IGZyb20gXCIuLi8uLi8uLi8uLi91dGlscy9kYXRlLXV0aWxzXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImFnZW5kYS1oZWFkZXJcIixcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhZ2VuZGEtaGVhZGVyLXdyYXBwZXJcIiAqbmdJZj1cInZpZXcgPT09IHZpZXdUeXBlcy5EYXlWaWV3XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhvdXItbGFiZWwtcGxhY2Vob2xkZXJcIiAqbmdJZj1cInZpZXdTZWxlY3Rpb25cIj5cclxuICAgICAgICAgIDx2aWV3LXNlbGVjdCBbc2VsZWN0ZWRWaWV3XT1cInZpZXdcIiAoc2VsZWN0ZWRWaWV3Q2hhbmdlKT1cImNoYW5nZVRoZVZpZXcoJGV2ZW50KVwiPjwvdmlldy1zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndlZWstZGF5LWxhYmVsXCI+XHJcbiAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3Qgc3ViLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludExlZnQpXCIgKGNsaWNrKT1cInN1YlVuaXQoKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXktZGVzY3JpcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiZGF5LmRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3QgYWRkLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludFJpZ2h0KVwiIChjbGljayk9XCJhZGRVbml0KClcIj48L2NvLWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWdlbmRhLWhlYWRlci13cmFwcGVyXCIgKm5nSWY9XCJ2aWV3ID09PSB2aWV3VHlwZXMuV2Vla1ZpZXdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaG91ci1sYWJlbC1wbGFjZWhvbGRlclwiICpuZ0lmPVwidmlld1NlbGVjdGlvblwiPlxyXG4gICAgICAgICAgPHZpZXctc2VsZWN0IFtzZWxlY3RlZFZpZXddPVwidmlld1wiIChzZWxlY3RlZFZpZXdDaGFuZ2UpPVwiY2hhbmdlVGhlVmlldygkZXZlbnQpXCI+PC92aWV3LXNlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2Vlay1kYXktbGFiZWxcIiAqbmdGb3I9XCJsZXQgd2Vla0RheSBvZiB3ZWVrRGF5czsgbGV0IGluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cIndlZWtEYXkud2Vla2RheVNlbGVjdGVkXCIgKGNsaWNrKT1cInNldFVuaXQod2Vla0RheSlcIj5cclxuICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwic2hvd0JhY2tCdXR0b24gJiYgaW5kZXggPT09IDBcIiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3Qgc3ViLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludExlZnQpXCIgKGNsaWNrKT1cInN1YlVuaXQoKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJ3ZWVrRGF5Lm5ld01vbnRoXCIgW3RleHRDb250ZW50XT1cIndlZWtEYXkud2Vla2RheU1vbnRoTG9uZyArICcgJyArIHdlZWtEYXkud2Vla2RheVllYXJcIlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cIm1vbnRoLWRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vla2RheS12YWx1ZVwiXHJcbiAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJjYXBpdGFsaXplU3RyaW5nKHdlZWtEYXkud2Vla2RheUxvbmcpICsgJyAnICsgd2Vla0RheS53ZWVrZGF5RGF5ICsgJyAnICsgY2FwaXRhbGl6ZVN0cmluZyh3ZWVrRGF5LndlZWtkYXlNb250aExvbmcpICsgJyAnICsgd2Vla0RheS53ZWVrZGF5WWVhciBcIj48L2Rpdj5cclxuICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWtkYXktZGVzY3JpcHRpb25cIiBbdGV4dENvbnRlbnRdPVwid2Vla0RheS53ZWVrZGF5WWVhclwiPjwvZGl2Pi0tPlxyXG5cclxuICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwiaW5kZXggPT09IDJcIiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3QgYWRkLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludFJpZ2h0KVwiIChjbGljayk9XCJhZGRVbml0KClcIj48L2NvLWljb24+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImFnZW5kYS1oZWFkZXItd3JhcHBlclwiICpuZ0lmPVwidmlldyA9PT0gdmlld1R5cGVzLldlZWtTZWxlY3RWaWV3XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndlZWstZGF5LWxhYmVsXCIgKm5nRm9yPVwibGV0IHdlZWtEYXkgb2Ygd2Vla0RheXM7IGxldCBpbmRleCA9IGluZGV4XCJcclxuICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJ3ZWVrRGF5LndlZWtkYXlTZWxlY3RlZFwiXHJcbiAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0YWJsZV09XCJ3ZWVrRGF5LmV2ZW50cyAmJiB3ZWVrRGF5LmV2ZW50cy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgIChjbGljayk9XCJzZXRVbml0KHdlZWtEYXkpXCI+XHJcbiAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cImluZGV4ID09PSAwICYmIHNob3dCYWNrQnV0dG9uXCIgY2xhc3M9XCJwb2ludGVyLWhvdmVyIG5vLXVzZXItc2VsZWN0IHN1Yi11bml0LWljb24gZGFya1wiXHJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnRMZWZ0KVwiIChjbGljayk9XCJzdWJVbml0KClcIj48L2NvLWljb24+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vla2RheS1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCJ3ZWVrRGF5LndlZWtkYXlTaG9ydFwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWtkYXktdmFsdWVcIiBbdGV4dENvbnRlbnRdPVwid2Vla0RheS53ZWVrZGF5RGF5ICsgJyAnICsgd2Vla0RheS53ZWVrZGF5TW9udGhTaG9ydFwiPjwvZGl2PlxyXG4gICAgICAgICAgPGNvLWljb24gKm5nSWY9XCJpbmRleCA9PT0gNlwiIGNsYXNzPVwicG9pbnRlci1ob3ZlciBuby11c2VyLXNlbGVjdCBhZGQtdW5pdC1pY29uIGRhcmtcIlxyXG4gICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50UmlnaHQpXCIgKGNsaWNrKT1cImFkZFVuaXQoKVwiPjwvY28taWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhZ2VuZGEtaGVhZGVyLXdyYXBwZXJcIiAqbmdJZj1cInZpZXcgPT09IHZpZXdUeXBlcy5Nb250aFZpZXdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2Vlay1kYXktbGFiZWxcIiAqbmdGb3I9XCJsZXQgd2Vla0RheSBvZiB3ZWVrRGF5czsgbGV0IGluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwiaW5kZXggPT09IDAgJiYgc2hvd0JhY2tCdXR0b25cIiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3Qgc3ViLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludExlZnQpXCIgKGNsaWNrKT1cInN1YlVuaXQoKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrZGF5LWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIndlZWtEYXkud2Vla2RheVNob3J0XCI+PC9kaXY+XHJcbiAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cImluZGV4ID09PSA2XCIgY2xhc3M9XCJwb2ludGVyLWhvdmVyIG5vLXVzZXItc2VsZWN0IGFkZC11bml0LWljb24gZGFya1wiXHJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnRSaWdodClcIiAoY2xpY2spPVwiYWRkVW5pdCgpXCI+PC9jby1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWdlbmRhSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudENoZWNrZWQge1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmlld1R5cGVzOiB0eXBlb2YgQ2FsZW5kYXJWaWV3ID0gQ2FsZW5kYXJWaWV3O1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Nyb2xsYmFyV2lkdGg6IG51bWJlciA9IDE1O1xyXG5cclxuICAgIHB1YmxpYyB0b2RheTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgc2VsZWN0ZWREYXRlKHZhbHVlOiBEYXRlKSB7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWREYXRlID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmVIZWFkZXJEYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBzZWxlY3RlZERhdGUoKTogRGF0ZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHZpZXc6IENhbGVuZGFyVmlldztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBmaXJzdEF2YWlsYWJsZURhdGUodmFsdWU6IERhdGUpIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fZmlyc3RBdmFpbGFibGVEYXRlID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLl9wcmVwYXJlSGVhZGVyRGF0YSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGZpcnN0QXZhaWxhYmxlRGF0ZSgpOiBEYXRlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZmlyc3RBdmFpbGFibGVEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGV2ZW50c1BlckRheSh2YWx1ZTogQWdlbmRhRXZlbnRQZXJEYXlbXSkge1xyXG4gICAgICAgIHRoaXMuX2V2ZW50c1BlckRheSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmVIZWFkZXJEYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB2aWV3U2VsZWN0aW9uOiBib29sZWFuO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHZpZXdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDYWxlbmRhclZpZXc+ID0gbmV3IEV2ZW50RW1pdHRlcjxDYWxlbmRhclZpZXc+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgc2VsZWN0ZWREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmFuZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuXHJcbiAgICBwdWJsaWMgd2Vla0RheXM6IFdlZWtkYXlbXSA9IFtdO1xyXG4gICAgcHVibGljIGRheTogRGF5ID0gTlVMTF9EQVk7XHJcbiAgICBwdWJsaWMgc2hvd0JhY2tCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIHByaXZhdGUgX3NlbGVjdGVkRGF0ZTogRGF0ZTtcclxuICAgIHByaXZhdGUgX2ZpcnN0QXZhaWxhYmxlRGF0ZTogRGF0ZTtcclxuICAgIHByaXZhdGUgX2V2ZW50c1BlckRheTogQWdlbmRhRXZlbnRQZXJEYXlbXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIHJlYWRvbmx5IF9sb2NhbGU6IExhbmd1YWdlQ29kZSxcclxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXHJcbiAgICAgICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2VcclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHRoaXMuX29uUmVzaXplKTtcclxuICAgICAgICB0aGlzLl9lbGVtZW50UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHRoaXMuX29uUmVzaXplKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmVzaXplSG9zdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdWJVbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZSkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdEYXRlOiBEYXRlID0gbmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMudmlldykge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuRGF5VmlldzpcclxuICAgICAgICAgICAgICAgICAgICBuZXdEYXRlLnNldERhdGUodGhpcy5zZWxlY3RlZERhdGUuZ2V0RGF0ZSgpIC0gMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5XZWVrVmlldzpcclxuICAgICAgICAgICAgICAgICAgICBuZXdEYXRlLnNldERhdGUodGhpcy5zZWxlY3RlZERhdGUuZ2V0RGF0ZSgpIC0gMyk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5XZWVrU2VsZWN0VmlldzpcclxuICAgICAgICAgICAgICAgICAgICBuZXdEYXRlLnNldERhdGUodGhpcy5zZWxlY3RlZERhdGUuZ2V0RGF0ZSgpIC0gNyk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5Nb250aFZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXRNb250aCh0aGlzLnNlbGVjdGVkRGF0ZS5nZXRNb250aCgpIC0gMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBuZXdEYXRlO1xyXG4gICAgICAgICAgICB0aGlzLnJhbmdlQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkVW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUpIHtcclxuICAgICAgICAgICAgY29uc3QgbmV3RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnZpZXcpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LkRheVZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSArIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuV2Vla1ZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSArIDMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuV2Vla1NlbGVjdFZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSArIDcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhWaWV3OlxyXG4gICAgICAgICAgICAgICAgICAgIG5ld0RhdGUuc2V0TW9udGgodGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbmV3RGF0ZTtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFVuaXQod2Vla0RheTogV2Vla2RheSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gd2Vla0RheS5kYXRlO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGFuZ2VUaGVWaWV3KHZpZXc6IENhbGVuZGFyVmlldyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmlldyA9IHZpZXc7XHJcbiAgICAgICAgdGhpcy52aWV3Q2hhbmdlLmVtaXQodmlldyk7XHJcbiAgICAgICAgdGhpcy5fcHJlcGFyZUhlYWRlckRhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9vblJlc2l6ZTogRXZlbnRMaXN0ZW5lciA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcclxuICAgICAgICB0aGlzLl9yZXNpemVIb3N0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOZWVkIHRvIHJlc2l6ZSB0aGUgaG9zdCBjb21wb25lbnQgdG8gc2l6ZSBpdCdzIGZpeGVkIHBvc2l0aW9uZWQgY2hpbGQgdGhyb3VnaCBjc3NcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfcmVzaXplSG9zdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fZWxlbWVudFJlZikge1xyXG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJ3aWR0aFwiLCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5jbGllbnRXaWR0aCAtIHRoaXMuc2Nyb2xsYmFyV2lkdGggKyBcInB4XCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wcmVwYXJlSGVhZGVyRGF0YSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUpIHtcclxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnZpZXcpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LkRheVZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF5OiBEYXkgPSBuZXcgRGF5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF5LmRhdGUgPSBuZXcgRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uczogYW55ID0geyB5ZWFyOiBcIm51bWVyaWNcIiwgbW9udGg6IFwibG9uZ1wiLCBkYXk6IFwibnVtZXJpY1wiIH07XHJcbiAgICAgICAgICAgICAgICAgICAgZGF5LmRlc2NyaXB0aW9uID0gdGhpcy5zZWxlY3RlZERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKHRoaXMuX2xvY2FsZSwgb3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXkgPSBkYXk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5XZWVrVmlldzpcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ZWVrVmlldzogV2VlayA9IENhbGVuZGFyVXRpbHMuR2V0RGF5c09mV2Vlayh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWVrRGF5cyA9IHdlZWtWaWV3LndlZWtEYXlzO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpcnN0QXZhaWxhYmxlRGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dCYWNrQnV0dG9uID0gdGhpcy53ZWVrRGF5cy5maW5kKHdkID0+IERhdGVVdGlscy5EYXRlc0VxdWFsKHRoaXMuZmlyc3RBdmFpbGFibGVEYXRlLCB3ZC5kYXRlKSkgPT09IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5XZWVrU2VsZWN0VmlldzpcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ZWVrU2VsZWN0VmlldzogV2VlayA9IENhbGVuZGFyVXRpbHMuR2V0RGF5c09mV2Vlayh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWVrRGF5cyA9IHdlZWtTZWxlY3RWaWV3LndlZWtEYXlzO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2Vla0RheXMuZm9yRWFjaCgod2Q6IFdlZWtkYXkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXZQZXJEYXk6IEFnZW5kYUV2ZW50UGVyRGF5ID0gdGhpcy5fZXZlbnRzUGVyRGF5ICYmIHRoaXMuX2V2ZW50c1BlckRheS5sZW5ndGggPiAwID8gdGhpcy5fZXZlbnRzUGVyRGF5LmZpbmQoZSA9PiBEYXRlVXRpbHMuRGF0ZXNFcXVhbChlLmRhdGUsIHdkLmRhdGUpKSA6IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldlBlckRheSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2QuZXZlbnRzID0gZXZQZXJEYXkuZXZlbnRzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Qud2Vla2RheVNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5maXJzdEF2YWlsYWJsZURhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93QmFja0J1dHRvbiA9IHRoaXMud2Vla0RheXMuZmluZCh3ZCA9PiBEYXRlVXRpbHMuRGF0ZXNFcXVhbCh0aGlzLmZpcnN0QXZhaWxhYmxlRGF0ZSwgd2QuZGF0ZSkpID09PSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhWaWV3OlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdlZWtPZk1vbnRoOiBXZWVrID0gQ2FsZW5kYXJVdGlscy5HZXREYXlzT2ZXZWVrKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndlZWtEYXlzID0gd2Vla09mTW9udGgud2Vla0RheXM7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlyc3RBdmFpbGFibGVEYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0JhY2tCdXR0b24gPSB0aGlzLndlZWtEYXlzLmZpbmQod2QgPT4gRGF0ZVV0aWxzLkRhdGVzRXF1YWwodGhpcy5maXJzdEF2YWlsYWJsZURhdGUsIHdkLmRhdGUpKSA9PT0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2FwaXRhbGl6ZVN0cmluZyhsYWJlbDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgcmV0dXJuIGxhYmVsWzBdLnRvVXBwZXJDYXNlKCkgKyBsYWJlbC5zbGljZSgxKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
281
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbmRhLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBsYW5uaW5nL2NvbXBvbmVudC9hZ2VuZGEvYWdlbmRhLWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBR04sTUFBTSxFQUNOLFNBQVMsRUFBRSxpQkFBaUIsRUFDN0IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUdqRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDL0QsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQTtBQUMvQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFaEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBZ0Z4RSxNQUFNLE9BQU8scUJBQXFCO0lBMkQ5QixZQUN3QyxPQUFxQixFQUNqRCxXQUF1QixFQUN2QixTQUFvQixFQUNwQixPQUFlLEVBQ2hCLGdCQUFrQztRQUpMLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFDakQsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixZQUFPLEdBQVAsT0FBTyxD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QUNWLEtBQUssWUFBWSxDQUFDLFNBQVM7b0JBQ3ZCLE1BQU0sV0FBVyxHQUFTLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUN6RSxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7b0JBQ3JDLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO3dCQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDO3FCQUN4SDtvQkFDRCxNQUFNO2FBQ2I7U0FDSjtJQUNMLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFhO1FBQ25DLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQzs7O1lBaFNKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBeUVUO2dCQUNILGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUF4Rk8sWUFBWSx1QkFxSlgsTUFBTSxTQUFDLFNBQVM7WUFqS3ZCLFVBQVU7WUFTVixTQUFTO1lBSlQsTUFBTTtZQWdCQSxnQkFBZ0I7OzsyQkF3Rm5CLEtBQUs7bUJBVUwsS0FBSztpQ0FHTCxLQUFLOzJCQVlMLEtBQUs7NEJBTUwsS0FBSzt5QkFHTCxNQUFNO2lDQUdOLE1BQU07MEJBR04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIExPQ0FMRV9JRCxcclxuICBOZ1pvbmUsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUmVuZGVyZXIyLCBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Q2FsZW5kYXJWaWV3fSBmcm9tIFwiLi4vLi4vLi4vLi4vZW51bS9jYWxlbmRhci12aWV3LmVudW1cIjtcclxuaW1wb3J0IHtMYW5ndWFnZUNvZGV9IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL2xhbmd1YWdlLWNvZGUuZW51bVwiO1xyXG5pbXBvcnQge1dlZWtkYXl9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbC93ZWVrZGF5Lm1vZGVsXCI7XHJcbmltcG9ydCB7V2Vla30gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVsL3dlZWsubW9kZWxcIjtcclxuaW1wb3J0IHtDYWxlbmRhclV0aWxzfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbHMvY2FsZW5kYXIudXRpbHNcIjtcclxuaW1wb3J0IHtOVUxMX0RBWX0gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVsL2FnZW5kYS1udWxsLW9iamVjdHNcIjtcclxuaW1wb3J0IHtEYXl9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbC9kYXkubW9kZWxcIlxyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0FnZW5kYUV2ZW50UGVyRGF5fSBmcm9tIFwiLi4vLi4vLi4vLi4vbW9kZWwvYWdlbmRhLWV2ZW50LXBlci1kYXkubW9kZWxcIjtcclxuaW1wb3J0IHtEYXRlVXRpbHN9IGZyb20gXCIuLi8uLi8uLi8uLi91dGlscy9kYXRlLXV0aWxzXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImFnZW5kYS1oZWFkZXJcIixcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhZ2VuZGEtaGVhZGVyLXdyYXBwZXJcIiAqbmdJZj1cInZpZXcgPT09IHZpZXdUeXBlcy5EYXlWaWV3XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhvdXItbGFiZWwtcGxhY2Vob2xkZXJcIiAqbmdJZj1cInZpZXdTZWxlY3Rpb25cIj5cclxuICAgICAgICAgIDx2aWV3LXNlbGVjdCBbc2VsZWN0ZWRWaWV3XT1cInZpZXdcIiAoc2VsZWN0ZWRWaWV3Q2hhbmdlKT1cImNoYW5nZVRoZVZpZXcoJGV2ZW50KVwiPjwvdmlldy1zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndlZWstZGF5LWxhYmVsXCI+XHJcbiAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3Qgc3ViLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludExlZnQpXCIgKGNsaWNrKT1cInN1YlVuaXQoKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXktZGVzY3JpcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiZGF5LmRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3QgYWRkLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludFJpZ2h0KVwiIChjbGljayk9XCJhZGRVbml0KClcIj48L2NvLWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWdlbmRhLWhlYWRlci13cmFwcGVyIGRheXMtYXJvdW5kXCIgKm5nSWY9XCJ2aWV3ID09PSB2aWV3VHlwZXMuRGF5c0Fyb3VuZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJob3VyLWxhYmVsLXBsYWNlaG9sZGVyXCIgKm5nSWY9XCJ2aWV3U2VsZWN0aW9uXCI+XHJcbiAgICAgICAgICA8dmlldy1zZWxlY3QgW3NlbGVjdGVkVmlld109XCJ2aWV3XCIgKHNlbGVjdGVkVmlld0NoYW5nZSk9XCJjaGFuZ2VUaGVWaWV3KCRldmVudClcIj48L3ZpZXctc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrLWRheS1sYWJlbCBkYXlzLWFyb3VuZFwiICpuZ0Zvcj1cImxldCB3ZWVrRGF5IG9mIHdlZWtEYXlzOyBsZXQgaW5kZXggPSBpbmRleFwiXHJcbiAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwid2Vla0RheS53ZWVrZGF5U2VsZWN0ZWRcIiAoY2xpY2spPVwic2V0VW5pdCh3ZWVrRGF5KVwiPlxyXG4gICAgICAgICAgPGNvLWljb24gKm5nSWY9XCJzaG93QmFja0J1dHRvbiAmJiBpbmRleCA9PT0gMFwiIGNsYXNzPVwicG9pbnRlci1ob3ZlciBuby11c2VyLXNlbGVjdCBzdWItdW5pdC1pY29uIGRhcmtcIlxyXG4gICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50TGVmdClcIiAoY2xpY2spPVwic3ViVW5pdCgpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cIndlZWtEYXkubmV3TW9udGhcIiBbdGV4dENvbnRlbnRdPVwid2Vla0RheS53ZWVrZGF5TW9udGhMb25nICsgJyAnICsgd2Vla0RheS53ZWVrZGF5WWVhclwiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwibW9udGgtZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrZGF5LXZhbHVlIGRheVwiXHJcbiAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJjYXBpdGFsaXplU3RyaW5nKHdlZWtEYXkud2Vla2RheVNob3J0KVwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWtkYXktdmFsdWUgZGF0ZVwiXHJcbiAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJ3ZWVrRGF5LndlZWtkYXlEYXlcIj48L2Rpdj5cclxuICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwiaW5kZXggPT09IDZcIiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3QgYWRkLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludFJpZ2h0KVwiIChjbGljayk9XCJhZGRVbml0KClcIj48L2NvLWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWdlbmRhLWhlYWRlci13cmFwcGVyXCIgKm5nSWY9XCJ2aWV3ID09PSB2aWV3VHlwZXMuV2Vla1ZpZXdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaG91ci1sYWJlbC1wbGFjZWhvbGRlclwiICpuZ0lmPVwidmlld1NlbGVjdGlvblwiPlxyXG4gICAgICAgICAgPHZpZXctc2VsZWN0IFtzZWxlY3RlZFZpZXddPVwidmlld1wiIChzZWxlY3RlZFZpZXdDaGFuZ2UpPVwiY2hhbmdlVGhlVmlldygkZXZlbnQpXCI+PC92aWV3LXNlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2Vlay1kYXktbGFiZWxcIiAqbmdGb3I9XCJsZXQgd2Vla0RheSBvZiB3ZWVrRGF5czsgbGV0IGluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cIndlZWtEYXkud2Vla2RheVNlbGVjdGVkXCIgKGNsaWNrKT1cInNldFVuaXQod2Vla0RheSlcIj5cclxuICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwic2hvd0JhY2tCdXR0b24gJiYgaW5kZXggPT09IDBcIiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3Qgc3ViLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludExlZnQpXCIgKGNsaWNrKT1cInN1YlVuaXQoKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJ3ZWVrRGF5Lm5ld01vbnRoXCIgW3RleHRDb250ZW50XT1cIndlZWtEYXkud2Vla2RheU1vbnRoTG9uZyArICcgJyArIHdlZWtEYXkud2Vla2RheVllYXJcIlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cIm1vbnRoLWRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vla2RheS12YWx1ZVwiXHJcbiAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJjYXBpdGFsaXplU3RyaW5nKHdlZWtEYXkud2Vla2RheUxvbmcpICsgJyAnICsgd2Vla0RheS53ZWVrZGF5RGF5ICsgJyAnICsgY2FwaXRhbGl6ZVN0cmluZyh3ZWVrRGF5LndlZWtkYXlNb250aExvbmcpICsgJyAnICsgd2Vla0RheS53ZWVrZGF5WWVhciBcIj48L2Rpdj5cclxuICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwiaW5kZXggPT09IDJcIiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3QgYWRkLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludFJpZ2h0KVwiIChjbGljayk9XCJhZGRVbml0KClcIj48L2NvLWljb24+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImFnZW5kYS1oZWFkZXItd3JhcHBlclwiICpuZ0lmPVwidmlldyA9PT0gdmlld1R5cGVzLldlZWtTZWxlY3RWaWV3XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndlZWstZGF5LWxhYmVsXCIgKm5nRm9yPVwibGV0IHdlZWtEYXkgb2Ygd2Vla0RheXM7IGxldCBpbmRleCA9IGluZGV4XCJcclxuICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJ3ZWVrRGF5LndlZWtkYXlTZWxlY3RlZFwiXHJcbiAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0YWJsZV09XCJ3ZWVrRGF5LmV2ZW50cyAmJiB3ZWVrRGF5LmV2ZW50cy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgIChjbGljayk9XCJzZXRVbml0KHdlZWtEYXkpXCI+XHJcbiAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cImluZGV4ID09PSAwICYmIHNob3dCYWNrQnV0dG9uXCIgY2xhc3M9XCJwb2ludGVyLWhvdmVyIG5vLXVzZXItc2VsZWN0IHN1Yi11bml0LWljb24gZGFya1wiXHJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnRMZWZ0KVwiIChjbGljayk9XCJzdWJVbml0KClcIj48L2NvLWljb24+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vla2RheS1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCJ3ZWVrRGF5LndlZWtkYXlTaG9ydFwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWtkYXktdmFsdWVcIiBbdGV4dENvbnRlbnRdPVwid2Vla0RheS53ZWVrZGF5RGF5ICsgJyAnICsgd2Vla0RheS53ZWVrZGF5TW9udGhTaG9ydFwiPjwvZGl2PlxyXG4gICAgICAgICAgPGNvLWljb24gKm5nSWY9XCJpbmRleCA9PT0gNlwiIGNsYXNzPVwicG9pbnRlci1ob3ZlciBuby11c2VyLXNlbGVjdCBhZGQtdW5pdC1pY29uIGRhcmtcIlxyXG4gICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50UmlnaHQpXCIgKGNsaWNrKT1cImFkZFVuaXQoKVwiPjwvY28taWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhZ2VuZGEtaGVhZGVyLXdyYXBwZXJcIiAqbmdJZj1cInZpZXcgPT09IHZpZXdUeXBlcy5Nb250aFZpZXdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2Vlay1kYXktbGFiZWxcIiAqbmdGb3I9XCJsZXQgd2Vla0RheSBvZiB3ZWVrRGF5czsgbGV0IGluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwiaW5kZXggPT09IDAgJiYgc2hvd0JhY2tCdXR0b25cIiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3Qgc3ViLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludExlZnQpXCIgKGNsaWNrKT1cInN1YlVuaXQoKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrZGF5LWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIndlZWtEYXkud2Vla2RheVNob3J0XCI+PC9kaXY+XHJcbiAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cImluZGV4ID09PSA2XCIgY2xhc3M9XCJwb2ludGVyLWhvdmVyIG5vLXVzZXItc2VsZWN0IGFkZC11bml0LWljb24gZGFya1wiXHJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnRSaWdodClcIiAoY2xpY2spPVwiYWRkVW5pdCgpXCI+PC9jby1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWdlbmRhSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudENoZWNrZWQge1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmlld1R5cGVzOiB0eXBlb2YgQ2FsZW5kYXJWaWV3ID0gQ2FsZW5kYXJWaWV3O1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Nyb2xsYmFyV2lkdGg6IG51bWJlciA9IDE1O1xyXG5cclxuICAgIHB1YmxpYyB0b2RheTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgc2VsZWN0ZWREYXRlKHZhbHVlOiBEYXRlKSB7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWREYXRlID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmVIZWFkZXJEYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBzZWxlY3RlZERhdGUoKTogRGF0ZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHZpZXc6IENhbGVuZGFyVmlldztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBmaXJzdEF2YWlsYWJsZURhdGUodmFsdWU6IERhdGUpIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fZmlyc3RBdmFpbGFibGVEYXRlID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLl9wcmVwYXJlSGVhZGVyRGF0YSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGZpcnN0QXZhaWxhYmxlRGF0ZSgpOiBEYXRlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZmlyc3RBdmFpbGFibGVEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGV2ZW50c1BlckRheSh2YWx1ZTogQWdlbmRhRXZlbnRQZXJEYXlbXSkge1xyXG4gICAgICAgIHRoaXMuX2V2ZW50c1BlckRheSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmVIZWFkZXJEYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB2aWV3U2VsZWN0aW9uOiBib29sZWFuO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHZpZXdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDYWxlbmRhclZpZXc+ID0gbmV3IEV2ZW50RW1pdHRlcjxDYWxlbmRhclZpZXc+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgc2VsZWN0ZWREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmFuZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuXHJcbiAgICBwdWJsaWMgd2Vla0RheXM6IFdlZWtkYXlbXSA9IFtdO1xyXG4gICAgcHVibGljIGRheTogRGF5ID0gTlVMTF9EQVk7XHJcbiAgICBwdWJsaWMgc2hvd0JhY2tCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIHByaXZhdGUgX3NlbGVjdGVkRGF0ZTogRGF0ZTtcclxuICAgIHByaXZhdGUgX2ZpcnN0QXZhaWxhYmxlRGF0ZTogRGF0ZTtcclxuICAgIHByaXZhdGUgX2V2ZW50c1BlckRheTogQWdlbmRhRXZlbnRQZXJEYXlbXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIHJlYWRvbmx5IF9sb2NhbGU6IExhbmd1YWdlQ29kZSxcclxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXHJcbiAgICAgICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2VcclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHRoaXMuX29uUmVzaXplKTtcclxuICAgICAgICB0aGlzLl9lbGVtZW50UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHRoaXMuX29uUmVzaXplKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmVzaXplSG9zdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdWJVbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZSkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdEYXRlOiBEYXRlID0gbmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMudmlldykge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuRGF5VmlldzpcclxuICAgICAgICAgICAgICAgICAgICBuZXdEYXRlLnNldERhdGUodGhpcy5zZWxlY3RlZERhdGUuZ2V0RGF0ZSgpIC0gMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5EYXlzQXJvdW5kOlxyXG4gICAgICAgICAgICAgICAgICBuZXdEYXRlLnNldERhdGUodGhpcy5zZWxlY3RlZERhdGUuZ2V0RGF0ZSgpIC0gMSk7XHJcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuV2Vla1ZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSAtIDMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuV2Vla1NlbGVjdFZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSAtIDcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhWaWV3OlxyXG4gICAgICAgICAgICAgICAgICAgIG5ld0RhdGUuc2V0TW9udGgodGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSAtIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbmV3RGF0ZTtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZFVuaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGU6IERhdGUgPSBuZXcgRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy52aWV3KSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5EYXlWaWV3OlxyXG4gICAgICAgICAgICAgICAgICAgIG5ld0RhdGUuc2V0RGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZS5nZXREYXRlKCkgKyAxKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LkRheXNBcm91bmQ6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSArIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuV2Vla1ZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSArIDMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuV2Vla1NlbGVjdFZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSArIDcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhWaWV3OlxyXG4gICAgICAgICAgICAgICAgICAgIG5ld0RhdGUuc2V0TW9udGgodGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbmV3RGF0ZTtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFVuaXQod2Vla0RheTogV2Vla2RheSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gd2Vla0RheS5kYXRlO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGFuZ2VUaGVWaWV3KHZpZXc6IENhbGVuZGFyVmlldyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmlldyA9IHZpZXc7XHJcbiAgICAgICAgdGhpcy52aWV3Q2hhbmdlLmVtaXQodmlldyk7XHJcbiAgICAgICAgdGhpcy5fcHJlcGFyZUhlYWRlckRhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9vblJlc2l6ZTogRXZlbnRMaXN0ZW5lciA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcclxuICAgICAgICB0aGlzLl9yZXNpemVIb3N0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOZWVkIHRvIHJlc2l6ZSB0aGUgaG9zdCBjb21wb25lbnQgdG8gc2l6ZSBpdCdzIGZpeGVkIHBvc2l0aW9uZWQgY2hpbGQgdGhyb3VnaCBjc3NcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfcmVzaXplSG9zdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fZWxlbWVudFJlZikge1xyXG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJ3aWR0aFwiLCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5jbGllbnRXaWR0aCAtIHRoaXMuc2Nyb2xsYmFyV2lkdGggKyBcInB4XCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wcmVwYXJlSGVhZGVyRGF0YSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUpIHtcclxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnZpZXcpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LkRheVZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF5OiBEYXkgPSBuZXcgRGF5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF5LmRhdGUgPSBuZXcgRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uczogYW55ID0geyB5ZWFyOiBcIm51bWVyaWNcIiwgbW9udGg6IFwibG9uZ1wiLCBkYXk6IFwibnVtZXJpY1wiIH07XHJcbiAgICAgICAgICAgICAgICAgICAgZGF5LmRlc2NyaXB0aW9uID0gdGhpcy5zZWxlY3RlZERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKHRoaXMuX2xvY2FsZSwgb3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXkgPSBkYXk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5EYXlzQXJvdW5kOlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdlZWtBcm91bmRWaWV3OiBXZWVrID0gQ2FsZW5kYXJVdGlscy5HZXREYXlzQXJvdW5kKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndlZWtEYXlzID0gd2Vla0Fyb3VuZFZpZXcud2Vla0RheXM7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlyc3RBdmFpbGFibGVEYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dCYWNrQnV0dG9uID0gdGhpcy53ZWVrRGF5cy5maW5kKHdkID0+IERhdGVVdGlscy5EYXRlc0VxdWFsKHRoaXMuZmlyc3RBdmFpbGFibGVEYXRlLCB3ZC5kYXRlKSkgPT09IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5XZWVrVmlldzpcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ZWVrVmlldzogV2VlayA9IENhbGVuZGFyVXRpbHMuR2V0RGF5c09mV2Vlayh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWVrRGF5cyA9IHdlZWtWaWV3LndlZWtEYXlzO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpcnN0QXZhaWxhYmxlRGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dCYWNrQnV0dG9uID0gdGhpcy53ZWVrRGF5cy5maW5kKHdkID0+IERhdGVVdGlscy5EYXRlc0VxdWFsKHRoaXMuZmlyc3RBdmFpbGFibGVEYXRlLCB3ZC5kYXRlKSkgPT09IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5XZWVrU2VsZWN0VmlldzpcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ZWVrU2VsZWN0VmlldzogV2VlayA9IENhbGVuZGFyVXRpbHMuR2V0RGF5c09mV2Vlayh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWVrRGF5cyA9IHdlZWtTZWxlY3RWaWV3LndlZWtEYXlzO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2Vla0RheXMuZm9yRWFjaCgod2Q6IFdlZWtkYXkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXZQZXJEYXk6IEFnZW5kYUV2ZW50UGVyRGF5ID0gdGhpcy5fZXZlbnRzUGVyRGF5ICYmIHRoaXMuX2V2ZW50c1BlckRheS5sZW5ndGggPiAwID8gdGhpcy5fZXZlbnRzUGVyRGF5LmZpbmQoZSA9PiBEYXRlVXRpbHMuRGF0ZXNFcXVhbChlLmRhdGUsIHdkLmRhdGUpKSA6IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldlBlckRheSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2QuZXZlbnRzID0gZXZQZXJEYXkuZXZlbnRzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Qud2Vla2RheVNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5maXJzdEF2YWlsYWJsZURhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93QmFja0J1dHRvbiA9IHRoaXMud2Vla0RheXMuZmluZCh3ZCA9PiBEYXRlVXRpbHMuRGF0ZXNFcXVhbCh0aGlzLmZpcnN0QXZhaWxhYmxlRGF0ZSwgd2QuZGF0ZSkpID09PSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhWaWV3OlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdlZWtPZk1vbnRoOiBXZWVrID0gQ2FsZW5kYXJVdGlscy5HZXREYXlzT2ZXZWVrKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndlZWtEYXlzID0gd2Vla09mTW9udGgud2Vla0RheXM7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlyc3RBdmFpbGFibGVEYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0JhY2tCdXR0b24gPSB0aGlzLndlZWtEYXlzLmZpbmQod2QgPT4gRGF0ZVV0aWxzLkRhdGVzRXF1YWwodGhpcy5maXJzdEF2YWlsYWJsZURhdGUsIHdkLmRhdGUpKSA9PT0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2FwaXRhbGl6ZVN0cmluZyhsYWJlbDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgcmV0dXJuIGxhYmVsWzBdLnRvVXBwZXJDYXNlKCkgKyBsYWJlbC5zbGljZSgxKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -12,12 +12,12 @@ export class ImageDisplayComponent {
|
|
|
12
12
|
ImageDisplayComponent.decorators = [
|
|
13
13
|
{ type: Component, args: [{
|
|
14
14
|
selector: "co-image-display",
|
|
15
|
-
template: `
|
|
16
|
-
<img class="image" *ngIf="!!model" [src]="model">
|
|
17
|
-
<div class="no-image" *ngIf="!model">
|
|
18
|
-
<div class="img"></div>
|
|
19
|
-
<div class="no-image-label" [textContent]="label | localize"></div>
|
|
20
|
-
</div>
|
|
15
|
+
template: `
|
|
16
|
+
<img class="image" *ngIf="!!model" [src]="model">
|
|
17
|
+
<div class="no-image" *ngIf="!model">
|
|
18
|
+
<div class="img"></div>
|
|
19
|
+
<div class="no-image-label" [textContent]="label | localize"></div>
|
|
20
|
+
</div>
|
|
21
21
|
`,
|
|
22
22
|
providers: [{
|
|
23
23
|
provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,
|
|
@@ -33,4 +33,4 @@ ImageDisplayComponent.propDecorators = {
|
|
|
33
33
|
showClass: [{ type: HostBinding, args: ['class.co-image-display',] }],
|
|
34
34
|
hidden: [{ type: HostBinding, args: ["class.co-transaction-hidden",] }]
|
|
35
35
|
};
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZGlzcGxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9pbWFnZS1kaXNwbGF5L2ltYWdlLWRpc3BsYXkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFDLDhDQUE4QyxFQUErQixNQUFNLDhCQUE4QixDQUFDO0FBaUIxSCxNQUFNLE9BQU8scUJBQXFCO0lBZmxDO1FBb0JFLCtFQUErRTtRQUV4RSxVQUFLLEdBQVcsVUFBVSxDQUFDO0lBZ0JwQyxDQUFDO0lBYlEsU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7O1lBM0JGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixRQUFRLEVBQUU7Ozs7OztHQU1UO2dCQUNELFNBQVMsRUFBRSxDQUFDO3dCQUNWLE9BQU8sRUFBRSw4Q0FBOEM7d0JBQ3ZELFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7cUJBQUM7aUJBQ3REO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7b0JBR0UsS0FBSztvQkFJTCxLQUFLO3dCQUdMLFdBQVcsU0FBQyx3QkFBd0I7cUJBTXBDLFdBQVcsU0FBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUsIFNjcmVlbkNvbmZpZ0FkYXB0ZXJDb21wb25lbnR9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiY28taW1hZ2UtZGlzcGxheVwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpbWcgY2xhc3M9XCJpbWFnZVwiICpuZ0lmPVwiISFtb2RlbFwiIFtzcmNdPVwibW9kZWxcIj5cbiAgICA8ZGl2IGNsYXNzPVwibm8taW1hZ2VcIiAqbmdJZj1cIiFtb2RlbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImltZ1wiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm5vLWltYWdlLWxhYmVsXCIgW3RleHRDb250ZW50XT1cImxhYmVsIHwgbG9jYWxpemVcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW1hZ2VEaXNwbGF5Q29tcG9uZW50KX1cbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZURpc3BsYXlDb21wb25lbnQgaW1wbGVtZW50cyBTY3JlZW5Db25maWdBZGFwdGVyQ29tcG9uZW50IHtcbiAgLy8gSW1hZ2UgZGF0YSBVUkkgc3RyaW5nLiBNZWFudCBmb3IgZGlyZWN0IHVzZSBpbiBbc3JjXSBhdHRyaWJ1dGUgb2YgYW4gPGltZz4gdGFnLlxuICBASW5wdXQoKVxuICBwdWJsaWMgbW9kZWw6IHN0cmluZztcblxuICAvLyBUaGUgKGxvY2FsaXplZCkgdGV4dCB0byBzaG93IHdoZW4gdGhlcmUgaXMgbm8gaW1hZ2UuIERlZmF1bHRzIHRvICdOT19JTUFHRScuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nID0gXCJOT19JTUFHRVwiO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28taW1hZ2UtZGlzcGxheScpXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgb2JqZWN0Q29uZmlnTmFtZTogc3RyaW5nO1xuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1oaWRkZW5cIilcbiAgcHVibGljIGhpZGRlbjogYm9vbGVhbjtcbiAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xuICBwdWJsaWMgZm9yY2VSZWFkb25seTogYm9vbGVhbjtcbiAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuO1xuICBwdWJsaWMgbWF4TGVuZ3RoOiBudW1iZXI7XG4gIHB1YmxpYyBkZWNpbWFsczogbnVtYmVyO1xuICBwdWJsaWMgcmVkRXJyb3JCYWNrZ3JvdW5kOiBib29sZWFuO1xufVxuIl19
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild } from "@angular/core";
|
|
3
|
+
import { FormComponent, FormMasterService } from "@colijnit/corecomponents_v12";
|
|
4
|
+
import { Icon } from "../../../../enum/icon.enum";
|
|
5
|
+
import { InputBoolean } from "../../../../decorator/input-boolean.decorator";
|
|
6
|
+
export class ActivitySummaryBlockComponent {
|
|
7
|
+
constructor(_formMaster, elementRef) {
|
|
8
|
+
this._formMaster = _formMaster;
|
|
9
|
+
this.elementRef = elementRef;
|
|
10
|
+
this.Icon = Icon;
|
|
11
|
+
this.noBorder = false;
|
|
12
|
+
this.readonly = false;
|
|
13
|
+
this.showButtons = false;
|
|
14
|
+
this.hideCancel = false;
|
|
15
|
+
this.actionIcon = false;
|
|
16
|
+
this.expandable = false;
|
|
17
|
+
this.saveClick = new EventEmitter();
|
|
18
|
+
this.cancelClick = new EventEmitter();
|
|
19
|
+
}
|
|
20
|
+
showClass() {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
get summaryElement() {
|
|
24
|
+
return this.elementRef;
|
|
25
|
+
}
|
|
26
|
+
ngOnDestroy() {
|
|
27
|
+
this.elementRef = undefined;
|
|
28
|
+
}
|
|
29
|
+
handleOkClick(event) {
|
|
30
|
+
if (this.mainForm) {
|
|
31
|
+
this.mainForm.submit();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
handleCancelClick(event) {
|
|
35
|
+
this.cancelClick.next(event);
|
|
36
|
+
}
|
|
37
|
+
onValid() {
|
|
38
|
+
this.saveClick.next(null);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
ActivitySummaryBlockComponent.decorators = [
|
|
42
|
+
{ type: Component, args: [{
|
|
43
|
+
selector: "co-activity-summary-block",
|
|
44
|
+
template: `
|
|
45
|
+
<div class="block-wrapper border">
|
|
46
|
+
<div class="activity-summary-block-edit-template" [id]="cssId">
|
|
47
|
+
<co-form (validSubmit)="onValid()">
|
|
48
|
+
<div class="template-wrapper">
|
|
49
|
+
<ng-template [templateWrapper]="editTemplate" *ngIf="editTemplate"></ng-template>
|
|
50
|
+
</div>
|
|
51
|
+
</co-form>
|
|
52
|
+
<div class="ok-cancel-buttons" *ngIf="showButtons">
|
|
53
|
+
<co-button [disabled]="readonly" [textContent]="'OK' | localize" (click)="handleOkClick($event)"></co-button>
|
|
54
|
+
<co-button *ngIf="hideCancel" [textContent]="'STICKER' | localize" (click)="handleCancelClick($event)"></co-button>
|
|
55
|
+
<ng-template [templateWrapper]="extraButtonsTemplate" *ngIf="extraButtonsTemplate"></ng-template>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
`,
|
|
60
|
+
providers: [
|
|
61
|
+
FormMasterService
|
|
62
|
+
]
|
|
63
|
+
},] }
|
|
64
|
+
];
|
|
65
|
+
ActivitySummaryBlockComponent.ctorParameters = () => [
|
|
66
|
+
{ type: FormMasterService },
|
|
67
|
+
{ type: ElementRef }
|
|
68
|
+
];
|
|
69
|
+
ActivitySummaryBlockComponent.propDecorators = {
|
|
70
|
+
mainForm: [{ type: ViewChild, args: [FormComponent,] }],
|
|
71
|
+
cssId: [{ type: Input }],
|
|
72
|
+
noBorder: [{ type: HostBinding, args: ["class.no-border",] }, { type: Input }],
|
|
73
|
+
icon: [{ type: Input }],
|
|
74
|
+
editIcon: [{ type: Input }],
|
|
75
|
+
image: [{ type: Input }],
|
|
76
|
+
editTitle: [{ type: Input }],
|
|
77
|
+
editTemplate: [{ type: Input }],
|
|
78
|
+
extraButtonsTemplate: [{ type: Input }],
|
|
79
|
+
readonly: [{ type: Input }],
|
|
80
|
+
showButtons: [{ type: Input }],
|
|
81
|
+
hideCancel: [{ type: Input }],
|
|
82
|
+
actionIcon: [{ type: HostBinding, args: ["class.icon-action",] }, { type: Input }],
|
|
83
|
+
expandable: [{ type: Input }],
|
|
84
|
+
saveClick: [{ type: Output }],
|
|
85
|
+
cancelClick: [{ type: Output }],
|
|
86
|
+
showClass: [{ type: HostBinding, args: ["class.co-activity-summary-block",] }]
|
|
87
|
+
};
|
|
88
|
+
__decorate([
|
|
89
|
+
InputBoolean()
|
|
90
|
+
], ActivitySummaryBlockComponent.prototype, "noBorder", void 0);
|
|
91
|
+
__decorate([
|
|
92
|
+
InputBoolean()
|
|
93
|
+
], ActivitySummaryBlockComponent.prototype, "hideCancel", void 0);
|
|
94
|
+
__decorate([
|
|
95
|
+
InputBoolean()
|
|
96
|
+
], ActivitySummaryBlockComponent.prototype, "actionIcon", void 0);
|
|
97
|
+
__decorate([
|
|
98
|
+
InputBoolean()
|
|
99
|
+
], ActivitySummaryBlockComponent.prototype, "expandable", void 0);
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktc3VtbWFyeS1ibG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2RpZnktdGFzay1mb3JtL2NvbXBvbmVudHMvYWN0aXZpdHktc3VtbWFyeS1ibG9jay9hY3Rpdml0eS1zdW1tYXJ5LWJsb2NrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFlLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqSSxPQUFPLEVBQUMsYUFBYSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDOUUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2hELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQXdCM0UsTUFBTSxPQUFPLDZCQUE2QjtJQW1FdEMsWUFBb0IsV0FBOEIsRUFBUyxVQUFzQjtRQUE3RCxnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBakVqRSxTQUFJLEdBQWdCLElBQUksQ0FBQztRQVdsQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBcUIxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBSTdCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFLNUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUk1QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBRzVCLGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUd2RCxnQkFBVyxHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFDO0lBYTlFLENBQUM7SUFWTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBTUQsV0FBVztRQUNQLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBaUI7UUFDbEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxLQUFpQjtRQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU0sT0FBTztRQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7OztZQTdHSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7S0FlVDtnQkFDRCxTQUFTLEVBQUU7b0JBQ1AsaUJBQWlCO2lCQUNwQjthQUNKOzs7WUF6QnNCLGlCQUFpQjtZQURyQixVQUFVOzs7dUJBK0J4QixTQUFTLFNBQUMsYUFBYTtvQkFHdkIsS0FBSzt1QkFHTCxXQUFXLFNBQUMsaUJBQWlCLGNBQzdCLEtBQUs7bUJBSUwsS0FBSzt1QkFHTCxLQUFLO29CQUdMLEtBQUs7d0JBR0wsS0FBSzsyQkFHTCxLQUFLO21DQUdMLEtBQUs7dUJBR0wsS0FBSzswQkFHTCxLQUFLO3lCQUdMLEtBQUs7eUJBSUwsV0FBVyxTQUFDLG1CQUFtQixjQUMvQixLQUFLO3lCQUlMLEtBQUs7d0JBSUwsTUFBTTswQkFHTixNQUFNO3dCQUdOLFdBQVcsU0FBQyxpQ0FBaUM7O0FBN0M5QztJQURDLFlBQVksRUFBRTsrREFDa0I7QUE0QmpDO0lBREMsWUFBWSxFQUFFO2lFQUNvQjtBQUtuQztJQURDLFlBQVksRUFBRTtpRUFDb0I7QUFJbkM7SUFEQyxZQUFZLEVBQUU7aUVBQ29CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtGb3JtQ29tcG9uZW50LCBGb3JtTWFzdGVyU2VydmljZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtJbnB1dEJvb2xlYW59IGZyb20gXCIuLi8uLi8uLi8uLi9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiY28tYWN0aXZpdHktc3VtbWFyeS1ibG9ja1wiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2std3JhcHBlciBib3JkZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LXN1bW1hcnktYmxvY2stZWRpdC10ZW1wbGF0ZVwiIFtpZF09XCJjc3NJZFwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWZvcm0gKHZhbGlkU3VibWl0KT1cIm9uVmFsaWQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbdGVtcGxhdGVXcmFwcGVyXT1cImVkaXRUZW1wbGF0ZVwiICpuZ0lmPVwiZWRpdFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvY28tZm9ybT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvay1jYW5jZWwtYnV0dG9uc1wiICpuZ0lmPVwic2hvd0J1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIiBbdGV4dENvbnRlbnRdPVwiJ09LJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cImhhbmRsZU9rQ2xpY2soJGV2ZW50KVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uICpuZ0lmPVwiaGlkZUNhbmNlbFwiIFt0ZXh0Q29udGVudF09XCInU1RJQ0tFUicgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJoYW5kbGVDYW5jZWxDbGljaygkZXZlbnQpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbdGVtcGxhdGVXcmFwcGVyXT1cImV4dHJhQnV0dG9uc1RlbXBsYXRlXCIgKm5nSWY9XCJleHRyYUJ1dHRvbnNUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgRm9ybU1hc3RlclNlcnZpY2VcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3Rpdml0eVN1bW1hcnlCbG9ja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IEljb246IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgICBAVmlld0NoaWxkKEZvcm1Db21wb25lbnQpXHJcbiAgICBwdWJsaWMgbWFpbkZvcm06IEZvcm1Db21wb25lbnQ7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjc3NJZDogc3RyaW5nO1xyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLm5vLWJvcmRlclwiKVxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIG5vQm9yZGVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpY29uOiBJY29uO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZWRpdEljb246IEljb247XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpbWFnZTogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZWRpdFRpdGxlOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBlZGl0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBleHRyYUJ1dHRvbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93QnV0dG9uczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBoaWRlQ2FuY2VsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuaWNvbi1hY3Rpb25cIilcclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBhY3Rpb25JY29uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIGV4cGFuZGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBzYXZlQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgY2FuY2VsQ2xpY2s6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1hY3Rpdml0eS1zdW1tYXJ5LWJsb2NrXCIpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHN1bW1hcnlFbGVtZW50KCk6IEVsZW1lbnRSZWYge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWY7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZm9ybU1hc3RlcjogRm9ybU1hc3RlclNlcnZpY2UsIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlT2tDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLm1haW5Gb3JtKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWFpbkZvcm0uc3VibWl0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVDYW5jZWxDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2FuY2VsQ2xpY2submV4dChldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uVmFsaWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zYXZlQ2xpY2submV4dChudWxsKTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { ActivitySummaryBlockComponent } from "./activity-summary-block.component";
|
|
3
|
+
import { ButtonModule, FormModule, TemplateWrapperModule } from "@colijnit/corecomponents_v12";
|
|
4
|
+
import { CommonModule } from "@angular/common";
|
|
5
|
+
import { LocalizationModule } from "../../../../localization/localization.module";
|
|
6
|
+
export class ActivitySummaryBlockModule {
|
|
7
|
+
}
|
|
8
|
+
ActivitySummaryBlockModule.decorators = [
|
|
9
|
+
{ type: NgModule, args: [{
|
|
10
|
+
imports: [
|
|
11
|
+
FormModule,
|
|
12
|
+
ButtonModule,
|
|
13
|
+
CommonModule,
|
|
14
|
+
LocalizationModule,
|
|
15
|
+
TemplateWrapperModule
|
|
16
|
+
],
|
|
17
|
+
declarations: [
|
|
18
|
+
ActivitySummaryBlockComponent
|
|
19
|
+
],
|
|
20
|
+
exports: [
|
|
21
|
+
ActivitySummaryBlockComponent
|
|
22
|
+
]
|
|
23
|
+
},] }
|
|
24
|
+
];
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktc3VtbWFyeS1ibG9jay5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2RpZnktdGFzay1mb3JtL2NvbXBvbmVudHMvYWN0aXZpdHktc3VtbWFyeS1ibG9jay9hY3Rpdml0eS1zdW1tYXJ5LWJsb2NrLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLHFCQUFxQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDN0YsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBaUJoRixNQUFNLE9BQU8sMEJBQTBCOzs7WUFmdEMsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxVQUFVO29CQUNWLFlBQVk7b0JBQ1osWUFBWTtvQkFDWixrQkFBa0I7b0JBQ2xCLHFCQUFxQjtpQkFDdEI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLDZCQUE2QjtpQkFDOUI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLDZCQUE2QjtpQkFDOUI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QWN0aXZpdHlTdW1tYXJ5QmxvY2tDb21wb25lbnR9IGZyb20gXCIuL2FjdGl2aXR5LXN1bW1hcnktYmxvY2suY29tcG9uZW50XCI7XHJcbmltcG9ydCB7QnV0dG9uTW9kdWxlLCBGb3JtTW9kdWxlLCBUZW1wbGF0ZVdyYXBwZXJNb2R1bGV9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7TG9jYWxpemF0aW9uTW9kdWxlfSBmcm9tIFwiLi4vLi4vLi4vLi4vbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5tb2R1bGVcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybU1vZHVsZSxcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIExvY2FsaXphdGlvbk1vZHVsZSxcclxuICAgIFRlbXBsYXRlV3JhcHBlck1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBBY3Rpdml0eVN1bW1hcnlCbG9ja0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQWN0aXZpdHlTdW1tYXJ5QmxvY2tDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3Rpdml0eVN1bW1hcnlCbG9ja01vZHVsZSB7XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { __awaiter, __decorate } from "tslib";
|
|
2
|
+
import { Directive, EventEmitter, HostBinding, Input, Output } from "@angular/core";
|
|
3
|
+
import { InputBoolean } from "../../../decorator/input-boolean.decorator";
|
|
4
|
+
import { CoreDialogService } from "@colijnit/corecomponents_v12";
|
|
5
|
+
import { DictionaryService } from "../../../service/dictionary.service";
|
|
6
|
+
import { OperationWithAlwaysSuccessCallback } from "../../../interface/operation-callback-simple-function";
|
|
7
|
+
import { OperationWithValidationCallback } from "../../../interface/operation-callback-function-with-validation";
|
|
8
|
+
export class BaseActivitySummaryComponent {
|
|
9
|
+
constructor(dictionaryService, dialogService) {
|
|
10
|
+
this.dictionaryService = dictionaryService;
|
|
11
|
+
this.dialogService = dialogService;
|
|
12
|
+
this.expanded = false;
|
|
13
|
+
this.noBorder = false;
|
|
14
|
+
this.readonly = false;
|
|
15
|
+
this.canFireTriggerOperation = OperationWithAlwaysSuccessCallback;
|
|
16
|
+
this.fireTriggerOperation = OperationWithValidationCallback;
|
|
17
|
+
this.prepareWorkflowOperation = OperationWithAlwaysSuccessCallback;
|
|
18
|
+
this.loadTaskOperation = OperationWithAlwaysSuccessCallback;
|
|
19
|
+
this.activityChange = new EventEmitter();
|
|
20
|
+
this.showWorkLog = new EventEmitter();
|
|
21
|
+
this.triggerFired = new EventEmitter();
|
|
22
|
+
}
|
|
23
|
+
set activity(value) {
|
|
24
|
+
this.editActivity = value;
|
|
25
|
+
}
|
|
26
|
+
get activity() {
|
|
27
|
+
return this.editActivity;
|
|
28
|
+
}
|
|
29
|
+
set workFlow(value) {
|
|
30
|
+
this._workFlow = value;
|
|
31
|
+
}
|
|
32
|
+
get workFlow() {
|
|
33
|
+
return this._workFlow;
|
|
34
|
+
}
|
|
35
|
+
set task(value) {
|
|
36
|
+
this._task = value;
|
|
37
|
+
}
|
|
38
|
+
get task() {
|
|
39
|
+
return this._task;
|
|
40
|
+
}
|
|
41
|
+
set triggerToFireOnSave(value) {
|
|
42
|
+
this._triggerToFireOnSave = value;
|
|
43
|
+
}
|
|
44
|
+
get triggerToFireOnSave() {
|
|
45
|
+
return this._triggerToFireOnSave;
|
|
46
|
+
}
|
|
47
|
+
handleSave(event) {
|
|
48
|
+
this._saveClone();
|
|
49
|
+
}
|
|
50
|
+
handleCancel(event) {
|
|
51
|
+
this.expanded = false;
|
|
52
|
+
}
|
|
53
|
+
handleTriggerClick(trigger) {
|
|
54
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
if (this.readonly) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (trigger.toClosedState) {
|
|
59
|
+
const canFire = yield this.canFireTriggerOperation({ editActivity: this.editActivity, task: this.editActivity.task });
|
|
60
|
+
if (!canFire) {
|
|
61
|
+
this.triggerToFireOnSave = trigger;
|
|
62
|
+
this.showWorkLog.next();
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const result = yield this.fireTriggerOperation(trigger, null, null);
|
|
67
|
+
if (result.success) {
|
|
68
|
+
yield this.updateActivityTask(this.editActivity.task);
|
|
69
|
+
yield this.prepareWorkflow();
|
|
70
|
+
this.triggerFired.emit(this.workFlow);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
const messages = [];
|
|
74
|
+
const len = result.messages.length;
|
|
75
|
+
for (let i = 0; i < len; i++) {
|
|
76
|
+
messages.push(this.dictionaryService.get(result.messages[i].message.toUpperCase()));
|
|
77
|
+
}
|
|
78
|
+
this.dialogService.showError(messages.toString());
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
handleExpandClick(value) {
|
|
83
|
+
this.expanded = value;
|
|
84
|
+
}
|
|
85
|
+
prepareWorkflow() {
|
|
86
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
87
|
+
if (this.table && this.key) {
|
|
88
|
+
yield this.prepareWorkflowOperation({ table: this.table, key: this.key });
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
_saveClone() {
|
|
93
|
+
this.activityChange.next(this.editActivity);
|
|
94
|
+
}
|
|
95
|
+
updateActivityTask(task) {
|
|
96
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
if (task) {
|
|
98
|
+
yield this.loadTaskOperation(task.taskId);
|
|
99
|
+
this.editActivity.task = this.task;
|
|
100
|
+
this.activityChange.emit(this.editActivity);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
BaseActivitySummaryComponent.decorators = [
|
|
106
|
+
{ type: Directive }
|
|
107
|
+
];
|
|
108
|
+
BaseActivitySummaryComponent.ctorParameters = () => [
|
|
109
|
+
{ type: DictionaryService },
|
|
110
|
+
{ type: CoreDialogService }
|
|
111
|
+
];
|
|
112
|
+
BaseActivitySummaryComponent.propDecorators = {
|
|
113
|
+
activity: [{ type: Input }],
|
|
114
|
+
workFlow: [{ type: Input }],
|
|
115
|
+
task: [{ type: Input }],
|
|
116
|
+
table: [{ type: Input }],
|
|
117
|
+
key: [{ type: Input }],
|
|
118
|
+
expanded: [{ type: Input }],
|
|
119
|
+
noBorder: [{ type: HostBinding, args: ["class.no-border",] }, { type: Input }],
|
|
120
|
+
readonly: [{ type: Input }],
|
|
121
|
+
canFireTriggerOperation: [{ type: Input }],
|
|
122
|
+
fireTriggerOperation: [{ type: Input }],
|
|
123
|
+
prepareWorkflowOperation: [{ type: Input }],
|
|
124
|
+
loadTaskOperation: [{ type: Input }],
|
|
125
|
+
triggerToFireOnSave: [{ type: Input }],
|
|
126
|
+
activityChange: [{ type: Output }],
|
|
127
|
+
showWorkLog: [{ type: Output }],
|
|
128
|
+
triggerFired: [{ type: Output }],
|
|
129
|
+
hidden: [{ type: HostBinding, args: ["class.hidden",] }]
|
|
130
|
+
};
|
|
131
|
+
__decorate([
|
|
132
|
+
InputBoolean()
|
|
133
|
+
], BaseActivitySummaryComponent.prototype, "noBorder", void 0);
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hY3Rpdml0eS1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21vZGlmeS10YXNrLWZvcm0vY29tcG9uZW50cy9iYXNlLWFjdGl2aXR5LXN1bW1hcnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUdsRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFJeEUsT0FBTyxFQUFDLGlCQUFpQixFQUErQixNQUFNLDhCQUE4QixDQUFDO0FBQzdGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFFTCxrQ0FBa0MsRUFDbkMsTUFBTSx1REFBdUQsQ0FBQztBQUUvRCxPQUFPLEVBRUwsK0JBQStCLEVBQ2hDLE1BQU0sZ0VBQWdFLENBQUM7QUFHeEUsTUFBTSxPQUFnQiw0QkFBNEI7SUE0RjlDLFlBQXVCLGlCQUFvQyxFQUNwQyxhQUFnQztRQURoQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQWxEaEQsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUsxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsNEJBQXVCLEdBQW9DLGtDQUFrQyxDQUFDO1FBRzlGLHlCQUFvQixHQUE0QywrQkFBK0IsQ0FBQztRQUdoRyw2QkFBd0IsR0FBb0Msa0NBQWtDLENBQUM7UUFHL0Ysc0JBQWlCLEdBQW9DLGtDQUFrQyxDQUFDO1FBWS9FLG1CQUFjLEdBQTJCLElBQUksWUFBWSxFQUFZLENB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ZSwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtBY3Rpdml0eX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LmJvXCI7XHJcbmltcG9ydCB7VGFibGVOYW1lfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS90YWJsZS1uYW1lLmVudW1cIjtcclxuaW1wb3J0IHtJbnB1dEJvb2xlYW59IGZyb20gXCIuLi8uLi8uLi9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtXb3JrZmxvd1RyaWdnZXJ9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC93b3JrZmxvdy10cmlnZ2VyLmJvXCI7XHJcbmltcG9ydCB7VmFsaWRhdGlvblJlc3VsdH0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3ZhbGlkYXRpb24tcmVzdWx0XCI7XHJcbmltcG9ydCB7VGFza30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3Rhc2suYm9cIjtcclxuaW1wb3J0IHtDb3JlRGlhbG9nU2VydmljZSwgU2NyZWVuQ29uZmlnQWRhcHRlckNvbXBvbmVudH0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7XHJcbiAgT3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbixcclxuICBPcGVyYXRpb25XaXRoQWx3YXlzU3VjY2Vzc0NhbGxiYWNrXHJcbn0gZnJvbSBcIi4uLy4uLy4uL2ludGVyZmFjZS9vcGVyYXRpb24tY2FsbGJhY2stc2ltcGxlLWZ1bmN0aW9uXCI7XHJcbmltcG9ydCB7QWN0aXZpdHlXb3JrZmxvd30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LXdvcmtmbG93XCI7XHJcbmltcG9ydCB7XHJcbiAgT3BlcmF0aW9uQ2FsbGJhY2tGdW5jdGlvbldpdGhWYWxpZGF0aW9uLFxyXG4gIE9wZXJhdGlvbldpdGhWYWxpZGF0aW9uQ2FsbGJhY2tcclxufSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJmYWNlL29wZXJhdGlvbi1jYWxsYmFjay1mdW5jdGlvbi13aXRoLXZhbGlkYXRpb25cIjtcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUFjdGl2aXR5U3VtbWFyeUNvbXBvbmVudCBpbXBsZW1lbnRzIFNjcmVlbkNvbmZpZ0FkYXB0ZXJDb21wb25lbnQge1xyXG5cclxuICAgIGRlY2ltYWxzOiBudW1iZXI7XHJcbiAgICBmb3JjZVJlYWRvbmx5OiBib29sZWFuO1xyXG4gICAgbWF4TGVuZ3RoOiBudW1iZXI7XHJcbiAgICBvYmplY3RDb25maWdOYW1lOiBzdHJpbmc7XHJcbiAgICByZWRFcnJvckJhY2tncm91bmQ6IGJvb2xlYW47XHJcbiAgICByZXF1aXJlZDogYm9vbGVhbjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBhY3Rpdml0eSh2YWx1ZTogQWN0aXZpdHkpIHtcclxuICAgICAgICB0aGlzLmVkaXRBY3Rpdml0eSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgYWN0aXZpdHkoKTogQWN0aXZpdHkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRBY3Rpdml0eTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB3b3JrRmxvdyh2YWx1ZTogQWN0aXZpdHlXb3JrZmxvdykge1xyXG4gICAgICB0aGlzLl93b3JrRmxvdyA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgd29ya0Zsb3coKTogQWN0aXZpdHlXb3JrZmxvdyB7XHJcbiAgICAgIHJldHVybiB0aGlzLl93b3JrRmxvdztcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB0YXNrKHZhbHVlOiBUYXNrKSB7XHJcbiAgICAgIHRoaXMuX3Rhc2sgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRhc2soKTogVGFzayB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90YXNrO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGFibGU6IFRhYmxlTmFtZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGtleTogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5uby1ib3JkZXJcIilcclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBub0JvcmRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGNhbkZpcmVUcmlnZ2VyT3BlcmF0aW9uOiBPcGVyYXRpb25DYWxsYmFja1NpbXBsZUZ1bmN0aW9uID0gT3BlcmF0aW9uV2l0aEFsd2F5c1N1Y2Nlc3NDYWxsYmFjaztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGZpcmVUcmlnZ2VyT3BlcmF0aW9uOiBPcGVyYXRpb25DYWxsYmFja0Z1bmN0aW9uV2l0aFZhbGlkYXRpb24gPSBPcGVyYXRpb25XaXRoVmFsaWRhdGlvbkNhbGxiYWNrO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcHJlcGFyZVdvcmtmbG93T3BlcmF0aW9uOiBPcGVyYXRpb25DYWxsYmFja1NpbXBsZUZ1bmN0aW9uID0gT3BlcmF0aW9uV2l0aEFsd2F5c1N1Y2Nlc3NDYWxsYmFjaztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGxvYWRUYXNrT3BlcmF0aW9uOiBPcGVyYXRpb25DYWxsYmFja1NpbXBsZUZ1bmN0aW9uID0gT3BlcmF0aW9uV2l0aEFsd2F5c1N1Y2Nlc3NDYWxsYmFjaztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB0cmlnZ2VyVG9GaXJlT25TYXZlKHZhbHVlOiBXb3JrZmxvd1RyaWdnZXIpIHtcclxuICAgICAgdGhpcy5fdHJpZ2dlclRvRmlyZU9uU2F2ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdHJpZ2dlclRvRmlyZU9uU2F2ZSgpOiBXb3JrZmxvd1RyaWdnZXIge1xyXG4gICAgICByZXR1cm4gdGhpcy5fdHJpZ2dlclRvRmlyZU9uU2F2ZTtcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBhY3Rpdml0eUNoYW5nZTogRXZlbnRFbWl0dGVyPEFjdGl2aXR5PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2hvd1dvcmtMb2c6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSB0cmlnZ2VyRmlyZWQ6IEV2ZW50RW1pdHRlcjxBY3Rpdml0eVdvcmtmbG93PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aXZpdHlXb3JrZmxvdz4oKTtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5oaWRkZW5cIilcclxuICAgIHB1YmxpYyBoaWRkZW46IGJvb2xlYW47XHJcblxyXG4gICAgcHVibGljIGVkaXRBY3Rpdml0eTogQWN0aXZpdHk7XHJcblxyXG4gICAgcHJpdmF0ZSBfd29ya0Zsb3c6IEFjdGl2aXR5V29ya2Zsb3c7XHJcbiAgICBwcml2YXRlIF90YXNrOiBUYXNrO1xyXG4gICAgcHJpdmF0ZSBfdHJpZ2dlclRvRmlyZU9uU2F2ZTogV29ya2Zsb3dUcmlnZ2VyXHJcblxyXG4gICAgY29uc3RydWN0b3IoIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIGRpYWxvZ1NlcnZpY2U6IENvcmVEaWFsb2dTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlU2F2ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3NhdmVDbG9uZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVDYW5jZWwoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmV4cGFuZGVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGhhbmRsZVRyaWdnZXJDbGljayh0cmlnZ2VyOiBXb3JrZmxvd1RyaWdnZXIpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0cmlnZ2VyLnRvQ2xvc2VkU3RhdGUpIHtcclxuICAgICAgICAgICAgY29uc3QgY2FuRmlyZTogYm9vbGVhbiA9IGF3YWl0IHRoaXMuY2FuRmlyZVRyaWdnZXJPcGVyYXRpb24oe2VkaXRBY3Rpdml0eTogdGhpcy5lZGl0QWN0aXZpdHksIHRhc2s6IHRoaXMuZWRpdEFjdGl2aXR5LnRhc2t9KTtcclxuICAgICAgICAgICAgaWYgKCFjYW5GaXJlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJUb0ZpcmVPblNhdmUgPSB0cmlnZ2VyO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93V29ya0xvZy5uZXh0KCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcmVzdWx0OiBWYWxpZGF0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy5maXJlVHJpZ2dlck9wZXJhdGlvbih0cmlnZ2VyLCBudWxsICwgbnVsbCk7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlQWN0aXZpdHlUYXNrKHRoaXMuZWRpdEFjdGl2aXR5LnRhc2spO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnByZXBhcmVXb3JrZmxvdygpO1xyXG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJGaXJlZC5lbWl0KHRoaXMud29ya0Zsb3cpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgICAgICBjb25zdCBsZW46IG51bWJlciA9IHJlc3VsdC5tZXNzYWdlcy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZXMucHVzaCh0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlLmdldChyZXN1bHQubWVzc2FnZXNbaV0ubWVzc2FnZS50b1VwcGVyQ2FzZSgpKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dFcnJvcihtZXNzYWdlcy50b1N0cmluZygpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUV4cGFuZENsaWNrKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5leHBhbmRlZCA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBhc3luYyBwcmVwYXJlV29ya2Zsb3coKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKHRoaXMudGFibGUgJiYgdGhpcy5rZXkpIHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5wcmVwYXJlV29ya2Zsb3dPcGVyYXRpb24oe3RhYmxlOiB0aGlzLnRhYmxlLCBrZXk6IHRoaXMua2V5fSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3NhdmVDbG9uZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmFjdGl2aXR5Q2hhbmdlLm5leHQodGhpcy5lZGl0QWN0aXZpdHkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYXN5bmMgdXBkYXRlQWN0aXZpdHlUYXNrKHRhc2s6IFRhc2spOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAodGFzaykge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRUYXNrT3BlcmF0aW9uKHRhc2sudGFza0lkKTtcclxuICAgICAgICAgICAgdGhpcy5lZGl0QWN0aXZpdHkudGFzayA9IHRoaXMudGFzaztcclxuICAgICAgICAgICAgdGhpcy5hY3Rpdml0eUNoYW5nZS5lbWl0KHRoaXMuZWRpdEFjdGl2aXR5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|