@seniorsistemas/angular-components 17.1.3 → 17.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +271 -117
  2. package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
  4. package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
  5. package/components/gantt/components/gantt/bar.d.ts +1 -0
  6. package/components/gantt/components/gantt/gantt.d.ts +2 -4
  7. package/components/gantt/components/gantt/popup.d.ts +4 -1
  8. package/components/gantt/components/side-table/side-table.component.d.ts +4 -1
  9. package/components/gantt/gantt.component.d.ts +10 -1
  10. package/components/gantt/models/options.d.ts +5 -0
  11. package/components/gantt/models/view-mode.d.ts +3 -2
  12. package/esm2015/components/gantt/components/gantt/bar.js +61 -33
  13. package/esm2015/components/gantt/components/gantt/gantt-options.js +5 -1
  14. package/esm2015/components/gantt/components/gantt/gantt.js +113 -72
  15. package/esm2015/components/gantt/components/gantt/popup.js +37 -5
  16. package/esm2015/components/gantt/components/gantt/utils/date-utils.js +3 -2
  17. package/esm2015/components/gantt/components/side-table/side-table.component.js +9 -3
  18. package/esm2015/components/gantt/gantt.component.js +53 -5
  19. package/esm2015/components/gantt/gantt.module.js +3 -2
  20. package/esm2015/components/gantt/models/options.js +1 -1
  21. package/esm2015/components/gantt/models/view-mode.js +3 -2
  22. package/esm5/components/gantt/components/gantt/bar.js +62 -34
  23. package/esm5/components/gantt/components/gantt/gantt-options.js +5 -1
  24. package/esm5/components/gantt/components/gantt/gantt.js +115 -74
  25. package/esm5/components/gantt/components/gantt/popup.js +30 -5
  26. package/esm5/components/gantt/components/gantt/utils/date-utils.js +3 -2
  27. package/esm5/components/gantt/components/side-table/side-table.component.js +9 -3
  28. package/esm5/components/gantt/gantt.component.js +53 -5
  29. package/esm5/components/gantt/gantt.module.js +3 -2
  30. package/esm5/components/gantt/models/options.js +1 -1
  31. package/esm5/components/gantt/models/view-mode.js +3 -2
  32. package/fesm2015/seniorsistemas-angular-components.js +276 -115
  33. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  34. package/fesm5/seniorsistemas-angular-components.js +271 -117
  35. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  36. package/package.json +1 -1
  37. package/seniorsistemas-angular-components.metadata.json +1 -1
@@ -1,9 +1,10 @@
1
- import { __values } from "tslib";
1
+ import { __assign, __values } from "tslib";
2
2
  import { DateUtils } from './utils/date-utils';
3
3
  import { $, createSVG, animateSVG } from './utils/svg-utils';
4
4
  import { ViewMode } from "../../models/view-mode";
5
5
  var Bar = /** @class */ (function () {
6
6
  function Bar(gantt, task) {
7
+ this._isPopUpOpen = false;
7
8
  this._setDefaults(gantt, task);
8
9
  this._prepare();
9
10
  this._draw();
@@ -174,38 +175,62 @@ var Bar = /** @class */ (function () {
174
175
  }
175
176
  };
176
177
  Bar.prototype._setupClickEvent = function () {
178
+ //TODO
177
179
  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);
180
+ if (this._gantt.options.hasPopup) {
181
+ $.on(this.group, "focus " + this._gantt.options.popupTrigger, function (e) {
182
+ // just finished a move action, wait for a few seconds
183
+ if (!_this._actionCompleted) {
184
+ _this._showPopup();
185
+ _this._gantt.unselect_all();
186
+ _this.group.classList.add("active");
187
+ }
188
+ }, null);
189
+ $.on(this.group, "dblclick", function (e) {
190
+ // just finished a move action, wait for a few seconds
191
+ if (!_this._actionCompleted) {
192
+ _this._gantt.trigger_event("onClick", [_this.task]);
193
+ }
194
+ }, null);
195
+ }
196
+ else {
197
+ $.on(this.group, "mouseenter", function (e) {
198
+ if (!_this._isPopUpOpen) {
199
+ _this._showPopup({
200
+ x: e.clientX,
201
+ y: _this.group.getBoundingClientRect().top + 30,
202
+ position: 'middle'
203
+ });
204
+ _this._isPopUpOpen = true;
205
+ }
206
+ }, null);
207
+ $.on(this.group, "mouseleave", function (e) {
208
+ _this._gantt.hide_popup();
209
+ _this._isPopUpOpen = false;
210
+ }, null);
211
+ $.on(this.group, "focus click", function (e) {
212
+ if (!_this._actionCompleted) {
213
+ _this._gantt.unselect_all();
214
+ _this.group.classList.add("active");
215
+ _this._gantt.trigger_event("onClick", [_this.task]);
216
+ }
217
+ }, null);
218
+ }
192
219
  };
193
- Bar.prototype._showPopup = function () {
220
+ Bar.prototype._showPopup = function (args) {
194
221
  if (this._gantt.bar_being_dragged) {
195
222
  return;
196
223
  }
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
- });
224
+ var subtitle = {};
225
+ if (!this._gantt.options.showOnlyHours) {
226
+ subtitle.startDate = DateUtils.format(this.task.start, 'DD/MM/YYYY', this._gantt.options.language);
227
+ subtitle.endDate = DateUtils.format(this.task.end, 'DD/MM/YYYY', this._gantt.options.language);
228
+ }
229
+ if (!this._gantt.options.showOnlyDays) {
230
+ subtitle.startHour = DateUtils.format(this.task.start, 'HH:mm:ss', this._gantt.options.language);
231
+ subtitle.endHour = DateUtils.format(this.task.end, 'HH:mm:ss', this._gantt.options.language);
232
+ }
233
+ this._gantt.show_popup(__assign({ target_element: this.element, title: this.task.name, subtitle: subtitle, task: this.task }, args));
209
234
  };
210
235
  Bar.prototype._computeStartEndDate = function () {
211
236
  var bar = this.element;
@@ -217,11 +242,14 @@ var Bar = /** @class */ (function () {
217
242
  };
218
243
  Bar.prototype._computeX = function () {
219
244
  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;
245
+ var x;
246
+ if (this._gantt.view_is([ViewMode.QuarterHour, ViewMode.Hour, ViewMode.QuarterDay, ViewMode.HalfDay, ViewMode.Day])) {
247
+ var diff = DateUtils.diff(this.task.start, this._gantt.minDate, "minutes");
248
+ x = (diff / step) * (columnWidth / 60);
249
+ }
250
+ else {
251
+ var diff = DateUtils.diff(this.task.start, this._gantt.minDate, "hour");
252
+ x = (diff / step) * (columnWidth);
225
253
  }
226
254
  return x;
227
255
  };
@@ -268,4 +296,4 @@ var Bar = /** @class */ (function () {
268
296
  return Bar;
269
297
  }());
270
298
  export { Bar };
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZ2FudHQvY29tcG9uZW50cy9nYW50dC9iYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFNbEQ7SUFxQ0ksYUFBWSxLQUFVLEVBQUUsSUFBUztRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUF6QkQsc0JBQVcsdUJBQU07YUFBakI7WUFDSSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQzthQUVELFVBQWtCLE1BQWU7WUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDMUIsQ0FBQzs7O09BSkE7SUFNRCxzQkFBVyxxQkFBSTthQUFmO1lBQ0ksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RCLENBQUM7OztPQUFBO0lBRUQsc0JBQVcsd0JBQU87YUFBbEI7WUFDSSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDekIsQ0FBQzs7O09BQUE7SUFFRCxzQkFBVyxzQkFBSzthQUFoQjtZQUNJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN2QixDQUFDOzs7T0FBQTtJQVNNLCtCQUFpQixHQUF4QixVQUF5QixFQUFpQjtRQUExQyxpQkFzQkM7WUF0QjBCLFFBQUMs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LENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbkQsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN4QyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzVEO2FBQU07WUFDSCxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzVEO0lBQ0wsQ0FBQztJQUVPLGtDQUFvQixHQUE1Qjs7UUFDSSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDOztZQUNsQyxLQUFrQixJQUFBLEtBQUEsU0FBQSxJQUFJLENBQUMsT0FBTyxDQUFBLGdCQUFBLDRCQUFFO2dCQUEzQixJQUFJLEtBQUssV0FBQTtnQkFDVixLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDbEI7Ozs7Ozs7OztJQUNMLENBQUM7SUFDTCxVQUFDO0FBQUQsQ0FBQyxBQTdTRCxJQTZTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVVdGlscyB9IGZyb20gJy4vdXRpbHMvZGF0ZS11dGlscyc7XG5pbXBvcnQgeyAkLCBjcmVhdGVTVkcsIGFuaW1hdGVTVkcgfSBmcm9tICcuL3V0aWxzL3N2Zy11dGlscyc7XG5pbXBvcnQgeyBWaWV3TW9kZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvdmlldy1tb2RlXCI7XG5cbmltcG9ydCB7IEdhbnR0IH0gZnJvbSBcIi4vZ2FudHRcIjtcbmltcG9ydCB7IEVucmljaGVkVGFzayB9IGZyb20gXCIuLi8uLi9tb2RlbHMvdGFza1wiO1xuaW1wb3J0IHsgQXJyb3cgfSBmcm9tIFwiLi9hcnJvd1wiO1xuXG5leHBvcnQgY2xhc3MgQmFyIHtcbiAgICBwcml2YXRlIF9hY3Rpb25Db21wbGV0ZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfZ2FudHQ6IEdhbnR0O1xuICAgIHByaXZhdGUgX2ludmFsaWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfaGVpZ2h0OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfeDogbnVtYmVyO1xuICAgIHByaXZhdGUgX3k6IG51bWJlcjtcbiAgICBwcml2YXRlIF9jb3JuZXJSYWRpdXM6IG51bWJlcjtcbiAgICBwcml2YXRlIF9kdXJhdGlvbjogbnVtYmVyO1xuICAgIHByaXZhdGUgX3dpZHRoOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfYmFyR3JvdXA6IGFueTtcblxuICAgIHByaXZhdGUgX2Fycm93czogQXJyb3dbXTtcbiAgICBwcml2YXRlIF9ncm91cDogYW55O1xuICAgIHByaXZhdGUgX3Rhc2s6IEVucmljaGVkVGFzaztcbiAgICBwcml2YXRlIF9lbGVtZW50OiBhbnk7XG5cbiAgICBwdWJsaWMgZ2V0IGFycm93cygpOiBBcnJvd1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Fycm93cztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGFycm93cyhhcnJvd3M6IEFycm93W10pIHtcbiAgICAgICAgdGhpcy5fYXJyb3dzID0gYXJyb3dzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGFzaygpOiBFbnJpY2hlZFRhc2sge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFzaztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZ3JvdXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ncm91cDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihnYW50dDogYW55LCB0YXNrOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fc2V0RGVmYXVsdHMoZ2FudHQsIHRhc2spO1xuICAgICAgICB0aGlzLl9wcmVwYXJlKCk7XG4gICAgICAgIHRoaXMuX2RyYXcoKTtcbiAgICAgICAgdGhpcy5fYmluZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVCYXJQb3NpdGlvbih7IHgsIHdpZHRoIH06IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBiYXIgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgIGlmICh4KSB7XG4gICAgICAgICAgICAvLyBnZXQgYWxsIHggdmFsdWVzIG9mIHBhcmVudCB0YXNrXG4gICAgICAgICAgICBjb25zdCB4cyA9IHRoaXMudGFzay5kZXBlbmRlbmNpZXMubWFwKChkZXA6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9nYW50dC5nZXRfYmFyKGRlcCkuZWxlbWVudC5nZXRYKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIGNoaWxkIHRhc2sgbXVzdCBub3QgZ28gYmVmb3JlIHBhcmVudFxuICAgICAgICAgICAgY29uc3QgdmFsaWRfeCA9IHhzLnJlZHVjZSgocHJldjogYW55LCBjdXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geCA+PSBjdXJyO1xuICAgICAgICAgICAgfSwgeCk7XG4gICAgICAgICAgICBpZiAoIXZhbGlkX3gpIHtcbiAgICAgICAgICAgICAgICB3aWR0aCA9IG51bGw7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQXR0cihiYXIsIFwieFwiLCB4KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2lkdGggJiYgd2lkdGggPj0gdGhpcy5fZ2FudHQub3B0aW9ucy5jb2x1bW5XaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQXR0cihiYXIsIFwid2lkdGhcIiwgd2lkdGgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3VwZGF0ZUxhYmVsUG9zaXRpb24oKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlQXJyb3dQb3NpdGlvbigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkYXRlQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgeyBuZXdTdGFydERhdGUsIG5ld0VuZERhdGUgfSA9IHRoaXMuX2NvbXB1dGVTdGFydEVuZERhdGUoKTtcblxuICAgICAgICBpZiAodGhpcy50YXNrLnN0YXJ0ICE9PSBuZXdTdGFydERhdGUpIHtcbiAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy50YXNrLnN0YXJ0ID0gbmV3U3RhcnREYXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudGFzay5lbmQgIT09IG5ld0VuZERhdGUpIHtcbiAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy50YXNrLmVuZCA9IG5ld0VuZERhdGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5fZ2FudHQudHJpZ2dlcl9ldmVudChcIm9uRGF0ZUNoYW5nZVwiLCBbXG4gICAgICAgICAgICAgICAgdGhpcy50YXNrLFxuICAgICAgICAgICAgICAgIG5ld1N0YXJ0RGF0ZSxcbiAgICAgICAgICAgICAgICBEYXRlVXRpbHMuYWRkKG5ld0VuZERhdGUsIC0xLCBcInNlY29uZFwiKSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBY3Rpb25Db21wbGV0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FjdGlvbkNvbXBsZXRlZCA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fYWN0aW9uQ29tcGxldGVkID0gZmFsc2U7XG4gICAgICAgIH0sIDEwMDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldERlZmF1bHRzKGdhbnR0OiBhbnksIHRhc2s6IGFueSkge1xuICAgICAgICB0aGlzLl9hY3Rpb25Db21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fZ2FudHQgPSBnYW50dDtcbiAgICAgICAgdGhpcy5fdGFzayA9IHRhc2s7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZSgpIHtcbiAgICAgICAgdGhpcy5fcHJlcGFyZVZhbHVlcygpO1xuICAgICAgICB0aGlzLl9wcmVwYXJlSGVscGVycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ByZXBhcmVWYWx1ZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ludmFsaWQgPSB0aGlzLnRhc2suaW52YWxpZDtcbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gdGhpcy5fZ2FudHQub3B0aW9ucy5iYXJIZWlnaHQ7XG4gICAgICAgIHRoaXMuX3ggPSB0aGlzLl9jb21wdXRlWCgpO1xuICAgICAgICB0aGlzLl95ID0gdGhpcy5fY29tcHV0ZVkoKTtcbiAgICAgICAgdGhpcy5fY29ybmVyUmFkaXVzID0gdGhpcy5fZ2FudHQub3B0aW9ucy5iYXJDb3JuZXJSYWRpdXM7XG4gICAgICAgIHRoaXMuX2R1cmF0aW9uID0gRGF0ZVV0aWxzLmRpZmYodGhpcy50YXNrLmVuZCwgdGhpcy50YXNrLnN0YXJ0LCBcIm1pbnV0ZVwiKSAvIHRoaXMuX2dhbnR0Lm9wdGlvbnMuc3RlcCAvIDYwLjA7XG4gICAgICAgIHRoaXMuX3dpZHRoID0gdGhpcy5fZ2FudHQub3B0aW9ucy5jb2x1bW5XaWR0aCAqIHRoaXMuX2R1cmF0aW9uO1xuICAgICAgICB0aGlzLl9ncm91cCA9IGNyZWF0ZVNWRyhcImdcIiwge1xuICAgICAgICAgICAgY2xhc3M6IFwiYmFyLXdyYXBwZXIgXCIgKyAodGhpcy50YXNrLmN1c3RvbV9jbGFzcyB8fCBcIlwiKSxcbiAgICAgICAgICAgIFwiZGF0YS1pZFwiOiB0aGlzLnRhc2suaWQsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9iYXJHcm91cCA9IGNyZWF0ZVNWRyhcImdcIiwge1xuICAgICAgICAgICAgY2xhc3M6IFwiYmFyLWdyb3VwXCIsXG4gICAgICAgICAgICBhcHBlbmRfdG86IHRoaXMuZ3JvdXAsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ByZXBhcmVIZWxwZXJzKCk6IHZvaWQge1xuICAgICAgICAoU1ZHRWxlbWVudC5wcm90b3R5cGUgYXMgYW55KS5nZXRYID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuICt0aGlzLmdldEF0dHJpYnV0ZShcInhcIik7XG4gICAgICAgIH07XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldFkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gK3RoaXMuZ2V0QXR0cmlidXRlKFwieVwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgKFNWR0VsZW1lbnQucHJvdG90eXBlIGFzIGFueSkuZ2V0V2lkdGggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gK3RoaXMuZ2V0QXR0cmlidXRlKFwid2lkdGhcIik7XG4gICAgICAgIH07XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldEhlaWdodCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiArdGhpcy5nZXRBdHRyaWJ1dGUoXCJoZWlnaHRcIik7XG4gICAgICAgIH07XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldEVuZFggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRYKCkgKyB0aGlzLmdldFdpZHRoKCk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZHJhdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZHJhd0JhcigpO1xuICAgICAgICB0aGlzLl9kcmF3TGFiZWwoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kcmF3QmFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9lbGVtZW50ID0gY3JlYXRlU1ZHKFwicmVjdFwiLCB7XG4gICAgICAgICAgICB4OiB0aGlzLl94LFxuICAgICAgICAgICAgeTogdGhpcy5feSxcbiAgICAgICAgICAgIHdpZHRoOiB0aGlzLl93aWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogdGhpcy5faGVpZ2h0LFxuICAgICAgICAgICAgcng6IHRoaXMuX2Nvcm5lclJhZGl1cyxcbiAgICAgICAgICAgIHJ5OiB0aGlzLl9jb3JuZXJSYWRpdXMsXG4gICAgICAgICAgICBjbGFzczogXCJiYXJcIixcbiAgICAgICAgICAgIGFwcGVuZF90bzogdGhpcy5fYmFyR3JvdXAsXG4gICAgICAgICAgICBmaWxsOiB0aGlzLnRhc2suY29sb3IsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFuaW1hdGVTVkcodGhpcy5lbGVtZW50LCBcIndpZHRoXCIsIDAsIHRoaXMuX3dpZHRoKTtcblxuICAgICAgICBpZiAodGhpcy5faW52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJiYXItaW52YWxpZFwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2RyYXdMYWJlbCgpOiB2b2lkIHtcbiAgICAgICAgY3JlYXRlU1ZHKFwidGV4dFwiLCB7XG4gICAgICAgICAgICB4OiB0aGlzLl94ICsgdGhpcy5fd2lkdGggLyAyLFxuICAgICAgICAgICAgeTogdGhpcy5feSArIHRoaXMuX2hlaWdodCAvIDIsXG4gICAgICAgICAgICBpbm5lckhUTUw6IHRoaXMudGFzay5zaG93VGFza05hbWUgPyB0aGlzLnRhc2submFtZSA6IFwiXCIsXG4gICAgICAgICAgICBjbGFzczogXCJiYXItbGFiZWxcIixcbiAgICAgICAgICAgIGFwcGVuZF90bzogdGhpcy5fYmFyR3JvdXAsXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBsYWJlbHMgZ2V0IEJCb3ggaW4gdGhlIG5leHQgdGlja1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5fdXBkYXRlTGFiZWxQb3NpdGlvbigpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9iaW5kKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2ludmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldHVwQ2xpY2tFdmVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0dXBDbGlja0V2ZW50KCk6IHZvaWQge1xuICAgICAgICAkLm9uKHRoaXMuZ3JvdXAsIFwiZm9jdXMgXCIgKyB0aGlzLl9nYW50dC5vcHRpb25zLnBvcHVwVHJpZ2dlciwgKGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgLy8ganVzdCBmaW5pc2hlZCBhIG1vdmUgYWN0aW9uLCB3YWl0IGZvciBhIGZldyBzZWNvbmRzXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2FjdGlvbkNvbXBsZXRlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dQb3B1cCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2dhbnR0LnVuc2VsZWN0X2FsbCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXAuY2xhc3NMaXN0LmFkZChcImFjdGl2ZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgbnVsbCk7XG5cbiAgICAgICAgJC5vbih0aGlzLmdyb3VwLCBcImRibGNsaWNrXCIsIChlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIC8vIGp1c3QgZmluaXNoZWQgYSBtb3ZlIGFjdGlvbiwgd2FpdCBmb3IgYSBmZXcgc2Vjb25kc1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2FjdGlvbkNvbXBsZXRlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2dhbnR0LnRyaWdnZXJfZXZlbnQoXCJvbkNsaWNrXCIsIFt0aGlzLnRhc2tdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgbnVsbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2hvd1BvcHVwKCkge1xuICAgICAgICBpZiAodGhpcy5fZ2FudHQuYmFyX2JlaW5nX2RyYWdnZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvcm1hdFN0cmluZyA9IHRoaXMuX2dhbnR0LnZpZXdfaXMoVmlld01vZGUuSG91cilcbiAgICAgICAgICAgID8gXCJISDpzc1wiXG4gICAgICAgICAgICA6IFwiTU1NIERcIjtcblxuICAgICAgICBjb25zdCBzdGFydF9kYXRlID0gRGF0ZVV0aWxzLmZvcm1hdChcbiAgICAgICAgICAgIHRoaXMudGFzay5zdGFydCxcbiAgICAgICAgICAgIGZvcm1hdFN0cmluZyxcbiAgICAgICAgICAgIHRoaXMuX2dhbnR0Lm9wdGlvbnMubGFuZ3VhZ2VcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZW5kX2RhdGUgPSBEYXRlVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgRGF0ZVV0aWxzLmFkZCh0aGlzLnRhc2suZW5kLCAtMSwgXCJzZWNvbmRcIiksXG4gICAgICAgICAgICBmb3JtYXRTdHJpbmcsXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLmxhbmd1YWdlXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHN1YnRpdGxlID0gc3RhcnRfZGF0ZSArIFwiIC0gXCIgKyBlbmRfZGF0ZTtcblxuICAgICAgICB0aGlzLl9nYW50dC5zaG93X3BvcHVwKHtcbiAgICAgICAgICAgIHRhcmdldF9lbGVtZW50OiB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICB0aXRsZTogdGhpcy50YXNrLm5hbWUsXG4gICAgICAgICAgICBzdWJ0aXRsZTogc3VidGl0bGUsXG4gICAgICAgICAgICB0YXNrOiB0aGlzLnRhc2ssXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbXB1dGVTdGFydEVuZERhdGUoKTogeyBuZXdTdGFydERhdGU6IERhdGUsIG5ld0VuZERhdGU6IERhdGUgfSB7XG4gICAgICAgIGNvbnN0IGJhciA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgY29uc3QgeEluVW5pdHMgPSBiYXIuZ2V0WCgpIC8gdGhpcy5fZ2FudHQub3B0aW9ucy5jb2x1bW5XaWR0aDtcbiAgICAgICAgY29uc3QgbmV3U3RhcnREYXRlID0gRGF0ZVV0aWxzLmFkZChcbiAgICAgICAgICAgIHRoaXMuX2dhbnR0Lm1pbkRhdGUsXG4gICAgICAgICAgICB4SW5Vbml0cyAqIHRoaXMuX2dhbnR0Lm9wdGlvbnMuc3RlcCxcbiAgICAgICAgICAgIFwiaG91clwiXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHdpZHRoX2luX3VuaXRzID0gYmFyLmdldFdpZHRoKCkgLyB0aGlzLl9nYW50dC5vcHRpb25zLmNvbHVtbldpZHRoO1xuICAgICAgICBjb25zdCBuZXdFbmREYXRlID0gRGF0ZVV0aWxzLmFkZChcbiAgICAgICAgICAgIG5ld1N0YXJ0RGF0ZSxcbiAgICAgICAgICAgIHdpZHRoX2luX3VuaXRzICogdGhpcy5fZ2FudHQub3B0aW9ucy5zdGVwLFxuICAgICAgICAgICAgXCJob3VyXCJcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4geyBuZXdTdGFydERhdGUsIG5ld0VuZERhdGUgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb21wdXRlWCgpIHtcbiAgICAgICAgY29uc3QgeyBzdGVwLCBjb2x1bW5XaWR0aCB9ID0gdGhpcy5fZ2FudHQub3B0aW9ucztcbiAgICAgICAgY29uc3QgZGlmZiA9IERhdGVVdGlscy5kaWZmKHRoaXMudGFzay5zdGFydCwgdGhpcy5fZ2FudHQubWluRGF0ZSwgXCJob3VyXCIpO1xuICAgICAgICBsZXQgeCA9IChkaWZmIC8gc3RlcCkgKiBjb2x1bW5XaWR0aDtcblxuICAgICAgICBpZiAodGhpcy5fZ2FudHQudmlld19pcyhWaWV3TW9kZS5Nb250aCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpZmYgPSBEYXRlVXRpbHMuZGlmZih0aGlzLnRhc2suc3RhcnQsIHRoaXMuX2dhbnR0Lm1pbkRhdGUsIFwiZGF5XCIpO1xuICAgICAgICAgICAgeCA9IChkaWZmICogY29sdW1uV2lkdGgpIC8gMzA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29tcHV0ZVkoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLmhlYWRlckhlaWdodCArXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLnBhZGRpbmcgK1xuICAgICAgICAgICAgdGhpcy50YXNrLl9pbmRleCAqICh0aGlzLl9oZWlnaHQgKyB0aGlzLl9nYW50dC5vcHRpb25zLnBhZGRpbmcpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQXR0cihlbGVtZW50OiBhbnksIGF0dHI6IGFueSwgdmFsdWU6IGFueSkge1xuICAgICAgICB2YWx1ZSA9ICt2YWx1ZTtcbiAgICAgICAgaWYgKCFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVMYWJlbFBvc2l0aW9uKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBiYXIgPSB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICBsYWJlbCA9IHRoaXMuZ3JvdXAucXVlcnlTZWxlY3RvcihcIi5iYXItbGFiZWxcIik7XG5cbiAgICAgICAgaWYgKGxhYmVsLmdldEJCb3goKS53aWR0aCA+IGJhci5nZXRXaWR0aCgpKSB7XG4gICAgICAgICAgICBsYWJlbC5jbGFzc0xpc3QuYWRkKFwiYmlnXCIpO1xuICAgICAgICAgICAgbGFiZWwuc2V0QXR0cmlidXRlKFwieFwiLCBiYXIuZ2V0WCgpICsgYmFyLmdldFdpZHRoKCkgKyA1KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhYmVsLmNsYXNzTGlzdC5yZW1vdmUoXCJiaWdcIik7XG4gICAgICAgICAgICBsYWJlbC5zZXRBdHRyaWJ1dGUoXCJ4XCIsIGJhci5nZXRYKCkgKyBiYXIuZ2V0V2lkdGgoKSAvIDIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQXJyb3dQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYXJyb3dzID0gdGhpcy5fYXJyb3dzIHx8IFtdO1xuICAgICAgICBmb3IgKGxldCBhcnJvdyBvZiB0aGlzLl9hcnJvd3MpIHtcbiAgICAgICAgICAgIGFycm93LnVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
299
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZ2FudHQvY29tcG9uZW50cy9nYW50dC9iYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFNbEQ7SUF1Q0ksYUFBWSxLQUFVLEVBQUUsSUFBUztRQXRCekIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUF1QnpCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQXpCRCxzQkFBVyx1QkFBTTthQUFqQjtZQUNJLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN4QixDQUFDO2FBRUQsVUFBa0IsTUFBZTtZQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUMxQixDQUFDOzs7T0FKQTtJQU1ELHNCQUFXLHFCQUFJO2FBQWY7WUFDSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEIsQ0FBQzs7O09BQUE7SUFFRCxzQkFBVyx3QkFBTzthQUFsQjtZQUNJLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN6QixDQUFDOzs7T0FBQTtJQUVELHNCQUFXLHNCQUFLO2FBQWhCO1lBQ0ksT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLENBQUM7OztPQUFBO0lBU00sK0JBQWlCLEdBQXhCLFVBQXlCLEVB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QUFJLEVBQUUsQ0FBQzs7WUFDbEMsS0FBa0IsSUFBQSxLQUFBLFNBQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQSxnQkFBQSw0QkFBRTtnQkFBM0IsSUFBSSxLQUFLLFdBQUE7Z0JBQ1YsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ2xCOzs7Ozs7Ozs7SUFDTCxDQUFDO0lBQ0wsVUFBQztBQUFELENBQUMsQUE1VkQsSUE0VkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlVXRpbHMgfSBmcm9tICcuL3V0aWxzL2RhdGUtdXRpbHMnO1xuaW1wb3J0IHsgJCwgY3JlYXRlU1ZHLCBhbmltYXRlU1ZHIH0gZnJvbSAnLi91dGlscy9zdmctdXRpbHMnO1xuaW1wb3J0IHsgVmlld01vZGUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3ZpZXctbW9kZVwiO1xuXG5pbXBvcnQgeyBHYW50dCB9IGZyb20gXCIuL2dhbnR0XCI7XG5pbXBvcnQgeyBFbnJpY2hlZFRhc2sgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3Rhc2tcIjtcbmltcG9ydCB7IEFycm93IH0gZnJvbSBcIi4vYXJyb3dcIjtcblxuZXhwb3J0IGNsYXNzIEJhciB7XG4gICAgcHJpdmF0ZSBfYWN0aW9uQ29tcGxldGVkOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2dhbnR0OiBHYW50dDtcbiAgICBwcml2YXRlIF9pbnZhbGlkOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2hlaWdodDogbnVtYmVyO1xuICAgIHByaXZhdGUgX3g6IG51bWJlcjtcbiAgICBwcml2YXRlIF95OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfY29ybmVyUmFkaXVzOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfZHVyYXRpb246IG51bWJlcjtcbiAgICBwcml2YXRlIF93aWR0aDogbnVtYmVyO1xuICAgIHByaXZhdGUgX2Jhckdyb3VwOiBhbnk7XG5cbiAgICBwcml2YXRlIF9hcnJvd3M6IEFycm93W107XG4gICAgcHJpdmF0ZSBfZ3JvdXA6IGFueTtcbiAgICBwcml2YXRlIF90YXNrOiBFbnJpY2hlZFRhc2s7XG4gICAgcHJpdmF0ZSBfZWxlbWVudDogYW55O1xuXG4gICAgcHJpdmF0ZSBfaXNQb3BVcE9wZW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBnZXQgYXJyb3dzKCk6IEFycm93W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXJyb3dzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgYXJyb3dzKGFycm93czogQXJyb3dbXSkge1xuICAgICAgICB0aGlzLl9hcnJvd3MgPSBhcnJvd3M7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0YXNrKCk6IEVucmljaGVkVGFzayB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YXNrO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBncm91cCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dyb3VwO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGdhbnR0OiBhbnksIHRhc2s6IGFueSkge1xuICAgICAgICB0aGlzLl9zZXREZWZhdWx0cyhnYW50dCwgdGFzayk7XG4gICAgICAgIHRoaXMuX3ByZXBhcmUoKTtcbiAgICAgICAgdGhpcy5fZHJhdygpO1xuICAgICAgICB0aGlzLl9iaW5kKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZUJhclBvc2l0aW9uKHsgeCwgd2lkdGggfTogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGJhciA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgaWYgKHgpIHtcbiAgICAgICAgICAgIC8vIGdldCBhbGwgeCB2YWx1ZXMgb2YgcGFyZW50IHRhc2tcbiAgICAgICAgICAgIGNvbnN0IHhzID0gdGhpcy50YXNrLmRlcGVuZGVuY2llcy5tYXAoKGRlcDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2dhbnR0LmdldF9iYXIoZGVwKS5lbGVtZW50LmdldFgoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gY2hpbGQgdGFzayBtdXN0IG5vdCBnbyBiZWZvcmUgcGFyZW50XG4gICAgICAgICAgICBjb25zdCB2YWxpZF94ID0geHMucmVkdWNlKChwcmV2OiBhbnksIGN1cnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB4ID49IGN1cnI7XG4gICAgICAgICAgICB9LCB4KTtcbiAgICAgICAgICAgIGlmICghdmFsaWRfeCkge1xuICAgICAgICAgICAgICAgIHdpZHRoID0gbnVsbDtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVBdHRyKGJhciwgXCJ4XCIsIHgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh3aWR0aCAmJiB3aWR0aCA+PSB0aGlzLl9nYW50dC5vcHRpb25zLmNvbHVtbldpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVBdHRyKGJhciwgXCJ3aWR0aFwiLCB3aWR0aCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdXBkYXRlTGFiZWxQb3NpdGlvbigpO1xuICAgICAgICB0aGlzLl91cGRhdGVBcnJvd1Bvc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRhdGVDaGFuZ2VkKCk6IHZvaWQge1xuICAgICAgICBsZXQgY2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICBjb25zdCB7IG5ld1N0YXJ0RGF0ZSwgbmV3RW5kRGF0ZSB9ID0gdGhpcy5fY29tcHV0ZVN0YXJ0RW5kRGF0ZSgpO1xuXG4gICAgICAgIGlmICh0aGlzLnRhc2suc3RhcnQgIT09IG5ld1N0YXJ0RGF0ZSkge1xuICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnRhc2suc3RhcnQgPSBuZXdTdGFydERhdGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50YXNrLmVuZCAhPT0gbmV3RW5kRGF0ZSkge1xuICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnRhc2suZW5kID0gbmV3RW5kRGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICAgICAgICB0aGlzLl9nYW50dC50cmlnZ2VyX2V2ZW50KFwib25EYXRlQ2hhbmdlXCIsIFtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2ssXG4gICAgICAgICAgICAgICAgbmV3U3RhcnREYXRlLFxuICAgICAgICAgICAgICAgIERhdGVVdGlscy5hZGQobmV3RW5kRGF0ZSwgLTEsIFwic2Vjb25kXCIpLFxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHNldEFjdGlvbkNvbXBsZXRlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYWN0aW9uQ29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9hY3Rpb25Db21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgfSwgMTAwMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0RGVmYXVsdHMoZ2FudHQ6IGFueSwgdGFzazogYW55KSB7XG4gICAgICAgIHRoaXMuX2FjdGlvbkNvbXBsZXRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9nYW50dCA9IGdhbnR0O1xuICAgICAgICB0aGlzLl90YXNrID0gdGFzaztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9wcmVwYXJlKCkge1xuICAgICAgICB0aGlzLl9wcmVwYXJlVmFsdWVzKCk7XG4gICAgICAgIHRoaXMuX3ByZXBhcmVIZWxwZXJzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZVZhbHVlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW52YWxpZCA9IHRoaXMudGFzay5pbnZhbGlkO1xuICAgICAgICB0aGlzLl9oZWlnaHQgPSB0aGlzLl9nYW50dC5vcHRpb25zLmJhckhlaWdodDtcbiAgICAgICAgdGhpcy5feCA9IHRoaXMuX2NvbXB1dGVYKCk7XG4gICAgICAgIHRoaXMuX3kgPSB0aGlzLl9jb21wdXRlWSgpO1xuICAgICAgICB0aGlzLl9jb3JuZXJSYWRpdXMgPSB0aGlzLl9nYW50dC5vcHRpb25zLmJhckNvcm5lclJhZGl1cztcbiAgICAgICAgdGhpcy5fZHVyYXRpb24gPSBEYXRlVXRpbHMuZGlmZih0aGlzLnRhc2suZW5kLCB0aGlzLnRhc2suc3RhcnQsIFwibWludXRlXCIpIC8gdGhpcy5fZ2FudHQub3B0aW9ucy5zdGVwIC8gNjAuMDtcbiAgICAgICAgdGhpcy5fd2lkdGggPSB0aGlzLl9nYW50dC5vcHRpb25zLmNvbHVtbldpZHRoICogdGhpcy5fZHVyYXRpb247XG4gICAgICAgIHRoaXMuX2dyb3VwID0gY3JlYXRlU1ZHKFwiZ1wiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJiYXItd3JhcHBlciBcIiArICh0aGlzLnRhc2suY3VzdG9tX2NsYXNzIHx8IFwiXCIpLFxuICAgICAgICAgICAgXCJkYXRhLWlkXCI6IHRoaXMudGFzay5pZCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2Jhckdyb3VwID0gY3JlYXRlU1ZHKFwiZ1wiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJiYXItZ3JvdXBcIixcbiAgICAgICAgICAgIGFwcGVuZF90bzogdGhpcy5ncm91cCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZUhlbHBlcnMoKTogdm9pZCB7XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldFggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gK3RoaXMuZ2V0QXR0cmlidXRlKFwieFwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgKFNWR0VsZW1lbnQucHJvdG90eXBlIGFzIGFueSkuZ2V0WSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiArdGhpcy5nZXRBdHRyaWJ1dGUoXCJ5XCIpO1xuICAgICAgICB9O1xuICAgICAgICAoU1ZHRWxlbWVudC5wcm90b3R5cGUgYXMgYW55KS5nZXRXaWR0aCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiArdGhpcy5nZXRBdHRyaWJ1dGUoXCJ3aWR0aFwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgKFNWR0VsZW1lbnQucHJvdG90eXBlIGFzIGFueSkuZ2V0SGVpZ2h0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuICt0aGlzLmdldEF0dHJpYnV0ZShcImhlaWdodFwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgKFNWR0VsZW1lbnQucHJvdG90eXBlIGFzIGFueSkuZ2V0RW5kWCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFgoKSArIHRoaXMuZ2V0V2lkdGgoKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kcmF3KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kcmF3QmFyKCk7XG4gICAgICAgIHRoaXMuX2RyYXdMYWJlbCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2RyYXdCYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnQgPSBjcmVhdGVTVkcoXCJyZWN0XCIsIHtcbiAgICAgICAgICAgIHg6IHRoaXMuX3gsXG4gICAgICAgICAgICB5OiB0aGlzLl95LFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMuX3dpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLl9oZWlnaHQsXG4gICAgICAgICAgICByeDogdGhpcy5fY29ybmVyUmFkaXVzLFxuICAgICAgICAgICAgcnk6IHRoaXMuX2Nvcm5lclJhZGl1cyxcbiAgICAgICAgICAgIGNsYXNzOiBcImJhclwiLFxuICAgICAgICAgICAgYXBwZW5kX3RvOiB0aGlzLl9iYXJHcm91cCxcbiAgICAgICAgICAgIGZpbGw6IHRoaXMudGFzay5jb2xvcixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYW5pbWF0ZVNWRyh0aGlzLmVsZW1lbnQsIFwid2lkdGhcIiwgMCwgdGhpcy5fd2lkdGgpO1xuXG4gICAgICAgIGlmICh0aGlzLl9pbnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImJhci1pbnZhbGlkXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZHJhd0xhYmVsKCk6IHZvaWQge1xuICAgICAgICBjcmVhdGVTVkcoXCJ0ZXh0XCIsIHtcbiAgICAgICAgICAgIHg6IHRoaXMuX3ggKyB0aGlzLl93aWR0aCAvIDIsXG4gICAgICAgICAgICB5OiB0aGlzLl95ICsgdGhpcy5faGVpZ2h0IC8gMixcbiAgICAgICAgICAgIGlubmVySFRNTDogdGhpcy50YXNrLnNob3dUYXNrTmFtZSA/IHRoaXMudGFzay5uYW1lIDogXCJcIixcbiAgICAgICAgICAgIGNsYXNzOiBcImJhci1sYWJlbFwiLFxuICAgICAgICAgICAgYXBwZW5kX3RvOiB0aGlzLl9iYXJHcm91cCxcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGxhYmVscyBnZXQgQkJveCBpbiB0aGUgbmV4dCB0aWNrXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLl91cGRhdGVMYWJlbFBvc2l0aW9uKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2JpbmQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5faW52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5fc2V0dXBDbGlja0V2ZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXR1cENsaWNrRXZlbnQoKTogdm9pZCB7XG4gICAgICAgIC8vVE9ET1xuXG4gICAgICAgIGlmKHRoaXMuX2dhbnR0Lm9wdGlvbnMuaGFzUG9wdXApIHtcbiAgICAgICAgICAgICQub24odGhpcy5ncm91cCwgXCJmb2N1cyBcIiArIHRoaXMuX2dhbnR0Lm9wdGlvbnMucG9wdXBUcmlnZ2VyLCAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgLy8ganVzdCBmaW5pc2hlZCBhIG1vdmUgYWN0aW9uLCB3YWl0IGZvciBhIGZldyBzZWNvbmRzXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9hY3Rpb25Db21wbGV0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2hvd1BvcHVwKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2dhbnR0LnVuc2VsZWN0X2FsbCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyb3VwLmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgbnVsbCk7XG5cbiAgICAgICAgICAgICQub24odGhpcy5ncm91cCwgXCJkYmxjbGlja1wiLCAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgLy8ganVzdCBmaW5pc2hlZCBhIG1vdmUgYWN0aW9uLCB3YWl0IGZvciBhIGZldyBzZWNvbmRzXG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2FjdGlvbkNvbXBsZXRlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nYW50dC50cmlnZ2VyX2V2ZW50KFwib25DbGlja1wiLCBbdGhpcy50YXNrXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgbnVsbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkLm9uKHRoaXMuZ3JvdXAsIFwibW91c2VlbnRlclwiLCAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYoIXRoaXMuX2lzUG9wVXBPcGVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dQb3B1cCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB4OiBlLmNsaWVudFgsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiB0aGlzLmdyb3VwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIDMwLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdtaWRkbGUnXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pc1BvcFVwT3BlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgbnVsbCk7XG5cbiAgICAgICAgICAgICQub24odGhpcy5ncm91cCwgXCJtb3VzZWxlYXZlXCIsIChlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9nYW50dC5oaWRlX3BvcHVwKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5faXNQb3BVcE9wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIH0sIG51bGwpO1xuXG5cbiAgICAgICAgICAgICQub24odGhpcy5ncm91cCwgXCJmb2N1cyBjbGlja1wiLCAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9hY3Rpb25Db21wbGV0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ2FudHQudW5zZWxlY3RfYWxsKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXAuY2xhc3NMaXN0LmFkZChcImFjdGl2ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ2FudHQudHJpZ2dlcl9ldmVudChcIm9uQ2xpY2tcIiwgW3RoaXMudGFza10pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2hvd1BvcHVwKGFyZ3M/OiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuX2dhbnR0LmJhcl9iZWluZ19kcmFnZ2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdWJ0aXRsZTogYW55ID0ge307XG5cbiAgICAgICAgaWYgKCF0aGlzLl9nYW50dC5vcHRpb25zLnNob3dPbmx5SG91cnMpIHtcbiAgICAgICAgICAgIHN1YnRpdGxlLnN0YXJ0RGF0ZSA9IERhdGVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgICAgdGhpcy50YXNrLnN0YXJ0LFxuICAgICAgICAgICAgICAgICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLmxhbmd1YWdlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgc3VidGl0bGUuZW5kRGF0ZSA9IERhdGVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgICAgdGhpcy50YXNrLmVuZCxcbiAgICAgICAgICAgICAgICAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICAgICAgdGhpcy5fZ2FudHQub3B0aW9ucy5sYW5ndWFnZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5fZ2FudHQub3B0aW9ucy5zaG93T25seURheXMpIHtcbiAgICAgICAgICAgIHN1YnRpdGxlLnN0YXJ0SG91ciA9IERhdGVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgICAgdGhpcy50YXNrLnN0YXJ0LFxuICAgICAgICAgICAgICAgICdISDptbTpzcycsXG4gICAgICAgICAgICAgICAgdGhpcy5fZ2FudHQub3B0aW9ucy5sYW5ndWFnZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHN1YnRpdGxlLmVuZEhvdXIgPSBEYXRlVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgICAgIHRoaXMudGFzay5lbmQsXG4gICAgICAgICAgICAgICAgJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLmxhbmd1YWdlXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZ2FudHQuc2hvd19wb3B1cCh7XG4gICAgICAgICAgICB0YXJnZXRfZWxlbWVudDogdGhpcy5lbGVtZW50LFxuICAgICAgICAgICAgdGl0bGU6IHRoaXMudGFzay5uYW1lLFxuICAgICAgICAgICAgc3VidGl0bGU6IHN1YnRpdGxlLFxuICAgICAgICAgICAgdGFzazogdGhpcy50YXNrLFxuICAgICAgICAgICAgLi4uYXJnc1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb21wdXRlU3RhcnRFbmREYXRlKCk6IHsgbmV3U3RhcnREYXRlOiBEYXRlLCBuZXdFbmREYXRlOiBEYXRlIH0ge1xuICAgICAgICBjb25zdCBiYXIgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHhJblVuaXRzID0gYmFyLmdldFgoKSAvIHRoaXMuX2dhbnR0Lm9wdGlvbnMuY29sdW1uV2lkdGg7XG4gICAgICAgIGNvbnN0IG5ld1N0YXJ0RGF0ZSA9IERhdGVVdGlscy5hZGQoXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5taW5EYXRlLFxuICAgICAgICAgICAgeEluVW5pdHMgKiB0aGlzLl9nYW50dC5vcHRpb25zLnN0ZXAsXG4gICAgICAgICAgICBcImhvdXJcIlxuICAgICAgICApO1xuICAgICAgICBjb25zdCB3aWR0aF9pbl91bml0cyA9IGJhci5nZXRXaWR0aCgpIC8gdGhpcy5fZ2FudHQub3B0aW9ucy5jb2x1bW5XaWR0aDtcbiAgICAgICAgY29uc3QgbmV3RW5kRGF0ZSA9IERhdGVVdGlscy5hZGQoXG4gICAgICAgICAgICBuZXdTdGFydERhdGUsXG4gICAgICAgICAgICB3aWR0aF9pbl91bml0cyAqIHRoaXMuX2dhbnR0Lm9wdGlvbnMuc3RlcCxcbiAgICAgICAgICAgIFwiaG91clwiXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHsgbmV3U3RhcnREYXRlLCBuZXdFbmREYXRlIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29tcHV0ZVgoKSB7XG4gICAgICAgIGNvbnN0IHsgc3RlcCwgY29sdW1uV2lkdGggfSA9IHRoaXMuX2dhbnR0Lm9wdGlvbnM7XG5cbiAgICAgICAgbGV0IHg7XG4gICAgICAgIGlmICh0aGlzLl9nYW50dC52aWV3X2lzKFtWaWV3TW9kZS5RdWFydGVySG91ciwgVmlld01vZGUuSG91ciwgVmlld01vZGUuUXVhcnRlckRheSwgVmlld01vZGUuSGFsZkRheSwgVmlld01vZGUuRGF5XSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpZmYgPSBEYXRlVXRpbHMuZGlmZih0aGlzLnRhc2suc3RhcnQsIHRoaXMuX2dhbnR0Lm1pbkRhdGUsIFwibWludXRlc1wiKTtcbiAgICAgICAgICAgIHggPSAoZGlmZiAvIHN0ZXApICogKGNvbHVtbldpZHRoIC8gNjApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGlmZiA9IERhdGVVdGlscy5kaWZmKHRoaXMudGFzay5zdGFydCwgdGhpcy5fZ2FudHQubWluRGF0ZSwgXCJob3VyXCIpO1xuICAgICAgICAgICAgeCA9IChkaWZmIC8gc3RlcCkgKiAoY29sdW1uV2lkdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29tcHV0ZVkoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLmhlYWRlckhlaWdodCArXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLnBhZGRpbmcgK1xuICAgICAgICAgICAgdGhpcy50YXNrLl9pbmRleCAqICh0aGlzLl9oZWlnaHQgKyB0aGlzLl9nYW50dC5vcHRpb25zLnBhZGRpbmcpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQXR0cihlbGVtZW50OiBhbnksIGF0dHI6IGFueSwgdmFsdWU6IGFueSkge1xuICAgICAgICB2YWx1ZSA9ICt2YWx1ZTtcbiAgICAgICAgaWYgKCFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVMYWJlbFBvc2l0aW9uKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBiYXIgPSB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICBsYWJlbCA9IHRoaXMuZ3JvdXAucXVlcnlTZWxlY3RvcihcIi5iYXItbGFiZWxcIik7XG5cbiAgICAgICAgaWYgKGxhYmVsLmdldEJCb3goKS53aWR0aCA+IGJhci5nZXRXaWR0aCgpKSB7XG4gICAgICAgICAgICBsYWJlbC5jbGFzc0xpc3QuYWRkKFwiYmlnXCIpO1xuICAgICAgICAgICAgbGFiZWwuc2V0QXR0cmlidXRlKFwieFwiLCBiYXIuZ2V0WCgpICsgYmFyLmdldFdpZHRoKCkgKyA1KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhYmVsLmNsYXNzTGlzdC5yZW1vdmUoXCJiaWdcIik7XG4gICAgICAgICAgICBsYWJlbC5zZXRBdHRyaWJ1dGUoXCJ4XCIsIGJhci5nZXRYKCkgKyBiYXIuZ2V0V2lkdGgoKSAvIDIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQXJyb3dQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYXJyb3dzID0gdGhpcy5fYXJyb3dzIHx8IFtdO1xuICAgICAgICBmb3IgKGxldCBhcnJvdyBvZiB0aGlzLl9hcnJvd3MpIHtcbiAgICAgICAgICAgIGFycm93LnVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -12,5 +12,9 @@ export var defaultOptions = {
12
12
  popupTrigger: "click",
13
13
  customPopupHtml: null,
14
14
  language: "en",
15
+ allowMovement: true,
16
+ hasPopup: true,
17
+ showOnlyHours: false,
18
+ showOnlyDays: false,
15
19
  };
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2dhbnR0L2NvbXBvbmVudHMvZ2FudHQvZ2FudHQtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEQsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFZO0lBQ25DLFlBQVksRUFBRSxFQUFFO0lBQ2hCLFdBQVcsRUFBRSxFQUFFO0lBQ2YsSUFBSSxFQUFFLEVBQUU7SUFDUixTQUFTLEVBQUUsRUFBRTtJQUNiLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLFVBQVUsRUFBRSxDQUFDO0lBQ2IsT0FBTyxFQUFFLEVBQUU7SUFDWCxRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUc7SUFDdEIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsWUFBWSxFQUFFLE9BQU87SUFDckIsZUFBZSxFQUFFLElBQUk7SUFDckIsUUFBUSxFQUFFLElBQUk7Q0FDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL29wdGlvbnNcIjtcbmltcG9ydCB7IFZpZXdNb2RlIH0gZnJvbSBcIi4uLy4uL21vZGVscy92aWV3LW1vZGVcIjtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRPcHRpb25zOiBPcHRpb25zID0ge1xuICAgIGhlYWRlckhlaWdodDogOTQsXG4gICAgY29sdW1uV2lkdGg6IDMwLFxuICAgIHN0ZXA6IDI0LFxuICAgIGJhckhlaWdodDogMjAsXG4gICAgYmFyQ29ybmVyUmFkaXVzOiAwLFxuICAgIGFycm93Q3VydmU6IDQsXG4gICAgcGFkZGluZzogMjQsXG4gICAgdmlld01vZGU6IFZpZXdNb2RlLkRheSxcbiAgICBkYXRlRm9ybWF0OiBcIllZWVktTU0tRERcIixcbiAgICBwb3B1cFRyaWdnZXI6IFwiY2xpY2tcIixcbiAgICBjdXN0b21Qb3B1cEh0bWw6IG51bGwsXG4gICAgbGFuZ3VhZ2U6IFwiZW5cIixcbn07XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2dhbnR0L2NvbXBvbmVudHMvZ2FudHQvZ2FudHQtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEQsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFZO0lBQ25DLFlBQVksRUFBRSxFQUFFO0lBQ2hCLFdBQVcsRUFBRSxFQUFFO0lBQ2YsSUFBSSxFQUFFLEVBQUU7SUFDUixTQUFTLEVBQUUsRUFBRTtJQUNiLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLFVBQVUsRUFBRSxDQUFDO0lBQ2IsT0FBTyxFQUFFLEVBQUU7SUFDWCxRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUc7SUFDdEIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsWUFBWSxFQUFFLE9BQU87SUFDckIsZUFBZSxFQUFFLElBQUk7SUFDckIsUUFBUSxFQUFFLElBQUk7SUFDZCxhQUFhLEVBQUUsSUFBSTtJQUNuQixRQUFRLEVBQUUsSUFBSTtJQUNkLGFBQWEsRUFBRSxLQUFLO0lBQ3BCLFlBQVksRUFBRSxLQUFLO0NBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcHRpb25zIH0gZnJvbSBcIi4uLy4uL21vZGVscy9vcHRpb25zXCI7XG5pbXBvcnQgeyBWaWV3TW9kZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvdmlldy1tb2RlXCI7XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0T3B0aW9uczogT3B0aW9ucyA9IHtcbiAgICBoZWFkZXJIZWlnaHQ6IDk0LFxuICAgIGNvbHVtbldpZHRoOiAzMCxcbiAgICBzdGVwOiAyNCxcbiAgICBiYXJIZWlnaHQ6IDIwLFxuICAgIGJhckNvcm5lclJhZGl1czogMCxcbiAgICBhcnJvd0N1cnZlOiA0LFxuICAgIHBhZGRpbmc6IDI0LFxuICAgIHZpZXdNb2RlOiBWaWV3TW9kZS5EYXksXG4gICAgZGF0ZUZvcm1hdDogXCJZWVlZLU1NLUREXCIsXG4gICAgcG9wdXBUcmlnZ2VyOiBcImNsaWNrXCIsXG4gICAgY3VzdG9tUG9wdXBIdG1sOiBudWxsLFxuICAgIGxhbmd1YWdlOiBcImVuXCIsXG4gICAgYWxsb3dNb3ZlbWVudDogdHJ1ZSxcbiAgICBoYXNQb3B1cDogdHJ1ZSxcbiAgICBzaG93T25seUhvdXJzOiBmYWxzZSxcbiAgICBzaG93T25seURheXM6IGZhbHNlLFxufTtcbiJdfQ==