@colijnit/corecomponents_v12 255.1.6 → 255.1.7
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/bundles/colijnit-corecomponents_v12.umd.js +55 -18
- package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -1
- package/colijnit-corecomponents_v12.metadata.json +1 -1
- package/esm2015/lib/components/hour-scheduling/hour-scheduling.component.js +76 -29
- package/esm2015/lib/components/hour-scheduling/hour-scheduling.module.js +4 -3
- package/fesm2015/colijnit-corecomponents_v12.js +76 -29
- package/fesm2015/colijnit-corecomponents_v12.js.map +1 -1
- package/lib/components/hour-scheduling/hour-scheduling.component.d.ts +14 -4
- package/package.json +1 -1
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { Component, Input, HostBinding, ViewEncapsulation, ChangeDetectorRef } from '@angular/core';
|
|
1
|
+
import { Component, Input, HostBinding, ViewEncapsulation, ChangeDetectorRef, } from '@angular/core';
|
|
2
|
+
import { DatePipe } from '@angular/common';
|
|
2
3
|
export class HourSchedulingComponent {
|
|
3
|
-
constructor(cdRef) {
|
|
4
|
+
constructor(cdRef, _datepipe) {
|
|
4
5
|
this.cdRef = cdRef;
|
|
6
|
+
this._datepipe = _datepipe;
|
|
5
7
|
this.showClass = true;
|
|
6
8
|
this.customTemplateUsed = false;
|
|
7
9
|
this.hours = [];
|
|
@@ -9,21 +11,27 @@ export class HourSchedulingComponent {
|
|
|
9
11
|
this.draggedObject = null;
|
|
10
12
|
}
|
|
11
13
|
ngOnInit() {
|
|
14
|
+
if (!this.childProp) {
|
|
15
|
+
this.startTime = parseInt(this._datepipe.transform(new Date(this.schedule[this.startTimeProp]).toISOString(), 'H:mm'));
|
|
16
|
+
this.endTime = parseInt(this._datepipe.transform(new Date(this.schedule[this.endTimeProp]).toISOString(), 'H:mm'));
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
this.startTime = parseInt(this._datepipe.transform(new Date(this.schedule[this.childProp][this.startTimeProp]).toISOString(), 'H:mm'));
|
|
20
|
+
this.endTime = parseInt(this._datepipe.transform(new Date(this.schedule[this.childProp][this.endTimeProp]).toISOString(), 'H:mm'));
|
|
21
|
+
}
|
|
12
22
|
this.generateTimeBlocks();
|
|
13
23
|
}
|
|
14
24
|
generateTimeBlocks() {
|
|
15
|
-
const startTime = this.schedule[this.startTimeProp];
|
|
16
|
-
const endTime = this.schedule[this.endTimeProp];
|
|
17
25
|
const objectsList = this.schedule[this.objectsProp];
|
|
18
|
-
for (let hour = startTime; hour <= endTime; hour++) {
|
|
26
|
+
for (let hour = this.startTime; hour <= this.endTime; hour++) {
|
|
19
27
|
this.hours.push(this.formatHour(hour));
|
|
20
|
-
this.scheduledObjects[this.formatHour(hour)] = this.
|
|
28
|
+
this.scheduledObjects[this.formatHour(hour)] = this._getObjectsForHour(hour, objectsList);
|
|
21
29
|
}
|
|
22
30
|
}
|
|
23
|
-
|
|
31
|
+
_getObjectsForHour(hour, objectsList) {
|
|
24
32
|
const objectsForHour = [];
|
|
25
|
-
objectsList.forEach(obj => {
|
|
26
|
-
if (obj.
|
|
33
|
+
objectsList.forEach((obj) => {
|
|
34
|
+
if (this.convertToHourNotation(obj[this.startTimeProp]) === hour) {
|
|
27
35
|
objectsForHour.push(Object.assign({}, obj));
|
|
28
36
|
}
|
|
29
37
|
});
|
|
@@ -37,28 +45,52 @@ export class HourSchedulingComponent {
|
|
|
37
45
|
const currentHourSpan = currentTarget.parentElement.parentElement.querySelector('.hour-label span');
|
|
38
46
|
const currentHour = currentHourSpan.textContent;
|
|
39
47
|
this.draggedObject = obj;
|
|
40
|
-
event.dataTransfer.setData('text', JSON.stringify({ obj, currentHour }));
|
|
48
|
+
event.dataTransfer.setData('text', JSON.stringify({ obj: this.draggedObject, currentHour }));
|
|
49
|
+
}
|
|
50
|
+
onCustomDragStart(event, obj) {
|
|
51
|
+
this.onDragStart(event, obj);
|
|
41
52
|
}
|
|
42
53
|
onDragOver(event) {
|
|
43
54
|
event.preventDefault();
|
|
44
55
|
}
|
|
45
56
|
onDrop(event, hour) {
|
|
46
57
|
event.preventDefault();
|
|
58
|
+
event.stopPropagation();
|
|
47
59
|
const data = JSON.parse(event.dataTransfer.getData('text'));
|
|
60
|
+
if (!data || !data.obj) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
48
63
|
const newStartHour = parseInt(hour.split(':')[0], 10);
|
|
49
64
|
const newEndHour = newStartHour + 1;
|
|
50
|
-
data.obj.
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
-
|
|
65
|
+
const originalStartHour = this.convertToHourNotation(data.obj[this.startTimeProp]);
|
|
66
|
+
// Get the unique identifier value from the object using the `idProp`
|
|
67
|
+
const objId = data.obj[this.idProp];
|
|
68
|
+
// Ensure we create a new object to avoid mutation issues
|
|
69
|
+
const updatedObject = Object.assign(Object.assign({}, data.obj), { start: newStartHour, end: newEndHour });
|
|
70
|
+
const updatedObject2 = Object.assign(Object.assign({}, data.obj), { [this.startTimeProp]: this.createDate(newStartHour), [this.endTimeProp]: this.createDate(newEndHour) });
|
|
71
|
+
// Remove the object from its old hour block using its unique id
|
|
72
|
+
const originalHourBlock = this.formatHour(originalStartHour);
|
|
73
|
+
this.scheduledObjects[originalHourBlock] = this.scheduledObjects[originalHourBlock].filter(o => o[this.idProp] !== objId);
|
|
74
|
+
// Add the object to the new hour block
|
|
54
75
|
const newHourBlock = this.formatHour(newStartHour);
|
|
55
76
|
if (!this.scheduledObjects[newHourBlock]) {
|
|
56
77
|
this.scheduledObjects[newHourBlock] = [];
|
|
57
78
|
}
|
|
58
|
-
this.scheduledObjects[newHourBlock].push(
|
|
79
|
+
this.scheduledObjects[newHourBlock].push(updatedObject2);
|
|
80
|
+
// Clear the dragged object
|
|
59
81
|
this.draggedObject = null;
|
|
82
|
+
// Trigger change detection to update the view
|
|
60
83
|
this.cdRef.detectChanges();
|
|
61
84
|
}
|
|
85
|
+
convertToHourNotation(date) {
|
|
86
|
+
return parseInt(this._datepipe.transform(new Date(date).toISOString(), 'H:mm'));
|
|
87
|
+
}
|
|
88
|
+
createDate(hours) {
|
|
89
|
+
let date = new Date();
|
|
90
|
+
date.setHours(hours);
|
|
91
|
+
date.setMinutes(0, 0, 0);
|
|
92
|
+
return date;
|
|
93
|
+
}
|
|
62
94
|
}
|
|
63
95
|
HourSchedulingComponent.decorators = [
|
|
64
96
|
{ type: Component, args: [{
|
|
@@ -66,23 +98,35 @@ HourSchedulingComponent.decorators = [
|
|
|
66
98
|
template: `
|
|
67
99
|
<div class="time-block" *ngFor="let hour of hours">
|
|
68
100
|
<div class="hour-label"><span [textContent]="hour"></span></div>
|
|
69
|
-
<div
|
|
70
|
-
|
|
71
|
-
|
|
101
|
+
<div
|
|
102
|
+
class="object-display"
|
|
103
|
+
(dragover)="onDragOver($event)"
|
|
104
|
+
(drop)="onDrop($event, hour)"
|
|
105
|
+
>
|
|
72
106
|
<ng-container *ngIf="!customTemplateUsed">
|
|
73
107
|
<ng-container *ngIf="scheduledObjects[hour]">
|
|
74
|
-
<div
|
|
75
|
-
|
|
76
|
-
|
|
108
|
+
<div
|
|
109
|
+
*ngFor="let obj of scheduledObjects[hour]"
|
|
110
|
+
class="scheduled-object"
|
|
111
|
+
[draggable]="true"
|
|
112
|
+
(dragstart)="onDragStart($event, obj)"
|
|
113
|
+
>
|
|
77
114
|
<span class="title" [textContent]="obj.title"></span>
|
|
78
115
|
<span class="sub-title" [textContent]="obj.subTitle"></span>
|
|
79
116
|
</div>
|
|
80
117
|
</ng-container>
|
|
81
118
|
</ng-container>
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
119
|
+
|
|
120
|
+
<ng-container *ngIf="customTemplateUsed">
|
|
121
|
+
<ng-template
|
|
122
|
+
[ngTemplateOutlet]="customTemplate"
|
|
123
|
+
[ngTemplateOutletContext]="{
|
|
124
|
+
hour: hour,
|
|
125
|
+
objects: scheduledObjects[hour]
|
|
126
|
+
}"
|
|
127
|
+
>
|
|
128
|
+
</ng-template>
|
|
129
|
+
</ng-container>
|
|
86
130
|
</div>
|
|
87
131
|
</div>
|
|
88
132
|
`,
|
|
@@ -90,15 +134,18 @@ HourSchedulingComponent.decorators = [
|
|
|
90
134
|
},] }
|
|
91
135
|
];
|
|
92
136
|
HourSchedulingComponent.ctorParameters = () => [
|
|
93
|
-
{ type: ChangeDetectorRef }
|
|
137
|
+
{ type: ChangeDetectorRef },
|
|
138
|
+
{ type: DatePipe }
|
|
94
139
|
];
|
|
95
140
|
HourSchedulingComponent.propDecorators = {
|
|
96
|
-
showClass: [{ type: HostBinding, args: ['class.co-hour-scheduling',] }],
|
|
97
141
|
schedule: [{ type: Input }],
|
|
98
142
|
startTimeProp: [{ type: Input }],
|
|
99
143
|
endTimeProp: [{ type: Input }],
|
|
100
144
|
objectsProp: [{ type: Input }],
|
|
145
|
+
childProp: [{ type: Input }],
|
|
101
146
|
customTemplate: [{ type: Input }],
|
|
102
|
-
customTemplateUsed: [{ type: Input }]
|
|
147
|
+
customTemplateUsed: [{ type: Input }],
|
|
148
|
+
idProp: [{ type: Input }],
|
|
149
|
+
generateTimeBlocks: [{ type: HostBinding, args: ['class.co-hour-scheduling',] }]
|
|
103
150
|
};
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG91ci1zY2hlZHVsaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9ob3VyLXNjaGVkdWxpbmcvaG91ci1zY2hlZHVsaW5nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFvQ3pILE1BQU0sT0FBTyx1QkFBdUI7SUFpQmxDLFlBQW9CLEtBQXdCO1FBQXhCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBZHJDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFPZix1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFFdEMsVUFBSyxHQUFhLEVBQUUsQ0FBQztRQUNyQixxQkFBZ0IsR0FBMkMsRUFBRSxDQUFDO1FBRTdELGtCQUFhLEdBQTRCLElBQUksQ0FBQztJQUVQLENBQUM7SUFFaEQsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEQsTUFBTSxXQUFXLEdBQVUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFM0QsS0FBSyxJQUFJLElBQUksR0FBRyxTQUFTLEVBQUUsSUFBSSxJQUFJLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFD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VCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQlQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQW5Da0UsaUJBQWlCOzs7d0JBc0NqRixXQUFXLFNBQUMsMEJBQTBCO3VCQUd0QyxLQUFLOzRCQUNMLEtBQUs7MEJBQ0wsS0FBSzswQkFDTCxLQUFLOzZCQUNMLEtBQUs7aUNBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgSG9zdEJpbmRpbmcsIFZpZXdFbmNhcHN1bGF0aW9uLCBDaGFuZ2VEZXRlY3RvclJlZiwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmludGVyZmFjZSBTY2hlZHVsaW5nT2JqZWN0IHtcclxuICBzdGFydDogbnVtYmVyO1xyXG4gIGVuZDogbnVtYmVyO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHN1YlRpdGxlPzogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLWhvdXItc2NoZWR1bGluZycsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ0aW1lLWJsb2NrXCIgKm5nRm9yPVwibGV0IGhvdXIgb2YgaG91cnNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImhvdXItbGFiZWxcIj48c3BhbiBbdGV4dENvbnRlbnRdPVwiaG91clwiPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm9iamVjdC1kaXNwbGF5XCJcclxuICAgICAgICAgICAoZHJhZ292ZXIpPVwib25EcmFnT3ZlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50LCBob3VyKVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY3VzdG9tVGVtcGxhdGVVc2VkXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2NoZWR1bGVkT2JqZWN0c1tob3VyXVwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvYmogb2Ygc2NoZWR1bGVkT2JqZWN0c1tob3VyXVwiIGNsYXNzPVwic2NoZWR1bGVkLW9iamVjdFwiXHJcbiAgICAgICAgICAgICAgICAgW2RyYWdnYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAoZHJhZ3N0YXJ0KT1cIm9uRHJhZ1N0YXJ0KCRldmVudCwgb2JqKVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIiBbdGV4dENvbnRlbnRdPVwib2JqLnRpdGxlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIm9iai5zdWJUaXRsZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2N1c3RvbUNvbnRlbnQgKm5nSWY9XCJjdXN0b21UZW1wbGF0ZVVzZWRcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21UZW1wbGF0ZTsgY29udGV4dDogeyBvYmplY3RzOiBzY2hlZHVsZWRPYmplY3RzW2hvdXJdIH1cIj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIb3VyU2NoZWR1bGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28taG91ci1zY2hlZHVsaW5nJylcclxuICBwdWJsaWMgc2hvd0NsYXNzID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgc2NoZWR1bGU6IGFueTtcclxuICBASW5wdXQoKSBzdGFydFRpbWVQcm9wOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZW5kVGltZVByb3A6IHN0cmluZztcclxuICBASW5wdXQoKSBvYmplY3RzUHJvcDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGN1c3RvbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+OyAvLyBJbnB1dCBmb3IgY3VzdG9tIHRlbXBsYXRlXHJcbiAgQElucHV0KCkgY3VzdG9tVGVtcGxhdGVVc2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBob3Vyczogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgc2NoZWR1bGVkT2JqZWN0czogeyBbaG91cjogc3RyaW5nXTogU2NoZWR1bGluZ09iamVjdFtdIH0gPSB7fTtcclxuXHJcbiAgcHJpdmF0ZSBkcmFnZ2VkT2JqZWN0OiBTY2hlZHVsaW5nT2JqZWN0IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZ2VuZXJhdGVUaW1lQmxvY2tzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdlbmVyYXRlVGltZUJsb2NrcygpIHtcclxuICAgIGNvbnN0IHN0YXJ0VGltZSA9IHRoaXMuc2NoZWR1bGVbdGhpcy5zdGFydFRpbWVQcm9wXTtcclxuICAgIGNvbnN0IGVuZFRpbWUgPSB0aGlzLnNjaGVkdWxlW3RoaXMuZW5kVGltZVByb3BdO1xyXG4gICAgY29uc3Qgb2JqZWN0c0xpc3Q6IGFueVtdID0gdGhpcy5zY2hlZHVsZVt0aGlzLm9iamVjdHNQcm9wXTtcclxuXHJcbiAgICBmb3IgKGxldCBob3VyID0gc3RhcnRUaW1lOyBob3VyIDw9IGVuZFRpbWU7IGhvdXIrKykge1xyXG4gICAgICB0aGlzLmhvdXJzLnB1c2godGhpcy5mb3JtYXRIb3VyKGhvdXIpKTtcclxuICAgICAgdGhpcy5zY2hlZHVsZWRPYmplY3RzW3RoaXMuZm9ybWF0SG91cihob3VyKV0gPSB0aGlzLmdldE9iamVjdHNGb3JIb3VyKGhvdXIsIG9iamVjdHNMaXN0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0T2JqZWN0c0ZvckhvdXIoaG91cjogbnVtYmVyLCBvYmplY3RzTGlzdDogYW55W10pOiBTY2hlZHVsaW5nT2JqZWN0W10ge1xyXG4gICAgY29uc3Qgb2JqZWN0c0ZvckhvdXI6IFNjaGVkdWxpbmdPYmplY3RbXSA9IFtdO1xyXG5cclxuICAgIG9iamVjdHNMaXN0LmZvckVhY2gob2JqID0+IHtcclxuICAgICAgaWYgKG9iai5zdGFydCA9PT0gaG91cikge1xyXG4gICAgICAgIG9iamVjdHNGb3JIb3VyLnB1c2goeyAuLi5vYmogfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBvYmplY3RzRm9ySG91cjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmb3JtYXRIb3VyKGhvdXI6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7aG91cn06MDBgO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRHJhZ1N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQsIG9iajogU2NoZWR1bGluZ09iamVjdCkge1xyXG4gICAgY29uc3QgY3VycmVudFRhcmdldCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBjb25zdCBjdXJyZW50SG91clNwYW4gPSBjdXJyZW50VGFyZ2V0LnBhcmVudEVsZW1lbnQhLnBhcmVudEVsZW1lbnQhLnF1ZXJ5U2VsZWN0b3IoJy5ob3VyLWxhYmVsIHNwYW4nKSE7XHJcbiAgICBjb25zdCBjdXJyZW50SG91ciA9IGN1cnJlbnRIb3VyU3Bhbi50ZXh0Q29udGVudCE7XHJcblxyXG4gICAgdGhpcy5kcmFnZ2VkT2JqZWN0ID0gb2JqO1xyXG5cclxuICAgIGV2ZW50LmRhdGFUcmFuc2ZlciEuc2V0RGF0YSgndGV4dCcsIEpTT04uc3RyaW5naWZ5KHsgb2JqLCBjdXJyZW50SG91ciB9KSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRHJvcChldmVudDogRHJhZ0V2ZW50LCBob3VyOiBzdHJpbmcpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShldmVudC5kYXRhVHJhbnNmZXIhLmdldERhdGEoJ3RleHQnKSkgYXMgeyBvYmo6IFNjaGVkdWxpbmdPYmplY3QsIGN1cnJlbnRIb3VyOiBzdHJpbmcgfTtcclxuXHJcbiAgICBjb25zdCBuZXdTdGFydEhvdXIgPSBwYXJzZUludChob3VyLnNwbGl0KCc6JylbMF0sIDEwKTtcclxuICAgIGNvbnN0IG5ld0VuZEhvdXIgPSBuZXdTdGFydEhvdXIgKyAxO1xyXG5cclxuICAgIGRhdGEub2JqLnN0YXJ0ID0gbmV3U3RhcnRIb3VyO1xyXG4gICAgZGF0YS5vYmouZW5kID0gbmV3RW5kSG91cjtcclxuXHJcbiAgICBjb25zdCBjdXJyZW50SG91ckJsb2NrID0gZGF0YS5jdXJyZW50SG91cjtcclxuICAgIHRoaXMuc2NoZWR1bGVkT2JqZWN0c1tjdXJyZW50SG91ckJsb2NrXSA9IHRoaXMuc2NoZWR1bGVkT2JqZWN0c1tjdXJyZW50SG91ckJsb2NrXS5maWx0ZXIobyA9PiBvICE9PSB0aGlzLmRyYWdnZWRPYmplY3QpO1xyXG5cclxuICAgIGNvbnN0IG5ld0hvdXJCbG9jayA9IHRoaXMuZm9ybWF0SG91cihuZXdTdGFydEhvdXIpO1xyXG4gICAgaWYgKCF0aGlzLnNjaGVkdWxlZE9iamVjdHNbbmV3SG91ckJsb2NrXSkge1xyXG4gICAgICB0aGlzLnNjaGVkdWxlZE9iamVjdHNbbmV3SG91ckJsb2NrXSA9IFtdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zY2hlZHVsZWRPYmplY3RzW25ld0hvdXJCbG9ja10ucHVzaChkYXRhLm9iaik7XHJcblxyXG4gICAgdGhpcy5kcmFnZ2VkT2JqZWN0ID0gbnVsbDtcclxuXHJcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG91ci1zY2hlZHVsaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9ob3VyLXNjaGVkdWxpbmcvaG91ci1zY2hlZHVsaW5nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFFTCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLGlCQUFpQixHQUVsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFpRDNDLE1BQU0sT0FBTyx1QkFBdUI7SUFvQmxDLFlBQW9CLEtBQXdCLEVBQVUsU0FBbUI7UUFBckQsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBbEJsRSxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBVWYsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBR3RDLFVBQUssR0FBYSxFQUFFLENBQUM7UUFDckIscUJBQWdCLEdBQTJDLEVBQUUsQ0FBQztRQUU3RCxrQkFBYSxHQUFlLElBQUksQ0FBQztJQUVtQyxDQUFDO0lBRTdFLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQ3RCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQ3pELE1BQU0sQ0FDUCxDQUNGLENBQUM7WUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQ3RCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxR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Z0JBQzlCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBbkRDLGlCQUFpQjtZQUdWLFFBQVE7Ozt1QkF1RGQsS0FBSzs0QkFDTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSzt3QkFDTCxLQUFLOzZCQUNMLEtBQUs7aUNBQ0wsS0FBSztxQkFDTCxLQUFLO2lDQXdDTCxXQUFXLFNBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbnRlcmZhY2UgU2NoZWR1bGluZ09iamVjdCB7XHJcbiAgc3RhcnQ6IG51bWJlcjtcclxuICBlbmQ6IG51bWJlcjtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBzdWJUaXRsZT86IHN0cmluZztcclxuICBba2V5OiBzdHJpbmddOiBhbnk7IC8vIEFsbG93cyBkeW5hbWljIHByb3BlcnRpZXMgaW5jbHVkaW5nIHVuaXF1ZSBpZGVudGlmaWVyc1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLWhvdXItc2NoZWR1bGluZycsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ0aW1lLWJsb2NrXCIgKm5nRm9yPVwibGV0IGhvdXIgb2YgaG91cnNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImhvdXItbGFiZWxcIj48c3BhbiBbdGV4dENvbnRlbnRdPVwiaG91clwiPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwib2JqZWN0LWRpc3BsYXlcIlxyXG4gICAgICAgIChkcmFnb3Zlcik9XCJvbkRyYWdPdmVyKCRldmVudClcIlxyXG4gICAgICAgIChkcm9wKT1cIm9uRHJvcCgkZXZlbnQsIGhvdXIpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY3VzdG9tVGVtcGxhdGVVc2VkXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2NoZWR1bGVkT2JqZWN0c1tob3VyXVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9iaiBvZiBzY2hlZHVsZWRPYmplY3RzW2hvdXJdXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInNjaGVkdWxlZC1vYmplY3RcIlxyXG4gICAgICAgICAgICAgIFtkcmFnZ2FibGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgKGRyYWdzdGFydCk9XCJvbkRyYWdTdGFydCgkZXZlbnQsIG9iailcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiIFt0ZXh0Q29udGVudF09XCJvYmoudGl0bGVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIiBbdGV4dENvbnRlbnRdPVwib2JqLnN1YlRpdGxlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tVGVtcGxhdGVVc2VkXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xyXG4gICAgICAgICAgICAgIGhvdXI6IGhvdXIsXHJcbiAgICAgICAgICAgICAgb2JqZWN0czogc2NoZWR1bGVkT2JqZWN0c1tob3VyXVxyXG4gICAgICAgICAgICB9XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSG91clNjaGVkdWxpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwdWJsaWMgc2hvd0NsYXNzID0gdHJ1ZTtcclxuICBwdWJsaWMgc3RhcnRUaW1lOiBudW1iZXI7XHJcbiAgcHVibGljIGVuZFRpbWU6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KCkgc2NoZWR1bGU6IGFueTtcclxuICBASW5wdXQoKSBzdGFydFRpbWVQcm9wOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZW5kVGltZVByb3A6IHN0cmluZztcclxuICBASW5wdXQoKSBvYmplY3RzUHJvcDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNoaWxkUHJvcDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGN1c3RvbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIGN1c3RvbVRlbXBsYXRlVXNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlkUHJvcDogc3RyaW5nOyAgLy8gSW5wdXQgZm9yIHVuaXF1ZSBpZGVudGlmaWVyIHByb3BlcnR5XHJcblxyXG4gIHB1YmxpYyBob3Vyczogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgc2NoZWR1bGVkT2JqZWN0czogeyBbaG91cjogc3RyaW5nXTogU2NoZWR1bGluZ09iamVjdFtdIH0gPSB7fTtcclxuXHJcbiAgcHJpdmF0ZSBkcmFnZ2VkT2JqZWN0OiBhbnkgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgX2RhdGVwaXBlOiBEYXRlUGlwZSkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hpbGRQcm9wKSB7XHJcbiAgICAgIHRoaXMuc3RhcnRUaW1lID0gcGFyc2VJbnQoXHJcbiAgICAgICAgdGhpcy5fZGF0ZXBpcGUudHJhbnNmb3JtKFxyXG4gICAgICAgICAgbmV3IERhdGUodGhpcy5zY2hlZHVsZVt0aGlzLnN0YXJ0VGltZVByb3BdKS50b0lTT1N0cmluZygpLFxyXG4gICAgICAgICAgJ0g6bW0nXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmVuZFRpbWUgPSBwYXJzZUludChcclxuICAgICAgICB0aGlzLl9kYXRlcGlwZS50cmFuc2Zvcm0oXHJcbiAgICAgICAgICBuZXcgRGF0ZSh0aGlzLnNjaGVkdWxlW3RoaXMuZW5kVGltZVByb3BdKS50b0lTT1N0cmluZygpLFxyXG4gICAgICAgICAgJ0g6bW0nXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zdGFydFRpbWUgPSBwYXJzZUludChcclxuICAgICAgICB0aGlzLl9kYXRlcGlwZS50cmFuc2Zvcm0oXHJcbiAgICAgICAgICBuZXcgRGF0ZSh0aGlzLnNjaGVkdWxlW3RoaXMuY2hpbGRQcm9wXVt0aGlzLnN0YXJ0VGltZVByb3BdKS50b0lTT1N0cmluZygpLFxyXG4gICAgICAgICAgJ0g6bW0nXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmVuZFRpbWUgPSBwYXJzZUludChcclxuICAgICAgICB0aGlzLl9kYXRlcGlwZS50cmFuc2Zvcm0oXHJcbiAgICAgICAgICBuZXcgRGF0ZSh0aGlzLnNjaGVkdWxlW3RoaXMuY2hpbGRQcm9wXVt0aGlzLmVuZFRpbWVQcm9wXSkudG9JU09TdHJpbmcoKSxcclxuICAgICAgICAgICdIOm1tJ1xyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2VuZXJhdGVUaW1lQmxvY2tzKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLWhvdXItc2NoZWR1bGluZycpXHJcblxyXG4gIHB1YmxpYyBnZW5lcmF0ZVRpbWVCbG9ja3MoKSB7XHJcbiAgICBjb25zdCBvYmplY3RzTGlzdCA9IHRoaXMuc2NoZWR1bGVbdGhpcy5vYmplY3RzUHJvcF07XHJcblxyXG4gICAgZm9yIChsZXQgaG91ciA9IHRoaXMuc3RhcnRUaW1lOyBob3VyIDw9IHRoaXMuZW5kVGltZTsgaG91cisrKSB7XHJcbiAgICAgIHRoaXMuaG91cnMucHVzaCh0aGlzLmZvcm1hdEhvdXIoaG91cikpO1xyXG4gICAgICB0aGlzLnNjaGVkdWxlZE9iamVjdHNbdGhpcy5mb3JtYXRIb3VyKGhvdXIpXSA9IHRoaXMuX2dldE9iamVjdHNGb3JIb3VyKFxyXG4gICAgICAgIGhvdXIsXHJcbiAgICAgICAgb2JqZWN0c0xpc3RcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldE9iamVjdHNGb3JIb3VyKFxyXG4gICAgaG91cjogbnVtYmVyLFxyXG4gICAgb2JqZWN0c0xpc3Q6IGFueVtdXHJcbiAgKTogU2NoZWR1bGluZ09iamVjdFtdIHtcclxuICAgIGNvbnN0IG9iamVjdHNGb3JIb3VyOiBTY2hlZHVsaW5nT2JqZWN0W10gPSBbXTtcclxuXHJcbiAgICBvYmplY3RzTGlzdC5mb3JFYWNoKChvYmopID0+IHtcclxuICAgICAgaWYgKHRoaXMuY29udmVydFRvSG91ck5vdGF0aW9uKG9ialt0aGlzLnN0YXJ0VGltZVByb3BdKSA9PT0gaG91cikge1xyXG4gICAgICAgIG9iamVjdHNGb3JIb3VyLnB1c2goeyAuLi5vYmogfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBvYmplY3RzRm9ySG91cjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmb3JtYXRIb3VyKGhvdXI6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7aG91cn06MDBgO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRHJhZ1N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQsIG9iajogYW55KSB7XHJcbiAgICBjb25zdCBjdXJyZW50VGFyZ2V0ID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IGN1cnJlbnRIb3VyU3BhbiA9XHJcbiAgICAgIGN1cnJlbnRUYXJnZXQucGFyZW50RWxlbWVudCEucGFyZW50RWxlbWVudCEucXVlcnlTZWxlY3RvcihcclxuICAgICAgICAnLmhvdXItbGFiZWwgc3BhbidcclxuICAgICAgKSE7XHJcbiAgICBjb25zdCBjdXJyZW50SG91ciA9IGN1cnJlbnRIb3VyU3Bhbi50ZXh0Q29udGVudCE7XHJcblxyXG4gICAgdGhpcy5kcmFnZ2VkT2JqZWN0ID0gb2JqO1xyXG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyIS5zZXREYXRhKFxyXG4gICAgICAndGV4dCcsXHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KHsgb2JqOiB0aGlzLmRyYWdnZWRPYmplY3QsIGN1cnJlbnRIb3VyIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ3VzdG9tRHJhZ1N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQsIG9iajogU2NoZWR1bGluZ09iamVjdCkge1xyXG4gICAgdGhpcy5vbkRyYWdTdGFydChldmVudCwgb2JqKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQsIGhvdXI6IHN0cmluZykge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGV2ZW50LmRhdGFUcmFuc2ZlciEuZ2V0RGF0YSgndGV4dCcpKSBhcyB7XHJcbiAgICAgIG9iajogYW55O1xyXG4gICAgICBjdXJyZW50SG91cjogc3RyaW5nO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAoIWRhdGEgfHwgIWRhdGEub2JqKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBuZXdTdGFydEhvdXIgPSBwYXJzZUludChob3VyLnNwbGl0KCc6JylbMF0sIDEwKTtcclxuICAgIGNvbnN0IG5ld0VuZEhvdXIgPSBuZXdTdGFydEhvdXIgKyAxO1xyXG5cclxuICAgIGNvbnN0IG9yaWdpbmFsU3RhcnRIb3VyID0gdGhpcy5jb252ZXJ0VG9Ib3VyTm90YXRpb24oZGF0YS5vYmpbdGhpcy5zdGFydFRpbWVQcm9wXSk7XHJcblxyXG4gICAgLy8gR2V0IHRoZSB1bmlxdWUgaWRlbnRpZmllciB2YWx1ZSBmcm9tIHRoZSBvYmplY3QgdXNpbmcgdGhlIGBpZFByb3BgXHJcbiAgICBjb25zdCBvYmpJZCA9IGRhdGEub2JqW3RoaXMuaWRQcm9wXTtcclxuXHJcbiAgICAvLyBFbnN1cmUgd2UgY3JlYXRlIGEgbmV3IG9iamVjdCB0byBhdm9pZCBtdXRhdGlvbiBpc3N1ZXNcclxuICAgIGNvbnN0IHVwZGF0ZWRPYmplY3QgPSB7IC4uLmRhdGEub2JqLCBzdGFydDogbmV3U3RhcnRIb3VyLCBlbmQ6IG5ld0VuZEhvdXIgfTtcclxuXHJcbiAgICBjb25zdCB1cGRhdGVkT2JqZWN0MiA9IHsgLi4uZGF0YS5vYmosIFt0aGlzLnN0YXJ0VGltZVByb3BdOnRoaXMuY3JlYXRlRGF0ZShuZXdTdGFydEhvdXIpLCBbdGhpcy5lbmRUaW1lUHJvcF06dGhpcy5jcmVhdGVEYXRlKG5ld0VuZEhvdXIpfTtcclxuXHJcblxyXG4gICAgLy8gUmVtb3ZlIHRoZSBvYmplY3QgZnJvbSBpdHMgb2xkIGhvdXIgYmxvY2sgdXNpbmcgaXRzIHVuaXF1ZSBpZFxyXG4gICAgY29uc3Qgb3JpZ2luYWxIb3VyQmxvY2sgPSB0aGlzLmZvcm1hdEhvdXIob3JpZ2luYWxTdGFydEhvdXIpO1xyXG4gICAgdGhpcy5zY2hlZHVsZWRPYmplY3RzW29yaWdpbmFsSG91ckJsb2NrXSA9IHRoaXMuc2NoZWR1bGVkT2JqZWN0c1tvcmlnaW5hbEhvdXJCbG9ja10uZmlsdGVyKG8gPT4gb1t0aGlzLmlkUHJvcF0gIT09IG9iaklkKTtcclxuXHJcbiAgICAvLyBBZGQgdGhlIG9iamVjdCB0byB0aGUgbmV3IGhvdXIgYmxvY2tcclxuICAgIGNvbnN0IG5ld0hvdXJCbG9jayA9IHRoaXMuZm9ybWF0SG91cihuZXdTdGFydEhvdXIpO1xyXG4gICAgaWYgKCF0aGlzLnNjaGVkdWxlZE9iamVjdHNbbmV3SG91ckJsb2NrXSkge1xyXG4gICAgICB0aGlzLnNjaGVkdWxlZE9iamVjdHNbbmV3SG91ckJsb2NrXSA9IFtdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zY2hlZHVsZWRPYmplY3RzW25ld0hvdXJCbG9ja10ucHVzaCh1cGRhdGVkT2JqZWN0Mik7XHJcblxyXG4gICAgLy8gQ2xlYXIgdGhlIGRyYWdnZWQgb2JqZWN0XHJcbiAgICB0aGlzLmRyYWdnZWRPYmplY3QgPSBudWxsO1xyXG5cclxuICAgIC8vIFRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbiB0byB1cGRhdGUgdGhlIHZpZXdcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbnZlcnRUb0hvdXJOb3RhdGlvbihkYXRlOiBEYXRlKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBwYXJzZUludCh0aGlzLl9kYXRlcGlwZS50cmFuc2Zvcm0obmV3IERhdGUoZGF0ZSkudG9JU09TdHJpbmcoKSwgJ0g6bW0nICkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNyZWF0ZURhdGUoaG91cnM6IG51bWJlcikge1xyXG4gICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgZGF0ZS5zZXRIb3Vycyhob3Vycyk7XHJcbiAgICBkYXRlLnNldE1pbnV0ZXMoMCwgMCwgMCk7XHJcbiAgICByZXR1cm4gZGF0ZTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NgModule } from "@angular/core";
|
|
2
|
-
import { CommonModule } from "@angular/common";
|
|
2
|
+
import { CommonModule, DatePipe } from "@angular/common";
|
|
3
3
|
import { HourSchedulingComponent } from "./hour-scheduling.component";
|
|
4
4
|
import { HourSchedulingTestObjectComponent } from "./components/hour-scheduling-test-object/hour-scheduling-test-object.component";
|
|
5
5
|
export class HourSchedulingComponentModule {
|
|
@@ -16,7 +16,8 @@ HourSchedulingComponentModule.decorators = [
|
|
|
16
16
|
exports: [
|
|
17
17
|
HourSchedulingComponent,
|
|
18
18
|
HourSchedulingTestObjectComponent
|
|
19
|
-
]
|
|
19
|
+
],
|
|
20
|
+
providers: [DatePipe]
|
|
20
21
|
},] }
|
|
21
22
|
];
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG91ci1zY2hlZHVsaW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9ob3VyLXNjaGVkdWxpbmcvaG91ci1zY2hlZHVsaW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUUsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDcEUsT0FBTyxFQUNMLGlDQUFpQyxFQUNsQyxNQUFNLGdGQUFnRixDQUFDO0FBa0J4RixNQUFNLE9BQU8sNkJBQTZCOzs7WUFmekMsUUFBUSxTQUFDO2dCQUNOLE9BQU8sRUFBRTtvQkFDTCxZQUFZO2lCQUNmO2dCQUNELFlBQVksRUFBRTtvQkFDVix1QkFBdUI7b0JBQ3pCLGlDQUFpQztpQkFDbEM7Z0JBQ0gsT0FBTyxFQUFFO29CQUNQLHVCQUF1QjtvQkFDdkIsaUNBQWlDO2lCQUNsQztnQkFDRCxTQUFTLEVBQUUsQ0FBRSxRQUFRLENBQUM7YUFFdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZSwgRGF0ZVBpcGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtIb3VyU2NoZWR1bGluZ0NvbXBvbmVudH0gZnJvbSBcIi4vaG91ci1zY2hlZHVsaW5nLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gIEhvdXJTY2hlZHVsaW5nVGVzdE9iamVjdENvbXBvbmVudFxyXG59IGZyb20gXCIuL2NvbXBvbmVudHMvaG91ci1zY2hlZHVsaW5nLXRlc3Qtb2JqZWN0L2hvdXItc2NoZWR1bGluZy10ZXN0LW9iamVjdC5jb21wb25lbnRcIjtcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZVxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIEhvdXJTY2hlZHVsaW5nQ29tcG9uZW50LFxyXG4gICAgICBIb3VyU2NoZWR1bGluZ1Rlc3RPYmplY3RDb21wb25lbnQsXHJcbiAgICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIEhvdXJTY2hlZHVsaW5nQ29tcG9uZW50LFxyXG4gICAgSG91clNjaGVkdWxpbmdUZXN0T2JqZWN0Q29tcG9uZW50XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFsgRGF0ZVBpcGVdXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgSG91clNjaGVkdWxpbmdDb21wb25lbnRNb2R1bGUge1xyXG59XHJcbiJdfQ==
|
|
@@ -5,7 +5,7 @@ import { NgModel, FormGroup, FormsModule } from '@angular/forms';
|
|
|
5
5
|
import { Subject, merge, fromEvent, BehaviorSubject } from 'rxjs';
|
|
6
6
|
import { DomSanitizer, HammerGestureConfig, HammerModule, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';
|
|
7
7
|
import { trigger, state, style, transition, animate, query, animateChild } from '@angular/animations';
|
|
8
|
-
import { CommonModule } from '@angular/common';
|
|
8
|
+
import { CommonModule, DatePipe } from '@angular/common';
|
|
9
9
|
import { HttpClientModule } from '@angular/common/http';
|
|
10
10
|
import { auditTime } from 'rxjs/operators';
|
|
11
11
|
import { PlaneGeometry, Mesh, Vector2, Vector3, MeshPhongMaterial, SpotLight, PerspectiveCamera, Scene, Color, AmbientLight, Fog, WebGLRenderer, Box3 } from 'three';
|
|
@@ -13685,8 +13685,9 @@ ColorSequenceService.decorators = [
|
|
|
13685
13685
|
];
|
|
13686
13686
|
|
|
13687
13687
|
class HourSchedulingComponent {
|
|
13688
|
-
constructor(cdRef) {
|
|
13688
|
+
constructor(cdRef, _datepipe) {
|
|
13689
13689
|
this.cdRef = cdRef;
|
|
13690
|
+
this._datepipe = _datepipe;
|
|
13690
13691
|
this.showClass = true;
|
|
13691
13692
|
this.customTemplateUsed = false;
|
|
13692
13693
|
this.hours = [];
|
|
@@ -13694,21 +13695,27 @@ class HourSchedulingComponent {
|
|
|
13694
13695
|
this.draggedObject = null;
|
|
13695
13696
|
}
|
|
13696
13697
|
ngOnInit() {
|
|
13698
|
+
if (!this.childProp) {
|
|
13699
|
+
this.startTime = parseInt(this._datepipe.transform(new Date(this.schedule[this.startTimeProp]).toISOString(), 'H:mm'));
|
|
13700
|
+
this.endTime = parseInt(this._datepipe.transform(new Date(this.schedule[this.endTimeProp]).toISOString(), 'H:mm'));
|
|
13701
|
+
}
|
|
13702
|
+
else {
|
|
13703
|
+
this.startTime = parseInt(this._datepipe.transform(new Date(this.schedule[this.childProp][this.startTimeProp]).toISOString(), 'H:mm'));
|
|
13704
|
+
this.endTime = parseInt(this._datepipe.transform(new Date(this.schedule[this.childProp][this.endTimeProp]).toISOString(), 'H:mm'));
|
|
13705
|
+
}
|
|
13697
13706
|
this.generateTimeBlocks();
|
|
13698
13707
|
}
|
|
13699
13708
|
generateTimeBlocks() {
|
|
13700
|
-
const startTime = this.schedule[this.startTimeProp];
|
|
13701
|
-
const endTime = this.schedule[this.endTimeProp];
|
|
13702
13709
|
const objectsList = this.schedule[this.objectsProp];
|
|
13703
|
-
for (let hour = startTime; hour <= endTime; hour++) {
|
|
13710
|
+
for (let hour = this.startTime; hour <= this.endTime; hour++) {
|
|
13704
13711
|
this.hours.push(this.formatHour(hour));
|
|
13705
|
-
this.scheduledObjects[this.formatHour(hour)] = this.
|
|
13712
|
+
this.scheduledObjects[this.formatHour(hour)] = this._getObjectsForHour(hour, objectsList);
|
|
13706
13713
|
}
|
|
13707
13714
|
}
|
|
13708
|
-
|
|
13715
|
+
_getObjectsForHour(hour, objectsList) {
|
|
13709
13716
|
const objectsForHour = [];
|
|
13710
|
-
objectsList.forEach(obj => {
|
|
13711
|
-
if (obj.
|
|
13717
|
+
objectsList.forEach((obj) => {
|
|
13718
|
+
if (this.convertToHourNotation(obj[this.startTimeProp]) === hour) {
|
|
13712
13719
|
objectsForHour.push(Object.assign({}, obj));
|
|
13713
13720
|
}
|
|
13714
13721
|
});
|
|
@@ -13722,28 +13729,52 @@ class HourSchedulingComponent {
|
|
|
13722
13729
|
const currentHourSpan = currentTarget.parentElement.parentElement.querySelector('.hour-label span');
|
|
13723
13730
|
const currentHour = currentHourSpan.textContent;
|
|
13724
13731
|
this.draggedObject = obj;
|
|
13725
|
-
event.dataTransfer.setData('text', JSON.stringify({ obj, currentHour }));
|
|
13732
|
+
event.dataTransfer.setData('text', JSON.stringify({ obj: this.draggedObject, currentHour }));
|
|
13733
|
+
}
|
|
13734
|
+
onCustomDragStart(event, obj) {
|
|
13735
|
+
this.onDragStart(event, obj);
|
|
13726
13736
|
}
|
|
13727
13737
|
onDragOver(event) {
|
|
13728
13738
|
event.preventDefault();
|
|
13729
13739
|
}
|
|
13730
13740
|
onDrop(event, hour) {
|
|
13731
13741
|
event.preventDefault();
|
|
13742
|
+
event.stopPropagation();
|
|
13732
13743
|
const data = JSON.parse(event.dataTransfer.getData('text'));
|
|
13744
|
+
if (!data || !data.obj) {
|
|
13745
|
+
return;
|
|
13746
|
+
}
|
|
13733
13747
|
const newStartHour = parseInt(hour.split(':')[0], 10);
|
|
13734
13748
|
const newEndHour = newStartHour + 1;
|
|
13735
|
-
data.obj.
|
|
13736
|
-
|
|
13737
|
-
const
|
|
13738
|
-
|
|
13749
|
+
const originalStartHour = this.convertToHourNotation(data.obj[this.startTimeProp]);
|
|
13750
|
+
// Get the unique identifier value from the object using the `idProp`
|
|
13751
|
+
const objId = data.obj[this.idProp];
|
|
13752
|
+
// Ensure we create a new object to avoid mutation issues
|
|
13753
|
+
const updatedObject = Object.assign(Object.assign({}, data.obj), { start: newStartHour, end: newEndHour });
|
|
13754
|
+
const updatedObject2 = Object.assign(Object.assign({}, data.obj), { [this.startTimeProp]: this.createDate(newStartHour), [this.endTimeProp]: this.createDate(newEndHour) });
|
|
13755
|
+
// Remove the object from its old hour block using its unique id
|
|
13756
|
+
const originalHourBlock = this.formatHour(originalStartHour);
|
|
13757
|
+
this.scheduledObjects[originalHourBlock] = this.scheduledObjects[originalHourBlock].filter(o => o[this.idProp] !== objId);
|
|
13758
|
+
// Add the object to the new hour block
|
|
13739
13759
|
const newHourBlock = this.formatHour(newStartHour);
|
|
13740
13760
|
if (!this.scheduledObjects[newHourBlock]) {
|
|
13741
13761
|
this.scheduledObjects[newHourBlock] = [];
|
|
13742
13762
|
}
|
|
13743
|
-
this.scheduledObjects[newHourBlock].push(
|
|
13763
|
+
this.scheduledObjects[newHourBlock].push(updatedObject2);
|
|
13764
|
+
// Clear the dragged object
|
|
13744
13765
|
this.draggedObject = null;
|
|
13766
|
+
// Trigger change detection to update the view
|
|
13745
13767
|
this.cdRef.detectChanges();
|
|
13746
13768
|
}
|
|
13769
|
+
convertToHourNotation(date) {
|
|
13770
|
+
return parseInt(this._datepipe.transform(new Date(date).toISOString(), 'H:mm'));
|
|
13771
|
+
}
|
|
13772
|
+
createDate(hours) {
|
|
13773
|
+
let date = new Date();
|
|
13774
|
+
date.setHours(hours);
|
|
13775
|
+
date.setMinutes(0, 0, 0);
|
|
13776
|
+
return date;
|
|
13777
|
+
}
|
|
13747
13778
|
}
|
|
13748
13779
|
HourSchedulingComponent.decorators = [
|
|
13749
13780
|
{ type: Component, args: [{
|
|
@@ -13751,23 +13782,35 @@ HourSchedulingComponent.decorators = [
|
|
|
13751
13782
|
template: `
|
|
13752
13783
|
<div class="time-block" *ngFor="let hour of hours">
|
|
13753
13784
|
<div class="hour-label"><span [textContent]="hour"></span></div>
|
|
13754
|
-
<div
|
|
13755
|
-
|
|
13756
|
-
|
|
13785
|
+
<div
|
|
13786
|
+
class="object-display"
|
|
13787
|
+
(dragover)="onDragOver($event)"
|
|
13788
|
+
(drop)="onDrop($event, hour)"
|
|
13789
|
+
>
|
|
13757
13790
|
<ng-container *ngIf="!customTemplateUsed">
|
|
13758
13791
|
<ng-container *ngIf="scheduledObjects[hour]">
|
|
13759
|
-
<div
|
|
13760
|
-
|
|
13761
|
-
|
|
13792
|
+
<div
|
|
13793
|
+
*ngFor="let obj of scheduledObjects[hour]"
|
|
13794
|
+
class="scheduled-object"
|
|
13795
|
+
[draggable]="true"
|
|
13796
|
+
(dragstart)="onDragStart($event, obj)"
|
|
13797
|
+
>
|
|
13762
13798
|
<span class="title" [textContent]="obj.title"></span>
|
|
13763
13799
|
<span class="sub-title" [textContent]="obj.subTitle"></span>
|
|
13764
13800
|
</div>
|
|
13765
13801
|
</ng-container>
|
|
13766
13802
|
</ng-container>
|
|
13767
|
-
|
|
13768
|
-
|
|
13769
|
-
|
|
13770
|
-
|
|
13803
|
+
|
|
13804
|
+
<ng-container *ngIf="customTemplateUsed">
|
|
13805
|
+
<ng-template
|
|
13806
|
+
[ngTemplateOutlet]="customTemplate"
|
|
13807
|
+
[ngTemplateOutletContext]="{
|
|
13808
|
+
hour: hour,
|
|
13809
|
+
objects: scheduledObjects[hour]
|
|
13810
|
+
}"
|
|
13811
|
+
>
|
|
13812
|
+
</ng-template>
|
|
13813
|
+
</ng-container>
|
|
13771
13814
|
</div>
|
|
13772
13815
|
</div>
|
|
13773
13816
|
`,
|
|
@@ -13775,16 +13818,19 @@ HourSchedulingComponent.decorators = [
|
|
|
13775
13818
|
},] }
|
|
13776
13819
|
];
|
|
13777
13820
|
HourSchedulingComponent.ctorParameters = () => [
|
|
13778
|
-
{ type: ChangeDetectorRef }
|
|
13821
|
+
{ type: ChangeDetectorRef },
|
|
13822
|
+
{ type: DatePipe }
|
|
13779
13823
|
];
|
|
13780
13824
|
HourSchedulingComponent.propDecorators = {
|
|
13781
|
-
showClass: [{ type: HostBinding, args: ['class.co-hour-scheduling',] }],
|
|
13782
13825
|
schedule: [{ type: Input }],
|
|
13783
13826
|
startTimeProp: [{ type: Input }],
|
|
13784
13827
|
endTimeProp: [{ type: Input }],
|
|
13785
13828
|
objectsProp: [{ type: Input }],
|
|
13829
|
+
childProp: [{ type: Input }],
|
|
13786
13830
|
customTemplate: [{ type: Input }],
|
|
13787
|
-
customTemplateUsed: [{ type: Input }]
|
|
13831
|
+
customTemplateUsed: [{ type: Input }],
|
|
13832
|
+
idProp: [{ type: Input }],
|
|
13833
|
+
generateTimeBlocks: [{ type: HostBinding, args: ['class.co-hour-scheduling',] }]
|
|
13788
13834
|
};
|
|
13789
13835
|
|
|
13790
13836
|
class HourSchedulingTestObjectComponent {
|
|
@@ -13822,7 +13868,8 @@ HourSchedulingComponentModule.decorators = [
|
|
|
13822
13868
|
exports: [
|
|
13823
13869
|
HourSchedulingComponent,
|
|
13824
13870
|
HourSchedulingTestObjectComponent
|
|
13825
|
-
]
|
|
13871
|
+
],
|
|
13872
|
+
providers: [DatePipe]
|
|
13826
13873
|
},] }
|
|
13827
13874
|
];
|
|
13828
13875
|
|