@sbb-esta/lyne-elements-dev 4.6.0-dev.1772526455 → 4.6.0-dev.1772535081
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.
- package/core/styles/core.scss +4 -7
- package/core.css +5 -8
- package/custom-elements.json +185 -185
- package/development/form-field/form-field/form-field.component.js +2 -1
- package/development/status/status.component.d.ts.map +1 -1
- package/development/status/status.component.js +20 -26
- package/form-field/form-field/form-field.component.js +1 -1
- package/off-brand-theme.css +5 -8
- package/package.json +2 -2
- package/safety-theme.css +5 -8
- package/standard-theme.css +5 -8
- package/status/status.component.js +27 -29
package/core/styles/core.scss
CHANGED
|
@@ -120,6 +120,9 @@ $theme: 'standard' !default;
|
|
|
120
120
|
with (
|
|
121
121
|
$theme: $theme
|
|
122
122
|
);
|
|
123
|
+
@use '../../status/status.global' as status with (
|
|
124
|
+
$theme: $theme
|
|
125
|
+
);
|
|
123
126
|
@use '../../tabs/common/tab-group-common.global' as tab-group-common with (
|
|
124
127
|
$theme: $theme
|
|
125
128
|
);
|
|
@@ -173,6 +176,7 @@ $theme: 'standard' !default;
|
|
|
173
176
|
@include radio-button-group.base;
|
|
174
177
|
@include selection-action-panel.base;
|
|
175
178
|
@include selection-expansion-panel.base;
|
|
179
|
+
@include status.base;
|
|
176
180
|
@include tab-group-common.base;
|
|
177
181
|
@include tab-label-common.base;
|
|
178
182
|
@include visual-checkbox.base;
|
|
@@ -748,13 +752,6 @@ sbb-notification:has(sbb-title) {
|
|
|
748
752
|
}
|
|
749
753
|
}
|
|
750
754
|
|
|
751
|
-
sbb-status:has(sbb-title) {
|
|
752
|
-
--sbb-status-gap: var(--sbb-spacing-responsive-xxxs);
|
|
753
|
-
--_sbb-status-text-color-override: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));
|
|
754
|
-
--_sbb-status-title-font-size: var(--sbb-heading-font-size-5);
|
|
755
|
-
--_sbb-status-title-line-height: var(--sbb-typo-line-height-heading);
|
|
756
|
-
}
|
|
757
|
-
|
|
758
755
|
.sbb-overlay-outlet {
|
|
759
756
|
position: fixed;
|
|
760
757
|
inset: 0;
|
package/core.css
CHANGED
|
@@ -1536,6 +1536,11 @@
|
|
|
1536
1536
|
--sbb-selection-panel-input-padding-block-m
|
|
1537
1537
|
);
|
|
1538
1538
|
--sbb-selection-expansion-panel-content-padding-inline: var(--sbb-selection-panel-input-padding-inline-m);
|
|
1539
|
+
--sbb-status-color: var(--sbb-color-4);
|
|
1540
|
+
--sbb-status-gap: var(--sbb-spacing-fixed-1x);
|
|
1541
|
+
--sbb-status-font-size: var(--sbb-text-font-size-s);
|
|
1542
|
+
--sbb-status-title-color: var(--sbb-color-granite);
|
|
1543
|
+
--sbb-status-title-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));
|
|
1539
1544
|
--sbb-tab-group-content-gap-size-s: var(--sbb-spacing-responsive-xs);
|
|
1540
1545
|
--sbb-tab-group-content-gap-size-l: var(--sbb-spacing-responsive-s);
|
|
1541
1546
|
--sbb-tab-group-content-gap-size-xl: var(--sbb-spacing-responsive-m);
|
|
@@ -2234,14 +2239,6 @@ sbb-notification:has(sbb-title)[size=s] {
|
|
|
2234
2239
|
--_sbb-notification-icon-authoritative-line-height: var(--sbb-typo-line-height-text);
|
|
2235
2240
|
}
|
|
2236
2241
|
|
|
2237
|
-
sbb-status:has(sbb-title) {
|
|
2238
|
-
--sbb-status-gap: var(--sbb-spacing-responsive-xxxs);
|
|
2239
|
-
--_sbb-status-text-color-override: var(--sbb-color-granite);
|
|
2240
|
-
--_sbb-status-text-color-override: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));
|
|
2241
|
-
--_sbb-status-title-font-size: var(--sbb-heading-font-size-5);
|
|
2242
|
-
--_sbb-status-title-line-height: var(--sbb-typo-line-height-heading);
|
|
2243
|
-
}
|
|
2244
|
-
|
|
2245
2242
|
.sbb-overlay-outlet {
|
|
2246
2243
|
position: fixed;
|
|
2247
2244
|
inset: 0;
|
package/custom-elements.json
CHANGED
|
@@ -45544,6 +45544,163 @@
|
|
|
45544
45544
|
}
|
|
45545
45545
|
]
|
|
45546
45546
|
},
|
|
45547
|
+
{
|
|
45548
|
+
"kind": "javascript-module",
|
|
45549
|
+
"path": "container/container/container.component.js",
|
|
45550
|
+
"declarations": [
|
|
45551
|
+
{
|
|
45552
|
+
"kind": "class",
|
|
45553
|
+
"description": "It displays its content with the default page spacing.",
|
|
45554
|
+
"name": "SbbContainerElement",
|
|
45555
|
+
"cssProperties": [
|
|
45556
|
+
{
|
|
45557
|
+
"description": "Use this variable to override the default page spacing. Note that overriding this will disable the standard responsive spacing behavior of the container.",
|
|
45558
|
+
"name": "--sbb-page-spacing-padding"
|
|
45559
|
+
}
|
|
45560
|
+
],
|
|
45561
|
+
"slots": [
|
|
45562
|
+
{
|
|
45563
|
+
"description": "Use the unnamed slot to add anything to the container.",
|
|
45564
|
+
"name": ""
|
|
45565
|
+
},
|
|
45566
|
+
{
|
|
45567
|
+
"description": "The slot used by the sbb-sticky-bar component.",
|
|
45568
|
+
"name": "sticky-bar"
|
|
45569
|
+
},
|
|
45570
|
+
{
|
|
45571
|
+
"description": "The slot used to slot an `sbb-image` to use as background.",
|
|
45572
|
+
"name": "image"
|
|
45573
|
+
}
|
|
45574
|
+
],
|
|
45575
|
+
"members": [
|
|
45576
|
+
{
|
|
45577
|
+
"kind": "field",
|
|
45578
|
+
"name": "expanded",
|
|
45579
|
+
"type": {
|
|
45580
|
+
"text": "boolean"
|
|
45581
|
+
},
|
|
45582
|
+
"privacy": "public",
|
|
45583
|
+
"default": "false",
|
|
45584
|
+
"description": "Whether the container is expanded.",
|
|
45585
|
+
"attribute": "expanded",
|
|
45586
|
+
"reflects": true
|
|
45587
|
+
},
|
|
45588
|
+
{
|
|
45589
|
+
"kind": "field",
|
|
45590
|
+
"name": "backgroundExpanded",
|
|
45591
|
+
"type": {
|
|
45592
|
+
"text": "boolean"
|
|
45593
|
+
},
|
|
45594
|
+
"privacy": "public",
|
|
45595
|
+
"default": "false",
|
|
45596
|
+
"description": "Whether the background color is shown on full container width on large screens.",
|
|
45597
|
+
"attribute": "background-expanded",
|
|
45598
|
+
"reflects": true
|
|
45599
|
+
},
|
|
45600
|
+
{
|
|
45601
|
+
"kind": "field",
|
|
45602
|
+
"name": "color",
|
|
45603
|
+
"type": {
|
|
45604
|
+
"text": "| 'transparent'\n | 'white'\n | 'milk'\n | 'midnight'\n | 'charcoal'"
|
|
45605
|
+
},
|
|
45606
|
+
"privacy": "public",
|
|
45607
|
+
"default": "'white'",
|
|
45608
|
+
"description": "Color of the container, like transparent, white etc.",
|
|
45609
|
+
"attribute": "color",
|
|
45610
|
+
"reflects": true
|
|
45611
|
+
},
|
|
45612
|
+
{
|
|
45613
|
+
"kind": "method",
|
|
45614
|
+
"name": "toggleState",
|
|
45615
|
+
"privacy": "protected",
|
|
45616
|
+
"return": {
|
|
45617
|
+
"type": {
|
|
45618
|
+
"text": "void"
|
|
45619
|
+
}
|
|
45620
|
+
},
|
|
45621
|
+
"parameters": [
|
|
45622
|
+
{
|
|
45623
|
+
"name": "value",
|
|
45624
|
+
"type": {
|
|
45625
|
+
"text": "string"
|
|
45626
|
+
}
|
|
45627
|
+
},
|
|
45628
|
+
{
|
|
45629
|
+
"name": "force",
|
|
45630
|
+
"optional": true,
|
|
45631
|
+
"type": {
|
|
45632
|
+
"text": "boolean"
|
|
45633
|
+
}
|
|
45634
|
+
}
|
|
45635
|
+
],
|
|
45636
|
+
"inheritedFrom": {
|
|
45637
|
+
"name": "SbbElementInternalsMixin",
|
|
45638
|
+
"module": "core/mixins/element-internals-mixin.js"
|
|
45639
|
+
}
|
|
45640
|
+
}
|
|
45641
|
+
],
|
|
45642
|
+
"attributes": [
|
|
45643
|
+
{
|
|
45644
|
+
"name": "expanded",
|
|
45645
|
+
"type": {
|
|
45646
|
+
"text": "boolean"
|
|
45647
|
+
},
|
|
45648
|
+
"default": "false",
|
|
45649
|
+
"description": "Whether the container is expanded.",
|
|
45650
|
+
"fieldName": "expanded"
|
|
45651
|
+
},
|
|
45652
|
+
{
|
|
45653
|
+
"name": "background-expanded",
|
|
45654
|
+
"type": {
|
|
45655
|
+
"text": "boolean"
|
|
45656
|
+
},
|
|
45657
|
+
"default": "false",
|
|
45658
|
+
"description": "Whether the background color is shown on full container width on large screens.",
|
|
45659
|
+
"fieldName": "backgroundExpanded"
|
|
45660
|
+
},
|
|
45661
|
+
{
|
|
45662
|
+
"name": "color",
|
|
45663
|
+
"type": {
|
|
45664
|
+
"text": "| 'transparent'\n | 'white'\n | 'milk'\n | 'midnight'\n | 'charcoal'"
|
|
45665
|
+
},
|
|
45666
|
+
"default": "'white'",
|
|
45667
|
+
"description": "Color of the container, like transparent, white etc.",
|
|
45668
|
+
"fieldName": "color"
|
|
45669
|
+
}
|
|
45670
|
+
],
|
|
45671
|
+
"mixins": [
|
|
45672
|
+
{
|
|
45673
|
+
"name": "SbbElementInternalsMixin",
|
|
45674
|
+
"module": "core/mixins.js"
|
|
45675
|
+
}
|
|
45676
|
+
],
|
|
45677
|
+
"superclass": {
|
|
45678
|
+
"name": "LitElement",
|
|
45679
|
+
"package": "lit"
|
|
45680
|
+
},
|
|
45681
|
+
"tagName": "sbb-container",
|
|
45682
|
+
"customElement": true
|
|
45683
|
+
}
|
|
45684
|
+
],
|
|
45685
|
+
"exports": [
|
|
45686
|
+
{
|
|
45687
|
+
"kind": "js",
|
|
45688
|
+
"name": "SbbContainerElement",
|
|
45689
|
+
"declaration": {
|
|
45690
|
+
"name": "SbbContainerElement",
|
|
45691
|
+
"module": "container/container/container.component.js"
|
|
45692
|
+
}
|
|
45693
|
+
},
|
|
45694
|
+
{
|
|
45695
|
+
"kind": "custom-element-definition",
|
|
45696
|
+
"name": "sbb-container",
|
|
45697
|
+
"declaration": {
|
|
45698
|
+
"name": "SbbContainerElement",
|
|
45699
|
+
"module": "container/container/container.component.js"
|
|
45700
|
+
}
|
|
45701
|
+
}
|
|
45702
|
+
]
|
|
45703
|
+
},
|
|
45547
45704
|
{
|
|
45548
45705
|
"kind": "javascript-module",
|
|
45549
45706
|
"path": "container/sticky-bar/sticky-bar.component.js",
|
|
@@ -45927,163 +46084,6 @@
|
|
|
45927
46084
|
}
|
|
45928
46085
|
]
|
|
45929
46086
|
},
|
|
45930
|
-
{
|
|
45931
|
-
"kind": "javascript-module",
|
|
45932
|
-
"path": "container/container/container.component.js",
|
|
45933
|
-
"declarations": [
|
|
45934
|
-
{
|
|
45935
|
-
"kind": "class",
|
|
45936
|
-
"description": "It displays its content with the default page spacing.",
|
|
45937
|
-
"name": "SbbContainerElement",
|
|
45938
|
-
"cssProperties": [
|
|
45939
|
-
{
|
|
45940
|
-
"description": "Use this variable to override the default page spacing. Note that overriding this will disable the standard responsive spacing behavior of the container.",
|
|
45941
|
-
"name": "--sbb-page-spacing-padding"
|
|
45942
|
-
}
|
|
45943
|
-
],
|
|
45944
|
-
"slots": [
|
|
45945
|
-
{
|
|
45946
|
-
"description": "Use the unnamed slot to add anything to the container.",
|
|
45947
|
-
"name": ""
|
|
45948
|
-
},
|
|
45949
|
-
{
|
|
45950
|
-
"description": "The slot used by the sbb-sticky-bar component.",
|
|
45951
|
-
"name": "sticky-bar"
|
|
45952
|
-
},
|
|
45953
|
-
{
|
|
45954
|
-
"description": "The slot used to slot an `sbb-image` to use as background.",
|
|
45955
|
-
"name": "image"
|
|
45956
|
-
}
|
|
45957
|
-
],
|
|
45958
|
-
"members": [
|
|
45959
|
-
{
|
|
45960
|
-
"kind": "field",
|
|
45961
|
-
"name": "expanded",
|
|
45962
|
-
"type": {
|
|
45963
|
-
"text": "boolean"
|
|
45964
|
-
},
|
|
45965
|
-
"privacy": "public",
|
|
45966
|
-
"default": "false",
|
|
45967
|
-
"description": "Whether the container is expanded.",
|
|
45968
|
-
"attribute": "expanded",
|
|
45969
|
-
"reflects": true
|
|
45970
|
-
},
|
|
45971
|
-
{
|
|
45972
|
-
"kind": "field",
|
|
45973
|
-
"name": "backgroundExpanded",
|
|
45974
|
-
"type": {
|
|
45975
|
-
"text": "boolean"
|
|
45976
|
-
},
|
|
45977
|
-
"privacy": "public",
|
|
45978
|
-
"default": "false",
|
|
45979
|
-
"description": "Whether the background color is shown on full container width on large screens.",
|
|
45980
|
-
"attribute": "background-expanded",
|
|
45981
|
-
"reflects": true
|
|
45982
|
-
},
|
|
45983
|
-
{
|
|
45984
|
-
"kind": "field",
|
|
45985
|
-
"name": "color",
|
|
45986
|
-
"type": {
|
|
45987
|
-
"text": "| 'transparent'\n | 'white'\n | 'milk'\n | 'midnight'\n | 'charcoal'"
|
|
45988
|
-
},
|
|
45989
|
-
"privacy": "public",
|
|
45990
|
-
"default": "'white'",
|
|
45991
|
-
"description": "Color of the container, like transparent, white etc.",
|
|
45992
|
-
"attribute": "color",
|
|
45993
|
-
"reflects": true
|
|
45994
|
-
},
|
|
45995
|
-
{
|
|
45996
|
-
"kind": "method",
|
|
45997
|
-
"name": "toggleState",
|
|
45998
|
-
"privacy": "protected",
|
|
45999
|
-
"return": {
|
|
46000
|
-
"type": {
|
|
46001
|
-
"text": "void"
|
|
46002
|
-
}
|
|
46003
|
-
},
|
|
46004
|
-
"parameters": [
|
|
46005
|
-
{
|
|
46006
|
-
"name": "value",
|
|
46007
|
-
"type": {
|
|
46008
|
-
"text": "string"
|
|
46009
|
-
}
|
|
46010
|
-
},
|
|
46011
|
-
{
|
|
46012
|
-
"name": "force",
|
|
46013
|
-
"optional": true,
|
|
46014
|
-
"type": {
|
|
46015
|
-
"text": "boolean"
|
|
46016
|
-
}
|
|
46017
|
-
}
|
|
46018
|
-
],
|
|
46019
|
-
"inheritedFrom": {
|
|
46020
|
-
"name": "SbbElementInternalsMixin",
|
|
46021
|
-
"module": "core/mixins/element-internals-mixin.js"
|
|
46022
|
-
}
|
|
46023
|
-
}
|
|
46024
|
-
],
|
|
46025
|
-
"attributes": [
|
|
46026
|
-
{
|
|
46027
|
-
"name": "expanded",
|
|
46028
|
-
"type": {
|
|
46029
|
-
"text": "boolean"
|
|
46030
|
-
},
|
|
46031
|
-
"default": "false",
|
|
46032
|
-
"description": "Whether the container is expanded.",
|
|
46033
|
-
"fieldName": "expanded"
|
|
46034
|
-
},
|
|
46035
|
-
{
|
|
46036
|
-
"name": "background-expanded",
|
|
46037
|
-
"type": {
|
|
46038
|
-
"text": "boolean"
|
|
46039
|
-
},
|
|
46040
|
-
"default": "false",
|
|
46041
|
-
"description": "Whether the background color is shown on full container width on large screens.",
|
|
46042
|
-
"fieldName": "backgroundExpanded"
|
|
46043
|
-
},
|
|
46044
|
-
{
|
|
46045
|
-
"name": "color",
|
|
46046
|
-
"type": {
|
|
46047
|
-
"text": "| 'transparent'\n | 'white'\n | 'milk'\n | 'midnight'\n | 'charcoal'"
|
|
46048
|
-
},
|
|
46049
|
-
"default": "'white'",
|
|
46050
|
-
"description": "Color of the container, like transparent, white etc.",
|
|
46051
|
-
"fieldName": "color"
|
|
46052
|
-
}
|
|
46053
|
-
],
|
|
46054
|
-
"mixins": [
|
|
46055
|
-
{
|
|
46056
|
-
"name": "SbbElementInternalsMixin",
|
|
46057
|
-
"module": "core/mixins.js"
|
|
46058
|
-
}
|
|
46059
|
-
],
|
|
46060
|
-
"superclass": {
|
|
46061
|
-
"name": "LitElement",
|
|
46062
|
-
"package": "lit"
|
|
46063
|
-
},
|
|
46064
|
-
"tagName": "sbb-container",
|
|
46065
|
-
"customElement": true
|
|
46066
|
-
}
|
|
46067
|
-
],
|
|
46068
|
-
"exports": [
|
|
46069
|
-
{
|
|
46070
|
-
"kind": "js",
|
|
46071
|
-
"name": "SbbContainerElement",
|
|
46072
|
-
"declaration": {
|
|
46073
|
-
"name": "SbbContainerElement",
|
|
46074
|
-
"module": "container/container/container.component.js"
|
|
46075
|
-
}
|
|
46076
|
-
},
|
|
46077
|
-
{
|
|
46078
|
-
"kind": "custom-element-definition",
|
|
46079
|
-
"name": "sbb-container",
|
|
46080
|
-
"declaration": {
|
|
46081
|
-
"name": "SbbContainerElement",
|
|
46082
|
-
"module": "container/container/container.component.js"
|
|
46083
|
-
}
|
|
46084
|
-
}
|
|
46085
|
-
]
|
|
46086
|
-
},
|
|
46087
46087
|
{
|
|
46088
46088
|
"kind": "javascript-module",
|
|
46089
46089
|
"path": "core/a11y/arrow-navigation.js",
|
|
@@ -64709,12 +64709,12 @@
|
|
|
64709
64709
|
},
|
|
64710
64710
|
{
|
|
64711
64711
|
"kind": "javascript-module",
|
|
64712
|
-
"path": "datepicker/datepicker-
|
|
64712
|
+
"path": "datepicker/datepicker-next-day/datepicker-next-day.component.js",
|
|
64713
64713
|
"declarations": [
|
|
64714
64714
|
{
|
|
64715
64715
|
"kind": "class",
|
|
64716
|
-
"description": "Combined with a `sbb-datepicker`, it can be used to move the date
|
|
64717
|
-
"name": "
|
|
64716
|
+
"description": "Combined with a `sbb-datepicker`, it can be used to move the date ahead.",
|
|
64717
|
+
"name": "SbbDatepickerNextDayElement",
|
|
64718
64718
|
"members": [
|
|
64719
64719
|
{
|
|
64720
64720
|
"kind": "field",
|
|
@@ -64727,7 +64727,7 @@
|
|
|
64727
64727
|
"name": "SbbDatepickerButtonBase",
|
|
64728
64728
|
"module": "datepicker/common/datepicker-button.js"
|
|
64729
64729
|
},
|
|
64730
|
-
"default": "'chevron-small-
|
|
64730
|
+
"default": "'chevron-small-right-small'"
|
|
64731
64731
|
},
|
|
64732
64732
|
{
|
|
64733
64733
|
"kind": "field",
|
|
@@ -64736,7 +64736,7 @@
|
|
|
64736
64736
|
"text": "Record<string, string>"
|
|
64737
64737
|
},
|
|
64738
64738
|
"privacy": "protected",
|
|
64739
|
-
"default": "
|
|
64739
|
+
"default": "i18nNextDay",
|
|
64740
64740
|
"inheritedFrom": {
|
|
64741
64741
|
"name": "SbbDatepickerButton",
|
|
64742
64742
|
"module": "datepicker/common/datepicker-button.js"
|
|
@@ -64749,7 +64749,7 @@
|
|
|
64749
64749
|
"text": "(_currentDate: string) => Record<string, string>"
|
|
64750
64750
|
},
|
|
64751
64751
|
"privacy": "protected",
|
|
64752
|
-
"default": "
|
|
64752
|
+
"default": "i18nSelectNextDay",
|
|
64753
64753
|
"inheritedFrom": {
|
|
64754
64754
|
"name": "SbbDatepickerButton",
|
|
64755
64755
|
"module": "datepicker/common/datepicker-button.js"
|
|
@@ -64779,7 +64779,7 @@
|
|
|
64779
64779
|
},
|
|
64780
64780
|
{
|
|
64781
64781
|
"kind": "method",
|
|
64782
|
-
"name": "
|
|
64782
|
+
"name": "_isAfterMaxDate",
|
|
64783
64783
|
"privacy": "private",
|
|
64784
64784
|
"return": {
|
|
64785
64785
|
"type": {
|
|
@@ -65564,7 +65564,7 @@
|
|
|
65564
65564
|
"module": "datepicker/common.js"
|
|
65565
65565
|
},
|
|
65566
65566
|
"classGenerics": "T = Date",
|
|
65567
|
-
"tagName": "sbb-datepicker-
|
|
65567
|
+
"tagName": "sbb-datepicker-next-day",
|
|
65568
65568
|
"customElement": true,
|
|
65569
65569
|
"attributes": [
|
|
65570
65570
|
{
|
|
@@ -65649,30 +65649,30 @@
|
|
|
65649
65649
|
"exports": [
|
|
65650
65650
|
{
|
|
65651
65651
|
"kind": "js",
|
|
65652
|
-
"name": "
|
|
65652
|
+
"name": "SbbDatepickerNextDayElement",
|
|
65653
65653
|
"declaration": {
|
|
65654
|
-
"name": "
|
|
65655
|
-
"module": "datepicker/datepicker-
|
|
65654
|
+
"name": "SbbDatepickerNextDayElement",
|
|
65655
|
+
"module": "datepicker/datepicker-next-day/datepicker-next-day.component.js"
|
|
65656
65656
|
}
|
|
65657
65657
|
},
|
|
65658
65658
|
{
|
|
65659
65659
|
"kind": "custom-element-definition",
|
|
65660
|
-
"name": "sbb-datepicker-
|
|
65660
|
+
"name": "sbb-datepicker-next-day",
|
|
65661
65661
|
"declaration": {
|
|
65662
|
-
"name": "
|
|
65663
|
-
"module": "datepicker/datepicker-
|
|
65662
|
+
"name": "SbbDatepickerNextDayElement",
|
|
65663
|
+
"module": "datepicker/datepicker-next-day/datepicker-next-day.component.js"
|
|
65664
65664
|
}
|
|
65665
65665
|
}
|
|
65666
65666
|
]
|
|
65667
65667
|
},
|
|
65668
65668
|
{
|
|
65669
65669
|
"kind": "javascript-module",
|
|
65670
|
-
"path": "datepicker/datepicker-
|
|
65670
|
+
"path": "datepicker/datepicker-previous-day/datepicker-previous-day.component.js",
|
|
65671
65671
|
"declarations": [
|
|
65672
65672
|
{
|
|
65673
65673
|
"kind": "class",
|
|
65674
|
-
"description": "Combined with a `sbb-datepicker`, it can be used to move the date
|
|
65675
|
-
"name": "
|
|
65674
|
+
"description": "Combined with a `sbb-datepicker`, it can be used to move the date back.",
|
|
65675
|
+
"name": "SbbDatepickerPreviousDayElement",
|
|
65676
65676
|
"members": [
|
|
65677
65677
|
{
|
|
65678
65678
|
"kind": "field",
|
|
@@ -65685,7 +65685,7 @@
|
|
|
65685
65685
|
"name": "SbbDatepickerButtonBase",
|
|
65686
65686
|
"module": "datepicker/common/datepicker-button.js"
|
|
65687
65687
|
},
|
|
65688
|
-
"default": "'chevron-small-
|
|
65688
|
+
"default": "'chevron-small-left-small'"
|
|
65689
65689
|
},
|
|
65690
65690
|
{
|
|
65691
65691
|
"kind": "field",
|
|
@@ -65694,7 +65694,7 @@
|
|
|
65694
65694
|
"text": "Record<string, string>"
|
|
65695
65695
|
},
|
|
65696
65696
|
"privacy": "protected",
|
|
65697
|
-
"default": "
|
|
65697
|
+
"default": "i18nPreviousDay",
|
|
65698
65698
|
"inheritedFrom": {
|
|
65699
65699
|
"name": "SbbDatepickerButton",
|
|
65700
65700
|
"module": "datepicker/common/datepicker-button.js"
|
|
@@ -65707,7 +65707,7 @@
|
|
|
65707
65707
|
"text": "(_currentDate: string) => Record<string, string>"
|
|
65708
65708
|
},
|
|
65709
65709
|
"privacy": "protected",
|
|
65710
|
-
"default": "
|
|
65710
|
+
"default": "i18nSelectPreviousDay",
|
|
65711
65711
|
"inheritedFrom": {
|
|
65712
65712
|
"name": "SbbDatepickerButton",
|
|
65713
65713
|
"module": "datepicker/common/datepicker-button.js"
|
|
@@ -65737,7 +65737,7 @@
|
|
|
65737
65737
|
},
|
|
65738
65738
|
{
|
|
65739
65739
|
"kind": "method",
|
|
65740
|
-
"name": "
|
|
65740
|
+
"name": "_isBeforeMinDate",
|
|
65741
65741
|
"privacy": "private",
|
|
65742
65742
|
"return": {
|
|
65743
65743
|
"type": {
|
|
@@ -66522,7 +66522,7 @@
|
|
|
66522
66522
|
"module": "datepicker/common.js"
|
|
66523
66523
|
},
|
|
66524
66524
|
"classGenerics": "T = Date",
|
|
66525
|
-
"tagName": "sbb-datepicker-
|
|
66525
|
+
"tagName": "sbb-datepicker-previous-day",
|
|
66526
66526
|
"customElement": true,
|
|
66527
66527
|
"attributes": [
|
|
66528
66528
|
{
|
|
@@ -66607,18 +66607,18 @@
|
|
|
66607
66607
|
"exports": [
|
|
66608
66608
|
{
|
|
66609
66609
|
"kind": "js",
|
|
66610
|
-
"name": "
|
|
66610
|
+
"name": "SbbDatepickerPreviousDayElement",
|
|
66611
66611
|
"declaration": {
|
|
66612
|
-
"name": "
|
|
66613
|
-
"module": "datepicker/datepicker-
|
|
66612
|
+
"name": "SbbDatepickerPreviousDayElement",
|
|
66613
|
+
"module": "datepicker/datepicker-previous-day/datepicker-previous-day.component.js"
|
|
66614
66614
|
}
|
|
66615
66615
|
},
|
|
66616
66616
|
{
|
|
66617
66617
|
"kind": "custom-element-definition",
|
|
66618
|
-
"name": "sbb-datepicker-
|
|
66618
|
+
"name": "sbb-datepicker-previous-day",
|
|
66619
66619
|
"declaration": {
|
|
66620
|
-
"name": "
|
|
66621
|
-
"module": "datepicker/datepicker-
|
|
66620
|
+
"name": "SbbDatepickerPreviousDayElement",
|
|
66621
|
+
"module": "datepicker/datepicker-previous-day/datepicker-previous-day.component.js"
|
|
66622
66622
|
}
|
|
66623
66623
|
}
|
|
66624
66624
|
]
|
|
@@ -249,6 +249,7 @@ const style = css`@charset "UTF-8";
|
|
|
249
249
|
inset: 0;
|
|
250
250
|
border: var(--sbb-form-field-border-width) var(--sbb-form-field-border-style) var(--sbb-form-field-border-color);
|
|
251
251
|
border-radius: var(--sbb-form-field-border-radius);
|
|
252
|
+
pointer-events: none;
|
|
252
253
|
}
|
|
253
254
|
:host(:where(:is(:state(focus),[state--focus]):is(:state(focus-origin-keyboard),[state--focus-origin-keyboard]))) .sbb-form-field__wrapper {
|
|
254
255
|
outline-offset: var(--sbb-focus-outline-offset);
|
|
@@ -921,4 +922,4 @@ export {
|
|
|
921
922
|
SbbFormFieldControlEvent,
|
|
922
923
|
SbbFormFieldElement
|
|
923
924
|
};
|
|
924
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIExpdEVsZW1lbnQsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9hdXRvY29tcGxldGUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJDaGlwR3JvdXBFbGVtZW50IH0gZnJvbSAnLi4vLi4vY2hpcC50cyc7XG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkudHMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy50cyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMudHMnO1xuaW1wb3J0IHsgaXNMZWFuIH0gZnJvbSAnLi4vLi4vY29yZS9kb20udHMnO1xuaW1wb3J0IHsgaTE4bk9wdGlvbmFsIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLnRzJztcbmltcG9ydCB7XG4gIGFwcGVuZEFyaWFFbGVtZW50cyxcbiAgcmVtb3ZlQXJpYUVsZW1lbnRzLFxuICBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4sXG4gIHR5cGUgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZSxcbiAgU2JiSHlkcmF0aW9uTWl4aW4sXG4gIFNiYk5lZ2F0aXZlTWl4aW4sXG59IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLnRzJztcbmltcG9ydCB7IGJveFNpemluZ1N0eWxlcyB9IGZyb20gJy4uLy4uL2NvcmUvc3R5bGVzLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiU2VsZWN0RWxlbWVudCB9IGZyb20gJy4uLy4uL3NlbGVjdC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2Zvcm0tZmllbGQuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9pY29uLnRzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbmNvbnN0IHBhdGNoZWRJbnB1dHMgPSBuZXcgV2Vha01hcDxIVE1MSW5wdXRFbGVtZW50LCBQcm9wZXJ0eURlc2NyaXB0b3I+KCk7XG5jb25zdCBuYXRpdmVJbnB1dEVsZW1lbnRzID0gWydpbnB1dCcsICd0ZXh0YXJlYScsICdzZWxlY3QnXTtcblxuLyoqIEFuIGludGVyZmFjZSB3aGljaCBhbGxvd3MgYSBjb250cm9sIHRvIHdvcmsgaW5zaWRlIGEgYFNiYkZvcm1GaWVsZGAuICovXG5leHBvcnQgaW50ZXJmYWNlIFNiYkZvcm1GaWVsZEVsZW1lbnRDb250cm9sIHtcbiAgLyoqIFRoZSBpZCBvZiB0aGUgZm9ybSBmaWVsZCBjb250cm9sLiAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICAvKiogV2hldGhlciB0aGUgY29udHJvbCBpcyBlbXB0eS4gKi9cbiAgcmVhZG9ubHkgZW1wdHk6IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRoZSBjb250cm9sIGlzIHJlYWRvbmx5LiAqL1xuICByZWFkb25seSByZWFkT25seT86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRoZSBjb250cm9sIGlzIGRpc2FibGVkLiAqL1xuICByZWFkb25seSBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogSGFuZGxlcyBhIGNsaWNrIG9uIHRoZSBjb250cm9sJ3MgY29udGFpbmVyLlxuICAgKiBJZiBub3QgaW1wbGVtZW50ZWQsIGZvY3VzKCkgb2YgdGhlIGVsZW1lbnQgaXMgY2FsbGVkLlxuICAgKi9cbiAgb25Db250YWluZXJDbGljaz8oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgU2JiRm9ybUZpZWxkQ29udHJvbEV2ZW50IGV4dGVuZHMgRXZlbnQge1xuICBwcml2YXRlIF9jb250cm9sOiBTYmJGb3JtRmllbGRFbGVtZW50Q29udHJvbCB8IG51bGw7XG5cbiAgcHVibGljIGdldCBjb250cm9sKCk6IFNiYkZvcm1GaWVsZEVsZW1lbnRDb250cm9sIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRyb2w7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoY29udHJvbDogU2JiRm9ybUZpZWxkRWxlbWVudENvbnRyb2wgfCBudWxsKSB7XG4gICAgc3VwZXIoJ2Zvcm1maWVsZGNvbnRyb2wnKTtcbiAgICB0aGlzLl9jb250cm9sID0gY29udHJvbDtcbiAgfVxufVxuXG4vKipcbiAqIEl0IHdyYXBzIGFuIGlucHV0IGVsZW1lbnQgYWRkaW5nIGxhYmVsLCBlcnJvcnMsIGljb24sIGV0Yy5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGlzIHNsb3QgdG8gcmVuZGVyIGFuIGlucHV0L3NlbGVjdCBvciBhIHN1cHBvcnRlZCBub24tbmF0aXZlIGVsZW1lbnQuXG4gKiBAc2xvdCBsYWJlbCAtIFVzZSB0aGlzIHNsb3QgdG8gcmVuZGVyIGEgbGFiZWwuXG4gKiBAc2xvdCBwcmVmaXggLSBVc2UgdGhpcyBzbG90IHRvIHJlbmRlciBhbiBpY29uIG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIGlucHV0LlxuICogQHNsb3Qgc3VmZml4IC0gVXNlIHRoaXMgc2xvdCB0byByZW5kZXIgYW4gaWNvbiBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgaW5wdXQuXG4gKiBAc2xvdCBlcnJvciAtIFVzZSB0aGlzIHNsb3QgdG8gcmVuZGVyIGFuIGVycm9yLlxuICpcbiAqIEBjc3Nwcm9wIFstLXNiYi1mb3JtLWZpZWxkLW91dGxpbmUtb2Zmc2V0XSAtIFRvIG92ZXJyaWRlIHRoZSBmb2N1cyBvdXRsaW5lIG9mZnNldCxcbiAqIEBjc3Nwcm9wIFstLXNiYi1mb3JtLWZpZWxkLWZvY3VzLXVuZGVybGluZS16LWluZGV4XSAtIFRvIG92ZXJyaWRlIHRoZSB6LWluZGV4IG9mIHRoZSBmb2N1cyB1bmRlcmxpbmUgZWZmZWN0LFxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZm9ybS1maWVsZCcpXG5jbGFzcyBTYmJGb3JtRmllbGRFbGVtZW50IGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihcbiAgU2JiRWxlbWVudEludGVybmFsc01peGluKFNiYkh5ZHJhdGlvbk1peGluKExpdEVsZW1lbnQpKSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG5cbiAgLy8gTGlzdCBvZiBlbGVtZW50cyB0aGF0IHNob3VsZCBub3QgZm9jdXMgaW5wdXQgb24gY2xpY2tcbiAgcHJpdmF0ZSByZWFkb25seSBfZXhjbHVkZWRGb2N1c0VsZW1lbnRzID0gWydidXR0b24nLCAnc2JiLXBvcG92ZXInLCAnc2JiLW9wdGlvbicsICdzYmItY2hpcCddO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Zsb2F0aW5nTGFiZWxTdXBwb3J0ZWRJbnB1dEVsZW1lbnRzID0gW1xuICAgICdpbnB1dCcsXG4gICAgJ3NlbGVjdCcsXG4gICAgJ3RleHRhcmVhJyxcbiAgICAnc2JiLXNlbGVjdCcsXG4gIF07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZmxvYXRpbmdMYWJlbFN1cHBvcnRlZElucHV0VHlwZXMgPSBbXG4gICAgJ2VtYWlsJyxcbiAgICAnbnVtYmVyJyxcbiAgICAncGFzc3dvcmQnLFxuICAgICdzZWFyY2gnLFxuICAgICd0ZWwnLFxuICAgICd0ZXh0JyxcbiAgICAndXJsJyxcbiAgXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byByZXNlcnZlIHNwYWNlIGZvciBhbiBlcnJvciBtZXNzYWdlLlxuICAgKiBgbm9uZWAgZG9lcyBub3QgcmVzZXJ2ZSBhbnkgc3BhY2UuXG4gICAqIGByZXNlcnZlYCBkb2VzIHJlc2VydmUgb25lIHJvdyBmb3IgYW4gZXJyb3IgbWVzc2FnZS5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Vycm9yLXNwYWNlJywgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZXJyb3JTcGFjZTogJ25vbmUnIHwgJ3Jlc2VydmUnID0gJ25vbmUnO1xuXG4gIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgaW5wdXQgaXMgb3B0aW9uYWwuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBvcHRpb25hbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBsLCBtIG9yIHMuXG4gICAqIEBkZWZhdWx0ICdtJyAvICdzJyAobGVhbilcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6ICdsJyB8ICdtJyB8ICdzJyA9IGlzTGVhbigpID8gJ3MnIDogJ20nO1xuXG4gIC8qKiBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIGZvcm0gZmllbGQgd2l0aG91dCBhIGJvcmRlci4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGJvcmRlcmxlc3M6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogRGVmaW5lcyB0aGUgd2lkdGggb2YgdGhlIGNvbXBvbmVudDpcbiAgICogLSBgZGVmYXVsdGA6IHRoZSBjb21wb25lbnQgaGFzIGRlZmluZWQgd2lkdGggYW5kIG1pbi13aWR0aDtcbiAgICogLSBgY29sbGFwc2VgOiB0aGUgY29tcG9uZW50IGFkYXB0cyBpdHNlbGYgdG8gaXRzIGlubmVyIGlucHV0IGNvbnRlbnQuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHdpZHRoOiAnZGVmYXVsdCcgfCAnY29sbGFwc2UnID0gJ2RlZmF1bHQnO1xuXG4gIC8qKiBXaGV0aGVyIHRvIHZpc3VhbGx5IGhpZGUgdGhlIGxhYmVsLiBJZiBoaWRkZW4sIHNjcmVlbiByZWFkZXJzIHdpbGwgc3RpbGwgcmVhZCBpdC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hpZGRlbi1sYWJlbCcsIHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGhpZGRlbkxhYmVsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGxhYmVsIHNob3VsZCBmbG9hdC4gSWYgYWN0aXZhdGVkLCB0aGUgcGxhY2Vob2xkZXIgb2YgdGhlIGlucHV0IGlzIGhpZGRlbi4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Zsb2F0aW5nLWxhYmVsJywgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZmxvYXRpbmdMYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBJdCBpcyB1c2VkIGludGVybmFsbHkgdG8gZ2V0IHRoZSBgZXJyb3JgIHNsb3QuICovXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2Vycm9yRWxlbWVudHM6IEVsZW1lbnRbXSA9IFtdO1xuXG4gIC8qKiBSZWZlcmVuY2UgdG8gdGhlIHNsb3R0ZWQgaW5wdXQgZWxlbWVudC4gKi9cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MU2VsZWN0RWxlbWVudCB8IEhUTUxFbGVtZW50IHwgbnVsbCA9XG4gICAgbnVsbDtcblxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBzbG90dGVkIGxhYmVsIGVsZW1lbnRzLiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9sYWJlbCE6IEhUTUxMYWJlbEVsZW1lbnQ7XG5cbiAgLyoqIFJldHVybnMgdGhlIGlucHV0IGVsZW1lbnQuICovXG4gIHB1YmxpYyBnZXQgaW5wdXRFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MU2VsZWN0RWxlbWVudCB8IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0O1xuICB9XG5cbiAgLyoqIFJlZmVyZW5jZSB0byB0aGUgc2xvdHRlZCBsYWJlbC4gKi9cbiAgcHVibGljIGdldCBsYWJlbCgpOiBIVE1MTGFiZWxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2xhYmVsO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIC8qKlxuICAgKiBMaXN0ZW5zIHRvIHRoZSBjaGFuZ2VzIG9uIGByZWFkb25seWAgYW5kIGBkaXNhYmxlZGAgYXR0cmlidXRlcyBvZiBgPGlucHV0PmAuXG4gICAqL1xuICBwcml2YXRlIF9mb3JtRmllbGRBdHRyaWJ1dGVPYnNlcnZlciA9ICFpc1NlcnZlclxuICAgID8gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9uczogTXV0YXRpb25SZWNvcmRbXSkgPT4ge1xuICAgICAgICBpZiAobXV0YXRpb25zLnNvbWUoKG0pID0+IG0udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnKSAmJiB0aGlzLl9pbnB1dCkge1xuICAgICAgICAgIHRoaXMuX3JlYWRJbnB1dFN0YXRlKCk7XG4gICAgICAgICAgdGhpcy5fcmVnaXN0ZXJJbnB1dEZvcm1MaXN0ZW5lcigpO1xuICAgICAgICAgIHRoaXMuX2NoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIDogbnVsbDtcblxuICBwcml2YXRlIF9pbnB1dEZvcm1BYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gIHByaXZhdGUgX2NvbnRyb2w6IFNiYkZvcm1GaWVsZEVsZW1lbnRDb250cm9sIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAnZm9jdXNpbicsXG4gICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGV2ZW50LnRhcmdldCA9PT0gdGhpcy5pbnB1dEVsZW1lbnQgfHxcbiAgICAgICAgICBldmVudC50YXJnZXQgPT09ICh0aGlzLmlucHV0RWxlbWVudCBhcyBTYmJTZWxlY3RFbGVtZW50IHwgdW5kZWZpbmVkKT8uaW5wdXRFbGVtZW50XG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ2ZvY3VzJyk7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgZm9jdXMtb3JpZ2luLSR7c2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eX1gKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgcGFzc2l2ZTogdHJ1ZSB9LFxuICAgICk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAnZm9jdXNvdXQnLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBldmVudC50YXJnZXQgPT09IHRoaXMuaW5wdXRFbGVtZW50IHx8XG4gICAgICAgICAgZXZlbnQudGFyZ2V0ID09PSAodGhpcy5pbnB1dEVsZW1lbnQgYXMgU2JiU2VsZWN0RWxlbWVudCB8IHVuZGVmaW5lZCk/LmlucHV0RWxlbWVudFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLl9jaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKTtcbiAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdmb2N1cycpO1xuICAgICAgICAgIGZvciAoY29uc3Qgc3RhdGUgb2YgdGhpcy5pbnRlcm5hbHMuc3RhdGVzKSB7XG4gICAgICAgICAgICBpZiAoc3RhdGUuc3RhcnRzV2l0aCgnZm9jdXMtb3JpZ2luLScpKSB7XG4gICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoc3RhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgcGFzc2l2ZTogdHJ1ZSB9LFxuICAgICk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsICgpID0+IHRoaXMuX2NoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2Rpc3BsYXl2YWx1ZWNoYW5nZScsICgpID0+IHRoaXMuX2NoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpKTtcbiAgICAvLyBXZSB3YW50IHRvIHByZXZlbnQgdGhlIG5hdGl2ZSBicm93c2VyIHZhbGlkYXRpb24gbWVzc2FnZSBwb3BvdmVyXG4gICAgLy8gdG8gYmUgc2hvd24uIFRoaXMgYWxzbyBwcmV2ZW50cyBhIGJ1ZyBpbiBXZWJLaXQsIHdoaWNoIHdvdWxkIG5vdFxuICAgIC8vIGFsbG93IGhvc3QgYXMgdGhlIHZhbGlkaXR5IGFuY2hvcjogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2OTgzMlxuICAgIC8vIFRoaXMgaXMgZHVwbGljYXRlZCBmcm9tIHRoZSBmb3JtIGFzc29jaWF0ZWQgbWl4aW4gZm9yIHRoZSBuYXRpdmVcbiAgICAvLyBpbnB1dCBjb250cm9scyAoZS5nLiA8aW5wdXQ+IG9yIDxzZWxlY3Q+KS5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2ludmFsaWQnLCAoZSkgPT4gZS5wcmV2ZW50RGVmYXVsdCgpLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdmb3JtZmllbGRjb250cm9sJywgKGU6IFNiYkZvcm1GaWVsZENvbnRyb2xFdmVudCkgPT4ge1xuICAgICAgdGhpcy5fY29udHJvbCA9IGUuY29udHJvbDtcbiAgICAgIGlmICh0aGlzLl9jb25uZWN0SW5wdXRFbGVtZW50KCkgPT09ICd1bmNoYW5nZWQnKSB7XG4gICAgICAgIHRoaXMuX2Fzc2lnbkVycm9yTWVzc2FnZUVsZW1lbnRzKCk7XG4gICAgICAgIHRoaXMuX3JlYWRJbnB1dFN0YXRlKCk7XG4gICAgICAgIHRoaXMuX2NoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fYXNzaWduU2xvdHMoKTtcbiAgICB0aGlzLl9jb25uZWN0SW5wdXRFbGVtZW50KCk7XG4gICAgdGhpcy5fc3luY05lZ2F0aXZlKCk7XG4gICAgdGhpcy5fc3luY1NpemUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbmVnYXRpdmUnKSkge1xuICAgICAgdGhpcy5fc3luY05lZ2F0aXZlKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3NpemUnKSkge1xuICAgICAgdGhpcy5fc3luY1NpemUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9mb3JtRmllbGRBdHRyaWJ1dGVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuX2lucHV0Rm9ybUFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgIGlmICh0aGlzLl9pbnB1dD8ubG9jYWxOYW1lID09PSAnaW5wdXQnKSB7XG4gICAgICB0aGlzLl91bnBhdGNoSW5wdXRWYWx1ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVdyYXBwZXJDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pc0VsZW1lbnRGb2N1c0V4Y2x1ZGVkKGV2ZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9jb250cm9sPy5vbkNvbnRhaW5lckNsaWNrKSB7XG4gICAgICB0aGlzLl9jb250cm9sPy5vbkNvbnRhaW5lckNsaWNrKGV2ZW50KTtcbiAgICB9IGVsc2UgaWYgKChldmVudC50YXJnZXQgYXMgRWxlbWVudCkubG9jYWxOYW1lICE9PSAnbGFiZWwnKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuX2lucHV0Py5sb2NhbE5hbWUgPT09ICdzYmItc2VsZWN0JyAmJlxuICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5sb2NhbE5hbWUgIT09ICdzYmItc2VsZWN0J1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMuX2lucHV0LmNsaWNrKCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9pbnB1dD8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc0VsZW1lbnRGb2N1c0V4Y2x1ZGVkKGV2ZW50OiBFdmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBldmVudFxuICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAuc29tZShcbiAgICAgICAgKGVsKSA9PlxuICAgICAgICAgIChlbCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudCAmJlxuICAgICAgICAgICAgKGVsLmdldEF0dHJpYnV0ZSgndGFiaW5kZXgnKSA9PT0gJzAnIHx8IGVsLmhhc0F0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJykpKSB8fFxuICAgICAgICAgIHRoaXMuX2V4Y2x1ZGVkRm9jdXNFbGVtZW50cy5pbmNsdWRlcygoZWwgYXMgSFRNTEVsZW1lbnQpLmxvY2FsTmFtZSksXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25TbG90TGFiZWxDaGFuZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgbGFiZWxzID0gQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJ2xhYmVsJykpO1xuICAgIGlmIChpbXBvcnQubWV0YS5lbnYuREVWICYmIGxhYmVscy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBEZXRlY3RlZCBtb3JlIHRoYW4gb25lIGxhYmVsIGluIHNiYi1mb3JtLWZpZWxkIyR7dGhpcy5pZH0uIE9ubHkgb25lIGxhYmVsIGlzIHN1cHBvcnRlZC5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5fbGFiZWwgPSBsYWJlbHNbMF07XG4gICAgdGhpcy5fc3luY0xhYmVsSW5wdXRSZWZlcmVuY2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogSXQgaXMgdXNlZCBpbnRlcm5hbGx5IHRvIGFzc2lnbiB0aGUgYXR0cmlidXRlcyBvZiBgPGlucHV0PmAgdG8gYF9pZGAgYW5kIGBfaW5wdXRgIGFuZCB0byBvYnNlcnZlIHRoZSBuYXRpdmUgcmVhZG9ubHkgYW5kIGRpc2FibGVkIGF0dHJpYnV0ZXMuXG4gICAqL1xuICBwcml2YXRlIF9vblNsb3RJbnB1dENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NpZ25TbG90cygpO1xuICAgIHRoaXMuX2Nvbm5lY3RJbnB1dEVsZW1lbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Fzc2lnblNsb3RzKCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbCgnbGFiZWw6bm90KFtzbG90XSknKS5mb3JFYWNoKChlKSA9PiBlLnNldEF0dHJpYnV0ZSgnc2xvdCcsICdsYWJlbCcpKTtcbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJ3NiYi1lcnJvcjpub3QoW3Nsb3RdKScpLmZvckVhY2goKGUpID0+IGUuc2V0QXR0cmlidXRlKCdzbG90JywgJ2Vycm9yJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29ubmVjdElucHV0RWxlbWVudCgpOiAnY2hhbmdlZCcgfCAnbm8taW5wdXQnIHwgJ3VuY2hhbmdlZCcge1xuICAgIGxldCBuZXdJbnB1dDogSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIGlmICh0aGlzLl9jb250cm9sPy5pZCkge1xuICAgICAgbmV3SW5wdXQgPSAodGhpcy5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCkuZ2V0RWxlbWVudEJ5SWQodGhpcy5fY29udHJvbC5pZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZpbmQgdGhlIHNsb3R0ZWQgaW5wdXQgZWxlbWVudCwgZXZlbiBpZiBpdCdzIG5lc3RlZCAoZS5nLiBjaGlwIGdyb3VwKVxuICAgICAgY29uc3QgaW5wdXRDYW5kaWRhdGVzID0gQXJyYXkuZnJvbShcbiAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PignKjpub3QoW3Nsb3RdLHNiYi1jaGlwLWdyb3VwKScpLFxuICAgICAgKTtcbiAgICAgIG5ld0lucHV0ID1cbiAgICAgICAgKGlucHV0Q2FuZGlkYXRlcy5maW5kKChlKSA9PiB0aGlzLl9pc0lucHV0RWxlbWVudChlKSkgfHwgaW5wdXRDYW5kaWRhdGVzWzBdKSA/PyBudWxsO1xuICAgIH1cblxuICAgIGlmIChuZXdJbnB1dCA9PT0gdGhpcy5faW5wdXQpIHtcbiAgICAgIHJldHVybiAndW5jaGFuZ2VkJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2lucHV0KSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKGBpbnB1dC10eXBlLSR7dGhpcy5faW5wdXQubG9jYWxOYW1lfWApO1xuICAgICAgaWYgKHRoaXMuX2lucHV0LmxvY2FsTmFtZSA9PT0gJ2lucHV0Jykge1xuICAgICAgICB0aGlzLl91bnBhdGNoSW5wdXRWYWx1ZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghbmV3SW5wdXQpIHtcbiAgICAgIHRoaXMuX2lucHV0ID0gbnVsbDtcbiAgICAgIHJldHVybiAnbm8taW5wdXQnO1xuICAgIH1cblxuICAgIHRoaXMuX2lucHV0ID0gbmV3SW5wdXQ7XG4gICAgdGhpcy5fcmVnaXN0ZXJJbnB1dEZvcm1MaXN0ZW5lcigpO1xuICAgIHRoaXMuX2Fzc2lnbkVycm9yTWVzc2FnZUVsZW1lbnRzKCk7XG4gICAgdGhpcy5fcmVhZElucHV0U3RhdGUoKTtcbiAgICB0aGlzLl9jaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKTtcblxuICAgIGlmICh0aGlzLl9pbnB1dC5sb2NhbE5hbWUgPT09ICd0ZXh0YXJlYScpIHtcbiAgICAgIHRoaXMuX2lucHV0LnNldEF0dHJpYnV0ZSgncm93cycsIHRoaXMuX2lucHV0LmdldEF0dHJpYnV0ZSgncm93cycpIHx8ICczJyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9pbnB1dC5sb2NhbE5hbWUgPT09ICdpbnB1dCcpIHtcbiAgICAgIHRoaXMuX3BhdGNoSW5wdXRWYWx1ZSgpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAodGhpcy5faW5wdXQubG9jYWxOYW1lID09PSAnc2VsZWN0JyB8fCB0aGlzLl9pbnB1dC5sb2NhbE5hbWUgPT09ICdzYmItc2VsZWN0JykgJiZcbiAgICAgICF0aGlzLmhhc1VwZGF0ZWRcbiAgICApIHtcbiAgICAgIC8vIER1ZSB0byBTU1IgdGhlIGRyb3Bkb3duIGljb24gZm9yIHNlbGVjdHMgY2Fubm90IGJlIHJlbmRlcmVkIGluIHRoZSBmaXJzdCByZW5kZXIgcGFzcy5cbiAgICAgIC8vIER1ZSB0byB0aGlzIHdlIHNjaGVkdWxlIGEgcmUtcmVuZGVyIHRvIHJlbmRlciB0aGUgaWNvbi5cbiAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLnJlcXVlc3RVcGRhdGUoKSk7XG4gICAgfVxuXG4gICAgdGhpcy5fZm9ybUZpZWxkQXR0cmlidXRlT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLl9mb3JtRmllbGRBdHRyaWJ1dGVPYnNlcnZlcj8ub2JzZXJ2ZSh0aGlzLl9pbnB1dCwge1xuICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydyZWFkb25seScsICdkaXNhYmxlZCcsICdmb3JtJywgJ2NsYXNzJywgJ2RhdGEtZXhwYW5kZWQnXSxcbiAgICB9KTtcbiAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGBpbnB1dC10eXBlLSR7dGhpcy5faW5wdXQubG9jYWxOYW1lfWApO1xuICAgIHRoaXMuX3N5bmNMYWJlbElucHV0UmVmZXJlbmNlcygpO1xuICAgIHJldHVybiAnY2hhbmdlZCc7XG4gIH1cblxuICBwcml2YXRlIF9zeW5jTGFiZWxJbnB1dFJlZmVyZW5jZXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pbnB1dCB8fCAhdGhpcy5fbGFiZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBuYXRpdmVJbnB1dEVsZW1lbnRzLmluY2x1ZGVzKHRoaXMuX2lucHV0LmxvY2FsTmFtZSkgfHxcbiAgICAgIChjdXN0b21FbGVtZW50cy5nZXQodGhpcy5faW5wdXQubG9jYWxOYW1lKSBhcyB7IGZvcm1Bc3NvY2lhdGVkOiBib29sZWFuIH0gfCB1bmRlZmluZWQpXG4gICAgICAgID8uZm9ybUFzc29jaWF0ZWRcbiAgICApIHtcbiAgICAgIC8vIEZvciBuYXRpdmUgaW5wdXQgZWxlbWVudHMgd2UgdXNlIHRoZSBgZm9yYCBhdHRyaWJ1dGUgb24gdGhlIGxhYmVsIHRvIHJlZmVyZW5jZSB0aGUgaW5wdXRcbiAgICAgIC8vIHZpYSBpZCByZWZlcmVuY2UuXG4gICAgICB0aGlzLl9pbnB1dC5pZCB8fD0gYHNiYi1mb3JtLWZpZWxkLWlucHV0LSR7bmV4dElkKyt9YDtcbiAgICAgIHRoaXMuX2xhYmVsLmh0bWxGb3IgPSB0aGlzLl9pbnB1dC5pZDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRm9yIG5vbi1uYXRpdmUgaW5wdXQgZWxlbWVudHMsIHRoYXQgZG8gbm90IHN1cHBvcnQgcmVmZXJlbmNlcyB2aWEgdGhlIGxhYmVsIGZvciBhdHRyaWJ1dGUsXG4gICAgICAvLyB3ZSB1c2UgYXJpYS1sYWJlbGxlZGJ5IG9uIHRoZSBpbnB1dCBlbGVtZW50IHRvIHJlZmVyZW5jZSB0aGUgbGFiZWwgZWxlbWVudCB2aWEgaWQuXG4gICAgICAvLyBUT0RPOiBNaWdyYXRlIHRvIGFyaWFMYWJlbGxlZEJ5RWxlbWVudHMgd2hlbiBhdmFpbGFibGU6XG4gICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRWxlbWVudC9hcmlhTGFiZWxsZWRCeUVsZW1lbnRzXG4gICAgICB0aGlzLl9sYWJlbC5pZCB8fD0gYHNiYi1mb3JtLWZpZWxkLWxhYmVsLSR7bmV4dElkKyt9YDtcbiAgICAgIGNvbnN0IGxhYmVsbGVkYnkgPVxuICAgICAgICB0aGlzLl9pbnB1dFxuICAgICAgICAgIC5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWxsZWRieScpXG4gICAgICAgICAgPy5zcGxpdCgnICcpXG4gICAgICAgICAgLmZpbHRlcigobCkgPT4gISFsICYmIGwgIT09IHRoaXMuX2xhYmVsIS5pZCkgPz8gW107XG4gICAgICB0aGlzLl9pbnB1dC5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWxsZWRieScsIFsuLi5sYWJlbGxlZGJ5LCB0aGlzLl9sYWJlbC5pZF0uam9pbignICcpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc0lucHV0RWxlbWVudChpbnB1dDogRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBuYXRpdmVJbnB1dEVsZW1lbnRzLmluY2x1ZGVzKGlucHV0LmxvY2FsTmFtZSkgfHxcbiAgICAgICEhKGN1c3RvbUVsZW1lbnRzLmdldChpbnB1dC5sb2NhbE5hbWUpIGFzIHsgZm9ybUFzc29jaWF0ZWQ6IGJvb2xlYW4gfSB8IHVuZGVmaW5lZClcbiAgICAgICAgPy5mb3JtQXNzb2NpYXRlZFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9yZWFkSW5wdXRTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdyZWFkb25seScsIHRoaXMuX2NvbnRyb2w/LnJlYWRPbmx5ID8/IHRoaXMuX2lucHV0IS5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5JykpO1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2Rpc2FibGVkJywgdGhpcy5fY29udHJvbD8uZGlzYWJsZWQgPz8gdGhpcy5faW5wdXQhLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSk7XG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnaGFzLXBvcHVwLW9wZW4nLCB0aGlzLl9pbnB1dCEuaGFzQXR0cmlidXRlKCdkYXRhLWV4cGFuZGVkJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVnaXN0ZXJJbnB1dEZvcm1MaXN0ZW5lcigpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnB1dEZvcm1BYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICBjb25zdCB7IHNpZ25hbCB9ID0gKHRoaXMuX2lucHV0Rm9ybUFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKSk7XG5cbiAgICBjb25zdCBmb3JtID1cbiAgICAgICh0aGlzLl9pbnB1dCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFNlbGVjdEVsZW1lbnQgfCB1bmRlZmluZWQpPy5mb3JtID8/XG4gICAgICB0aGlzLl9pbnB1dD8uY2xvc2VzdCgnZm9ybScpO1xuICAgIC8vIFRpbWVvdXQgbmVlZGVkIHRvIGhhdmUgdmFsdWUgdXBkYXRlZFxuICAgIGNvbnN0IHJlc2V0SGFuZGxlciA9ICgpOiB1bmtub3duID0+IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZXNldCgpKTtcbiAgICBmb3JtPy5hZGRFdmVudExpc3RlbmVyKCdyZXNldCcsIHJlc2V0SGFuZGxlciwgeyBzaWduYWwgfSk7XG4gIH1cblxuICAvLyBXZSBuZWVkIHRvIHBhdGNoIHRoZSB2YWx1ZSBwcm9wZXJ0eSBvZiB0aGUgSFRNTElucHV0RWxlbWVudCBpbiBvcmRlclxuICAvLyB0byBiZSBhYmxlIHRvIHJlc2V0IHRoZSBmbG9hdGluZyBsYWJlbCBpbiB0aGUgZW1wdHkgc3RhdGUuXG4gIHByaXZhdGUgX3BhdGNoSW5wdXRWYWx1ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLl9pbnB1dCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGlmICghaW5wdXRFbGVtZW50IHx8IHBhdGNoZWRJbnB1dHMuaGFzKGlucHV0RWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvcmlnaW5hbERlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFxuICAgICAgT2JqZWN0LmdldFByb3RvdHlwZU9mKGlucHV0RWxlbWVudCksXG4gICAgICAndmFsdWUnLFxuICAgICk7XG5cbiAgICBpZiAoIW9yaWdpbmFsRGVzY3JpcHRvciB8fCAhb3JpZ2luYWxEZXNjcmlwdG9yLnNldCB8fCAhb3JpZ2luYWxEZXNjcmlwdG9yLmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHBhdGNoZWRJbnB1dHMuc2V0KGlucHV0RWxlbWVudCwgb3JpZ2luYWxEZXNjcmlwdG9yKTtcblxuICAgIGNvbnN0IHsgZ2V0OiBnZXR0ZXIsIHNldDogc2V0dGVyIH0gPSBvcmlnaW5hbERlc2NyaXB0b3I7XG4gICAgY29uc3QgY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5ID0gKCk6IHZvaWQgPT4gdGhpcy5fY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCk7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoaW5wdXRFbGVtZW50LCAndmFsdWUnLCB7XG4gICAgICAuLi5vcmlnaW5hbERlc2NyaXB0b3IsXG4gICAgICBnZXQoKSB7XG4gICAgICAgIHJldHVybiBnZXR0ZXIuY2FsbCh0aGlzKTtcbiAgICAgIH0sXG4gICAgICBzZXQobmV3VmFsdWUpIHtcbiAgICAgICAgc2V0dGVyLmNhbGwodGhpcywgbmV3VmFsdWUpO1xuICAgICAgICBjaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF91bnBhdGNoSW5wdXRWYWx1ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLl9pbnB1dCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IG9yaWdpbmFsRGVzY3JpcHRvciA9IHBhdGNoZWRJbnB1dHMuZ2V0KGlucHV0RWxlbWVudCk7XG4gICAgaWYgKG9yaWdpbmFsRGVzY3JpcHRvcikge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGlucHV0RWxlbWVudCwgJ3ZhbHVlJywgb3JpZ2luYWxEZXNjcmlwdG9yKTtcbiAgICAgIHBhdGNoZWRJbnB1dHMuZGVsZXRlKGlucHV0RWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoXG4gICAgICAnZW1wdHknLFxuICAgICAgdGhpcy5fY29udHJvbD8uZW1wdHkgPz9cbiAgICAgICAgKCgodGhpcy5fZmxvYXRpbmdMYWJlbFN1cHBvcnRlZElucHV0RWxlbWVudHMuaW5jbHVkZXModGhpcy5faW5wdXQ/LmxvY2FsTmFtZSBhcyBzdHJpbmcpIHx8XG4gICAgICAgICAgKHRoaXMuX2lucHV0Py5jb25zdHJ1Y3RvciBhcyB1bmRlZmluZWQgfCB0eXBlb2YgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZSlcbiAgICAgICAgICAgID8uZm9ybUZpZWxkQXNzb2NpYXRlZCkgPz9cbiAgICAgICAgICBmYWxzZSkgJiZcbiAgICAgICAgICB0aGlzLl9pc0lucHV0RW1wdHkoKSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzSW5wdXRFbXB0eSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjaGlwR3JvdXBFbGVtOiBTYmJDaGlwR3JvdXBFbGVtZW50IHwgbnVsbCA9IHRoaXMucXVlcnlTZWxlY3Rvcignc2JiLWNoaXAtZ3JvdXAnKTtcbiAgICBpZiAoY2hpcEdyb3VwRWxlbSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5faXNJbnB1dFZhbHVlRW1wdHkoKSAmJlxuICAgICAgICAoQXJyYXkuaXNBcnJheShjaGlwR3JvdXBFbGVtLnZhbHVlKVxuICAgICAgICAgID8gY2hpcEdyb3VwRWxlbS52YWx1ZS5sZW5ndGggPT09IDBcbiAgICAgICAgICA6ICFjaGlwR3JvdXBFbGVtLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1jaGlwJykpXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodGhpcy5faW5wdXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLl9mbG9hdGluZ0xhYmVsU3VwcG9ydGVkSW5wdXRUeXBlcy5pbmNsdWRlcyh0aGlzLl9pbnB1dC50eXBlKSAmJlxuICAgICAgICB0aGlzLl9pc0lucHV0VmFsdWVFbXB0eSgpXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodGhpcy5faW5wdXQgaW5zdGFuY2VvZiBIVE1MU2VsZWN0RWxlbWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2lucHV0LnNlbGVjdGVkT3B0aW9ucz8uaXRlbSgwKT8ubGFiZWw/LnRyaW0oKSA9PT0gJyc7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9pbnB1dD8ubG9jYWxOYW1lID09PSAnc2JiLXNlbGVjdCcpIHtcbiAgICAgIHJldHVybiAodGhpcy5faW5wdXQgYXMgU2JiU2VsZWN0RWxlbWVudCkuZ2V0RGlzcGxheVZhbHVlPy4oKT8udHJpbSgpID09PSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX2lzSW5wdXRWYWx1ZUVtcHR5KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNJbnB1dFZhbHVlRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdmFsdWUgPSAodGhpcy5faW5wdXQgYXMgeyB2YWx1ZTogc3RyaW5nIH0pLnZhbHVlO1xuICAgIHJldHVybiBbJycsIHVuZGVmaW5lZCwgbnVsbF0uaW5jbHVkZXModmFsdWUpIHx8IChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IGlzIHVzZWQgaW50ZXJuYWxseSB0byBzZXQgdGhlIGFyaWEtZGVzY3JpYmVkYnkgYXR0cmlidXRlIGZvciB0aGUgc2xvdHRlZCBpbnB1dCByZWZlcmVuY2luZyBhdmFpbGFibGUgPHNiYi1lcnJvcj4gaW5zdGFuY2VzLlxuICAgKi9cbiAgcHJpdmF0ZSBfb25TbG90RXJyb3JDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZXJyb3JFbGVtZW50cyA9IChldmVudC50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KS5hc3NpZ25lZEVsZW1lbnRzKCk7XG4gICAgaWYgKHRoaXMuX2lucHV0ICYmIHRoaXMuX2lucHV0LmFyaWFEZXNjcmliZWRCeUVsZW1lbnRzPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX2lucHV0LmFyaWFEZXNjcmliZWRCeUVsZW1lbnRzID0gcmVtb3ZlQXJpYUVsZW1lbnRzKFxuICAgICAgICB0aGlzLl9pbnB1dC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgICAgLi4uKHRoaXMuX2Vycm9yRWxlbWVudHMgPz8gW10pLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLl9lcnJvckVsZW1lbnRzID0gZXJyb3JFbGVtZW50cztcbiAgICBmb3IgKGNvbnN0IGVsIG9mIHRoaXMuX2Vycm9yRWxlbWVudHMpIHtcbiAgICAgIC8vIEluc3RlYWQgb2YgZGVmaW5pbmcgYSBjb250YWluZXIgd2l0aCBhbiBhcmlhLWxpdmUgcmVnaW9uIGFzIGV4cGVjdGVkLCB3ZSBoYWQgdG8gY2hhbmdlXG4gICAgICAvLyBzZXR0aW5nIGl0IGZvciBldmVyeSBzbG90dGVkIGVsZW1lbnQgdG8gcHJvcGVybHkgd29yayBpbiBhbGwgYnJvd3NlcnMgYW5kIHNjcmVlbiByZWFkZXIgY29tYmluYXRpb25zLlxuICAgICAgZWwucm9sZSB8fD0gJ3N0YXR1cyc7XG4gICAgfVxuXG4gICAgdGhpcy5fYXNzaWduRXJyb3JNZXNzYWdlRWxlbWVudHMoKTtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdoYXMtZXJyb3InLCAhIXRoaXMuX2Vycm9yRWxlbWVudHMubGVuZ3RoKTtcbiAgICB0aGlzLl9zeW5jTmVnYXRpdmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Fzc2lnbkVycm9yTWVzc2FnZUVsZW1lbnRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pbnB1dCkge1xuICAgICAgdGhpcy5faW5wdXQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMgPSBhcHBlbmRBcmlhRWxlbWVudHMoXG4gICAgICAgIHRoaXMuX2lucHV0LmFyaWFEZXNjcmliZWRCeUVsZW1lbnRzLFxuICAgICAgICAuLi50aGlzLl9lcnJvckVsZW1lbnRzLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKiogTWFudWFsbHkgcmVzZXQgdGhlIGZvcm0gZmllbGQuIEN1cnJlbnRseSwgdGhpcyBvbmx5IHJlc2V0cyB0aGUgZmxvYXRpbmcgbGFiZWwuICovXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKTtcbiAgfVxuXG4gIC8qKiBNYW51YWxseSBjbGVhcnMgdGhlIGlucHV0IHZhbHVlLiBJdCBvbmx5IHdvcmtzIGZvciBpbnB1dHMsIHNlbGVjdHMgYXJlIG5vdCBzdXBwb3J0ZWQuICovXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICBpZiAoKHRoaXMuX2lucHV0Py5sb2NhbE5hbWUgYXMgc3RyaW5nKSAhPT0gJ2lucHV0Jykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAodGhpcy5faW5wdXQgYXMgeyB2YWx1ZTogc3RyaW5nIH0pLnZhbHVlID0gJyc7XG4gICAgdGhpcy5fY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCk7XG4gIH1cblxuICBwcml2YXRlIF9zeW5jTmVnYXRpdmUoKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oXG4gICAgICAnc2JiLWVycm9yLHNiYi1taW5pLWJ1dHRvbixzYmItbWluaS1idXR0b24tbGluayxzYmItZm9ybS1maWVsZC1jbGVhcixzYmItZGF0ZXBpY2tlci1uZXh0LWRheSxzYmItZGF0ZXBpY2tlci1wcmV2aW91cy1kYXksc2JiLWRhdGVwaWNrZXItdG9nZ2xlLHNiYi1zZWxlY3Qsc2JiLWF1dG9jb21wbGV0ZSxzYmItYXV0b2NvbXBsZXRlLWdyaWQsc2JiLWNoaXAtZ3JvdXAnLFxuICAgICkuZm9yRWFjaCgoZWxlbWVudCkgPT4gZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ25lZ2F0aXZlJywgdGhpcy5uZWdhdGl2ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3luY1NpemUoKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy48U2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQgfCBTYmJTZWxlY3RFbGVtZW50PihcbiAgICAgICdzYmItYXV0b2NvbXBsZXRlLHNiYi1hdXRvY29tcGxldGUtZ3JpZCxzYmItc2VsZWN0JyxcbiAgICApLmZvckVhY2goKGVsZW1lbnQpID0+IChlbGVtZW50LnNpemUgPSB0aGlzLnNpemUgPT09ICdzJyA/ICdzJyA6ICdtJykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX3NwYWNlLXdyYXBwZXJcIj5cbiAgICAgICAgJHsvKiBRdWVyaWVkIGJ5IGlkIGZyb20gdGhlIGF1dG9jb21wbGV0ZS9zZWxlY3QgdG8gYmUgdXNlZCBhcyB0aGUgYW5jaG9yIGVsZW1lbnQgKi8gJyd9XG4gICAgICAgIDxkaXYgQGNsaWNrPSR7dGhpcy5faGFuZGxlV3JhcHBlckNsaWNrfSBjbGFzcz1cInNiYi1mb3JtLWZpZWxkX193cmFwcGVyXCIgaWQ9XCJvdmVybGF5LWFuY2hvclwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJwcmVmaXhcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX3N5bmNOZWdhdGl2ZX0+PC9zbG90PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItZm9ybS1maWVsZF9faW5wdXQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1mb3JtLWZpZWxkX19sYWJlbC1zcGFjZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1mb3JtLWZpZWxkX19sYWJlbFwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1mb3JtLWZpZWxkX19sYWJlbC1lbGxpcHNpc1wiPlxuICAgICAgICAgICAgICAgIDxzbG90IG5hbWU9XCJsYWJlbFwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fb25TbG90TGFiZWxDaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgICAgICAgICAke3RoaXMub3B0aW9uYWxcbiAgICAgICAgICAgICAgICAgID8gaHRtbGAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+ICR7aTE4bk9wdGlvbmFsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSA8L3NwYW4+YFxuICAgICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX2lucHV0XCI+XG4gICAgICAgICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5fb25TbG90SW5wdXRDaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgJHt0aGlzLmhhc1VwZGF0ZWQgJiYgWydzZWxlY3QnLCAnc2JiLXNlbGVjdCddLmluY2x1ZGVzKHRoaXMuX2lucHV0Py5sb2NhbE5hbWUgYXMgc3RyaW5nKVxuICAgICAgICAgICAgICA/IGh0bWxgPHNiYi1pY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiY2hldnJvbi1zbWFsbC1kb3duLXNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX3NlbGVjdC1pbnB1dC1pY29uXCJcbiAgICAgICAgICAgICAgICA+PC9zYmItaWNvbj5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwic3VmZml4XCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9zeW5jTmVnYXRpdmV9Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1mb3JtLWZpZWxkX19lcnJvclwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJlcnJvclwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fb25TbG90RXJyb3JDaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZm9ybS1maWVsZCc6IFNiYkZvcm1GaWVsZEVsZW1lbnQ7XG4gIH1cblxuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRFdmVudE1hcCB7XG4gICAgZm9ybWZpZWxkY29udHJvbDogU2JiRm9ybUZpZWxkQ29udHJvbEV2ZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsic3RhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBaUNBLElBQUksU0FBUztBQUViLE1BQU0sb0NBQW9CLFFBQUE7QUFDMUIsTUFBTSxzQkFBc0IsQ0FBQyxTQUFTLFlBQVksUUFBUTtBQW9CcEQsTUFBTyxpQ0FBaUMsTUFBSztBQUFBLEVBR2pELElBQVcsVUFBTztBQUNoQixXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUEsRUFFQSxZQUFtQixTQUEwQztBQUMzRCxVQUFNLGtCQUFrQjtBQUN4QixTQUFLLFdBQVc7QUFBQSxFQUNsQjtBQUNEO0lBZ0JLLHVCQUFtQixNQUFBOzswQkFEeEIsY0FBYyxnQkFBZ0IsQ0FBQzs7OztvQkFDRSxpQkFDaEMseUJBQXlCLGtCQUFrQixVQUFVLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUQvQixFQUFBLG1CQUFRLFlBRWpDO0FBQUEs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
|
|
925
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIExpdEVsZW1lbnQsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9hdXRvY29tcGxldGUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJDaGlwR3JvdXBFbGVtZW50IH0gZnJvbSAnLi4vLi4vY2hpcC50cyc7XG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkudHMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy50cyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMudHMnO1xuaW1wb3J0IHsgaXNMZWFuIH0gZnJvbSAnLi4vLi4vY29yZS9kb20udHMnO1xuaW1wb3J0IHsgaTE4bk9wdGlvbmFsIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLnRzJztcbmltcG9ydCB7XG4gIGFwcGVuZEFyaWFFbGVtZW50cyxcbiAgcmVtb3ZlQXJpYUVsZW1lbnRzLFxuICBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4sXG4gIHR5cGUgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZSxcbiAgU2JiSHlkcmF0aW9uTWl4aW4sXG4gIFNiYk5lZ2F0aXZlTWl4aW4sXG59IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLnRzJztcbmltcG9ydCB7IGJveFNpemluZ1N0eWxlcyB9IGZyb20gJy4uLy4uL2NvcmUvc3R5bGVzLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiU2VsZWN0RWxlbWVudCB9IGZyb20gJy4uLy4uL3NlbGVjdC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2Zvcm0tZmllbGQuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9pY29uLnRzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbmNvbnN0IHBhdGNoZWRJbnB1dHMgPSBuZXcgV2Vha01hcDxIVE1MSW5wdXRFbGVtZW50LCBQcm9wZXJ0eURlc2NyaXB0b3I+KCk7XG5jb25zdCBuYXRpdmVJbnB1dEVsZW1lbnRzID0gWydpbnB1dCcsICd0ZXh0YXJlYScsICdzZWxlY3QnXTtcblxuLyoqIEFuIGludGVyZmFjZSB3aGljaCBhbGxvd3MgYSBjb250cm9sIHRvIHdvcmsgaW5zaWRlIGEgYFNiYkZvcm1GaWVsZGAuICovXG5leHBvcnQgaW50ZXJmYWNlIFNiYkZvcm1GaWVsZEVsZW1lbnRDb250cm9sIHtcbiAgLyoqIFRoZSBpZCBvZiB0aGUgZm9ybSBmaWVsZCBjb250cm9sLiAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICAvKiogV2hldGhlciB0aGUgY29udHJvbCBpcyBlbXB0eS4gKi9cbiAgcmVhZG9ubHkgZW1wdHk6IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRoZSBjb250cm9sIGlzIHJlYWRvbmx5LiAqL1xuICByZWFkb25seSByZWFkT25seT86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRoZSBjb250cm9sIGlzIGRpc2FibGVkLiAqL1xuICByZWFkb25seSBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogSGFuZGxlcyBhIGNsaWNrIG9uIHRoZSBjb250cm9sJ3MgY29udGFpbmVyLlxuICAgKiBJZiBub3QgaW1wbGVtZW50ZWQsIGZvY3VzKCkgb2YgdGhlIGVsZW1lbnQgaXMgY2FsbGVkLlxuICAgKi9cbiAgb25Db250YWluZXJDbGljaz8oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgU2JiRm9ybUZpZWxkQ29udHJvbEV2ZW50IGV4dGVuZHMgRXZlbnQge1xuICBwcml2YXRlIF9jb250cm9sOiBTYmJGb3JtRmllbGRFbGVtZW50Q29udHJvbCB8IG51bGw7XG5cbiAgcHVibGljIGdldCBjb250cm9sKCk6IFNiYkZvcm1GaWVsZEVsZW1lbnRDb250cm9sIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRyb2w7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoY29udHJvbDogU2JiRm9ybUZpZWxkRWxlbWVudENvbnRyb2wgfCBudWxsKSB7XG4gICAgc3VwZXIoJ2Zvcm1maWVsZGNvbnRyb2wnKTtcbiAgICB0aGlzLl9jb250cm9sID0gY29udHJvbDtcbiAgfVxufVxuXG4vKipcbiAqIEl0IHdyYXBzIGFuIGlucHV0IGVsZW1lbnQgYWRkaW5nIGxhYmVsLCBlcnJvcnMsIGljb24sIGV0Yy5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGlzIHNsb3QgdG8gcmVuZGVyIGFuIGlucHV0L3NlbGVjdCBvciBhIHN1cHBvcnRlZCBub24tbmF0aXZlIGVsZW1lbnQuXG4gKiBAc2xvdCBsYWJlbCAtIFVzZSB0aGlzIHNsb3QgdG8gcmVuZGVyIGEgbGFiZWwuXG4gKiBAc2xvdCBwcmVmaXggLSBVc2UgdGhpcyBzbG90IHRvIHJlbmRlciBhbiBpY29uIG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIGlucHV0LlxuICogQHNsb3Qgc3VmZml4IC0gVXNlIHRoaXMgc2xvdCB0byByZW5kZXIgYW4gaWNvbiBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgaW5wdXQuXG4gKiBAc2xvdCBlcnJvciAtIFVzZSB0aGlzIHNsb3QgdG8gcmVuZGVyIGFuIGVycm9yLlxuICpcbiAqIEBjc3Nwcm9wIFstLXNiYi1mb3JtLWZpZWxkLW91dGxpbmUtb2Zmc2V0XSAtIFRvIG92ZXJyaWRlIHRoZSBmb2N1cyBvdXRsaW5lIG9mZnNldCxcbiAqIEBjc3Nwcm9wIFstLXNiYi1mb3JtLWZpZWxkLWZvY3VzLXVuZGVybGluZS16LWluZGV4XSAtIFRvIG92ZXJyaWRlIHRoZSB6LWluZGV4IG9mIHRoZSBmb2N1cyB1bmRlcmxpbmUgZWZmZWN0LFxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZm9ybS1maWVsZCcpXG5jbGFzcyBTYmJGb3JtRmllbGRFbGVtZW50IGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihcbiAgU2JiRWxlbWVudEludGVybmFsc01peGluKFNiYkh5ZHJhdGlvbk1peGluKExpdEVsZW1lbnQpKSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG5cbiAgLy8gTGlzdCBvZiBlbGVtZW50cyB0aGF0IHNob3VsZCBub3QgZm9jdXMgaW5wdXQgb24gY2xpY2tcbiAgcHJpdmF0ZSByZWFkb25seSBfZXhjbHVkZWRGb2N1c0VsZW1lbnRzID0gWydidXR0b24nLCAnc2JiLXBvcG92ZXInLCAnc2JiLW9wdGlvbicsICdzYmItY2hpcCddO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Zsb2F0aW5nTGFiZWxTdXBwb3J0ZWRJbnB1dEVsZW1lbnRzID0gW1xuICAgICdpbnB1dCcsXG4gICAgJ3NlbGVjdCcsXG4gICAgJ3RleHRhcmVhJyxcbiAgICAnc2JiLXNlbGVjdCcsXG4gIF07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZmxvYXRpbmdMYWJlbFN1cHBvcnRlZElucHV0VHlwZXMgPSBbXG4gICAgJ2VtYWlsJyxcbiAgICAnbnVtYmVyJyxcbiAgICAncGFzc3dvcmQnLFxuICAgICdzZWFyY2gnLFxuICAgICd0ZWwnLFxuICAgICd0ZXh0JyxcbiAgICAndXJsJyxcbiAgXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byByZXNlcnZlIHNwYWNlIGZvciBhbiBlcnJvciBtZXNzYWdlLlxuICAgKiBgbm9uZWAgZG9lcyBub3QgcmVzZXJ2ZSBhbnkgc3BhY2UuXG4gICAqIGByZXNlcnZlYCBkb2VzIHJlc2VydmUgb25lIHJvdyBmb3IgYW4gZXJyb3IgbWVzc2FnZS5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Vycm9yLXNwYWNlJywgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZXJyb3JTcGFjZTogJ25vbmUnIHwgJ3Jlc2VydmUnID0gJ25vbmUnO1xuXG4gIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgaW5wdXQgaXMgb3B0aW9uYWwuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBvcHRpb25hbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBsLCBtIG9yIHMuXG4gICAqIEBkZWZhdWx0ICdtJyAvICdzJyAobGVhbilcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6ICdsJyB8ICdtJyB8ICdzJyA9IGlzTGVhbigpID8gJ3MnIDogJ20nO1xuXG4gIC8qKiBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIGZvcm0gZmllbGQgd2l0aG91dCBhIGJvcmRlci4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGJvcmRlcmxlc3M6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogRGVmaW5lcyB0aGUgd2lkdGggb2YgdGhlIGNvbXBvbmVudDpcbiAgICogLSBgZGVmYXVsdGA6IHRoZSBjb21wb25lbnQgaGFzIGRlZmluZWQgd2lkdGggYW5kIG1pbi13aWR0aDtcbiAgICogLSBgY29sbGFwc2VgOiB0aGUgY29tcG9uZW50IGFkYXB0cyBpdHNlbGYgdG8gaXRzIGlubmVyIGlucHV0IGNvbnRlbnQuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHdpZHRoOiAnZGVmYXVsdCcgfCAnY29sbGFwc2UnID0gJ2RlZmF1bHQnO1xuXG4gIC8qKiBXaGV0aGVyIHRvIHZpc3VhbGx5IGhpZGUgdGhlIGxhYmVsLiBJZiBoaWRkZW4sIHNjcmVlbiByZWFkZXJzIHdpbGwgc3RpbGwgcmVhZCBpdC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hpZGRlbi1sYWJlbCcsIHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGhpZGRlbkxhYmVsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGxhYmVsIHNob3VsZCBmbG9hdC4gSWYgYWN0aXZhdGVkLCB0aGUgcGxhY2Vob2xkZXIgb2YgdGhlIGlucHV0IGlzIGhpZGRlbi4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Zsb2F0aW5nLWxhYmVsJywgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZmxvYXRpbmdMYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBJdCBpcyB1c2VkIGludGVybmFsbHkgdG8gZ2V0IHRoZSBgZXJyb3JgIHNsb3QuICovXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2Vycm9yRWxlbWVudHM6IEVsZW1lbnRbXSA9IFtdO1xuXG4gIC8qKiBSZWZlcmVuY2UgdG8gdGhlIHNsb3R0ZWQgaW5wdXQgZWxlbWVudC4gKi9cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MU2VsZWN0RWxlbWVudCB8IEhUTUxFbGVtZW50IHwgbnVsbCA9XG4gICAgbnVsbDtcblxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBzbG90dGVkIGxhYmVsIGVsZW1lbnRzLiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9sYWJlbCE6IEhUTUxMYWJlbEVsZW1lbnQ7XG5cbiAgLyoqIFJldHVybnMgdGhlIGlucHV0IGVsZW1lbnQuICovXG4gIHB1YmxpYyBnZXQgaW5wdXRFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MU2VsZWN0RWxlbWVudCB8IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0O1xuICB9XG5cbiAgLyoqIFJlZmVyZW5jZSB0byB0aGUgc2xvdHRlZCBsYWJlbC4gKi9cbiAgcHVibGljIGdldCBsYWJlbCgpOiBIVE1MTGFiZWxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2xhYmVsO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIC8qKlxuICAgKiBMaXN0ZW5zIHRvIHRoZSBjaGFuZ2VzIG9uIGByZWFkb25seWAgYW5kIGBkaXNhYmxlZGAgYXR0cmlidXRlcyBvZiBgPGlucHV0PmAuXG4gICAqL1xuICBwcml2YXRlIF9mb3JtRmllbGRBdHRyaWJ1dGVPYnNlcnZlciA9ICFpc1NlcnZlclxuICAgID8gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9uczogTXV0YXRpb25SZWNvcmRbXSkgPT4ge1xuICAgICAgICBpZiAobXV0YXRpb25zLnNvbWUoKG0pID0+IG0udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnKSAmJiB0aGlzLl9pbnB1dCkge1xuICAgICAgICAgIHRoaXMuX3JlYWRJbnB1dFN0YXRlKCk7XG4gICAgICAgICAgdGhpcy5fcmVnaXN0ZXJJbnB1dEZvcm1MaXN0ZW5lcigpO1xuICAgICAgICAgIHRoaXMuX2NoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIDogbnVsbDtcblxuICBwcml2YXRlIF9pbnB1dEZvcm1BYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gIHByaXZhdGUgX2NvbnRyb2w6IFNiYkZvcm1GaWVsZEVsZW1lbnRDb250cm9sIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAnZm9jdXNpbicsXG4gICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGV2ZW50LnRhcmdldCA9PT0gdGhpcy5pbnB1dEVsZW1lbnQgfHxcbiAgICAgICAgICBldmVudC50YXJnZXQgPT09ICh0aGlzLmlucHV0RWxlbWVudCBhcyBTYmJTZWxlY3RFbGVtZW50IHwgdW5kZWZpbmVkKT8uaW5wdXRFbGVtZW50XG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ2ZvY3VzJyk7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgZm9jdXMtb3JpZ2luLSR7c2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eX1gKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgcGFzc2l2ZTogdHJ1ZSB9LFxuICAgICk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAnZm9jdXNvdXQnLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBldmVudC50YXJnZXQgPT09IHRoaXMuaW5wdXRFbGVtZW50IHx8XG4gICAgICAgICAgZXZlbnQudGFyZ2V0ID09PSAodGhpcy5pbnB1dEVsZW1lbnQgYXMgU2JiU2VsZWN0RWxlbWVudCB8IHVuZGVmaW5lZCk/LmlucHV0RWxlbWVudFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLl9jaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKTtcbiAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdmb2N1cycpO1xuICAgICAgICAgIGZvciAoY29uc3Qgc3RhdGUgb2YgdGhpcy5pbnRlcm5hbHMuc3RhdGVzKSB7XG4gICAgICAgICAgICBpZiAoc3RhdGUuc3RhcnRzV2l0aCgnZm9jdXMtb3JpZ2luLScpKSB7XG4gICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoc3RhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgcGFzc2l2ZTogdHJ1ZSB9LFxuICAgICk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsICgpID0+IHRoaXMuX2NoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2Rpc3BsYXl2YWx1ZWNoYW5nZScsICgpID0+IHRoaXMuX2NoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpKTtcbiAgICAvLyBXZSB3YW50IHRvIHByZXZlbnQgdGhlIG5hdGl2ZSBicm93c2VyIHZhbGlkYXRpb24gbWVzc2FnZSBwb3BvdmVyXG4gICAgLy8gdG8gYmUgc2hvd24uIFRoaXMgYWxzbyBwcmV2ZW50cyBhIGJ1ZyBpbiBXZWJLaXQsIHdoaWNoIHdvdWxkIG5vdFxuICAgIC8vIGFsbG93IGhvc3QgYXMgdGhlIHZhbGlkaXR5IGFuY2hvcjogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2OTgzMlxuICAgIC8vIFRoaXMgaXMgZHVwbGljYXRlZCBmcm9tIHRoZSBmb3JtIGFzc29jaWF0ZWQgbWl4aW4gZm9yIHRoZSBuYXRpdmVcbiAgICAvLyBpbnB1dCBjb250cm9scyAoZS5nLiA8aW5wdXQ+IG9yIDxzZWxlY3Q+KS5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2ludmFsaWQnLCAoZSkgPT4gZS5wcmV2ZW50RGVmYXVsdCgpLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdmb3JtZmllbGRjb250cm9sJywgKGU6IFNiYkZvcm1GaWVsZENvbnRyb2xFdmVudCkgPT4ge1xuICAgICAgdGhpcy5fY29udHJvbCA9IGUuY29udHJvbDtcbiAgICAgIGlmICh0aGlzLl9jb25uZWN0SW5wdXRFbGVtZW50KCkgPT09ICd1bmNoYW5nZWQnKSB7XG4gICAgICAgIHRoaXMuX2Fzc2lnbkVycm9yTWVzc2FnZUVsZW1lbnRzKCk7XG4gICAgICAgIHRoaXMuX3JlYWRJbnB1dFN0YXRlKCk7XG4gICAgICAgIHRoaXMuX2NoZWNrQW5kVXBkYXRlSW5wdXRFbXB0eSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fYXNzaWduU2xvdHMoKTtcbiAgICB0aGlzLl9jb25uZWN0SW5wdXRFbGVtZW50KCk7XG4gICAgdGhpcy5fc3luY05lZ2F0aXZlKCk7XG4gICAgdGhpcy5fc3luY1NpemUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbmVnYXRpdmUnKSkge1xuICAgICAgdGhpcy5fc3luY05lZ2F0aXZlKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3NpemUnKSkge1xuICAgICAgdGhpcy5fc3luY1NpemUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9mb3JtRmllbGRBdHRyaWJ1dGVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuX2lucHV0Rm9ybUFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgIGlmICh0aGlzLl9pbnB1dD8ubG9jYWxOYW1lID09PSAnaW5wdXQnKSB7XG4gICAgICB0aGlzLl91bnBhdGNoSW5wdXRWYWx1ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVdyYXBwZXJDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pc0VsZW1lbnRGb2N1c0V4Y2x1ZGVkKGV2ZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9jb250cm9sPy5vbkNvbnRhaW5lckNsaWNrKSB7XG4gICAgICB0aGlzLl9jb250cm9sPy5vbkNvbnRhaW5lckNsaWNrKGV2ZW50KTtcbiAgICB9IGVsc2UgaWYgKChldmVudC50YXJnZXQgYXMgRWxlbWVudCkubG9jYWxOYW1lICE9PSAnbGFiZWwnKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuX2lucHV0Py5sb2NhbE5hbWUgPT09ICdzYmItc2VsZWN0JyAmJlxuICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5sb2NhbE5hbWUgIT09ICdzYmItc2VsZWN0J1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMuX2lucHV0LmNsaWNrKCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9pbnB1dD8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc0VsZW1lbnRGb2N1c0V4Y2x1ZGVkKGV2ZW50OiBFdmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBldmVudFxuICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAuc29tZShcbiAgICAgICAgKGVsKSA9PlxuICAgICAgICAgIChlbCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudCAmJlxuICAgICAgICAgICAgKGVsLmdldEF0dHJpYnV0ZSgndGFiaW5kZXgnKSA9PT0gJzAnIHx8IGVsLmhhc0F0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJykpKSB8fFxuICAgICAgICAgIHRoaXMuX2V4Y2x1ZGVkRm9jdXNFbGVtZW50cy5pbmNsdWRlcygoZWwgYXMgSFRNTEVsZW1lbnQpLmxvY2FsTmFtZSksXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25TbG90TGFiZWxDaGFuZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgbGFiZWxzID0gQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJ2xhYmVsJykpO1xuICAgIGlmIChpbXBvcnQubWV0YS5lbnYuREVWICYmIGxhYmVscy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBEZXRlY3RlZCBtb3JlIHRoYW4gb25lIGxhYmVsIGluIHNiYi1mb3JtLWZpZWxkIyR7dGhpcy5pZH0uIE9ubHkgb25lIGxhYmVsIGlzIHN1cHBvcnRlZC5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5fbGFiZWwgPSBsYWJlbHNbMF07XG4gICAgdGhpcy5fc3luY0xhYmVsSW5wdXRSZWZlcmVuY2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogSXQgaXMgdXNlZCBpbnRlcm5hbGx5IHRvIGFzc2lnbiB0aGUgYXR0cmlidXRlcyBvZiBgPGlucHV0PmAgdG8gYF9pZGAgYW5kIGBfaW5wdXRgIGFuZCB0byBvYnNlcnZlIHRoZSBuYXRpdmUgcmVhZG9ubHkgYW5kIGRpc2FibGVkIGF0dHJpYnV0ZXMuXG4gICAqL1xuICBwcml2YXRlIF9vblNsb3RJbnB1dENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NpZ25TbG90cygpO1xuICAgIHRoaXMuX2Nvbm5lY3RJbnB1dEVsZW1lbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Fzc2lnblNsb3RzKCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbCgnbGFiZWw6bm90KFtzbG90XSknKS5mb3JFYWNoKChlKSA9PiBlLnNldEF0dHJpYnV0ZSgnc2xvdCcsICdsYWJlbCcpKTtcbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJ3NiYi1lcnJvcjpub3QoW3Nsb3RdKScpLmZvckVhY2goKGUpID0+IGUuc2V0QXR0cmlidXRlKCdzbG90JywgJ2Vycm9yJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29ubmVjdElucHV0RWxlbWVudCgpOiAnY2hhbmdlZCcgfCAnbm8taW5wdXQnIHwgJ3VuY2hhbmdlZCcge1xuICAgIGxldCBuZXdJbnB1dDogSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIGlmICh0aGlzLl9jb250cm9sPy5pZCkge1xuICAgICAgbmV3SW5wdXQgPSAodGhpcy5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCkuZ2V0RWxlbWVudEJ5SWQodGhpcy5fY29udHJvbC5pZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZpbmQgdGhlIHNsb3R0ZWQgaW5wdXQgZWxlbWVudCwgZXZlbiBpZiBpdCdzIG5lc3RlZCAoZS5nLiBjaGlwIGdyb3VwKVxuICAgICAgY29uc3QgaW5wdXRDYW5kaWRhdGVzID0gQXJyYXkuZnJvbShcbiAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PignKjpub3QoW3Nsb3RdLHNiYi1jaGlwLWdyb3VwKScpLFxuICAgICAgKTtcbiAgICAgIG5ld0lucHV0ID1cbiAgICAgICAgKGlucHV0Q2FuZGlkYXRlcy5maW5kKChlKSA9PiB0aGlzLl9pc0lucHV0RWxlbWVudChlKSkgfHwgaW5wdXRDYW5kaWRhdGVzWzBdKSA/PyBudWxsO1xuICAgIH1cblxuICAgIGlmIChuZXdJbnB1dCA9PT0gdGhpcy5faW5wdXQpIHtcbiAgICAgIHJldHVybiAndW5jaGFuZ2VkJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2lucHV0KSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKGBpbnB1dC10eXBlLSR7dGhpcy5faW5wdXQubG9jYWxOYW1lfWApO1xuICAgICAgaWYgKHRoaXMuX2lucHV0LmxvY2FsTmFtZSA9PT0gJ2lucHV0Jykge1xuICAgICAgICB0aGlzLl91bnBhdGNoSW5wdXRWYWx1ZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghbmV3SW5wdXQpIHtcbiAgICAgIHRoaXMuX2lucHV0ID0gbnVsbDtcbiAgICAgIHJldHVybiAnbm8taW5wdXQnO1xuICAgIH1cblxuICAgIHRoaXMuX2lucHV0ID0gbmV3SW5wdXQ7XG4gICAgdGhpcy5fcmVnaXN0ZXJJbnB1dEZvcm1MaXN0ZW5lcigpO1xuICAgIHRoaXMuX2Fzc2lnbkVycm9yTWVzc2FnZUVsZW1lbnRzKCk7XG4gICAgdGhpcy5fcmVhZElucHV0U3RhdGUoKTtcbiAgICB0aGlzLl9jaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKTtcblxuICAgIGlmICh0aGlzLl9pbnB1dC5sb2NhbE5hbWUgPT09ICd0ZXh0YXJlYScpIHtcbiAgICAgIHRoaXMuX2lucHV0LnNldEF0dHJpYnV0ZSgncm93cycsIHRoaXMuX2lucHV0LmdldEF0dHJpYnV0ZSgncm93cycpIHx8ICczJyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9pbnB1dC5sb2NhbE5hbWUgPT09ICdpbnB1dCcpIHtcbiAgICAgIHRoaXMuX3BhdGNoSW5wdXRWYWx1ZSgpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAodGhpcy5faW5wdXQubG9jYWxOYW1lID09PSAnc2VsZWN0JyB8fCB0aGlzLl9pbnB1dC5sb2NhbE5hbWUgPT09ICdzYmItc2VsZWN0JykgJiZcbiAgICAgICF0aGlzLmhhc1VwZGF0ZWRcbiAgICApIHtcbiAgICAgIC8vIER1ZSB0byBTU1IgdGhlIGRyb3Bkb3duIGljb24gZm9yIHNlbGVjdHMgY2Fubm90IGJlIHJlbmRlcmVkIGluIHRoZSBmaXJzdCByZW5kZXIgcGFzcy5cbiAgICAgIC8vIER1ZSB0byB0aGlzIHdlIHNjaGVkdWxlIGEgcmUtcmVuZGVyIHRvIHJlbmRlciB0aGUgaWNvbi5cbiAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLnJlcXVlc3RVcGRhdGUoKSk7XG4gICAgfVxuXG4gICAgdGhpcy5fZm9ybUZpZWxkQXR0cmlidXRlT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLl9mb3JtRmllbGRBdHRyaWJ1dGVPYnNlcnZlcj8ub2JzZXJ2ZSh0aGlzLl9pbnB1dCwge1xuICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydyZWFkb25seScsICdkaXNhYmxlZCcsICdmb3JtJywgJ2NsYXNzJywgJ2RhdGEtZXhwYW5kZWQnXSxcbiAgICB9KTtcbiAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGBpbnB1dC10eXBlLSR7dGhpcy5faW5wdXQubG9jYWxOYW1lfWApO1xuICAgIHRoaXMuX3N5bmNMYWJlbElucHV0UmVmZXJlbmNlcygpO1xuICAgIHJldHVybiAnY2hhbmdlZCc7XG4gIH1cblxuICBwcml2YXRlIF9zeW5jTGFiZWxJbnB1dFJlZmVyZW5jZXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pbnB1dCB8fCAhdGhpcy5fbGFiZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBuYXRpdmVJbnB1dEVsZW1lbnRzLmluY2x1ZGVzKHRoaXMuX2lucHV0LmxvY2FsTmFtZSkgfHxcbiAgICAgIChjdXN0b21FbGVtZW50cy5nZXQodGhpcy5faW5wdXQubG9jYWxOYW1lKSBhcyB7IGZvcm1Bc3NvY2lhdGVkOiBib29sZWFuIH0gfCB1bmRlZmluZWQpXG4gICAgICAgID8uZm9ybUFzc29jaWF0ZWRcbiAgICApIHtcbiAgICAgIC8vIEZvciBuYXRpdmUgaW5wdXQgZWxlbWVudHMgd2UgdXNlIHRoZSBgZm9yYCBhdHRyaWJ1dGUgb24gdGhlIGxhYmVsIHRvIHJlZmVyZW5jZSB0aGUgaW5wdXRcbiAgICAgIC8vIHZpYSBpZCByZWZlcmVuY2UuXG4gICAgICB0aGlzLl9pbnB1dC5pZCB8fD0gYHNiYi1mb3JtLWZpZWxkLWlucHV0LSR7bmV4dElkKyt9YDtcbiAgICAgIHRoaXMuX2xhYmVsLmh0bWxGb3IgPSB0aGlzLl9pbnB1dC5pZDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRm9yIG5vbi1uYXRpdmUgaW5wdXQgZWxlbWVudHMsIHRoYXQgZG8gbm90IHN1cHBvcnQgcmVmZXJlbmNlcyB2aWEgdGhlIGxhYmVsIGZvciBhdHRyaWJ1dGUsXG4gICAgICAvLyB3ZSB1c2UgYXJpYS1sYWJlbGxlZGJ5IG9uIHRoZSBpbnB1dCBlbGVtZW50IHRvIHJlZmVyZW5jZSB0aGUgbGFiZWwgZWxlbWVudCB2aWEgaWQuXG4gICAgICAvLyBUT0RPOiBNaWdyYXRlIHRvIGFyaWFMYWJlbGxlZEJ5RWxlbWVudHMgd2hlbiBhdmFpbGFibGU6XG4gICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRWxlbWVudC9hcmlhTGFiZWxsZWRCeUVsZW1lbnRzXG4gICAgICB0aGlzLl9sYWJlbC5pZCB8fD0gYHNiYi1mb3JtLWZpZWxkLWxhYmVsLSR7bmV4dElkKyt9YDtcbiAgICAgIGNvbnN0IGxhYmVsbGVkYnkgPVxuICAgICAgICB0aGlzLl9pbnB1dFxuICAgICAgICAgIC5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWxsZWRieScpXG4gICAgICAgICAgPy5zcGxpdCgnICcpXG4gICAgICAgICAgLmZpbHRlcigobCkgPT4gISFsICYmIGwgIT09IHRoaXMuX2xhYmVsIS5pZCkgPz8gW107XG4gICAgICB0aGlzLl9pbnB1dC5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWxsZWRieScsIFsuLi5sYWJlbGxlZGJ5LCB0aGlzLl9sYWJlbC5pZF0uam9pbignICcpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc0lucHV0RWxlbWVudChpbnB1dDogRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBuYXRpdmVJbnB1dEVsZW1lbnRzLmluY2x1ZGVzKGlucHV0LmxvY2FsTmFtZSkgfHxcbiAgICAgICEhKGN1c3RvbUVsZW1lbnRzLmdldChpbnB1dC5sb2NhbE5hbWUpIGFzIHsgZm9ybUFzc29jaWF0ZWQ6IGJvb2xlYW4gfSB8IHVuZGVmaW5lZClcbiAgICAgICAgPy5mb3JtQXNzb2NpYXRlZFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9yZWFkSW5wdXRTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdyZWFkb25seScsIHRoaXMuX2NvbnRyb2w/LnJlYWRPbmx5ID8/IHRoaXMuX2lucHV0IS5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5JykpO1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2Rpc2FibGVkJywgdGhpcy5fY29udHJvbD8uZGlzYWJsZWQgPz8gdGhpcy5faW5wdXQhLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSk7XG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnaGFzLXBvcHVwLW9wZW4nLCB0aGlzLl9pbnB1dCEuaGFzQXR0cmlidXRlKCdkYXRhLWV4cGFuZGVkJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVnaXN0ZXJJbnB1dEZvcm1MaXN0ZW5lcigpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnB1dEZvcm1BYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICBjb25zdCB7IHNpZ25hbCB9ID0gKHRoaXMuX2lucHV0Rm9ybUFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKSk7XG5cbiAgICBjb25zdCBmb3JtID1cbiAgICAgICh0aGlzLl9pbnB1dCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFNlbGVjdEVsZW1lbnQgfCB1bmRlZmluZWQpPy5mb3JtID8/XG4gICAgICB0aGlzLl9pbnB1dD8uY2xvc2VzdCgnZm9ybScpO1xuICAgIC8vIFRpbWVvdXQgbmVlZGVkIHRvIGhhdmUgdmFsdWUgdXBkYXRlZFxuICAgIGNvbnN0IHJlc2V0SGFuZGxlciA9ICgpOiB1bmtub3duID0+IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZXNldCgpKTtcbiAgICBmb3JtPy5hZGRFdmVudExpc3RlbmVyKCdyZXNldCcsIHJlc2V0SGFuZGxlciwgeyBzaWduYWwgfSk7XG4gIH1cblxuICAvLyBXZSBuZWVkIHRvIHBhdGNoIHRoZSB2YWx1ZSBwcm9wZXJ0eSBvZiB0aGUgSFRNTElucHV0RWxlbWVudCBpbiBvcmRlclxuICAvLyB0byBiZSBhYmxlIHRvIHJlc2V0IHRoZSBmbG9hdGluZyBsYWJlbCBpbiB0aGUgZW1wdHkgc3RhdGUuXG4gIHByaXZhdGUgX3BhdGNoSW5wdXRWYWx1ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLl9pbnB1dCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGlmICghaW5wdXRFbGVtZW50IHx8IHBhdGNoZWRJbnB1dHMuaGFzKGlucHV0RWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvcmlnaW5hbERlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFxuICAgICAgT2JqZWN0LmdldFByb3RvdHlwZU9mKGlucHV0RWxlbWVudCksXG4gICAgICAndmFsdWUnLFxuICAgICk7XG5cbiAgICBpZiAoIW9yaWdpbmFsRGVzY3JpcHRvciB8fCAhb3JpZ2luYWxEZXNjcmlwdG9yLnNldCB8fCAhb3JpZ2luYWxEZXNjcmlwdG9yLmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHBhdGNoZWRJbnB1dHMuc2V0KGlucHV0RWxlbWVudCwgb3JpZ2luYWxEZXNjcmlwdG9yKTtcblxuICAgIGNvbnN0IHsgZ2V0OiBnZXR0ZXIsIHNldDogc2V0dGVyIH0gPSBvcmlnaW5hbERlc2NyaXB0b3I7XG4gICAgY29uc3QgY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5ID0gKCk6IHZvaWQgPT4gdGhpcy5fY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCk7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoaW5wdXRFbGVtZW50LCAndmFsdWUnLCB7XG4gICAgICAuLi5vcmlnaW5hbERlc2NyaXB0b3IsXG4gICAgICBnZXQoKSB7XG4gICAgICAgIHJldHVybiBnZXR0ZXIuY2FsbCh0aGlzKTtcbiAgICAgIH0sXG4gICAgICBzZXQobmV3VmFsdWUpIHtcbiAgICAgICAgc2V0dGVyLmNhbGwodGhpcywgbmV3VmFsdWUpO1xuICAgICAgICBjaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF91bnBhdGNoSW5wdXRWYWx1ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLl9pbnB1dCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IG9yaWdpbmFsRGVzY3JpcHRvciA9IHBhdGNoZWRJbnB1dHMuZ2V0KGlucHV0RWxlbWVudCk7XG4gICAgaWYgKG9yaWdpbmFsRGVzY3JpcHRvcikge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGlucHV0RWxlbWVudCwgJ3ZhbHVlJywgb3JpZ2luYWxEZXNjcmlwdG9yKTtcbiAgICAgIHBhdGNoZWRJbnB1dHMuZGVsZXRlKGlucHV0RWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoXG4gICAgICAnZW1wdHknLFxuICAgICAgdGhpcy5fY29udHJvbD8uZW1wdHkgPz9cbiAgICAgICAgKCgodGhpcy5fZmxvYXRpbmdMYWJlbFN1cHBvcnRlZElucHV0RWxlbWVudHMuaW5jbHVkZXModGhpcy5faW5wdXQ/LmxvY2FsTmFtZSBhcyBzdHJpbmcpIHx8XG4gICAgICAgICAgKHRoaXMuX2lucHV0Py5jb25zdHJ1Y3RvciBhcyB1bmRlZmluZWQgfCB0eXBlb2YgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZSlcbiAgICAgICAgICAgID8uZm9ybUZpZWxkQXNzb2NpYXRlZCkgPz9cbiAgICAgICAgICBmYWxzZSkgJiZcbiAgICAgICAgICB0aGlzLl9pc0lucHV0RW1wdHkoKSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzSW5wdXRFbXB0eSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjaGlwR3JvdXBFbGVtOiBTYmJDaGlwR3JvdXBFbGVtZW50IHwgbnVsbCA9IHRoaXMucXVlcnlTZWxlY3Rvcignc2JiLWNoaXAtZ3JvdXAnKTtcbiAgICBpZiAoY2hpcEdyb3VwRWxlbSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5faXNJbnB1dFZhbHVlRW1wdHkoKSAmJlxuICAgICAgICAoQXJyYXkuaXNBcnJheShjaGlwR3JvdXBFbGVtLnZhbHVlKVxuICAgICAgICAgID8gY2hpcEdyb3VwRWxlbS52YWx1ZS5sZW5ndGggPT09IDBcbiAgICAgICAgICA6ICFjaGlwR3JvdXBFbGVtLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1jaGlwJykpXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodGhpcy5faW5wdXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLl9mbG9hdGluZ0xhYmVsU3VwcG9ydGVkSW5wdXRUeXBlcy5pbmNsdWRlcyh0aGlzLl9pbnB1dC50eXBlKSAmJlxuICAgICAgICB0aGlzLl9pc0lucHV0VmFsdWVFbXB0eSgpXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodGhpcy5faW5wdXQgaW5zdGFuY2VvZiBIVE1MU2VsZWN0RWxlbWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2lucHV0LnNlbGVjdGVkT3B0aW9ucz8uaXRlbSgwKT8ubGFiZWw/LnRyaW0oKSA9PT0gJyc7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9pbnB1dD8ubG9jYWxOYW1lID09PSAnc2JiLXNlbGVjdCcpIHtcbiAgICAgIHJldHVybiAodGhpcy5faW5wdXQgYXMgU2JiU2VsZWN0RWxlbWVudCkuZ2V0RGlzcGxheVZhbHVlPy4oKT8udHJpbSgpID09PSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX2lzSW5wdXRWYWx1ZUVtcHR5KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNJbnB1dFZhbHVlRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdmFsdWUgPSAodGhpcy5faW5wdXQgYXMgeyB2YWx1ZTogc3RyaW5nIH0pLnZhbHVlO1xuICAgIHJldHVybiBbJycsIHVuZGVmaW5lZCwgbnVsbF0uaW5jbHVkZXModmFsdWUpIHx8IChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IGlzIHVzZWQgaW50ZXJuYWxseSB0byBzZXQgdGhlIGFyaWEtZGVzY3JpYmVkYnkgYXR0cmlidXRlIGZvciB0aGUgc2xvdHRlZCBpbnB1dCByZWZlcmVuY2luZyBhdmFpbGFibGUgPHNiYi1lcnJvcj4gaW5zdGFuY2VzLlxuICAgKi9cbiAgcHJpdmF0ZSBfb25TbG90RXJyb3JDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZXJyb3JFbGVtZW50cyA9IChldmVudC50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KS5hc3NpZ25lZEVsZW1lbnRzKCk7XG4gICAgaWYgKHRoaXMuX2lucHV0ICYmIHRoaXMuX2lucHV0LmFyaWFEZXNjcmliZWRCeUVsZW1lbnRzPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX2lucHV0LmFyaWFEZXNjcmliZWRCeUVsZW1lbnRzID0gcmVtb3ZlQXJpYUVsZW1lbnRzKFxuICAgICAgICB0aGlzLl9pbnB1dC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgICAgLi4uKHRoaXMuX2Vycm9yRWxlbWVudHMgPz8gW10pLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLl9lcnJvckVsZW1lbnRzID0gZXJyb3JFbGVtZW50cztcbiAgICBmb3IgKGNvbnN0IGVsIG9mIHRoaXMuX2Vycm9yRWxlbWVudHMpIHtcbiAgICAgIC8vIEluc3RlYWQgb2YgZGVmaW5pbmcgYSBjb250YWluZXIgd2l0aCBhbiBhcmlhLWxpdmUgcmVnaW9uIGFzIGV4cGVjdGVkLCB3ZSBoYWQgdG8gY2hhbmdlXG4gICAgICAvLyBzZXR0aW5nIGl0IGZvciBldmVyeSBzbG90dGVkIGVsZW1lbnQgdG8gcHJvcGVybHkgd29yayBpbiBhbGwgYnJvd3NlcnMgYW5kIHNjcmVlbiByZWFkZXIgY29tYmluYXRpb25zLlxuICAgICAgZWwucm9sZSB8fD0gJ3N0YXR1cyc7XG4gICAgfVxuXG4gICAgdGhpcy5fYXNzaWduRXJyb3JNZXNzYWdlRWxlbWVudHMoKTtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdoYXMtZXJyb3InLCAhIXRoaXMuX2Vycm9yRWxlbWVudHMubGVuZ3RoKTtcbiAgICB0aGlzLl9zeW5jTmVnYXRpdmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Fzc2lnbkVycm9yTWVzc2FnZUVsZW1lbnRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pbnB1dCkge1xuICAgICAgdGhpcy5faW5wdXQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMgPSBhcHBlbmRBcmlhRWxlbWVudHMoXG4gICAgICAgIHRoaXMuX2lucHV0LmFyaWFEZXNjcmliZWRCeUVsZW1lbnRzLFxuICAgICAgICAuLi50aGlzLl9lcnJvckVsZW1lbnRzLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKiogTWFudWFsbHkgcmVzZXQgdGhlIGZvcm0gZmllbGQuIEN1cnJlbnRseSwgdGhpcyBvbmx5IHJlc2V0cyB0aGUgZmxvYXRpbmcgbGFiZWwuICovXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jaGVja0FuZFVwZGF0ZUlucHV0RW1wdHkoKTtcbiAgfVxuXG4gIC8qKiBNYW51YWxseSBjbGVhcnMgdGhlIGlucHV0IHZhbHVlLiBJdCBvbmx5IHdvcmtzIGZvciBpbnB1dHMsIHNlbGVjdHMgYXJlIG5vdCBzdXBwb3J0ZWQuICovXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICBpZiAoKHRoaXMuX2lucHV0Py5sb2NhbE5hbWUgYXMgc3RyaW5nKSAhPT0gJ2lucHV0Jykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAodGhpcy5faW5wdXQgYXMgeyB2YWx1ZTogc3RyaW5nIH0pLnZhbHVlID0gJyc7XG4gICAgdGhpcy5fY2hlY2tBbmRVcGRhdGVJbnB1dEVtcHR5KCk7XG4gIH1cblxuICBwcml2YXRlIF9zeW5jTmVnYXRpdmUoKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oXG4gICAgICAnc2JiLWVycm9yLHNiYi1taW5pLWJ1dHRvbixzYmItbWluaS1idXR0b24tbGluayxzYmItZm9ybS1maWVsZC1jbGVhcixzYmItZGF0ZXBpY2tlci1uZXh0LWRheSxzYmItZGF0ZXBpY2tlci1wcmV2aW91cy1kYXksc2JiLWRhdGVwaWNrZXItdG9nZ2xlLHNiYi1zZWxlY3Qsc2JiLWF1dG9jb21wbGV0ZSxzYmItYXV0b2NvbXBsZXRlLWdyaWQsc2JiLWNoaXAtZ3JvdXAnLFxuICAgICkuZm9yRWFjaCgoZWxlbWVudCkgPT4gZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ25lZ2F0aXZlJywgdGhpcy5uZWdhdGl2ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3luY1NpemUoKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy48U2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQgfCBTYmJTZWxlY3RFbGVtZW50PihcbiAgICAgICdzYmItYXV0b2NvbXBsZXRlLHNiYi1hdXRvY29tcGxldGUtZ3JpZCxzYmItc2VsZWN0JyxcbiAgICApLmZvckVhY2goKGVsZW1lbnQpID0+IChlbGVtZW50LnNpemUgPSB0aGlzLnNpemUgPT09ICdzJyA/ICdzJyA6ICdtJykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX3NwYWNlLXdyYXBwZXJcIj5cbiAgICAgICAgJHsvKiBRdWVyaWVkIGJ5IGlkIGZyb20gdGhlIGF1dG9jb21wbGV0ZS9zZWxlY3QgdG8gYmUgdXNlZCBhcyB0aGUgYW5jaG9yIGVsZW1lbnQgKi8gJyd9XG4gICAgICAgIDxkaXYgQGNsaWNrPSR7dGhpcy5faGFuZGxlV3JhcHBlckNsaWNrfSBjbGFzcz1cInNiYi1mb3JtLWZpZWxkX193cmFwcGVyXCIgaWQ9XCJvdmVybGF5LWFuY2hvclwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJwcmVmaXhcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX3N5bmNOZWdhdGl2ZX0+PC9zbG90PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItZm9ybS1maWVsZF9faW5wdXQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1mb3JtLWZpZWxkX19sYWJlbC1zcGFjZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1mb3JtLWZpZWxkX19sYWJlbFwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1mb3JtLWZpZWxkX19sYWJlbC1lbGxpcHNpc1wiPlxuICAgICAgICAgICAgICAgIDxzbG90IG5hbWU9XCJsYWJlbFwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fb25TbG90TGFiZWxDaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgICAgICAgICAke3RoaXMub3B0aW9uYWxcbiAgICAgICAgICAgICAgICAgID8gaHRtbGAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+ICR7aTE4bk9wdGlvbmFsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSA8L3NwYW4+YFxuICAgICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX2lucHV0XCI+XG4gICAgICAgICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5fb25TbG90SW5wdXRDaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgJHt0aGlzLmhhc1VwZGF0ZWQgJiYgWydzZWxlY3QnLCAnc2JiLXNlbGVjdCddLmluY2x1ZGVzKHRoaXMuX2lucHV0Py5sb2NhbE5hbWUgYXMgc3RyaW5nKVxuICAgICAgICAgICAgICA/IGh0bWxgPHNiYi1pY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiY2hldnJvbi1zbWFsbC1kb3duLXNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLWZvcm0tZmllbGRfX3NlbGVjdC1pbnB1dC1pY29uXCJcbiAgICAgICAgICAgICAgICA+PC9zYmItaWNvbj5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwic3VmZml4XCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9zeW5jTmVnYXRpdmV9Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1mb3JtLWZpZWxkX19lcnJvclwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJlcnJvclwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fb25TbG90RXJyb3JDaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZm9ybS1maWVsZCc6IFNiYkZvcm1GaWVsZEVsZW1lbnQ7XG4gIH1cblxuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRFdmVudE1hcCB7XG4gICAgZm9ybWZpZWxkY29udHJvbDogU2JiRm9ybUZpZWxkQ29udHJvbEV2ZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsic3RhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlDQSxJQUFJLFNBQVM7QUFFYixNQUFNLG9DQUFvQixRQUFBO0FBQzFCLE1BQU0sc0JBQXNCLENBQUMsU0FBUyxZQUFZLFFBQVE7QUFvQnBELE1BQU8saUNBQWlDLE1BQUs7QUFBQSxFQUdqRCxJQUFXLFVBQU87QUFDaEIsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBLEVBRUEsWUFBbUIsU0FBMEM7QUFDM0QsVUFBTSxrQkFBa0I7QUFDeEIsU0FBSyxXQUFXO0FBQUEsRUFDbEI7QUFDRDtJQWdCSyx1QkFBbUIsTUFBQTs7MEJBRHhCLGNBQWMsZ0JBQWdCLENBQUM7Ozs7b0JBQ0UsaUJBQ2hDLHlCQUF5QixrQkFBa0IsVUFBVSxDQUFDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFEL0IsRUFBQSxtQkFBUSxZQUVqQztBQUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/status/status.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAUvC,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,SAAS,GACT,SAAS,GACT,OAAO,GACP,SAAS,GACT,YAAY,GACZ,aAAa,GACb,aAAa,CAAC;;AAElB;;;;;;;;;;GAUG;AACH,qBAEM,gBAAiB,SAAQ,qBAAsD;IACnF,OAAuB,MAAM,EAAE,cAAc,CAA4B;IAEzE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAS1B;IAEH,8BAA8B;IAC9B,SAA6C,IAAI,EAAE,aAAa,CAAU;IAE1E,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,eAAe;cAUJ,cAAc,IAAI,MAAM;cAIxB,MAAM,IAAI,cAAc;
|
|
1
|
+
{"version":3,"file":"status.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/status/status.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAUvC,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,SAAS,GACT,SAAS,GACT,OAAO,GACP,SAAS,GACT,YAAY,GACZ,aAAa,GACb,aAAa,CAAC;;AAElB;;;;;;;;;;GAUG;AACH,qBAEM,gBAAiB,SAAQ,qBAAsD;IACnF,OAAuB,MAAM,EAAE,cAAc,CAA4B;IAEzE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAS1B;IAEH,8BAA8B;IAC9B,SAA6C,IAAI,EAAE,aAAa,CAAU;IAE1E,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,eAAe;cAUJ,cAAc,IAAI,MAAM;cAIxB,MAAM,IAAI,cAAc;CAW5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF"}
|
|
@@ -12,11 +12,12 @@ import { SbbElementInternalsMixin } from "../core/mixins.js";
|
|
|
12
12
|
import { boxSizingStyles } from "../core/styles.js";
|
|
13
13
|
import { SbbIconNameMixin } from "../icon.js";
|
|
14
14
|
const style = css`:host {
|
|
15
|
-
--sbb-status-color: var(--sbb-color-4);
|
|
16
|
-
--sbb-status-gap: var(--sbb-spacing-fixed-1x);
|
|
17
15
|
--sbb-status-text-color: var(--sbb-status-color);
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
display: flex;
|
|
17
|
+
gap: var(--sbb-status-gap);
|
|
18
|
+
color: var(--sbb-status-text-color);
|
|
19
|
+
font-size: var(--sbb-status-font-size);
|
|
20
|
+
letter-spacing: var(--sbb-typo-letter-spacing-text);
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
:host([type=error]) {
|
|
@@ -48,23 +49,18 @@ const style = css`:host {
|
|
|
48
49
|
--sbb-status-color: var(--sbb-color-pink);
|
|
49
50
|
}
|
|
50
51
|
|
|
51
|
-
|
|
52
|
-
--sbb-
|
|
53
|
-
font-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
letter-spacing: var(--sbb-typo-letter-spacing-text);
|
|
57
|
-
font-size: var(--sbb-text-font-size);
|
|
58
|
-
display: flex;
|
|
59
|
-
gap: var(--sbb-status-gap);
|
|
60
|
-
color: var(--_sbb-status-text-color-override, var(--sbb-status-text-color));
|
|
52
|
+
:host(:is(:state(slotted-title),[state--slotted-title])) {
|
|
53
|
+
--sbb-status-gap: var(--sbb-spacing-responsive-xxxs);
|
|
54
|
+
--_sbb-status-title-font-size: var(--sbb-heading-font-size-5);
|
|
55
|
+
--_sbb-status-title-line-height: var(--sbb-typo-line-height-heading);
|
|
56
|
+
color: var(--sbb-status-title-color);
|
|
61
57
|
}
|
|
62
58
|
|
|
63
59
|
.sbb-status__icon {
|
|
64
60
|
display: flex;
|
|
65
61
|
flex-shrink: 0;
|
|
66
|
-
color: var(--
|
|
67
|
-
margin-block-start: calc((var(--_sbb-status-title-font-size, var(--sbb-
|
|
62
|
+
color: var(--sbb-status-color);
|
|
63
|
+
margin-block-start: calc((var(--_sbb-status-title-font-size, var(--sbb-status-font-size)) * var(--_sbb-status-title-line-height, var(--sbb-typo-line-height-text)) - var(--sbb-size-icon-ui-small)) / 2);
|
|
68
64
|
}
|
|
69
65
|
|
|
70
66
|
.sbb-status__content-slot {
|
|
@@ -128,15 +124,13 @@ let SbbStatusElement = (() => {
|
|
|
128
124
|
}
|
|
129
125
|
render() {
|
|
130
126
|
return html`
|
|
131
|
-
<
|
|
132
|
-
|
|
133
|
-
<
|
|
134
|
-
|
|
135
|
-
<
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
</span>
|
|
139
|
-
</div>
|
|
127
|
+
<span class="sbb-status__icon"> ${this.renderIconSlot()} </span>
|
|
128
|
+
<span class="sbb-status__content">
|
|
129
|
+
<slot name="title" @slotchange=${this._configureTitle}></slot>
|
|
130
|
+
<p class="sbb-status__content-slot" @slotchange=${this._handleSlotchange}>
|
|
131
|
+
<slot></slot>
|
|
132
|
+
</p>
|
|
133
|
+
</span>
|
|
140
134
|
`;
|
|
141
135
|
}
|
|
142
136
|
}, _type_accessor_storage = new WeakMap(), _classThis = _a, (() => {
|
|
@@ -154,4 +148,4 @@ let SbbStatusElement = (() => {
|
|
|
154
148
|
export {
|
|
155
149
|
SbbStatusElement
|
|
156
150
|
};
|
|
157
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
151
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3N0YXR1cy9zdGF0dXMuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbiB9IGZyb20gJy4uL2NvcmUvbWl4aW5zLnRzJztcbmltcG9ydCB7IGJveFNpemluZ1N0eWxlcyB9IGZyb20gJy4uL2NvcmUvc3R5bGVzLnRzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi9pY29uLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiVGl0bGVFbGVtZW50IH0gZnJvbSAnLi4vdGl0bGUudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zdGF0dXMuc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IHR5cGUgU2JiU3RhdHVzVHlwZSA9XG4gIHwgJ2luZm8nXG4gIHwgJ3N1Y2Nlc3MnXG4gIHwgJ3dhcm5pbmcnXG4gIHwgJ2Vycm9yJ1xuICB8ICdwZW5kaW5nJ1xuICB8ICdpbmNvbXBsZXRlJ1xuICB8ICdub3Qtc3RhcnRlZCdcbiAgfCAnaW4tcHJvZ3Jlc3MnO1xuXG4vKipcbiAqIERpc3BsYXlzIGEgbWVzc2FnZSB0byB0aGUgdXNlcidzIGF0dGVudGlvbi5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBhbiBvcHRpb25hbCBgc2JiLXRpdGxlYCBhbmQgY29udGVudCB0byB0aGUgc3RhdHVzIG1lc3NhZ2UuXG4gKiBAc2xvdCBpY29uIC0gVXNlIHRoaXMgc2xvdCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBzdGF0dXMgaWNvbi5cbiAqIEBzbG90IHRpdGxlIC0gU2xvdCBmb3IgdGhlIHRpdGxlLiBGb3IgdGhlIHN0YW5kYXJkIGBzYmItdGl0bGVgIGVsZW1lbnQsIHRoZSBzbG90IGlzIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQgd2hlbiBzbG90dGVkIGluIHRoZSB1bm5hbWVkIHNsb3QuXG4gKiBAY3NzcHJvcCBbLS1zYmItc3RhdHVzLWNvbG9yPXZhcigtLXNiYi1jb2xvci1pcm9uKV0gLSBTcGVjaWZ5IGEgY3VzdG9tIGNvbG9yLFxuICogd2hpY2ggd2lsbCBvdmVycmlkZSB0aGUgcHJlZGVmaW5lZCBjb2xvciBmb3IgYW55IHR5cGUuXG4gKiBAY3NzcHJvcCBbLS1zYmItc3RhdHVzLXRleHQtY29sb3I9dmFyKC0tc2JiLXN0YXR1cy1jb2xvcildIC0gU3BlY2lmeSBhIGN1c3RvbSB0ZXh0IGNvbG9yLFxuICogd2hpY2ggd2lsbCBvdmVycmlkZSB0aGUgcHJlZGVmaW5lZCBjb2xvciBmb3IgYW55IHR5cGUuIE9ubHkgdmFsaWQgZm9yIGEgc3RhdHVzIHdpdGhvdXQgYSB0aXRsZS5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXN0YXR1cycpXG5jbGFzcyBTYmJTdGF0dXNFbGVtZW50IGV4dGVuZHMgU2JiSWNvbk5hbWVNaXhpbihTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oTGl0RWxlbWVudCkpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgc3R5bGVdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXR1c1R5cGVzOiBNYXA8U2JiU3RhdHVzVHlwZSwgc3RyaW5nPiA9IG5ldyBNYXAoW1xuICAgIFsnaW5mbycsICdjaXJjbGUtaW5mb3JtYXRpb24tc21hbGwnXSxcbiAgICBbJ3N1Y2Nlc3MnLCAnY2lyY2xlLXRpY2stc21hbGwnXSxcbiAgICBbJ3dhcm5pbmcnLCAnY2lyY2xlLWV4Y2xhbWF0aW9uLXBvaW50LXNtYWxsJ10sXG4gICAgWydlcnJvcicsICdjaXJjbGUtY3Jvc3Mtc21hbGwnXSxcbiAgICBbJ3BlbmRpbmcnLCAnY2lyY2xlLXRocmVlLWRvdHMtc21hbGwnXSxcbiAgICBbJ2luY29tcGxldGUnLCAnY2lyY2xlLWRvdHRlZC1wYXJ0LXgtc21hbGwnXSxcbiAgICBbJ25vdC1zdGFydGVkJywgJ2NpcmNsZS1kb3R0ZWQtc21hbGwnXSxcbiAgICBbJ2luLXByb2dyZXNzJywgJ2NpcmNsZS1kb3R0ZWQtcGFydC1zbWFsbCddLFxuICBdKTtcblxuICAvKiogVGhlIHR5cGUgb2YgdGhlIHN0YXR1cy4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3IgdHlwZTogU2JiU3RhdHVzVHlwZSA9ICdpbmZvJztcblxuICBwcml2YXRlIF9oYW5kbGVTbG90Y2hhbmdlKCk6IHZvaWQge1xuICAgIGNvbnN0IHRpdGxlID0gQXJyYXkuZnJvbSh0aGlzLmNoaWxkcmVuKS5maW5kKChlbCkgPT4gZWwubG9jYWxOYW1lID09PSAnc2JiLXRpdGxlJyk7XG4gICAgaWYgKHRpdGxlKSB7XG4gICAgICB0aXRsZS5zbG90ID0gJ3RpdGxlJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jb25maWd1cmVUaXRsZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0aXRsZSA9IChldmVudC50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KVxuICAgICAgLmFzc2lnbmVkRWxlbWVudHMoKVxuICAgICAgLmZpbmQoKGUpOiBlIGlzIFNiYlRpdGxlRWxlbWVudCA9PiBlLmxvY2FsTmFtZSA9PT0gJ3NiYi10aXRsZScpO1xuICAgIGlmICh0aXRsZSkge1xuICAgICAgY3VzdG9tRWxlbWVudHMudXBncmFkZSh0aXRsZSk7XG4gICAgICB0aXRsZS52aXN1YWxMZXZlbCA9ICc1JztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVySWNvbk5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3VwZXIucmVuZGVySWNvbk5hbWUoKSB8fCB0aGlzLl9zdGF0dXNUeXBlcy5nZXQodGhpcy50eXBlKSE7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXN0YXR1c19faWNvblwiPiAke3RoaXMucmVuZGVySWNvblNsb3QoKX0gPC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItc3RhdHVzX19jb250ZW50XCI+XG4gICAgICAgIDxzbG90IG5hbWU9XCJ0aXRsZVwiIEBzbG90Y2hhbmdlPSR7dGhpcy5fY29uZmlndXJlVGl0bGV9Pjwvc2xvdD5cbiAgICAgICAgPHAgY2xhc3M9XCJzYmItc3RhdHVzX19jb250ZW50LXNsb3RcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX2hhbmRsZVNsb3RjaGFuZ2V9PlxuICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgPC9wPlxuICAgICAgPC9zcGFuPlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1zdGF0dXMnOiBTYmJTdGF0dXNFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFrQ00sb0JBQWdCLE1BQUE7OzBCQURyQixjQUFjLFlBQVksQ0FBQzs7OztBQUNHLE1BQUEsY0FBQSxpQkFBaUIseUJBQXlCLFVBQVUsQ0FBQzs7OztBQUE3RCxFQUFBLG1CQUFRLFlBQXNEO0FBQUE7O0FBZXREO0FBWlosV0FBQSxtQ0FBK0MsSUFBSTtBQUFBLFFBQ2xFLENBQUMsUUFBUSwwQkFBMEI7QUFBQSxRQUNuQyxDQUFDLFdBQVcsbUJBQW1CO0FBQUEsUUFDL0IsQ0FBQyxXQUFXLGdDQUFnQztBQUFBLFFBQzVDLENBQUMsU0FBUyxvQkFBb0I7QUFBQSxRQUM5QixDQUFDLFdBQVcseUJBQXlCO0FBQUEsUUFDckMsQ0FBQyxjQUFjLDRCQUE0QjtBQUFBLFFBQzNDLENBQUMsZUFBZSxxQkFBcUI7QUFBQSxRQUNyQyxDQUFDLGVBQWUsMEJBQTBCO0FBQUEsTUFBQSxDQUMzQztBQUc0Qyx5QkFBQSx3QkFBQSxrQkFBQSxNQUFBLG9CQUFzQixNQUFNOzs7O0lBQTVDLElBQWdCLE9BQUk7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXBCLElBQWdCLEtBQUksT0FBQTtBQUFBLHlCQUFBLHdCQUFBO0FBQUEsSUFBQTtBQUFBLElBRXpDLG9CQUFpQjtBQUN2QixZQUFNLFFBQVEsTUFBTSxLQUFLLEtBQUssUUFBUSxFQUFFLEtBQUssQ0FBQyxPQUFPLEdBQUcsY0FBYyxXQUFXO0FBQ2pGLFVBQUksT0FBTztBQUNULGNBQU0sT0FBTztBQUFBLE1BQ2Y7QUFBQSxJQUNGO0FBQUEsSUFFUSxnQkFBZ0IsT0FBWTtBQUNsQyxZQUFNLFFBQVMsTUFBTSxPQUNsQixpQkFBQSxFQUNBLEtBQUssQ0FBQyxNQUE0QixFQUFFLGNBQWMsV0FBVztBQUNoRSxVQUFJLE9BQU87QUFDVCx1QkFBZSxRQUFRLEtBQUs7QUFDNUIsY0FBTSxjQUFjO0FBQUEsTUFDdEI7QUFBQSxJQUNGO0FBQUEsSUFFbUIsaUJBQWM7QUFDL0IsYUFBTyxNQUFNLG9CQUFvQixLQUFLLGFBQWEsSUFBSSxLQUFLLElBQUk7QUFBQSxJQUNsRTtBQUFBLElBRW1CLFNBQU07QUFDdkIsYUFBTztBQUFBLHdDQUM2QixLQUFLLGdCQUFnQjtBQUFBO0FBQUEseUNBRXBCLEtBQUssZUFBZTtBQUFBLDBEQUNILEtBQUssaUJBQWlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUs5RTtBQUFBLEtBakM2Qjs7QUFBNUIsdUJBQUEsQ0FBQSxTQUFTLEVBQUUsU0FBUyxLQUFBLENBQU0sQ0FBQztBQUFDLGlCQUFBLElBQUEsTUFBQSxrQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLFFBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsVUFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLE1BQUksS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUosT0FBSTtBQUFBLElBQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSxvQkFBQSx1QkFBQTtBQWZuRCxpQkFBQSxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O1FBQ3lCLEdBQUEsU0FBeUIsQ0FBQyxpQkFBaUIsS0FBSyxHQURuRSxrQkFBQSxZQUFBLHVCQUFBLEdBQWlCOzs7In0=
|
|
@@ -14,7 +14,7 @@ import { i18nOptional as ye } from "../../core/i18n.js";
|
|
|
14
14
|
import { SbbNegativeMixin as xe, SbbElementInternalsMixin as Ee, SbbHydrationMixin as we, removeAriaElements as ke, appendAriaElements as ze } from "../../core/mixins.js";
|
|
15
15
|
import { boxSizingStyles as Ie } from "../../core/styles.js";
|
|
16
16
|
import "../../icon.js";
|
|
17
|
-
const Se = pe`@charset "UTF-8";:host{display:inline-block;color:var(--sbb-color-3);--sbb-form-field-background-color: var(--sbb-background-color-1);--sbb-form-field-border-color: var(--sbb-border-color-5);--sbb-form-field-border-style: solid;--sbb-form-field-border-radius: var(--sbb-border-radius-4x);--sbb-form-field-border-width: var(--sbb-border-width-1x);--sbb-form-field-min-height: var(--sbb-size-element-m);--sbb-form-field-label-color: var(--sbb-color-metal);--sbb-form-field-label-color: light-dark(var(--sbb-color-metal), var(--sbb-color-smoke));--sbb-form-field-prefix-color: var(--sbb-color-metal);--sbb-form-field-prefix-color: light-dark(var(--sbb-color-metal), var(--sbb-color-smoke));--sbb-form-field-padding-inline: var(--sbb-spacing-fixed-3x);--sbb-form-field-text-color: var(--sbb-color-3);--sbb-form-field-arrow-color: var(--sbb-color-3);--sbb-form-field-error-divider-width: var(--sbb-spacing-fixed-1x);--sbb-form-field-error-padding-block-start: var(--sbb-form-field-error-divider-width);--sbb-form-field-gap: var(--sbb-spacing-fixed-2x);--sbb-form-field-label-to-input-overlapping: var(--sbb-spacing-fixed-1x);--sbb-form-field-select-inline-padding-end: calc( var(--sbb-icon-svg-width) + var(--sbb-form-field-gap) );--sbb-form-field-overflow: hidden;--sbb-form-field-input-text-size: var(--sbb-text-font-size-m);--sbb-form-field-label-text-size: var(--sbb-text-font-size-xs);--sbb-form-field-label-size: calc( var(--sbb-form-field-label-text-size) * var(--sbb-typo-line-height-text) );--sbb-form-field-text-line-height: calc( var(--sbb-form-field-input-text-size) * var(--sbb-typo-line-height-text) );--sbb-form-field-margin-block-start: calc( ( var(--sbb-form-field-min-height) - var(--sbb-form-field-label-size) - var( --sbb-form-field-text-line-height ) + var(--sbb-form-field-label-to-input-overlapping) ) / 2 );--sbb-form-field-spacer-margin-block-end: calc( -1 * var(--sbb-form-field-label-to-input-overlapping) );--sbb-form-field-floating-label-transform: .53125rem;--sbb-icon-svg-width: var(--sbb-size-icon-ui-small);--sbb-icon-svg-height: var(--sbb-size-icon-ui-small);--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);--sbb-focus-outline-color: light-dark( var(--sbb-focus-outline-color-default), var(--sbb-focus-outline-color-dark) )}@media(min-width:64rem){:host{--sbb-form-field-floating-label-transform: .65625rem}}@media(forced-colors:active){:host{--sbb-form-field-border-color: ButtonBorder}}:host(:where(:not([width=collapse]))){min-width:9.375rem;width:min(18.75rem,100%)}:host([negative]){color:var(--sbb-color-3-negative);--sbb-form-field-background-color: var(--sbb-background-color-1-negative);--sbb-form-field-border-color: var(--sbb-border-color-5);--sbb-form-field-label-color: var(--sbb-color-5);--sbb-form-field-prefix-color: var(--sbb-color-5);--sbb-form-field-text-color: var(--sbb-color-3-negative);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);--sbb-form-field-arrow-color: var(--sbb-color-3-negative)}@media(forced-colors:active){:host([negative]){--sbb-form-field-border-color: ButtonBorder}}:host([size=s]){--sbb-form-field-min-height: var(--sbb-size-element-xs);--sbb-form-field-padding-inline: var(--sbb-spacing-fixed-2x);--sbb-form-field-input-text-size: var(--sbb-text-font-size-s);--sbb-form-field-label-text-size: var(--sbb-text-font-size-xxs);--sbb-form-field-label-to-input-overlapping: .625rem;--sbb-form-field-floating-label-transform: .34375rem;--sbb-form-field-spacer-margin-block-end: -.53125rem}@media(min-width:64rem){:host([size=s]){--sbb-form-field-label-to-input-overlapping: .6875rem;--sbb-form-field-floating-label-transform: .3125rem;--sbb-form-field-spacer-margin-block-end: -.5rem}}:host([size=l]){--sbb-form-field-min-height: var(--sbb-size-element-l);--sbb-form-field-padding-inline: var(--sbb-spacing-responsive-xxxs)}:host([error-space=reserve]){--sbb-form-field-error-min-height: calc( var(--sbb-typo-line-height-text) * var(--sbb-text-font-size-xs) );--sbb-form-field-error-padding-block-start-override: var(--sbb-form-field-error-divider-width)}:host(:where(:is(:state(readonly),[state--readonly]),:is(:state(disabled),[state--disabled]))){--sbb-form-field-background-color: var(--sbb-background-color-3);--sbb-form-field-border-color: var(--sbb-color-graphite);--sbb-form-field-border-color: light-dark(var(--sbb-color-graphite), var(--sbb-color-smoke));--sbb-form-field-arrow-color: var(--sbb-color-granite);--sbb-form-field-arrow-color: light-dark(var(--sbb-color-granite), var(--sbb-color-storm))}@media(forced-colors:active){:host(:where(:is(:state(readonly),[state--readonly]),:is(:state(disabled),[state--disabled]))){--sbb-form-field-border-color: ButtonBorder}}:host(:where(:is(:state(readonly),[state--readonly]),:is(:state(disabled),[state--disabled]))[negative]){--sbb-form-field-background-color: var(--sbb-background-color-3-negative);--sbb-form-field-border-color: var(--sbb-border-color-5);--sbb-form-field-arrow-color: var(--sbb-border-color-5)}:host(:where(:is(:state(disabled),[state--disabled]))){--sbb-form-field-label-color: var(--sbb-color-granite);--sbb-form-field-label-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));--sbb-form-field-prefix-color: var(--sbb-color-granite);--sbb-form-field-prefix-color: light-dark(var(--sbb-color-granite), var(--sbb-color-storm));--sbb-form-field-border-style: dashed}@media(forced-colors:active){:host(:where(:is(:state(disabled),[state--disabled]))){--sbb-form-field-label-color: GrayText !important;--sbb-form-field-prefix-color: GrayText !important;--sbb-form-field-text-color: GrayText !important;--sbb-form-field-border-color: GrayText !important}}:host(:where(:is(:state(disabled),[state--disabled]))[negative]){--sbb-form-field-text-color: var(--sbb-color-5);--sbb-form-field-label-color: var(--sbb-color-5);--sbb-form-field-prefix-color: var(--sbb-color-5)}:host(:where(:is(:state(readonly),[state--readonly])):not([negative])){--sbb-form-field-label-color: var(--sbb-color-granite);--sbb-form-field-label-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));--sbb-form-field-prefix-color: var(--sbb-color-granite);--sbb-form-field-prefix-color: light-dark(var(--sbb-color-granite), var(--sbb-color-storm))}:host(:where(:is(:state(focus),[state--focus]))){--sbb-form-field-border-color: var(--sbb-border-color-3);--sbb-form-field-prefix-color: var(--sbb-color-3);--sbb-form-field-border-width: var(--sbb-border-width-2x)}:host(:where(:is(:state(focus),[state--focus]))[negative]){--sbb-form-field-border-color: var(--sbb-border-color-3-negative);--sbb-form-field-prefix-color: var(--sbb-color-3-negative)}@media(forced-colors:active){:host(:is(:state(focus),[state--focus])){--sbb-form-field-border-color: Highlight;--sbb-form-field-prefix-color: Highlight}}:host(:not(:where(:is(:state(has-error),[state--has-error])))){--sbb-form-field-error-padding-block-start: 0}:host([floating-label]){--sbb-select-placeholder-color: transparent}@media(forced-colors:active){:host([floating-label]){--sbb-select-placeholder-color: Canvas}}:host(:is(:not(:is(:state(slotted-label),[state--slotted-label])),[hidden-label])){--sbb-form-field-label-size: 0rem;--sbb-form-field-label-to-input-overlapping: 0rem}:host(:where(:is(:state(input-type-sbb-slider),[state--input-type-sbb-slider]))){--sbb-form-field-overflow: visible}.sbb-form-field__space-wrapper{display:flex;flex-direction:column;height:100%}.sbb-form-field__space-wrapper:before{content:"";-webkit-user-select:none;user-select:none;width:0;height:0}.sbb-form-field__wrapper{display:flex;flex:1;gap:var(--sbb-form-field-gap);padding-inline:var(--sbb-form-field-padding-inline);border-radius:var(--sbb-form-field-border-radius);min-height:var(--sbb-form-field-min-height);max-height:var(--sbb-form-field-max-height);background-color:var(--sbb-form-field-background-color);position:relative}.sbb-form-field__wrapper:before{content:"";display:block;position:absolute;inset:0;border:var(--sbb-form-field-border-width) var(--sbb-form-field-border-style) var(--sbb-form-field-border-color);border-radius:var(--sbb-form-field-border-radius)}:host(:where(:is(:state(focus),[state--focus]):is(:state(focus-origin-keyboard),[state--focus-origin-keyboard]))) .sbb-form-field__wrapper{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);outline-offset:var(--sbb-form-field-outline-offset, var(--sbb-focus-outline-offset))}@media(forced-colors:none){:host(:is([borderless],:is(:state(input-type-sbb-slider),[state--input-type-sbb-slider]))) .sbb-form-field__wrapper:before{border-color:transparent}:host(:where(:is(:state(focus),[state--focus]),:is(:state(disabled),[state--disabled]))[borderless]) .sbb-form-field__wrapper:after{content:"";position:absolute;border-block-end:var(--sbb-border-width-1x) var(--sbb-form-field-border-style) var(--sbb-form-field-border-color);inset-inline:var(--sbb-form-field-padding-inline);inset-block-end:0;z-index:var(--sbb-form-field-focus-underline-z-index, initial)}}::slotted(*[slot=prefix]){color:var(--sbb-form-field-prefix-color)}::slotted(*[slot=prefix]),::slotted(*[slot=suffix]){display:flex;min-width:var(--sbb-icon-svg-width);margin-block-start:calc((var(--sbb-form-field-min-height) - var(--sbb-size-icon-ui-small)) / 2)}:host(:where(:is(:state(empty),[state--empty]),:is(:state(disabled),[state--disabled]),:is(:state(readonly),[state--readonly]))) ::slotted(sbb-form-field-clear){display:none}::slotted(sbb-datepicker-toggle){padding-block-end:calc((var(--sbb-form-field-min-height) - var(--sbb-size-icon-ui-small)) / 2)}@media(forced-colors:active){::slotted(*[slot=suffix]){color:var(--sbb-form-field-prefix-color)}}.sbb-form-field__select-input-icon{top:50%;transform:translateY(-50%);position:absolute;inset-inline-end:0;margin-block-start:calc(-1 * var(--sbb-form-field-margin-block-start) / 2);pointer-events:none;color:var(--sbb-form-field-arrow-color)}.sbb-form-field__input-container{display:flex;flex-direction:column;flex:1 1 auto;position:relative;margin-block-start:var(--sbb-form-field-margin-block-start);min-width:0}.sbb-form-field__label-spacer{display:flex;height:calc(var(--sbb-form-field-label-text-size) * var(--sbb-typo-line-height-text));margin-block-end:var(--sbb-form-field-spacer-margin-block-end)}:host(:not(:is(:state(slotted-label),[state--slotted-label]))) :is(.sbb-form-field__label,.sbb-form-field__label-spacer){display:none}:host([hidden-label]) :is(.sbb-form-field__label,.sbb-form-field__label-spacer){border:0;clip-path:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sbb-form-field__label{display:flex;max-width:100%;cursor:var(--sbb-cursor-default);position:absolute;inset-block-start:0;color:var(--sbb-form-field-label-color);--sbb-text-font-size: var(--sbb-text-font-size-xs);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-text);letter-spacing:var(--sbb-typo-letter-spacing-text);font-size:var(--sbb-text-font-size)}:host([size=s]) .sbb-form-field__label{--sbb-text-font-size: var(--sbb-text-font-size-xxs);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-text);letter-spacing:var(--sbb-typo-letter-spacing-text);font-size:var(--sbb-text-font-size)}:host(:where(:is(:state(input-type-select),[state--input-type-select]),:is(:state(input-type-sbb-select),[state--input-type-sbb-select]))) .sbb-form-field__label{padding-inline-end:var(--sbb-form-field-select-inline-padding-end)}:host([floating-label]) .sbb-form-field__label{transform-origin:0 0;pointer-events:none;backface-visibility:hidden;will-change:transform,font-size;transition-duration:var(--sbb-disable-animation-duration, var(--sbb-animation-duration-2x));transition-timing-function:var(--sbb-animation-easing);transition-property:transform,font-size}:host([floating-label]:is(:not(:where(:is(:state(focus),[state--focus])):not(:where(:is(:state(input-type-sbb-select),[state--input-type-sbb-select]))),:where(:is(:state(has-popup-open),[state--has-popup-open]))),:where(:is(:state(readonly),[state--readonly]))):where(:is(:state(empty),[state--empty]))) .sbb-form-field__label{font-size:var(--sbb-form-field-input-text-size);transform:translateY(var(--sbb-form-field-floating-label-transform))}@media(forced-colors:active){:host(:where(:is(:state(input-type-textarea),[state--input-type-textarea]))) .sbb-form-field__label{z-index:1}}.sbb-form-field__label-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sbb-form-field__input{display:flex;flex:1;align-items:start}:host([size=s]:is(:is(:state(input-type-input),[state--input-type-input]),:is(:state(input-type-select),[state--input-type-select]),:is(:state(input-type-sbb-select),[state--input-type-sbb-select]),:is(:state(input-type-sbb-date-input),[state--input-type-sbb-date-input]),:is(:state(input-type-sbb-time-input),[state--input-type-sbb-time-input]))) .sbb-form-field__input{margin-block-end:-.125rem}.sbb-form-field__error{display:flex;min-height:var(--sbb-form-field-error-min-height);flex-direction:column;margin-block-start:var(--sbb-form-field-error-padding-block-start-override, var(--sbb-form-field-error-padding-block-start))}`;
|
|
17
|
+
const Se = pe`@charset "UTF-8";:host{display:inline-block;color:var(--sbb-color-3);--sbb-form-field-background-color: var(--sbb-background-color-1);--sbb-form-field-border-color: var(--sbb-border-color-5);--sbb-form-field-border-style: solid;--sbb-form-field-border-radius: var(--sbb-border-radius-4x);--sbb-form-field-border-width: var(--sbb-border-width-1x);--sbb-form-field-min-height: var(--sbb-size-element-m);--sbb-form-field-label-color: var(--sbb-color-metal);--sbb-form-field-label-color: light-dark(var(--sbb-color-metal), var(--sbb-color-smoke));--sbb-form-field-prefix-color: var(--sbb-color-metal);--sbb-form-field-prefix-color: light-dark(var(--sbb-color-metal), var(--sbb-color-smoke));--sbb-form-field-padding-inline: var(--sbb-spacing-fixed-3x);--sbb-form-field-text-color: var(--sbb-color-3);--sbb-form-field-arrow-color: var(--sbb-color-3);--sbb-form-field-error-divider-width: var(--sbb-spacing-fixed-1x);--sbb-form-field-error-padding-block-start: var(--sbb-form-field-error-divider-width);--sbb-form-field-gap: var(--sbb-spacing-fixed-2x);--sbb-form-field-label-to-input-overlapping: var(--sbb-spacing-fixed-1x);--sbb-form-field-select-inline-padding-end: calc( var(--sbb-icon-svg-width) + var(--sbb-form-field-gap) );--sbb-form-field-overflow: hidden;--sbb-form-field-input-text-size: var(--sbb-text-font-size-m);--sbb-form-field-label-text-size: var(--sbb-text-font-size-xs);--sbb-form-field-label-size: calc( var(--sbb-form-field-label-text-size) * var(--sbb-typo-line-height-text) );--sbb-form-field-text-line-height: calc( var(--sbb-form-field-input-text-size) * var(--sbb-typo-line-height-text) );--sbb-form-field-margin-block-start: calc( ( var(--sbb-form-field-min-height) - var(--sbb-form-field-label-size) - var( --sbb-form-field-text-line-height ) + var(--sbb-form-field-label-to-input-overlapping) ) / 2 );--sbb-form-field-spacer-margin-block-end: calc( -1 * var(--sbb-form-field-label-to-input-overlapping) );--sbb-form-field-floating-label-transform: .53125rem;--sbb-icon-svg-width: var(--sbb-size-icon-ui-small);--sbb-icon-svg-height: var(--sbb-size-icon-ui-small);--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);--sbb-focus-outline-color: light-dark( var(--sbb-focus-outline-color-default), var(--sbb-focus-outline-color-dark) )}@media(min-width:64rem){:host{--sbb-form-field-floating-label-transform: .65625rem}}@media(forced-colors:active){:host{--sbb-form-field-border-color: ButtonBorder}}:host(:where(:not([width=collapse]))){min-width:9.375rem;width:min(18.75rem,100%)}:host([negative]){color:var(--sbb-color-3-negative);--sbb-form-field-background-color: var(--sbb-background-color-1-negative);--sbb-form-field-border-color: var(--sbb-border-color-5);--sbb-form-field-label-color: var(--sbb-color-5);--sbb-form-field-prefix-color: var(--sbb-color-5);--sbb-form-field-text-color: var(--sbb-color-3-negative);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);--sbb-form-field-arrow-color: var(--sbb-color-3-negative)}@media(forced-colors:active){:host([negative]){--sbb-form-field-border-color: ButtonBorder}}:host([size=s]){--sbb-form-field-min-height: var(--sbb-size-element-xs);--sbb-form-field-padding-inline: var(--sbb-spacing-fixed-2x);--sbb-form-field-input-text-size: var(--sbb-text-font-size-s);--sbb-form-field-label-text-size: var(--sbb-text-font-size-xxs);--sbb-form-field-label-to-input-overlapping: .625rem;--sbb-form-field-floating-label-transform: .34375rem;--sbb-form-field-spacer-margin-block-end: -.53125rem}@media(min-width:64rem){:host([size=s]){--sbb-form-field-label-to-input-overlapping: .6875rem;--sbb-form-field-floating-label-transform: .3125rem;--sbb-form-field-spacer-margin-block-end: -.5rem}}:host([size=l]){--sbb-form-field-min-height: var(--sbb-size-element-l);--sbb-form-field-padding-inline: var(--sbb-spacing-responsive-xxxs)}:host([error-space=reserve]){--sbb-form-field-error-min-height: calc( var(--sbb-typo-line-height-text) * var(--sbb-text-font-size-xs) );--sbb-form-field-error-padding-block-start-override: var(--sbb-form-field-error-divider-width)}:host(:where(:is(:state(readonly),[state--readonly]),:is(:state(disabled),[state--disabled]))){--sbb-form-field-background-color: var(--sbb-background-color-3);--sbb-form-field-border-color: var(--sbb-color-graphite);--sbb-form-field-border-color: light-dark(var(--sbb-color-graphite), var(--sbb-color-smoke));--sbb-form-field-arrow-color: var(--sbb-color-granite);--sbb-form-field-arrow-color: light-dark(var(--sbb-color-granite), var(--sbb-color-storm))}@media(forced-colors:active){:host(:where(:is(:state(readonly),[state--readonly]),:is(:state(disabled),[state--disabled]))){--sbb-form-field-border-color: ButtonBorder}}:host(:where(:is(:state(readonly),[state--readonly]),:is(:state(disabled),[state--disabled]))[negative]){--sbb-form-field-background-color: var(--sbb-background-color-3-negative);--sbb-form-field-border-color: var(--sbb-border-color-5);--sbb-form-field-arrow-color: var(--sbb-border-color-5)}:host(:where(:is(:state(disabled),[state--disabled]))){--sbb-form-field-label-color: var(--sbb-color-granite);--sbb-form-field-label-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));--sbb-form-field-prefix-color: var(--sbb-color-granite);--sbb-form-field-prefix-color: light-dark(var(--sbb-color-granite), var(--sbb-color-storm));--sbb-form-field-border-style: dashed}@media(forced-colors:active){:host(:where(:is(:state(disabled),[state--disabled]))){--sbb-form-field-label-color: GrayText !important;--sbb-form-field-prefix-color: GrayText !important;--sbb-form-field-text-color: GrayText !important;--sbb-form-field-border-color: GrayText !important}}:host(:where(:is(:state(disabled),[state--disabled]))[negative]){--sbb-form-field-text-color: var(--sbb-color-5);--sbb-form-field-label-color: var(--sbb-color-5);--sbb-form-field-prefix-color: var(--sbb-color-5)}:host(:where(:is(:state(readonly),[state--readonly])):not([negative])){--sbb-form-field-label-color: var(--sbb-color-granite);--sbb-form-field-label-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));--sbb-form-field-prefix-color: var(--sbb-color-granite);--sbb-form-field-prefix-color: light-dark(var(--sbb-color-granite), var(--sbb-color-storm))}:host(:where(:is(:state(focus),[state--focus]))){--sbb-form-field-border-color: var(--sbb-border-color-3);--sbb-form-field-prefix-color: var(--sbb-color-3);--sbb-form-field-border-width: var(--sbb-border-width-2x)}:host(:where(:is(:state(focus),[state--focus]))[negative]){--sbb-form-field-border-color: var(--sbb-border-color-3-negative);--sbb-form-field-prefix-color: var(--sbb-color-3-negative)}@media(forced-colors:active){:host(:is(:state(focus),[state--focus])){--sbb-form-field-border-color: Highlight;--sbb-form-field-prefix-color: Highlight}}:host(:not(:where(:is(:state(has-error),[state--has-error])))){--sbb-form-field-error-padding-block-start: 0}:host([floating-label]){--sbb-select-placeholder-color: transparent}@media(forced-colors:active){:host([floating-label]){--sbb-select-placeholder-color: Canvas}}:host(:is(:not(:is(:state(slotted-label),[state--slotted-label])),[hidden-label])){--sbb-form-field-label-size: 0rem;--sbb-form-field-label-to-input-overlapping: 0rem}:host(:where(:is(:state(input-type-sbb-slider),[state--input-type-sbb-slider]))){--sbb-form-field-overflow: visible}.sbb-form-field__space-wrapper{display:flex;flex-direction:column;height:100%}.sbb-form-field__space-wrapper:before{content:"";-webkit-user-select:none;user-select:none;width:0;height:0}.sbb-form-field__wrapper{display:flex;flex:1;gap:var(--sbb-form-field-gap);padding-inline:var(--sbb-form-field-padding-inline);border-radius:var(--sbb-form-field-border-radius);min-height:var(--sbb-form-field-min-height);max-height:var(--sbb-form-field-max-height);background-color:var(--sbb-form-field-background-color);position:relative}.sbb-form-field__wrapper:before{content:"";display:block;position:absolute;inset:0;border:var(--sbb-form-field-border-width) var(--sbb-form-field-border-style) var(--sbb-form-field-border-color);border-radius:var(--sbb-form-field-border-radius);pointer-events:none}:host(:where(:is(:state(focus),[state--focus]):is(:state(focus-origin-keyboard),[state--focus-origin-keyboard]))) .sbb-form-field__wrapper{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);outline-offset:var(--sbb-form-field-outline-offset, var(--sbb-focus-outline-offset))}@media(forced-colors:none){:host(:is([borderless],:is(:state(input-type-sbb-slider),[state--input-type-sbb-slider]))) .sbb-form-field__wrapper:before{border-color:transparent}:host(:where(:is(:state(focus),[state--focus]),:is(:state(disabled),[state--disabled]))[borderless]) .sbb-form-field__wrapper:after{content:"";position:absolute;border-block-end:var(--sbb-border-width-1x) var(--sbb-form-field-border-style) var(--sbb-form-field-border-color);inset-inline:var(--sbb-form-field-padding-inline);inset-block-end:0;z-index:var(--sbb-form-field-focus-underline-z-index, initial)}}::slotted(*[slot=prefix]){color:var(--sbb-form-field-prefix-color)}::slotted(*[slot=prefix]),::slotted(*[slot=suffix]){display:flex;min-width:var(--sbb-icon-svg-width);margin-block-start:calc((var(--sbb-form-field-min-height) - var(--sbb-size-icon-ui-small)) / 2)}:host(:where(:is(:state(empty),[state--empty]),:is(:state(disabled),[state--disabled]),:is(:state(readonly),[state--readonly]))) ::slotted(sbb-form-field-clear){display:none}::slotted(sbb-datepicker-toggle){padding-block-end:calc((var(--sbb-form-field-min-height) - var(--sbb-size-icon-ui-small)) / 2)}@media(forced-colors:active){::slotted(*[slot=suffix]){color:var(--sbb-form-field-prefix-color)}}.sbb-form-field__select-input-icon{top:50%;transform:translateY(-50%);position:absolute;inset-inline-end:0;margin-block-start:calc(-1 * var(--sbb-form-field-margin-block-start) / 2);pointer-events:none;color:var(--sbb-form-field-arrow-color)}.sbb-form-field__input-container{display:flex;flex-direction:column;flex:1 1 auto;position:relative;margin-block-start:var(--sbb-form-field-margin-block-start);min-width:0}.sbb-form-field__label-spacer{display:flex;height:calc(var(--sbb-form-field-label-text-size) * var(--sbb-typo-line-height-text));margin-block-end:var(--sbb-form-field-spacer-margin-block-end)}:host(:not(:is(:state(slotted-label),[state--slotted-label]))) :is(.sbb-form-field__label,.sbb-form-field__label-spacer){display:none}:host([hidden-label]) :is(.sbb-form-field__label,.sbb-form-field__label-spacer){border:0;clip-path:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sbb-form-field__label{display:flex;max-width:100%;cursor:var(--sbb-cursor-default);position:absolute;inset-block-start:0;color:var(--sbb-form-field-label-color);--sbb-text-font-size: var(--sbb-text-font-size-xs);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-text);letter-spacing:var(--sbb-typo-letter-spacing-text);font-size:var(--sbb-text-font-size)}:host([size=s]) .sbb-form-field__label{--sbb-text-font-size: var(--sbb-text-font-size-xxs);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-text);letter-spacing:var(--sbb-typo-letter-spacing-text);font-size:var(--sbb-text-font-size)}:host(:where(:is(:state(input-type-select),[state--input-type-select]),:is(:state(input-type-sbb-select),[state--input-type-sbb-select]))) .sbb-form-field__label{padding-inline-end:var(--sbb-form-field-select-inline-padding-end)}:host([floating-label]) .sbb-form-field__label{transform-origin:0 0;pointer-events:none;backface-visibility:hidden;will-change:transform,font-size;transition-duration:var(--sbb-disable-animation-duration, var(--sbb-animation-duration-2x));transition-timing-function:var(--sbb-animation-easing);transition-property:transform,font-size}:host([floating-label]:is(:not(:where(:is(:state(focus),[state--focus])):not(:where(:is(:state(input-type-sbb-select),[state--input-type-sbb-select]))),:where(:is(:state(has-popup-open),[state--has-popup-open]))),:where(:is(:state(readonly),[state--readonly]))):where(:is(:state(empty),[state--empty]))) .sbb-form-field__label{font-size:var(--sbb-form-field-input-text-size);transform:translateY(var(--sbb-form-field-floating-label-transform))}@media(forced-colors:active){:host(:where(:is(:state(input-type-textarea),[state--input-type-textarea]))) .sbb-form-field__label{z-index:1}}.sbb-form-field__label-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sbb-form-field__input{display:flex;flex:1;align-items:start}:host([size=s]:is(:is(:state(input-type-input),[state--input-type-input]),:is(:state(input-type-select),[state--input-type-select]),:is(:state(input-type-sbb-select),[state--input-type-sbb-select]),:is(:state(input-type-sbb-date-input),[state--input-type-sbb-date-input]),:is(:state(input-type-sbb-time-input),[state--input-type-sbb-time-input]))) .sbb-form-field__input{margin-block-end:-.125rem}.sbb-form-field__error{display:flex;min-height:var(--sbb-form-field-error-min-height);flex-direction:column;margin-block-start:var(--sbb-form-field-error-padding-block-start-override, var(--sbb-form-field-error-padding-block-start))}`;
|
|
18
18
|
let ne = 0;
|
|
19
19
|
const z = /* @__PURE__ */ new WeakMap(), be = ["input", "textarea", "select"];
|
|
20
20
|
class qe extends Event {
|
package/off-brand-theme.css
CHANGED
|
@@ -1640,6 +1640,11 @@ summary {
|
|
|
1640
1640
|
--sbb-selection-panel-input-padding-block-m
|
|
1641
1641
|
);
|
|
1642
1642
|
--sbb-selection-expansion-panel-content-padding-inline: var(--sbb-selection-panel-input-padding-inline-m);
|
|
1643
|
+
--sbb-status-color: var(--sbb-color-4);
|
|
1644
|
+
--sbb-status-gap: var(--sbb-spacing-fixed-1x);
|
|
1645
|
+
--sbb-status-font-size: var(--sbb-text-font-size-s);
|
|
1646
|
+
--sbb-status-title-color: var(--sbb-color-granite);
|
|
1647
|
+
--sbb-status-title-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));
|
|
1643
1648
|
--sbb-tab-group-content-gap-size-s: var(--sbb-spacing-responsive-xs);
|
|
1644
1649
|
--sbb-tab-group-content-gap-size-l: var(--sbb-spacing-responsive-s);
|
|
1645
1650
|
--sbb-tab-group-content-gap-size-xl: var(--sbb-spacing-responsive-m);
|
|
@@ -2338,14 +2343,6 @@ sbb-notification:has(sbb-title)[size=s] {
|
|
|
2338
2343
|
--_sbb-notification-icon-authoritative-line-height: var(--sbb-typo-line-height-text);
|
|
2339
2344
|
}
|
|
2340
2345
|
|
|
2341
|
-
sbb-status:has(sbb-title) {
|
|
2342
|
-
--sbb-status-gap: var(--sbb-spacing-responsive-xxxs);
|
|
2343
|
-
--_sbb-status-text-color-override: var(--sbb-color-granite);
|
|
2344
|
-
--_sbb-status-text-color-override: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));
|
|
2345
|
-
--_sbb-status-title-font-size: var(--sbb-heading-font-size-5);
|
|
2346
|
-
--_sbb-status-title-line-height: var(--sbb-typo-line-height-heading);
|
|
2347
|
-
}
|
|
2348
|
-
|
|
2349
2346
|
.sbb-overlay-outlet {
|
|
2350
2347
|
position: fixed;
|
|
2351
2348
|
inset: 0;
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sbb-esta/lyne-elements-dev",
|
|
3
|
-
"version": "4.6.0-dev.
|
|
3
|
+
"version": "4.6.0-dev.1772535081",
|
|
4
4
|
"description": "Lyne Design System",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"design system",
|
|
7
7
|
"web components",
|
|
8
8
|
"lit",
|
|
9
9
|
"storybook",
|
|
10
|
-
"https://github.com/sbb-design-systems/lyne-components/commit/
|
|
10
|
+
"https://github.com/sbb-design-systems/lyne-components/commit/16061832922f0d00aa3ee6371aff6885211e1e74"
|
|
11
11
|
],
|
|
12
12
|
"type": "module",
|
|
13
13
|
"exports": {
|
package/safety-theme.css
CHANGED
|
@@ -1640,6 +1640,11 @@ summary {
|
|
|
1640
1640
|
--sbb-selection-panel-input-padding-block-m
|
|
1641
1641
|
);
|
|
1642
1642
|
--sbb-selection-expansion-panel-content-padding-inline: var(--sbb-selection-panel-input-padding-inline-m);
|
|
1643
|
+
--sbb-status-color: var(--sbb-color-4);
|
|
1644
|
+
--sbb-status-gap: var(--sbb-spacing-fixed-1x);
|
|
1645
|
+
--sbb-status-font-size: var(--sbb-text-font-size-s);
|
|
1646
|
+
--sbb-status-title-color: var(--sbb-color-granite);
|
|
1647
|
+
--sbb-status-title-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));
|
|
1643
1648
|
--sbb-tab-group-content-gap-size-s: var(--sbb-spacing-responsive-xs);
|
|
1644
1649
|
--sbb-tab-group-content-gap-size-l: var(--sbb-spacing-responsive-s);
|
|
1645
1650
|
--sbb-tab-group-content-gap-size-xl: var(--sbb-spacing-responsive-m);
|
|
@@ -2338,14 +2343,6 @@ sbb-notification:has(sbb-title)[size=s] {
|
|
|
2338
2343
|
--_sbb-notification-icon-authoritative-line-height: var(--sbb-typo-line-height-text);
|
|
2339
2344
|
}
|
|
2340
2345
|
|
|
2341
|
-
sbb-status:has(sbb-title) {
|
|
2342
|
-
--sbb-status-gap: var(--sbb-spacing-responsive-xxxs);
|
|
2343
|
-
--_sbb-status-text-color-override: var(--sbb-color-granite);
|
|
2344
|
-
--_sbb-status-text-color-override: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));
|
|
2345
|
-
--_sbb-status-title-font-size: var(--sbb-heading-font-size-5);
|
|
2346
|
-
--_sbb-status-title-line-height: var(--sbb-typo-line-height-heading);
|
|
2347
|
-
}
|
|
2348
|
-
|
|
2349
2346
|
.sbb-overlay-outlet {
|
|
2350
2347
|
position: fixed;
|
|
2351
2348
|
inset: 0;
|
package/standard-theme.css
CHANGED
|
@@ -1640,6 +1640,11 @@ summary {
|
|
|
1640
1640
|
--sbb-selection-panel-input-padding-block-m
|
|
1641
1641
|
);
|
|
1642
1642
|
--sbb-selection-expansion-panel-content-padding-inline: var(--sbb-selection-panel-input-padding-inline-m);
|
|
1643
|
+
--sbb-status-color: var(--sbb-color-4);
|
|
1644
|
+
--sbb-status-gap: var(--sbb-spacing-fixed-1x);
|
|
1645
|
+
--sbb-status-font-size: var(--sbb-text-font-size-s);
|
|
1646
|
+
--sbb-status-title-color: var(--sbb-color-granite);
|
|
1647
|
+
--sbb-status-title-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));
|
|
1643
1648
|
--sbb-tab-group-content-gap-size-s: var(--sbb-spacing-responsive-xs);
|
|
1644
1649
|
--sbb-tab-group-content-gap-size-l: var(--sbb-spacing-responsive-s);
|
|
1645
1650
|
--sbb-tab-group-content-gap-size-xl: var(--sbb-spacing-responsive-m);
|
|
@@ -2338,14 +2343,6 @@ sbb-notification:has(sbb-title)[size=s] {
|
|
|
2338
2343
|
--_sbb-notification-icon-authoritative-line-height: var(--sbb-typo-line-height-text);
|
|
2339
2344
|
}
|
|
2340
2345
|
|
|
2341
|
-
sbb-status:has(sbb-title) {
|
|
2342
|
-
--sbb-status-gap: var(--sbb-spacing-responsive-xxxs);
|
|
2343
|
-
--_sbb-status-text-color-override: var(--sbb-color-granite);
|
|
2344
|
-
--_sbb-status-text-color-override: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));
|
|
2345
|
-
--_sbb-status-title-font-size: var(--sbb-heading-font-size-5);
|
|
2346
|
-
--_sbb-status-title-line-height: var(--sbb-typo-line-height-heading);
|
|
2347
|
-
}
|
|
2348
|
-
|
|
2349
2346
|
.sbb-overlay-outlet {
|
|
2350
2347
|
position: fixed;
|
|
2351
2348
|
inset: 0;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
var
|
|
1
|
+
var d = (t) => {
|
|
2
2
|
throw TypeError(t);
|
|
3
3
|
};
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
import { __esDecorate as
|
|
4
|
+
var g = (t, s, e) => s.has(t) || d("Cannot " + e);
|
|
5
|
+
var y = (t, s, e) => (g(t, s, "read from private field"), e ? e.call(t) : s.get(t)), _ = (t, s, e) => s.has(t) ? d("Cannot add the same private member more than once") : s instanceof WeakSet ? s.add(t) : s.set(t, e), c = (t, s, e, r) => (g(t, s, "write to private field"), r ? r.call(t, e) : s.set(t, e), e);
|
|
6
|
+
import { __esDecorate as f, __runInitializers as b } from "tslib";
|
|
7
7
|
import { css as v, LitElement as x, html as S } from "lit";
|
|
8
8
|
import { customElement as z, property as k } from "lit/decorators.js";
|
|
9
9
|
import { SbbElementInternalsMixin as I } from "../core/mixins.js";
|
|
10
10
|
import { boxSizingStyles as E } from "../core/styles.js";
|
|
11
|
-
import { SbbIconNameMixin as
|
|
12
|
-
const
|
|
11
|
+
import { SbbIconNameMixin as N } from "../icon.js";
|
|
12
|
+
const T = v`:host{--sbb-status-text-color: var(--sbb-status-color);display:flex;gap:var(--sbb-status-gap);color:var(--sbb-status-text-color);font-size:var(--sbb-status-font-size);letter-spacing:var(--sbb-typo-letter-spacing-text)}:host([type=error]){--sbb-status-color: var(--sbb-color-error)}:host([type=success]){--sbb-status-color: var(--sbb-color-success)}:host([type=warning]){--sbb-status-color: var(--sbb-color-2)}:host([type=pending]){--sbb-status-color: var(--sbb-color-sky)}:host([type=incomplete]){--sbb-status-color: var(--sbb-color-error)}:host([type=not-started]){--sbb-status-color: var(--sbb-color-5);--sbb-status-text-color: var(--sbb-color-2)}:host([type=in-progress]){--sbb-status-color: var(--sbb-color-pink)}:host(:is(:state(slotted-title),[state--slotted-title])){--sbb-status-gap: var(--sbb-spacing-responsive-xxxs);--_sbb-status-title-font-size: var(--sbb-heading-font-size-5);--_sbb-status-title-line-height: var(--sbb-typo-line-height-heading);color:var(--sbb-status-title-color)}.sbb-status__icon{display:flex;flex-shrink:0;color:var(--sbb-status-color);margin-block-start:calc((var(--_sbb-status-title-font-size, var(--sbb-status-font-size)) * var(--_sbb-status-title-line-height, var(--sbb-typo-line-height-text)) - var(--sbb-size-icon-ui-small)) / 2)}.sbb-status__content-slot{display:inline;margin:0;padding:0}::slotted(sbb-title){margin-block:0}`;
|
|
13
13
|
let P = (() => {
|
|
14
|
-
var i,
|
|
15
|
-
let t = [z("sbb-status")], s, e = [], r, p =
|
|
16
|
-
return
|
|
14
|
+
var i, o;
|
|
15
|
+
let t = [z("sbb-status")], s, e = [], r, p = N(I(x)), u, m = [], h = [];
|
|
16
|
+
return o = class extends p {
|
|
17
17
|
constructor() {
|
|
18
18
|
super(...arguments);
|
|
19
19
|
_(this, i);
|
|
@@ -26,45 +26,43 @@ let P = (() => {
|
|
|
26
26
|
["incomplete", "circle-dotted-part-x-small"],
|
|
27
27
|
["not-started", "circle-dotted-small"],
|
|
28
28
|
["in-progress", "circle-dotted-part-small"]
|
|
29
|
-
]),
|
|
29
|
+
]), c(this, i, b(this, m, "info")), b(this, h);
|
|
30
30
|
}
|
|
31
31
|
/** The type of the status. */
|
|
32
32
|
get type() {
|
|
33
|
-
return
|
|
33
|
+
return y(this, i);
|
|
34
34
|
}
|
|
35
35
|
set type(a) {
|
|
36
|
-
|
|
36
|
+
c(this, i, a);
|
|
37
37
|
}
|
|
38
38
|
_handleSlotchange() {
|
|
39
|
-
const a = Array.from(this.children).find((
|
|
39
|
+
const a = Array.from(this.children).find((l) => l.localName === "sbb-title");
|
|
40
40
|
a && (a.slot = "title");
|
|
41
41
|
}
|
|
42
42
|
_configureTitle(a) {
|
|
43
|
-
const
|
|
44
|
-
|
|
43
|
+
const l = a.target.assignedElements().find((n) => n.localName === "sbb-title");
|
|
44
|
+
l && (customElements.upgrade(l), l.visualLevel = "5");
|
|
45
45
|
}
|
|
46
46
|
renderIconName() {
|
|
47
47
|
return super.renderIconName() || this._statusTypes.get(this.type);
|
|
48
48
|
}
|
|
49
49
|
render() {
|
|
50
50
|
return S`
|
|
51
|
-
<
|
|
52
|
-
|
|
53
|
-
<
|
|
54
|
-
|
|
55
|
-
<
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
</span>
|
|
59
|
-
</div>
|
|
51
|
+
<span class="sbb-status__icon"> ${this.renderIconSlot()} </span>
|
|
52
|
+
<span class="sbb-status__content">
|
|
53
|
+
<slot name="title" @slotchange=${this._configureTitle}></slot>
|
|
54
|
+
<p class="sbb-status__content-slot" @slotchange=${this._handleSlotchange}>
|
|
55
|
+
<slot></slot>
|
|
56
|
+
</p>
|
|
57
|
+
</span>
|
|
60
58
|
`;
|
|
61
59
|
}
|
|
62
|
-
}, i = new WeakMap(), r =
|
|
60
|
+
}, i = new WeakMap(), r = o, (() => {
|
|
63
61
|
const a = typeof Symbol == "function" && Symbol.metadata ? Object.create(p[Symbol.metadata] ?? null) : void 0;
|
|
64
|
-
u = [k({ reflect: !0 })],
|
|
65
|
-
|
|
66
|
-
} }, metadata: a }, m,
|
|
67
|
-
})(),
|
|
62
|
+
u = [k({ reflect: !0 })], f(o, null, u, { kind: "accessor", name: "type", static: !1, private: !1, access: { has: (l) => "type" in l, get: (l) => l.type, set: (l, n) => {
|
|
63
|
+
l.type = n;
|
|
64
|
+
} }, metadata: a }, m, h), f(null, s = { value: r }, t, { kind: "class", name: r.name, metadata: a }, null, e), r = s.value, a && Object.defineProperty(r, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: a });
|
|
65
|
+
})(), o.styles = [E, T], b(r, e), r;
|
|
68
66
|
})();
|
|
69
67
|
export {
|
|
70
68
|
P as SbbStatusElement
|