@seniorsistemas/angular-components 16.13.1 → 17.0.0
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/seniorsistemas-angular-components.umd.js +1733 -26
- package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
- package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
- package/components/gantt/components/gantt/arrow.d.ts +16 -0
- package/components/gantt/components/gantt/bar.d.ts +43 -0
- package/components/gantt/components/gantt/gantt-options.d.ts +2 -0
- package/components/gantt/components/gantt/gantt.d.ts +66 -0
- package/components/gantt/components/gantt/popup.d.ts +11 -0
- package/components/gantt/components/gantt/utils/date-utils.d.ts +13 -0
- package/components/gantt/components/gantt/utils/svg-utils.d.ts +11 -0
- package/components/gantt/components/side-table/side-table.component.d.ts +7 -0
- package/components/gantt/gantt.component.d.ts +21 -0
- package/components/gantt/gantt.module.d.ts +2 -0
- package/components/gantt/index.d.ts +3 -0
- package/components/gantt/models/index.d.ts +3 -0
- package/components/gantt/models/options.d.ts +21 -0
- package/components/gantt/models/task.d.ts +21 -0
- package/components/gantt/models/view-mode.d.ts +9 -0
- package/esm2015/components/gantt/components/gantt/arrow.js +82 -0
- package/esm2015/components/gantt/components/gantt/bar.js +236 -0
- package/esm2015/components/gantt/components/gantt/gantt-options.js +16 -0
- package/esm2015/components/gantt/components/gantt/gantt.js +767 -0
- package/esm2015/components/gantt/components/gantt/popup.js +68 -0
- package/esm2015/components/gantt/components/gantt/utils/date-utils.js +126 -0
- package/esm2015/components/gantt/components/gantt/utils/svg-utils.js +119 -0
- package/esm2015/components/gantt/components/side-table/side-table.component.js +26 -0
- package/esm2015/components/gantt/gantt.component.js +112 -0
- package/esm2015/components/gantt/gantt.module.js +19 -0
- package/esm2015/components/gantt/index.js +4 -0
- package/esm2015/components/gantt/models/index.js +2 -0
- package/esm2015/components/gantt/models/options.js +1 -0
- package/esm2015/components/gantt/models/task.js +1 -0
- package/esm2015/components/gantt/models/view-mode.js +11 -0
- package/esm2015/components/sidebar/sidebar.component.js +3 -3
- package/esm2015/public-api.js +2 -1
- package/esm2015/seniorsistemas-angular-components.js +25 -24
- package/esm5/components/gantt/components/gantt/arrow.js +81 -0
- package/esm5/components/gantt/components/gantt/bar.js +271 -0
- package/esm5/components/gantt/components/gantt/gantt-options.js +16 -0
- package/esm5/components/gantt/components/gantt/gantt.js +883 -0
- package/esm5/components/gantt/components/gantt/popup.js +59 -0
- package/esm5/components/gantt/components/gantt/utils/date-utils.js +134 -0
- package/esm5/components/gantt/components/gantt/utils/svg-utils.js +121 -0
- package/esm5/components/gantt/components/side-table/side-table.component.js +27 -0
- package/esm5/components/gantt/gantt.component.js +114 -0
- package/esm5/components/gantt/gantt.module.js +22 -0
- package/esm5/components/gantt/index.js +4 -0
- package/esm5/components/gantt/models/index.js +2 -0
- package/esm5/components/gantt/models/options.js +1 -0
- package/esm5/components/gantt/models/task.js +1 -0
- package/esm5/components/gantt/models/view-mode.js +11 -0
- package/esm5/components/sidebar/sidebar.component.js +3 -3
- package/esm5/public-api.js +2 -1
- package/esm5/seniorsistemas-angular-components.js +25 -24
- package/fesm2015/seniorsistemas-angular-components.js +1558 -4
- package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-angular-components.js +1708 -4
- package/fesm5/seniorsistemas-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/seniorsistemas-angular-components.d.ts +24 -23
- package/seniorsistemas-angular-components.metadata.json +1 -1
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import { __values } from "tslib";
|
|
2
|
+
import { DateUtils } from './utils/date-utils';
|
|
3
|
+
import { $, createSVG, animateSVG } from './utils/svg-utils';
|
|
4
|
+
import { ViewMode } from "../../models/view-mode";
|
|
5
|
+
var Bar = /** @class */ (function () {
|
|
6
|
+
function Bar(gantt, task) {
|
|
7
|
+
this._setDefaults(gantt, task);
|
|
8
|
+
this._prepare();
|
|
9
|
+
this._draw();
|
|
10
|
+
this._bind();
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(Bar.prototype, "arrows", {
|
|
13
|
+
get: function () {
|
|
14
|
+
return this._arrows;
|
|
15
|
+
},
|
|
16
|
+
set: function (arrows) {
|
|
17
|
+
this._arrows = arrows;
|
|
18
|
+
},
|
|
19
|
+
enumerable: true,
|
|
20
|
+
configurable: true
|
|
21
|
+
});
|
|
22
|
+
Object.defineProperty(Bar.prototype, "task", {
|
|
23
|
+
get: function () {
|
|
24
|
+
return this._task;
|
|
25
|
+
},
|
|
26
|
+
enumerable: true,
|
|
27
|
+
configurable: true
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(Bar.prototype, "element", {
|
|
30
|
+
get: function () {
|
|
31
|
+
return this._element;
|
|
32
|
+
},
|
|
33
|
+
enumerable: true,
|
|
34
|
+
configurable: true
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(Bar.prototype, "group", {
|
|
37
|
+
get: function () {
|
|
38
|
+
return this._group;
|
|
39
|
+
},
|
|
40
|
+
enumerable: true,
|
|
41
|
+
configurable: true
|
|
42
|
+
});
|
|
43
|
+
Bar.prototype.updateBarPosition = function (_a) {
|
|
44
|
+
var _this = this;
|
|
45
|
+
var x = _a.x, width = _a.width;
|
|
46
|
+
var bar = this.element;
|
|
47
|
+
if (x) {
|
|
48
|
+
// get all x values of parent task
|
|
49
|
+
var xs = this.task.dependencies.map(function (dep) {
|
|
50
|
+
return _this._gantt.get_bar(dep).element.getX();
|
|
51
|
+
});
|
|
52
|
+
// child task must not go before parent
|
|
53
|
+
var valid_x = xs.reduce(function (prev, curr) {
|
|
54
|
+
return x >= curr;
|
|
55
|
+
}, x);
|
|
56
|
+
if (!valid_x) {
|
|
57
|
+
width = null;
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
this._updateAttr(bar, "x", x);
|
|
61
|
+
}
|
|
62
|
+
if (width && width >= this._gantt.options.columnWidth) {
|
|
63
|
+
this._updateAttr(bar, "width", width);
|
|
64
|
+
}
|
|
65
|
+
this._updateLabelPosition();
|
|
66
|
+
this._updateArrowPosition();
|
|
67
|
+
};
|
|
68
|
+
Bar.prototype.dateChanged = function () {
|
|
69
|
+
var changed = false;
|
|
70
|
+
var _a = this._computeStartEndDate(), newStartDate = _a.newStartDate, newEndDate = _a.newEndDate;
|
|
71
|
+
if (this.task.start !== newStartDate) {
|
|
72
|
+
changed = true;
|
|
73
|
+
this.task.start = newStartDate;
|
|
74
|
+
}
|
|
75
|
+
if (this.task.end !== newEndDate) {
|
|
76
|
+
changed = true;
|
|
77
|
+
this.task.end = newEndDate;
|
|
78
|
+
}
|
|
79
|
+
if (changed) {
|
|
80
|
+
this._gantt.trigger_event("onDateChange", [
|
|
81
|
+
this.task,
|
|
82
|
+
newStartDate,
|
|
83
|
+
DateUtils.add(newEndDate, -1, "second"),
|
|
84
|
+
]);
|
|
85
|
+
}
|
|
86
|
+
;
|
|
87
|
+
};
|
|
88
|
+
Bar.prototype.setActionCompleted = function () {
|
|
89
|
+
var _this = this;
|
|
90
|
+
this._actionCompleted = true;
|
|
91
|
+
setTimeout(function () {
|
|
92
|
+
_this._actionCompleted = false;
|
|
93
|
+
}, 1000);
|
|
94
|
+
};
|
|
95
|
+
Bar.prototype._setDefaults = function (gantt, task) {
|
|
96
|
+
this._actionCompleted = false;
|
|
97
|
+
this._gantt = gantt;
|
|
98
|
+
this._task = task;
|
|
99
|
+
};
|
|
100
|
+
Bar.prototype._prepare = function () {
|
|
101
|
+
this._prepareValues();
|
|
102
|
+
this._prepareHelpers();
|
|
103
|
+
};
|
|
104
|
+
Bar.prototype._prepareValues = function () {
|
|
105
|
+
this._invalid = this.task.invalid;
|
|
106
|
+
this._height = this._gantt.options.barHeight;
|
|
107
|
+
this._x = this._computeX();
|
|
108
|
+
this._y = this._computeY();
|
|
109
|
+
this._cornerRadius = this._gantt.options.barCornerRadius;
|
|
110
|
+
this._duration = DateUtils.diff(this.task.end, this.task.start, "minute") / this._gantt.options.step / 60.0;
|
|
111
|
+
this._width = this._gantt.options.columnWidth * this._duration;
|
|
112
|
+
this._group = createSVG("g", {
|
|
113
|
+
class: "bar-wrapper " + (this.task.custom_class || ""),
|
|
114
|
+
"data-id": this.task.id,
|
|
115
|
+
});
|
|
116
|
+
this._barGroup = createSVG("g", {
|
|
117
|
+
class: "bar-group",
|
|
118
|
+
append_to: this.group,
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
Bar.prototype._prepareHelpers = function () {
|
|
122
|
+
SVGElement.prototype.getX = function () {
|
|
123
|
+
return +this.getAttribute("x");
|
|
124
|
+
};
|
|
125
|
+
SVGElement.prototype.getY = function () {
|
|
126
|
+
return +this.getAttribute("y");
|
|
127
|
+
};
|
|
128
|
+
SVGElement.prototype.getWidth = function () {
|
|
129
|
+
return +this.getAttribute("width");
|
|
130
|
+
};
|
|
131
|
+
SVGElement.prototype.getHeight = function () {
|
|
132
|
+
return +this.getAttribute("height");
|
|
133
|
+
};
|
|
134
|
+
SVGElement.prototype.getEndX = function () {
|
|
135
|
+
return this.getX() + this.getWidth();
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
Bar.prototype._draw = function () {
|
|
139
|
+
this._drawBar();
|
|
140
|
+
this._drawLabel();
|
|
141
|
+
};
|
|
142
|
+
Bar.prototype._drawBar = function () {
|
|
143
|
+
this._element = createSVG("rect", {
|
|
144
|
+
x: this._x,
|
|
145
|
+
y: this._y,
|
|
146
|
+
width: this._width,
|
|
147
|
+
height: this._height,
|
|
148
|
+
rx: this._cornerRadius,
|
|
149
|
+
ry: this._cornerRadius,
|
|
150
|
+
class: "bar",
|
|
151
|
+
append_to: this._barGroup,
|
|
152
|
+
fill: this.task.color,
|
|
153
|
+
});
|
|
154
|
+
animateSVG(this.element, "width", 0, this._width);
|
|
155
|
+
if (this._invalid) {
|
|
156
|
+
this.element.classList.add("bar-invalid");
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
Bar.prototype._drawLabel = function () {
|
|
160
|
+
var _this = this;
|
|
161
|
+
createSVG("text", {
|
|
162
|
+
x: this._x + this._width / 2,
|
|
163
|
+
y: this._y + this._height / 2,
|
|
164
|
+
innerHTML: this.task.showTaskName ? this.task.name : "",
|
|
165
|
+
class: "bar-label",
|
|
166
|
+
append_to: this._barGroup,
|
|
167
|
+
});
|
|
168
|
+
// labels get BBox in the next tick
|
|
169
|
+
requestAnimationFrame(function () { return _this._updateLabelPosition(); });
|
|
170
|
+
};
|
|
171
|
+
Bar.prototype._bind = function () {
|
|
172
|
+
if (!this._invalid) {
|
|
173
|
+
this._setupClickEvent();
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
Bar.prototype._setupClickEvent = function () {
|
|
177
|
+
var _this = this;
|
|
178
|
+
$.on(this.group, "focus " + this._gantt.options.popupTrigger, function (e) {
|
|
179
|
+
// just finished a move action, wait for a few seconds
|
|
180
|
+
if (!_this._actionCompleted) {
|
|
181
|
+
_this._showPopup();
|
|
182
|
+
_this._gantt.unselect_all();
|
|
183
|
+
_this.group.classList.add("active");
|
|
184
|
+
}
|
|
185
|
+
}, null);
|
|
186
|
+
$.on(this.group, "dblclick", function (e) {
|
|
187
|
+
// just finished a move action, wait for a few seconds
|
|
188
|
+
if (!_this._actionCompleted) {
|
|
189
|
+
_this._gantt.trigger_event("onClick", [_this.task]);
|
|
190
|
+
}
|
|
191
|
+
}, null);
|
|
192
|
+
};
|
|
193
|
+
Bar.prototype._showPopup = function () {
|
|
194
|
+
if (this._gantt.bar_being_dragged) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
var formatString = this._gantt.view_is(ViewMode.Hour)
|
|
198
|
+
? "HH:ss"
|
|
199
|
+
: "MMM D";
|
|
200
|
+
var start_date = DateUtils.format(this.task.start, formatString, this._gantt.options.language);
|
|
201
|
+
var end_date = DateUtils.format(DateUtils.add(this.task.end, -1, "second"), formatString, this._gantt.options.language);
|
|
202
|
+
var subtitle = start_date + " - " + end_date;
|
|
203
|
+
this._gantt.show_popup({
|
|
204
|
+
target_element: this.element,
|
|
205
|
+
title: this.task.name,
|
|
206
|
+
subtitle: subtitle,
|
|
207
|
+
task: this.task,
|
|
208
|
+
});
|
|
209
|
+
};
|
|
210
|
+
Bar.prototype._computeStartEndDate = function () {
|
|
211
|
+
var bar = this.element;
|
|
212
|
+
var xInUnits = bar.getX() / this._gantt.options.columnWidth;
|
|
213
|
+
var newStartDate = DateUtils.add(this._gantt.minDate, xInUnits * this._gantt.options.step, "hour");
|
|
214
|
+
var width_in_units = bar.getWidth() / this._gantt.options.columnWidth;
|
|
215
|
+
var newEndDate = DateUtils.add(newStartDate, width_in_units * this._gantt.options.step, "hour");
|
|
216
|
+
return { newStartDate: newStartDate, newEndDate: newEndDate };
|
|
217
|
+
};
|
|
218
|
+
Bar.prototype._computeX = function () {
|
|
219
|
+
var _a = this._gantt.options, step = _a.step, columnWidth = _a.columnWidth;
|
|
220
|
+
var diff = DateUtils.diff(this.task.start, this._gantt.minDate, "hour");
|
|
221
|
+
var x = (diff / step) * columnWidth;
|
|
222
|
+
if (this._gantt.view_is(ViewMode.Month)) {
|
|
223
|
+
var diff_1 = DateUtils.diff(this.task.start, this._gantt.minDate, "day");
|
|
224
|
+
x = (diff_1 * columnWidth) / 30;
|
|
225
|
+
}
|
|
226
|
+
return x;
|
|
227
|
+
};
|
|
228
|
+
Bar.prototype._computeY = function () {
|
|
229
|
+
return (this._gantt.options.headerHeight +
|
|
230
|
+
this._gantt.options.padding +
|
|
231
|
+
this.task._index * (this._height + this._gantt.options.padding));
|
|
232
|
+
};
|
|
233
|
+
Bar.prototype._updateAttr = function (element, attr, value) {
|
|
234
|
+
value = +value;
|
|
235
|
+
if (!isNaN(value)) {
|
|
236
|
+
element.setAttribute(attr, value);
|
|
237
|
+
}
|
|
238
|
+
return element;
|
|
239
|
+
};
|
|
240
|
+
Bar.prototype._updateLabelPosition = function () {
|
|
241
|
+
var bar = this.element, label = this.group.querySelector(".bar-label");
|
|
242
|
+
if (label.getBBox().width > bar.getWidth()) {
|
|
243
|
+
label.classList.add("big");
|
|
244
|
+
label.setAttribute("x", bar.getX() + bar.getWidth() + 5);
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
label.classList.remove("big");
|
|
248
|
+
label.setAttribute("x", bar.getX() + bar.getWidth() / 2);
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
Bar.prototype._updateArrowPosition = function () {
|
|
252
|
+
var e_1, _a;
|
|
253
|
+
this._arrows = this._arrows || [];
|
|
254
|
+
try {
|
|
255
|
+
for (var _b = __values(this._arrows), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
256
|
+
var arrow = _c.value;
|
|
257
|
+
arrow.update();
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
261
|
+
finally {
|
|
262
|
+
try {
|
|
263
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
264
|
+
}
|
|
265
|
+
finally { if (e_1) throw e_1.error; }
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
return Bar;
|
|
269
|
+
}());
|
|
270
|
+
export { Bar };
|
|
271
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZ2FudHQvY29tcG9uZW50cy9nYW50dC9iYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFNbEQ7SUFxQ0ksYUFBWSxLQUFVLEVBQUUsSUFBUztRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUF6QkQsc0JBQVcsdUJBQU07YUFBakI7WUFDSSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQzthQUVELFVBQWtCLE1BQWU7WUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDMUIsQ0FBQzs7O09BSkE7SUFNRCxzQkFBVyxxQkFBSTthQUFmO1lBQ0ksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RCLENBQUM7OztPQUFBO0lBRUQsc0JBQVcsd0JBQU87YUFBbEI7WUFDSSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDekIsQ0FBQzs7O09BQUE7SUFFRCxzQkFBVyxzQkFBSzthQUFoQjtZQUNJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN2QixDQUFDOzs7T0FBQTtJQVNNLCtCQUFpQixHQUF4QixVQUF5QixFQUFpQjtRQUExQyxpQkFzQkM7WUF0QjBCLFFBQUMs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LENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbkQsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN4QyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzVEO2FBQU07WUFDSCxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzVEO0lBQ0wsQ0FBQztJQUVPLGtDQUFvQixHQUE1Qjs7UUFDSSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDOztZQUNsQyxLQUFrQixJQUFBLEtBQUEsU0FBQSxJQUFJLENBQUMsT0FBTyxDQUFBLGdCQUFBLDRCQUFFO2dCQUEzQixJQUFJLEtBQUssV0FBQTtnQkFDVixLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDbEI7Ozs7Ozs7OztJQUNMLENBQUM7SUFDTCxVQUFDO0FBQUQsQ0FBQyxBQTdTRCxJQTZTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVVdGlscyB9IGZyb20gJy4vdXRpbHMvZGF0ZS11dGlscyc7XG5pbXBvcnQgeyAkLCBjcmVhdGVTVkcsIGFuaW1hdGVTVkcgfSBmcm9tICcuL3V0aWxzL3N2Zy11dGlscyc7XG5pbXBvcnQgeyBWaWV3TW9kZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvdmlldy1tb2RlXCI7XG5cbmltcG9ydCB7IEdhbnR0IH0gZnJvbSBcIi4vZ2FudHRcIjtcbmltcG9ydCB7IEVucmljaGVkVGFzayB9IGZyb20gXCIuLi8uLi9tb2RlbHMvdGFza1wiO1xuaW1wb3J0IHsgQXJyb3cgfSBmcm9tIFwiLi9hcnJvd1wiO1xuXG5leHBvcnQgY2xhc3MgQmFyIHtcbiAgICBwcml2YXRlIF9hY3Rpb25Db21wbGV0ZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfZ2FudHQ6IEdhbnR0O1xuICAgIHByaXZhdGUgX2ludmFsaWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfaGVpZ2h0OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfeDogbnVtYmVyO1xuICAgIHByaXZhdGUgX3k6IG51bWJlcjtcbiAgICBwcml2YXRlIF9jb3JuZXJSYWRpdXM6IG51bWJlcjtcbiAgICBwcml2YXRlIF9kdXJhdGlvbjogbnVtYmVyO1xuICAgIHByaXZhdGUgX3dpZHRoOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfYmFyR3JvdXA6IGFueTtcblxuICAgIHByaXZhdGUgX2Fycm93czogQXJyb3dbXTtcbiAgICBwcml2YXRlIF9ncm91cDogYW55O1xuICAgIHByaXZhdGUgX3Rhc2s6IEVucmljaGVkVGFzaztcbiAgICBwcml2YXRlIF9lbGVtZW50OiBhbnk7XG5cbiAgICBwdWJsaWMgZ2V0IGFycm93cygpOiBBcnJvd1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Fycm93cztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGFycm93cyhhcnJvd3M6IEFycm93W10pIHtcbiAgICAgICAgdGhpcy5fYXJyb3dzID0gYXJyb3dzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGFzaygpOiBFbnJpY2hlZFRhc2sge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFzaztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZ3JvdXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ncm91cDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihnYW50dDogYW55LCB0YXNrOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fc2V0RGVmYXVsdHMoZ2FudHQsIHRhc2spO1xuICAgICAgICB0aGlzLl9wcmVwYXJlKCk7XG4gICAgICAgIHRoaXMuX2RyYXcoKTtcbiAgICAgICAgdGhpcy5fYmluZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVCYXJQb3NpdGlvbih7IHgsIHdpZHRoIH06IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBiYXIgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgIGlmICh4KSB7XG4gICAgICAgICAgICAvLyBnZXQgYWxsIHggdmFsdWVzIG9mIHBhcmVudCB0YXNrXG4gICAgICAgICAgICBjb25zdCB4cyA9IHRoaXMudGFzay5kZXBlbmRlbmNpZXMubWFwKChkZXA6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9nYW50dC5nZXRfYmFyKGRlcCkuZWxlbWVudC5nZXRYKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIGNoaWxkIHRhc2sgbXVzdCBub3QgZ28gYmVmb3JlIHBhcmVudFxuICAgICAgICAgICAgY29uc3QgdmFsaWRfeCA9IHhzLnJlZHVjZSgocHJldjogYW55LCBjdXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geCA+PSBjdXJyO1xuICAgICAgICAgICAgfSwgeCk7XG4gICAgICAgICAgICBpZiAoIXZhbGlkX3gpIHtcbiAgICAgICAgICAgICAgICB3aWR0aCA9IG51bGw7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQXR0cihiYXIsIFwieFwiLCB4KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2lkdGggJiYgd2lkdGggPj0gdGhpcy5fZ2FudHQub3B0aW9ucy5jb2x1bW5XaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQXR0cihiYXIsIFwid2lkdGhcIiwgd2lkdGgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3VwZGF0ZUxhYmVsUG9zaXRpb24oKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlQXJyb3dQb3NpdGlvbigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkYXRlQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgeyBuZXdTdGFydERhdGUsIG5ld0VuZERhdGUgfSA9IHRoaXMuX2NvbXB1dGVTdGFydEVuZERhdGUoKTtcblxuICAgICAgICBpZiAodGhpcy50YXNrLnN0YXJ0ICE9PSBuZXdTdGFydERhdGUpIHtcbiAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy50YXNrLnN0YXJ0ID0gbmV3U3RhcnREYXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudGFzay5lbmQgIT09IG5ld0VuZERhdGUpIHtcbiAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy50YXNrLmVuZCA9IG5ld0VuZERhdGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5fZ2FudHQudHJpZ2dlcl9ldmVudChcIm9uRGF0ZUNoYW5nZVwiLCBbXG4gICAgICAgICAgICAgICAgdGhpcy50YXNrLFxuICAgICAgICAgICAgICAgIG5ld1N0YXJ0RGF0ZSxcbiAgICAgICAgICAgICAgICBEYXRlVXRpbHMuYWRkKG5ld0VuZERhdGUsIC0xLCBcInNlY29uZFwiKSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBY3Rpb25Db21wbGV0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FjdGlvbkNvbXBsZXRlZCA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fYWN0aW9uQ29tcGxldGVkID0gZmFsc2U7XG4gICAgICAgIH0sIDEwMDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldERlZmF1bHRzKGdhbnR0OiBhbnksIHRhc2s6IGFueSkge1xuICAgICAgICB0aGlzLl9hY3Rpb25Db21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fZ2FudHQgPSBnYW50dDtcbiAgICAgICAgdGhpcy5fdGFzayA9IHRhc2s7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZSgpIHtcbiAgICAgICAgdGhpcy5fcHJlcGFyZVZhbHVlcygpO1xuICAgICAgICB0aGlzLl9wcmVwYXJlSGVscGVycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ByZXBhcmVWYWx1ZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ludmFsaWQgPSB0aGlzLnRhc2suaW52YWxpZDtcbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gdGhpcy5fZ2FudHQub3B0aW9ucy5iYXJIZWlnaHQ7XG4gICAgICAgIHRoaXMuX3ggPSB0aGlzLl9jb21wdXRlWCgpO1xuICAgICAgICB0aGlzLl95ID0gdGhpcy5fY29tcHV0ZVkoKTtcbiAgICAgICAgdGhpcy5fY29ybmVyUmFkaXVzID0gdGhpcy5fZ2FudHQub3B0aW9ucy5iYXJDb3JuZXJSYWRpdXM7XG4gICAgICAgIHRoaXMuX2R1cmF0aW9uID0gRGF0ZVV0aWxzLmRpZmYodGhpcy50YXNrLmVuZCwgdGhpcy50YXNrLnN0YXJ0LCBcIm1pbnV0ZVwiKSAvIHRoaXMuX2dhbnR0Lm9wdGlvbnMuc3RlcCAvIDYwLjA7XG4gICAgICAgIHRoaXMuX3dpZHRoID0gdGhpcy5fZ2FudHQub3B0aW9ucy5jb2x1bW5XaWR0aCAqIHRoaXMuX2R1cmF0aW9uO1xuICAgICAgICB0aGlzLl9ncm91cCA9IGNyZWF0ZVNWRyhcImdcIiwge1xuICAgICAgICAgICAgY2xhc3M6IFwiYmFyLXdyYXBwZXIgXCIgKyAodGhpcy50YXNrLmN1c3RvbV9jbGFzcyB8fCBcIlwiKSxcbiAgICAgICAgICAgIFwiZGF0YS1pZFwiOiB0aGlzLnRhc2suaWQsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9iYXJHcm91cCA9IGNyZWF0ZVNWRyhcImdcIiwge1xuICAgICAgICAgICAgY2xhc3M6IFwiYmFyLWdyb3VwXCIsXG4gICAgICAgICAgICBhcHBlbmRfdG86IHRoaXMuZ3JvdXAsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ByZXBhcmVIZWxwZXJzKCk6IHZvaWQge1xuICAgICAgICAoU1ZHRWxlbWVudC5wcm90b3R5cGUgYXMgYW55KS5nZXRYID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuICt0aGlzLmdldEF0dHJpYnV0ZShcInhcIik7XG4gICAgICAgIH07XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldFkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gK3RoaXMuZ2V0QXR0cmlidXRlKFwieVwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgKFNWR0VsZW1lbnQucHJvdG90eXBlIGFzIGFueSkuZ2V0V2lkdGggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gK3RoaXMuZ2V0QXR0cmlidXRlKFwid2lkdGhcIik7XG4gICAgICAgIH07XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldEhlaWdodCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiArdGhpcy5nZXRBdHRyaWJ1dGUoXCJoZWlnaHRcIik7XG4gICAgICAgIH07XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldEVuZFggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRYKCkgKyB0aGlzLmdldFdpZHRoKCk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZHJhdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZHJhd0JhcigpO1xuICAgICAgICB0aGlzLl9kcmF3TGFiZWwoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kcmF3QmFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9lbGVtZW50ID0gY3JlYXRlU1ZHKFwicmVjdFwiLCB7XG4gICAgICAgICAgICB4OiB0aGlzLl94LFxuICAgICAgICAgICAgeTogdGhpcy5feSxcbiAgICAgICAgICAgIHdpZHRoOiB0aGlzLl93aWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogdGhpcy5faGVpZ2h0LFxuICAgICAgICAgICAgcng6IHRoaXMuX2Nvcm5lclJhZGl1cyxcbiAgICAgICAgICAgIHJ5OiB0aGlzLl9jb3JuZXJSYWRpdXMsXG4gICAgICAgICAgICBjbGFzczogXCJiYXJcIixcbiAgICAgICAgICAgIGFwcGVuZF90bzogdGhpcy5fYmFyR3JvdXAsXG4gICAgICAgICAgICBmaWxsOiB0aGlzLnRhc2suY29sb3IsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFuaW1hdGVTVkcodGhpcy5lbGVtZW50LCBcIndpZHRoXCIsIDAsIHRoaXMuX3dpZHRoKTtcblxuICAgICAgICBpZiAodGhpcy5faW52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJiYXItaW52YWxpZFwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2RyYXdMYWJlbCgpOiB2b2lkIHtcbiAgICAgICAgY3JlYXRlU1ZHKFwidGV4dFwiLCB7XG4gICAgICAgICAgICB4OiB0aGlzLl94ICsgdGhpcy5fd2lkdGggLyAyLFxuICAgICAgICAgICAgeTogdGhpcy5feSArIHRoaXMuX2hlaWdodCAvIDIsXG4gICAgICAgICAgICBpbm5lckhUTUw6IHRoaXMudGFzay5zaG93VGFza05hbWUgPyB0aGlzLnRhc2submFtZSA6IFwiXCIsXG4gICAgICAgICAgICBjbGFzczogXCJiYXItbGFiZWxcIixcbiAgICAgICAgICAgIGFwcGVuZF90bzogdGhpcy5fYmFyR3JvdXAsXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBsYWJlbHMgZ2V0IEJCb3ggaW4gdGhlIG5leHQgdGlja1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5fdXBkYXRlTGFiZWxQb3NpdGlvbigpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9iaW5kKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2ludmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldHVwQ2xpY2tFdmVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0dXBDbGlja0V2ZW50KCk6IHZvaWQge1xuICAgICAgICAkLm9uKHRoaXMuZ3JvdXAsIFwiZm9jdXMgXCIgKyB0aGlzLl9nYW50dC5vcHRpb25zLnBvcHVwVHJpZ2dlciwgKGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgLy8ganVzdCBmaW5pc2hlZCBhIG1vdmUgYWN0aW9uLCB3YWl0IGZvciBhIGZldyBzZWNvbmRzXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2FjdGlvbkNvbXBsZXRlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dQb3B1cCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2dhbnR0LnVuc2VsZWN0X2FsbCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXAuY2xhc3NMaXN0LmFkZChcImFjdGl2ZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgbnVsbCk7XG5cbiAgICAgICAgJC5vbih0aGlzLmdyb3VwLCBcImRibGNsaWNrXCIsIChlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIC8vIGp1c3QgZmluaXNoZWQgYSBtb3ZlIGFjdGlvbiwgd2FpdCBmb3IgYSBmZXcgc2Vjb25kc1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2FjdGlvbkNvbXBsZXRlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2dhbnR0LnRyaWdnZXJfZXZlbnQoXCJvbkNsaWNrXCIsIFt0aGlzLnRhc2tdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgbnVsbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2hvd1BvcHVwKCkge1xuICAgICAgICBpZiAodGhpcy5fZ2FudHQuYmFyX2JlaW5nX2RyYWdnZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvcm1hdFN0cmluZyA9IHRoaXMuX2dhbnR0LnZpZXdfaXMoVmlld01vZGUuSG91cilcbiAgICAgICAgICAgID8gXCJISDpzc1wiXG4gICAgICAgICAgICA6IFwiTU1NIERcIjtcblxuICAgICAgICBjb25zdCBzdGFydF9kYXRlID0gRGF0ZVV0aWxzLmZvcm1hdChcbiAgICAgICAgICAgIHRoaXMudGFzay5zdGFydCxcbiAgICAgICAgICAgIGZvcm1hdFN0cmluZyxcbiAgICAgICAgICAgIHRoaXMuX2dhbnR0Lm9wdGlvbnMubGFuZ3VhZ2VcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZW5kX2RhdGUgPSBEYXRlVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgRGF0ZVV0aWxzLmFkZCh0aGlzLnRhc2suZW5kLCAtMSwgXCJzZWNvbmRcIiksXG4gICAgICAgICAgICBmb3JtYXRTdHJpbmcsXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLmxhbmd1YWdlXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHN1YnRpdGxlID0gc3RhcnRfZGF0ZSArIFwiIC0gXCIgKyBlbmRfZGF0ZTtcblxuICAgICAgICB0aGlzLl9nYW50dC5zaG93X3BvcHVwKHtcbiAgICAgICAgICAgIHRhcmdldF9lbGVtZW50OiB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICB0aXRsZTogdGhpcy50YXNrLm5hbWUsXG4gICAgICAgICAgICBzdWJ0aXRsZTogc3VidGl0bGUsXG4gICAgICAgICAgICB0YXNrOiB0aGlzLnRhc2ssXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbXB1dGVTdGFydEVuZERhdGUoKTogeyBuZXdTdGFydERhdGU6IERhdGUsIG5ld0VuZERhdGU6IERhdGUgfSB7XG4gICAgICAgIGNvbnN0IGJhciA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgY29uc3QgeEluVW5pdHMgPSBiYXIuZ2V0WCgpIC8gdGhpcy5fZ2FudHQub3B0aW9ucy5jb2x1bW5XaWR0aDtcbiAgICAgICAgY29uc3QgbmV3U3RhcnREYXRlID0gRGF0ZVV0aWxzLmFkZChcbiAgICAgICAgICAgIHRoaXMuX2dhbnR0Lm1pbkRhdGUsXG4gICAgICAgICAgICB4SW5Vbml0cyAqIHRoaXMuX2dhbnR0Lm9wdGlvbnMuc3RlcCxcbiAgICAgICAgICAgIFwiaG91clwiXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHdpZHRoX2luX3VuaXRzID0gYmFyLmdldFdpZHRoKCkgLyB0aGlzLl9nYW50dC5vcHRpb25zLmNvbHVtbldpZHRoO1xuICAgICAgICBjb25zdCBuZXdFbmREYXRlID0gRGF0ZVV0aWxzLmFkZChcbiAgICAgICAgICAgIG5ld1N0YXJ0RGF0ZSxcbiAgICAgICAgICAgIHdpZHRoX2luX3VuaXRzICogdGhpcy5fZ2FudHQub3B0aW9ucy5zdGVwLFxuICAgICAgICAgICAgXCJob3VyXCJcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4geyBuZXdTdGFydERhdGUsIG5ld0VuZERhdGUgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb21wdXRlWCgpIHtcbiAgICAgICAgY29uc3QgeyBzdGVwLCBjb2x1bW5XaWR0aCB9ID0gdGhpcy5fZ2FudHQub3B0aW9ucztcbiAgICAgICAgY29uc3QgZGlmZiA9IERhdGVVdGlscy5kaWZmKHRoaXMudGFzay5zdGFydCwgdGhpcy5fZ2FudHQubWluRGF0ZSwgXCJob3VyXCIpO1xuICAgICAgICBsZXQgeCA9IChkaWZmIC8gc3RlcCkgKiBjb2x1bW5XaWR0aDtcblxuICAgICAgICBpZiAodGhpcy5fZ2FudHQudmlld19pcyhWaWV3TW9kZS5Nb250aCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpZmYgPSBEYXRlVXRpbHMuZGlmZih0aGlzLnRhc2suc3RhcnQsIHRoaXMuX2dhbnR0Lm1pbkRhdGUsIFwiZGF5XCIpO1xuICAgICAgICAgICAgeCA9IChkaWZmICogY29sdW1uV2lkdGgpIC8gMzA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29tcHV0ZVkoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLmhlYWRlckhlaWdodCArXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLnBhZGRpbmcgK1xuICAgICAgICAgICAgdGhpcy50YXNrLl9pbmRleCAqICh0aGlzLl9oZWlnaHQgKyB0aGlzLl9nYW50dC5vcHRpb25zLnBhZGRpbmcpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQXR0cihlbGVtZW50OiBhbnksIGF0dHI6IGFueSwgdmFsdWU6IGFueSkge1xuICAgICAgICB2YWx1ZSA9ICt2YWx1ZTtcbiAgICAgICAgaWYgKCFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVMYWJlbFBvc2l0aW9uKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBiYXIgPSB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICBsYWJlbCA9IHRoaXMuZ3JvdXAucXVlcnlTZWxlY3RvcihcIi5iYXItbGFiZWxcIik7XG5cbiAgICAgICAgaWYgKGxhYmVsLmdldEJCb3goKS53aWR0aCA+IGJhci5nZXRXaWR0aCgpKSB7XG4gICAgICAgICAgICBsYWJlbC5jbGFzc0xpc3QuYWRkKFwiYmlnXCIpO1xuICAgICAgICAgICAgbGFiZWwuc2V0QXR0cmlidXRlKFwieFwiLCBiYXIuZ2V0WCgpICsgYmFyLmdldFdpZHRoKCkgKyA1KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhYmVsLmNsYXNzTGlzdC5yZW1vdmUoXCJiaWdcIik7XG4gICAgICAgICAgICBsYWJlbC5zZXRBdHRyaWJ1dGUoXCJ4XCIsIGJhci5nZXRYKCkgKyBiYXIuZ2V0V2lkdGgoKSAvIDIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQXJyb3dQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYXJyb3dzID0gdGhpcy5fYXJyb3dzIHx8IFtdO1xuICAgICAgICBmb3IgKGxldCBhcnJvdyBvZiB0aGlzLl9hcnJvd3MpIHtcbiAgICAgICAgICAgIGFycm93LnVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ViewMode } from "../../models/view-mode";
|
|
2
|
+
export var defaultOptions = {
|
|
3
|
+
headerHeight: 94,
|
|
4
|
+
columnWidth: 30,
|
|
5
|
+
step: 24,
|
|
6
|
+
barHeight: 20,
|
|
7
|
+
barCornerRadius: 0,
|
|
8
|
+
arrowCurve: 4,
|
|
9
|
+
padding: 24,
|
|
10
|
+
viewMode: ViewMode.Day,
|
|
11
|
+
dateFormat: "YYYY-MM-DD",
|
|
12
|
+
popupTrigger: "click",
|
|
13
|
+
customPopupHtml: null,
|
|
14
|
+
language: "en",
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2dhbnR0L2NvbXBvbmVudHMvZ2FudHQvZ2FudHQtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEQsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFZO0lBQ25DLFlBQVksRUFBRSxFQUFFO0lBQ2hCLFdBQVcsRUFBRSxFQUFFO0lBQ2YsSUFBSSxFQUFFLEVBQUU7SUFDUixTQUFTLEVBQUUsRUFBRTtJQUNiLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLFVBQVUsRUFBRSxDQUFDO0lBQ2IsT0FBTyxFQUFFLEVBQUU7SUFDWCxRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUc7SUFDdEIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsWUFBWSxFQUFFLE9BQU87SUFDckIsZUFBZSxFQUFFLElBQUk7SUFDckIsUUFBUSxFQUFFLElBQUk7Q0FDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL29wdGlvbnNcIjtcbmltcG9ydCB7IFZpZXdNb2RlIH0gZnJvbSBcIi4uLy4uL21vZGVscy92aWV3LW1vZGVcIjtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRPcHRpb25zOiBPcHRpb25zID0ge1xuICAgIGhlYWRlckhlaWdodDogOTQsXG4gICAgY29sdW1uV2lkdGg6IDMwLFxuICAgIHN0ZXA6IDI0LFxuICAgIGJhckhlaWdodDogMjAsXG4gICAgYmFyQ29ybmVyUmFkaXVzOiAwLFxuICAgIGFycm93Q3VydmU6IDQsXG4gICAgcGFkZGluZzogMjQsXG4gICAgdmlld01vZGU6IFZpZXdNb2RlLkRheSxcbiAgICBkYXRlRm9ybWF0OiBcIllZWVktTU0tRERcIixcbiAgICBwb3B1cFRyaWdnZXI6IFwiY2xpY2tcIixcbiAgICBjdXN0b21Qb3B1cEh0bWw6IG51bGwsXG4gICAgbGFuZ3VhZ2U6IFwiZW5cIixcbn07XG4iXX0=
|