@sbb-esta/lyne-elements-dev 4.0.0-dev.1775635677 → 4.0.0-dev.1775640696

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.
@@ -77846,6 +77846,26 @@
77846
77846
  }
77847
77847
  ]
77848
77848
  },
77849
+ {
77850
+ "kind": "javascript-module",
77851
+ "path": "core/styles/styles.js",
77852
+ "declarations": [
77853
+ {
77854
+ "kind": "variable",
77855
+ "name": "boxSizingStyles"
77856
+ }
77857
+ ],
77858
+ "exports": [
77859
+ {
77860
+ "kind": "js",
77861
+ "name": "boxSizingStyles",
77862
+ "declaration": {
77863
+ "name": "boxSizingStyles",
77864
+ "module": "core/styles/styles.js"
77865
+ }
77866
+ }
77867
+ ]
77868
+ },
77849
77869
  {
77850
77870
  "kind": "javascript-module",
77851
77871
  "path": "core/testing/event-spy.js",
@@ -78243,26 +78263,6 @@
78243
78263
  }
78244
78264
  ]
78245
78265
  },
78246
- {
78247
- "kind": "javascript-module",
78248
- "path": "core/styles/styles.js",
78249
- "declarations": [
78250
- {
78251
- "kind": "variable",
78252
- "name": "boxSizingStyles"
78253
- }
78254
- ],
78255
- "exports": [
78256
- {
78257
- "kind": "js",
78258
- "name": "boxSizingStyles",
78259
- "declaration": {
78260
- "name": "boxSizingStyles",
78261
- "module": "core/styles/styles.js"
78262
- }
78263
- }
78264
- ]
78265
- },
78266
78266
  {
78267
78267
  "kind": "javascript-module",
78268
78268
  "path": "datepicker/common/datepicker-button.js",
@@ -94440,6 +94440,253 @@
94440
94440
  }
94441
94441
  ]
94442
94442
  },
94443
+ {
94444
+ "kind": "javascript-module",
94445
+ "path": "form-field/form-field-text-counter/form-field-text-counter.component.js",
94446
+ "declarations": [
94447
+ {
94448
+ "kind": "class",
94449
+ "description": "It displays the remaining characters count for input/textarea elements with a configured\nmaxlength property in the `sbb-form-field`.\nThe component automatically uses the form field's inputElement and displays the remaining character count.\nIf the input is disabled, readonly or an `sbb-error` is present, the output is suppressed.",
94450
+ "name": "SbbFormFieldTextCounterElement",
94451
+ "slots": [
94452
+ {
94453
+ "description": "Use the unnamed slot to display a custom description text after the counter.",
94454
+ "name": "",
94455
+ "inheritedFrom": {
94456
+ "name": "SbbHintElement",
94457
+ "module": "form-field/hint/hint.component.js"
94458
+ }
94459
+ }
94460
+ ],
94461
+ "members": [
94462
+ {
94463
+ "kind": "field",
94464
+ "name": "elementName",
94465
+ "type": {
94466
+ "text": "string"
94467
+ },
94468
+ "privacy": "public",
94469
+ "static": true,
94470
+ "readonly": true,
94471
+ "default": "'sbb-form-field-text-counter'",
94472
+ "inheritedFrom": {
94473
+ "name": "SbbElement",
94474
+ "module": "core/base-elements/element.js"
94475
+ }
94476
+ },
94477
+ {
94478
+ "kind": "field",
94479
+ "name": "_remainingCharacters",
94480
+ "type": {
94481
+ "text": "number"
94482
+ },
94483
+ "privacy": "private",
94484
+ "default": "0"
94485
+ },
94486
+ {
94487
+ "kind": "field",
94488
+ "name": "_language",
94489
+ "privacy": "private",
94490
+ "default": "new SbbLanguageController(this)"
94491
+ },
94492
+ {
94493
+ "kind": "field",
94494
+ "name": "_abortController",
94495
+ "type": {
94496
+ "text": "AbortController | null"
94497
+ },
94498
+ "privacy": "private",
94499
+ "default": "null"
94500
+ },
94501
+ {
94502
+ "kind": "method",
94503
+ "name": "_onInputUpdate",
94504
+ "privacy": "private",
94505
+ "return": {
94506
+ "type": {
94507
+ "text": "void"
94508
+ }
94509
+ }
94510
+ },
94511
+ {
94512
+ "kind": "method",
94513
+ "name": "_infoText",
94514
+ "privacy": "private",
94515
+ "return": {
94516
+ "type": {
94517
+ "text": "string"
94518
+ }
94519
+ }
94520
+ },
94521
+ {
94522
+ "kind": "field",
94523
+ "name": "negative",
94524
+ "type": {
94525
+ "text": "boolean"
94526
+ },
94527
+ "privacy": "public",
94528
+ "default": "false",
94529
+ "description": "Negative coloring variant flag.",
94530
+ "attribute": "negative",
94531
+ "reflects": true,
94532
+ "inheritedFrom": {
94533
+ "name": "SbbNegativeMixin",
94534
+ "module": "core/mixins/negative-mixin.js"
94535
+ }
94536
+ },
94537
+ {
94538
+ "kind": "field",
94539
+ "name": "formField",
94540
+ "type": {
94541
+ "text": "SbbFormFieldElement | null"
94542
+ },
94543
+ "privacy": "protected",
94544
+ "default": "null",
94545
+ "inheritedFrom": {
94546
+ "name": "SbbHintElement",
94547
+ "module": "form-field/hint/hint.component.js"
94548
+ }
94549
+ },
94550
+ {
94551
+ "kind": "field",
94552
+ "name": "_hydrationRequired",
94553
+ "type": {
94554
+ "text": "boolean"
94555
+ },
94556
+ "privacy": "private",
94557
+ "default": "!!this.shadowRoot",
94558
+ "inheritedFrom": {
94559
+ "name": "SbbElement",
94560
+ "module": "core/base-elements/element.js"
94561
+ }
94562
+ },
94563
+ {
94564
+ "kind": "field",
94565
+ "name": "_hydrationComplete",
94566
+ "privacy": "private",
94567
+ "default": "new Promise<boolean>( (resolve) => (this._resolveHydration = resolve), )",
94568
+ "inheritedFrom": {
94569
+ "name": "SbbElement",
94570
+ "module": "core/base-elements/element.js"
94571
+ }
94572
+ },
94573
+ {
94574
+ "kind": "field",
94575
+ "name": "_resolveHydration",
94576
+ "type": {
94577
+ "text": "(hydrationRequired: boolean) => void"
94578
+ },
94579
+ "privacy": "private",
94580
+ "inheritedFrom": {
94581
+ "name": "SbbElement",
94582
+ "module": "core/base-elements/element.js"
94583
+ }
94584
+ },
94585
+ {
94586
+ "kind": "field",
94587
+ "name": "hydrationRequired",
94588
+ "type": {
94589
+ "text": "boolean"
94590
+ },
94591
+ "privacy": "protected",
94592
+ "description": "Returns whether hydration is required and not completed.",
94593
+ "readonly": true,
94594
+ "inheritedFrom": {
94595
+ "name": "SbbElement",
94596
+ "module": "core/base-elements/element.js"
94597
+ },
94598
+ "default": "!!this.shadowRoot"
94599
+ },
94600
+ {
94601
+ "kind": "method",
94602
+ "name": "toggleState",
94603
+ "privacy": "protected",
94604
+ "return": {
94605
+ "type": {
94606
+ "text": "void"
94607
+ }
94608
+ },
94609
+ "parameters": [
94610
+ {
94611
+ "name": "value",
94612
+ "type": {
94613
+ "text": "string"
94614
+ }
94615
+ },
94616
+ {
94617
+ "name": "force",
94618
+ "optional": true,
94619
+ "type": {
94620
+ "text": "boolean"
94621
+ }
94622
+ }
94623
+ ],
94624
+ "inheritedFrom": {
94625
+ "name": "SbbElement",
94626
+ "module": "core/base-elements/element.js"
94627
+ }
94628
+ },
94629
+ {
94630
+ "kind": "field",
94631
+ "name": "['_$sbbElement$']",
94632
+ "type": {
94633
+ "text": "boolean"
94634
+ },
94635
+ "privacy": "public",
94636
+ "static": true,
94637
+ "default": "true",
94638
+ "inheritedFrom": {
94639
+ "name": "SbbElement",
94640
+ "module": "core/base-elements/element.js"
94641
+ }
94642
+ },
94643
+ {
94644
+ "kind": "field",
94645
+ "name": "_controllers",
94646
+ "type": {
94647
+ "text": "Set<SbbReactiveController> | undefined"
94648
+ },
94649
+ "privacy": "private",
94650
+ "inheritedFrom": {
94651
+ "name": "SbbElement",
94652
+ "module": "core/base-elements/element.js"
94653
+ }
94654
+ }
94655
+ ],
94656
+ "superclass": {
94657
+ "name": "SbbHintElement",
94658
+ "module": "form-field/hint/hint.component.js"
94659
+ },
94660
+ "tagName": "sbb-form-field-text-counter",
94661
+ "customElement": true,
94662
+ "attributes": [
94663
+ {
94664
+ "name": "negative",
94665
+ "type": {
94666
+ "text": "boolean"
94667
+ },
94668
+ "default": "false",
94669
+ "description": "Negative coloring variant flag.",
94670
+ "fieldName": "negative",
94671
+ "inheritedFrom": {
94672
+ "name": "SbbNegativeMixin",
94673
+ "module": "core/mixins/negative-mixin.js"
94674
+ }
94675
+ }
94676
+ ]
94677
+ }
94678
+ ],
94679
+ "exports": [
94680
+ {
94681
+ "kind": "js",
94682
+ "name": "SbbFormFieldTextCounterElement",
94683
+ "declaration": {
94684
+ "name": "SbbFormFieldTextCounterElement",
94685
+ "module": "form-field/form-field-text-counter/form-field-text-counter.component.js"
94686
+ }
94687
+ }
94688
+ ]
94689
+ },
94443
94690
  {
94444
94691
  "kind": "javascript-module",
94445
94692
  "path": "form-field/form-field-clear/form-field-clear.component.js",
@@ -95232,253 +95479,6 @@
95232
95479
  }
95233
95480
  ]
95234
95481
  },
95235
- {
95236
- "kind": "javascript-module",
95237
- "path": "form-field/form-field-text-counter/form-field-text-counter.component.js",
95238
- "declarations": [
95239
- {
95240
- "kind": "class",
95241
- "description": "It displays the remaining characters count for input/textarea elements with a configured\nmaxlength property in the `sbb-form-field`.\nThe component automatically uses the form field's inputElement and displays the remaining character count.\nIf the input is disabled, readonly or an `sbb-error` is present, the output is suppressed.",
95242
- "name": "SbbFormFieldTextCounterElement",
95243
- "slots": [
95244
- {
95245
- "description": "Use the unnamed slot to display a custom description text after the counter.",
95246
- "name": "",
95247
- "inheritedFrom": {
95248
- "name": "SbbHintElement",
95249
- "module": "form-field/hint/hint.component.js"
95250
- }
95251
- }
95252
- ],
95253
- "members": [
95254
- {
95255
- "kind": "field",
95256
- "name": "elementName",
95257
- "type": {
95258
- "text": "string"
95259
- },
95260
- "privacy": "public",
95261
- "static": true,
95262
- "readonly": true,
95263
- "default": "'sbb-form-field-text-counter'",
95264
- "inheritedFrom": {
95265
- "name": "SbbElement",
95266
- "module": "core/base-elements/element.js"
95267
- }
95268
- },
95269
- {
95270
- "kind": "field",
95271
- "name": "_remainingCharacters",
95272
- "type": {
95273
- "text": "number"
95274
- },
95275
- "privacy": "private",
95276
- "default": "0"
95277
- },
95278
- {
95279
- "kind": "field",
95280
- "name": "_language",
95281
- "privacy": "private",
95282
- "default": "new SbbLanguageController(this)"
95283
- },
95284
- {
95285
- "kind": "field",
95286
- "name": "_abortController",
95287
- "type": {
95288
- "text": "AbortController | null"
95289
- },
95290
- "privacy": "private",
95291
- "default": "null"
95292
- },
95293
- {
95294
- "kind": "method",
95295
- "name": "_onInputUpdate",
95296
- "privacy": "private",
95297
- "return": {
95298
- "type": {
95299
- "text": "void"
95300
- }
95301
- }
95302
- },
95303
- {
95304
- "kind": "method",
95305
- "name": "_infoText",
95306
- "privacy": "private",
95307
- "return": {
95308
- "type": {
95309
- "text": "string"
95310
- }
95311
- }
95312
- },
95313
- {
95314
- "kind": "field",
95315
- "name": "negative",
95316
- "type": {
95317
- "text": "boolean"
95318
- },
95319
- "privacy": "public",
95320
- "default": "false",
95321
- "description": "Negative coloring variant flag.",
95322
- "attribute": "negative",
95323
- "reflects": true,
95324
- "inheritedFrom": {
95325
- "name": "SbbNegativeMixin",
95326
- "module": "core/mixins/negative-mixin.js"
95327
- }
95328
- },
95329
- {
95330
- "kind": "field",
95331
- "name": "formField",
95332
- "type": {
95333
- "text": "SbbFormFieldElement | null"
95334
- },
95335
- "privacy": "protected",
95336
- "default": "null",
95337
- "inheritedFrom": {
95338
- "name": "SbbHintElement",
95339
- "module": "form-field/hint/hint.component.js"
95340
- }
95341
- },
95342
- {
95343
- "kind": "field",
95344
- "name": "_hydrationRequired",
95345
- "type": {
95346
- "text": "boolean"
95347
- },
95348
- "privacy": "private",
95349
- "default": "!!this.shadowRoot",
95350
- "inheritedFrom": {
95351
- "name": "SbbElement",
95352
- "module": "core/base-elements/element.js"
95353
- }
95354
- },
95355
- {
95356
- "kind": "field",
95357
- "name": "_hydrationComplete",
95358
- "privacy": "private",
95359
- "default": "new Promise<boolean>( (resolve) => (this._resolveHydration = resolve), )",
95360
- "inheritedFrom": {
95361
- "name": "SbbElement",
95362
- "module": "core/base-elements/element.js"
95363
- }
95364
- },
95365
- {
95366
- "kind": "field",
95367
- "name": "_resolveHydration",
95368
- "type": {
95369
- "text": "(hydrationRequired: boolean) => void"
95370
- },
95371
- "privacy": "private",
95372
- "inheritedFrom": {
95373
- "name": "SbbElement",
95374
- "module": "core/base-elements/element.js"
95375
- }
95376
- },
95377
- {
95378
- "kind": "field",
95379
- "name": "hydrationRequired",
95380
- "type": {
95381
- "text": "boolean"
95382
- },
95383
- "privacy": "protected",
95384
- "description": "Returns whether hydration is required and not completed.",
95385
- "readonly": true,
95386
- "inheritedFrom": {
95387
- "name": "SbbElement",
95388
- "module": "core/base-elements/element.js"
95389
- },
95390
- "default": "!!this.shadowRoot"
95391
- },
95392
- {
95393
- "kind": "method",
95394
- "name": "toggleState",
95395
- "privacy": "protected",
95396
- "return": {
95397
- "type": {
95398
- "text": "void"
95399
- }
95400
- },
95401
- "parameters": [
95402
- {
95403
- "name": "value",
95404
- "type": {
95405
- "text": "string"
95406
- }
95407
- },
95408
- {
95409
- "name": "force",
95410
- "optional": true,
95411
- "type": {
95412
- "text": "boolean"
95413
- }
95414
- }
95415
- ],
95416
- "inheritedFrom": {
95417
- "name": "SbbElement",
95418
- "module": "core/base-elements/element.js"
95419
- }
95420
- },
95421
- {
95422
- "kind": "field",
95423
- "name": "['_$sbbElement$']",
95424
- "type": {
95425
- "text": "boolean"
95426
- },
95427
- "privacy": "public",
95428
- "static": true,
95429
- "default": "true",
95430
- "inheritedFrom": {
95431
- "name": "SbbElement",
95432
- "module": "core/base-elements/element.js"
95433
- }
95434
- },
95435
- {
95436
- "kind": "field",
95437
- "name": "_controllers",
95438
- "type": {
95439
- "text": "Set<SbbReactiveController> | undefined"
95440
- },
95441
- "privacy": "private",
95442
- "inheritedFrom": {
95443
- "name": "SbbElement",
95444
- "module": "core/base-elements/element.js"
95445
- }
95446
- }
95447
- ],
95448
- "superclass": {
95449
- "name": "SbbHintElement",
95450
- "module": "form-field/hint/hint.component.js"
95451
- },
95452
- "tagName": "sbb-form-field-text-counter",
95453
- "customElement": true,
95454
- "attributes": [
95455
- {
95456
- "name": "negative",
95457
- "type": {
95458
- "text": "boolean"
95459
- },
95460
- "default": "false",
95461
- "description": "Negative coloring variant flag.",
95462
- "fieldName": "negative",
95463
- "inheritedFrom": {
95464
- "name": "SbbNegativeMixin",
95465
- "module": "core/mixins/negative-mixin.js"
95466
- }
95467
- }
95468
- ]
95469
- }
95470
- ],
95471
- "exports": [
95472
- {
95473
- "kind": "js",
95474
- "name": "SbbFormFieldTextCounterElement",
95475
- "declaration": {
95476
- "name": "SbbFormFieldTextCounterElement",
95477
- "module": "form-field/form-field-text-counter/form-field-text-counter.component.js"
95478
- }
95479
- }
95480
- ]
95481
- },
95482
95482
  {
95483
95483
  "kind": "javascript-module",
95484
95484
  "path": "form-field/hint/hint.component.js",
@@ -120356,6 +120356,11 @@
120356
120356
  "privacy": "private",
120357
120357
  "default": "new SbbEscapableOverlayController(this)"
120358
120358
  },
120359
+ {
120360
+ "kind": "field",
120361
+ "name": "_closeOnNavigation",
120362
+ "privacy": "private"
120363
+ },
120359
120364
  {
120360
120365
  "kind": "method",
120361
120366
  "name": "toggle",
@@ -132603,155 +132608,6 @@
132603
132608
  }
132604
132609
  ]
132605
132610
  },
132606
- {
132607
- "kind": "javascript-module",
132608
- "path": "train/train-blocked-passage/train-blocked-passage.component.js",
132609
- "declarations": [
132610
- {
132611
- "kind": "class",
132612
- "description": "It visually displays a blocked passage between train wagons.",
132613
- "name": "SbbTrainBlockedPassageElement",
132614
- "members": [
132615
- {
132616
- "kind": "field",
132617
- "name": "elementName",
132618
- "type": {
132619
- "text": "string"
132620
- },
132621
- "privacy": "public",
132622
- "static": true,
132623
- "readonly": true,
132624
- "default": "'sbb-train-blocked-passage'",
132625
- "inheritedFrom": {
132626
- "name": "SbbElement",
132627
- "module": "core/base-elements/element.js"
132628
- }
132629
- },
132630
- {
132631
- "kind": "field",
132632
- "name": "_hydrationRequired",
132633
- "type": {
132634
- "text": "boolean"
132635
- },
132636
- "privacy": "private",
132637
- "default": "!!this.shadowRoot",
132638
- "inheritedFrom": {
132639
- "name": "SbbElement",
132640
- "module": "core/base-elements/element.js"
132641
- }
132642
- },
132643
- {
132644
- "kind": "field",
132645
- "name": "_hydrationComplete",
132646
- "privacy": "private",
132647
- "default": "new Promise<boolean>( (resolve) => (this._resolveHydration = resolve), )",
132648
- "inheritedFrom": {
132649
- "name": "SbbElement",
132650
- "module": "core/base-elements/element.js"
132651
- }
132652
- },
132653
- {
132654
- "kind": "field",
132655
- "name": "_resolveHydration",
132656
- "type": {
132657
- "text": "(hydrationRequired: boolean) => void"
132658
- },
132659
- "privacy": "private",
132660
- "inheritedFrom": {
132661
- "name": "SbbElement",
132662
- "module": "core/base-elements/element.js"
132663
- }
132664
- },
132665
- {
132666
- "kind": "field",
132667
- "name": "hydrationRequired",
132668
- "type": {
132669
- "text": "boolean"
132670
- },
132671
- "privacy": "protected",
132672
- "description": "Returns whether hydration is required and not completed.",
132673
- "readonly": true,
132674
- "inheritedFrom": {
132675
- "name": "SbbElement",
132676
- "module": "core/base-elements/element.js"
132677
- },
132678
- "default": "!!this.shadowRoot"
132679
- },
132680
- {
132681
- "kind": "method",
132682
- "name": "toggleState",
132683
- "privacy": "protected",
132684
- "return": {
132685
- "type": {
132686
- "text": "void"
132687
- }
132688
- },
132689
- "parameters": [
132690
- {
132691
- "name": "value",
132692
- "type": {
132693
- "text": "string"
132694
- }
132695
- },
132696
- {
132697
- "name": "force",
132698
- "optional": true,
132699
- "type": {
132700
- "text": "boolean"
132701
- }
132702
- }
132703
- ],
132704
- "inheritedFrom": {
132705
- "name": "SbbElement",
132706
- "module": "core/base-elements/element.js"
132707
- }
132708
- },
132709
- {
132710
- "kind": "field",
132711
- "name": "['_$sbbElement$']",
132712
- "type": {
132713
- "text": "boolean"
132714
- },
132715
- "privacy": "public",
132716
- "static": true,
132717
- "default": "true",
132718
- "inheritedFrom": {
132719
- "name": "SbbElement",
132720
- "module": "core/base-elements/element.js"
132721
- }
132722
- },
132723
- {
132724
- "kind": "field",
132725
- "name": "_controllers",
132726
- "type": {
132727
- "text": "Set<SbbReactiveController> | undefined"
132728
- },
132729
- "privacy": "private",
132730
- "inheritedFrom": {
132731
- "name": "SbbElement",
132732
- "module": "core/base-elements/element.js"
132733
- }
132734
- }
132735
- ],
132736
- "superclass": {
132737
- "name": "SbbElement",
132738
- "module": "core/base-elements.js"
132739
- },
132740
- "tagName": "sbb-train-blocked-passage",
132741
- "customElement": true
132742
- }
132743
- ],
132744
- "exports": [
132745
- {
132746
- "kind": "js",
132747
- "name": "SbbTrainBlockedPassageElement",
132748
- "declaration": {
132749
- "name": "SbbTrainBlockedPassageElement",
132750
- "module": "train/train-blocked-passage/train-blocked-passage.component.js"
132751
- }
132752
- }
132753
- ]
132754
- },
132755
132611
  {
132756
132612
  "kind": "javascript-module",
132757
132613
  "path": "train/train-formation/train-formation.component.js",
@@ -133084,6 +132940,155 @@
133084
132940
  }
133085
132941
  ]
133086
132942
  },
132943
+ {
132944
+ "kind": "javascript-module",
132945
+ "path": "train/train-blocked-passage/train-blocked-passage.component.js",
132946
+ "declarations": [
132947
+ {
132948
+ "kind": "class",
132949
+ "description": "It visually displays a blocked passage between train wagons.",
132950
+ "name": "SbbTrainBlockedPassageElement",
132951
+ "members": [
132952
+ {
132953
+ "kind": "field",
132954
+ "name": "elementName",
132955
+ "type": {
132956
+ "text": "string"
132957
+ },
132958
+ "privacy": "public",
132959
+ "static": true,
132960
+ "readonly": true,
132961
+ "default": "'sbb-train-blocked-passage'",
132962
+ "inheritedFrom": {
132963
+ "name": "SbbElement",
132964
+ "module": "core/base-elements/element.js"
132965
+ }
132966
+ },
132967
+ {
132968
+ "kind": "field",
132969
+ "name": "_hydrationRequired",
132970
+ "type": {
132971
+ "text": "boolean"
132972
+ },
132973
+ "privacy": "private",
132974
+ "default": "!!this.shadowRoot",
132975
+ "inheritedFrom": {
132976
+ "name": "SbbElement",
132977
+ "module": "core/base-elements/element.js"
132978
+ }
132979
+ },
132980
+ {
132981
+ "kind": "field",
132982
+ "name": "_hydrationComplete",
132983
+ "privacy": "private",
132984
+ "default": "new Promise<boolean>( (resolve) => (this._resolveHydration = resolve), )",
132985
+ "inheritedFrom": {
132986
+ "name": "SbbElement",
132987
+ "module": "core/base-elements/element.js"
132988
+ }
132989
+ },
132990
+ {
132991
+ "kind": "field",
132992
+ "name": "_resolveHydration",
132993
+ "type": {
132994
+ "text": "(hydrationRequired: boolean) => void"
132995
+ },
132996
+ "privacy": "private",
132997
+ "inheritedFrom": {
132998
+ "name": "SbbElement",
132999
+ "module": "core/base-elements/element.js"
133000
+ }
133001
+ },
133002
+ {
133003
+ "kind": "field",
133004
+ "name": "hydrationRequired",
133005
+ "type": {
133006
+ "text": "boolean"
133007
+ },
133008
+ "privacy": "protected",
133009
+ "description": "Returns whether hydration is required and not completed.",
133010
+ "readonly": true,
133011
+ "inheritedFrom": {
133012
+ "name": "SbbElement",
133013
+ "module": "core/base-elements/element.js"
133014
+ },
133015
+ "default": "!!this.shadowRoot"
133016
+ },
133017
+ {
133018
+ "kind": "method",
133019
+ "name": "toggleState",
133020
+ "privacy": "protected",
133021
+ "return": {
133022
+ "type": {
133023
+ "text": "void"
133024
+ }
133025
+ },
133026
+ "parameters": [
133027
+ {
133028
+ "name": "value",
133029
+ "type": {
133030
+ "text": "string"
133031
+ }
133032
+ },
133033
+ {
133034
+ "name": "force",
133035
+ "optional": true,
133036
+ "type": {
133037
+ "text": "boolean"
133038
+ }
133039
+ }
133040
+ ],
133041
+ "inheritedFrom": {
133042
+ "name": "SbbElement",
133043
+ "module": "core/base-elements/element.js"
133044
+ }
133045
+ },
133046
+ {
133047
+ "kind": "field",
133048
+ "name": "['_$sbbElement$']",
133049
+ "type": {
133050
+ "text": "boolean"
133051
+ },
133052
+ "privacy": "public",
133053
+ "static": true,
133054
+ "default": "true",
133055
+ "inheritedFrom": {
133056
+ "name": "SbbElement",
133057
+ "module": "core/base-elements/element.js"
133058
+ }
133059
+ },
133060
+ {
133061
+ "kind": "field",
133062
+ "name": "_controllers",
133063
+ "type": {
133064
+ "text": "Set<SbbReactiveController> | undefined"
133065
+ },
133066
+ "privacy": "private",
133067
+ "inheritedFrom": {
133068
+ "name": "SbbElement",
133069
+ "module": "core/base-elements/element.js"
133070
+ }
133071
+ }
133072
+ ],
133073
+ "superclass": {
133074
+ "name": "SbbElement",
133075
+ "module": "core/base-elements.js"
133076
+ },
133077
+ "tagName": "sbb-train-blocked-passage",
133078
+ "customElement": true
133079
+ }
133080
+ ],
133081
+ "exports": [
133082
+ {
133083
+ "kind": "js",
133084
+ "name": "SbbTrainBlockedPassageElement",
133085
+ "declaration": {
133086
+ "name": "SbbTrainBlockedPassageElement",
133087
+ "module": "train/train-blocked-passage/train-blocked-passage.component.js"
133088
+ }
133089
+ }
133090
+ ]
133091
+ },
133087
133092
  {
133088
133093
  "kind": "javascript-module",
133089
133094
  "path": "train/train-wagon/train-wagon.component.js",
@@ -38,6 +38,7 @@ export declare class SbbSidebarElement extends SbbSidebarElement_base {
38
38
  constructor();
39
39
  connectedCallback(): void;
40
40
  disconnectedCallback(): void;
41
+ private _closeOnNavigation;
41
42
  protected willUpdate(changedProperties: PropertyValues<this>): void;
42
43
  protected firstUpdated(changedProperties: PropertyValues<this>): void;
43
44
  /** Toggles the sidebar visibility. */
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/sidebar/sidebar/sidebar.component.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAIb,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAMtE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qDAAqD,CAAC;;AAItG;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,sBAAkD;IACvF,gBAAgC,WAAW,EAAE,MAAM,CAAiB;IACpE,OAAuB,MAAM,EAAE,cAAc,CAAuC;IAEpF,iEAAiE;IACjE,SACgB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAW;IAElD,oDAAoD;IACpD,SAEgB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAU;IAE/C,gDAAgD;IAChD,SAGgB,QAAQ,EAAE,OAAO,GAAG,KAAK,CAAW;IAEpD;;;;OAIG;IACH,SAEgB,MAAM,EAAE,OAAO,CAAS;IAExC;;;;OAIG;IACH,SAEgB,WAAW,EAAE,OAAO,CAAS;IAE7C,8EAA8E;IAC9E,IAAW,SAAS,IAAI,0BAA0B,GAAG,IAAI,CAExD;IACD,OAAO,CAAC,UAAU,CAA2C;IAE7D,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,2BAA2B,CAA2C;;IAkB9D,iBAAiB,IAAI,IAAI;IAWzB,oBAAoB,IAAI,IAAI;cAMzB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAoBzD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAM9E,sCAAsC;IAC/B,MAAM,IAAI,IAAI;IAQrB,yBAAyB;IAClB,IAAI,IAAI,IAAI;IAiCnB,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,cAAc;IAYtB,0BAA0B;IACnB,KAAK,IAAI,IAAI;IAwBpB,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,UAAU;IAkBlB,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B,OAAO,CAAC,mBAAmB;IAyB3B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,oBAAoB;cAOT,MAAM,IAAI,cAAc;CAQ5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,aAAa,EAAE,iBAAiB,CAAC;KAClC;CACF"}
1
+ {"version":3,"file":"sidebar.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/sidebar/sidebar/sidebar.component.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAIb,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAMtE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qDAAqD,CAAC;;AAItG;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,sBAAkD;IACvF,gBAAgC,WAAW,EAAE,MAAM,CAAiB;IACpE,OAAuB,MAAM,EAAE,cAAc,CAAuC;IAEpF,iEAAiE;IACjE,SACgB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAW;IAElD,oDAAoD;IACpD,SAEgB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAU;IAE/C,gDAAgD;IAChD,SAGgB,QAAQ,EAAE,OAAO,GAAG,KAAK,CAAW;IAEpD;;;;OAIG;IACH,SAEgB,MAAM,EAAE,OAAO,CAAS;IAExC;;;;OAIG;IACH,SAEgB,WAAW,EAAE,OAAO,CAAS;IAE7C,8EAA8E;IAC9E,IAAW,SAAS,IAAI,0BAA0B,GAAG,IAAI,CAExD;IACD,OAAO,CAAC,UAAU,CAA2C;IAE7D,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,2BAA2B,CAA2C;;IAkB9D,iBAAiB,IAAI,IAAI;IAmBzB,oBAAoB,IAAI,IAAI;IAc5C,OAAO,CAAC,kBAAkB,CAIxB;cAEiB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAoBzD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAM9E,sCAAsC;IAC/B,MAAM,IAAI,IAAI;IAQrB,yBAAyB;IAClB,IAAI,IAAI,IAAI;IAiCnB,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,cAAc;IAYtB,0BAA0B;IACnB,KAAK,IAAI,IAAI;IAwBpB,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,UAAU;IAkBlB,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B,OAAO,CAAC,mBAAmB;IAyB3B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,oBAAoB;cAOT,MAAM,IAAI,cAAc;CAQ5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,aAAa,EAAE,iBAAiB,CAAC;KAClC;CACF"}
@@ -1,2 +1,2 @@
1
- import { t as SbbSidebarElement } from "../../sidebar.component-DvRTyNry.js";
1
+ import { t as SbbSidebarElement } from "../../sidebar.component-BLqO52nH.js";
2
2
  export { SbbSidebarElement };
@@ -1,4 +1,4 @@
1
- import { t as SbbSidebarElement } from "../sidebar.component-DvRTyNry.js";
1
+ import { t as SbbSidebarElement } from "../sidebar.component-BLqO52nH.js";
2
2
  //#region src/elements/sidebar/sidebar.ts
3
3
  /** @entrypoint */
4
4
  SbbSidebarElement.define();
@@ -214,6 +214,9 @@ var SbbSidebarElement = (() => {
214
214
  this._lastFocusedElement = null;
215
215
  this._focusTrapController = new SbbFocusTrapController(this);
216
216
  this._escapableOverlayController = new SbbEscapableOverlayController(this);
217
+ this._closeOnNavigation = () => {
218
+ if (this._isModeOver() && this.isOpen) this.close();
219
+ };
217
220
  this.addController(new ResizeController(this, {
218
221
  skipInitial: true,
219
222
  callback: () => this._updateSidebarWidth()
@@ -227,11 +230,15 @@ var SbbSidebarElement = (() => {
227
230
  this._container = this.closest?.("sbb-sidebar-container");
228
231
  this._updateSidebarWidth();
229
232
  if (this.isOpen && this._isModeOver()) this._takeFocus();
233
+ if (!isServer) if (window.navigation) window.navigation.addEventListener("navigate", this._closeOnNavigation);
234
+ else window.addEventListener("popstate", this._closeOnNavigation);
230
235
  }
231
236
  disconnectedCallback() {
232
237
  super.disconnectedCallback();
233
238
  this.container?.style.removeProperty(this._buildCssWidthVar());
234
239
  this._container = null;
240
+ if (!isServer) if (window.navigation) window.navigation.removeEventListener("navigate", this._closeOnNavigation);
241
+ else window.removeEventListener("popstate", this._closeOnNavigation);
235
242
  }
236
243
  willUpdate(changedProperties) {
237
244
  super.willUpdate(changedProperties);
@@ -345,4 +352,4 @@ var SbbSidebarElement = (() => {
345
352
  //#endregion
346
353
  export { SbbSidebarElement as t };
347
354
 
348
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQtRHZSVHlOcnkuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NpZGViYXIvc2lkZWJhci9zaWRlYmFyLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NpZGViYXIvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLWxpbmstdGV4dC1kZWNvcmF0aW9uLWxpbmU6IG5vbmU7XG4gIC0tc2JiLXNpZGViYXItYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMSk7XG4gIC0tc2JiLXNpZGViYXItc2Nyb2xsYmFyLXBsYWNlaG9sZGVyLXdpZHRoOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0zeCk7XG4gIC0tX3NiYi1zaWRlYmFyLW1hcmdpbjogMDtcbiAgLS1fc2JiLXNpZGViYXItbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItc2lkZWJhci1tYXJnaW4pO1xuICAtLV9zYmItc2lkZWJhci10cmFuc2xhdGUteDogLTEwMCU7XG4gIC0tX3NiYi1zaWRlYmFyLXotaW5kZXg6IDI7XG4gIC0tX3NiYi1zaWRlYmFyLXBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tc2JiLXNpZGViYXItcGFkZGluZyk7XG4gIC0tX3NiYi1zaWRlYmFyLXBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpO1xuICAtLV9zYmItc2lkZWJhci1ib3JkZXItcmFkaXVzLXN0YXJ0OiB2YXIoLS1zYmItc2lkZWJhci1ib3JkZXItcmFkaXVzKTtcbiAgLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1lbmQ6IDA7XG4gIC0tX3NiYi1zaWRlYmFyLWNsb3NlLWJ1dHRvbi1zaXplOiB2YXIoLS1zYmItc2l6ZS1lbGVtZW50LXhzKTtcbiAgLS1fc2JiLXNpZGViYXItbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAyICogdmFyKC0tX3NiYi1zaWRlYmFyLW1hcmdpbikpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDMyMCl9O1xuXG4gIC8vIFN1YnRyYWN0IHRoZSB3aWR0aCBvZiB0aGUgc2Nyb2xsYmFyIGZyb20gdGhlIHBhZGRpbmcgKEV4Y2x1ZGUgaU9TIGJyb3dzZXJzIGJlY2F1c2UgdGhleSB1c2Ugb3ZlcmxheSBzY3JvbGxiYXJzKVxuICBAc3VwcG9ydHMgKHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZSkgYW5kIChub3QgKC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZSkpIHtcbiAgICAtLV9zYmItc2lkZWJhci1wYWRkaW5nLWlubGluZS1lbmQ6IGNhbGMoXG4gICAgICB2YXIoLS1zYmItc2lkZWJhci1wYWRkaW5nKSAtIHZhcigtLXNiYi1zaWRlYmFyLXNjcm9sbGJhci1wbGFjZWhvbGRlci13aWR0aClcbiAgICApO1xuICB9XG59XG5cbjpob3N0KFtjb2xvcj0nd2hpdGUnXSkge1xuICAtLXNiYi1zaWRlYmFyLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTEpO1xufVxuXG46aG9zdChbY29sb3I9J21pbGsnXSkge1xuICAtLXNiYi1zaWRlYmFyLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMpO1xufVxuXG46aG9zdCg6aXMoW21vZGU9J292ZXInXSwgOnN0YXRlKG1vZGUtb3Zlci1mb3JjZWQpOm5vdCg6c3RhdGUobW9kZS1vdmVyLWZvcmNlZC1jbG9zaW5nKSkpKSB7XG4gIC0tX3NiYi1zaWRlYmFyLW1hcmdpbjogdmFyKC0tc2JiLXNpZGViYXItbWFyZ2luKTtcbiAgLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1lbmQ6IHZhcigtLXNiYi1zaWRlYmFyLWJvcmRlci1yYWRpdXMpO1xuICAtLV9zYmItc2lkZWJhci16LWluZGV4OiAzO1xufVxuXG46aG9zdCg6aXMoOmRpcihydGwpLCBbcG9zaXRpb249J2VuZCddKSkge1xuICAtLV9zYmItc2lkZWJhci10cmFuc2xhdGUteDogMTAwJTtcbn1cblxuOmhvc3QoOmRpcihydGwpW3Bvc2l0aW9uPSdlbmQnXSkge1xuICAtLV9zYmItc2lkZWJhci10cmFuc2xhdGUteDogLTEwMCU7XG59XG5cbi5zYmItc2lkZWJhciB7XG4gIHdpZHRoOiBpbmhlcml0O1xuICBtYXgtd2lkdGg6IHZhcigtLV9zYmItc2lkZWJhci1tYXgtd2lkdGgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2lkZWJhci1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBpbnNldC1ibG9jazogMDtcbiAgei1pbmRleDogdmFyKC0tX3NiYi1zaWRlYmFyLXotaW5kZXgpO1xuICBib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOiB2YXIoLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1zdGFydCk7XG4gIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1zdGFydCk7XG4gIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1lbmQpO1xuICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLV9zYmItc2lkZWJhci1ib3JkZXItcmFkaXVzLWVuZCk7XG4gIG1hcmdpbjogdmFyKC0tX3NiYi1zaWRlYmFyLW1hcmdpbik7XG4gIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tX3NiYi1zaWRlYmFyLW1hcmdpbi1ibG9jay1zdGFydCk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXNiYi1zaWRlYmFyLWNvbnRhaW5lci1hbmltYXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLXNpZGViYXItY29udGFpbmVyLWFuaW1hdGlvbi1lYXNpbmcpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aCwgdHJhbnNsYXRlO1xuICB0cmFuc2xhdGU6IG5vbmU7XG5cbiAgOmhvc3QoW3Bvc2l0aW9uPSdlbmQnXSkgJiB7XG4gICAgaW5zZXQtaW5saW5lLWVuZDogMDtcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSAmIHtcbiAgICAvLyBTdG9wcyB0aGUgc2lkZW5hdiBmcm9tIHBva2luZyBvdXQgKGUuZy4gd2l0aCB0aGUgYm94IHNoYWRvdykgd2hpbGUgaXQncyBvZmYtc2NyZWVuLlxuICAgIC8vIFdlIGNhbid0IHVzZSBgZGlzcGxheWAgYmVjYXVzZSBpdCBpbnRlcnJ1cHRzIHRoZSB0cmFuc2l0aW9uIGFuZCBgdHJhbnNpdGlvbi1iZWhhdmlvcmBcbiAgICAvLyBpc24ndCBhdmFpbGFibGUgaW4gYWxsIGJyb3dzZXJzLlxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIDpob3N0KDppcyg6c3RhdGUoc3RhdGUtY2xvc2luZyksIDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSkgJiB7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1fc2JiLXNpZGViYXItdHJhbnNsYXRlLXgpIDA7XG4gIH1cbn1cblxuLnNiYi1zaWRlYmFyLXRpdGxlLXNlY3Rpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgZ2FwOiB2YXIoLS1zYmItc2lkZWJhci10aXRsZS1nYXApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2lkZWJhci1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IHZhcigtLXNiYi1hbmltYXRpb24tZWFzaW5nKSB2YXIoLS1zYmItc2lkZWJhci1jb250YWluZXItYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcblxuICA6aG9zdCg6c3RhdGUoc2Nyb2xsZWQpKSAmIHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LXNvZnQpO1xuICB9XG59XG5cbi5zYmItc2lkZWJhci1jb250ZW50LXNlY3Rpb24ge1xuICBAaW5jbHVkZSBzYmIuc2Nyb2xsYmFyO1xuXG4gIHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLV9zYmItc2lkZWJhci1wYWRkaW5nLWJsb2NrLXN0YXJ0KTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpIHZhcigtLV9zYmItc2lkZWJhci1wYWRkaW5nLWlubGluZS1lbmQpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBmbGV4LWdyb3c6IDE7XG5cbiAgLy8gSWYgdGhlIGVsZW1lbnQgaXMgc2Nyb2xsYWJsZSBhbmQgaGFzIG5vIGZvY3VzYWJsZSBjb250ZW50LCBpdCBnZXRzIGZvY3VzZWQuXG4gIC8vIFRvIGFkYXB0IHRvIGx5bmUgc3R5bGVzIHdlIGNvbG9yaXplIGl0XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yKTtcblxuICBAc3VwcG9ydHMgKHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZSkge1xuICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTtcbiAgfVxufVxuXG46OnNsb3R0ZWQoc2JiLXNpZGViYXItdGl0bGUpIHtcbiAgZmxleC1ncm93OiAxO1xuICBtYXJnaW4tYmxvY2s6IHZhcigtLXNiYi1zaWRlYmFyLXRpdGxlLXBhZGRpbmctYmxvY2spO1xufVxuXG46OnNsb3R0ZWQoc2JiLXNpZGViYXItY2xvc2UtYnV0dG9uKSB7XG4gIG9yZGVyOiAxO1xuXG4gIC8vIER1ZSB0byBkZXNpZ24gbmVlZHMsIHdlIGhhdmUgdG8gdHJhbnNsYXRlIHRoZSBjbG9zZSBidXR0b24gdG8gdGhlIHJpZ2h0XG4gIG1hcmdpbi1pbmxpbmUtZW5kOiBjYWxjKFxuICAgIC0xICogKHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpIC0gdmFyKC0tc2JiLXNpZGViYXItdGl0bGUtcGFkZGluZy1ibG9jaykpXG4gICk7XG4gIG1hcmdpbi1ibG9jazogdmFyKC0tc2JiLXNpZGViYXItdGl0bGUtcGFkZGluZy1ibG9jayk7XG4gIGluc2V0LWlubGluZS1lbmQ6IHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpO1xufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGV2ZW50T3B0aW9ucywgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkudHMnO1xuaW1wb3J0IHsgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMudHMnO1xuaW1wb3J0IHsgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLnRzJztcbmltcG9ydCB7IGZvcmNlVHlwZSwgaGFuZGxlRGlzdGluY3RDaGFuZ2UgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMudHMnO1xuaW1wb3J0IHsgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL2RvbS50cyc7XG5pbXBvcnQgeyBTYmJBbmltYXRpb25Db21wbGV0ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMudHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS9zdHlsZXMudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJTaWRlYmFyQ29udGFpbmVyRWxlbWVudCB9IGZyb20gJy4uL3NpZGViYXItY29udGFpbmVyL3NpZGViYXItY29udGFpbmVyLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NpZGViYXIuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGNvcnJlc3BvbmRzIHRvIGEgc2lkZWJhciB0aGF0IGNhbiBiZSBvcGVuZWQgb24gdGhlIHNpZGViYXIgY29udGFpbmVyLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gc2xvdCBhbnkgY29udGVudCBpbnRvIHRoZSBzaWRlYmFyLlxuICogQHNsb3QgdGl0bGUgLSBVc2UgdGhlIHRpdGxlIHNsb3QgdG8gYWRkIGFuIDxzYmItdGl0bGU+LlxuICovXG5leHBvcnQgY2xhc3MgU2JiU2lkZWJhckVsZW1lbnQgZXh0ZW5kcyBTYmJBbmltYXRpb25Db21wbGV0ZU1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItc2lkZWJhcic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIC8qKiBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBzaWRlYmFyLiBFaXRoZXIgYHdoaXRlYCBvciBgbWlsa2AuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGNvbG9yOiAnd2hpdGUnIHwgJ21pbGsnID0gJ3doaXRlJztcblxuICAvKiogTW9kZSBvZiB0aGUgc2lkZWJhcjsgb25lIG9mICdzaWRlJyBvciAnb3ZlcicuICovXG4gIEBmb3JjZVR5cGUoKHYpID0+ICh2ID09PSAnb3ZlcicgPyAnb3ZlcicgOiAnc2lkZScpKVxuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBtb2RlOiAnc2lkZScgfCAnb3ZlcicgPSAnc2lkZSc7XG5cbiAgLyoqIFRoZSBzaWRlIHRoYXQgdGhlIHNpZGViYXIgaXMgYXR0YWNoZWQgdG8uICovXG4gIEBmb3JjZVR5cGUoKHYpID0+ICh2ID09PSAnZW5kJyA/ICdlbmQnIDogJ3N0YXJ0JykpXG4gIEBoYW5kbGVEaXN0aW5jdENoYW5nZSgoaW5zdGFuY2UsIF9uZXdWYWx1ZSwgb2xkVmFsdWUpID0+IGluc3RhbmNlLl91cGRhdGVTaWRlYmFyV2lkdGgob2xkVmFsdWUpKVxuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBwb3NpdGlvbjogJ3N0YXJ0JyB8ICdlbmQnID0gJ3N0YXJ0JztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgc2lkZWJhciBpcyBvcGVuZWQgb3IgY2xvc2VkLlxuICAgKiBDYW4gYmUgdXNlZCB0byBpbml0aWFsbHkgc2V0IHRoZSBvcGVuZWQgc3RhdGUsIHdoZXJlXG4gICAqIHRoZSBhbmltYXRpb24gd2lsbCBiZSBza2lwcGVkLlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIG9wZW5lZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBzaWRlYmFyIHNob3VsZCBmb2N1cyB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQgYXV0b21hdGljYWxseSB3aGVuIG9wZW5lZC5cbiAgICogRGVmYXVsdHMgdG8gZmFsc2UgaW4gd2hlbiBtb2RlIGlzIHNldCB0byBgc2lkZWAsIG90aGVyd2lzZSBkZWZhdWx0cyB0byB0cnVlLlxuICAgKiBJZiBleHBsaWNpdGx5IGVuYWJsZWQsIGZvY3VzIHdpbGwgYmUgbW92ZWQgaW50byB0aGUgc2lkZWJhciBpbiBgc2lkZWAgbW9kZSBhcyB3ZWxsLlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogJ2ZvY3VzLW9uLW9wZW4nIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBmb2N1c09uT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBSZXR1cm5zIHRoZSBTYmJTaWRlYmFyQ29udGFpbmVyRWxlbWVudCB3aGVyZSB0aGlzIHNpZGViYXIgaXMgY29udGFpbmVkLiAqL1xuICBwdWJsaWMgZ2V0IGNvbnRhaW5lcigpOiBTYmJTaWRlYmFyQ29udGFpbmVyRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jb250YWluZXI7XG4gIH1cbiAgcHJpdmF0ZSBfY29udGFpbmVyOiBTYmJTaWRlYmFyQ29udGFpbmVyRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX2xhc3RGb2N1c2VkRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfZm9jdXNUcmFwQ29udHJvbGxlciA9IG5ldyBTYmJGb2N1c1RyYXBDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciA9IG5ldyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcih0aGlzKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgICAgIHNraXBJbml0aWFsOiB0cnVlLFxuICAgICAgICBjYWxsYmFjazogKCkgPT4gdGhpcy5fdXBkYXRlU2lkZWJhcldpZHRoKCksXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgIGlmICgoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQpPy5sb2NhbE5hbWUgPT09ICdzYmItc2lkZWJhci1jbG9zZS1idXR0b24nKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgdGhpcy5fY29udGFpbmVyID0gdGhpcy5jbG9zZXN0Py4oJ3NiYi1zaWRlYmFyLWNvbnRhaW5lcicpO1xuICAgIHRoaXMuX3VwZGF0ZVNpZGViYXJXaWR0aCgpO1xuXG4gICAgaWYgKHRoaXMuaXNPcGVuICYmIHRoaXMuX2lzTW9kZU92ZXIoKSkge1xuICAgICAgdGhpcy5fdGFrZUZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5jb250YWluZXI/LnN0eWxlLnJlbW92ZVByb3BlcnR5KHRoaXMuX2J1aWxkQ3NzV2lkdGhWYXIoKSk7XG4gICAgdGhpcy5fY29udGFpbmVyID0gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnb3BlbmVkJykpIHtcbiAgICAgIGlmICh0aGlzLm9wZW5lZCkge1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMub3BlbmVkKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdtb2RlJykpIHtcbiAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdvdmVyJyAmJiB0aGlzLmlzT3Blbikge1xuICAgICAgICB0aGlzLl90YWtlRm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2VkZUZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5fdXBkYXRlU2lkZWJhcldpZHRoKCk7XG4gIH1cblxuICAvKiogVG9nZ2xlcyB0aGUgc2lkZWJhciB2aXNpYmlsaXR5LiAqL1xuICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmluZycgfHwgdGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIE9wZW5zIHRoZSBzaWRlYmFyLiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8ICF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXJ0QW5pbWF0aW9uKCk7XG5cbiAgICBpZiAoIWlzU2VydmVyICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmxvY2FsTmFtZSAhPT0gJ2JvZHknKSB7XG4gICAgICB0aGlzLl9sYXN0Rm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIH1cblxuICAgIHRoaXMub3BlbmVkID0gdHJ1ZTtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5pbmcnO1xuXG4gICAgY29uc3QgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24gPSB0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpIHx8ICF0aGlzLmlzQ29ubmVjdGVkO1xuICAgIGNvbnN0IGlzRHVyaW5nSW5pdGlhbGl6YXRpb24gPSAhdGhpcy5oYXNVcGRhdGVkO1xuXG4gICAgaWYgKCEoaXNEdXJpbmdJbml0aWFsaXphdGlvbiB8fCBpc1plcm9BbmltYXRpb25EdXJhdGlvbikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnc2tpcC1hbmltYXRpb24nKTtcblxuICAgIC8vIFdlIGhhdmUgdG8gd2FpdCBmb3IgdGhlIGZpcnN0IHVwZGF0ZSB0byBiZSBjb21wbGV0ZWRcbiAgICAvLyBpbiBvcmRlciB0byBoYXZlIHRoZSBzaXplIG9mIHRoZSBzaWRlYmFyIHJlYWR5IGZvciB0aGUgYW5pbWF0aW9uLlxuICAgIGlmIChpc0R1cmluZ0luaXRpYWxpemF0aW9uKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4gdGhpcy5faGFuZGxlT3BlbmluZygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLXNpZGViYXItY29udGFpbmVyLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlT3BlbmluZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5lZCc7XG5cbiAgICAvLyBXZSBoYXZlIHRvIGVuc3VyZSB0aGF0IHJlbW92aW5nIHRoZSBhbmltYXRpb24gc2tpcCBpbnN0cnVjdGlvbiBpcyBkb25lIGEgdGljayBsYXRlci5cbiAgICAvLyBPdGhlcndpc2UsIGl0J3MgcmVtb3ZlZCB0b28gZWFybHkgYW5kIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgZWZmZWN0LlxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnc2tpcC1hbmltYXRpb24nKSk7XG5cbiAgICB0aGlzLl90YWtlRm9jdXMoKTtcbiAgICB0aGlzLnN0b3BBbmltYXRpb24oKTtcbiAgICB0aGlzLmRpc3BhdGNoT3BlbkV2ZW50KCk7XG4gIH1cblxuICAvKiogQ2xvc2VzIHRoZSBzaWRlYmFyLiAqL1xuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJyB8fCB0aGlzLnN0YXRlID09PSAnY2xvc2VkJyB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhcnRBbmltYXRpb24oKTtcblxuICAgIGNvbnN0IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uID0gdGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTtcblxuICAgIGlmICghdGhpcy5oYXNVcGRhdGVkIHx8IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdza2lwLWFuaW1hdGlvbicpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YXRlID0gJ2Nsb3NpbmcnO1xuICAgIH1cblxuICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAoIXRoaXMuaGFzVXBkYXRlZCB8fCBpc1plcm9BbmltYXRpb25EdXJhdGlvbikge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIC8vIFdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgcmVtb3ZpbmcgdGhlIGFuaW1hdGlvbiBza2lwIGluc3RydWN0aW9uIGlzIGRvbmUgYSB0aWNrIGxhdGVyLlxuICAgIC8vIE90aGVyd2lzZSwgaXQncyByZW1vdmVkIHRvbyBlYXJseSBhbmQgaXQgZG9lc24ndCBoYXZlIGFueSBlZmZlY3QuXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdza2lwLWFuaW1hdGlvbicpKTtcbiAgICB0aGlzLmNlZGVGb2N1cygpO1xuXG4gICAgaWYgKCFpc1NlcnZlciAmJiAodGhpcy5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB8fCB0aGlzLl9pc01vZGVPdmVyKCkpKSB7XG4gICAgICBpZiAodGhpcy5fbGFzdEZvY3VzZWRFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuX2xhc3RGb2N1c2VkRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFdlIGRvbid0IGtub3cgd2hlcmUgdG8gc2V0IHRoZSBmb2N1cywgYnV0IGhhdmUgdG8gcmVtb3ZlIGl0LCBzbyB3ZSBjYWxsIGJsdXJcbiAgICAgICAgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmJsdXIoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fbGFzdEZvY3VzZWRFbGVtZW50ID0gbnVsbDtcblxuICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIF90YWtlRm9jdXMoKTogdm9pZCB7XG4gICAgLy8gV2UgcHJldmVudCBjYWxsaW5nIHRoZSBmb2N1cyBzdHVmZiB3aGVuIG5vdCBuZWVkZWRcbiAgICBpZiAoIXRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaXNNb2RlT3ZlciA9IHRoaXMuX2lzTW9kZU92ZXIoKTtcblxuICAgIGlmIChpc01vZGVPdmVyIHx8IHRoaXMuZm9jdXNPbk9wZW4pIHtcbiAgICAgIHRoaXMuX2ZvY3VzVHJhcENvbnRyb2xsZXIuZm9jdXNJbml0aWFsRWxlbWVudCgpO1xuICAgIH1cblxuICAgIGlmIChpc01vZGVPdmVyKSB7XG4gICAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG4gICAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIEludGVybmFsIG1ldGhvZCB0aGF0IHdlIHVzZSBleHRlcm5hbGx5LiBgcHJvdGVjdGVkYCBwcmVzZXJ2ZXMgdHlwZSBpbmZvcm1hdGlvbiBmb3IgdHlwZSBzYWZlIGFjY2Vzcy5cbiAgcHJvdGVjdGVkIGNlZGVGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTaWRlYmFyV2lkdGgob2xkUG9zaXRpb24/OiB0aGlzWydwb3NpdGlvbiddKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAob2xkUG9zaXRpb24pIHtcbiAgICAgIGNvbnRhaW5lci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0aGlzLl9idWlsZENzc1dpZHRoVmFyKG9sZFBvc2l0aW9uKSk7XG4gICAgfVxuXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLm9mZnNldFdpZHRoO1xuICAgIGlmICghd2lkdGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdWYWx1ZSA9IGAke3dpZHRofXB4YDtcbiAgICBjb25zdCBhY3R1YWxWYWx1ZSA9IGNvbnRhaW5lci5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHRoaXMuX2J1aWxkQ3NzV2lkdGhWYXIoKSk7XG5cbiAgICBpZiAoYWN0dWFsVmFsdWUgPT09IG5ld1ZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KHRoaXMuX2J1aWxkQ3NzV2lkdGhWYXIoKSwgbmV3VmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYnVpbGRDc3NXaWR0aFZhcihwb3NpdGlvbiA9IHRoaXMucG9zaXRpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBgLS1fc2JiLXNpZGViYXItY29udGFpbmVyLSR7cG9zaXRpb259LXdpZHRoYDtcbiAgfVxuXG4gIHByaXZhdGUgX2lzTW9kZU92ZXIoKTogYm9vbGVhbiB7XG4gICAgLy8gSWYgdGhlIG1pbmltdW0gc3BhY2UgYXR0cmlidXRlIGlzIHNldCwgdGhlIHNpZGViYXIgc2hvdWxkIGJlaGF2ZSBsaWtlIGluIG1vZGUgb3Zlci5cbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnb3ZlcicgfHwgdGhpcy5tYXRjaGVzKCc6c3RhdGUobW9kZS1vdmVyLWZvcmNlZCknKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uVHJhbnNpdGlvbkVuZChldmVudDogVHJhbnNpdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgLy8gV2UgZW5zdXJlIHRoYXQgd2UgcmVhY3QgdG8gdGhlIGZhZGUgaW4gdHJhbnNpdGlvbiBvbiB0aGUgc2JiLXNpZGViYXIgZGl2XG4gICAgaWYgKGV2ZW50LnByb3BlcnR5TmFtZSAhPT0gJ3RyYW5zbGF0ZScgfHwgZXZlbnQudGFyZ2V0ICE9PSBldmVudC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgQGV2ZW50T3B0aW9ucyh7IHBhc3NpdmU6IHRydWUgfSlcbiAgcHJpdmF0ZSBfZGV0ZWN0U2Nyb2xsZWRTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKFxuICAgICAgJ3Njcm9sbGVkJyxcbiAgICAgICh0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5zYmItc2lkZWJhci1jb250ZW50LXNlY3Rpb24nKT8uc2Nyb2xsVG9wID8/IDApID4gMCxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cInNiYi1zaWRlYmFyXCIgQHRyYW5zaXRpb25lbmQ9JHt0aGlzLl9vblRyYW5zaXRpb25FbmR9PlxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1zaWRlYmFyLXRpdGxlLXNlY3Rpb25cIj48c2xvdCBuYW1lPVwidGl0bGUtc2VjdGlvblwiPjwvc2xvdD48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2lkZWJhci1jb250ZW50LXNlY3Rpb25cIiBAc2Nyb2xsPSR7KCkgPT4gdGhpcy5fZGV0ZWN0U2Nyb2xsZWRTdGF0ZSgpfT5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+YDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNpZGViYXInOiBTYmJTaWRlYmFyRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUM0QmEsMkJBQWlCO21CQUFTLDBCQUEwQix3QkFBd0I7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQUE1RSwwQkFBMEIsWUFBa0Q7Ozt3QkFLdEYsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7dUJBSTNCLFdBQVcsTUFBTyxNQUFNLFNBQVMsU0FBUyxPQUFRLEVBQ2xELFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBOztJQUkzQixXQUFXLE1BQU8sTUFBTSxRQUFRLFFBQVEsUUFBUztJQUNqRCxzQkFBc0IsVUFBVSxXQUFXLGFBQWEsU0FBUyxvQkFBb0IsU0FBUyxDQUFDO0lBQy9GLFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQTtJQUFDO3lCQVEzQixXQUFXLEVBQ1gsU0FBUztJQUFFLE1BQU07SUFBUyxTQUFTO0lBQU0sQ0FBQyxDQUFBOzhCQVExQyxXQUFXLEVBQ1gsU0FBUztJQUFFLE1BQU07SUFBUyxXQUFXO0lBQWlCLENBQUMsQ0FBQTt1Q0F1UHZELGFBQWEsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBO0FBblJoQyxnQkFBQSxNQUFBLE1BQUEsbUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJ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
355
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQtQkxxTzUybkguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NpZGViYXIvc2lkZWJhci9zaWRlYmFyLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NpZGViYXIvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLWxpbmstdGV4dC1kZWNvcmF0aW9uLWxpbmU6IG5vbmU7XG4gIC0tc2JiLXNpZGViYXItYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMSk7XG4gIC0tc2JiLXNpZGViYXItc2Nyb2xsYmFyLXBsYWNlaG9sZGVyLXdpZHRoOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0zeCk7XG4gIC0tX3NiYi1zaWRlYmFyLW1hcmdpbjogMDtcbiAgLS1fc2JiLXNpZGViYXItbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItc2lkZWJhci1tYXJnaW4pO1xuICAtLV9zYmItc2lkZWJhci10cmFuc2xhdGUteDogLTEwMCU7XG4gIC0tX3NiYi1zaWRlYmFyLXotaW5kZXg6IDI7XG4gIC0tX3NiYi1zaWRlYmFyLXBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tc2JiLXNpZGViYXItcGFkZGluZyk7XG4gIC0tX3NiYi1zaWRlYmFyLXBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpO1xuICAtLV9zYmItc2lkZWJhci1ib3JkZXItcmFkaXVzLXN0YXJ0OiB2YXIoLS1zYmItc2lkZWJhci1ib3JkZXItcmFkaXVzKTtcbiAgLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1lbmQ6IDA7XG4gIC0tX3NiYi1zaWRlYmFyLWNsb3NlLWJ1dHRvbi1zaXplOiB2YXIoLS1zYmItc2l6ZS1lbGVtZW50LXhzKTtcbiAgLS1fc2JiLXNpZGViYXItbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAyICogdmFyKC0tX3NiYi1zaWRlYmFyLW1hcmdpbikpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDMyMCl9O1xuXG4gIC8vIFN1YnRyYWN0IHRoZSB3aWR0aCBvZiB0aGUgc2Nyb2xsYmFyIGZyb20gdGhlIHBhZGRpbmcgKEV4Y2x1ZGUgaU9TIGJyb3dzZXJzIGJlY2F1c2UgdGhleSB1c2Ugb3ZlcmxheSBzY3JvbGxiYXJzKVxuICBAc3VwcG9ydHMgKHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZSkgYW5kIChub3QgKC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZSkpIHtcbiAgICAtLV9zYmItc2lkZWJhci1wYWRkaW5nLWlubGluZS1lbmQ6IGNhbGMoXG4gICAgICB2YXIoLS1zYmItc2lkZWJhci1wYWRkaW5nKSAtIHZhcigtLXNiYi1zaWRlYmFyLXNjcm9sbGJhci1wbGFjZWhvbGRlci13aWR0aClcbiAgICApO1xuICB9XG59XG5cbjpob3N0KFtjb2xvcj0nd2hpdGUnXSkge1xuICAtLXNiYi1zaWRlYmFyLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTEpO1xufVxuXG46aG9zdChbY29sb3I9J21pbGsnXSkge1xuICAtLXNiYi1zaWRlYmFyLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMpO1xufVxuXG46aG9zdCg6aXMoW21vZGU9J292ZXInXSwgOnN0YXRlKG1vZGUtb3Zlci1mb3JjZWQpOm5vdCg6c3RhdGUobW9kZS1vdmVyLWZvcmNlZC1jbG9zaW5nKSkpKSB7XG4gIC0tX3NiYi1zaWRlYmFyLW1hcmdpbjogdmFyKC0tc2JiLXNpZGViYXItbWFyZ2luKTtcbiAgLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1lbmQ6IHZhcigtLXNiYi1zaWRlYmFyLWJvcmRlci1yYWRpdXMpO1xuICAtLV9zYmItc2lkZWJhci16LWluZGV4OiAzO1xufVxuXG46aG9zdCg6aXMoOmRpcihydGwpLCBbcG9zaXRpb249J2VuZCddKSkge1xuICAtLV9zYmItc2lkZWJhci10cmFuc2xhdGUteDogMTAwJTtcbn1cblxuOmhvc3QoOmRpcihydGwpW3Bvc2l0aW9uPSdlbmQnXSkge1xuICAtLV9zYmItc2lkZWJhci10cmFuc2xhdGUteDogLTEwMCU7XG59XG5cbi5zYmItc2lkZWJhciB7XG4gIHdpZHRoOiBpbmhlcml0O1xuICBtYXgtd2lkdGg6IHZhcigtLV9zYmItc2lkZWJhci1tYXgtd2lkdGgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2lkZWJhci1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBpbnNldC1ibG9jazogMDtcbiAgei1pbmRleDogdmFyKC0tX3NiYi1zaWRlYmFyLXotaW5kZXgpO1xuICBib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOiB2YXIoLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1zdGFydCk7XG4gIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1zdGFydCk7XG4gIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1lbmQpO1xuICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLV9zYmItc2lkZWJhci1ib3JkZXItcmFkaXVzLWVuZCk7XG4gIG1hcmdpbjogdmFyKC0tX3NiYi1zaWRlYmFyLW1hcmdpbik7XG4gIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tX3NiYi1zaWRlYmFyLW1hcmdpbi1ibG9jay1zdGFydCk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXNiYi1zaWRlYmFyLWNvbnRhaW5lci1hbmltYXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLXNpZGViYXItY29udGFpbmVyLWFuaW1hdGlvbi1lYXNpbmcpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aCwgdHJhbnNsYXRlO1xuICB0cmFuc2xhdGU6IG5vbmU7XG5cbiAgOmhvc3QoW3Bvc2l0aW9uPSdlbmQnXSkgJiB7XG4gICAgaW5zZXQtaW5saW5lLWVuZDogMDtcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSAmIHtcbiAgICAvLyBTdG9wcyB0aGUgc2lkZW5hdiBmcm9tIHBva2luZyBvdXQgKGUuZy4gd2l0aCB0aGUgYm94IHNoYWRvdykgd2hpbGUgaXQncyBvZmYtc2NyZWVuLlxuICAgIC8vIFdlIGNhbid0IHVzZSBgZGlzcGxheWAgYmVjYXVzZSBpdCBpbnRlcnJ1cHRzIHRoZSB0cmFuc2l0aW9uIGFuZCBgdHJhbnNpdGlvbi1iZWhhdmlvcmBcbiAgICAvLyBpc24ndCBhdmFpbGFibGUgaW4gYWxsIGJyb3dzZXJzLlxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIDpob3N0KDppcyg6c3RhdGUoc3RhdGUtY2xvc2luZyksIDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSkgJiB7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1fc2JiLXNpZGViYXItdHJhbnNsYXRlLXgpIDA7XG4gIH1cbn1cblxuLnNiYi1zaWRlYmFyLXRpdGxlLXNlY3Rpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgZ2FwOiB2YXIoLS1zYmItc2lkZWJhci10aXRsZS1nYXApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2lkZWJhci1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IHZhcigtLXNiYi1hbmltYXRpb24tZWFzaW5nKSB2YXIoLS1zYmItc2lkZWJhci1jb250YWluZXItYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcblxuICA6aG9zdCg6c3RhdGUoc2Nyb2xsZWQpKSAmIHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LXNvZnQpO1xuICB9XG59XG5cbi5zYmItc2lkZWJhci1jb250ZW50LXNlY3Rpb24ge1xuICBAaW5jbHVkZSBzYmIuc2Nyb2xsYmFyO1xuXG4gIHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLV9zYmItc2lkZWJhci1wYWRkaW5nLWJsb2NrLXN0YXJ0KTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpIHZhcigtLV9zYmItc2lkZWJhci1wYWRkaW5nLWlubGluZS1lbmQpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBmbGV4LWdyb3c6IDE7XG5cbiAgLy8gSWYgdGhlIGVsZW1lbnQgaXMgc2Nyb2xsYWJsZSBhbmQgaGFzIG5vIGZvY3VzYWJsZSBjb250ZW50LCBpdCBnZXRzIGZvY3VzZWQuXG4gIC8vIFRvIGFkYXB0IHRvIGx5bmUgc3R5bGVzIHdlIGNvbG9yaXplIGl0XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yKTtcblxuICBAc3VwcG9ydHMgKHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZSkge1xuICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTtcbiAgfVxufVxuXG46OnNsb3R0ZWQoc2JiLXNpZGViYXItdGl0bGUpIHtcbiAgZmxleC1ncm93OiAxO1xuICBtYXJnaW4tYmxvY2s6IHZhcigtLXNiYi1zaWRlYmFyLXRpdGxlLXBhZGRpbmctYmxvY2spO1xufVxuXG46OnNsb3R0ZWQoc2JiLXNpZGViYXItY2xvc2UtYnV0dG9uKSB7XG4gIG9yZGVyOiAxO1xuXG4gIC8vIER1ZSB0byBkZXNpZ24gbmVlZHMsIHdlIGhhdmUgdG8gdHJhbnNsYXRlIHRoZSBjbG9zZSBidXR0b24gdG8gdGhlIHJpZ2h0XG4gIG1hcmdpbi1pbmxpbmUtZW5kOiBjYWxjKFxuICAgIC0xICogKHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpIC0gdmFyKC0tc2JiLXNpZGViYXItdGl0bGUtcGFkZGluZy1ibG9jaykpXG4gICk7XG4gIG1hcmdpbi1ibG9jazogdmFyKC0tc2JiLXNpZGViYXItdGl0bGUtcGFkZGluZy1ibG9jayk7XG4gIGluc2V0LWlubGluZS1lbmQ6IHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpO1xufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGV2ZW50T3B0aW9ucywgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkudHMnO1xuaW1wb3J0IHsgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMudHMnO1xuaW1wb3J0IHsgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLnRzJztcbmltcG9ydCB7IGZvcmNlVHlwZSwgaGFuZGxlRGlzdGluY3RDaGFuZ2UgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMudHMnO1xuaW1wb3J0IHsgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL2RvbS50cyc7XG5pbXBvcnQgeyBTYmJBbmltYXRpb25Db21wbGV0ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMudHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS9zdHlsZXMudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJTaWRlYmFyQ29udGFpbmVyRWxlbWVudCB9IGZyb20gJy4uL3NpZGViYXItY29udGFpbmVyL3NpZGViYXItY29udGFpbmVyLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NpZGViYXIuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGNvcnJlc3BvbmRzIHRvIGEgc2lkZWJhciB0aGF0IGNhbiBiZSBvcGVuZWQgb24gdGhlIHNpZGViYXIgY29udGFpbmVyLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gc2xvdCBhbnkgY29udGVudCBpbnRvIHRoZSBzaWRlYmFyLlxuICogQHNsb3QgdGl0bGUgLSBVc2UgdGhlIHRpdGxlIHNsb3QgdG8gYWRkIGFuIDxzYmItdGl0bGU+LlxuICovXG5leHBvcnQgY2xhc3MgU2JiU2lkZWJhckVsZW1lbnQgZXh0ZW5kcyBTYmJBbmltYXRpb25Db21wbGV0ZU1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItc2lkZWJhcic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIC8qKiBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBzaWRlYmFyLiBFaXRoZXIgYHdoaXRlYCBvciBgbWlsa2AuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGNvbG9yOiAnd2hpdGUnIHwgJ21pbGsnID0gJ3doaXRlJztcblxuICAvKiogTW9kZSBvZiB0aGUgc2lkZWJhcjsgb25lIG9mICdzaWRlJyBvciAnb3ZlcicuICovXG4gIEBmb3JjZVR5cGUoKHYpID0+ICh2ID09PSAnb3ZlcicgPyAnb3ZlcicgOiAnc2lkZScpKVxuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBtb2RlOiAnc2lkZScgfCAnb3ZlcicgPSAnc2lkZSc7XG5cbiAgLyoqIFRoZSBzaWRlIHRoYXQgdGhlIHNpZGViYXIgaXMgYXR0YWNoZWQgdG8uICovXG4gIEBmb3JjZVR5cGUoKHYpID0+ICh2ID09PSAnZW5kJyA/ICdlbmQnIDogJ3N0YXJ0JykpXG4gIEBoYW5kbGVEaXN0aW5jdENoYW5nZSgoaW5zdGFuY2UsIF9uZXdWYWx1ZSwgb2xkVmFsdWUpID0+IGluc3RhbmNlLl91cGRhdGVTaWRlYmFyV2lkdGgob2xkVmFsdWUpKVxuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBwb3NpdGlvbjogJ3N0YXJ0JyB8ICdlbmQnID0gJ3N0YXJ0JztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgc2lkZWJhciBpcyBvcGVuZWQgb3IgY2xvc2VkLlxuICAgKiBDYW4gYmUgdXNlZCB0byBpbml0aWFsbHkgc2V0IHRoZSBvcGVuZWQgc3RhdGUsIHdoZXJlXG4gICAqIHRoZSBhbmltYXRpb24gd2lsbCBiZSBza2lwcGVkLlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIG9wZW5lZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBzaWRlYmFyIHNob3VsZCBmb2N1cyB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQgYXV0b21hdGljYWxseSB3aGVuIG9wZW5lZC5cbiAgICogRGVmYXVsdHMgdG8gZmFsc2UgaW4gd2hlbiBtb2RlIGlzIHNldCB0byBgc2lkZWAsIG90aGVyd2lzZSBkZWZhdWx0cyB0byB0cnVlLlxuICAgKiBJZiBleHBsaWNpdGx5IGVuYWJsZWQsIGZvY3VzIHdpbGwgYmUgbW92ZWQgaW50byB0aGUgc2lkZWJhciBpbiBgc2lkZWAgbW9kZSBhcyB3ZWxsLlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogJ2ZvY3VzLW9uLW9wZW4nIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBmb2N1c09uT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBSZXR1cm5zIHRoZSBTYmJTaWRlYmFyQ29udGFpbmVyRWxlbWVudCB3aGVyZSB0aGlzIHNpZGViYXIgaXMgY29udGFpbmVkLiAqL1xuICBwdWJsaWMgZ2V0IGNvbnRhaW5lcigpOiBTYmJTaWRlYmFyQ29udGFpbmVyRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jb250YWluZXI7XG4gIH1cbiAgcHJpdmF0ZSBfY29udGFpbmVyOiBTYmJTaWRlYmFyQ29udGFpbmVyRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX2xhc3RGb2N1c2VkRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfZm9jdXNUcmFwQ29udHJvbGxlciA9IG5ldyBTYmJGb2N1c1RyYXBDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciA9IG5ldyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcih0aGlzKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgICAgIHNraXBJbml0aWFsOiB0cnVlLFxuICAgICAgICBjYWxsYmFjazogKCkgPT4gdGhpcy5fdXBkYXRlU2lkZWJhcldpZHRoKCksXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgIGlmICgoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQpPy5sb2NhbE5hbWUgPT09ICdzYmItc2lkZWJhci1jbG9zZS1idXR0b24nKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgdGhpcy5fY29udGFpbmVyID0gdGhpcy5jbG9zZXN0Py4oJ3NiYi1zaWRlYmFyLWNvbnRhaW5lcicpO1xuICAgIHRoaXMuX3VwZGF0ZVNpZGViYXJXaWR0aCgpO1xuXG4gICAgaWYgKHRoaXMuaXNPcGVuICYmIHRoaXMuX2lzTW9kZU92ZXIoKSkge1xuICAgICAgdGhpcy5fdGFrZUZvY3VzKCk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgaWYgKHdpbmRvdy5uYXZpZ2F0aW9uKSB7XG4gICAgICAgIHdpbmRvdy5uYXZpZ2F0aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ25hdmlnYXRlJywgdGhpcy5fY2xvc2VPbk5hdmlnYXRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgdGhpcy5fY2xvc2VPbk5hdmlnYXRpb24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuY29udGFpbmVyPy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0aGlzLl9idWlsZENzc1dpZHRoVmFyKCkpO1xuICAgIHRoaXMuX2NvbnRhaW5lciA9IG51bGw7XG5cbiAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICBpZiAod2luZG93Lm5hdmlnYXRpb24pIHtcbiAgICAgICAgd2luZG93Lm5hdmlnYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbmF2aWdhdGUnLCB0aGlzLl9jbG9zZU9uTmF2aWdhdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCB0aGlzLl9jbG9zZU9uTmF2aWdhdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VPbk5hdmlnYXRpb24gPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHRoaXMuX2lzTW9kZU92ZXIoKSAmJiB0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ29wZW5lZCcpKSB7XG4gICAgICBpZiAodGhpcy5vcGVuZWQpIHtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLm9wZW5lZCkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbW9kZScpKSB7XG4gICAgICBpZiAodGhpcy5tb2RlID09PSAnb3ZlcicgJiYgdGhpcy5pc09wZW4pIHtcbiAgICAgICAgdGhpcy5fdGFrZUZvY3VzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNlZGVGb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX3VwZGF0ZVNpZGViYXJXaWR0aCgpO1xuICB9XG5cbiAgLyoqIFRvZ2dsZXMgdGhlIHNpZGViYXIgdmlzaWJpbGl0eS4gKi9cbiAgcHVibGljIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBPcGVucyB0aGUgc2lkZWJhci4gKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJyB8fCB0aGlzLnN0YXRlID09PSAnb3BlbmVkJyB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZU9wZW5FdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGFydEFuaW1hdGlvbigpO1xuXG4gICAgaWYgKCFpc1NlcnZlciAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50Py5sb2NhbE5hbWUgIT09ICdib2R5Jykge1xuICAgICAgdGhpcy5fbGFzdEZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5lZCA9IHRydWU7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcblxuICAgIGNvbnN0IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uID0gdGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSB8fCAhdGhpcy5pc0Nvbm5lY3RlZDtcbiAgICBjb25zdCBpc0R1cmluZ0luaXRpYWxpemF0aW9uID0gIXRoaXMuaGFzVXBkYXRlZDtcblxuICAgIGlmICghKGlzRHVyaW5nSW5pdGlhbGl6YXRpb24gfHwgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ3NraXAtYW5pbWF0aW9uJyk7XG5cbiAgICAvLyBXZSBoYXZlIHRvIHdhaXQgZm9yIHRoZSBmaXJzdCB1cGRhdGUgdG8gYmUgY29tcGxldGVkXG4gICAgLy8gaW4gb3JkZXIgdG8gaGF2ZSB0aGUgc2l6ZSBvZiB0aGUgc2lkZWJhciByZWFkeSBmb3IgdGhlIGFuaW1hdGlvbi5cbiAgICBpZiAoaXNEdXJpbmdJbml0aWFsaXphdGlvbikge1xuICAgICAgdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpID0+IHRoaXMuX2hhbmRsZU9wZW5pbmcoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi1zaWRlYmFyLWNvbnRhaW5lci1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuXG4gICAgLy8gV2UgaGF2ZSB0byBlbnN1cmUgdGhhdCByZW1vdmluZyB0aGUgYW5pbWF0aW9uIHNraXAgaW5zdHJ1Y3Rpb24gaXMgZG9uZSBhIHRpY2sgbGF0ZXIuXG4gICAgLy8gT3RoZXJ3aXNlLCBpdCdzIHJlbW92ZWQgdG9vIGVhcmx5IGFuZCBpdCBkb2Vzbid0IGhhdmUgYW55IGVmZmVjdC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ3NraXAtYW5pbWF0aW9uJykpO1xuXG4gICAgdGhpcy5fdGFrZUZvY3VzKCk7XG4gICAgdGhpcy5zdG9wQW5pbWF0aW9uKCk7XG4gICAgdGhpcy5kaXNwYXRjaE9wZW5FdmVudCgpO1xuICB9XG5cbiAgLyoqIENsb3NlcyB0aGUgc2lkZWJhci4gKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnY2xvc2luZycgfHwgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NlZCcgfHwgIXRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXJ0QW5pbWF0aW9uKCk7XG5cbiAgICBjb25zdCBpc1plcm9BbmltYXRpb25EdXJhdGlvbiA9IHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk7XG5cbiAgICBpZiAoIXRoaXMuaGFzVXBkYXRlZCB8fCBpc1plcm9BbmltYXRpb25EdXJhdGlvbikge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnc2tpcC1hbmltYXRpb24nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5lZCA9IGZhbHNlO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKCF0aGlzLmhhc1VwZGF0ZWQgfHwgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24pIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVDbG9zaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2VkJztcbiAgICAvLyBXZSBoYXZlIHRvIGVuc3VyZSB0aGF0IHJlbW92aW5nIHRoZSBhbmltYXRpb24gc2tpcCBpbnN0cnVjdGlvbiBpcyBkb25lIGEgdGljayBsYXRlci5cbiAgICAvLyBPdGhlcndpc2UsIGl0J3MgcmVtb3ZlZCB0b28gZWFybHkgYW5kIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgZWZmZWN0LlxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnc2tpcC1hbmltYXRpb24nKSk7XG4gICAgdGhpcy5jZWRlRm9jdXMoKTtcblxuICAgIGlmICghaXNTZXJ2ZXIgJiYgKHRoaXMuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkgfHwgdGhpcy5faXNNb2RlT3ZlcigpKSkge1xuICAgICAgaWYgKHRoaXMuX2xhc3RGb2N1c2VkRWxlbWVudCkge1xuICAgICAgICB0aGlzLl9sYXN0Rm9jdXNlZEVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBXZSBkb24ndCBrbm93IHdoZXJlIHRvIHNldCB0aGUgZm9jdXMsIGJ1dCBoYXZlIHRvIHJlbW92ZSBpdCwgc28gd2UgY2FsbCBibHVyXG4gICAgICAgIChkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5ibHVyKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2xhc3RGb2N1c2VkRWxlbWVudCA9IG51bGw7XG5cbiAgICB0aGlzLnN0b3BBbmltYXRpb24oKTtcbiAgICB0aGlzLmRpc3BhdGNoQ2xvc2VFdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdGFrZUZvY3VzKCk6IHZvaWQge1xuICAgIC8vIFdlIHByZXZlbnQgY2FsbGluZyB0aGUgZm9jdXMgc3R1ZmYgd2hlbiBub3QgbmVlZGVkXG4gICAgaWYgKCF0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGlzTW9kZU92ZXIgPSB0aGlzLl9pc01vZGVPdmVyKCk7XG5cbiAgICBpZiAoaXNNb2RlT3ZlciB8fCB0aGlzLmZvY3VzT25PcGVuKSB7XG4gICAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcbiAgICB9XG5cbiAgICBpZiAoaXNNb2RlT3Zlcikge1xuICAgICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuY29ubmVjdCgpO1xuICAgICAgdGhpcy5fZm9jdXNUcmFwQ29udHJvbGxlci5lbmFibGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvLyBJbnRlcm5hbCBtZXRob2QgdGhhdCB3ZSB1c2UgZXh0ZXJuYWxseS4gYHByb3RlY3RlZGAgcHJlc2VydmVzIHR5cGUgaW5mb3JtYXRpb24gZm9yIHR5cGUgc2FmZSBhY2Nlc3MuXG4gIHByb3RlY3RlZCBjZWRlRm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9jdXNUcmFwQ29udHJvbGxlci5lbmFibGVkID0gZmFsc2U7XG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlU2lkZWJhcldpZHRoKG9sZFBvc2l0aW9uPzogdGhpc1sncG9zaXRpb24nXSk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG9sZFBvc2l0aW9uKSB7XG4gICAgICBjb250YWluZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkodGhpcy5fYnVpbGRDc3NXaWR0aFZhcihvbGRQb3NpdGlvbikpO1xuICAgIH1cblxuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5vZmZzZXRXaWR0aDtcbiAgICBpZiAoIXdpZHRoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV3VmFsdWUgPSBgJHt3aWR0aH1weGA7XG4gICAgY29uc3QgYWN0dWFsVmFsdWUgPSBjb250YWluZXIuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSh0aGlzLl9idWlsZENzc1dpZHRoVmFyKCkpO1xuXG4gICAgaWYgKGFjdHVhbFZhbHVlID09PSBuZXdWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnRhaW5lci5zdHlsZS5zZXRQcm9wZXJ0eSh0aGlzLl9idWlsZENzc1dpZHRoVmFyKCksIG5ld1ZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2J1aWxkQ3NzV2lkdGhWYXIocG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYC0tX3NiYi1zaWRlYmFyLWNvbnRhaW5lci0ke3Bvc2l0aW9ufS13aWR0aGA7XG4gIH1cblxuICBwcml2YXRlIF9pc01vZGVPdmVyKCk6IGJvb2xlYW4ge1xuICAgIC8vIElmIHRoZSBtaW5pbXVtIHNwYWNlIGF0dHJpYnV0ZSBpcyBzZXQsIHRoZSBzaWRlYmFyIHNob3VsZCBiZWhhdmUgbGlrZSBpbiBtb2RlIG92ZXIuXG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ292ZXInIHx8IHRoaXMubWF0Y2hlcygnOnN0YXRlKG1vZGUtb3Zlci1mb3JjZWQpJyk7XG4gIH1cblxuICBwcml2YXRlIF9vblRyYW5zaXRpb25FbmQoZXZlbnQ6IFRyYW5zaXRpb25FdmVudCk6IHZvaWQge1xuICAgIC8vIFdlIGVuc3VyZSB0aGF0IHdlIHJlYWN0IHRvIHRoZSBmYWRlIGluIHRyYW5zaXRpb24gb24gdGhlIHNiYi1zaWRlYmFyIGRpdlxuICAgIGlmIChldmVudC5wcm9wZXJ0eU5hbWUgIT09ICd0cmFuc2xhdGUnIHx8IGV2ZW50LnRhcmdldCAhPT0gZXZlbnQuY3VycmVudFRhcmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIEBldmVudE9wdGlvbnMoeyBwYXNzaXZlOiB0cnVlIH0pXG4gIHByaXZhdGUgX2RldGVjdFNjcm9sbGVkU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVTdGF0ZShcbiAgICAgICdzY3JvbGxlZCcsXG4gICAgICAodGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcuc2JiLXNpZGViYXItY29udGVudC1zZWN0aW9uJyk/LnNjcm9sbFRvcCA/PyAwKSA+IDAsXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCJzYmItc2lkZWJhclwiIEB0cmFuc2l0aW9uZW5kPSR7dGhpcy5fb25UcmFuc2l0aW9uRW5kfT5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2lkZWJhci10aXRsZS1zZWN0aW9uXCI+PHNsb3QgbmFtZT1cInRpdGxlLXNlY3Rpb25cIj48L3Nsb3Q+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXNpZGViYXItY29udGVudC1zZWN0aW9uXCIgQHNjcm9sbD0keygpID0+IHRoaXMuX2RldGVjdFNjcm9sbGVkU3RhdGUoKX0+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PmA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1zaWRlYmFyJzogU2JiU2lkZWJhckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDNEJhLDJCQUFpQjttQkFBUywwQkFBMEIsd0JBQXdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Y0FBNUUsMEJBQTBCLFlBQWtEOzs7d0JBS3RGLFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBO3VCQUkzQixXQUFXLE1BQU8sTUFBTSxTQUFTLFNBQVMsT0FBUSxFQUNsRCxTQUFTLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTs7SUFJM0IsV0FBVyxNQUFPLE1BQU0sUUFBUSxRQUFRLFFBQVM7SUFDakQsc0JBQXNCLFVBQVUsV0FBVyxhQUFhLFNBQVMsb0JBQW9CLFNBQVMsQ0FBQztJQUMvRixTQUFTLEVBQUUsU0FBUyxNQUFNLENBQUE7SUFBQzt5QkFRM0IsV0FBVyxFQUNYLFNBQVM7SUFBRSxNQUFNO0lBQVMsU0FBUztJQUFNLENBQUMsQ0FBQTs4QkFRMUMsV0FBVyxFQUNYLFNBQVM7SUFBRSxNQUFNO0lBQVMsV0FBVztJQUFpQixDQUFDLENBQUE7dUNBNlF2RCxhQUFhLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTtBQXpTaEMsZ0JBQUEsTUFBQSxNQUFBLG1CQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsV0FBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFLLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBTCxRQUFLOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEscUJBQUEseUJBQUE7QUFLckIsZ0JBQUEsTUFBQSxNQUFBLGtCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsVUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFJLE1BQUEsS0FBQSxVQUFBO0FB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
@@ -2,7 +2,7 @@ import { t as SbbSidebarCloseButtonElement } from "./sidebar-close-button.compon
2
2
  import { t as SbbSidebarContainerElement } from "./sidebar-container.component-BDSoDAym.js";
3
3
  import { t as SbbSidebarContentElement } from "./sidebar-content.component-JcVKpKbK.js";
4
4
  import { t as SbbSidebarTitleElement } from "./sidebar-title.component-BA_j-Igh.js";
5
- import { t as SbbSidebarElement } from "./sidebar.component-DvRTyNry.js";
5
+ import { t as SbbSidebarElement } from "./sidebar.component-BLqO52nH.js";
6
6
  import "./sidebar.pure.js";
7
7
  //#region src/elements/sidebar.ts
8
8
  /** @entrypoint */
@@ -2,5 +2,5 @@ import { t as SbbSidebarCloseButtonElement } from "./sidebar-close-button.compon
2
2
  import { t as SbbSidebarContainerElement } from "./sidebar-container.component-BDSoDAym.js";
3
3
  import { t as SbbSidebarContentElement } from "./sidebar-content.component-JcVKpKbK.js";
4
4
  import { t as SbbSidebarTitleElement } from "./sidebar-title.component-BA_j-Igh.js";
5
- import { t as SbbSidebarElement } from "./sidebar.component-DvRTyNry.js";
5
+ import { t as SbbSidebarElement } from "./sidebar.component-BLqO52nH.js";
6
6
  export { SbbSidebarCloseButtonElement, SbbSidebarContainerElement, SbbSidebarContentElement, SbbSidebarElement, SbbSidebarTitleElement };
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@sbb-esta/lyne-elements-dev",
3
- "version": "4.0.0-dev.1775635677",
3
+ "version": "4.0.0-dev.1775640696",
4
4
  "description": "Lyne Design System",
5
5
  "keywords": [
6
6
  "design system",
7
7
  "web components",
8
8
  "lit",
9
- "https://github.com/sbb-design-systems/lyne-components/commit/f4e87b53538d1c3c358a193d96359c84374514a6"
9
+ "https://github.com/sbb-design-systems/lyne-components/commit/cd16ec1b0b64126f7805b34ddbb85c1d1f30a1ca"
10
10
  ],
11
11
  "type": "module",
12
12
  "exports": {
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../sidebar.component-DxOx02l6.js";
1
+ import { t as e } from "../../sidebar.component-Dsx1FAg0.js";
2
2
  export { e as SbbSidebarElement };
@@ -1,4 +1,4 @@
1
- import { t as e } from "../sidebar.component-DxOx02l6.js";
1
+ import { t as e } from "../sidebar.component-Dsx1FAg0.js";
2
2
  e.define(), console.warn("The entrypoint '@sbb-esta/elements/sidebar/sidebar.js' has been deprecated.\nUse either '@sbb-esta/elements/sidebar.js' or '@sbb-esta/elements/sidebar.pure.js' instead.");
3
3
  //#endregion
4
4
  export { e as SbbSidebarElement };
@@ -152,7 +152,9 @@ var g = ":host{--sbb-link-text-decoration-line: none;--sbb-sidebar-background-co
152
152
  return this._container;
153
153
  }
154
154
  constructor() {
155
- super(), this.#e = (t(this, v), t(this, b, "white")), this.#t = (t(this, x), t(this, C, "side")), this.#n = (t(this, w), t(this, E, "start")), this.#r = (t(this, D), t(this, k, !1)), this.#i = (t(this, A), t(this, M, !1)), this._container = (t(this, N), null), this._lastFocusedElement = null, this._focusTrapController = new h(this), this._escapableOverlayController = new p(this), this.addController(new m(this, {
155
+ super(), this.#e = (t(this, v), t(this, b, "white")), this.#t = (t(this, x), t(this, C, "side")), this.#n = (t(this, w), t(this, E, "start")), this.#r = (t(this, D), t(this, k, !1)), this.#i = (t(this, A), t(this, M, !1)), this._container = (t(this, N), null), this._lastFocusedElement = null, this._focusTrapController = new h(this), this._escapableOverlayController = new p(this), this._closeOnNavigation = () => {
156
+ this._isModeOver() && this.isOpen && this.close();
157
+ }, this.addController(new m(this, {
156
158
  skipInitial: !0,
157
159
  callback: () => this._updateSidebarWidth()
158
160
  })), this.addEventListener?.("click", (e) => {
@@ -160,10 +162,10 @@ var g = ":host{--sbb-link-text-decoration-line: none;--sbb-sidebar-background-co
160
162
  });
161
163
  }
162
164
  connectedCallback() {
163
- super.connectedCallback(), this._container = this.closest?.("sbb-sidebar-container"), this._updateSidebarWidth(), this.isOpen && this._isModeOver() && this._takeFocus();
165
+ super.connectedCallback(), this._container = this.closest?.("sbb-sidebar-container"), this._updateSidebarWidth(), this.isOpen && this._isModeOver() && this._takeFocus(), r || (window.navigation ? window.navigation.addEventListener("navigate", this._closeOnNavigation) : window.addEventListener("popstate", this._closeOnNavigation));
164
166
  }
165
167
  disconnectedCallback() {
166
- super.disconnectedCallback(), this.container?.style.removeProperty(this._buildCssWidthVar()), this._container = null;
168
+ super.disconnectedCallback(), this.container?.style.removeProperty(this._buildCssWidthVar()), this._container = null, r || (window.navigation ? window.navigation.removeEventListener("navigate", this._closeOnNavigation) : window.removeEventListener("popstate", this._closeOnNavigation));
167
169
  }
168
170
  willUpdate(e) {
169
171
  super.willUpdate(e), e.has("opened") && (this.opened ? this.open() : this.opened || this.close()), e.has("mode") && (this.mode === "over" && this.isOpen ? this._takeFocus() : this.cedeFocus());
package/sidebar.js CHANGED
@@ -2,7 +2,7 @@ import { t as e } from "./sidebar-close-button.component-BEYnX3Hk.js";
2
2
  import { t } from "./sidebar-container.component-BGh7mxq4.js";
3
3
  import { t as n } from "./sidebar-content.component-BEI3kpFh.js";
4
4
  import { t as r } from "./sidebar-title.component-CvKixoOS.js";
5
- import { t as i } from "./sidebar.component-DxOx02l6.js";
5
+ import { t as i } from "./sidebar.component-Dsx1FAg0.js";
6
6
  import "./sidebar.pure.js";
7
7
  i.define(), e.define(), t.define(), n.define(), r.define();
8
8
  //#endregion
package/sidebar.pure.js CHANGED
@@ -2,5 +2,5 @@ import { t as e } from "./sidebar-close-button.component-BEYnX3Hk.js";
2
2
  import { t } from "./sidebar-container.component-BGh7mxq4.js";
3
3
  import { t as n } from "./sidebar-content.component-BEI3kpFh.js";
4
4
  import { t as r } from "./sidebar-title.component-CvKixoOS.js";
5
- import { t as i } from "./sidebar.component-DxOx02l6.js";
5
+ import { t as i } from "./sidebar.component-Dsx1FAg0.js";
6
6
  export { e as SbbSidebarCloseButtonElement, t as SbbSidebarContainerElement, n as SbbSidebarContentElement, i as SbbSidebarElement, r as SbbSidebarTitleElement };