@colijnit/sharedcomponents 1.0.69 → 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 +3285 -4
- 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/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/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 +13 -1
- 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/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 +3419 -9
- 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/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/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/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
package/esm2015/lib/components/open-activity-list/components/base-open-activity-list.component.js
ADDED
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Directive, Injectable, Input } from "@angular/core";
|
|
3
|
+
import { isNill } from "@colijnit/ioneconnector/build/utils/function/is-nill.function";
|
|
4
|
+
import { ActivityListViewModel } from "@colijnit/mainapi/build/model/activity-list-view-model";
|
|
5
|
+
import { ActivityViewModel } from "@colijnit/mainapi/build/model/activity-view-model";
|
|
6
|
+
import { DateUtils } from "../../../utils/date-utils";
|
|
7
|
+
import { InputBoolean } from "../../../decorator/input-boolean.decorator";
|
|
8
|
+
export class BaseActivityListComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.reloadTimer = 60000; // 1 minute in milliseconds
|
|
11
|
+
this.handleOpenLinkSidebar = false;
|
|
12
|
+
//viewmodels
|
|
13
|
+
this.privateActivityListViewModels = [];
|
|
14
|
+
this.privateDelegatedActivityListViewModels = [];
|
|
15
|
+
this.filteredActivityListViewModels = [];
|
|
16
|
+
this.filteredDelegatedActivityListViewModels = [];
|
|
17
|
+
this._activities = [];
|
|
18
|
+
this._delegatedActivities = [];
|
|
19
|
+
//protected userService: UserService
|
|
20
|
+
}
|
|
21
|
+
set activities(value) {
|
|
22
|
+
clearTimeout(this._updateInterval);
|
|
23
|
+
this._activities = value;
|
|
24
|
+
this.filteredActivities = this._activities.slice();
|
|
25
|
+
this.applyFilter();
|
|
26
|
+
this._startInterval();
|
|
27
|
+
}
|
|
28
|
+
get activities() {
|
|
29
|
+
return this._activities;
|
|
30
|
+
}
|
|
31
|
+
set delegatedActivities(value) {
|
|
32
|
+
if (value && value.length > 0) {
|
|
33
|
+
clearTimeout(this._updateInterval);
|
|
34
|
+
this._delegatedActivities = value;
|
|
35
|
+
this.filteredDelegatedActivities = this._delegatedActivities.slice();
|
|
36
|
+
this.applyFilter();
|
|
37
|
+
this._startInterval();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
get delegatedActivities() {
|
|
41
|
+
return this._delegatedActivities;
|
|
42
|
+
}
|
|
43
|
+
// TODO: return this.userService.showUsergroupActivities and allow to set properly;
|
|
44
|
+
get showUsergroupActivities() {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
set showUsergroupActivities(value) {
|
|
48
|
+
}
|
|
49
|
+
ngOnDestroy() {
|
|
50
|
+
clearInterval(this._updateInterval);
|
|
51
|
+
}
|
|
52
|
+
reset() {
|
|
53
|
+
this.filteredActivities = [];
|
|
54
|
+
this.filteredDelegatedActivities = [];
|
|
55
|
+
this._activities = [];
|
|
56
|
+
this._delegatedActivities = [];
|
|
57
|
+
}
|
|
58
|
+
applyFilter() {
|
|
59
|
+
this._applyFilter(this.activities, this.filteredActivities, this.filteredActivityListViewModels);
|
|
60
|
+
this._applyFilter(this.delegatedActivities, this.filteredDelegatedActivities, this.filteredDelegatedActivityListViewModels);
|
|
61
|
+
this._refreshActivities();
|
|
62
|
+
this.afterFilterApplied();
|
|
63
|
+
}
|
|
64
|
+
afterFilterApplied() {
|
|
65
|
+
}
|
|
66
|
+
getTheActivities() {
|
|
67
|
+
//this.getActivities();
|
|
68
|
+
this.getDelegatedActivities();
|
|
69
|
+
}
|
|
70
|
+
_removeNotShowing(listViewModels) {
|
|
71
|
+
for (let i = listViewModels.length - 1; i > 0; i--) {
|
|
72
|
+
const listViewModel = listViewModels[i];
|
|
73
|
+
if (!listViewModel.showing) {
|
|
74
|
+
listViewModels.splice(i, 1);
|
|
75
|
+
}
|
|
76
|
+
else { // iterate through activityViewModels
|
|
77
|
+
for (let j = listViewModel.activities.length - 1; j > 0; j--) {
|
|
78
|
+
const activityViewModel = listViewModel.activities[j];
|
|
79
|
+
if (!activityViewModel.showing) {
|
|
80
|
+
listViewModel.activities.splice(j, 1);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
updatePrivateListsWithFilteredLists() {
|
|
87
|
+
this.privateActivityListViewModels =
|
|
88
|
+
this._updatePrivateListWithFilteredList(this.privateActivityListViewModels, this.filteredActivityListViewModels);
|
|
89
|
+
this.privateDelegatedActivityListViewModels =
|
|
90
|
+
this._updatePrivateListWithFilteredList(this.privateDelegatedActivityListViewModels, this.filteredDelegatedActivityListViewModels);
|
|
91
|
+
}
|
|
92
|
+
_applyFilter(activities, filteredActivities, filteredActivityListViewModels) {
|
|
93
|
+
if (isNill(activities)) {
|
|
94
|
+
filteredActivities.length = 0;
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
filteredActivities = activities.slice(0);
|
|
98
|
+
if (this.filterFrom && this.filterTo) {
|
|
99
|
+
filteredActivities =
|
|
100
|
+
activities.filter((a) => {
|
|
101
|
+
if (a.executionDateTime === null || a.overDue) {
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
return DateUtils.IsInBetween(a.executionDateTime, this.filterFrom, this.filterTo, false);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
filteredActivities.sort((a, b) => a.deadlineDateTime > b.deadlineDateTime ? 1 : -1);
|
|
110
|
+
this._searchText(filteredActivities);
|
|
111
|
+
this._prepareViewModels(filteredActivities, filteredActivityListViewModels);
|
|
112
|
+
}
|
|
113
|
+
_searchText(filteredActivities) {
|
|
114
|
+
if (!this.searchText) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
for (let i = filteredActivities.length - 1; i >= 0; i--) {
|
|
118
|
+
const activity = filteredActivities[i];
|
|
119
|
+
let found = false;
|
|
120
|
+
for (let key in activity) {
|
|
121
|
+
if (activity.hasOwnProperty(key)) {
|
|
122
|
+
if (activity[key].toString().indexOf(this.searchText) > -1) {
|
|
123
|
+
found = true;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (!found) {
|
|
129
|
+
filteredActivities.splice(i, 1);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
_updatePrivateListWithFilteredList(listViewModels, filteredList) {
|
|
134
|
+
let result;
|
|
135
|
+
if (listViewModels.length === 0) {
|
|
136
|
+
result = filteredList.slice();
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
result = listViewModels.slice();
|
|
140
|
+
// set showing to false for items which are not in the list anymore
|
|
141
|
+
for (let i = 0; i < result.length; i++) {
|
|
142
|
+
const listViewModel = result[i];
|
|
143
|
+
const filteredViewModel = filteredList.find(f => f.position === listViewModel.position);
|
|
144
|
+
if (!filteredViewModel) {
|
|
145
|
+
// flag as removed when listviewmodel is no longer in the list
|
|
146
|
+
listViewModel.showing = false;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
for (let j = 0; j < listViewModel.activities.length; j++) {
|
|
150
|
+
const viewModel = listViewModel.activities[j];
|
|
151
|
+
if (!filteredViewModel.activities.find(fa => fa.guid === viewModel.guid)) {
|
|
152
|
+
// flag as removed when viewmodel is no longer in the list
|
|
153
|
+
viewModel.showing = false;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// add new items
|
|
159
|
+
for (let i = 0; i < filteredList.length; i++) {
|
|
160
|
+
const filteredActivityListViewModel = filteredList[i];
|
|
161
|
+
const listViewModel = result.find(lvm => lvm.label === filteredActivityListViewModel.label);
|
|
162
|
+
if (!listViewModel) {
|
|
163
|
+
result.push(filteredActivityListViewModel);
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
for (let j = 0; j < filteredActivityListViewModel.activities.length; j++) {
|
|
167
|
+
const filteredActivityViewModel = filteredActivityListViewModel.activities[j];
|
|
168
|
+
if (!listViewModel.activities.find(a => a.activity.getId() === filteredActivityViewModel.activity.getId())) {
|
|
169
|
+
listViewModel.activities.push(filteredActivityViewModel);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
result.sort(this._sortByPosition);
|
|
176
|
+
return result;
|
|
177
|
+
}
|
|
178
|
+
_refreshActivities() {
|
|
179
|
+
// first remove items which are set invisible before
|
|
180
|
+
this._removeNotShowing(this.privateActivityListViewModels);
|
|
181
|
+
this._removeNotShowing(this.privateDelegatedActivityListViewModels);
|
|
182
|
+
// update private list with (new) filtered list
|
|
183
|
+
this.updatePrivateListsWithFilteredLists();
|
|
184
|
+
}
|
|
185
|
+
_prepareViewModels(filteredActivities, filteredActivityListViewModels) {
|
|
186
|
+
filteredActivityListViewModels.map(alm => {
|
|
187
|
+
alm.showing = false;
|
|
188
|
+
alm.activities.map(aa => aa.showing = false);
|
|
189
|
+
});
|
|
190
|
+
if (filteredActivities) {
|
|
191
|
+
for (let i = 0; i < filteredActivities.length; i++) {
|
|
192
|
+
const activity = filteredActivities[i];
|
|
193
|
+
if (!activity.overDue && DateUtils.IsToday(activity.deadlineDateTime)) {
|
|
194
|
+
this._addToActivityListViewModel(filteredActivityListViewModels, 'TODAY', 1, activity);
|
|
195
|
+
}
|
|
196
|
+
else if (activity.overDue) {
|
|
197
|
+
this._addToActivityListViewModel(filteredActivityListViewModels, 'TOO_LATE', 2, activity);
|
|
198
|
+
}
|
|
199
|
+
else if (activity.deadlineDateTime) {
|
|
200
|
+
this._addToActivityListViewModel(filteredActivityListViewModels, 'NEXT2', 3, activity);
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
this._addToActivityListViewModel(filteredActivityListViewModels, 'UNSCHEDULED', 4, activity);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
filteredActivityListViewModels.sort(this._sortByPosition);
|
|
208
|
+
this._setAmountListViewModels(filteredActivityListViewModels);
|
|
209
|
+
}
|
|
210
|
+
_setAmountListViewModels(filteredActivityListViewModels) {
|
|
211
|
+
for (let i = 0; i < filteredActivityListViewModels.length; i++) {
|
|
212
|
+
filteredActivityListViewModels[i].setAmount();
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
_sortByPosition(a, b) {
|
|
216
|
+
return a.position > b.position ? 1 : -1;
|
|
217
|
+
}
|
|
218
|
+
_addToActivityListViewModel(filteredActivityListViewModels, label, order, activity) {
|
|
219
|
+
const activityListViewModel = this._getActivityListViewModel(filteredActivityListViewModels, label, order);
|
|
220
|
+
activityListViewModel.showing = true;
|
|
221
|
+
const activityViewModel = this._getActivityViewModel(activityListViewModel, activity);
|
|
222
|
+
activityViewModel.showing = !activityViewModel.deleted;
|
|
223
|
+
this._updateViewModelContent(activityViewModel, activity);
|
|
224
|
+
}
|
|
225
|
+
_getActivityViewModel(listViewModel, activity) {
|
|
226
|
+
let viewModel = listViewModel.activities.find(a => a.activity.getId() === activity.getId());
|
|
227
|
+
if (!viewModel) {
|
|
228
|
+
viewModel = new ActivityViewModel();
|
|
229
|
+
viewModel.activity = activity;
|
|
230
|
+
viewModel.parent = listViewModel;
|
|
231
|
+
listViewModel.activities.push(viewModel);
|
|
232
|
+
}
|
|
233
|
+
return viewModel;
|
|
234
|
+
}
|
|
235
|
+
_getActivityListViewModel(filteredActivityListViewModels, label, order) {
|
|
236
|
+
let result = filteredActivityListViewModels.find(a => a.label === label);
|
|
237
|
+
if (!result) {
|
|
238
|
+
result = new ActivityListViewModel(label, order);
|
|
239
|
+
filteredActivityListViewModels.push(result);
|
|
240
|
+
}
|
|
241
|
+
return result;
|
|
242
|
+
}
|
|
243
|
+
_startInterval() {
|
|
244
|
+
this._updateInterval = window.setInterval(() => {
|
|
245
|
+
this.getTheActivities();
|
|
246
|
+
}, this.reloadTimer);
|
|
247
|
+
}
|
|
248
|
+
_updateViewModelContent(activityViewModel, activity) {
|
|
249
|
+
activityViewModel.activity = activity;
|
|
250
|
+
return activityViewModel;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
BaseActivityListComponent.decorators = [
|
|
254
|
+
{ type: Directive },
|
|
255
|
+
{ type: Injectable }
|
|
256
|
+
];
|
|
257
|
+
BaseActivityListComponent.ctorParameters = () => [];
|
|
258
|
+
BaseActivityListComponent.propDecorators = {
|
|
259
|
+
handleOpenLinkSidebar: [{ type: Input }]
|
|
260
|
+
};
|
|
261
|
+
__decorate([
|
|
262
|
+
InputBoolean()
|
|
263
|
+
], BaseActivityListComponent.prototype, "handleOpenLinkSidebar", void 0);
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1vcGVuLWFjdGl2aXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3Blbi1hY3Rpdml0eS1saXN0L2NvbXBvbmVudHMvYmFzZS1vcGVuLWFjdGl2aXR5LWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFdEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFJeEUsTUFBTSxPQUFnQix5QkFBeUI7SUE2RDNDO1FBM0RVLGdCQUFXLEdBQVcsS0FBSyxDQUFDLENBQUMsMkJBQTJCO1FBSTNELDBCQUFxQixHQUFZLEtBQUssQ0FBQztRQW9DOUMsWUFBWTtRQUNMLGtDQUE2QixHQUE0QixFQUFFLENBQUM7UUFDNUQsMkNBQXNDLEdBQTRCLEVBQUUsQ0FBQztRQUNyRSxtQ0FBOEIsR0FBNEIsRUFBRSxDQUFDO1FBQzdELDRDQUF1QyxHQUE0QixFQUFFLENBQUM7UUFXckUsZ0JBQVcsR0FBZSxFQUFFLENBQUM7UUFDN0IseUJBQW9CLEdBQWUsRUFBRSxDQUFDO1FBSTVDLG9DQUFvQztJQUN0QyxDQUFDO0lBdkRELElBQVcsVUFBVSxDQUFDLEtBQWlCO1FBQ25DLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFD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WixTQUFTLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQzlCLFNBQVMsQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDO1lBQ2pDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVPLHlCQUF5QixDQUFDLDhCQUF1RCxFQUFFLEtBQWEsRUFBRSxLQUFhO1FBQ25ILElBQUksTUFBTSxHQUEwQiw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBQ2hHLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxNQUFNLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDakQsOEJBQThCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVPLGNBQWM7UUFDbEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUMzQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM1QixDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxpQkFBb0MsRUFBRSxRQUFrQjtRQUNwRixpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3RDLE9BQU8saUJBQWlCLENBQUM7SUFDN0IsQ0FBQzs7O1lBL1JKLFNBQVM7WUFDVCxVQUFVOzs7O29DQUtOLEtBQUs7O0FBRU47SUFEQyxZQUFZLEVBQUU7d0VBQytCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdGFibGUsIElucHV0LCBPbkRlc3Ryb3l9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QWN0aXZpdHl9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9hY3Rpdml0eS5ib1wiO1xyXG5pbXBvcnQge2lzTmlsbH0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3V0aWxzL2Z1bmN0aW9uL2lzLW5pbGwuZnVuY3Rpb25cIjtcclxuaW1wb3J0IHtBY3Rpdml0eUxpc3RWaWV3TW9kZWx9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9hY3Rpdml0eS1saXN0LXZpZXctbW9kZWxcIjtcclxuaW1wb3J0IHtBY3Rpdml0eVZpZXdNb2RlbH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LXZpZXctbW9kZWxcIjtcclxuaW1wb3J0IHtEYXRlVXRpbHN9IGZyb20gXCIuLi8uLi8uLi91dGlscy9kYXRlLXV0aWxzXCI7XHJcbmltcG9ydCB7SW5wdXRCb29sZWFufSBmcm9tIFwiLi4vLi4vLi4vZGVjb3JhdG9yL2lucHV0LWJvb2xlYW4uZGVjb3JhdG9yXCI7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUFjdGl2aXR5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlbG9hZFRpbWVyOiBudW1iZXIgPSA2MDAwMDsgLy8gMSBtaW51dGUgaW4gbWlsbGlzZWNvbmRzXHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIGhhbmRsZU9wZW5MaW5rU2lkZWJhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBzZXQgYWN0aXZpdGllcyh2YWx1ZTogQWN0aXZpdHlbXSkge1xyXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl91cGRhdGVJbnRlcnZhbCk7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZpdGllcyA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWRBY3Rpdml0aWVzID0gdGhpcy5fYWN0aXZpdGllcy5zbGljZSgpO1xyXG4gICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIoKTtcclxuICAgICAgICB0aGlzLl9zdGFydEludGVydmFsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBhY3Rpdml0aWVzKCk6IEFjdGl2aXR5W10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hY3Rpdml0aWVzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgZGVsZWdhdGVkQWN0aXZpdGllcyh2YWx1ZTogQWN0aXZpdHlbXSkge1xyXG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl91cGRhdGVJbnRlcnZhbCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlZEFjdGl2aXRpZXMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZERlbGVnYXRlZEFjdGl2aXRpZXMgPSB0aGlzLl9kZWxlZ2F0ZWRBY3Rpdml0aWVzLnNsaWNlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIoKTtcclxuICAgICAgICAgICAgdGhpcy5fc3RhcnRJbnRlcnZhbCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGRlbGVnYXRlZEFjdGl2aXRpZXMoKTogQWN0aXZpdHlbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlZEFjdGl2aXRpZXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZpbHRlckZyb206IERhdGU7XHJcbiAgICBwdWJsaWMgZmlsdGVyVG86IERhdGU7XHJcbiAgICBwdWJsaWMgc2VhcmNoVGV4dDogc3RyaW5nO1xyXG5cclxuICAgIC8vZmlsdGVyZWQgbGlzdHNcclxuICAgIHB1YmxpYyBmaWx0ZXJlZEFjdGl2aXRpZXM6IEFjdGl2aXR5W107XHJcbiAgICBwdWJsaWMgZmlsdGVyZWREZWxlZ2F0ZWRBY3Rpdml0aWVzOiBBY3Rpdml0eVtdO1xyXG5cclxuICAgIC8vdmlld21vZGVsc1xyXG4gICAgcHVibGljIHByaXZhdGVBY3Rpdml0eUxpc3RWaWV3TW9kZWxzOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSA9IFtdO1xyXG4gICAgcHVibGljIHByaXZhdGVEZWxlZ2F0ZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSA9IFtdO1xyXG4gICAgcHVibGljIGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVsczogQWN0aXZpdHlMaXN0Vmlld01vZGVsW10gPSBbXTtcclxuICAgIHB1YmxpYyBmaWx0ZXJlZERlbGVnYXRlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHM6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbFtdID0gW107XHJcblxyXG4gICAvLyBUT0RPOiByZXR1cm4gdGhpcy51c2VyU2VydmljZS5zaG93VXNlcmdyb3VwQWN0aXZpdGllcyBhbmQgYWxsb3cgdG8gc2V0IHByb3Blcmx5O1xyXG4gICBwdWJsaWMgZ2V0IHNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IHNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzKHZhbHVlOiBib29sZWFuKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2FjdGl2aXRpZXM6IEFjdGl2aXR5W10gPSBbXTtcclxuICAgIHByaXZhdGUgX2RlbGVnYXRlZEFjdGl2aXRpZXM6IEFjdGl2aXR5W10gPSBbXTtcclxuICAgIHByaXZhdGUgX3VwZGF0ZUludGVydmFsOiBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgIC8vcHJvdGVjdGVkIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5fdXBkYXRlSW50ZXJ2YWwpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vcHVibGljIGFic3RyYWN0IGdldEFjdGl2aXRpZXMoKTtcclxuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXREZWxlZ2F0ZWRBY3Rpdml0aWVzKCk7XHJcblxyXG4gICAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWRBY3Rpdml0aWVzID0gW107XHJcbiAgICAgICAgdGhpcy5maWx0ZXJlZERlbGVnYXRlZEFjdGl2aXRpZXMgPSBbXTtcclxuICAgICAgICB0aGlzLl9hY3Rpdml0aWVzID0gW107XHJcbiAgICAgICAgdGhpcy5fZGVsZWdhdGVkQWN0aXZpdGllcyA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhcHBseUZpbHRlcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9hcHBseUZpbHRlcih0aGlzLmFjdGl2aXRpZXMsIHRoaXMuZmlsdGVyZWRBY3Rpdml0aWVzLCB0aGlzLmZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVscyk7XHJcbiAgICAgICAgdGhpcy5fYXBwbHlGaWx0ZXIodGhpcy5kZWxlZ2F0ZWRBY3Rpdml0aWVzLCB0aGlzLmZpbHRlcmVkRGVsZWdhdGVkQWN0aXZpdGllcywgdGhpcy5maWx0ZXJlZERlbGVnYXRlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMpO1xyXG4gICAgICAgIHRoaXMuX3JlZnJlc2hBY3Rpdml0aWVzKCk7XHJcbiAgICAgICAgdGhpcy5hZnRlckZpbHRlckFwcGxpZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgYWZ0ZXJGaWx0ZXJBcHBsaWVkKCk6IHZvaWQge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0VGhlQWN0aXZpdGllcygpOiB2b2lkIHtcclxuICAgICAgICAvL3RoaXMuZ2V0QWN0aXZpdGllcygpO1xyXG4gICAgICAgIHRoaXMuZ2V0RGVsZWdhdGVkQWN0aXZpdGllcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3JlbW92ZU5vdFNob3dpbmcobGlzdFZpZXdNb2RlbHM6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbFtdKTogdm9pZCB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IGxpc3RWaWV3TW9kZWxzLmxlbmd0aCAtIDE7IGkgPiAwOyBpLS0pIHtcclxuICAgICAgICAgICAgY29uc3QgbGlzdFZpZXdNb2RlbDogQWN0aXZpdHlMaXN0Vmlld01vZGVsID0gbGlzdFZpZXdNb2RlbHNbaV07XHJcbiAgICAgICAgICAgIGlmICghbGlzdFZpZXdNb2RlbC5zaG93aW5nKSB7XHJcbiAgICAgICAgICAgICAgICBsaXN0Vmlld01vZGVscy5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7IC8vIGl0ZXJhdGUgdGhyb3VnaCBhY3Rpdml0eVZpZXdNb2RlbHNcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSBsaXN0Vmlld01vZGVsLmFjdGl2aXRpZXMubGVuZ3RoIC0gMTsgaiA+IDA7IGotLSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2aXR5Vmlld01vZGVsOiBBY3Rpdml0eVZpZXdNb2RlbCA9IGxpc3RWaWV3TW9kZWwuYWN0aXZpdGllc1tqXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdGl2aXR5Vmlld01vZGVsLnNob3dpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzLnNwbGljZShqLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVByaXZhdGVMaXN0c1dpdGhGaWx0ZXJlZExpc3RzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucHJpdmF0ZUFjdGl2aXR5TGlzdFZpZXdNb2RlbHMgPVxyXG4gICAgICAgICAgICB0aGlzLl91cGRhdGVQcml2YXRlTGlzdFdpdGhGaWx0ZXJlZExpc3QodGhpcy5wcml2YXRlQWN0aXZpdHlMaXN0Vmlld01vZGVscywgdGhpcy5maWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMpO1xyXG4gICAgICAgIHRoaXMucHJpdmF0ZURlbGVnYXRlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMgPVxyXG4gICAgICAgICAgICB0aGlzLl91cGRhdGVQcml2YXRlTGlzdFdpdGhGaWx0ZXJlZExpc3QodGhpcy5wcml2YXRlRGVsZWdhdGVkQWN0aXZpdHlMaXN0Vmlld01vZGVscywgdGhpcy5maWx0ZXJlZERlbGVnYXRlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2FwcGx5RmlsdGVyKGFjdGl2aXRpZXM6IEFjdGl2aXR5W10sIGZpbHRlcmVkQWN0aXZpdGllczogQWN0aXZpdHlbXSwgZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChpc05pbGwoYWN0aXZpdGllcykpIHtcclxuICAgICAgICAgICAgZmlsdGVyZWRBY3Rpdml0aWVzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsdGVyZWRBY3Rpdml0aWVzID0gYWN0aXZpdGllcy5zbGljZSgwKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyRnJvbSAmJiB0aGlzLmZpbHRlclRvKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcmVkQWN0aXZpdGllcyA9XHJcbiAgICAgICAgICAgICAgICBhY3Rpdml0aWVzLmZpbHRlcigoYTogQWN0aXZpdHkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYS5leGVjdXRpb25EYXRlVGltZSA9PT0gbnVsbCB8fCBhLm92ZXJEdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERhdGVVdGlscy5Jc0luQmV0d2VlbihhLmV4ZWN1dGlvbkRhdGVUaW1lLCB0aGlzLmZpbHRlckZyb20sIHRoaXMuZmlsdGVyVG8sIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsdGVyZWRBY3Rpdml0aWVzLnNvcnQoKGE6IEFjdGl2aXR5LCBiOiBBY3Rpdml0eSkgPT4gYS5kZWFkbGluZURhdGVUaW1lID4gYi5kZWFkbGluZURhdGVUaW1lID8gMSA6IC0xKTtcclxuICAgICAgICB0aGlzLl9zZWFyY2hUZXh0KGZpbHRlcmVkQWN0aXZpdGllcyk7XHJcbiAgICAgICAgdGhpcy5fcHJlcGFyZVZpZXdNb2RlbHMoZmlsdGVyZWRBY3Rpdml0aWVzLCBmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3NlYXJjaFRleHQoZmlsdGVyZWRBY3Rpdml0aWVzOiBBY3Rpdml0eVtdKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaFRleHQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGxldCBpID0gZmlsdGVyZWRBY3Rpdml0aWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2aXR5OiBBY3Rpdml0eSA9IGZpbHRlcmVkQWN0aXZpdGllc1tpXTtcclxuICAgICAgICAgICAgbGV0IGZvdW5kOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGtleSBpbiBhY3Rpdml0eSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2aXR5Lmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aXZpdHlba2V5XS50b1N0cmluZygpLmluZGV4T2YodGhpcy5zZWFyY2hUZXh0KSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghZm91bmQpIHtcclxuICAgICAgICAgICAgICAgIGZpbHRlcmVkQWN0aXZpdGllcy5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfdXBkYXRlUHJpdmF0ZUxpc3RXaXRoRmlsdGVyZWRMaXN0KFxyXG4gICAgICAgIGxpc3RWaWV3TW9kZWxzOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSxcclxuICAgICAgICBmaWx0ZXJlZExpc3Q6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbFtdXHJcbiAgICApOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSB7XHJcbiAgICAgICAgbGV0IHJlc3VsdDogQWN0aXZpdHlMaXN0Vmlld01vZGVsW107XHJcbiAgICAgICAgaWYgKGxpc3RWaWV3TW9kZWxzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXN1bHQgPSBmaWx0ZXJlZExpc3Quc2xpY2UoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXN1bHQgPSBsaXN0Vmlld01vZGVscy5zbGljZSgpO1xyXG4gICAgICAgICAgICAvLyBzZXQgc2hvd2luZyB0byBmYWxzZSBmb3IgaXRlbXMgd2hpY2ggYXJlIG5vdCBpbiB0aGUgbGlzdCBhbnltb3JlXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0Vmlld01vZGVsOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWwgPSByZXN1bHRbaV07XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZFZpZXdNb2RlbDogQWN0aXZpdHlMaXN0Vmlld01vZGVsID0gZmlsdGVyZWRMaXN0LmZpbmQoZiA9PiBmLnBvc2l0aW9uID09PSBsaXN0Vmlld01vZGVsLnBvc2l0aW9uKTtcclxuICAgICAgICAgICAgICAgIGlmICghZmlsdGVyZWRWaWV3TW9kZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBmbGFnIGFzIHJlbW92ZWQgd2hlbiBsaXN0dmlld21vZGVsIGlzIG5vIGxvbmdlciBpbiB0aGUgbGlzdFxyXG4gICAgICAgICAgICAgICAgICAgIGxpc3RWaWV3TW9kZWwuc2hvd2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGxpc3RWaWV3TW9kZWwuYWN0aXZpdGllcy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2aWV3TW9kZWw6IEFjdGl2aXR5Vmlld01vZGVsID0gbGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzW2pdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZpbHRlcmVkVmlld01vZGVsLmFjdGl2aXRpZXMuZmluZChmYSA9PiBmYS5ndWlkID09PSB2aWV3TW9kZWwuZ3VpZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZsYWcgYXMgcmVtb3ZlZCB3aGVuIHZpZXdtb2RlbCBpcyBubyBsb25nZXIgaW4gdGhlIGxpc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdNb2RlbC5zaG93aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gYWRkIG5ldyBpdGVtc1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbHRlcmVkTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWw6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbCA9IGZpbHRlcmVkTGlzdFtpXTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RWaWV3TW9kZWw6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbCA9IHJlc3VsdC5maW5kKGx2bSA9PiBsdm0ubGFiZWwgPT09IGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVsLmxhYmVsKTtcclxuICAgICAgICAgICAgICAgIGlmICghbGlzdFZpZXdNb2RlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVsKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkQWN0aXZpdHlWaWV3TW9kZWw6IEFjdGl2aXR5Vmlld01vZGVsID0gZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWwuYWN0aXZpdGllc1tqXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFsaXN0Vmlld01vZGVsLmFjdGl2aXRpZXMuZmluZChhID0+IGEuYWN0aXZpdHkuZ2V0SWQoKSA9PT0gZmlsdGVyZWRBY3Rpdml0eVZpZXdNb2RlbC5hY3Rpdml0eS5nZXRJZCgpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzLnB1c2goZmlsdGVyZWRBY3Rpdml0eVZpZXdNb2RlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzdWx0LnNvcnQodGhpcy5fc29ydEJ5UG9zaXRpb24pO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcmVmcmVzaEFjdGl2aXRpZXMoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gZmlyc3QgcmVtb3ZlIGl0ZW1zIHdoaWNoIGFyZSBzZXQgaW52aXNpYmxlIGJlZm9yZVxyXG4gICAgICAgIHRoaXMuX3JlbW92ZU5vdFNob3dpbmcodGhpcy5wcml2YXRlQWN0aXZpdHlMaXN0Vmlld01vZGVscyk7XHJcbiAgICAgICAgdGhpcy5fcmVtb3ZlTm90U2hvd2luZyh0aGlzLnByaXZhdGVEZWxlZ2F0ZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzKTtcclxuICAgICAgICAvLyB1cGRhdGUgcHJpdmF0ZSBsaXN0IHdpdGggKG5ldykgZmlsdGVyZWQgbGlzdFxyXG4gICAgICAgIHRoaXMudXBkYXRlUHJpdmF0ZUxpc3RzV2l0aEZpbHRlcmVkTGlzdHMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wcmVwYXJlVmlld01vZGVscyhmaWx0ZXJlZEFjdGl2aXRpZXM6IEFjdGl2aXR5W10sIGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVsczogQWN0aXZpdHlMaXN0Vmlld01vZGVsW10pOiB2b2lkIHtcclxuICAgICAgICBmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMubWFwKGFsbSA9PiB7XHJcbiAgICAgICAgICAgIGFsbS5zaG93aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGFsbS5hY3Rpdml0aWVzLm1hcChhYSA9PiBhYS5zaG93aW5nID0gZmFsc2UpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChmaWx0ZXJlZEFjdGl2aXRpZXMpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWx0ZXJlZEFjdGl2aXRpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2aXR5OiBBY3Rpdml0eSA9IGZpbHRlcmVkQWN0aXZpdGllc1tpXTtcclxuICAgICAgICAgICAgICAgIGlmICghYWN0aXZpdHkub3ZlckR1ZSAmJiBEYXRlVXRpbHMuSXNUb2RheShhY3Rpdml0eS5kZWFkbGluZURhdGVUaW1lKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FkZFRvQWN0aXZpdHlMaXN0Vmlld01vZGVsKGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVscywgJ1RPREFZJywgMSwgYWN0aXZpdHkpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhY3Rpdml0eS5vdmVyRHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkVG9BY3Rpdml0eUxpc3RWaWV3TW9kZWwoZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzLCAnVE9PX0xBVEUnLCAyLCBhY3Rpdml0eSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFjdGl2aXR5LmRlYWRsaW5lRGF0ZVRpbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZGRUb0FjdGl2aXR5TGlzdFZpZXdNb2RlbChmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMsICdORVhUMicsIDMsIGFjdGl2aXR5KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkVG9BY3Rpdml0eUxpc3RWaWV3TW9kZWwoZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzLCAnVU5TQ0hFRFVMRUQnLCA0LCBhY3Rpdml0eSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzLnNvcnQodGhpcy5fc29ydEJ5UG9zaXRpb24pO1xyXG4gICAgICAgIHRoaXMuX3NldEFtb3VudExpc3RWaWV3TW9kZWxzKGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVscyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2V0QW1vdW50TGlzdFZpZXdNb2RlbHMoZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSk6IHZvaWQge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVsc1tpXS5zZXRBbW91bnQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc29ydEJ5UG9zaXRpb24oYTogQWN0aXZpdHlMaXN0Vmlld01vZGVsLCBiOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWwpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBhLnBvc2l0aW9uID4gYi5wb3NpdGlvbiA/IDEgOiAtMTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9hZGRUb0FjdGl2aXR5TGlzdFZpZXdNb2RlbChmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHM6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbFtdLCBsYWJlbDogc3RyaW5nLCBvcmRlcjogbnVtYmVyLCBhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBhY3Rpdml0eUxpc3RWaWV3TW9kZWw6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbCA9IHRoaXMuX2dldEFjdGl2aXR5TGlzdFZpZXdNb2RlbChmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMsIGxhYmVsLCBvcmRlcik7XHJcbiAgICAgICAgYWN0aXZpdHlMaXN0Vmlld01vZGVsLnNob3dpbmcgPSB0cnVlO1xyXG4gICAgICAgIGNvbnN0IGFjdGl2aXR5Vmlld01vZGVsOiBBY3Rpdml0eVZpZXdNb2RlbCA9IHRoaXMuX2dldEFjdGl2aXR5Vmlld01vZGVsKGFjdGl2aXR5TGlzdFZpZXdNb2RlbCwgYWN0aXZpdHkpO1xyXG4gICAgICAgIGFjdGl2aXR5Vmlld01vZGVsLnNob3dpbmcgPSAhYWN0aXZpdHlWaWV3TW9kZWwuZGVsZXRlZDtcclxuICAgICAgICB0aGlzLl91cGRhdGVWaWV3TW9kZWxDb250ZW50KGFjdGl2aXR5Vmlld01vZGVsLCBhY3Rpdml0eSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0QWN0aXZpdHlWaWV3TW9kZWwobGlzdFZpZXdNb2RlbDogQWN0aXZpdHlMaXN0Vmlld01vZGVsLCBhY3Rpdml0eTogQWN0aXZpdHkpOiBBY3Rpdml0eVZpZXdNb2RlbCB7XHJcbiAgICAgICAgbGV0IHZpZXdNb2RlbDogQWN0aXZpdHlWaWV3TW9kZWwgPSBsaXN0Vmlld01vZGVsLmFjdGl2aXRpZXMuZmluZChhID0+IGEuYWN0aXZpdHkuZ2V0SWQoKSA9PT0gYWN0aXZpdHkuZ2V0SWQoKSk7XHJcbiAgICAgICAgaWYgKCF2aWV3TW9kZWwpIHtcclxuICAgICAgICAgICAgdmlld01vZGVsID0gbmV3IEFjdGl2aXR5Vmlld01vZGVsKCk7XHJcbiAgICAgICAgICAgIHZpZXdNb2RlbC5hY3Rpdml0eSA9IGFjdGl2aXR5O1xyXG4gICAgICAgICAgICB2aWV3TW9kZWwucGFyZW50ID0gbGlzdFZpZXdNb2RlbDtcclxuICAgICAgICAgICAgbGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzLnB1c2godmlld01vZGVsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHZpZXdNb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRBY3Rpdml0eUxpc3RWaWV3TW9kZWwoZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSwgbGFiZWw6IHN0cmluZywgb3JkZXI6IG51bWJlcik6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbCB7XHJcbiAgICAgICAgbGV0IHJlc3VsdDogQWN0aXZpdHlMaXN0Vmlld01vZGVsID0gZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzLmZpbmQoYSA9PiBhLmxhYmVsID09PSBsYWJlbCk7XHJcbiAgICAgICAgaWYgKCFyZXN1bHQpIHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gbmV3IEFjdGl2aXR5TGlzdFZpZXdNb2RlbChsYWJlbCwgb3JkZXIpO1xyXG4gICAgICAgICAgICBmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMucHVzaChyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3N0YXJ0SW50ZXJ2YWwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlSW50ZXJ2YWwgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgICAgICB9LCB0aGlzLnJlbG9hZFRpbWVyKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF91cGRhdGVWaWV3TW9kZWxDb250ZW50KGFjdGl2aXR5Vmlld01vZGVsOiBBY3Rpdml0eVZpZXdNb2RlbCwgYWN0aXZpdHk6IEFjdGl2aXR5KTogQWN0aXZpdHlWaWV3TW9kZWwge1xyXG4gICAgICAgIGFjdGl2aXR5Vmlld01vZGVsLmFjdGl2aXR5ID0gYWN0aXZpdHk7XHJcbiAgICAgICAgcmV0dXJuIGFjdGl2aXR5Vmlld01vZGVsO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Component, HostBinding } from "@angular/core";
|
|
2
|
+
import { BaseActivityOverviewComponent } from "../../../activity-overview-component/components/base-activity-overview.component";
|
|
3
|
+
export class PersonalActivityOverviewComponent extends BaseActivityOverviewComponent {
|
|
4
|
+
showClass() {
|
|
5
|
+
return true;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
PersonalActivityOverviewComponent.decorators = [
|
|
9
|
+
{ type: Component, args: [{
|
|
10
|
+
selector: "co-personal-activity-overview",
|
|
11
|
+
template: `
|
|
12
|
+
<div class="overview-wrapper pointer-hover" (click)="handleOpenLinkOrUrl($event)">
|
|
13
|
+
<div class="overview-wrapper-labels">
|
|
14
|
+
<div class="activity-title" [textContent]="activityTitle"></div>
|
|
15
|
+
<div class="activity-context-title" [textContent]="activityContextTitle"></div>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="overview-wrapper-date">
|
|
18
|
+
<div class="date-wrapper" [class.overdue]="overDue">
|
|
19
|
+
<ng-container *ngIf="!sameDates">
|
|
20
|
+
<div class="date" [textContent]="targetDate | date:'dd-MM-YYYY'"></div>
|
|
21
|
+
<div class="date-divider" [textContent]="'-'"></div>
|
|
22
|
+
</ng-container>
|
|
23
|
+
<!--TODO REINSTATE AFTER finding what the heck is wrong with date-->
|
|
24
|
+
<!--<div class="date" [textContent]="deadlineDate | date:'dd-MM-YYYY'"></div>-->
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
<!--TODO REINSTATE AFTER FIXING FORM-->
|
|
29
|
+
<!-- <co-task-modifier
|
|
30
|
+
(editingComplete)="onSaveActivity($event)"
|
|
31
|
+
(activityDeleted)="onDeleteActivity($event)"
|
|
32
|
+
(showWorkLog)="showTaskFormAndWorkLog()"
|
|
33
|
+
></co-task-modifier>-->
|
|
34
|
+
<!-- [taskCfgNames]="taskCfgNames"-->
|
|
35
|
+
`
|
|
36
|
+
},] }
|
|
37
|
+
];
|
|
38
|
+
PersonalActivityOverviewComponent.propDecorators = {
|
|
39
|
+
showClass: [{ type: HostBinding, args: ["class.co-personal-activity-overview",] }]
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uYWwtYWN0aXZpdHktb3ZlcnZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3Blbi1hY3Rpdml0eS1saXN0L2NvbXBvbmVudHMvcGVyc29uYWwtYWN0aXZpdHktb3ZlcnZpZXcvcGVyc29uYWwtYWN0aXZpdHktb3ZlcnZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFDTCw2QkFBNkIsRUFDOUIsTUFBTSxrRkFBa0YsQ0FBQztBQWtDMUYsTUFBTSxPQUFPLGlDQUFrQyxTQUFRLDZCQUE2QjtJQUUzRSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7WUFuQ0YsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSwrQkFBK0I7Z0JBQ3pDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBd0JUO2FBSUo7Ozt3QkFFRSxXQUFXLFNBQUMscUNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIEJhc2VBY3Rpdml0eU92ZXJ2aWV3Q29tcG9uZW50XHJcbn0gZnJvbSBcIi4uLy4uLy4uL2FjdGl2aXR5LW92ZXJ2aWV3LWNvbXBvbmVudC9jb21wb25lbnRzL2Jhc2UtYWN0aXZpdHktb3ZlcnZpZXcuY29tcG9uZW50XCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJjby1wZXJzb25hbC1hY3Rpdml0eS1vdmVydmlld1wiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctd3JhcHBlciBwb2ludGVyLWhvdmVyXCIgKGNsaWNrKT1cImhhbmRsZU9wZW5MaW5rT3JVcmwoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctd3JhcHBlci1sYWJlbHNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpdml0eS10aXRsZVwiIFt0ZXh0Q29udGVudF09XCJhY3Rpdml0eVRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktY29udGV4dC10aXRsZVwiIFt0ZXh0Q29udGVudF09XCJhY3Rpdml0eUNvbnRleHRUaXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LXdyYXBwZXItZGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtd3JhcHBlclwiIFtjbGFzcy5vdmVyZHVlXT1cIm92ZXJEdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNhbWVEYXRlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZVwiIFt0ZXh0Q29udGVudF09XCJ0YXJnZXREYXRlIHwgZGF0ZTonZGQtTU0tWVlZWSdcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtZGl2aWRlclwiIFt0ZXh0Q29udGVudF09XCInLSdcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPCEtLVRPRE8gUkVJTlNUQVRFIEFGVEVSIGZpbmRpbmcgd2hhdCB0aGUgaGVjayBpcyB3cm9uZyB3aXRoIGRhdGUtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLTxkaXYgY2xhc3M9XCJkYXRlXCIgW3RleHRDb250ZW50XT1cImRlYWRsaW5lRGF0ZSB8IGRhdGU6J2RkLU1NLVlZWVknXCI+PC9kaXY+LS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLVRPRE8gUkVJTlNUQVRFIEFGVEVSIEZJWElORyBGT1JNLS0+XHJcbiAgICAgICAgPCEtLSAgPGNvLXRhc2stbW9kaWZpZXJcclxuICAgICAgICAgICAgICAgIChlZGl0aW5nQ29tcGxldGUpPVwib25TYXZlQWN0aXZpdHkoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoYWN0aXZpdHlEZWxldGVkKT1cIm9uRGVsZXRlQWN0aXZpdHkoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoc2hvd1dvcmtMb2cpPVwic2hvd1Rhc2tGb3JtQW5kV29ya0xvZygpXCJcclxuICAgICAgICA+PC9jby10YXNrLW1vZGlmaWVyPi0tPlxyXG4gICAgICA8IS0tICBbdGFza0NmZ05hbWVzXT1cInRhc2tDZmdOYW1lc1wiLS0+XHJcbiAgICBgLFxyXG4gICAvKiBwcm92aWRlcnM6IFtcclxuICAgICAgICB7cHJvdmlkZTogQmFzZU1vZHVsZVNjcmVlbkNvbmZpZ1NlcnZpY2UsIHVzZUV4aXN0aW5nOiBBY3Rpdml0eVNjcmVlbkNvbmZpZ1NlcnZpY2V9XHJcbiAgICBdLCovXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZXJzb25hbEFjdGl2aXR5T3ZlcnZpZXdDb21wb25lbnQgZXh0ZW5kcyBCYXNlQWN0aXZpdHlPdmVydmlld0NvbXBvbmVudCB7XHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tcGVyc29uYWwtYWN0aXZpdHktb3ZlcnZpZXdcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { PersonalActivityOverviewComponent } from "./personal-activity-overview.component";
|
|
4
|
+
export class PersonalActivityOverviewModule {
|
|
5
|
+
}
|
|
6
|
+
PersonalActivityOverviewModule.decorators = [
|
|
7
|
+
{ type: NgModule, args: [{
|
|
8
|
+
imports: [
|
|
9
|
+
CommonModule
|
|
10
|
+
],
|
|
11
|
+
declarations: [
|
|
12
|
+
PersonalActivityOverviewComponent
|
|
13
|
+
],
|
|
14
|
+
exports: [
|
|
15
|
+
PersonalActivityOverviewComponent
|
|
16
|
+
]
|
|
17
|
+
},] }
|
|
18
|
+
];
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uYWwtYWN0aXZpdHktb3ZlcnZpZXcubW9kdWxlLi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL29wZW4tYWN0aXZpdHktbGlzdC9jb21wb25lbnRzL3BlcnNvbmFsLWFjdGl2aXR5LW92ZXJ2aWV3L3BlcnNvbmFsLWFjdGl2aXR5LW92ZXJ2aWV3Lm1vZHVsZS4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFhekYsTUFBTSxPQUFPLDhCQUE4Qjs7O1lBWDFDLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtpQkFDYjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osaUNBQWlDO2lCQUNsQztnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsaUNBQWlDO2lCQUNsQzthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtQZXJzb25hbEFjdGl2aXR5T3ZlcnZpZXdDb21wb25lbnR9IGZyb20gXCIuL3BlcnNvbmFsLWFjdGl2aXR5LW92ZXJ2aWV3LmNvbXBvbmVudFwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgUGVyc29uYWxBY3Rpdml0eU92ZXJ2aWV3Q29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBQZXJzb25hbEFjdGl2aXR5T3ZlcnZpZXdDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZXJzb25hbEFjdGl2aXR5T3ZlcnZpZXdNb2R1bGUge1xyXG5cclxufVxyXG4iXX0=
|