@sbb-esta/lyne-elements-experimental 1.3.0 → 1.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"pearl-chain.d.ts","sourceRoot":"","sources":["../../../../src/elements-experimental/pearl-chain/pearl-chain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEjF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAKhD,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAW3D;;GAEG;AACH,qBACa,oBAAqB,SAAQ,UAAU;IAClD,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD;;;;;;;OAOG;IAC+B,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC;IAE7D;;;OAGG;IACiE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE/F,2HAA2H;IAC3H,IACW,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAE5C;IACD,IAAW,GAAG,IAAI,IAAI,GAAG,IAAI,CAE5B;IACD,OAAO,CAAC,IAAI,CAAqB;IAEjC,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,eAAe;cAmBJ,MAAM,IAAI,cAAc;CAgJ5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,iBAAiB,EAAE,oBAAoB,CAAC;KACzC;CACF"}
1
+ {"version":3,"file":"pearl-chain.d.ts","sourceRoot":"","sources":["../../../../src/elements-experimental/pearl-chain/pearl-chain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEjF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAKhD,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAW3D;;GAEG;AACH,qBACa,oBAAqB,SAAQ,UAAU;IAClD,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD;;;;;;;OAOG;IAC+B,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC;IAE7D;;;OAGG;IACiE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE/F,2HAA2H;IAC3H,IACW,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAE5C;IACD,IAAW,GAAG,IAAI,IAAI,GAAG,IAAI,CAE5B;IACD,OAAO,CAAC,IAAI,CAAqB;IAEjC,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,eAAe;cAmBJ,MAAM,IAAI,cAAc;CA4I5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,iBAAiB,EAAE,oBAAoB,CAAC;KACzC;CACF"}
@@ -576,7 +576,7 @@ let SbbPearlChainElement = class extends LitElement {
576
576
  const legDepartureWithDelay = { time: departure, delay: ((_g = leg.departure) == null ? void 0 : _g.delay) ?? 0 };
577
577
  const legArrivalWithDelay = { time: arrival, delay: ((_h = leg.arrival) == null ? void 0 : _h.delay) ?? 0 };
578
578
  const status2 = this._getStatus(now, legDepartureWithDelay, legArrivalWithDelay);
579
- const legStatus = !cancelled && !skippedLeg && this._getStatus(now, legDepartureWithDelay, legArrivalWithDelay) && "sbb-pearl-chain__leg--" + status2;
579
+ const legStatus = !cancelled && !skippedLeg && "sbb-pearl-chain__leg--" + status2;
580
580
  const legStyle = () => {
581
581
  return {
582
582
  "--sbb-pearl-chain-leg-width": `${duration}%`,
@@ -616,4 +616,4 @@ SbbPearlChainElement = __decorateClass([
616
616
  export {
617
617
  SbbPearlChainElement
618
618
  };
619
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVhcmwtY2hhaW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc0FmdGVyLm1qcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc0JlZm9yZS5tanMiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3BlYXJsLWNoYWluL3BlYXJsLWNoYWluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5tanNcIjtcblxuLyoqXG4gKiBAbmFtZSBpc0FmdGVyXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IElzIHRoZSBmaXJzdCBkYXRlIGFmdGVyIHRoZSBzZWNvbmQgb25lP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGZpcnN0IGRhdGUgYWZ0ZXIgdGhlIHNlY29uZCBvbmU/XG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0aGF0IHNob3VsZCBiZSBhZnRlciB0aGUgb3RoZXIgb25lIHRvIHJldHVybiB0cnVlXG4gKiBAcGFyYW0gZGF0ZVRvQ29tcGFyZSAtIFRoZSBkYXRlIHRvIGNvbXBhcmUgd2l0aFxuICpcbiAqIEByZXR1cm5zIFRoZSBmaXJzdCBkYXRlIGlzIGFmdGVyIHRoZSBzZWNvbmQgZGF0ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJcyAxMCBKdWx5IDE5ODkgYWZ0ZXIgMTEgRmVicnVhcnkgMTk4Nz9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzQWZ0ZXIobmV3IERhdGUoMTk4OSwgNiwgMTApLCBuZXcgRGF0ZSgxOTg3LCAxLCAxMSkpXG4gKiAvLz0+IHRydWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQWZ0ZXIoZGF0ZSwgZGF0ZVRvQ29tcGFyZSkge1xuICBjb25zdCBfZGF0ZSA9IHRvRGF0ZShkYXRlKTtcbiAgY29uc3QgX2RhdGVUb0NvbXBhcmUgPSB0b0RhdGUoZGF0ZVRvQ29tcGFyZSk7XG4gIHJldHVybiBfZGF0ZS5nZXRUaW1lKCkgPiBfZGF0ZVRvQ29tcGFyZS5nZXRUaW1lKCk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNBZnRlcjtcbiIsImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5tanNcIjtcblxuLyoqXG4gKiBAbmFtZSBpc0JlZm9yZVxuICogQGNhdGVnb3J5IENvbW1vbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBJcyB0aGUgZmlyc3QgZGF0ZSBiZWZvcmUgdGhlIHNlY29uZCBvbmU/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBJcyB0aGUgZmlyc3QgZGF0ZSBiZWZvcmUgdGhlIHNlY29uZCBvbmU/XG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0aGF0IHNob3VsZCBiZSBiZWZvcmUgdGhlIG90aGVyIG9uZSB0byByZXR1cm4gdHJ1ZVxuICogQHBhcmFtIGRhdGVUb0NvbXBhcmUgLSBUaGUgZGF0ZSB0byBjb21wYXJlIHdpdGhcbiAqXG4gKiBAcmV0dXJucyBUaGUgZmlyc3QgZGF0ZSBpcyBiZWZvcmUgdGhlIHNlY29uZCBkYXRlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElzIDEwIEp1bHkgMTk4OSBiZWZvcmUgMTEgRmVicnVhcnkgMTk4Nz9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzQmVmb3JlKG5ldyBEYXRlKDE5ODksIDYsIDEwKSwgbmV3IERhdGUoMTk4NywgMSwgMTEpKVxuICogLy89PiBmYWxzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNCZWZvcmUoZGF0ZSwgZGF0ZVRvQ29tcGFyZSkge1xuICBjb25zdCBfZGF0ZSA9IHRvRGF0ZShkYXRlKTtcbiAgY29uc3QgX2RhdGVUb0NvbXBhcmUgPSB0b0RhdGUoZGF0ZVRvQ29tcGFyZSk7XG4gIHJldHVybiArX2RhdGUgPCArX2RhdGVUb0NvbXBhcmU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNCZWZvcmU7XG4iLCJpbXBvcnQgeyBkZWZhdWx0RGF0ZUFkYXB0ZXIgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2RhdGV0aW1lLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZUxpa2UgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2ludGVyZmFjZXMvdHlwZXMnO1xuaW1wb3J0IHsgYWRkTWludXRlcywgZGlmZmVyZW5jZUluTWludXRlcywgaXNBZnRlciwgaXNCZWZvcmUgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50LCBub3RoaW5nIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgc3R5bGVNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9zdHlsZS1tYXAuanMnO1xuXG5pbXBvcnQgeyByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nIH0gZnJvbSAnLi4vY29yZS9kYXRldGltZS5qcyc7XG5pbXBvcnQgdHlwZSB7IExlZywgUHRSaWRlTGVnIH0gZnJvbSAnLi4vY29yZS90aW1ldGFibGUuanMnO1xuaW1wb3J0IHsgaXNSaWRlTGVnIH0gZnJvbSAnLi4vY29yZS90aW1ldGFibGUuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9wZWFybC1jaGFpbi5zY3NzP2xpdCZpbmxpbmUnO1xuXG50eXBlIFN0YXR1cyA9ICdwcm9ncmVzcycgfCAnZnV0dXJlJyB8ICdwYXN0JztcbnR5cGUgVGltZSA9IHtcbiAgdGltZT86IERhdGU7XG4gIGRlbGF5OiBudW1iZXI7XG59O1xuXG4vKipcbiAqIEl0IHZpc3VhbGx5IGRpc3BsYXlzIGpvdXJuZXkgaW5mb3JtYXRpb24uXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItcGVhcmwtY2hhaW4nKVxuZXhwb3J0IGNsYXNzIFNiYlBlYXJsQ2hhaW5FbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIGxlZ3Mgb2YgdGhlIHBlYXJsLWNoYWluLlxuICAgKiBGb3JtYXQ6XG4gICAqIGB7XCJsZWdzXCI6IFt7XCJkdXJhdGlvblwiOiAyNX0sIC4uLl19YFxuICAgKiBgZHVyYXRpb25gIGluIG1pbnV0ZXMuIER1cmF0aW9uIG9mIHRoZSBsZWcgaXMgcmVsYXRpdmVcbiAgICogdG8gdGhlIHRvdGFsIHRyYXZlbCB0aW1lLiBFeGFtcGxlOiBkZXBhcnR1cmUgMTY6MzAsIGNoYW5nZSBhdCAxNjo0MCxcbiAgICogYXJyaXZhbCBhdCAxNzowMC4gU28gdGhlIGNoYW5nZSBzaG91bGQgaGF2ZSBhIGR1cmF0aW9uIG9mIDMzLjMzJS5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEFycmF5IH0pIHB1YmxpYyBsZWdzPzogKExlZyB8IFB0UmlkZUxlZylbXTtcblxuICAvKipcbiAgICogUGVyIGRlZmF1bHQsIHRoZSBjdXJyZW50IGxvY2F0aW9uIGhhcyBhIHB1bHNhdGluZyBhbmltYXRpb24uIFlvdSBjYW5cbiAgICogZGlzYWJsZSB0aGUgYW5pbWF0aW9uIHdpdGggdGhpcyBwcm9wZXJ0eS5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Rpc2FibGUtYW5pbWF0aW9uJywgdHlwZTogQm9vbGVhbiB9KSBwdWJsaWMgZGlzYWJsZUFuaW1hdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqIEEgY29uZmlndXJlZCBkYXRlIHdoaWNoIGFjdHMgYXMgdGhlIGN1cnJlbnQgZGF0ZSBpbnN0ZWFkIG9mIHRoZSByZWFsIGN1cnJlbnQgZGF0ZS4gUmVjb21tZW5kZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMuICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgbm93KHZhbHVlOiBTYmJEYXRlTGlrZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX25vdyA9IGRlZmF1bHREYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwoZGVmYXVsdERhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gIH1cbiAgcHVibGljIGdldCBub3coKTogRGF0ZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9ub3c7XG4gIH1cbiAgcHJpdmF0ZSBfbm93OiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfZ2V0QWxsRHVyYXRpb24obGVnczogUHRSaWRlTGVnW10pOiBudW1iZXIge1xuICAgIHJldHVybiBsZWdzPy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBsZWcpID0+IHtcbiAgICAgIGNvbnN0IGFycml2YWxOb1R6ID0gcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhsZWcuYXJyaXZhbD8udGltZSk7XG4gICAgICBjb25zdCBkZXBhcnR1cmVOb1R6ID0gcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhsZWcuZGVwYXJ0dXJlPy50aW1lKTtcbiAgICAgIGlmIChhcnJpdmFsTm9UeiAmJiBkZXBhcnR1cmVOb1R6KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgc3VtICtcbiAgICAgICAgICBkaWZmZXJlbmNlSW5NaW51dGVzKFxuICAgICAgICAgICAgcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhsZWcuYXJyaXZhbC50aW1lKSEsXG4gICAgICAgICAgICByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5kZXBhcnR1cmUudGltZSkhLFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdW07XG4gICAgfSwgMCk7XG4gIH1cblxuICBwcml2YXRlIF9pc0FsbENhbmNlbGxlZChsZWdzOiBQdFJpZGVMZWdbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBsZWdzPy5ldmVyeSgobGVnKSA9PiBsZWc/LnNlcnZpY2VKb3VybmV5Py5zZXJ2aWNlQWx0ZXJhdGlvbj8uY2FuY2VsbGVkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFJlbGF0aXZlRHVyYXRpb24obGVnczogUHRSaWRlTGVnW10sIGxlZzogUHRSaWRlTGVnKTogbnVtYmVyIHtcbiAgICBjb25zdCBhcnJpdmFsTm9UeiA9IHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmFycml2YWw/LnRpbWUpO1xuICAgIGNvbnN0IGRlcGFydHVyZU5vVHogPSByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5kZXBhcnR1cmU/LnRpbWUpO1xuICAgIGlmIChhcnJpdmFsTm9UeiAmJiBkZXBhcnR1cmVOb1R6KSB7XG4gICAgICBjb25zdCBkdXJhdGlvbiA9IGRpZmZlcmVuY2VJbk1pbnV0ZXMoXG4gICAgICAgIHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmFycml2YWwudGltZSkhLFxuICAgICAgICByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5kZXBhcnR1cmUudGltZSkhLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGFsbER1cmF0aW9ucyA9IHRoaXMuX2dldEFsbER1cmF0aW9uKGxlZ3MpO1xuXG4gICAgICBpZiAoYWxsRHVyYXRpb25zID09PSAwKSB7XG4gICAgICAgIHJldHVybiAxMDA7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoZHVyYXRpb24gLyBhbGxEdXJhdGlvbnMpICogMTAwO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFByb2dyZXNzKG5vdzogRGF0ZSwgc3RhcnQ/OiBUaW1lLCBlbmQ/OiBUaW1lKTogbnVtYmVyIHtcbiAgICBpZiAoIXN0YXJ0Py50aW1lIHx8ICFlbmQ/LnRpbWUpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0V2l0aERlbGF5ID0gYWRkTWludXRlcyhzdGFydC50aW1lLCBzdGFydC5kZWxheSA/PyAwKTtcbiAgICBjb25zdCBlbmRXaXRoRGVsYXkgPSBhZGRNaW51dGVzKGVuZC50aW1lLCBlbmQuZGVsYXkgPz8gMCk7XG4gICAgY29uc3QgdG90YWwgPSBkaWZmZXJlbmNlSW5NaW51dGVzKGVuZFdpdGhEZWxheSwgc3RhcnRXaXRoRGVsYXkpO1xuICAgIGNvbnN0IHByb2dyZXNzID0gZGlmZmVyZW5jZUluTWludXRlcyhub3csIHN0YXJ0V2l0aERlbGF5KTtcblxuICAgIHJldHVybiB0b3RhbCAmJiAocHJvZ3Jlc3MgLyB0b3RhbCkgKiAxMDA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRTdGF0dXMobm93OiBEYXRlLCBzdGFydD86IFRpbWUsIGVuZD86IFRpbWUpOiBTdGF0dXMge1xuICAgIGNvbnN0IHN0YXJ0V2l0aERlbGF5ID0gc3RhcnQgJiYgc3RhcnQudGltZSAmJiBhZGRNaW51dGVzKHN0YXJ0LnRpbWUsIHN0YXJ0LmRlbGF5ID8/IDApO1xuICAgIGNvbnN0IGVuZFdpdGhEZWxheSA9IGVuZCAmJiBlbmQudGltZSAmJiBhZGRNaW51dGVzKGVuZC50aW1lLCBlbmQuZGVsYXkgPz8gMCk7XG5cbiAgICBpZiAoXG4gICAgICBzdGFydFdpdGhEZWxheSAmJlxuICAgICAgaXNCZWZvcmUoc3RhcnRXaXRoRGVsYXksIG5vdykgJiZcbiAgICAgIGVuZFdpdGhEZWxheSAmJlxuICAgICAgaXNBZnRlcihlbmRXaXRoRGVsYXksIG5vdylcbiAgICApIHtcbiAgICAgIHJldHVybiAncHJvZ3Jlc3MnO1xuICAgIH0gZWxzZSBpZiAoZW5kV2l0aERlbGF5ICYmIGlzQmVmb3JlKGVuZFdpdGhEZWxheSwgbm93KSkge1xuICAgICAgcmV0dXJuICdwYXN0JztcbiAgICB9XG4gICAgcmV0dXJuICdmdXR1cmUnO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyUG9zaXRpb24obm93OiBEYXRlLCBzdGFydD86IFRpbWUsIGVuZD86IFRpbWUpOiBUZW1wbGF0ZVJlc3VsdCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgY3VycmVudFBvc2l0aW9uID0gdGhpcy5fZ2V0UHJvZ3Jlc3Mobm93LCBzdGFydCwgZW5kKTtcbiAgICBpZiAoY3VycmVudFBvc2l0aW9uIDwgMCAmJiBjdXJyZW50UG9zaXRpb24gPiAxMDApIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBzdGF0dXNTdHlsZSA9ICgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICctLXNiYi1wZWFybC1jaGFpbi1zdGF0dXMtcG9zaXRpb24nOiBgJHtjdXJyZW50UG9zaXRpb259JWAsXG4gICAgICAgIC4uLihjdXJyZW50UG9zaXRpb24gPj0gNTAgPyB7IHRyYW5zZm9ybTogYHRyYW5zbGF0ZVgoLTEwMCUpYCB9IDoge30pLFxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYW5pbWF0aW9uID0gdGhpcy5kaXNhYmxlQW5pbWF0aW9uID8gJ3NiYi1wZWFybC1jaGFpbl9fcG9zaXRpb24tLW5vLWFuaW1hdGlvbicgOiAnJztcblxuICAgIHJldHVybiBodG1sYDxzcGFuXG4gICAgICBzdHlsZT0ke3N0eWxlTWFwKHN0YXR1c1N0eWxlKCkpfVxuICAgICAgY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX3Bvc2l0aW9uICR7YW5pbWF0aW9ufVwiXG4gICAgPjwvc3Bhbj5gO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3Qgbm93ID0gdGhpcy5ub3cgPz8gbmV3IERhdGUoKTtcblxuICAgIGNvbnN0IHJpZGVMZWdzOiBQdFJpZGVMZWdbXSA9IHRoaXMubGVncz8uZmlsdGVyKChsZWcpID0+IGlzUmlkZUxlZyhsZWcpKSBhcyBQdFJpZGVMZWdbXTtcblxuICAgIGNvbnN0IGRlcGFydHVyZVRpbWUgPVxuICAgICAgcmlkZUxlZ3M/Lmxlbmd0aCAmJiByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKHJpZGVMZWdzWzBdPy5kZXBhcnR1cmU/LnRpbWUpO1xuICAgIGNvbnN0IGRlcGFydHVyZVdpdGhEZWxheSA9IGRlcGFydHVyZVRpbWUgJiYge1xuICAgICAgdGltZTogZGVwYXJ0dXJlVGltZSxcbiAgICAgIGRlbGF5OiByaWRlTGVnc1swXS5kZXBhcnR1cmUuZGVsYXkgPz8gMCxcbiAgICB9O1xuXG4gICAgY29uc3QgYXJyaXZhbFRpbWUgPVxuICAgICAgcmlkZUxlZ3M/Lmxlbmd0aCAmJlxuICAgICAgcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhyaWRlTGVnc1tyaWRlTGVncy5sZW5ndGggLSAxXS5hcnJpdmFsPy50aW1lKTtcbiAgICBjb25zdCBhcnJpdmFsVGltZURlbGF5ID0gYXJyaXZhbFRpbWUgJiYge1xuICAgICAgdGltZTogYXJyaXZhbFRpbWUsXG4gICAgICBkZWxheTogcmlkZUxlZ3NbcmlkZUxlZ3MubGVuZ3RoIC0gMV0/LmFycml2YWwuZGVsYXkgPz8gMCxcbiAgICB9O1xuXG4gICAgY29uc3QgZGVwYXJ0dXJlTm90U2VydmljZWQgPSAoKCk6IHN0cmluZyA9PiB7XG4gICAgICByZXR1cm4gcmlkZUxlZ3MgJiZcbiAgICAgICAgcmlkZUxlZ3NbMF0/LnNlcnZpY2VKb3VybmV5Py5zdG9wUG9pbnRzICYmXG4gICAgICAgIHJpZGVMZWdzWzBdPy5zZXJ2aWNlSm91cm5leT8uc3RvcFBvaW50c1swXS5zdG9wU3RhdHVzID09PSAnTk9UX1NFUlZJQ0VEJ1xuICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW4tLWRlcGFydHVyZS1za2lwcGVkJ1xuICAgICAgICA6ICcnO1xuICAgIH0pKCk7XG5cbiAgICBjb25zdCBhcnJpdmFsTm90U2VydmljZWQgPSAoKCk6IHN0cmluZyA9PiB7XG4gICAgICBjb25zdCBsYXN0TGVnID0gcmlkZUxlZ3MgJiYgcmlkZUxlZ3NbcmlkZUxlZ3MubGVuZ3RoIC0gMV07XG4gICAgICBjb25zdCBzdG9wcyA9IGxhc3RMZWcgJiYgbGFzdExlZy5zZXJ2aWNlSm91cm5leT8uc3RvcFBvaW50cztcblxuICAgICAgcmV0dXJuIHN0b3BzICYmIHN0b3BzW3N0b3BzLmxlbmd0aCAtIDFdLnN0b3BTdGF0dXMgPT09ICdOT1RfU0VSVklDRUQnXG4gICAgICAgID8gJ3NiYi1wZWFybC1jaGFpbi0tYXJyaXZhbC1za2lwcGVkJ1xuICAgICAgICA6ICcnO1xuICAgIH0pKCk7XG5cbiAgICBjb25zdCBkZXBhcnR1cmVDYW5jZWxDbGFzcyA9ICgoKTogc3RyaW5nID0+IHtcbiAgICAgIHJldHVybiByaWRlTGVncyAmJiByaWRlTGVnc1swXT8uc2VydmljZUpvdXJuZXk/LnNlcnZpY2VBbHRlcmF0aW9uPy5jYW5jZWxsZWRcbiAgICAgICAgPyAnc2JiLXBlYXJsLWNoYWluLS1kZXBhcnR1cmUtZGlzcnVwdGlvbidcbiAgICAgICAgOiAnJztcbiAgICB9KSgpO1xuXG4gICAgY29uc3QgYXJyaXZhbENhbmNlbENsYXNzID0gKCgpOiBzdHJpbmcgPT4ge1xuICAgICAgcmV0dXJuIHJpZGVMZWdzICYmIHJpZGVMZWdzW3JpZGVMZWdzLmxlbmd0aCAtIDFdPy5zZXJ2aWNlSm91cm5leT8uc2VydmljZUFsdGVyYXRpb24/LmNhbmNlbGxlZFxuICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW4tLWFycml2YWwtZGlzcnVwdGlvbidcbiAgICAgICAgOiAnJztcbiAgICB9KSgpO1xuXG4gICAgY29uc3Qgc3RhdHVzID1cbiAgICAgIGRlcGFydHVyZVdpdGhEZWxheSAmJlxuICAgICAgYXJyaXZhbFRpbWVEZWxheSAmJlxuICAgICAgdGhpcy5fZ2V0U3RhdHVzKG5vdywgZGVwYXJ0dXJlV2l0aERlbGF5LCBhcnJpdmFsVGltZURlbGF5KTtcblxuICAgIGNvbnN0IHN0YXR1c0NsYXNzRGVwYXJ0dXJlID1cbiAgICAgIHJpZGVMZWdzICYmIHN0YXR1cyAmJiAhZGVwYXJ0dXJlQ2FuY2VsQ2xhc3MgPyAnc2JiLXBlYXJsLWNoYWluX19idWxsZXQtLScgKyBzdGF0dXMgOiAnJztcblxuICAgIGNvbnN0IHN0YXR1c0NsYXNzQXJyaXZhbCA9XG4gICAgICByaWRlTGVncyAmJiBzdGF0dXMgJiYgIWFycml2YWxDYW5jZWxDbGFzc1xuICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW5fX2J1bGxldC0tJyArIHRoaXMuX2dldFN0YXR1cyhub3csIHVuZGVmaW5lZCwgYXJyaXZhbFRpbWVEZWxheSlcbiAgICAgICAgOiAnJztcblxuICAgIGlmICh0aGlzLl9pc0FsbENhbmNlbGxlZChyaWRlTGVncykpIHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXBlYXJsLWNoYWluXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX2J1bGxldCBzYmItcGVhcmwtY2hhaW4tLWRlcGFydHVyZS1kaXNydXB0aW9uXCI+PC9zcGFuPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX2xlZyBzYmItcGVhcmwtY2hhaW5fX2xlZy0tZGlzcnVwdGlvblwiPjwvZGl2PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXBlYXJsLWNoYWluX19idWxsZXQgc2JiLXBlYXJsLWNoYWluLS1kZXBhcnR1cmUtZGlzcnVwdGlvblwiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1wZWFybC1jaGFpblwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwic2JiLXBlYXJsLWNoYWluX19idWxsZXQgJHtzdGF0dXNDbGFzc0RlcGFydHVyZX0gJHtkZXBhcnR1cmVOb3RTZXJ2aWNlZH0gJHtkZXBhcnR1cmVDYW5jZWxDbGFzc31cIlxuICAgICAgICA+PC9zcGFuPlxuICAgICAgICAke3JpZGVMZWdzPy5tYXAoKGxlZzogUHRSaWRlTGVnLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBzdG9wUG9pbnRzLCBzZXJ2aWNlQWx0ZXJhdGlvbiB9ID0gbGVnPy5zZXJ2aWNlSm91cm5leSB8fCB7fTtcblxuICAgICAgICAgIGNvbnN0IGR1cmF0aW9uID0gdGhpcy5fZ2V0UmVsYXRpdmVEdXJhdGlvbihyaWRlTGVncywgbGVnKTtcbiAgICAgICAgICBjb25zdCBkZXBhcnR1cmUgPSByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5kZXBhcnR1cmU/LnRpbWUpO1xuICAgICAgICAgIGNvbnN0IGFycml2YWwgPSByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5hcnJpdmFsPy50aW1lKTtcblxuICAgICAgICAgIGNvbnN0IGlzQXJyaXZhbE5vdFNlcnZpY2VkID1cbiAgICAgICAgICAgIHN0b3BQb2ludHMgJiYgc3RvcFBvaW50c1tzdG9wUG9pbnRzLmxlbmd0aCAtIDFdPy5zdG9wU3RhdHVzID09PSAnTk9UX1NFUlZJQ0VEJztcbiAgICAgICAgICBjb25zdCBpc0Fycml2YWxQbGFubmVkID1cbiAgICAgICAgICAgIHN0b3BQb2ludHMgJiYgc3RvcFBvaW50c1tzdG9wUG9pbnRzLmxlbmd0aCAtIDFdPy5zdG9wU3RhdHVzID09PSAnUExBTk5FRCc7XG4gICAgICAgICAgY29uc3QgaXNEZXBhcnR1cmVOb3RTZXJ2aWNlZCA9IHN0b3BQb2ludHMgJiYgc3RvcFBvaW50c1swXT8uc3RvcFN0YXR1cyA9PT0gJ05PVF9TRVJWSUNFRCc7XG5cbiAgICAgICAgICBjb25zdCBzdG9wUG9pbnRzQmVmb3JlID0gaW5kZXggPiAwICYmIHJpZGVMZWdzW2luZGV4IC0gMV0uc2VydmljZUpvdXJuZXkuc3RvcFBvaW50cztcbiAgICAgICAgICBjb25zdCBpc0JlZm9yZUxlZ0Fycml2YWxOb3RTZXJ2aWNlZCA9XG4gICAgICAgICAgICBzdG9wUG9pbnRzQmVmb3JlICYmXG4gICAgICAgICAgICBzdG9wUG9pbnRzQmVmb3JlW3N0b3BQb2ludHNCZWZvcmUubGVuZ3RoIC0gMV0/LnN0b3BTdGF0dXMgPT09ICdOT1RfU0VSVklDRUQnO1xuXG4gICAgICAgICAgY29uc3Qgc2tpcHBlZExlZyA9XG4gICAgICAgICAgICBpc0Fycml2YWxOb3RTZXJ2aWNlZCB8fCAoaXNEZXBhcnR1cmVOb3RTZXJ2aWNlZCAmJiBpc0Fycml2YWxQbGFubmVkKVxuICAgICAgICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW5fX2xlZy0tc2tpcHBlZCdcbiAgICAgICAgICAgICAgOiAnJztcbiAgICAgICAgICBjb25zdCBkZXBhcnR1cmVTa2lwcGVkQnVsbGV0ID1cbiAgICAgICAgICAgIGlzRGVwYXJ0dXJlTm90U2VydmljZWQgfHwgaXNCZWZvcmVMZWdBcnJpdmFsTm90U2VydmljZWRcbiAgICAgICAgICAgICAgPyAnc2JiLXBlYXJsLWNoYWluX19zdG9wLS1kZXBhcnR1cmUtc2tpcHBlZCdcbiAgICAgICAgICAgICAgOiAnJztcblxuICAgICAgICAgIGNvbnN0IGNhbmNlbGxlZCA9IHNlcnZpY2VBbHRlcmF0aW9uPy5jYW5jZWxsZWQgPyAnc2JiLXBlYXJsLWNoYWluX19sZWctLWRpc3J1cHRpb24nIDogJyc7XG5cbiAgICAgICAgICBjb25zdCBsZWdEZXBhcnR1cmVXaXRoRGVsYXkgPSB7IHRpbWU6IGRlcGFydHVyZSwgZGVsYXk6IGxlZy5kZXBhcnR1cmU/LmRlbGF5ID8/IDAgfTtcbiAgICAgICAgICBjb25zdCBsZWdBcnJpdmFsV2l0aERlbGF5ID0geyB0aW1lOiBhcnJpdmFsLCBkZWxheTogbGVnLmFycml2YWw/LmRlbGF5ID8/IDAgfTtcbiAgICAgICAgICBjb25zdCBzdGF0dXMgPSB0aGlzLl9nZXRTdGF0dXMobm93LCBsZWdEZXBhcnR1cmVXaXRoRGVsYXksIGxlZ0Fycml2YWxXaXRoRGVsYXkpO1xuXG4gICAgICAgICAgY29uc3QgbGVnU3RhdHVzID1cbiAgICAgICAgICAgICFjYW5jZWxsZWQgJiZcbiAgICAgICAgICAgICFza2lwcGVkTGVnICYmXG4gICAgICAgICAgICB0aGlzLl9nZXRTdGF0dXMobm93LCBsZWdEZXBhcnR1cmVXaXRoRGVsYXksIGxlZ0Fycml2YWxXaXRoRGVsYXkpICYmXG4gICAgICAgICAgICAnc2JiLXBlYXJsLWNoYWluX19sZWctLScgKyBzdGF0dXM7XG4gICAgICAgICAgY29uc3QgbGVnU3R5bGUgPSAoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAnLS1zYmItcGVhcmwtY2hhaW4tbGVnLXdpZHRoJzogYCR7ZHVyYXRpb259JWAsXG4gICAgICAgICAgICAgIC4uLihzdGF0dXMgPT09ICdwcm9ncmVzcycgJiYgIWNhbmNlbGxlZCAmJiAhc2tpcHBlZExlZ1xuICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAnLS1zYmItcGVhcmwtY2hhaW4tbGVnLXN0YXR1cyc6IGAke3RoaXMuX2dldFByb2dyZXNzKG5vdywgbGVnRGVwYXJ0dXJlV2l0aERlbGF5LCBsZWdBcnJpdmFsV2l0aERlbGF5KX0lYCxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJldHVybiBodG1sYCA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fbGVnICR7bGVnU3RhdHVzIHx8ICcnfSAke2NhbmNlbGxlZH0gJHtza2lwcGVkTGVnfVwiXG4gICAgICAgICAgICBzdHlsZT0ke3N0eWxlTWFwKGxlZ1N0eWxlKCkpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgICR7aW5kZXggPiAwICYmIGluZGV4IDwgcmlkZUxlZ3MubGVuZ3RoXG4gICAgICAgICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fc3RvcCAke2RlcGFydHVyZVNraXBwZWRCdWxsZXR9XCI+PC9zcGFuPmBcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgJHtzdGF0dXMgPT09ICdwcm9ncmVzcycgJiYgIWNhbmNlbGxlZCAmJiAhc2tpcHBlZExlZ1xuICAgICAgICAgICAgICA/IHRoaXMuX3JlbmRlclBvc2l0aW9uKG5vdywgbGVnRGVwYXJ0dXJlV2l0aERlbGF5LCBsZWdBcnJpdmFsV2l0aERlbGF5KVxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgfSl9XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX2J1bGxldCAke3N0YXR1c0NsYXNzQXJyaXZhbH0gJHthcnJpdmFsTm90U2VydmljZWR9ICR7YXJyaXZhbENhbmNlbENsYXNzfVwiXG4gICAgICAgID48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItcGVhcmwtY2hhaW4nOiBTYmJQZWFybENoYWluRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIl9iIiwiX2EiLCJfZCIsIl9jIiwiX2UiLCJzdGF0dXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBc0JPLFNBQVMsUUFBUSxNQUFNLGVBQWU7QUFDM0MsUUFBTSxRQUFRLE9BQU8sSUFBSTtBQUN6QixRQUFNLGlCQUFpQixPQUFPLGFBQWE7QUFDM0MsU0FBTyxNQUFNLFFBQU8sSUFBSyxlQUFlLFFBQU87QUFDakQ7QUNKTyxTQUFTLFNBQVMsTUFBTSxlQUFlO0FBQzVDLFFBQU0sUUFBUSxPQUFPLElBQUk7QUFDekIsUUFBTSxpQkFBaUIsT0FBTyxhQUFhO0FBQzNDLFNBQU8sQ0FBQyxRQUFRLENBQUM7QUFDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNGYSxJQUFBLHVCQUFOLGNBQW1DLFdBQVc7QUFBQSxFQUE5QyxjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUEyQkwsU0FBUSxPQUFvQjtBQUFBLEVBQUE7QUFBQSxFQU41QixJQUFXLElBQUksT0FB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
619
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVhcmwtY2hhaW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc0FmdGVyLm1qcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc0JlZm9yZS5tanMiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3BlYXJsLWNoYWluL3BlYXJsLWNoYWluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5tanNcIjtcblxuLyoqXG4gKiBAbmFtZSBpc0FmdGVyXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IElzIHRoZSBmaXJzdCBkYXRlIGFmdGVyIHRoZSBzZWNvbmQgb25lP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGZpcnN0IGRhdGUgYWZ0ZXIgdGhlIHNlY29uZCBvbmU/XG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0aGF0IHNob3VsZCBiZSBhZnRlciB0aGUgb3RoZXIgb25lIHRvIHJldHVybiB0cnVlXG4gKiBAcGFyYW0gZGF0ZVRvQ29tcGFyZSAtIFRoZSBkYXRlIHRvIGNvbXBhcmUgd2l0aFxuICpcbiAqIEByZXR1cm5zIFRoZSBmaXJzdCBkYXRlIGlzIGFmdGVyIHRoZSBzZWNvbmQgZGF0ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJcyAxMCBKdWx5IDE5ODkgYWZ0ZXIgMTEgRmVicnVhcnkgMTk4Nz9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzQWZ0ZXIobmV3IERhdGUoMTk4OSwgNiwgMTApLCBuZXcgRGF0ZSgxOTg3LCAxLCAxMSkpXG4gKiAvLz0+IHRydWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQWZ0ZXIoZGF0ZSwgZGF0ZVRvQ29tcGFyZSkge1xuICBjb25zdCBfZGF0ZSA9IHRvRGF0ZShkYXRlKTtcbiAgY29uc3QgX2RhdGVUb0NvbXBhcmUgPSB0b0RhdGUoZGF0ZVRvQ29tcGFyZSk7XG4gIHJldHVybiBfZGF0ZS5nZXRUaW1lKCkgPiBfZGF0ZVRvQ29tcGFyZS5nZXRUaW1lKCk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNBZnRlcjtcbiIsImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5tanNcIjtcblxuLyoqXG4gKiBAbmFtZSBpc0JlZm9yZVxuICogQGNhdGVnb3J5IENvbW1vbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBJcyB0aGUgZmlyc3QgZGF0ZSBiZWZvcmUgdGhlIHNlY29uZCBvbmU/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBJcyB0aGUgZmlyc3QgZGF0ZSBiZWZvcmUgdGhlIHNlY29uZCBvbmU/XG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0aGF0IHNob3VsZCBiZSBiZWZvcmUgdGhlIG90aGVyIG9uZSB0byByZXR1cm4gdHJ1ZVxuICogQHBhcmFtIGRhdGVUb0NvbXBhcmUgLSBUaGUgZGF0ZSB0byBjb21wYXJlIHdpdGhcbiAqXG4gKiBAcmV0dXJucyBUaGUgZmlyc3QgZGF0ZSBpcyBiZWZvcmUgdGhlIHNlY29uZCBkYXRlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElzIDEwIEp1bHkgMTk4OSBiZWZvcmUgMTEgRmVicnVhcnkgMTk4Nz9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzQmVmb3JlKG5ldyBEYXRlKDE5ODksIDYsIDEwKSwgbmV3IERhdGUoMTk4NywgMSwgMTEpKVxuICogLy89PiBmYWxzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNCZWZvcmUoZGF0ZSwgZGF0ZVRvQ29tcGFyZSkge1xuICBjb25zdCBfZGF0ZSA9IHRvRGF0ZShkYXRlKTtcbiAgY29uc3QgX2RhdGVUb0NvbXBhcmUgPSB0b0RhdGUoZGF0ZVRvQ29tcGFyZSk7XG4gIHJldHVybiArX2RhdGUgPCArX2RhdGVUb0NvbXBhcmU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNCZWZvcmU7XG4iLCJpbXBvcnQgeyBkZWZhdWx0RGF0ZUFkYXB0ZXIgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2RhdGV0aW1lLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZUxpa2UgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2ludGVyZmFjZXMvdHlwZXMnO1xuaW1wb3J0IHsgYWRkTWludXRlcywgZGlmZmVyZW5jZUluTWludXRlcywgaXNBZnRlciwgaXNCZWZvcmUgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50LCBub3RoaW5nIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgc3R5bGVNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9zdHlsZS1tYXAuanMnO1xuXG5pbXBvcnQgeyByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nIH0gZnJvbSAnLi4vY29yZS9kYXRldGltZS5qcyc7XG5pbXBvcnQgdHlwZSB7IExlZywgUHRSaWRlTGVnIH0gZnJvbSAnLi4vY29yZS90aW1ldGFibGUuanMnO1xuaW1wb3J0IHsgaXNSaWRlTGVnIH0gZnJvbSAnLi4vY29yZS90aW1ldGFibGUuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9wZWFybC1jaGFpbi5zY3NzP2xpdCZpbmxpbmUnO1xuXG50eXBlIFN0YXR1cyA9ICdwcm9ncmVzcycgfCAnZnV0dXJlJyB8ICdwYXN0JztcbnR5cGUgVGltZSA9IHtcbiAgdGltZT86IERhdGU7XG4gIGRlbGF5OiBudW1iZXI7XG59O1xuXG4vKipcbiAqIEl0IHZpc3VhbGx5IGRpc3BsYXlzIGpvdXJuZXkgaW5mb3JtYXRpb24uXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItcGVhcmwtY2hhaW4nKVxuZXhwb3J0IGNsYXNzIFNiYlBlYXJsQ2hhaW5FbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIGxlZ3Mgb2YgdGhlIHBlYXJsLWNoYWluLlxuICAgKiBGb3JtYXQ6XG4gICAqIGB7XCJsZWdzXCI6IFt7XCJkdXJhdGlvblwiOiAyNX0sIC4uLl19YFxuICAgKiBgZHVyYXRpb25gIGluIG1pbnV0ZXMuIER1cmF0aW9uIG9mIHRoZSBsZWcgaXMgcmVsYXRpdmVcbiAgICogdG8gdGhlIHRvdGFsIHRyYXZlbCB0aW1lLiBFeGFtcGxlOiBkZXBhcnR1cmUgMTY6MzAsIGNoYW5nZSBhdCAxNjo0MCxcbiAgICogYXJyaXZhbCBhdCAxNzowMC4gU28gdGhlIGNoYW5nZSBzaG91bGQgaGF2ZSBhIGR1cmF0aW9uIG9mIDMzLjMzJS5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEFycmF5IH0pIHB1YmxpYyBsZWdzPzogKExlZyB8IFB0UmlkZUxlZylbXTtcblxuICAvKipcbiAgICogUGVyIGRlZmF1bHQsIHRoZSBjdXJyZW50IGxvY2F0aW9uIGhhcyBhIHB1bHNhdGluZyBhbmltYXRpb24uIFlvdSBjYW5cbiAgICogZGlzYWJsZSB0aGUgYW5pbWF0aW9uIHdpdGggdGhpcyBwcm9wZXJ0eS5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Rpc2FibGUtYW5pbWF0aW9uJywgdHlwZTogQm9vbGVhbiB9KSBwdWJsaWMgZGlzYWJsZUFuaW1hdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqIEEgY29uZmlndXJlZCBkYXRlIHdoaWNoIGFjdHMgYXMgdGhlIGN1cnJlbnQgZGF0ZSBpbnN0ZWFkIG9mIHRoZSByZWFsIGN1cnJlbnQgZGF0ZS4gUmVjb21tZW5kZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMuICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgbm93KHZhbHVlOiBTYmJEYXRlTGlrZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX25vdyA9IGRlZmF1bHREYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwoZGVmYXVsdERhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gIH1cbiAgcHVibGljIGdldCBub3coKTogRGF0ZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9ub3c7XG4gIH1cbiAgcHJpdmF0ZSBfbm93OiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfZ2V0QWxsRHVyYXRpb24obGVnczogUHRSaWRlTGVnW10pOiBudW1iZXIge1xuICAgIHJldHVybiBsZWdzPy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBsZWcpID0+IHtcbiAgICAgIGNvbnN0IGFycml2YWxOb1R6ID0gcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhsZWcuYXJyaXZhbD8udGltZSk7XG4gICAgICBjb25zdCBkZXBhcnR1cmVOb1R6ID0gcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhsZWcuZGVwYXJ0dXJlPy50aW1lKTtcbiAgICAgIGlmIChhcnJpdmFsTm9UeiAmJiBkZXBhcnR1cmVOb1R6KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgc3VtICtcbiAgICAgICAgICBkaWZmZXJlbmNlSW5NaW51dGVzKFxuICAgICAgICAgICAgcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhsZWcuYXJyaXZhbC50aW1lKSEsXG4gICAgICAgICAgICByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5kZXBhcnR1cmUudGltZSkhLFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdW07XG4gICAgfSwgMCk7XG4gIH1cblxuICBwcml2YXRlIF9pc0FsbENhbmNlbGxlZChsZWdzOiBQdFJpZGVMZWdbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBsZWdzPy5ldmVyeSgobGVnKSA9PiBsZWc/LnNlcnZpY2VKb3VybmV5Py5zZXJ2aWNlQWx0ZXJhdGlvbj8uY2FuY2VsbGVkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFJlbGF0aXZlRHVyYXRpb24obGVnczogUHRSaWRlTGVnW10sIGxlZzogUHRSaWRlTGVnKTogbnVtYmVyIHtcbiAgICBjb25zdCBhcnJpdmFsTm9UeiA9IHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmFycml2YWw/LnRpbWUpO1xuICAgIGNvbnN0IGRlcGFydHVyZU5vVHogPSByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5kZXBhcnR1cmU/LnRpbWUpO1xuICAgIGlmIChhcnJpdmFsTm9UeiAmJiBkZXBhcnR1cmVOb1R6KSB7XG4gICAgICBjb25zdCBkdXJhdGlvbiA9IGRpZmZlcmVuY2VJbk1pbnV0ZXMoXG4gICAgICAgIHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmFycml2YWwudGltZSkhLFxuICAgICAgICByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5kZXBhcnR1cmUudGltZSkhLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGFsbER1cmF0aW9ucyA9IHRoaXMuX2dldEFsbER1cmF0aW9uKGxlZ3MpO1xuXG4gICAgICBpZiAoYWxsRHVyYXRpb25zID09PSAwKSB7XG4gICAgICAgIHJldHVybiAxMDA7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoZHVyYXRpb24gLyBhbGxEdXJhdGlvbnMpICogMTAwO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFByb2dyZXNzKG5vdzogRGF0ZSwgc3RhcnQ/OiBUaW1lLCBlbmQ/OiBUaW1lKTogbnVtYmVyIHtcbiAgICBpZiAoIXN0YXJ0Py50aW1lIHx8ICFlbmQ/LnRpbWUpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0V2l0aERlbGF5ID0gYWRkTWludXRlcyhzdGFydC50aW1lLCBzdGFydC5kZWxheSA/PyAwKTtcbiAgICBjb25zdCBlbmRXaXRoRGVsYXkgPSBhZGRNaW51dGVzKGVuZC50aW1lLCBlbmQuZGVsYXkgPz8gMCk7XG4gICAgY29uc3QgdG90YWwgPSBkaWZmZXJlbmNlSW5NaW51dGVzKGVuZFdpdGhEZWxheSwgc3RhcnRXaXRoRGVsYXkpO1xuICAgIGNvbnN0IHByb2dyZXNzID0gZGlmZmVyZW5jZUluTWludXRlcyhub3csIHN0YXJ0V2l0aERlbGF5KTtcblxuICAgIHJldHVybiB0b3RhbCAmJiAocHJvZ3Jlc3MgLyB0b3RhbCkgKiAxMDA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRTdGF0dXMobm93OiBEYXRlLCBzdGFydD86IFRpbWUsIGVuZD86IFRpbWUpOiBTdGF0dXMge1xuICAgIGNvbnN0IHN0YXJ0V2l0aERlbGF5ID0gc3RhcnQgJiYgc3RhcnQudGltZSAmJiBhZGRNaW51dGVzKHN0YXJ0LnRpbWUsIHN0YXJ0LmRlbGF5ID8/IDApO1xuICAgIGNvbnN0IGVuZFdpdGhEZWxheSA9IGVuZCAmJiBlbmQudGltZSAmJiBhZGRNaW51dGVzKGVuZC50aW1lLCBlbmQuZGVsYXkgPz8gMCk7XG5cbiAgICBpZiAoXG4gICAgICBzdGFydFdpdGhEZWxheSAmJlxuICAgICAgaXNCZWZvcmUoc3RhcnRXaXRoRGVsYXksIG5vdykgJiZcbiAgICAgIGVuZFdpdGhEZWxheSAmJlxuICAgICAgaXNBZnRlcihlbmRXaXRoRGVsYXksIG5vdylcbiAgICApIHtcbiAgICAgIHJldHVybiAncHJvZ3Jlc3MnO1xuICAgIH0gZWxzZSBpZiAoZW5kV2l0aERlbGF5ICYmIGlzQmVmb3JlKGVuZFdpdGhEZWxheSwgbm93KSkge1xuICAgICAgcmV0dXJuICdwYXN0JztcbiAgICB9XG4gICAgcmV0dXJuICdmdXR1cmUnO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyUG9zaXRpb24obm93OiBEYXRlLCBzdGFydD86IFRpbWUsIGVuZD86IFRpbWUpOiBUZW1wbGF0ZVJlc3VsdCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgY3VycmVudFBvc2l0aW9uID0gdGhpcy5fZ2V0UHJvZ3Jlc3Mobm93LCBzdGFydCwgZW5kKTtcbiAgICBpZiAoY3VycmVudFBvc2l0aW9uIDwgMCAmJiBjdXJyZW50UG9zaXRpb24gPiAxMDApIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBzdGF0dXNTdHlsZSA9ICgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICctLXNiYi1wZWFybC1jaGFpbi1zdGF0dXMtcG9zaXRpb24nOiBgJHtjdXJyZW50UG9zaXRpb259JWAsXG4gICAgICAgIC4uLihjdXJyZW50UG9zaXRpb24gPj0gNTAgPyB7IHRyYW5zZm9ybTogYHRyYW5zbGF0ZVgoLTEwMCUpYCB9IDoge30pLFxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYW5pbWF0aW9uID0gdGhpcy5kaXNhYmxlQW5pbWF0aW9uID8gJ3NiYi1wZWFybC1jaGFpbl9fcG9zaXRpb24tLW5vLWFuaW1hdGlvbicgOiAnJztcblxuICAgIHJldHVybiBodG1sYDxzcGFuXG4gICAgICBzdHlsZT0ke3N0eWxlTWFwKHN0YXR1c1N0eWxlKCkpfVxuICAgICAgY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX3Bvc2l0aW9uICR7YW5pbWF0aW9ufVwiXG4gICAgPjwvc3Bhbj5gO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3Qgbm93ID0gdGhpcy5ub3cgPz8gbmV3IERhdGUoKTtcblxuICAgIGNvbnN0IHJpZGVMZWdzOiBQdFJpZGVMZWdbXSA9IHRoaXMubGVncz8uZmlsdGVyKChsZWcpID0+IGlzUmlkZUxlZyhsZWcpKSBhcyBQdFJpZGVMZWdbXTtcblxuICAgIGNvbnN0IGRlcGFydHVyZVRpbWUgPVxuICAgICAgcmlkZUxlZ3M/Lmxlbmd0aCAmJiByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKHJpZGVMZWdzWzBdPy5kZXBhcnR1cmU/LnRpbWUpO1xuICAgIGNvbnN0IGRlcGFydHVyZVdpdGhEZWxheSA9IGRlcGFydHVyZVRpbWUgJiYge1xuICAgICAgdGltZTogZGVwYXJ0dXJlVGltZSxcbiAgICAgIGRlbGF5OiByaWRlTGVnc1swXS5kZXBhcnR1cmUuZGVsYXkgPz8gMCxcbiAgICB9O1xuXG4gICAgY29uc3QgYXJyaXZhbFRpbWUgPVxuICAgICAgcmlkZUxlZ3M/Lmxlbmd0aCAmJlxuICAgICAgcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhyaWRlTGVnc1tyaWRlTGVncy5sZW5ndGggLSAxXS5hcnJpdmFsPy50aW1lKTtcbiAgICBjb25zdCBhcnJpdmFsVGltZURlbGF5ID0gYXJyaXZhbFRpbWUgJiYge1xuICAgICAgdGltZTogYXJyaXZhbFRpbWUsXG4gICAgICBkZWxheTogcmlkZUxlZ3NbcmlkZUxlZ3MubGVuZ3RoIC0gMV0/LmFycml2YWwuZGVsYXkgPz8gMCxcbiAgICB9O1xuXG4gICAgY29uc3QgZGVwYXJ0dXJlTm90U2VydmljZWQgPSAoKCk6IHN0cmluZyA9PiB7XG4gICAgICByZXR1cm4gcmlkZUxlZ3MgJiZcbiAgICAgICAgcmlkZUxlZ3NbMF0/LnNlcnZpY2VKb3VybmV5Py5zdG9wUG9pbnRzICYmXG4gICAgICAgIHJpZGVMZWdzWzBdPy5zZXJ2aWNlSm91cm5leT8uc3RvcFBvaW50c1swXS5zdG9wU3RhdHVzID09PSAnTk9UX1NFUlZJQ0VEJ1xuICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW4tLWRlcGFydHVyZS1za2lwcGVkJ1xuICAgICAgICA6ICcnO1xuICAgIH0pKCk7XG5cbiAgICBjb25zdCBhcnJpdmFsTm90U2VydmljZWQgPSAoKCk6IHN0cmluZyA9PiB7XG4gICAgICBjb25zdCBsYXN0TGVnID0gcmlkZUxlZ3MgJiYgcmlkZUxlZ3NbcmlkZUxlZ3MubGVuZ3RoIC0gMV07XG4gICAgICBjb25zdCBzdG9wcyA9IGxhc3RMZWcgJiYgbGFzdExlZy5zZXJ2aWNlSm91cm5leT8uc3RvcFBvaW50cztcblxuICAgICAgcmV0dXJuIHN0b3BzICYmIHN0b3BzW3N0b3BzLmxlbmd0aCAtIDFdLnN0b3BTdGF0dXMgPT09ICdOT1RfU0VSVklDRUQnXG4gICAgICAgID8gJ3NiYi1wZWFybC1jaGFpbi0tYXJyaXZhbC1za2lwcGVkJ1xuICAgICAgICA6ICcnO1xuICAgIH0pKCk7XG5cbiAgICBjb25zdCBkZXBhcnR1cmVDYW5jZWxDbGFzcyA9ICgoKTogc3RyaW5nID0+IHtcbiAgICAgIHJldHVybiByaWRlTGVncyAmJiByaWRlTGVnc1swXT8uc2VydmljZUpvdXJuZXk/LnNlcnZpY2VBbHRlcmF0aW9uPy5jYW5jZWxsZWRcbiAgICAgICAgPyAnc2JiLXBlYXJsLWNoYWluLS1kZXBhcnR1cmUtZGlzcnVwdGlvbidcbiAgICAgICAgOiAnJztcbiAgICB9KSgpO1xuXG4gICAgY29uc3QgYXJyaXZhbENhbmNlbENsYXNzID0gKCgpOiBzdHJpbmcgPT4ge1xuICAgICAgcmV0dXJuIHJpZGVMZWdzICYmIHJpZGVMZWdzW3JpZGVMZWdzLmxlbmd0aCAtIDFdPy5zZXJ2aWNlSm91cm5leT8uc2VydmljZUFsdGVyYXRpb24/LmNhbmNlbGxlZFxuICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW4tLWFycml2YWwtZGlzcnVwdGlvbidcbiAgICAgICAgOiAnJztcbiAgICB9KSgpO1xuXG4gICAgY29uc3Qgc3RhdHVzID1cbiAgICAgIGRlcGFydHVyZVdpdGhEZWxheSAmJlxuICAgICAgYXJyaXZhbFRpbWVEZWxheSAmJlxuICAgICAgdGhpcy5fZ2V0U3RhdHVzKG5vdywgZGVwYXJ0dXJlV2l0aERlbGF5LCBhcnJpdmFsVGltZURlbGF5KTtcblxuICAgIGNvbnN0IHN0YXR1c0NsYXNzRGVwYXJ0dXJlID1cbiAgICAgIHJpZGVMZWdzICYmIHN0YXR1cyAmJiAhZGVwYXJ0dXJlQ2FuY2VsQ2xhc3MgPyAnc2JiLXBlYXJsLWNoYWluX19idWxsZXQtLScgKyBzdGF0dXMgOiAnJztcblxuICAgIGNvbnN0IHN0YXR1c0NsYXNzQXJyaXZhbCA9XG4gICAgICByaWRlTGVncyAmJiBzdGF0dXMgJiYgIWFycml2YWxDYW5jZWxDbGFzc1xuICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW5fX2J1bGxldC0tJyArIHRoaXMuX2dldFN0YXR1cyhub3csIHVuZGVmaW5lZCwgYXJyaXZhbFRpbWVEZWxheSlcbiAgICAgICAgOiAnJztcblxuICAgIGlmICh0aGlzLl9pc0FsbENhbmNlbGxlZChyaWRlTGVncykpIHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXBlYXJsLWNoYWluXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX2J1bGxldCBzYmItcGVhcmwtY2hhaW4tLWRlcGFydHVyZS1kaXNydXB0aW9uXCI+PC9zcGFuPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX2xlZyBzYmItcGVhcmwtY2hhaW5fX2xlZy0tZGlzcnVwdGlvblwiPjwvZGl2PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXBlYXJsLWNoYWluX19idWxsZXQgc2JiLXBlYXJsLWNoYWluLS1kZXBhcnR1cmUtZGlzcnVwdGlvblwiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1wZWFybC1jaGFpblwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwic2JiLXBlYXJsLWNoYWluX19idWxsZXQgJHtzdGF0dXNDbGFzc0RlcGFydHVyZX0gJHtkZXBhcnR1cmVOb3RTZXJ2aWNlZH0gJHtkZXBhcnR1cmVDYW5jZWxDbGFzc31cIlxuICAgICAgICA+PC9zcGFuPlxuICAgICAgICAke3JpZGVMZWdzPy5tYXAoKGxlZzogUHRSaWRlTGVnLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBzdG9wUG9pbnRzLCBzZXJ2aWNlQWx0ZXJhdGlvbiB9ID0gbGVnPy5zZXJ2aWNlSm91cm5leSB8fCB7fTtcblxuICAgICAgICAgIGNvbnN0IGR1cmF0aW9uID0gdGhpcy5fZ2V0UmVsYXRpdmVEdXJhdGlvbihyaWRlTGVncywgbGVnKTtcbiAgICAgICAgICBjb25zdCBkZXBhcnR1cmUgPSByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5kZXBhcnR1cmU/LnRpbWUpO1xuICAgICAgICAgIGNvbnN0IGFycml2YWwgPSByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5hcnJpdmFsPy50aW1lKTtcblxuICAgICAgICAgIGNvbnN0IGlzQXJyaXZhbE5vdFNlcnZpY2VkID1cbiAgICAgICAgICAgIHN0b3BQb2ludHMgJiYgc3RvcFBvaW50c1tzdG9wUG9pbnRzLmxlbmd0aCAtIDFdPy5zdG9wU3RhdHVzID09PSAnTk9UX1NFUlZJQ0VEJztcbiAgICAgICAgICBjb25zdCBpc0Fycml2YWxQbGFubmVkID1cbiAgICAgICAgICAgIHN0b3BQb2ludHMgJiYgc3RvcFBvaW50c1tzdG9wUG9pbnRzLmxlbmd0aCAtIDFdPy5zdG9wU3RhdHVzID09PSAnUExBTk5FRCc7XG4gICAgICAgICAgY29uc3QgaXNEZXBhcnR1cmVOb3RTZXJ2aWNlZCA9IHN0b3BQb2ludHMgJiYgc3RvcFBvaW50c1swXT8uc3RvcFN0YXR1cyA9PT0gJ05PVF9TRVJWSUNFRCc7XG5cbiAgICAgICAgICBjb25zdCBzdG9wUG9pbnRzQmVmb3JlID0gaW5kZXggPiAwICYmIHJpZGVMZWdzW2luZGV4IC0gMV0uc2VydmljZUpvdXJuZXkuc3RvcFBvaW50cztcbiAgICAgICAgICBjb25zdCBpc0JlZm9yZUxlZ0Fycml2YWxOb3RTZXJ2aWNlZCA9XG4gICAgICAgICAgICBzdG9wUG9pbnRzQmVmb3JlICYmXG4gICAgICAgICAgICBzdG9wUG9pbnRzQmVmb3JlW3N0b3BQb2ludHNCZWZvcmUubGVuZ3RoIC0gMV0/LnN0b3BTdGF0dXMgPT09ICdOT1RfU0VSVklDRUQnO1xuXG4gICAgICAgICAgY29uc3Qgc2tpcHBlZExlZyA9XG4gICAgICAgICAgICBpc0Fycml2YWxOb3RTZXJ2aWNlZCB8fCAoaXNEZXBhcnR1cmVOb3RTZXJ2aWNlZCAmJiBpc0Fycml2YWxQbGFubmVkKVxuICAgICAgICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW5fX2xlZy0tc2tpcHBlZCdcbiAgICAgICAgICAgICAgOiAnJztcbiAgICAgICAgICBjb25zdCBkZXBhcnR1cmVTa2lwcGVkQnVsbGV0ID1cbiAgICAgICAgICAgIGlzRGVwYXJ0dXJlTm90U2VydmljZWQgfHwgaXNCZWZvcmVMZWdBcnJpdmFsTm90U2VydmljZWRcbiAgICAgICAgICAgICAgPyAnc2JiLXBlYXJsLWNoYWluX19zdG9wLS1kZXBhcnR1cmUtc2tpcHBlZCdcbiAgICAgICAgICAgICAgOiAnJztcblxuICAgICAgICAgIGNvbnN0IGNhbmNlbGxlZCA9IHNlcnZpY2VBbHRlcmF0aW9uPy5jYW5jZWxsZWQgPyAnc2JiLXBlYXJsLWNoYWluX19sZWctLWRpc3J1cHRpb24nIDogJyc7XG5cbiAgICAgICAgICBjb25zdCBsZWdEZXBhcnR1cmVXaXRoRGVsYXkgPSB7IHRpbWU6IGRlcGFydHVyZSwgZGVsYXk6IGxlZy5kZXBhcnR1cmU/LmRlbGF5ID8/IDAgfTtcbiAgICAgICAgICBjb25zdCBsZWdBcnJpdmFsV2l0aERlbGF5ID0geyB0aW1lOiBhcnJpdmFsLCBkZWxheTogbGVnLmFycml2YWw/LmRlbGF5ID8/IDAgfTtcbiAgICAgICAgICBjb25zdCBzdGF0dXMgPSB0aGlzLl9nZXRTdGF0dXMobm93LCBsZWdEZXBhcnR1cmVXaXRoRGVsYXksIGxlZ0Fycml2YWxXaXRoRGVsYXkpO1xuXG4gICAgICAgICAgY29uc3QgbGVnU3RhdHVzID0gIWNhbmNlbGxlZCAmJiAhc2tpcHBlZExlZyAmJiAnc2JiLXBlYXJsLWNoYWluX19sZWctLScgKyBzdGF0dXM7XG4gICAgICAgICAgY29uc3QgbGVnU3R5bGUgPSAoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAnLS1zYmItcGVhcmwtY2hhaW4tbGVnLXdpZHRoJzogYCR7ZHVyYXRpb259JWAsXG4gICAgICAgICAgICAgIC4uLihzdGF0dXMgPT09ICdwcm9ncmVzcycgJiYgIWNhbmNlbGxlZCAmJiAhc2tpcHBlZExlZ1xuICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAnLS1zYmItcGVhcmwtY2hhaW4tbGVnLXN0YXR1cyc6IGAke3RoaXMuX2dldFByb2dyZXNzKG5vdywgbGVnRGVwYXJ0dXJlV2l0aERlbGF5LCBsZWdBcnJpdmFsV2l0aERlbGF5KX0lYCxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJldHVybiBodG1sYCA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fbGVnICR7bGVnU3RhdHVzIHx8ICcnfSAke2NhbmNlbGxlZH0gJHtza2lwcGVkTGVnfVwiXG4gICAgICAgICAgICBzdHlsZT0ke3N0eWxlTWFwKGxlZ1N0eWxlKCkpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgICR7aW5kZXggPiAwICYmIGluZGV4IDwgcmlkZUxlZ3MubGVuZ3RoXG4gICAgICAgICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fc3RvcCAke2RlcGFydHVyZVNraXBwZWRCdWxsZXR9XCI+PC9zcGFuPmBcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgJHtzdGF0dXMgPT09ICdwcm9ncmVzcycgJiYgIWNhbmNlbGxlZCAmJiAhc2tpcHBlZExlZ1xuICAgICAgICAgICAgICA/IHRoaXMuX3JlbmRlclBvc2l0aW9uKG5vdywgbGVnRGVwYXJ0dXJlV2l0aERlbGF5LCBsZWdBcnJpdmFsV2l0aERlbGF5KVxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgfSl9XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX2J1bGxldCAke3N0YXR1c0NsYXNzQXJyaXZhbH0gJHthcnJpdmFsTm90U2VydmljZWR9ICR7YXJyaXZhbENhbmNlbENsYXNzfVwiXG4gICAgICAgID48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItcGVhcmwtY2hhaW4nOiBTYmJQZWFybENoYWluRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIl9iIiwiX2EiLCJfZCIsIl9jIiwiX2UiLCJzdGF0dXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBc0JPLFNBQVMsUUFBUSxNQUFNLGVBQWU7QUFDM0MsUUFBTSxRQUFRLE9BQU8sSUFBSTtBQUN6QixRQUFNLGlCQUFpQixPQUFPLGFBQWE7QUFDM0MsU0FBTyxNQUFNLFFBQU8sSUFBSyxlQUFlLFFBQU87QUFDakQ7QUNKTyxTQUFTLFNBQVMsTUFBTSxlQUFlO0FBQzVDLFFBQU0sUUFBUSxPQUFPLElBQUk7QUFDekIsUUFBTSxpQkFBaUIsT0FBTyxhQUFhO0FBQzNDLFNBQU8sQ0FBQyxRQUFRLENBQUM7QUFDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNGYSxJQUFBLHVCQUFOLGNBQW1DLFdBQVc7QUFBQSxFQUE5QyxjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUEyQkwsU0FBUSxPQUFvQjtBQUFBLEVBQUE7QUFBQSxFQU41QixJQUFXLElBQUksT0FBZ0M7QUFDN0MsU0FBSyxPQUFPLG1CQUFtQixtQkFBbUIsbUJBQW1CLFlBQVksS0FBSyxDQUFDO0FBQUEsRUFDekY7QUFBQSxFQUNBLElBQVcsTUFBbUI7QUFDNUIsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBLEVBR1EsZ0JBQWdCLE1BQTJCO0FBQ2pELFdBQU8sNkJBQU0sT0FBTyxDQUFDLEtBQWEsUUFBUTs7QUFDeEMsWUFBTSxjQUFjLGlDQUFnQyxTQUFJLFlBQUosbUJBQWEsSUFBSTtBQUNyRSxZQUFNLGdCQUFnQixpQ0FBZ0MsU0FBSSxjQUFKLG1CQUFlLElBQUk7QUFDekUsVUFBSSxlQUFlLGVBQWU7QUFDaEMsZUFDRSxNQUNBO0FBQUEsVUFDRSxnQ0FBZ0MsSUFBSSxRQUFRLElBQUk7QUFBQSxVQUNoRCxnQ0FBZ0MsSUFBSSxVQUFVLElBQUk7QUFBQSxRQUFBO0FBQUEsTUFHeEQ7QUFDTyxhQUFBO0FBQUEsT0FDTjtBQUFBLEVBQ0w7QUFBQSxFQUVRLGdCQUFnQixNQUE0QjtBQUNsRCxXQUFPLDZCQUFNLE1BQU0sQ0FBQzs7QUFBUSxvREFBSyxtQkFBTCxtQkFBcUIsc0JBQXJCLG1CQUF3QztBQUFBO0FBQUEsRUFDdEU7QUFBQSxFQUVRLHFCQUFxQixNQUFtQixLQUF3Qjs7QUFDdEUsVUFBTSxjQUFjLGlDQUFnQyxTQUFJLFlBQUosbUJBQWEsSUFBSTtBQUNyRSxVQUFNLGdCQUFnQixpQ0FBZ0MsU0FBSSxjQUFKLG1CQUFlLElBQUk7QUFDekUsUUFBSSxlQUFlLGVBQWU7QUFDaEMsWUFBTSxXQUFXO0FBQUEsUUFDZixnQ0FBZ0MsSUFBSSxRQUFRLElBQUk7QUFBQSxRQUNoRCxnQ0FBZ0MsSUFBSSxVQUFVLElBQUk7QUFBQSxNQUFBO0FBRTlDLFlBQUEsZUFBZSxLQUFLLGdCQUFnQixJQUFJO0FBRTlDLFVBQUksaUJBQWlCLEdBQUc7QUFDZixlQUFBO0FBQUEsTUFDVDtBQUVBLGFBQVEsV0FBVyxlQUFnQjtBQUFBLElBQ3JDO0FBQ08sV0FBQTtBQUFBLEVBQ1Q7QUFBQSxFQUVRLGFBQWEsS0FBVyxPQUFjLEtBQW9CO0FBQ2hFLFFBQUksRUFBQywrQkFBTyxTQUFRLEVBQUMsMkJBQUssT0FBTTtBQUN2QixhQUFBO0FBQUEsSUFDVDtBQUVBLFVBQU0saUJBQWlCLFdBQVcsTUFBTSxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQzlELFVBQU0sZUFBZSxXQUFXLElBQUksTUFBTSxJQUFJLFNBQVMsQ0FBQztBQUNsRCxVQUFBLFFBQVEsb0JBQW9CLGNBQWMsY0FBYztBQUN4RCxVQUFBLFdBQVcsb0JBQW9CLEtBQUssY0FBYztBQUVqRCxXQUFBLFNBQVUsV0FBVyxRQUFTO0FBQUEsRUFDdkM7QUFBQSxFQUVRLFdBQVcsS0FBVyxPQUFjLEtBQW9CO0FBQ3hELFVBQUEsaUJBQWlCLFNBQVMsTUFBTSxRQUFRLFdBQVcsTUFBTSxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQy9FLFVBQUEsZUFBZSxPQUFPLElBQUksUUFBUSxXQUFXLElBQUksTUFBTSxJQUFJLFNBQVMsQ0FBQztBQUd6RSxRQUFBLGtCQUNBLFNBQVMsZ0JBQWdCLEdBQUcsS0FDNUIsZ0JBQ0EsUUFBUSxjQUFjLEdBQUcsR0FDekI7QUFDTyxhQUFBO0FBQUEsSUFDRSxXQUFBLGdCQUFnQixTQUFTLGNBQWMsR0FBRyxHQUFHO0FBQy9DLGFBQUE7QUFBQSxJQUNUO0FBQ08sV0FBQTtBQUFBLEVBQ1Q7QUFBQSxFQUVRLGdCQUFnQixLQUFXLE9BQWMsS0FBd0M7QUFDdkYsVUFBTSxrQkFBa0IsS0FBSyxhQUFhLEtBQUssT0FBTyxHQUFHO0FBQ3pELFFBQUksa0JBQWtCLEtBQUssa0JBQWtCLElBQVksUUFBQTtBQUV6RCxVQUFNLGNBQWMsTUFBOEI7QUFDekMsYUFBQTtBQUFBLFFBQ0wscUNBQXFDLEdBQUcsZUFBZTtBQUFBLFFBQ3ZELEdBQUksbUJBQW1CLEtBQUssRUFBRSxXQUFXLG9CQUFBLElBQXdCLENBQUM7QUFBQSxNQUFBO0FBQUEsSUFDcEU7QUFHSSxVQUFBLFlBQVksS0FBSyxtQkFBbUIsNENBQTRDO0FBRS9FLFdBQUE7QUFBQSxjQUNHLFNBQVMsWUFBWSxDQUFDLENBQUM7QUFBQSx5Q0FDSSxTQUFTO0FBQUE7QUFBQSxFQUVoRDtBQUFBLEVBRW1CLFNBQXlCOztBQUMxQyxVQUFNLE1BQU0sS0FBSyxPQUFPLG9CQUFJLEtBQUs7QUFFM0IsVUFBQSxZQUF3QixVQUFLLFNBQUwsbUJBQVcsT0FBTyxDQUFDLFFBQVEsVUFBVSxHQUFHO0FBRWhFLFVBQUEsaUJBQ0oscUNBQVUsV0FBVSxpQ0FBZ0Msb0JBQVMsQ0FBQyxNQUFWLG1CQUFhLGNBQWIsbUJBQXdCLElBQUk7QUFDbEYsVUFBTSxxQkFBcUIsaUJBQWlCO0FBQUEsTUFDMUMsTUFBTTtBQUFBLE1BQ04sT0FBTyxTQUFTLENBQUMsRUFBRSxVQUFVLFNBQVM7QUFBQSxJQUFBO0FBR2xDLFVBQUEsZUFDSixxQ0FBVSxXQUNWLGlDQUFnQyxjQUFTLFNBQVMsU0FBUyxDQUFDLEVBQUUsWUFBOUIsbUJBQXVDLElBQUk7QUFDN0UsVUFBTSxtQkFBbUIsZUFBZTtBQUFBLE1BQ3RDLE1BQU07QUFBQSxNQUNOLFNBQU8sY0FBUyxTQUFTLFNBQVMsQ0FBQyxNQUE1QixtQkFBK0IsUUFBUSxVQUFTO0FBQUEsSUFBQTtBQUd6RCxVQUFNLHdCQUF3QixNQUFjOztBQUMxQyxhQUFPLGNBQ0xBLE9BQUFDLE1BQUEsU0FBUyxDQUFDLE1BQVYsZ0JBQUFBLElBQWEsbUJBQWIsZ0JBQUFELElBQTZCLGlCQUM3QkUsT0FBQUMsTUFBQSxTQUFTLENBQUMsTUFBVixnQkFBQUEsSUFBYSxtQkFBYixnQkFBQUQsSUFBNkIsV0FBVyxHQUFHLGdCQUFlLGlCQUN4RCx1Q0FDQTtBQUFBLElBQUE7QUFHTixVQUFNLHNCQUFzQixNQUFjOztBQUN4QyxZQUFNLFVBQVUsWUFBWSxTQUFTLFNBQVMsU0FBUyxDQUFDO0FBQ2xELFlBQUEsUUFBUSxhQUFXRCxNQUFBLFFBQVEsbUJBQVIsZ0JBQUFBLElBQXdCO0FBRTFDLGFBQUEsU0FBUyxNQUFNLE1BQU0sU0FBUyxDQUFDLEVBQUUsZUFBZSxpQkFDbkQscUNBQ0E7QUFBQSxJQUFBO0FBR04sVUFBTSx3QkFBd0IsTUFBYzs7QUFDMUMsYUFBTyxjQUFZRSxPQUFBSCxPQUFBQyxNQUFBLFNBQVMsQ0FBQyxNQUFWLGdCQUFBQSxJQUFhLG1CQUFiLGdCQUFBRCxJQUE2QixzQkFBN0IsZ0JBQUFHLElBQWdELGFBQy9ELDBDQUNBO0FBQUEsSUFBQTtBQUdOLFVBQU0sc0JBQXNCLE1BQWM7O0FBQ2pDLGFBQUEsY0FBWUEsT0FBQUgsT0FBQUMsTUFBQSxTQUFTLFNBQVMsU0FBUyxDQUFDLE1BQTVCLGdCQUFBQSxJQUErQixtQkFBL0IsZ0JBQUFELElBQStDLHNCQUEvQyxnQkFBQUcsSUFBa0UsYUFDakYsd0NBQ0E7QUFBQSxJQUFBO0FBR04sVUFBTSxTQUNKLHNCQUNBLG9CQUNBLEtBQUssV0FBVyxLQUFLLG9CQUFvQixnQkFBZ0I7QUFFM0QsVUFBTSx1QkFDSixZQUFZLFVBQVUsQ0FBQyx1QkFBdUIsOEJBQThCLFNBQVM7QUFFakYsVUFBQSxxQkFDSixZQUFZLFVBQVUsQ0FBQyxxQkFDbkIsOEJBQThCLEtBQUssV0FBVyxLQUFLLFFBQVcsZ0JBQWdCLElBQzlFO0FBRUYsUUFBQSxLQUFLLGdCQUFnQixRQUFRLEdBQUc7QUFDM0IsYUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBT1Q7QUFFTyxXQUFBO0FBQUE7QUFBQTtBQUFBLDJDQUdnQyxvQkFBb0IsSUFBSSxvQkFBb0IsSUFBSSxvQkFBb0I7QUFBQTtBQUFBLFVBRXJHLHFDQUFVLElBQUksQ0FBQyxLQUFnQixVQUFrQjs7QUFDakQsWUFBTSxFQUFFLFlBQVksa0JBQUEsS0FBc0IsMkJBQUssbUJBQWtCLENBQUE7QUFFakUsWUFBTSxXQUFXLEtBQUsscUJBQXFCLFVBQVUsR0FBRztBQUN4RCxZQUFNLFlBQVksaUNBQWdDRixNQUFBLElBQUksY0FBSixnQkFBQUEsSUFBZSxJQUFJO0FBQ3JFLFlBQU0sVUFBVSxpQ0FBZ0NELE1BQUEsSUFBSSxZQUFKLGdCQUFBQSxJQUFhLElBQUk7QUFFakUsWUFBTSx1QkFDSixnQkFBY0csTUFBQSxXQUFXLFdBQVcsU0FBUyxDQUFDLE1BQWhDLGdCQUFBQSxJQUFtQyxnQkFBZTtBQUNsRSxZQUFNLG1CQUNKLGdCQUFjRCxNQUFBLFdBQVcsV0FBVyxTQUFTLENBQUMsTUFBaEMsZ0JBQUFBLElBQW1DLGdCQUFlO0FBQ2xFLFlBQU0seUJBQXlCLGdCQUFjRSxNQUFBLFdBQVcsQ0FBQyxNQUFaLGdCQUFBQSxJQUFlLGdCQUFlO0FBRTNFLFlBQU0sbUJBQW1CLFFBQVEsS0FBSyxTQUFTLFFBQVEsQ0FBQyxFQUFFLGVBQWU7QUFDekUsWUFBTSxnQ0FDSixzQkFDQSxzQkFBaUIsaUJBQWlCLFNBQVMsQ0FBQyxNQUE1QyxtQkFBK0MsZ0JBQWU7QUFFaEUsWUFBTSxhQUNKLHdCQUF5QiwwQkFBMEIsbUJBQy9DLGtDQUNBO0FBQ0EsWUFBQSx5QkFDSiwwQkFBMEIsZ0NBQ3RCLDZDQUNBO0FBRUEsWUFBQSxhQUFZLHVEQUFtQixhQUFZLHFDQUFxQztBQUVoRixZQUFBLHdCQUF3QixFQUFFLE1BQU0sV0FBVyxTQUFPLFNBQUksY0FBSixtQkFBZSxVQUFTO0FBQzFFLFlBQUEsc0JBQXNCLEVBQUUsTUFBTSxTQUFTLFNBQU8sU0FBSSxZQUFKLG1CQUFhLFVBQVM7QUFDMUUsWUFBTUMsVUFBUyxLQUFLLFdBQVcsS0FBSyx1QkFBdUIsbUJBQW1CO0FBRTlFLFlBQU0sWUFBWSxDQUFDLGFBQWEsQ0FBQyxjQUFjLDJCQUEyQkE7QUFDMUUsWUFBTSxXQUFXLE1BQThCO0FBQ3RDLGVBQUE7QUFBQSxVQUNMLCtCQUErQixHQUFHLFFBQVE7QUFBQSxVQUMxQyxHQUFJQSxZQUFXLGNBQWMsQ0FBQyxhQUFhLENBQUMsYUFDeEM7QUFBQSxZQUNFLGdDQUFnQyxHQUFHLEtBQUssYUFBYSxLQUFLLHVCQUF1QixtQkFBbUIsQ0FBQztBQUFBLFVBQUEsSUFFdkcsQ0FBQztBQUFBLFFBQUE7QUFBQSxNQUNQO0FBR0ssYUFBQTtBQUFBLDBDQUN5QixhQUFhLEVBQUUsSUFBSSxTQUFTLElBQUksVUFBVTtBQUFBLG9CQUNoRSxTQUFTLFNBQVMsQ0FBQyxDQUFDO0FBQUE7QUFBQSxjQUUxQixRQUFRLEtBQUssUUFBUSxTQUFTLFNBQzVCLDBDQUEwQyxzQkFBc0IsY0FDaEUsT0FBTztBQUFBLGNBQ1RBLFlBQVcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxhQUN0QyxLQUFLLGdCQUFnQixLQUFLLHVCQUF1QixtQkFBbUIsSUFDcEUsT0FBTztBQUFBO0FBQUEsSUFBQSxFQUViO0FBQUE7QUFBQSwyQ0FFaUMsa0JBQWtCLElBQUksa0JBQWtCLElBQUksa0JBQWtCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJdkc7QUFDRjtBQWxRYSxxQkFDWSxTQUF5QjtBQVVkLGdCQUFBO0FBQUEsRUFBakMsU0FBUyxFQUFFLE1BQU0sT0FBTztBQUFBLEdBWGQscUJBV3VCLFdBQUEsUUFBQSxDQUFBO0FBTWtDLGdCQUFBO0FBQUEsRUFBbkUsU0FBUyxFQUFFLFdBQVcscUJBQXFCLE1BQU0sU0FBUztBQUFBLEdBakJoRCxxQkFpQnlELFdBQUEsb0JBQUEsQ0FBQTtBQUl6RCxnQkFBQTtBQUFBLEVBRFYsU0FBUztBQUFBLEdBcEJDLHFCQXFCQSxXQUFBLE9BQUEsQ0FBQTtBQXJCQSx1QkFBTixnQkFBQTtBQUFBLEVBRE4sY0FBYyxpQkFBaUI7QUFBQSxHQUNuQixvQkFBQTsiLCJ4X2dvb2dsZV9pZ25vcmVMaXN0IjpbMCwxXX0=
@@ -1,6 +1,6 @@
1
1
  import { ITripItem } from '../core/timetable.js';
2
2
 
3
- type DeepPartial<T> = T extends object ? {
3
+ export type DeepPartial<T> = T extends object ? {
4
4
  [P in keyof T]?: DeepPartial<T[P]>;
5
5
  } : T;
6
6
  export declare const defaultTrip: DeepPartial<ITripItem>;
@@ -20,5 +20,4 @@ export declare const shipTrip: DeepPartial<ITripItem>;
20
20
  export declare const walkTimeTrip: DeepPartial<ITripItem>;
21
21
  export declare const extendedEnterTimeTrip: DeepPartial<ITripItem>;
22
22
  export declare const noticesTrip: DeepPartial<ITripItem>;
23
- export {};
24
23
  //# sourceMappingURL=timetable-row.sample-data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timetable-row.sample-data.d.ts","sourceRoot":"","sources":["../../../../src/elements-experimental/timetable-row/timetable-row.sample-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAgBtD,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAClC;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACnC,GACD,CAAC,CAAC;AAEN,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,SAAS,CAoB9C,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,SAAS,CA2BhD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,SAAS,CAoB/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,SAAS,CAuBrD,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,SAAS,CAwB3C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,SAAS,CAkB7D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,SAAS,CAkBzD,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,SAAS,CAkB3D,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,WAAW,CAAC,SAAS,CAkBhE,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,SAAS,CA+DlD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,SAAS,CA8CjD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,SAAS,CA8B5C,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAAW,CAAC,SAAS,CA8B1C,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,SAAS,CAuB3C,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,SAAS,CA0J/C,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,SAAS,CA4BxD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,SAAS,CAsF9C,CAAC"}
1
+ {"version":3,"file":"timetable-row.sample-data.d.ts","sourceRoot":"","sources":["../../../../src/elements-experimental/timetable-row/timetable-row.sample-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAgBtD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GACzC;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACnC,GACD,CAAC,CAAC;AAEN,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,SAAS,CAoB9C,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,SAAS,CA2BhD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,SAAS,CAoB/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,SAAS,CAuBrD,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,SAAS,CAwB3C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,SAAS,CAkB7D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,SAAS,CAkBzD,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,SAAS,CAkB3D,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,WAAW,CAAC,SAAS,CAkBhE,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,SAAS,CA+DlD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,SAAS,CA8CjD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,SAAS,CA8B5C,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAAW,CAAC,SAAS,CA8B1C,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,SAAS,CAuB3C,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,SAAS,CA0J/C,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,SAAS,CA4BxD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,SAAS,CAsF9C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sbb-esta/lyne-elements-experimental",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "description": "Lyne Design System",
5
5
  "keywords": [
6
6
  "design system",
@@ -11,7 +11,7 @@
11
11
  "type": "module",
12
12
  "customElements": "custom-elements.json",
13
13
  "peerDependencies": {
14
- "@sbb-esta/lyne-elements": "1.3.0"
14
+ "@sbb-esta/lyne-elements": "1.4.0"
15
15
  },
16
16
  "dependencies": {
17
17
  "lit": "^3.0.0"
@@ -1 +1 @@
1
- {"version":3,"file":"pearl-chain.d.ts","sourceRoot":"","sources":["../../../src/elements-experimental/pearl-chain/pearl-chain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEjF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAKhD,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAW3D;;GAEG;AACH,qBACa,oBAAqB,SAAQ,UAAU;IAClD,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD;;;;;;;OAOG;IAC+B,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC;IAE7D;;;OAGG;IACiE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE/F,2HAA2H;IAC3H,IACW,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAE5C;IACD,IAAW,GAAG,IAAI,IAAI,GAAG,IAAI,CAE5B;IACD,OAAO,CAAC,IAAI,CAAqB;IAEjC,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,eAAe;cAmBJ,MAAM,IAAI,cAAc;CAgJ5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,iBAAiB,EAAE,oBAAoB,CAAC;KACzC;CACF"}
1
+ {"version":3,"file":"pearl-chain.d.ts","sourceRoot":"","sources":["../../../src/elements-experimental/pearl-chain/pearl-chain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEjF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAKhD,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAW3D;;GAEG;AACH,qBACa,oBAAqB,SAAQ,UAAU;IAClD,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD;;;;;;;OAOG;IAC+B,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC;IAE7D;;;OAGG;IACiE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE/F,2HAA2H;IAC3H,IACW,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAE5C;IACD,IAAW,GAAG,IAAI,IAAI,GAAG,IAAI,CAE5B;IACD,OAAO,CAAC,IAAI,CAAqB;IAEjC,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,eAAe;cAmBJ,MAAM,IAAI,cAAc;CA4I5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,iBAAiB,EAAE,oBAAoB,CAAC;KACzC;CACF"}
package/pearl-chain.js CHANGED
@@ -4,72 +4,72 @@ import { property as C, customElement as ie } from "lit/decorators.js";
4
4
  import { styleMap as Y } from "lit/directives/style-map.js";
5
5
  import { removeTimezoneFromISOTimeString as c } from "./core/datetime.js";
6
6
  import { isRideLeg as se } from "./core/timetable.js";
7
- import { d as f, a as y } from "./differenceInMinutes-BhHyuJc4.js";
8
- import { t as k } from "./constants-DSR8hPvP.js";
9
- function be(a, e) {
10
- const r = k(a), t = k(e);
11
- return r.getTime() > t.getTime();
7
+ import { d as g, a as m } from "./differenceInMinutes-BhHyuJc4.js";
8
+ import { t as f } from "./constants-DSR8hPvP.js";
9
+ function be(r, e) {
10
+ const a = f(r), t = f(e);
11
+ return a.getTime() > t.getTime();
12
12
  }
13
- function F(a, e) {
14
- const r = k(a), t = k(e);
15
- return +r < +t;
13
+ function F(r, e) {
14
+ const a = f(r), t = f(e);
15
+ return +a < +t;
16
16
  }
17
17
  const oe = te`*,:before,:after{box-sizing:border-box}:host{--sbb-pearl-chain-height: var(--sbb-border-width-2x);--sbb-pearl-chain-spacing-small: var(--sbb-spacing-fixed-1x);--sbb-pearl-chain-color: var(--sbb-pearl-chain-bullet-color);--sbb-pearl-chain-color-disruption: var(--sbb-pearl-chain-bullet-color-disruption);--sbb-pearl-chain-color-past: var(--sbb-pearl-chain-bullet-color-past);--sbb-pearl-chain-leg-width: 100%;--sbb-pearl-chain-bullet-size-start-end: .625rem;--sbb-pearl-chain-bullet-size-stop: .5rem;--sbb-pearl-chain-bullet-color: var(--sbb-color-charcoal);--sbb-pearl-chain-bullet-color-past: var(--sbb-color-metal);--sbb-pearl-chain-bullet-color-irrelevant: var(--sbb-color-metal);--sbb-pearl-chain-bullet-color-disruption: var(--sbb-color-red);--sbb-pearl-chain-bullet-border-width: var(--sbb-border-width-2x);--sbb-pearl-chain-bullet-animation-duration: 1.92s;--sbb-pearl-chain-bullet-animation-easing: ease-out;--sbb-pearl-chain-bullet-crossed-width: .88375rem;--sbb-pearl-chain-bullet-crossed-height: .21875rem;--sbb-pearl-chain-bullet-crossed-border-width: .09375rem;display:block}.sbb-pearl-chain{position:relative;display:flex;justify-content:space-between;flex-wrap:nowrap;color:var(--sbb-pearl-chain-color);width:100%;padding-block:calc((var(--sbb-pearl-chain-bullet-size-start-end) - var(--sbb-pearl-chain-height)) / 2);padding-inline-end:var(--sbb-pearl-chain-bullet-size-start-end)}.sbb-pearl-chain__bullet{background:var(--sbb-pearl-chain-bullet-color);color:var(--sbb-pearl-chain-bullet-color);border-color:var(--sbb-pearl-chain-bullet-color);border-radius:100%;min-height:var(--sbb-pearl-chain-bullet-size-start-end);min-width:var(--sbb-pearl-chain-bullet-size-start-end);height:var(--sbb-pearl-chain-bullet-size-start-end);width:var(--sbb-pearl-chain-bullet-size-start-end);content:"";position:absolute;background-color:currentcolor;inset-block-start:0;z-index:3}@media (forced-colors: active){.sbb-pearl-chain__bullet{--sbb-pearl-chain-bullet-color: CanvasText}}.sbb-pearl-chain__bullet:first-of-type{inset-inline-start:0}.sbb-pearl-chain__bullet:last-of-type{inset-inline-end:0}.sbb-pearl-chain__leg{flex-shrink:0;flex-grow:0;position:relative;height:var(--sbb-pearl-chain-height);border-inline-end:var(--sbb-pearl-chain-spacing-small) solid Canvas;background-color:currentcolor;width:var(--sbb-pearl-chain-leg-width);display:flex;align-items:center}@media (forced-colors: active){.sbb-pearl-chain__leg{background-color:CanvasText}.sbb-pearl-chain--past .sbb-pearl-chain__leg{background-color:GrayText}}.sbb-pearl-chain__leg:last-of-type{border:none}.sbb-pearl-chain__stop{background:var(--sbb-pearl-chain-bullet-color);color:var(--sbb-pearl-chain-bullet-color);border-color:var(--sbb-pearl-chain-bullet-color);border-radius:100%;min-height:var(--sbb-pearl-chain-bullet-size-stop);min-width:var(--sbb-pearl-chain-bullet-size-stop);height:var(--sbb-pearl-chain-bullet-size-stop);width:var(--sbb-pearl-chain-bullet-size-stop);border:var(--sbb-pearl-chain-bullet-border-width) solid currentcolor;background:Canvas;position:relative;z-index:2}@media (forced-colors: active){.sbb-pearl-chain__stop{--sbb-pearl-chain-bullet-color: CanvasText}}.sbb-pearl-chain__bullet--future{background:var(--sbb-pearl-chain-bullet-color);color:var(--sbb-pearl-chain-bullet-color);border-color:var(--sbb-pearl-chain-bullet-color);border-radius:100%}@media (forced-colors: active){.sbb-pearl-chain__bullet--future{--sbb-pearl-chain-bullet-color: CanvasText}}.sbb-pearl-chain__leg--past,.sbb-pearl-chain--past,.sbb-pearl-chain__leg--past:after,.sbb-pearl-chain__leg--progress:after,.sbb-pearl-chain__leg--progress .sbb-pearl-chain__stop,.sbb-pearl-chain--progress,.sbb-pearl-chain__bullet--past{--sbb-pearl-chain-bullet-color: var(--sbb-pearl-chain-bullet-color-past);color:var(--sbb-pearl-chain-color-past)}@media (forced-colors: active){.sbb-pearl-chain__leg--past,.sbb-pearl-chain--past,.sbb-pearl-chain__leg--past:after,.sbb-pearl-chain__leg--progress:after,.sbb-pearl-chain__leg--progress .sbb-pearl-chain__stop,.sbb-pearl-chain--progress,.sbb-pearl-chain__bullet--past{--sbb-pearl-chain-bullet-color: GrayText !important}}@media (forced-colors: active){.sbb-pearl-chain__leg--past,.sbb-pearl-chain--past,.sbb-pearl-chain__leg--past:after,.sbb-pearl-chain__leg--progress:after,.sbb-pearl-chain__leg--progress .sbb-pearl-chain__stop,.sbb-pearl-chain--progress,.sbb-pearl-chain__bullet--past{background-color:GrayText!important}}.sbb-pearl-chain__bullet--progress{--sbb-pearl-chain-bullet-color: var(--sbb-pearl-chain-bullet-color-past);background:var(--sbb-pearl-chain-bullet-color)}@media (forced-colors: active){.sbb-pearl-chain__bullet--progress{--sbb-pearl-chain-bullet-color: GrayText !important}}.sbb-pearl-chain__bullet--departure-disruption,.sbb-pearl-chain--arrival-disruption,.sbb-pearl-chain--departure-disruption,.sbb-pearl-chain__leg--disruption{--sbb-pearl-chain-bullet-color: var(--sbb-pearl-chain-bullet-color-disruption);color:var(--sbb-pearl-chain-color-disruption)}@media (forced-colors: active){.sbb-pearl-chain__bullet--departure-disruption,.sbb-pearl-chain--arrival-disruption,.sbb-pearl-chain--departure-disruption,.sbb-pearl-chain__leg--disruption{--sbb-pearl-chain-bullet-color: Highlight}}@media (forced-colors: active){.sbb-pearl-chain__bullet--departure-disruption,.sbb-pearl-chain--arrival-disruption,.sbb-pearl-chain--departure-disruption,.sbb-pearl-chain__leg--disruption{color:Highlight;background:Highlight}}.sbb-pearl-chain__leg--disruption .sbb-pearl-chain__stop{--sbb-pearl-chain-bullet-color: var(--sbb-pearl-chain-bullet-color-disruption)}@media (forced-colors: active){.sbb-pearl-chain__leg--disruption .sbb-pearl-chain__stop{--sbb-pearl-chain-bullet-color: Highlight}}.sbb-pearl-chain__leg--past .sbb-pearl-chain__stop{--sbb-pearl-chain-bullet-color: var(--sbb-pearl-chain-bullet-color-past)}@media (forced-colors: active){.sbb-pearl-chain__leg--past .sbb-pearl-chain__stop{--sbb-pearl-chain-bullet-color: GrayText !important}}.sbb-pearl-chain__leg--disruption:after{background-color:unset;background-image:linear-gradient(to right,currentcolor 0%,currentcolor 50%,Canvas 50%);background-repeat:repeat-x;background-size:calc(2 * var(--sbb-pearl-chain-spacing-small)) var(--sbb-pearl-chain-height);inset-inline-end:var(--sbb-pearl-chain-height)}@media (forced-colors: active){.sbb-pearl-chain__leg--disruption:after{background:unset;border-block-start:.0625rem dashed Highlight;transform:translateY(.0625rem)}}.sbb-pearl-chain__leg--skipped{color:var(--sbb-pearl-chain-color-disruption)}.sbb-pearl-chain__leg--skipped:after{background-color:unset;background-image:linear-gradient(to right,currentcolor 0%,currentcolor 50%,Canvas 50%);background-repeat:repeat-x;background-size:calc(2 * var(--sbb-pearl-chain-spacing-small)) var(--sbb-pearl-chain-height);inset-inline-end:var(--sbb-pearl-chain-height)}@media (forced-colors: active){.sbb-pearl-chain__leg--skipped:after{background:unset;border-block-start:.0625rem dashed Highlight;transform:translateY(.0625rem)}}.sbb-pearl-chain__stop--departure-skipped{min-height:var(--sbb-pearl-chain-bullet-size-stop);min-width:var(--sbb-pearl-chain-bullet-size-stop);height:var(--sbb-pearl-chain-bullet-size-stop);width:var(--sbb-pearl-chain-bullet-size-stop);border:var(--sbb-pearl-chain-bullet-border-width) solid currentcolor;background:Canvas}.sbb-pearl-chain__stop--departure-skipped:before{content:"";position:absolute;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%) rotate(45deg);border-block-start:var(--sbb-pearl-chain-bullet-crossed-border-width) solid canvas;background:var(--sbb-pearl-chain-bullet-color-disruption);height:var(--sbb-pearl-chain-bullet-crossed-height);width:var(--sbb-pearl-chain-bullet-crossed-width)}@media (forced-colors: active){.sbb-pearl-chain__stop--departure-skipped:before{background:Highlight}}.sbb-pearl-chain--arrival-skipped,.sbb-pearl-chain--departure-skipped{min-height:var(--sbb-pearl-chain-bullet-size-start-end);min-width:var(--sbb-pearl-chain-bullet-size-start-end);height:var(--sbb-pearl-chain-bullet-size-start-end);width:var(--sbb-pearl-chain-bullet-size-start-end);border:var(--sbb-pearl-chain-bullet-border-width) solid currentcolor;background:Canvas}.sbb-pearl-chain--arrival-skipped:before,.sbb-pearl-chain--departure-skipped:before{content:"";position:absolute;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%) rotate(45deg);border-block-start:var(--sbb-pearl-chain-bullet-crossed-border-width) solid canvas;background:var(--sbb-pearl-chain-bullet-color-disruption);height:var(--sbb-pearl-chain-bullet-crossed-height);width:var(--sbb-pearl-chain-bullet-crossed-width)}@media (forced-colors: active){.sbb-pearl-chain--arrival-skipped:before,.sbb-pearl-chain--departure-skipped:before{background:Highlight}}.sbb-pearl-chain__leg:after{content:"";position:absolute;inset-block:0;inset-inline-start:0;background-color:currentcolor;border-radius:var(--sbb-pearl-chain-height);z-index:1}@media (forced-colors: active){.sbb-pearl-chain__leg:after{background-color:CanvasText}.sbb-pearl-chain--past .sbb-pearl-chain__leg:after{background-color:GrayText}}.sbb-pearl-chain__leg:last-of-type:after{inset-inline-end:calc(-1 * var(--sbb-pearl-chain-height))}.sbb-pearl-chain__leg--progress:after{background-color:var(--sbb-pearl-chain-color-past);width:var(--sbb-pearl-chain-leg-status)}.sbb-pearl-chain__position{background:var(--sbb-pearl-chain-bullet-color);color:var(--sbb-pearl-chain-bullet-color);border-color:var(--sbb-pearl-chain-bullet-color);border-radius:100%;min-height:var(--sbb-pearl-chain-bullet-size-start-end);min-width:var(--sbb-pearl-chain-bullet-size-start-end);height:var(--sbb-pearl-chain-bullet-size-start-end);width:var(--sbb-pearl-chain-bullet-size-start-end);--sbb-pearl-chain-bullet-color: var(--sbb-pearl-chain-bullet-color-disruption);animation:pearl-chain-bullet-position-pulse var(--sbb-pearl-chain-bullet-animation-duration) var(--sbb-pearl-chain-bullet-animation-easing) infinite;position:absolute;inset-block-start:-200%;z-index:4;inset-inline-start:var(--sbb-pearl-chain-status-position)}@media (forced-colors: active){.sbb-pearl-chain__position{--sbb-pearl-chain-bullet-color: CanvasText}}@media (forced-colors: active){.sbb-pearl-chain__position{--sbb-pearl-chain-bullet-color: Highlight}}@keyframes pearl-chain-bullet-position-pulse{0%{box-shadow:0 0 0 0 var(--sbb-pearl-chain-bullet-color-disruption)}25%{box-shadow:0 0 0 0 var(--sbb-pearl-chain-bullet-color-disruption)}50%{box-shadow:0 0 0 .1875rem var(--sbb-color-red-alpha-20)}to{box-shadow:0 0 0 0 var(--sbb-pearl-chain-bullet-color-disruption)}}.sbb-pearl-chain__position--no-animation{animation:unset}.sbb-screen-reader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}`;
18
- var ne = Object.defineProperty, ce = Object.getOwnPropertyDescriptor, w = (a, e, r, t) => {
19
- for (var l = t > 1 ? void 0 : t ? ce(e, r) : e, b = a.length - 1, n; b >= 0; b--)
20
- (n = a[b]) && (l = (t ? n(e, r, l) : n(l)) || l);
21
- return t && l && ne(e, r, l), l;
18
+ var ne = Object.defineProperty, ce = Object.getOwnPropertyDescriptor, y = (r, e, a, t) => {
19
+ for (var l = t > 1 ? void 0 : t ? ce(e, a) : e, b = r.length - 1, n; b >= 0; b--)
20
+ (n = r[b]) && (l = (t ? n(e, a, l) : n(l)) || l);
21
+ return t && l && ne(e, a, l), l;
22
22
  };
23
23
  let h = class extends le {
24
24
  constructor() {
25
25
  super(...arguments), this._now = null;
26
26
  }
27
- set now(a) {
28
- this._now = j.getValidDateOrNull(j.deserialize(a));
27
+ set now(r) {
28
+ this._now = j.getValidDateOrNull(j.deserialize(r));
29
29
  }
30
30
  get now() {
31
31
  return this._now;
32
32
  }
33
- _getAllDuration(a) {
34
- return a == null ? void 0 : a.reduce((e, r) => {
33
+ _getAllDuration(r) {
34
+ return r == null ? void 0 : r.reduce((e, a) => {
35
35
  var b, n;
36
- const t = c((b = r.arrival) == null ? void 0 : b.time), l = c((n = r.departure) == null ? void 0 : n.time);
37
- return t && l ? e + f(
38
- c(r.arrival.time),
39
- c(r.departure.time)
36
+ const t = c((b = a.arrival) == null ? void 0 : b.time), l = c((n = a.departure) == null ? void 0 : n.time);
37
+ return t && l ? e + g(
38
+ c(a.arrival.time),
39
+ c(a.departure.time)
40
40
  ) : e;
41
41
  }, 0);
42
42
  }
43
- _isAllCancelled(a) {
44
- return a == null ? void 0 : a.every((e) => {
45
- var r, t;
46
- return (t = (r = e == null ? void 0 : e.serviceJourney) == null ? void 0 : r.serviceAlteration) == null ? void 0 : t.cancelled;
43
+ _isAllCancelled(r) {
44
+ return r == null ? void 0 : r.every((e) => {
45
+ var a, t;
46
+ return (t = (a = e == null ? void 0 : e.serviceJourney) == null ? void 0 : a.serviceAlteration) == null ? void 0 : t.cancelled;
47
47
  });
48
48
  }
49
- _getRelativeDuration(a, e) {
49
+ _getRelativeDuration(r, e) {
50
50
  var l, b;
51
- const r = c((l = e.arrival) == null ? void 0 : l.time), t = c((b = e.departure) == null ? void 0 : b.time);
52
- if (r && t) {
53
- const n = f(
51
+ const a = c((l = e.arrival) == null ? void 0 : l.time), t = c((b = e.departure) == null ? void 0 : b.time);
52
+ if (a && t) {
53
+ const n = g(
54
54
  c(e.arrival.time),
55
55
  c(e.departure.time)
56
- ), u = this._getAllDuration(a);
56
+ ), u = this._getAllDuration(r);
57
57
  return u === 0 ? 100 : n / u * 100;
58
58
  }
59
59
  return 0;
60
60
  }
61
- _getProgress(a, e, r) {
62
- if (!(e != null && e.time) || !(r != null && r.time))
61
+ _getProgress(r, e, a) {
62
+ if (!(e != null && e.time) || !(a != null && a.time))
63
63
  return 0;
64
- const t = y(e.time, e.delay ?? 0), l = y(r.time, r.delay ?? 0), b = f(l, t), n = f(a, t);
64
+ const t = m(e.time, e.delay ?? 0), l = m(a.time, a.delay ?? 0), b = g(l, t), n = g(r, t);
65
65
  return b && n / b * 100;
66
66
  }
67
- _getStatus(a, e, r) {
68
- const t = e && e.time && y(e.time, e.delay ?? 0), l = r && r.time && y(r.time, r.delay ?? 0);
69
- return t && F(t, a) && l && be(l, a) ? "progress" : l && F(l, a) ? "past" : "future";
67
+ _getStatus(r, e, a) {
68
+ const t = e && e.time && m(e.time, e.delay ?? 0), l = a && a.time && m(a.time, a.delay ?? 0);
69
+ return t && F(t, r) && l && be(l, r) ? "progress" : l && F(l, r) ? "past" : "future";
70
70
  }
71
- _renderPosition(a, e, r) {
72
- const t = this._getProgress(a, e, r);
71
+ _renderPosition(r, e, a) {
72
+ const t = this._getProgress(r, e, a);
73
73
  if (t < 0 && t > 100) return;
74
74
  const l = () => ({
75
75
  "--sbb-pearl-chain-status-position": `${t}%`,
@@ -82,8 +82,8 @@ let h = class extends le {
82
82
  }
83
83
  render() {
84
84
  var P, $, A, N, E;
85
- const a = this.now ?? /* @__PURE__ */ new Date(), e = (P = this.legs) == null ? void 0 : P.filter((i) => se(i)), r = (e == null ? void 0 : e.length) && c((A = ($ = e[0]) == null ? void 0 : $.departure) == null ? void 0 : A.time), t = r && {
86
- time: r,
85
+ const r = this.now ?? /* @__PURE__ */ new Date(), e = (P = this.legs) == null ? void 0 : P.filter((i) => se(i)), a = (e == null ? void 0 : e.length) && c((A = ($ = e[0]) == null ? void 0 : $.departure) == null ? void 0 : A.time), t = a && {
86
+ time: a,
87
87
  delay: e[0].departure.delay ?? 0
88
88
  }, l = (e == null ? void 0 : e.length) && c((N = e[e.length - 1].arrival) == null ? void 0 : N.time), b = l && {
89
89
  time: l,
@@ -95,13 +95,13 @@ let h = class extends le {
95
95
  var s;
96
96
  const i = e && e[e.length - 1], o = i && ((s = i.serviceJourney) == null ? void 0 : s.stopPoints);
97
97
  return o && o[o.length - 1].stopStatus === "NOT_SERVICED" ? "sbb-pearl-chain--arrival-skipped" : "";
98
- })(), S = (() => {
98
+ })(), D = (() => {
99
99
  var i, o, s;
100
100
  return e && ((s = (o = (i = e[0]) == null ? void 0 : i.serviceJourney) == null ? void 0 : o.serviceAlteration) != null && s.cancelled) ? "sbb-pearl-chain--departure-disruption" : "";
101
- })(), D = (() => {
101
+ })(), S = (() => {
102
102
  var i, o, s;
103
103
  return e && ((s = (o = (i = e[e.length - 1]) == null ? void 0 : i.serviceJourney) == null ? void 0 : o.serviceAlteration) != null && s.cancelled) ? "sbb-pearl-chain--arrival-disruption" : "";
104
- })(), z = t && b && this._getStatus(a, t, b), L = e && z && !S ? "sbb-pearl-chain__bullet--" + z : "", X = e && z && !D ? "sbb-pearl-chain__bullet--" + this._getStatus(a, void 0, b) : "";
104
+ })(), k = t && b && this._getStatus(r, t, b), L = e && k && !D ? "sbb-pearl-chain__bullet--" + k : "", X = e && k && !S ? "sbb-pearl-chain__bullet--" + this._getStatus(r, void 0, b) : "";
105
105
  return this._isAllCancelled(e) ? d`
106
106
  <div class="sbb-pearl-chain">
107
107
  <span class="sbb-pearl-chain__bullet sbb-pearl-chain--departure-disruption"></span>
@@ -111,42 +111,42 @@ let h = class extends le {
111
111
  ` : d`
112
112
  <div class="sbb-pearl-chain">
113
113
  <span
114
- class="sbb-pearl-chain__bullet ${L} ${n} ${S}"
114
+ class="sbb-pearl-chain__bullet ${L} ${n} ${D}"
115
115
  ></span>
116
116
  ${e == null ? void 0 : e.map((i, o) => {
117
117
  var H, J, R, I, W, G, V, B;
118
- const { stopPoints: s, serviceAlteration: p } = (i == null ? void 0 : i.serviceJourney) || {}, q = this._getRelativeDuration(e, i), K = c((H = i.departure) == null ? void 0 : H.time), Q = c((J = i.arrival) == null ? void 0 : J.time), U = s && ((R = s[s.length - 1]) == null ? void 0 : R.stopStatus) === "NOT_SERVICED", Z = s && ((I = s[s.length - 1]) == null ? void 0 : I.stopStatus) === "PLANNED", O = s && ((W = s[0]) == null ? void 0 : W.stopStatus) === "NOT_SERVICED", x = o > 0 && e[o - 1].serviceJourney.stopPoints, ee = x && ((G = x[x.length - 1]) == null ? void 0 : G.stopStatus) === "NOT_SERVICED", _ = U || O && Z ? "sbb-pearl-chain__leg--skipped" : "", ae = O || ee ? "sbb-pearl-chain__stop--departure-skipped" : "", v = p != null && p.cancelled ? "sbb-pearl-chain__leg--disruption" : "", g = { time: K, delay: ((V = i.departure) == null ? void 0 : V.delay) ?? 0 }, m = { time: Q, delay: ((B = i.arrival) == null ? void 0 : B.delay) ?? 0 }, T = this._getStatus(a, g, m), re = !v && !_ && this._getStatus(a, g, m) && "sbb-pearl-chain__leg--" + T;
118
+ const { stopPoints: s, serviceAlteration: p } = (i == null ? void 0 : i.serviceJourney) || {}, q = this._getRelativeDuration(e, i), K = c((H = i.departure) == null ? void 0 : H.time), Q = c((J = i.arrival) == null ? void 0 : J.time), U = s && ((R = s[s.length - 1]) == null ? void 0 : R.stopStatus) === "NOT_SERVICED", Z = s && ((I = s[s.length - 1]) == null ? void 0 : I.stopStatus) === "PLANNED", O = s && ((W = s[0]) == null ? void 0 : W.stopStatus) === "NOT_SERVICED", w = o > 0 && e[o - 1].serviceJourney.stopPoints, ee = w && ((G = w[w.length - 1]) == null ? void 0 : G.stopStatus) === "NOT_SERVICED", _ = U || O && Z ? "sbb-pearl-chain__leg--skipped" : "", ae = O || ee ? "sbb-pearl-chain__stop--departure-skipped" : "", v = p != null && p.cancelled ? "sbb-pearl-chain__leg--disruption" : "", z = { time: K, delay: ((V = i.departure) == null ? void 0 : V.delay) ?? 0 }, x = { time: Q, delay: ((B = i.arrival) == null ? void 0 : B.delay) ?? 0 }, T = this._getStatus(r, z, x), re = !v && !_ && "sbb-pearl-chain__leg--" + T;
119
119
  return d` <div
120
120
  class="sbb-pearl-chain__leg ${re || ""} ${v} ${_}"
121
121
  style=${Y({
122
122
  "--sbb-pearl-chain-leg-width": `${q}%`,
123
123
  ...T === "progress" && !v && !_ ? {
124
- "--sbb-pearl-chain-leg-status": `${this._getProgress(a, g, m)}%`
124
+ "--sbb-pearl-chain-leg-status": `${this._getProgress(r, z, x)}%`
125
125
  } : {}
126
126
  })}
127
127
  >
128
128
  ${o > 0 && o < e.length ? d`<span class="sbb-pearl-chain__stop ${ae}"></span>` : M}
129
- ${T === "progress" && !v && !_ ? this._renderPosition(a, g, m) : M}
129
+ ${T === "progress" && !v && !_ ? this._renderPosition(r, z, x) : M}
130
130
  </div>`;
131
131
  })}
132
132
  <span
133
- class="sbb-pearl-chain__bullet ${X} ${u} ${D}"
133
+ class="sbb-pearl-chain__bullet ${X} ${u} ${S}"
134
134
  ></span>
135
135
  </div>
136
136
  `;
137
137
  }
138
138
  };
139
139
  h.styles = oe;
140
- w([
140
+ y([
141
141
  C({ type: Array })
142
142
  ], h.prototype, "legs", 2);
143
- w([
143
+ y([
144
144
  C({ attribute: "disable-animation", type: Boolean })
145
145
  ], h.prototype, "disableAnimation", 2);
146
- w([
146
+ y([
147
147
  C()
148
148
  ], h.prototype, "now", 1);
149
- h = w([
149
+ h = y([
150
150
  ie("sbb-pearl-chain")
151
151
  ], h);
152
152
  export {
@@ -1,6 +1,6 @@
1
1
  import { ITripItem } from '../core/timetable.js';
2
2
 
3
- type DeepPartial<T> = T extends object ? {
3
+ export type DeepPartial<T> = T extends object ? {
4
4
  [P in keyof T]?: DeepPartial<T[P]>;
5
5
  } : T;
6
6
  export declare const defaultTrip: DeepPartial<ITripItem>;
@@ -20,5 +20,4 @@ export declare const shipTrip: DeepPartial<ITripItem>;
20
20
  export declare const walkTimeTrip: DeepPartial<ITripItem>;
21
21
  export declare const extendedEnterTimeTrip: DeepPartial<ITripItem>;
22
22
  export declare const noticesTrip: DeepPartial<ITripItem>;
23
- export {};
24
23
  //# sourceMappingURL=timetable-row.sample-data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timetable-row.sample-data.d.ts","sourceRoot":"","sources":["../../../src/elements-experimental/timetable-row/timetable-row.sample-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAgBtD,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAClC;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACnC,GACD,CAAC,CAAC;AAEN,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,SAAS,CAoB9C,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,SAAS,CA2BhD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,SAAS,CAoB/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,SAAS,CAuBrD,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,SAAS,CAwB3C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,SAAS,CAkB7D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,SAAS,CAkBzD,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,SAAS,CAkB3D,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,WAAW,CAAC,SAAS,CAkBhE,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,SAAS,CA+DlD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,SAAS,CA8CjD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,SAAS,CA8B5C,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAAW,CAAC,SAAS,CA8B1C,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,SAAS,CAuB3C,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,SAAS,CA0J/C,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,SAAS,CA4BxD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,SAAS,CAsF9C,CAAC"}
1
+ {"version":3,"file":"timetable-row.sample-data.d.ts","sourceRoot":"","sources":["../../../src/elements-experimental/timetable-row/timetable-row.sample-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAgBtD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GACzC;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACnC,GACD,CAAC,CAAC;AAEN,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,SAAS,CAoB9C,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,SAAS,CA2BhD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,SAAS,CAoB/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,SAAS,CAuBrD,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,SAAS,CAwB3C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,SAAS,CAkB7D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,SAAS,CAkBzD,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,SAAS,CAkB3D,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,WAAW,CAAC,SAAS,CAkBhE,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,SAAS,CA+DlD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,SAAS,CA8CjD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,SAAS,CA8B5C,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAAW,CAAC,SAAS,CA8B1C,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,SAAS,CAuB3C,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,SAAS,CA0J/C,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,SAAS,CA4BxD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,SAAS,CAsF9C,CAAC"}