@sbb-esta/lyne-elements-experimental 4.12.0 → 4.13.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.
Files changed (70) hide show
  1. package/custom-elements.json +460 -339
  2. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +1 -1
  3. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +1 -1
  4. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +1 -1
  5. package/development/autocomplete-grid-cell.component-BxkWGaX0.js +1 -1
  6. package/development/autocomplete-grid-option.component-5mPGswUO.js +1 -1
  7. package/development/autocomplete-grid-row.component-DEm6zyHZ.js +1 -1
  8. package/development/core/timetable/access-leg-helper.js +1 -1
  9. package/development/core/timetable/timetable-helper.js +1 -1
  10. package/development/date-helper-qNdwgC9O.js +1 -1
  11. package/development/differenceInMinutes-B7_GTDq7.js +1 -1
  12. package/development/format-DFx4997p.js +1 -1
  13. package/development/isValid-JpZ7FphI.js +1 -1
  14. package/development/journey-summary.component-BZwgD4im.js +1 -1
  15. package/development/mapper-hWWm7Uke.js +1 -1
  16. package/development/pearl-chain-time.component-B2_BI6E_.js +1 -1
  17. package/development/pearl-chain-vertical-item.component-D4clzjjQ.js +1 -1
  18. package/development/pearl-chain-vertical.component-CpcNFl-x.js +1 -1
  19. package/development/pearl-chain.component-oQZUzsyW.js +1 -1
  20. package/development/seat-reservation/common/translations/i18n.js +1 -1
  21. package/development/seat-reservation/common/types.d.ts +3 -4
  22. package/development/seat-reservation/common/types.d.ts.map +1 -1
  23. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +38 -7
  24. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  25. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +146 -35
  26. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts +2 -13
  27. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  28. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +1 -1
  29. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  30. package/development/seat-reservation/seat-reservation-area.js +1 -1
  31. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +2 -2
  32. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
  33. package/development/seat-reservation/seat-reservation-graphic.js +1 -1
  34. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
  35. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +1 -1
  36. package/development/seat-reservation/seat-reservation-navigation-coach.js +1 -1
  37. package/development/seat-reservation/seat-reservation.js +1 -1
  38. package/development/seat-reservation-area.component-BWdrKqek.js +96 -0
  39. package/development/seat-reservation-graphic.component-CN5sWn0I.js +129 -0
  40. package/development/{seat-reservation-navigation-coach.component-CjoDkcVU.js → seat-reservation-navigation-coach.component-tDZkXl-3.js} +3 -3
  41. package/development/seat-reservation-navigation-services.component-CGel7__P.js +1 -1
  42. package/development/seat-reservation-place-control.component-CM9efId7.js +1 -1
  43. package/development/seat-reservation-scoped.component-CFA_bJ3o.js +1 -1
  44. package/development/seat-reservation.component-44IHFFlM.js +464 -0
  45. package/development/seat-reservation.js +4 -4
  46. package/development/seat-reservation.pure.js +4 -4
  47. package/development/timetable-duration.component-BhFlqYbV.js +1 -1
  48. package/development/timetable-row.component-Dko8laRT.js +1 -1
  49. package/development/toDate-DOFAOjP-.js +1 -1
  50. package/package.json +2 -2
  51. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +133 -80
  52. package/seat-reservation/seat-reservation/seat-reservation.component.js +1 -1
  53. package/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  54. package/seat-reservation/seat-reservation-area.js +1 -1
  55. package/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +1 -1
  56. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
  57. package/seat-reservation/seat-reservation-graphic.js +1 -1
  58. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +1 -1
  59. package/seat-reservation/seat-reservation-navigation-coach.js +1 -1
  60. package/seat-reservation/seat-reservation.js +1 -1
  61. package/{seat-reservation-area.component-CtYawDjE.js → seat-reservation-area.component-B5_N7H_a.js} +1 -1
  62. package/seat-reservation-graphic.component-Dh1e2Pve.js +102 -0
  63. package/{seat-reservation-navigation-coach.component-sug9IBTH.js → seat-reservation-navigation-coach.component-BdCUfksf.js} +2 -2
  64. package/{seat-reservation.component-DajC6fqU.js → seat-reservation.component-CtEqqosF.js} +77 -84
  65. package/seat-reservation.js +4 -4
  66. package/seat-reservation.pure.js +4 -4
  67. package/development/seat-reservation-area.component-DbeuTnXT.js +0 -96
  68. package/development/seat-reservation-graphic.component-DlrHtlia.js +0 -129
  69. package/development/seat-reservation.component-DFJVFmrI.js +0 -510
  70. package/seat-reservation-graphic.component-Cm_pVxaB.js +0 -102
@@ -1,129 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { SbbElement } from "@sbb-esta/lyne-elements/core/base-elements.js";
3
- import { SbbLanguageController } from "@sbb-esta/lyne-elements/core/controllers.js";
4
- import { forceType } from "@sbb-esta/lyne-elements/core/decorators.js";
5
- import { boxSizingStyles } from "@sbb-esta/lyne-elements/core/styles.js";
6
- import "@sbb-esta/lyne-elements/icon.js";
7
- import { html, isServer, unsafeCSS } from "lit";
8
- import { property } from "lit/decorators.js";
9
- import { mapIconToSvg } from "./seat-reservation/common/mapper.js";
10
- import { classMap } from "lit/directives/class-map.js";
11
- import { getI18nSeatReservation } from "./seat-reservation/common/translations.js";
12
- //#region src/elements-experimental/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.scss?inline
13
- var seat_reservation_graphic_default = ":host {\n --sbb-seat-reservation-graphic-max-width: auto;\n --sbb-seat-reservation-graphic-max-height: auto;\n --sbb-seat-reservation-graphic-width: 16;\n --sbb-seat-reservation-graphic-height: 16;\n --sbb-seat-reservation-graphic-rotation: 0;\n --sbb-seat-reservation-graphic-inverse-rotation: 0;\n --sbb-seat-reservation-graphic-padding-percent: 1;\n --sbb-seat-reservation-graphic-position: initial;\n --sbb-seat-reservation-graphic-left: 0;\n --sbb-seat-reservation-graphic-top: 0;\n --sbb-icon-svg-width: calc(\n var(--sbb-seat-reservation-graphic-width) *\n var(--sbb-seat-reservation-one-px-rem, 0.0625rem)\n );\n --sbb-icon-svg-height: calc(\n var(--sbb-seat-reservation-graphic-height) *\n var(--sbb-seat-reservation-one-px-rem, 0.0625rem)\n );\n display: flex;\n justify-content: center;\n align-items: center;\n width: calc(var(--sbb-seat-reservation-graphic-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n height: calc(var(--sbb-seat-reservation-graphic-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n position: var(--sbb-seat-reservation-graphic-position);\n inset-inline-start: calc(var(--sbb-seat-reservation-graphic-left) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n inset-block-start: calc(var(--sbb-seat-reservation-graphic-top) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n}\n\n:host(.auto-width) {\n --sbb-icon-svg-width: auto;\n max-width: calc(var(--sbb-seat-reservation-graphic-max-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem));\n width: auto;\n}\n\n:host(.sbb-sr-graphic__dimension--square-dim) {\n --sbb-icon-svg-width: min(min(var(--sbb-seat-reservation-graphic-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem), var(--sbb-seat-reservation-graphic-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) * var(--sbb-seat-reservation-graphic-padding-percent), min(var(--sbb-seat-reservation-graphic-max-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem), var(--sbb-seat-reservation-graphic-max-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)));\n --sbb-icon-svg-height: min(min(var(--sbb-seat-reservation-graphic-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem), var(--sbb-seat-reservation-graphic-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) * var(--sbb-seat-reservation-graphic-padding-percent), min(var(--sbb-seat-reservation-graphic-max-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem), var(--sbb-seat-reservation-graphic-max-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)));\n width: min(min(var(--sbb-seat-reservation-graphic-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem), var(--sbb-seat-reservation-graphic-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) * var(--sbb-seat-reservation-graphic-padding-percent), min(var(--sbb-seat-reservation-graphic-max-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem), var(--sbb-seat-reservation-graphic-max-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)));\n height: min(min(var(--sbb-seat-reservation-graphic-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem), var(--sbb-seat-reservation-graphic-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)) * var(--sbb-seat-reservation-graphic-padding-percent), min(var(--sbb-seat-reservation-graphic-max-width) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem), var(--sbb-seat-reservation-graphic-max-height) * var(--sbb-seat-reservation-one-px-rem, 0.0625rem)));\n}\n\n:host(.sbb-seat-reservation-graphic--cursor-pointer) {\n cursor: var(--sbb-cursor-pointer);\n}\n\n.sbb-sr-icon,\n.sbb-sr-graphic {\n width: inherit;\n height: inherit;\n transform-origin: center;\n rotate: calc(var(--sbb-seat-reservation-graphic-rotation) * 1deg);\n}\n\n.sbb-sr-icon {\n color: var(--sbb-color-granite);\n color: light-dark(var(--sbb-color-granite), var(--sbb-color-graphite));\n}\n\n.sbb-sr-graphic svg {\n width: 100%;\n height: 100%;\n}\n.sbb-sr-graphic svg .fix-rotation-inverse {\n transform-origin: center;\n rotate: calc(var(--sbb-seat-reservation-graphic-inverse-rotation) * 1deg);\n}\n@media (forced-colors: active) {\n .sbb-sr-graphic svg:not(.color-immutable) [fill]:not([fill=none]) {\n fill: currentcolor;\n }\n .sbb-sr-graphic .no-bg {\n fill: transparent;\n }\n}";
14
- //#endregion
15
- //#region src/elements-experimental/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.ts
16
- /**
17
- * Output one of the SVG graphics based on its code.
18
- */
19
- var SbbSeatReservationGraphicElement = (() => {
20
- let _classSuper = SbbElement;
21
- let _name_decorators;
22
- let _name_initializers = [];
23
- let _name_extraInitializers = [];
24
- let _stretch_decorators;
25
- let _stretch_initializers = [];
26
- let _stretch_extraInitializers = [];
27
- return class SbbSeatReservationGraphicElement extends _classSuper {
28
- constructor() {
29
- super(...arguments);
30
- this.#name_accessor_storage = __runInitializers(this, _name_initializers, "");
31
- this.#stretch_accessor_storage = (__runInitializers(this, _name_extraInitializers), __runInitializers(this, _stretch_initializers, false));
32
- this._language = (__runInitializers(this, _stretch_extraInitializers), new SbbLanguageController(this));
33
- }
34
- static {
35
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
36
- _name_decorators = [forceType(), property({ attribute: "name" })];
37
- _stretch_decorators = [forceType(), property({
38
- attribute: "stretch",
39
- type: Boolean
40
- })];
41
- __esDecorate(this, null, _name_decorators, {
42
- kind: "accessor",
43
- name: "name",
44
- static: false,
45
- private: false,
46
- access: {
47
- has: (obj) => "name" in obj,
48
- get: (obj) => obj.name,
49
- set: (obj, value) => {
50
- obj.name = value;
51
- }
52
- },
53
- metadata: _metadata
54
- }, _name_initializers, _name_extraInitializers);
55
- __esDecorate(this, null, _stretch_decorators, {
56
- kind: "accessor",
57
- name: "stretch",
58
- static: false,
59
- private: false,
60
- access: {
61
- has: (obj) => "stretch" in obj,
62
- get: (obj) => obj.stretch,
63
- set: (obj, value) => {
64
- obj.stretch = value;
65
- }
66
- },
67
- metadata: _metadata
68
- }, _stretch_initializers, _stretch_extraInitializers);
69
- if (_metadata) Object.defineProperty(this, Symbol.metadata, {
70
- enumerable: true,
71
- configurable: true,
72
- writable: true,
73
- value: _metadata
74
- });
75
- }
76
- static {
77
- this.elementName = "sbb-seat-reservation-graphic";
78
- }
79
- static {
80
- this.styles = [boxSizingStyles, unsafeCSS(seat_reservation_graphic_default)];
81
- }
82
- #name_accessor_storage;
83
- /** Name of the SVG graphic to be displayed. */
84
- get name() {
85
- return this.#name_accessor_storage;
86
- }
87
- set name(value) {
88
- this.#name_accessor_storage = value;
89
- }
90
- #stretch_accessor_storage;
91
- /** if true, scale the graphic content of the given element non-uniformly if necessary */
92
- get stretch() {
93
- return this.#stretch_accessor_storage;
94
- }
95
- set stretch(value) {
96
- this.#stretch_accessor_storage = value;
97
- }
98
- render() {
99
- const svgObj = mapIconToSvg[this.name];
100
- if (!svgObj?.svg && !svgObj?.svgName) return null;
101
- return html`<span
102
- class="${classMap({
103
- "sbb-sr-icon": !!svgObj.svgName,
104
- "sbb-sr-graphic": !!svgObj.svg
105
- })}"
106
- >
107
- ${svgObj.svgName ? html` <sbb-icon
108
- name="${svgObj.svgName || ""}"
109
- aria-hidden="false"
110
- aria-label="${getI18nSeatReservation(svgObj.svgName, this._language.current)}"
111
- ></sbb-icon>` : html`${this._getSvgElement(svgObj.svg)}`}
112
- </span>`;
113
- }
114
- _getSvgElement(svg) {
115
- if (!isServer) {
116
- const parser = new DOMParser();
117
- const svgString = svg || "<svg></svg>";
118
- const svgElm = parser.parseFromString(svgString, "image/svg+xml").firstElementChild;
119
- if (this.stretch && svgElm?.nodeName.toLowerCase() === "svg") svgElm.setAttribute("preserveAspectRatio", "none");
120
- return svgElm;
121
- }
122
- return null;
123
- }
124
- };
125
- })();
126
- //#endregion
127
- export { SbbSeatReservationGraphicElement as t };
128
-
129
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLmNvbXBvbmVudC1EbHJIdGxpYS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3NlYXQtcmVzZXJ2YXRpb24vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljL3NlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMvc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1tYXgtd2lkdGg6IGF1dG87XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1tYXgtaGVpZ2h0OiBhdXRvO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtd2lkdGg6IDE2O1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtaGVpZ2h0OiAxNjtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXJvdGF0aW9uOiAwO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtaW52ZXJzZS1yb3RhdGlvbjogMDtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXBhZGRpbmctcGVyY2VudDogMTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXBvc2l0aW9uOiBpbml0aWFsO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtbGVmdDogMDtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXRvcDogMDtcbiAgLS1zYmItaWNvbi1zdmctd2lkdGg6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy13aWR0aCkgKlxuICAgICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tb25lLXB4LXJlbSwgI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDEpfSlcbiAgKTtcbiAgLS1zYmItaWNvbi1zdmctaGVpZ2h0OiBjYWxjKFxuICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtaGVpZ2h0KSAqXG4gICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1vbmUtcHgtcmVtLCAje3NiYi5weC10by1yZW0tYnVpbGQoMSl9KVxuICApO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogY2FsYyhcbiAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXdpZHRoKSAqXG4gICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1vbmUtcHgtcmVtLCAje3NiYi5weC10by1yZW0tYnVpbGQoMSl9KVxuICApO1xuICBoZWlnaHQ6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1oZWlnaHQpICpcbiAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW9uZS1weC1yZW0sICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxKX0pXG4gICk7XG4gIHBvc2l0aW9uOiB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXBvc2l0aW9uKTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiBjYWxjKFxuICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtbGVmdCkgKlxuICAgICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tb25lLXB4LXJlbSwgI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDEpfSlcbiAgKTtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy10b3ApICpcbiAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW9uZS1weC1yZW0sICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxKX0pXG4gICk7XG59XG5cbi8vIGF1dG8td2lkdGggc2V0dGluZ3MgZm9yIGdyYXBoaWNzXG46aG9zdCguYXV0by13aWR0aCkge1xuICAtLXNiYi1pY29uLXN2Zy13aWR0aDogYXV0bztcblxuICBtYXgtd2lkdGg6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1tYXgtd2lkdGgpICpcbiAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW9uZS1weC1yZW0sICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxKX0pXG4gICk7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4vLyBHcmFwaGljIHNpemUgZm9yIG1heCBzcXVhcmUgZGltZW5zaW9uXG46aG9zdCguc2JiLXNyLWdyYXBoaWNfX2RpbWVuc2lvbi0tc3F1YXJlLWRpbSkge1xuICAkcGFkZGluZy1wZXJjZW50OiB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLXBhZGRpbmctcGVyY2VudCk7XG4gICRncmFwaGljLW1heC13aWR0aDogY2FsYyhcbiAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLW1heC13aWR0aCkgKlxuICAgICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tb25lLXB4LXJlbSwgI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDEpfSlcbiAgKTtcbiAgJGdyYXBoaWMtbWF4LWhlaWdodDogY2FsYyhcbiAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLW1heC1oZWlnaHQpICpcbiAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW9uZS1weC1yZW0sICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxKX0pXG4gICk7XG4gICRncmFwaGljLXdpZHRoOiBjYWxjKFxuICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtd2lkdGgpICpcbiAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW9uZS1weC1yZW0sICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxKX0pXG4gICk7XG4gICRncmFwaGljLWhlaWdodDogY2FsYyhcbiAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLWhlaWdodCkgKlxuICAgICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tb25lLXB4LXJlbSwgI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDEpfSlcbiAgKTtcblxuICAvLyBjYWxjdWxhdGUgbWF4IGF2YWlsYWJsZSBhcmVhIGRpbWVuc2lvblxuICAkcGFyZW50LWRpbTogY2FsYyhtaW4oJGdyYXBoaWMtd2lkdGgsICRncmFwaGljLWhlaWdodCkgKiAkcGFkZGluZy1wZXJjZW50KTtcbiAgJG1heC1wYXJlbnQtZGltOiBtaW4oJGdyYXBoaWMtbWF4LXdpZHRoLCAkZ3JhcGhpYy1tYXgtaGVpZ2h0KTtcbiAgJHJlc3VsdC1kaW06IG1pbigkcGFyZW50LWRpbSwgJG1heC1wYXJlbnQtZGltKTtcblxuICAvLyBTZXQgbWF4IGRpbWVuc2lvbiBmb3Igc3ZnIGljb25cbiAgLS1zYmItaWNvbi1zdmctd2lkdGg6ICN7JHJlc3VsdC1kaW19O1xuICAtLXNiYi1pY29uLXN2Zy1oZWlnaHQ6ICN7JHJlc3VsdC1kaW19O1xuXG4gIHdpZHRoOiAjeyRyZXN1bHQtZGltfTtcbiAgaGVpZ2h0OiAjeyRyZXN1bHQtZGltfTtcbn1cblxuLy8gaG92ZXIgc3RhdGUgd2l0aCBwb2ludGVyIGN1cnNvciBmb3Igc2VydmljZSBpY29ucyBhbmQgcG9wb3ZlclxuOmhvc3QoLnNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtLWN1cnNvci1wb2ludGVyKSB7XG4gIGN1cnNvcjogdmFyKC0tc2JiLWN1cnNvci1wb2ludGVyKTtcbn1cblxuLnNiYi1zci1pY29uLFxuLnNiYi1zci1ncmFwaGljIHtcbiAgd2lkdGg6IGluaGVyaXQ7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICByb3RhdGU6IGNhbGModmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1yb3RhdGlvbikgKiAxZGVnKTtcbn1cblxuLnNiYi1zci1pY29uIHtcbiAgLy8gb3ZlcnJpZGUgY29sb3IgZGlyZWN0bHkgc2V0IGluIHRoZSBTVkcgZmlsZSBjb21pbmcgZnJvbSBDRE5cbiAgY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpLCB2YXIoLS1zYmItY29sb3ItZ3JhcGhpdGUpKTtcbn1cblxuLnNiYi1zci1ncmFwaGljIHtcbiAgc3ZnIHtcbiAgICB3aWR0aDogY2xhbXAoMTAwJSwgMTAwJSwgMTAwJSk7XG4gICAgaGVpZ2h0OiBjbGFtcCgxMDAlLCAxMDAlLCAxMDAlKTtcblxuICAgIC5maXgtcm90YXRpb24taW52ZXJzZSB7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgICByb3RhdGU6IGNhbGModmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1pbnZlcnNlLXJvdGF0aW9uKSAqIDFkZWcpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICBzdmc6bm90KC5jb2xvci1pbW11dGFibGUpIHtcbiAgICAgIFtmaWxsXTpub3QoW2ZpbGw9J25vbmUnXSkge1xuICAgICAgICBmaWxsOiBjdXJyZW50Y29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5vLWJnIHtcbiAgICAgIGZpbGw6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgU2JiRWxlbWVudCB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcy5qcyc7XG5pbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBodG1sLCBpc1NlcnZlciwgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgY2xhc3NNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9jbGFzcy1tYXAuanMnO1xuXG5pbXBvcnQgeyBtYXBJY29uVG9TdmcgfSBmcm9tICcuLi9jb21tb24vbWFwcGVyLnRzJztcbmltcG9ydCB7IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24gfSBmcm9tICcuLi9jb21tb24vdHJhbnNsYXRpb25zLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLnNjc3M/aW5saW5lJztcblxuaW1wb3J0ICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9pY29uLmpzJztcblxuLyoqXG4gKiBPdXRwdXQgb25lIG9mIHRoZSBTVkcgZ3JhcGhpY3MgYmFzZWQgb24gaXRzIGNvZGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTZWF0UmVzZXJ2YXRpb25HcmFwaGljRWxlbWVudCBleHRlbmRzIFNiYkVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYyc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIC8qKiBOYW1lIG9mIHRoZSBTVkcgZ3JhcGhpYyB0byBiZSBkaXNwbGF5ZWQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICduYW1lJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbmFtZTogc3RyaW5nID0gJyc7XG5cbiAgLyoqIGlmIHRydWUsIHNjYWxlIHRoZSBncmFwaGljIGNvbnRlbnQgb2YgdGhlIGdpdmVuIGVsZW1lbnQgbm9uLXVuaWZvcm1seSBpZiBuZWNlc3NhcnkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3N0cmV0Y2gnLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzdHJldGNoOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQgfCBudWxsIHtcbiAgICBjb25zdCBzdmdPYmogPSBtYXBJY29uVG9TdmdbdGhpcy5uYW1lXTtcblxuICAgIGlmICghc3ZnT2JqPy5zdmcgJiYgIXN2Z09iaj8uc3ZnTmFtZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgPHNwYW5cbiAgICAgIGNsYXNzPVwiJHtjbGFzc01hcCh7XG4gICAgICAgICdzYmItc3ItaWNvbic6ICEhc3ZnT2JqLnN2Z05hbWUsXG4gICAgICAgICdzYmItc3ItZ3JhcGhpYyc6ICEhc3ZnT2JqLnN2ZyxcbiAgICAgIH0pfVwiXG4gICAgPlxuICAgICAgJHtzdmdPYmouc3ZnTmFtZVxuICAgICAgICA/IGh0bWxgIDxzYmItaWNvblxuICAgICAgICAgICAgbmFtZT1cIiR7c3ZnT2JqLnN2Z05hbWUgfHwgJyd9XCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIiR7Z2V0STE4blNlYXRSZXNlcnZhdGlvbihzdmdPYmouc3ZnTmFtZSwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCl9XCJcbiAgICAgICAgICA+PC9zYmItaWNvbj5gXG4gICAgICAgIDogaHRtbGAke3RoaXMuX2dldFN2Z0VsZW1lbnQoc3ZnT2JqLnN2ZyEpfWB9XG4gICAgPC9zcGFuPmA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRTdmdFbGVtZW50KHN2Zzogc3RyaW5nKTogRWxlbWVudCB8IG51bGwge1xuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIGNvbnN0IHBhcnNlciA9IG5ldyBET01QYXJzZXIoKTtcbiAgICAgIGNvbnN0IHN2Z1N0cmluZyA9IHN2ZyB8fCAnPHN2Zz48L3N2Zz4nO1xuICAgICAgY29uc3Qgc3ZnRWxtID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyhzdmdTdHJpbmcsICdpbWFnZS9zdmcreG1sJykuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgICBpZiAodGhpcy5zdHJldGNoICYmIHN2Z0VsbT8ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3N2ZycpIHtcbiAgICAgICAgc3ZnRWxtLnNldEF0dHJpYnV0ZSgncHJlc2VydmVBc3BlY3RSYXRpbycsICdub25lJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3ZnRWxtO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljJzogU2JiU2VhdFJlc2VydmF0aW9uR3JhcGhpY0VsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDa0JhLDBDQUFnQzttQkFBUzs7Ozs7OztjQUF6Qyx5Q0FBeUMsWUFBVTs7O0FBTzlDLFNBQUEsd0JBQUEsa0JBQUEsTUFBQSxvQkFBZSxHQUFFO0FBS2pCLFNBQUEsNEJBQUEsa0JBQUEsTUFBQSx3QkFBQSxFQUFBLGtCQUFBLE1BQUEsdUJBQW1CLE1BQUs7QUFFaEMsUUFBQSxhQUFTLGtCQUFBLE1BQUEsMkJBQUEsRUFBRyxJQUFJLHNCQUFzQixLQUFLOzs7O3VCQVRsRCxXQUFXLEVBQ1gsU0FBUyxFQUFFLFdBQVcsUUFBUSxDQUFDLENBQUE7MEJBSS9CLFdBQVcsRUFDWCxTQUFTO0lBQUUsV0FBVztJQUFXLE1BQU07SUFBUyxDQUFDLENBQUE7QUFKbEQsZ0JBQUEsTUFBQSxNQUFBLGtCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsVUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFJLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBSixPQUFJOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsb0JBQUEsd0JBQUE7QUFLcEIsZ0JBQUEsTUFBQSxNQUFBLHFCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsYUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFPLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBUCxVQUFPOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsdUJBQUEsMkJBQUE7Ozs7Ozs7OztBQVhTLFFBQUEsY0FBc0I7OztBQUMvQixRQUFBLFNBQXlCLENBQUMsaUJBQWlCLFVBQVUsaUNBQU0sQ0FBQzs7RUFLbkY7O0VBQUEsSUFBZ0IsT0FBSTtBQUFBLFVBQUEsTUFBQTs7RUFBcEIsSUFBZ0IsS0FBSSxPQUFBO0FBQUEsU0FBQSx3QkFBQTs7RUFLcEI7O0VBQUEsSUFBZ0IsVUFBTztBQUFBLFVBQUEsTUFBQTs7RUFBdkIsSUFBZ0IsUUFBTyxPQUFBO0FBQUEsU0FBQSwyQkFBQTs7RUFJSixTQUFNO0dBQ3ZCLE1BQU0sU0FBUyxhQUFhLEtBQUs7QUFFakMsT0FBSSxDQUFDLFFBQVEsT0FBTyxDQUFDLFFBQVEsUUFDM0IsUUFBTztBQUdULFVBQU8sSUFBSTtlQUNBLFNBQVM7SUFDaEIsZUFBZSxDQUFDLENBQUMsT0FBTztJQUN4QixrQkFBa0IsQ0FBQyxDQUFDLE9BQU87SUFDNUIsQ0FBQyxDQUFBOztRQUVBLE9BQU8sVUFDTCxJQUFJO29CQUNNLE9BQU8sV0FBVyxHQUFFOzswQkFFZCx1QkFBdUIsT0FBTyxTQUFTLEtBQUssVUFBVSxRQUFRLENBQUE7MEJBRTlFLElBQUksR0FBRyxLQUFLLGVBQWUsT0FBTyxJQUFLLEdBQUE7OztFQUl2QyxlQUFlLEtBQVc7QUFDaEMsT0FBSSxDQUFDLFVBQVU7SUFDYixNQUFNLFNBQVMsSUFBSSxXQUFXO0lBQzlCLE1BQU0sWUFBWSxPQUFPO0lBQ3pCLE1BQU0sU0FBUyxPQUFPLGdCQUFnQixXQUFXLGdCQUFnQixDQUFDO0FBQ2xFLFFBQUksS0FBSyxXQUFXLFFBQVEsU0FBUyxhQUFhLEtBQUssTUFDckQsUUFBTyxhQUFhLHVCQUF1QixPQUFPO0FBRXBELFdBQU87O0FBR1QsVUFBTyJ9