@sbb-esta/lyne-elements-experimental 4.0.2 → 4.0.3

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 (46) hide show
  1. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +1 -1
  2. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +15 -16
  3. package/core/datetime/date-helper.js +3 -3
  4. package/custom-elements.json +43 -3
  5. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +1 -1
  6. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +17 -19
  7. package/development/core/datetime/date-helper.js +3 -3
  8. package/development/{differenceInMinutes-D5Nj8Stc.js → differenceInMinutes-B0dawX-5.js} +2 -2
  9. package/development/{format-BQfaa1ZT.js → format-BMkeaqaF.js} +3 -3
  10. package/development/{isValid-DvieCZVi.js → isValid-BYRch7pV.js} +2 -2
  11. package/development/journey-summary/journey-summary.component.js +2 -2
  12. package/development/pearl-chain/pearl-chain.component.js +2 -2
  13. package/development/pearl-chain-time/pearl-chain-time.component.js +1 -1
  14. package/development/seat-reservation/common/mapper/mapper.d.ts +2 -2
  15. package/development/seat-reservation/common/mapper/mapper.d.ts.map +1 -1
  16. package/development/seat-reservation/common/mapper/mapper.js +19 -6
  17. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts +122 -0
  18. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts.map +1 -1
  19. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.js +970 -1
  20. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  21. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +3 -1
  22. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  23. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +26 -24
  24. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +2 -2
  25. package/development/timetable-row/timetable-row.component.js +1 -1
  26. package/development/{toDate-D_Vjps95.js → toDate-BWb6Z1JD.js} +2 -2
  27. package/{differenceInMinutes-CP_C5onR.js → differenceInMinutes-COvvdYsJ.js} +1 -1
  28. package/{format-lqeCzmzS.js → format-CmKROkbc.js} +2 -41
  29. package/{isValid-Ceq2O0NQ.js → isValid-m3_OsPaB.js} +1 -1
  30. package/journey-summary/journey-summary.component.js +2 -2
  31. package/package.json +2 -2
  32. package/pearl-chain/pearl-chain.component.js +2 -2
  33. package/pearl-chain-time/pearl-chain-time.component.js +1 -1
  34. package/seat-reservation/common/mapper/mapper.d.ts +2 -2
  35. package/seat-reservation/common/mapper/mapper.d.ts.map +1 -1
  36. package/seat-reservation/common/mapper/mapper.js +41 -38
  37. package/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts +122 -0
  38. package/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts.map +1 -1
  39. package/seat-reservation/common/mapper/seat-reservation-sample-data.js +968 -1
  40. package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  41. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +130 -130
  42. package/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  43. package/seat-reservation/seat-reservation/seat-reservation.component.js +88 -85
  44. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +1 -1
  45. package/timetable-row/timetable-row.component.js +1 -1
  46. package/{toDate-BCXKL_wM.js → toDate-Bw2KTWeq.js} +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete-grid.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAUrF,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAUlF;;;;;;;GAOG;AACH,qBAEM,0BAA0B,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,0BAA0B,CAAC,CAAC,CAAC;IAChF,gBAAgC,IAAI,gBAAkC;IACtE,SAAS,CAAC,SAAS,SAAuC;IAC1D,SAAS,CAAC,SAAS,SAAU;IAC7B,OAAO,CAAC,kBAAkB,CAAK;IAE/B,SAAS,KAAK,OAAO,IAAI,gCAAgC,CAAC,CAAC,CAAC,EAAE,CAM7D;;IAOD,SAAS,CAAC,YAAY,IAAI,IAAI;IAY9B,SAAS,CAAC,8BAA8B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IA0BpE;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAgBtD,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI;IA+B1D,OAAO,CAAC,+BAA+B;IAqCvC,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAapC,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;CAGhE;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,uBAAuB,EAAE,0BAA0B,CAAC;KACrD;CACF"}
1
+ {"version":3,"file":"autocomplete-grid.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAUrF,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAUlF;;;;;;;GAOG;AACH,qBAEM,0BAA0B,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,0BAA0B,CAAC,CAAC,CAAC;IAChF,gBAAgC,IAAI,gBAAkC;IACtE,SAAS,CAAC,SAAS,SAAuC;IAC1D,SAAS,CAAC,SAAS,SAAU;IAC7B,OAAO,CAAC,kBAAkB,CAAK;IAE/B,SAAS,KAAK,OAAO,IAAI,gCAAgC,CAAC,CAAC,CAAC,EAAE,CAM7D;;IAOD,SAAS,CAAC,YAAY,IAAI,IAAI;IAY9B,SAAS,CAAC,8BAA8B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAsBpE;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAgBtD,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI;IA+B1D,OAAO,CAAC,+BAA+B;IAqCvC,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAapC,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;CAGhE;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,uBAAuB,EAAE,0BAA0B,CAAC;KACrD;CACF"}
@@ -31,24 +31,22 @@ let SbbAutocompleteGridElement = (() => {
31
31
  this.querySelectorAll?.("sbb-autocomplete-grid-row, sbb-autocomplete-grid-option, sbb-autocomplete-grid-optgroup").forEach((element) => _stateController(element).toggle("negative", this.negative));
32
32
  }
33
33
  openedPanelKeyboardInteraction(event) {
34
- if (this.state !== "opened") {
35
- return;
36
- }
37
- switch (event.key) {
38
- case "Tab":
39
- this.close();
40
- break;
41
- case "Enter":
42
- this.selectByKeyboard(event);
43
- break;
44
- case "ArrowDown":
45
- case "ArrowUp":
46
- this.setNextActiveOption(event);
47
- break;
48
- case "ArrowRight":
49
- case "ArrowLeft":
50
- this._setNextHorizontalActiveElement(event);
51
- break;
34
+ if ((this.state === "opening" || this.state === "opened") && event.key === "Tab") {
35
+ this.close();
36
+ } else if (this.isOpen) {
37
+ switch (event.key) {
38
+ case "Enter":
39
+ this.selectByKeyboard(event);
40
+ break;
41
+ case "ArrowDown":
42
+ case "ArrowUp":
43
+ this.setNextActiveOption(event);
44
+ break;
45
+ case "ArrowRight":
46
+ case "ArrowLeft":
47
+ this._setNextHorizontalActiveElement(event);
48
+ break;
49
+ }
52
50
  }
53
51
  }
54
52
  /**
@@ -137,4 +135,4 @@ let SbbAutocompleteGridElement = (() => {
137
135
  export {
138
136
  SbbAutocompleteGridElement
139
137
  };
140
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL2F1dG9jb21wbGV0ZS1ncmlkL2F1dG9jb21wbGV0ZS1ncmlkL2F1dG9jb21wbGV0ZS1ncmlkLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYmJBdXRvY29tcGxldGVCYXNlRWxlbWVudCB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2F1dG9jb21wbGV0ZS5qcyc7XG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4IH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IGlzU2FmYXJpIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kb20uanMnO1xuaW1wb3J0IHsgybVzdGF0ZUNvbnRyb2xsZXIgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgeyBzZXRBcmlhQ29tYm9Cb3hBdHRyaWJ1dGVzIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9vdmVybGF5LmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGl2aWRlckVsZW1lbnQgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9kaXZpZGVyLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiT3B0R3JvdXBFbGVtZW50LCBTYmJPcHRpb25IaW50RWxlbWVudCB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL29wdGlvbi5qcyc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlLWdyaWQtYnV0dG9uLnRzJztcbmltcG9ydCB7IFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50IH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uLnRzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogT24gU2FmYXJpLCB0aGUgYXJpYSByb2xlICdsaXN0Ym94JyBtdXN0IGJlIG9uIHRoZSBob3N0IGVsZW1lbnQsIG9yIGVsc2UgVm9pY2VPdmVyIHdvbid0IHdvcmsgYXQgYWxsLlxuICogT24gdGhlIG90aGVyIGhhbmQsIEpBV1MgYW5kIE5WREEgbmVlZCB0aGUgcm9sZSB0byBiZSBcImNsb3NlclwiIHRvIHRoZSBvcHRpb25zLCBvciBlbHNlIG9wdGdyb3VwcyB3b24ndCB3b3JrLlxuICovXG5jb25zdCBhcmlhUm9sZU9uSG9zdCA9IGlzU2FmYXJpO1xuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBuYXRpdmUgaW5wdXQsIGl0IGRpc3BsYXlzIGEgcGFuZWwgd2l0aCBhIGxpc3Qgb2YgYXZhaWxhYmxlIG9wdGlvbnMgd2l0aCBjb25uZWN0ZWQgYnV0dG9ucy5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLXJvd2Agb3IgYHNiYi1hdXRvY29tcGxldGUtZ3JpZC1vcHRncm91cGAgZWxlbWVudHMgdG8gdGhlIGBzYmItYXV0b2NvbXBsZXRlLWdyaWRgLlxuICogQGNzc3Byb3AgWy0tc2JiLWF1dG9jb21wbGV0ZS16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1hdXRvY29tcGxldGUtZ3JpZCcpXG5jbGFzcyBTYmJBdXRvY29tcGxldGVHcmlkRWxlbWVudDxUID0gc3RyaW5nPiBleHRlbmRzIFNiYkF1dG9jb21wbGV0ZUJhc2VFbGVtZW50PFQ+IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gYXJpYVJvbGVPbkhvc3QgPyAnZ3JpZCcgOiBudWxsO1xuICBwcm90ZWN0ZWQgb3ZlcmxheUlkID0gYHNiYi1hdXRvY29tcGxldGUtZ3JpZC0keysrbmV4dElkfWA7XG4gIHByb3RlY3RlZCBwYW5lbFJvbGUgPSAnZ3JpZCc7XG4gIHByaXZhdGUgX2FjdGl2ZUNvbHVtbkluZGV4ID0gMDtcblxuICBwcm90ZWN0ZWQgZ2V0IG9wdGlvbnMoKTogU2JiQXV0b2NvbXBsZXRlR3JpZE9wdGlvbkVsZW1lbnQ8VD5bXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudDxUPj4oXG4gICAgICAgICdzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uJyxcbiAgICAgICkgPz8gW10sXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdvcHRpb25zZWxlY3RlZCcsIChlOiBFdmVudCkgPT4gdGhpcy5vbk9wdGlvblNlbGVjdGVkKGUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW5jTmVnYXRpdmUoKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy48XG4gICAgICBTYmJEaXZpZGVyRWxlbWVudCB8IFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50IHwgU2JiT3B0aW9uSGludEVsZW1lbnRcbiAgICA+KCdzYmItZGl2aWRlciwgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLWJ1dHRvbiwgc2JiLW9wdGlvbi1oaW50JykuZm9yRWFjaChcbiAgICAgIChlKSA9PiAoZS5uZWdhdGl2ZSA9IHRoaXMubmVnYXRpdmUpLFxuICAgICk7XG5cbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudDxUPiB8IFNiYk9wdEdyb3VwRWxlbWVudD4oXG4gICAgICAnc2JiLWF1dG9jb21wbGV0ZS1ncmlkLXJvdywgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLW9wdGlvbiwgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLW9wdGdyb3VwJyxcbiAgICApLmZvckVhY2goKGVsZW1lbnQpID0+IMm1c3RhdGVDb250cm9sbGVyKGVsZW1lbnQpLnRvZ2dsZSgnbmVnYXRpdmUnLCB0aGlzLm5lZ2F0aXZlKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3BlbmVkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgdGhpcy5zZWxlY3RCeUtleWJvYXJkKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgdGhpcy5zZXROZXh0QWN0aXZlT3B0aW9uKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgdGhpcy5fc2V0TmV4dEhvcml6b250YWxBY3RpdmVFbGVtZW50KGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhbiBlbGVtZW50IG9uICdFbnRlcicga2V5cHJlc3MuXG4gICAqXG4gICAqIER1ZSB0byBrZXlib2FyZCBuYXZpZ2F0aW9uIGNvZGUsIHRoZSBgX2FjdGl2ZUNvbHVtbkluZGV4YCBpcyB6ZXJvIHdoZW4gYW4gb3B0aW9uIGlzICdmb2N1c2VkJ1xuICAgKiBhbmQgZ3JlYXRlciB0aGFuIHplcm8gd2hlbiBhIGJ1dHRvbiBpcyAnZm9jdXNlZCcsIHNvIGFza2luZyBmb3IgYHF1ZXJ5U2VsZWN0b3JBbGwoLi4uKVt0aGlzLl9hY3RpdmVDb2x1bW5JbmRleF1gXG4gICAqIHdvdWxkIGFsd2F5cyByZXR1cm4gYSBgU2JiQXV0b2NvbXBsZXRlR3JpZEJ1dHRvbkVsZW1lbnRgLlxuICAgKi9cbiAgcHJvdGVjdGVkIHNlbGVjdEJ5S2V5Ym9hcmQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgaWYgKHRoaXMuX2FjdGl2ZUNvbHVtbkluZGV4ICE9PSAwKSB7XG4gICAgICB0aGlzLmFjdGl2ZU9wdGlvblxuICAgICAgICA/LmNsb3Nlc3QoJ3NiYi1hdXRvY29tcGxldGUtZ3JpZC1yb3cnKVxuICAgICAgICA/LnF1ZXJ5U2VsZWN0b3JBbGwoJ3NiYi1hdXRvY29tcGxldGUtZ3JpZC1idXR0b24nKVxuICAgICAgICBbXG4gICAgICAgICAgLy8gV2UgaWdub3JlIHRoZSBvcHRpb24gaW4gdGhlIHNlbGVjdG9yLiBUaGVyZWZvcmUsIHdlIGhhdmUgdG8gc2hpZnQgdGhlIGFjdGl2ZUNvbHVtbkluZGV4IGJ5IG9uZS5cbiAgICAgICAgICB0aGlzLl9hY3RpdmVDb2x1bW5JbmRleCAtIDFcbiAgICAgICAgXT8uY2xpY2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVPcHRpb24/Llsnc2VsZWN0VmlhVXNlckludGVyYWN0aW9uJ10odHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldE5leHRBY3RpdmVPcHRpb24oZXZlbnQ/OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZW5hYmxlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnMuZmlsdGVyKChvcHQpID0+ICFvcHQubWF0Y2hlcygnOnN0YXRlKGRpc2FibGVkKScpKTtcblxuICAgIC8vIFJlc2V0IHBvdGVudGlhbGx5IGFjdGl2ZSBvcHRpb25cbiAgICB0aGlzLmFjdGl2ZU9wdGlvbj8uc2V0QWN0aXZlKGZhbHNlKTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCcpO1xuICAgIEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLWF1dG9jb21wbGV0ZS1ncmlkLXJvdyA6c3RhdGUoZm9jdXMtdmlzaWJsZSknKSA/PyBbXSxcbiAgICApLmZvckVhY2goKHJvdykgPT4gybVzdGF0ZUNvbnRyb2xsZXIocm93KS5kZWxldGUoJ2ZvY3VzLXZpc2libGUnKSk7XG4gICAgdGhpcy5fYWN0aXZlQ29sdW1uSW5kZXggPSAwO1xuXG4gICAgaWYgKCFlbmFibGVkT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuYWN0aXZlT3B0aW9uID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBhY3RpdmVJdGVtSW5kZXggPSB0aGlzLmFjdGl2ZU9wdGlvblxuICAgICAgPyBlbmFibGVkT3B0aW9ucy5pbmRleE9mKHRoaXMuYWN0aXZlT3B0aW9uIGFzIFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50PFQ+KVxuICAgICAgOiAtMTtcblxuICAgIC8vIEdldCBhbmQgYWN0aXZhdGUgdGhlIG5leHQgYWN0aXZlIG9wdGlvblxuICAgIGNvbnN0IG5leHQgPSBnZXROZXh0RWxlbWVudEluZGV4KGV2ZW50LCBhY3RpdmVJdGVtSW5kZXgsIGVuYWJsZWRPcHRpb25zLmxlbmd0aCk7XG4gICAgdGhpcy5hY3RpdmVPcHRpb24gPSBlbmFibGVkT3B0aW9uc1tuZXh0XTtcbiAgICB0aGlzLmFjdGl2ZU9wdGlvbi5zZXRBY3RpdmUodHJ1ZSk7XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnLCB0aGlzLmFjdGl2ZU9wdGlvbi5pZCk7XG4gICAgdGhpcy5hY3RpdmVPcHRpb24uc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pO1xuICAgIGlmICh0aGlzLmF1dG9TZWxlY3RBY3RpdmVPcHRpb24pIHtcbiAgICAgIHRoaXMub25PcHRpb25BcnJvd3NTZWxlY3RlZCh0aGlzLmFjdGl2ZU9wdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0TmV4dEhvcml6b250YWxBY3RpdmVFbGVtZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZU9wdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRzSW5Sb3cgPSBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5hY3RpdmVPcHRpb25cbiAgICAgICAgPy5jbG9zZXN0KCdzYmItYXV0b2NvbXBsZXRlLWdyaWQtcm93JylcbiAgICAgICAgPy5xdWVyeVNlbGVjdG9yQWxsPFxuICAgICAgICAgIFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50PFQ+IHwgU2JiQXV0b2NvbXBsZXRlR3JpZEJ1dHRvbkVsZW1lbnRcbiAgICAgICAgPignc2JiLWF1dG9jb21wbGV0ZS1ncmlkLW9wdGlvbiwgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLWJ1dHRvbicpID8/IFtdLFxuICAgICk/LmZpbHRlcigoZWwpID0+ICFlbC5tYXRjaGVzKCc6c3RhdGUoZGlzYWJsZWQpJykpO1xuXG4gICAgaWYgKCFlbGVtZW50c0luUm93Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHQ6IG51bWJlciA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZlbnQsIHRoaXMuX2FjdGl2ZUNvbHVtbkluZGV4LCBlbGVtZW50c0luUm93Lmxlbmd0aCk7XG4gICAgY29uc3QgbmV4dEVsZW1lbnQ6IFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50PFQ+IHwgU2JiQXV0b2NvbXBsZXRlR3JpZEJ1dHRvbkVsZW1lbnQgPVxuICAgICAgZWxlbWVudHNJblJvd1tuZXh0XTtcbiAgICBpZiAobmV4dEVsZW1lbnQgaW5zdGFuY2VvZiBTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudCkge1xuICAgICAgbmV4dEVsZW1lbnQuc2V0QWN0aXZlKHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICDJtXN0YXRlQ29udHJvbGxlcihuZXh0RWxlbWVudCkuYWRkKCdmb2N1cy12aXNpYmxlJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbGFzdEFjdGl2ZUVsZW1lbnQgPSBlbGVtZW50c0luUm93W3RoaXMuX2FjdGl2ZUNvbHVtbkluZGV4XTtcbiAgICBpZiAobGFzdEFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudCkge1xuICAgICAgbGFzdEFjdGl2ZUVsZW1lbnQuc2V0QWN0aXZlKGZhbHNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgybVzdGF0ZUNvbnRyb2xsZXIobGFzdEFjdGl2ZUVsZW1lbnQpLmRlbGV0ZSgnZm9jdXMtdmlzaWJsZScpO1xuICAgIH1cbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCcsIG5leHRFbGVtZW50LmlkKTtcbiAgICBuZXh0RWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSk7XG4gICAgdGhpcy5fYWN0aXZlQ29sdW1uSW5kZXggPSBuZXh0O1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc2V0QWN0aXZlRWxlbWVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlQ29sdW1uSW5kZXggIT09IDApIHtcbiAgICAgIHRoaXMuYWN0aXZlT3B0aW9uXG4gICAgICAgID8uY2xvc2VzdCgnc2JiLWF1dG9jb21wbGV0ZS1ncmlkLXJvdycpXG4gICAgICAgID8ucXVlcnlTZWxlY3RvckFsbCgnc2JiLWF1dG9jb21wbGV0ZS1ncmlkLWJ1dHRvbicpXG4gICAgICAgIC5mb3JFYWNoKChlKSA9PiDJtXN0YXRlQ29udHJvbGxlcihlKS5kZWxldGUoJ2ZvY3VzLXZpc2libGUnKSk7XG4gICAgfVxuICAgIHRoaXMuYWN0aXZlT3B0aW9uPy5zZXRBY3RpdmUoZmFsc2UpO1xuICAgIHRoaXMuYWN0aXZlT3B0aW9uID0gbnVsbDtcbiAgICB0aGlzLl9hY3RpdmVDb2x1bW5JbmRleCA9IDA7XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudD8ucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRUcmlnZ2VyQXR0cmlidXRlcyhlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgc2V0QXJpYUNvbWJvQm94QXR0cmlidXRlcyhlbGVtZW50LCBhcmlhUm9sZU9uSG9zdCA/IHRoaXMuaWQgOiB0aGlzLm92ZXJsYXlJZCwgZmFsc2UsICdncmlkJyk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1hdXRvY29tcGxldGUtZ3JpZCc6IFNiYkF1dG9jb21wbGV0ZUdyaWRFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiybVzdGF0ZUNvbnRyb2xsZXIiXSwibWFwcGluZ3MiOiI7Ozs7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
138
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL2F1dG9jb21wbGV0ZS1ncmlkL2F1dG9jb21wbGV0ZS1ncmlkL2F1dG9jb21wbGV0ZS1ncmlkLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYmJBdXRvY29tcGxldGVCYXNlRWxlbWVudCB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2F1dG9jb21wbGV0ZS5qcyc7XG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4IH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IGlzU2FmYXJpIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kb20uanMnO1xuaW1wb3J0IHsgybVzdGF0ZUNvbnRyb2xsZXIgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgeyBzZXRBcmlhQ29tYm9Cb3hBdHRyaWJ1dGVzIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9vdmVybGF5LmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGl2aWRlckVsZW1lbnQgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9kaXZpZGVyLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiT3B0R3JvdXBFbGVtZW50LCBTYmJPcHRpb25IaW50RWxlbWVudCB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL29wdGlvbi5qcyc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlLWdyaWQtYnV0dG9uLnRzJztcbmltcG9ydCB7IFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50IH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uLnRzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogT24gU2FmYXJpLCB0aGUgYXJpYSByb2xlICdsaXN0Ym94JyBtdXN0IGJlIG9uIHRoZSBob3N0IGVsZW1lbnQsIG9yIGVsc2UgVm9pY2VPdmVyIHdvbid0IHdvcmsgYXQgYWxsLlxuICogT24gdGhlIG90aGVyIGhhbmQsIEpBV1MgYW5kIE5WREEgbmVlZCB0aGUgcm9sZSB0byBiZSBcImNsb3NlclwiIHRvIHRoZSBvcHRpb25zLCBvciBlbHNlIG9wdGdyb3VwcyB3b24ndCB3b3JrLlxuICovXG5jb25zdCBhcmlhUm9sZU9uSG9zdCA9IGlzU2FmYXJpO1xuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBuYXRpdmUgaW5wdXQsIGl0IGRpc3BsYXlzIGEgcGFuZWwgd2l0aCBhIGxpc3Qgb2YgYXZhaWxhYmxlIG9wdGlvbnMgd2l0aCBjb25uZWN0ZWQgYnV0dG9ucy5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLXJvd2Agb3IgYHNiYi1hdXRvY29tcGxldGUtZ3JpZC1vcHRncm91cGAgZWxlbWVudHMgdG8gdGhlIGBzYmItYXV0b2NvbXBsZXRlLWdyaWRgLlxuICogQGNzc3Byb3AgWy0tc2JiLWF1dG9jb21wbGV0ZS16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1hdXRvY29tcGxldGUtZ3JpZCcpXG5jbGFzcyBTYmJBdXRvY29tcGxldGVHcmlkRWxlbWVudDxUID0gc3RyaW5nPiBleHRlbmRzIFNiYkF1dG9jb21wbGV0ZUJhc2VFbGVtZW50PFQ+IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gYXJpYVJvbGVPbkhvc3QgPyAnZ3JpZCcgOiBudWxsO1xuICBwcm90ZWN0ZWQgb3ZlcmxheUlkID0gYHNiYi1hdXRvY29tcGxldGUtZ3JpZC0keysrbmV4dElkfWA7XG4gIHByb3RlY3RlZCBwYW5lbFJvbGUgPSAnZ3JpZCc7XG4gIHByaXZhdGUgX2FjdGl2ZUNvbHVtbkluZGV4ID0gMDtcblxuICBwcm90ZWN0ZWQgZ2V0IG9wdGlvbnMoKTogU2JiQXV0b2NvbXBsZXRlR3JpZE9wdGlvbkVsZW1lbnQ8VD5bXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudDxUPj4oXG4gICAgICAgICdzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uJyxcbiAgICAgICkgPz8gW10sXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdvcHRpb25zZWxlY3RlZCcsIChlOiBFdmVudCkgPT4gdGhpcy5vbk9wdGlvblNlbGVjdGVkKGUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW5jTmVnYXRpdmUoKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy48XG4gICAgICBTYmJEaXZpZGVyRWxlbWVudCB8IFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50IHwgU2JiT3B0aW9uSGludEVsZW1lbnRcbiAgICA+KCdzYmItZGl2aWRlciwgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLWJ1dHRvbiwgc2JiLW9wdGlvbi1oaW50JykuZm9yRWFjaChcbiAgICAgIChlKSA9PiAoZS5uZWdhdGl2ZSA9IHRoaXMubmVnYXRpdmUpLFxuICAgICk7XG5cbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudDxUPiB8IFNiYk9wdEdyb3VwRWxlbWVudD4oXG4gICAgICAnc2JiLWF1dG9jb21wbGV0ZS1ncmlkLXJvdywgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLW9wdGlvbiwgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLW9wdGdyb3VwJyxcbiAgICApLmZvckVhY2goKGVsZW1lbnQpID0+IMm1c3RhdGVDb250cm9sbGVyKGVsZW1lbnQpLnRvZ2dsZSgnbmVnYXRpdmUnLCB0aGlzLm5lZ2F0aXZlKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3BlbmVkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCh0aGlzLnN0YXRlID09PSAnb3BlbmluZycgfHwgdGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcpICYmIGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgdGhpcy5zZWxlY3RCeUtleWJvYXJkKGV2ZW50KTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICB0aGlzLnNldE5leHRBY3RpdmVPcHRpb24oZXZlbnQpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICAgIHRoaXMuX3NldE5leHRIb3Jpem9udGFsQWN0aXZlRWxlbWVudChldmVudCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhbiBlbGVtZW50IG9uICdFbnRlcicga2V5cHJlc3MuXG4gICAqXG4gICAqIER1ZSB0byBrZXlib2FyZCBuYXZpZ2F0aW9uIGNvZGUsIHRoZSBgX2FjdGl2ZUNvbHVtbkluZGV4YCBpcyB6ZXJvIHdoZW4gYW4gb3B0aW9uIGlzICdmb2N1c2VkJ1xuICAgKiBhbmQgZ3JlYXRlciB0aGFuIHplcm8gd2hlbiBhIGJ1dHRvbiBpcyAnZm9jdXNlZCcsIHNvIGFza2luZyBmb3IgYHF1ZXJ5U2VsZWN0b3JBbGwoLi4uKVt0aGlzLl9hY3RpdmVDb2x1bW5JbmRleF1gXG4gICAqIHdvdWxkIGFsd2F5cyByZXR1cm4gYSBgU2JiQXV0b2NvbXBsZXRlR3JpZEJ1dHRvbkVsZW1lbnRgLlxuICAgKi9cbiAgcHJvdGVjdGVkIHNlbGVjdEJ5S2V5Ym9hcmQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgaWYgKHRoaXMuX2FjdGl2ZUNvbHVtbkluZGV4ICE9PSAwKSB7XG4gICAgICB0aGlzLmFjdGl2ZU9wdGlvblxuICAgICAgICA/LmNsb3Nlc3QoJ3NiYi1hdXRvY29tcGxldGUtZ3JpZC1yb3cnKVxuICAgICAgICA/LnF1ZXJ5U2VsZWN0b3JBbGwoJ3NiYi1hdXRvY29tcGxldGUtZ3JpZC1idXR0b24nKVxuICAgICAgICBbXG4gICAgICAgICAgLy8gV2UgaWdub3JlIHRoZSBvcHRpb24gaW4gdGhlIHNlbGVjdG9yLiBUaGVyZWZvcmUsIHdlIGhhdmUgdG8gc2hpZnQgdGhlIGFjdGl2ZUNvbHVtbkluZGV4IGJ5IG9uZS5cbiAgICAgICAgICB0aGlzLl9hY3RpdmVDb2x1bW5JbmRleCAtIDFcbiAgICAgICAgXT8uY2xpY2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVPcHRpb24/Llsnc2VsZWN0VmlhVXNlckludGVyYWN0aW9uJ10odHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldE5leHRBY3RpdmVPcHRpb24oZXZlbnQ/OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZW5hYmxlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnMuZmlsdGVyKChvcHQpID0+ICFvcHQubWF0Y2hlcygnOnN0YXRlKGRpc2FibGVkKScpKTtcblxuICAgIC8vIFJlc2V0IHBvdGVudGlhbGx5IGFjdGl2ZSBvcHRpb25cbiAgICB0aGlzLmFjdGl2ZU9wdGlvbj8uc2V0QWN0aXZlKGZhbHNlKTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCcpO1xuICAgIEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLWF1dG9jb21wbGV0ZS1ncmlkLXJvdyA6c3RhdGUoZm9jdXMtdmlzaWJsZSknKSA/PyBbXSxcbiAgICApLmZvckVhY2goKHJvdykgPT4gybVzdGF0ZUNvbnRyb2xsZXIocm93KS5kZWxldGUoJ2ZvY3VzLXZpc2libGUnKSk7XG4gICAgdGhpcy5fYWN0aXZlQ29sdW1uSW5kZXggPSAwO1xuXG4gICAgaWYgKCFlbmFibGVkT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuYWN0aXZlT3B0aW9uID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBhY3RpdmVJdGVtSW5kZXggPSB0aGlzLmFjdGl2ZU9wdGlvblxuICAgICAgPyBlbmFibGVkT3B0aW9ucy5pbmRleE9mKHRoaXMuYWN0aXZlT3B0aW9uIGFzIFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50PFQ+KVxuICAgICAgOiAtMTtcblxuICAgIC8vIEdldCBhbmQgYWN0aXZhdGUgdGhlIG5leHQgYWN0aXZlIG9wdGlvblxuICAgIGNvbnN0IG5leHQgPSBnZXROZXh0RWxlbWVudEluZGV4KGV2ZW50LCBhY3RpdmVJdGVtSW5kZXgsIGVuYWJsZWRPcHRpb25zLmxlbmd0aCk7XG4gICAgdGhpcy5hY3RpdmVPcHRpb24gPSBlbmFibGVkT3B0aW9uc1tuZXh0XTtcbiAgICB0aGlzLmFjdGl2ZU9wdGlvbi5zZXRBY3RpdmUodHJ1ZSk7XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnLCB0aGlzLmFjdGl2ZU9wdGlvbi5pZCk7XG4gICAgdGhpcy5hY3RpdmVPcHRpb24uc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pO1xuICAgIGlmICh0aGlzLmF1dG9TZWxlY3RBY3RpdmVPcHRpb24pIHtcbiAgICAgIHRoaXMub25PcHRpb25BcnJvd3NTZWxlY3RlZCh0aGlzLmFjdGl2ZU9wdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0TmV4dEhvcml6b250YWxBY3RpdmVFbGVtZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZU9wdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRzSW5Sb3cgPSBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5hY3RpdmVPcHRpb25cbiAgICAgICAgPy5jbG9zZXN0KCdzYmItYXV0b2NvbXBsZXRlLWdyaWQtcm93JylcbiAgICAgICAgPy5xdWVyeVNlbGVjdG9yQWxsPFxuICAgICAgICAgIFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50PFQ+IHwgU2JiQXV0b2NvbXBsZXRlR3JpZEJ1dHRvbkVsZW1lbnRcbiAgICAgICAgPignc2JiLWF1dG9jb21wbGV0ZS1ncmlkLW9wdGlvbiwgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLWJ1dHRvbicpID8/IFtdLFxuICAgICk/LmZpbHRlcigoZWwpID0+ICFlbC5tYXRjaGVzKCc6c3RhdGUoZGlzYWJsZWQpJykpO1xuXG4gICAgaWYgKCFlbGVtZW50c0luUm93Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHQ6IG51bWJlciA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZlbnQsIHRoaXMuX2FjdGl2ZUNvbHVtbkluZGV4LCBlbGVtZW50c0luUm93Lmxlbmd0aCk7XG4gICAgY29uc3QgbmV4dEVsZW1lbnQ6IFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50PFQ+IHwgU2JiQXV0b2NvbXBsZXRlR3JpZEJ1dHRvbkVsZW1lbnQgPVxuICAgICAgZWxlbWVudHNJblJvd1tuZXh0XTtcbiAgICBpZiAobmV4dEVsZW1lbnQgaW5zdGFuY2VvZiBTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudCkge1xuICAgICAgbmV4dEVsZW1lbnQuc2V0QWN0aXZlKHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICDJtXN0YXRlQ29udHJvbGxlcihuZXh0RWxlbWVudCkuYWRkKCdmb2N1cy12aXNpYmxlJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbGFzdEFjdGl2ZUVsZW1lbnQgPSBlbGVtZW50c0luUm93W3RoaXMuX2FjdGl2ZUNvbHVtbkluZGV4XTtcbiAgICBpZiAobGFzdEFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudCkge1xuICAgICAgbGFzdEFjdGl2ZUVsZW1lbnQuc2V0QWN0aXZlKGZhbHNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgybVzdGF0ZUNvbnRyb2xsZXIobGFzdEFjdGl2ZUVsZW1lbnQpLmRlbGV0ZSgnZm9jdXMtdmlzaWJsZScpO1xuICAgIH1cbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCcsIG5leHRFbGVtZW50LmlkKTtcbiAgICBuZXh0RWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSk7XG4gICAgdGhpcy5fYWN0aXZlQ29sdW1uSW5kZXggPSBuZXh0O1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc2V0QWN0aXZlRWxlbWVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlQ29sdW1uSW5kZXggIT09IDApIHtcbiAgICAgIHRoaXMuYWN0aXZlT3B0aW9uXG4gICAgICAgID8uY2xvc2VzdCgnc2JiLWF1dG9jb21wbGV0ZS1ncmlkLXJvdycpXG4gICAgICAgID8ucXVlcnlTZWxlY3RvckFsbCgnc2JiLWF1dG9jb21wbGV0ZS1ncmlkLWJ1dHRvbicpXG4gICAgICAgIC5mb3JFYWNoKChlKSA9PiDJtXN0YXRlQ29udHJvbGxlcihlKS5kZWxldGUoJ2ZvY3VzLXZpc2libGUnKSk7XG4gICAgfVxuICAgIHRoaXMuYWN0aXZlT3B0aW9uPy5zZXRBY3RpdmUoZmFsc2UpO1xuICAgIHRoaXMuYWN0aXZlT3B0aW9uID0gbnVsbDtcbiAgICB0aGlzLl9hY3RpdmVDb2x1bW5JbmRleCA9IDA7XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudD8ucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRUcmlnZ2VyQXR0cmlidXRlcyhlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgc2V0QXJpYUNvbWJvQm94QXR0cmlidXRlcyhlbGVtZW50LCBhcmlhUm9sZU9uSG9zdCA/IHRoaXMuaWQgOiB0aGlzLm92ZXJsYXlJZCwgZmFsc2UsICdncmlkJyk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1hdXRvY29tcGxldGUtZ3JpZCc6IFNiYkF1dG9jb21wbGV0ZUdyaWRFbGVtZW50O1xuICB9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
@@ -1,7 +1,7 @@
1
1
  import { i18nDurationDay, i18nDurationHour, i18nDurationMinute } from "@sbb-esta/lyne-elements/core/i18n.js";
2
- import { t as toDate, c as constructFrom, b as millisecondsInHour, m as millisecondsInMinute } from "../../toDate-D_Vjps95.js";
3
- import { n as normalizeDates, d as differenceInCalendarDays, i as isValid } from "../../isValid-DvieCZVi.js";
4
- import { g as getRoundingMethod, a as addMinutes, d as differenceInMinutes } from "../../differenceInMinutes-D5Nj8Stc.js";
2
+ import { t as toDate, c as constructFrom, b as millisecondsInHour, m as millisecondsInMinute } from "../../toDate-BWb6Z1JD.js";
3
+ import { n as normalizeDates, d as differenceInCalendarDays, i as isValid } from "../../isValid-BYRch7pV.js";
4
+ import { g as getRoundingMethod, a as addMinutes, d as differenceInMinutes } from "../../differenceInMinutes-B0dawX-5.js";
5
5
  function addDays(date, amount, options) {
6
6
  const _date = toDate(date, options?.in);
7
7
  if (isNaN(amount)) return constructFrom(date, NaN);
@@ -1,4 +1,4 @@
1
- import { t as toDate, m as millisecondsInMinute } from "./toDate-D_Vjps95.js";
1
+ import { t as toDate, m as millisecondsInMinute } from "./toDate-BWb6Z1JD.js";
2
2
  function addMinutes(date, amount, options) {
3
3
  const _date = toDate(date, options?.in);
4
4
  _date.setTime(_date.getTime() + amount * millisecondsInMinute);
@@ -23,4 +23,4 @@ export {
23
23
  differenceInMinutes as d,
24
24
  getRoundingMethod as g
25
25
  };
26
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZmVyZW5jZUluTWludXRlcy1ENU5qOFN0Yy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2FkZE1pbnV0ZXMuanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9nZXRSb3VuZGluZ01ldGhvZC5qcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9kaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMuanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZGlmZmVyZW5jZUluTWludXRlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtaWxsaXNlY29uZHNJbk1pbnV0ZSB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBhZGRNaW51dGVzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgYWRkTWludXRlc1xuICogQGNhdGVnb3J5IE1pbnV0ZSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgbWludXRlcyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtaW51dGVzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIG1pbnV0ZXMgdG8gYmUgYWRkZWQuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV3IGRhdGUgd2l0aCB0aGUgbWludXRlcyBhZGRlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgMzAgbWludXRlcyB0byAxMCBKdWx5IDIwMTQgMTI6MDA6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBhZGRNaW51dGVzKG5ldyBEYXRlKDIwMTQsIDYsIDEwLCAxMiwgMCksIDMwKVxuICogLy89PiBUaHUgSnVsIDEwIDIwMTQgMTI6MzA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZE1pbnV0ZXMoZGF0ZSwgYW1vdW50LCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgX2RhdGUuc2V0VGltZShfZGF0ZS5nZXRUaW1lKCkgKyBhbW91bnQgKiBtaWxsaXNlY29uZHNJbk1pbnV0ZSk7XG4gIHJldHVybiBfZGF0ZTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBhZGRNaW51dGVzO1xuIiwiZXhwb3J0IGZ1bmN0aW9uIGdldFJvdW5kaW5nTWV0aG9kKG1ldGhvZCkge1xuICByZXR1cm4gKG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHJvdW5kID0gbWV0aG9kID8gTWF0aFttZXRob2RdIDogTWF0aC50cnVuYztcbiAgICBjb25zdCByZXN1bHQgPSByb3VuZChudW1iZXIpO1xuICAgIC8vIFByZXZlbnQgbmVnYXRpdmUgemVyb1xuICAgIHJldHVybiByZXN1bHQgPT09IDAgPyAwIDogcmVzdWx0O1xuICB9O1xufVxuIiwiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzXG4gKiBAY2F0ZWdvcnkgTWlsbGlzZWNvbmQgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgbGF0ZXIgZGF0ZVxuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIGVhcmxpZXIgZGF0ZVxuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IG1pbGxpc2Vjb25kcyBhcmUgYmV0d2VlblxuICogLy8gMiBKdWx5IDIwMTQgMTI6MzA6MjAuNjAwIGFuZCAyIEp1bHkgMjAxNCAxMjozMDoyMS43MDA/XG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMoXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDYsIDIsIDEyLCAzMCwgMjEsIDcwMCksXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDYsIDIsIDEyLCAzMCwgMjAsIDYwMClcbiAqIClcbiAqIC8vPT4gMTEwMFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzKGxhdGVyRGF0ZSwgZWFybGllckRhdGUpIHtcbiAgcmV0dXJuICt0b0RhdGUobGF0ZXJEYXRlKSAtICt0b0RhdGUoZWFybGllckRhdGUpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcztcbiIsImltcG9ydCB7IGdldFJvdW5kaW5nTWV0aG9kIH0gZnJvbSBcIi4vX2xpYi9nZXRSb3VuZGluZ01ldGhvZC5qc1wiO1xuaW1wb3J0IHsgbWlsbGlzZWNvbmRzSW5NaW51dGUgfSBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcyB9IGZyb20gXCIuL2RpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZGlmZmVyZW5jZUluTWludXRlc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGRpZmZlcmVuY2VJbk1pbnV0ZXNcbiAqIEBjYXRlZ29yeSBNaW51dGUgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgc2lnbmVkIG51bWJlciBvZiBmdWxsIChyb3VuZGVkIHRvd2FyZHMgMCkgbWludXRlcyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAcGFyYW0gZGF0ZUxlZnQgLSBUaGUgbGF0ZXIgZGF0ZVxuICogQHBhcmFtIGRhdGVSaWdodCAtIFRoZSBlYXJsaWVyIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIG1pbnV0ZXNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgbWludXRlcyBhcmUgYmV0d2VlbiAyIEp1bHkgMjAxNCAxMjowNzo1OSBhbmQgMiBKdWx5IDIwMTQgMTI6MjA6MDA/XG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5NaW51dGVzKFxuICogICBuZXcgRGF0ZSgyMDE0LCA2LCAyLCAxMiwgMjAsIDApLFxuICogICBuZXcgRGF0ZSgyMDE0LCA2LCAyLCAxMiwgNywgNTkpXG4gKiApXG4gKiAvLz0+IDEyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IG1pbnV0ZXMgYXJlIGJldHdlZW4gMTA6MDE6NTkgYW5kIDEwOjAwOjAwXG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5NaW51dGVzKFxuICogICBuZXcgRGF0ZSgyMDAwLCAwLCAxLCAxMCwgMCwgMCksXG4gKiAgIG5ldyBEYXRlKDIwMDAsIDAsIDEsIDEwLCAxLCA1OSlcbiAqIClcbiAqIC8vPT4gLTFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZlcmVuY2VJbk1pbnV0ZXMoZGF0ZUxlZnQsIGRhdGVSaWdodCwgb3B0aW9ucykge1xuICBjb25zdCBkaWZmID1cbiAgICBkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMoZGF0ZUxlZnQsIGRhdGVSaWdodCkgLyBtaWxsaXNlY29uZHNJbk1pbnV0ZTtcbiAgcmV0dXJuIGdldFJvdW5kaW5nTWV0aG9kKG9wdGlvbnM/LnJvdW5kaW5nTWV0aG9kKShkaWZmKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBkaWZmZXJlbmNlSW5NaW51dGVzO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUE2Qk8sU0FBUyxXQUFXLE1BQU0sUUFBUSxTQUFTO0FBQ2hELFFBQU0sUUFBUSxPQUFPLE1BQU0sU0FBUyxFQUFFO0FBQ3RDLFFBQU0sUUFBUSxNQUFNLFFBQU8sSUFBSyxTQUFTLG9CQUFvQjtBQUM3RCxTQUFPO0FBQ1Q7QUNqQ08sU0FBUyxrQkFBa0IsUUFBUTtBQUN4QyxTQUFPLENBQUMsV0FBVztBQUNqQixVQUFNLFFBQVEsU0FBUyxLQUFLLE1BQU0sSUFBSSxLQUFLO0FBQzNDLFVBQU0sU0FBUyxNQUFNLE1BQU07QUFFM0IsV0FBTyxXQUFXLElBQUksSUFBSTtBQUFBLEVBQzVCO0FBQ0Y7QUNpQk8sU0FBUyx5QkFBeUIsV0FBVyxhQUFhO0FBQy9ELFNBQU8sQ0FBQyxPQUFPLFNBQVMsSUFBSSxDQUFDLE9BQU8sV0FBVztBQUNqRDtBQ1lPLFNBQVMsb0JBQW9CLFVBQVUsV0FBVyxTQUFTO0FBQ2hFLFFBQU0sT0FDSix5QkFBeUIsVUFBVSxTQUFTLElBQUk7QUFDbEQsU0FBTyxrQkFBa0IsU0FBUyxjQUFjLEVBQUUsSUFBSTtBQUN4RDsiLCJ4X2dvb2dsZV9pZ25vcmVMaXN0IjpbMCwxLDIsM119
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZmVyZW5jZUluTWludXRlcy1CMGRhd1gtNS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2FkZE1pbnV0ZXMuanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9nZXRSb3VuZGluZ01ldGhvZC5qcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9kaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMuanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZGlmZmVyZW5jZUluTWludXRlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtaWxsaXNlY29uZHNJbk1pbnV0ZSB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBhZGRNaW51dGVzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgYWRkTWludXRlc1xuICogQGNhdGVnb3J5IE1pbnV0ZSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgbWludXRlcyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtaW51dGVzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIG1pbnV0ZXMgdG8gYmUgYWRkZWQuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV3IGRhdGUgd2l0aCB0aGUgbWludXRlcyBhZGRlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgMzAgbWludXRlcyB0byAxMCBKdWx5IDIwMTQgMTI6MDA6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBhZGRNaW51dGVzKG5ldyBEYXRlKDIwMTQsIDYsIDEwLCAxMiwgMCksIDMwKVxuICogLy89PiBUaHUgSnVsIDEwIDIwMTQgMTI6MzA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZE1pbnV0ZXMoZGF0ZSwgYW1vdW50LCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgX2RhdGUuc2V0VGltZShfZGF0ZS5nZXRUaW1lKCkgKyBhbW91bnQgKiBtaWxsaXNlY29uZHNJbk1pbnV0ZSk7XG4gIHJldHVybiBfZGF0ZTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBhZGRNaW51dGVzO1xuIiwiZXhwb3J0IGZ1bmN0aW9uIGdldFJvdW5kaW5nTWV0aG9kKG1ldGhvZCkge1xuICByZXR1cm4gKG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHJvdW5kID0gbWV0aG9kID8gTWF0aFttZXRob2RdIDogTWF0aC50cnVuYztcbiAgICBjb25zdCByZXN1bHQgPSByb3VuZChudW1iZXIpO1xuICAgIC8vIFByZXZlbnQgbmVnYXRpdmUgemVyb1xuICAgIHJldHVybiByZXN1bHQgPT09IDAgPyAwIDogcmVzdWx0O1xuICB9O1xufVxuIiwiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzXG4gKiBAY2F0ZWdvcnkgTWlsbGlzZWNvbmQgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgbGF0ZXIgZGF0ZVxuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIGVhcmxpZXIgZGF0ZVxuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IG1pbGxpc2Vjb25kcyBhcmUgYmV0d2VlblxuICogLy8gMiBKdWx5IDIwMTQgMTI6MzA6MjAuNjAwIGFuZCAyIEp1bHkgMjAxNCAxMjozMDoyMS43MDA/XG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMoXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDYsIDIsIDEyLCAzMCwgMjEsIDcwMCksXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDYsIDIsIDEyLCAzMCwgMjAsIDYwMClcbiAqIClcbiAqIC8vPT4gMTEwMFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzKGxhdGVyRGF0ZSwgZWFybGllckRhdGUpIHtcbiAgcmV0dXJuICt0b0RhdGUobGF0ZXJEYXRlKSAtICt0b0RhdGUoZWFybGllckRhdGUpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcztcbiIsImltcG9ydCB7IGdldFJvdW5kaW5nTWV0aG9kIH0gZnJvbSBcIi4vX2xpYi9nZXRSb3VuZGluZ01ldGhvZC5qc1wiO1xuaW1wb3J0IHsgbWlsbGlzZWNvbmRzSW5NaW51dGUgfSBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcyB9IGZyb20gXCIuL2RpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZGlmZmVyZW5jZUluTWludXRlc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGRpZmZlcmVuY2VJbk1pbnV0ZXNcbiAqIEBjYXRlZ29yeSBNaW51dGUgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgc2lnbmVkIG51bWJlciBvZiBmdWxsIChyb3VuZGVkIHRvd2FyZHMgMCkgbWludXRlcyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAcGFyYW0gZGF0ZUxlZnQgLSBUaGUgbGF0ZXIgZGF0ZVxuICogQHBhcmFtIGRhdGVSaWdodCAtIFRoZSBlYXJsaWVyIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIG1pbnV0ZXNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgbWludXRlcyBhcmUgYmV0d2VlbiAyIEp1bHkgMjAxNCAxMjowNzo1OSBhbmQgMiBKdWx5IDIwMTQgMTI6MjA6MDA/XG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5NaW51dGVzKFxuICogICBuZXcgRGF0ZSgyMDE0LCA2LCAyLCAxMiwgMjAsIDApLFxuICogICBuZXcgRGF0ZSgyMDE0LCA2LCAyLCAxMiwgNywgNTkpXG4gKiApXG4gKiAvLz0+IDEyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IG1pbnV0ZXMgYXJlIGJldHdlZW4gMTA6MDE6NTkgYW5kIDEwOjAwOjAwXG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5NaW51dGVzKFxuICogICBuZXcgRGF0ZSgyMDAwLCAwLCAxLCAxMCwgMCwgMCksXG4gKiAgIG5ldyBEYXRlKDIwMDAsIDAsIDEsIDEwLCAxLCA1OSlcbiAqIClcbiAqIC8vPT4gLTFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZlcmVuY2VJbk1pbnV0ZXMoZGF0ZUxlZnQsIGRhdGVSaWdodCwgb3B0aW9ucykge1xuICBjb25zdCBkaWZmID1cbiAgICBkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMoZGF0ZUxlZnQsIGRhdGVSaWdodCkgLyBtaWxsaXNlY29uZHNJbk1pbnV0ZTtcbiAgcmV0dXJuIGdldFJvdW5kaW5nTWV0aG9kKG9wdGlvbnM/LnJvdW5kaW5nTWV0aG9kKShkaWZmKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBkaWZmZXJlbmNlSW5NaW51dGVzO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUE2Qk8sU0FBUyxXQUFXLE1BQU0sUUFBUSxTQUFTO0FBQ2hELFFBQU0sUUFBUSxPQUFPLE1BQU0sU0FBUyxFQUFFO0FBQ3RDLFFBQU0sUUFBUSxNQUFNLFFBQU8sSUFBSyxTQUFTLG9CQUFvQjtBQUM3RCxTQUFPO0FBQ1Q7QUNqQ08sU0FBUyxrQkFBa0IsUUFBUTtBQUN4QyxTQUFPLENBQUMsV0FBVztBQUNqQixVQUFNLFFBQVEsU0FBUyxLQUFLLE1BQU0sSUFBSSxLQUFLO0FBQzNDLFVBQU0sU0FBUyxNQUFNLE1BQU07QUFFM0IsV0FBTyxXQUFXLElBQUksSUFBSTtBQUFBLEVBQzVCO0FBQ0Y7QUNpQk8sU0FBUyx5QkFBeUIsV0FBVyxhQUFhO0FBQy9ELFNBQU8sQ0FBQyxPQUFPLFNBQVMsSUFBSSxDQUFDLE9BQU8sV0FBVztBQUNqRDtBQ1lPLFNBQVMsb0JBQW9CLFVBQVUsV0FBVyxTQUFTO0FBQ2hFLFFBQU0sT0FDSix5QkFBeUIsVUFBVSxTQUFTLElBQUk7QUFDbEQsU0FBTyxrQkFBa0IsU0FBUyxjQUFjLEVBQUUsSUFBSTtBQUN4RDsiLCJ4X2dvb2dsZV9pZ25vcmVMaXN0IjpbMCwxLDIsM119