@softheon/armature 17.22.3 → 17.22.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (19) hide show
  1. package/assets/styles/material-override/_button.scss +171 -200
  2. package/esm2022/ag-grid-components/src/column-options-modal/column-options.component.mjs +3 -3
  3. package/esm2022/ag-grid-components/src/sof-table/sof-table.component.mjs +3 -3
  4. package/esm2022/lib/base-components/confirm-address/sof-confirm-address/sof-confirm-address.component.mjs +3 -3
  5. package/esm2022/lib/base-components/confirm-address/sof-confirm-address-county-change/sof-confirm-address-county-change.component.mjs +3 -3
  6. package/esm2022/lib/base-components/sof-modal/sof-modal.component.mjs +3 -3
  7. package/esm2022/lib/base-components/sof-utility-button/sof-utility-button.component.mjs +10 -21
  8. package/esm2022/lib/feedback-tool/components/feedback-tool/feedback-tool.component.mjs +3 -3
  9. package/esm2022/lib/header/components/header/header.component.mjs +3 -3
  10. package/esm2022/lib/header/components/sof-header-portal/sof-header-portal.component.mjs +3 -3
  11. package/esm2022/lib/navigation/components/sof-navigation-panel/sof-nav-panel.component.mjs +36 -8
  12. package/fesm2022/softheon-armature-ag-grid-components.mjs +4 -4
  13. package/fesm2022/softheon-armature-ag-grid-components.mjs.map +1 -1
  14. package/fesm2022/softheon-armature.mjs +57 -41
  15. package/fesm2022/softheon-armature.mjs.map +1 -1
  16. package/lib/base-components/sof-utility-button/sof-utility-button.component.d.ts +4 -14
  17. package/lib/navigation/components/sof-navigation-panel/sof-nav-panel.component.d.ts +22 -3
  18. package/package.json +1 -1
  19. package/ag-grid-components/package.json +0 -3
@@ -2,41 +2,9 @@
2
2
  @use "../arm-theme" as theme;
3
3
  @use "../variables" as vars;
4
4
 
5
- // ⚠️ this file needs to be audited, missing several button styles, at least from documentation
6
- // [figma buttons] https://www.figma.com/design/W5HVNCcN9HafDRvc5N7Z28/Softheon-Unified-Design-System?node-id=6370-64249&node-type=canvas&t=JXuu3NWd5Lq1lE4a-0
7
-
8
- /**
9
- Button styles should have -
10
-
11
- 3 color themes: ( 'brand-theme', 'neutral', 'destroy' )
12
-
13
- Each color has 4 types ( 'primary-solid', 'secondary', 'floating', 'contained' )
14
-
15
- Each type has 4 interactive states ( 'enabled', 'hover', 'pressed', 'disabled' )
16
- */
17
-
18
- // @todo: update the use of 'var()' to use 'mat.get-color-from-palette()'
19
-
20
- button.mat-mdc-button .mat-mdc-button-ripple,
21
- .mat-mdc-button .mat-mdc-button-persistent-ripple,
22
- .mat-mdc-button .mat-mdc-button-persistent-ripple::before,
23
- .mat-mdc-unelevated-button .mat-mdc-button-ripple,
24
- .mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,
25
- .mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,
26
- .mat-mdc-raised-button .mat-mdc-button-ripple,
27
- .mat-mdc-raised-button .mat-mdc-button-persistent-ripple,
28
- .mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,
29
- .mat-mdc-outlined-button .mat-mdc-button-ripple,
30
- .mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,
31
- .mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before {
32
- background: none !important;
33
- }
34
-
35
- button.sof-button-v2 {
36
- display: flex;
37
- justify-content: center;
38
- align-items: center;
39
- padding: 8px !important;
5
+ // Base 'sof-button-v2'
6
+ .sof-button-v2 {
7
+ padding: 8px 16px !important;
40
8
  height: 40px !important;
41
9
  border-radius: 8px !important;
42
10
  font-family: Poppins !important;
@@ -47,220 +15,223 @@ button.sof-button-v2 {
47
15
  letter-spacing: 0px !important;
48
16
  text-transform: capitalize !important;
49
17
 
50
- &.fixed-width {
51
- width: 200px !important; // Use this is to match specific sizing
52
- }
18
+ .mdc-button__label {
19
+ display: flex !important;
20
+ align-items: center !important;
21
+ justify-content: center !important;
22
+ gap: 8px !important;
53
23
 
54
- &.full-width {
55
- width: 100% !important; // Use this is button width will take size of flex percentage
24
+ i {
25
+ font-size: 20px !important;
26
+ }
56
27
  }
57
28
 
58
- &.mat-mdc-unelevated-button span.mdc-button__label.mdc-button__label {
59
- display: flex;
60
- align-items: center;
61
- font-size: 16px;
29
+ &.fixed-width {
30
+ width: 200px !important;
31
+ }
62
32
 
63
- i {
64
- font-size: 20px;
65
- }
33
+ &.full-width {
34
+ width: 100% !important;
66
35
  }
36
+ }
67
37
 
68
- &.mat-mdc-unelevated-button span.mdc-button__label {
69
- display: flex;
70
- align-items: center;
38
+ // Base 'sof-button-icon-v2'
39
+ .sof-button-icon-v2 {
40
+ border-radius: 8px !important;
41
+ height: 40px !important;
42
+ width: 40px !important;
43
+ min-width: 40px !important;
44
+ max-width: 40px !important;
45
+ padding: 0 !important;
46
+
47
+ .mdc-button__label {
48
+ display: flex !important;
49
+ align-items: center !important;
71
50
  justify-content: center !important;
72
- width: 100% !important;
73
51
 
74
52
  i {
75
- margin-right: 8px !important;
53
+ font-size: 24px !important;
76
54
  }
77
55
  }
56
+ }
78
57
 
79
- &:enabled {
80
- &.mat-primary {
81
- background: mat.get-color-from-palette(theme.$arm-primary, 500);
82
- color: map-get(theme.$arm-primary, contrast, 900);
83
-
58
+ /**
59
+ Button v2 variations -
60
+ 3 [theme] ( 'primary', 'neutral', 'destroy' )
61
+ Each [theme] has 4 [emphasis] ( 'solid', 'secondary', 'floating', 'contained' )
62
+ Each [emphasis] has 4 states ( 'hover', 'pressed', 'disabled', 'focus )
63
+ */
64
+ .sof-button-v2,
65
+ .sof-button-icon-v2 {
66
+ // solid
67
+ &[emphasis="solid"] {
68
+ &[theme="primary"] {
69
+ background: mat.get-color-from-palette(theme.$arm-primary, 500) !important;
70
+ background-color: mat.get-color-from-palette(theme.$arm-primary, 500) !important;
71
+ color: map-get(theme.$arm-primary, contrast, 500) !important;
84
72
  &:hover {
85
- background-color: var(--primary-color-500-parts);
73
+ background: mat.get-color-from-palette(theme.$arm-primary, 700) !important;
74
+ background-color: mat.get-color-from-palette(theme.$arm-primary, 700) !important;
86
75
  }
87
-
88
- &:focus {
89
- outline: 3px solid mat.get-color-from-palette(theme.$arm-primary, 300);
90
- outline-offset: 2px !important;
76
+ &:active {
77
+ background: mat.get-color-from-palette(theme.$arm-primary, 800) !important;
78
+ background-color: mat.get-color-from-palette(theme.$arm-primary, 800) !important;
91
79
  }
92
80
  }
93
-
94
- &.mat-secondary {
95
- background: vars.$surface-color-level-one-light !important;
96
- color: var(--primary-color-contrast-50-parts);
97
-
81
+ &[theme="neutral"] {
82
+ background: mat.get-color-from-palette(theme.$arm-neutral, 500) !important;
83
+ background-color: mat.get-color-from-palette(theme.$arm-neutral, 500) !important;
84
+ color: map-get(theme.$arm-neutral, contrast, 500);
98
85
  &:hover {
99
- background-color: vars.$surface-color-level-one-light !important;
86
+ background: mat.get-color-from-palette(theme.$arm-neutral, 700) !important;
87
+ background-color: mat.get-color-from-palette(theme.$arm-neutral, 700) !important;
100
88
  }
101
-
102
- &:focus {
103
- outline: 3px solid mat.get-color-from-palette(theme.$arm-primary, 300);
104
- outline-offset: 2px !important;
89
+ &:active {
90
+ background: mat.get-color-from-palette(theme.$arm-neutral, 800) !important;
91
+ background-color: mat.get-color-from-palette(theme.$arm-neutral, 800) !important;
105
92
  }
106
93
  }
107
-
108
- &.mat-tertiary {
109
- color: var(--primary-color-contrast-50-parts);
110
- background: none !important;
111
-
94
+ &[theme="destroy"] {
95
+ background: mat.get-color-from-palette(theme.$arm-error, 500) !important;
96
+ background-color: mat.get-color-from-palette(theme.$arm-error, 500) !important;
97
+ color: map-get(theme.$arm-error, contrast, 500);
112
98
  &:hover {
113
- background-color: transparent !important;
99
+ background: mat.get-color-from-palette(theme.$arm-error, 700) !important;
100
+ background-color: mat.get-color-from-palette(theme.$arm-error, 700) !important;
114
101
  }
115
-
116
- &:focus {
117
- outline: 3px solid mat.get-color-from-palette(theme.$arm-primary, 300);
118
- outline-offset: 2px !important;
102
+ &:active {
103
+ background: mat.get-color-from-palette(theme.$arm-error, 800) !important;
104
+ background-color: mat.get-color-from-palette(theme.$arm-error, 800) !important;
119
105
  }
120
106
  }
121
-
122
- &.mat-error {
123
- background: mat.get-color-from-palette(theme.$arm-error, 900);
124
- color: map-get(theme.$arm-error, contrast, 900);
125
-
126
- &:hover {
127
- background-color: mat.get-color-from-palette(theme.$arm-error, 700);
128
- color: map-get(theme.$arm-error, contrast, 700);
129
- }
130
-
131
- &:focus {
132
- outline: 3px solid mat.get-color-from-palette(theme.$arm-primary, 300);
133
- outline-offset: 2px !important;
107
+ &[theme="primary"], &[theme="neutral"], &[theme="destroy"] {
108
+ &:disabled {
109
+ background: mat.get-color-from-palette(theme.$arm-neutral, A100) !important;
110
+ background-color: mat.get-color-from-palette(theme.$arm-neutral, A100) !important;
111
+ color: vars.$text-low-emphasis !important;
134
112
  }
135
113
  }
136
114
  }
137
-
138
- &:disabled {
139
- background: vars.$surface-color-level-one-light !important;
140
- color: rgba(0, 0, 0, 0.6) !important;
141
- opacity: 1 !important;
142
-
143
- &:hover {
144
- background-color: mat.get-color-from-palette(theme.$arm-primary, 500);
115
+ // secondary
116
+ &[emphasis="secondary"] {
117
+ &[theme="primary"], &[theme="neutral"], &[theme="destroy"] {
118
+ background: vars.$surface-color-level-one-light !important;
119
+ background-color: vars.$surface-color-level-one-light !important;
120
+ &:hover, &:disabled {
121
+ background: mat.get-color-from-palette(theme.$arm-neutral, A200) !important;
122
+ background-color: mat.get-color-from-palette(theme.$arm-neutral, A200) !important;
123
+ }
124
+ &:active {
125
+ background: mat.get-color-from-palette(theme.$arm-neutral, A300) !important;
126
+ background-color: mat.get-color-from-palette(theme.$arm-neutral, A300) !important;
127
+ }
128
+ &:disabled {
129
+ color: vars.$text-low-emphasis !important;
130
+ }
145
131
  }
146
-
147
- &:focus {
148
- outline: 3px solid mat.get-color-from-palette(theme.$arm-primary, 300);
149
- outline-offset: 2px !important;
132
+ &[theme="primary"] {
133
+ color: mat.get-color-from-palette(theme.$arm-primary, 500) !important;
134
+ }
135
+ &[theme="neutral"] {
136
+ color: vars.$text-high-emphasis !important;
137
+ }
138
+ &[theme="destroy"] {
139
+ color: mat.get-color-from-palette(theme.$arm-error, 500) !important;
150
140
  }
151
141
  }
152
-
153
- // have not seen this (.no-hover-effect) class? remove if not needed,
154
- // also need to disable ripple effects globally
155
- &.no-hover-effect.mat-button.mat-primary .mat-button-focus-overlay,
156
- .no-hover-effect.mat-button.mat-secondary .mat-button-focus-overlay,
157
- .no-hover-effect.mat-button.mat-tertiary .mat-button-focus-overlay,
158
- .no-hover-effect.mat-button.mat-error .mat-button-focus-overlay,
159
- .no-hover-effect.mat-button.mat-accent .mat-button-focus-overlay,
160
- .no-hover-effect.mat-button.mat-warn .mat-button-focus-overlay {
161
- background-color: transparent;
162
- }
163
- }
164
-
165
- button.sof-button-icon-v2 {
166
- display: flex !important;
167
- padding: 8px !important;
168
- border-radius: 8px !important;
169
- height: 40px !important;
170
- justify-content: center !important;
171
- align-items: center !important;
172
- gap: 8px !important;
173
- max-width: 36px !important;
174
-
175
- &.mat-mdc-unelevated-button span.mdc-button__label.mdc-button__label {
176
- display: flex;
177
- align-items: center;
178
- font-size: 24px;
179
-
180
- }
181
-
182
- &.mdc-button {
183
- min-width: 40px;
184
- }
185
-
186
- &.full-width {
187
- width: 100% !important; // Use this is button width will take size of flex percentage
188
- }
189
-
190
- &:enabled {
191
- &.mat-primary {
192
- background: mat.get-color-from-palette(theme.$arm-primary, 500);
193
- color: map-get(theme.$arm-error, contrast, 900);
194
-
142
+ // floating, contained
143
+ &[emphasis="floating"], &[emphasis="contained"] {
144
+ &[theme="primary"], &[theme="neutral"], &[theme="destroy"] {
145
+ background: transparent !important;
146
+ background-color: transparent !important;
147
+ }
148
+ &[theme="primary"] {
149
+ color: mat.get-color-from-palette(theme.$arm-primary, 500) !important;
195
150
  &:hover {
196
- background-color: mat.get-color-from-palette(theme.$arm-primary, 500) !important;
197
- color: map-get(theme.$arm-error, contrast, 700);
151
+ background: mat.get-color-from-palette(theme.$arm-primary, A100) !important;
152
+ background-color: mat.get-color-from-palette(theme.$arm-primary, A100) !important;
198
153
  }
199
-
200
- &:focus {
201
- outline: 3px solid mat.get-color-from-palette(theme.$arm-primary, 300);
202
- outline-offset: 2px !important;
154
+ &:active {
155
+ background: mat.get-color-from-palette(theme.$arm-primary, A200) !important;
156
+ background-color: mat.get-color-from-palette(theme.$arm-primary, A200) !important;
203
157
  }
204
158
  }
205
-
206
- &.mat-secondary {
207
- background-color: vars.$surface-color-level-one-light !important;
208
- color: var(--primary-color-contrast-50-parts);
209
-
159
+ &[theme="neutral"] {
160
+ color: vars.$text-high-emphasis !important;
210
161
  &:hover {
211
- background-color: vars.$surface-color-level-one-light !important;
212
- color: var(--primary-color-contrast-50-parts) !important;
162
+ background: mat.get-color-from-palette(theme.$arm-neutral, A100) !important;
163
+ background-color: mat.get-color-from-palette(theme.$arm-neutral, A100) !important;
213
164
  }
214
-
215
- &:focus {
216
- outline: 3px solid mat.get-color-from-palette(theme.$arm-primary, 300);
217
- outline-offset: 2px !important;
165
+ &:active {
166
+ background: mat.get-color-from-palette(theme.$arm-neutral, A200) !important;
167
+ background-color: mat.get-color-from-palette(theme.$arm-neutral, A200) !important;
218
168
  }
219
169
  }
220
-
221
- &.mat-tertiary {
222
- color: var(--primary-color-contrast-50-parts);
223
- background: transparent !important;
224
-
225
- &:focus {
226
- outline: 3px solid mat.get-color-from-palette(theme.$arm-primary, 300);
227
- outline-offset: 2px !important;
228
- }
229
- }
230
-
231
- &.mat-error {
232
- background: mat.get-color-from-palette(theme.$arm-error, 900);
233
- color: map-get(theme.$arm-error, contrast, 900);
234
-
170
+ &[theme="destroy"] {
171
+ color: mat.get-color-from-palette(theme.$arm-error, 500) !important;
235
172
  &:hover {
236
- background-color: mat.get-color-from-palette(theme.$arm-error, 700);
237
- color: map-get(theme.$arm-error, contrast, 700);
173
+ background: mat.get-color-from-palette(theme.$arm-error, A100) !important;
174
+ background-color: mat.get-color-from-palette(theme.$arm-error, A100) !important;
238
175
  }
239
-
240
- &:focus {
241
- outline: 3px solid mat.get-color-from-palette(theme.$arm-primary, 300);
242
- outline-offset: 2px !important;
176
+ &:active {
177
+ background: mat.get-color-from-palette(theme.$arm-error, A200) !important;
178
+ background-color: mat.get-color-from-palette(theme.$arm-error, A200) !important;
179
+ }
180
+ }
181
+ &[theme="primary"], &[theme="neutral"], &[theme="destroy"] {
182
+ &:disabled {
183
+ color: vars.$text-low-emphasis !important;
243
184
  }
244
185
  }
245
186
  }
246
-
247
- &:disabled {
248
- background: vars.$surface-color-level-one-light !important;
249
- color: vars.$text-medium-emphasis !important;
250
- opacity: 1 !important;
251
-
252
- &:hover {
253
- background-color: mat.get-color-from-palette(theme.$arm-primary, 500);
187
+ // contained
188
+ &[emphasis="contained"] {
189
+ &[theme="primary"], &[theme="neutral"], &[theme="destroy"] {
190
+ box-sizing: border-box !important;
191
+ border: 2px solid !important;
254
192
  }
255
-
193
+ &[theme="primary"] {
194
+ border-color: mat.get-color-from-palette(theme.$arm-primary, 500) !important;
195
+ color: mat.get-color-from-palette(theme.$arm-primary, 500) !important;
196
+ }
197
+ &[theme="neutral"] {
198
+ border-color: mat.get-color-from-palette(theme.$arm-neutral, 500) !important;
199
+ color: vars.$text-high-emphasis !important;
200
+ }
201
+ &[theme="destroy"] {
202
+ border-color: mat.get-color-from-palette(theme.$arm-error, 500) !important;
203
+ color: mat.get-color-from-palette(theme.$arm-error, 500) !important;
204
+ }
205
+ &[theme="primary"], &[theme="neutral"], &[theme="destroy"] {
206
+ &:disabled {
207
+ border-color: vars.$text-low-emphasis !important;
208
+ }
209
+ }
210
+ }
211
+ // focus ring for all
212
+ &[theme="primary"], &[theme="neutral"], &[theme="destroy"] {
256
213
  &:focus {
257
- outline: 3px solid mat.get-color-from-palette(theme.$arm-primary, 300);
214
+ outline: 3px solid !important;
258
215
  outline-offset: 2px !important;
216
+ outline-color: mat.get-color-from-palette(theme.$arm-primary, 300) !important;
217
+ }
218
+ }
219
+ &[theme="destroy"] {
220
+ &:focus {
221
+ outline-color: mat.get-color-from-palette(theme.$arm-error, 300) !important;
259
222
  }
260
223
  }
224
+ // Remove mat-ripple effects
225
+ span.mat-mdc-button-persistent-ripple {
226
+ display: none !important;
227
+ }
228
+ span.mat-mdc-button-ripple {
229
+ display: none !important;
230
+ }
261
231
  }
262
232
 
263
- // notification badge styles ...
233
+ // Mat Notification badge
264
234
  button .mat-badge-content {
265
- background-color: #333333 !important;
235
+ background: vars.$surface-color-inverse-light !important;
236
+ background-color: vars.$surface-color-inverse-light !important;
266
237
  }
@@ -32,10 +32,10 @@ export class SofColumnOptionsComponent {
32
32
  this.data.columnData = structuredClone(this.data.initialColumnData);
33
33
  }
34
34
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: SofColumnOptionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: SofColumnOptionsComponent, selector: "sof-column-options", ngImport: i0, template: "<div class=\"column-options-header\">\r\n <i class=\"ph-bold ph-square-split-horizontal\" aria-hidden=\"true\"></i>\r\n <h2 id=\"column-options-heading\">{{'armature.sof-table.column-options' | translate}}</h2>\r\n <button \r\n mat-dialog-close m-l-auto \r\n disableRipple=\"true\" id=\"column-options-close\" aria-label=\"close\">\r\n <i class=\"ph-bold ph-x close\" aria-hidden=\"true\"></i>\r\n </button>\r\n</div>\r\n<div class=\"column-options-container\">\r\n <div class=\"column-options-description\">\r\n <p>\r\n {{'armature.sof-table.column-options-description' | translate}} \r\n {{ data.showSaveColumnOptionsText ? ('armature.sof-table.column-options-description-saving' | translate) : ''}}\r\n </p>\r\n <p class=\"table-label\">{{data.tableName | translate}} {{'armature.sof-table.columns' | translate}}</p>\r\n </div>\r\n <div class=\"column-options-selections\">\r\n <sof-handle [handleList]=\"data.columnData\"/>\r\n </div>\r\n <div class=\"column-options-bottom\">\r\n <button\r\n (click)=\"resetColumnData()\"\r\n mat-flat-button color=\"tertiary\" \r\n size=\"small\" class=\"sof-button-v2\" m-r-auto\r\n id=\"column-options-reset\">\r\n {{'armature.sof-table.reset' | translate}}\r\n </button>\r\n <button \r\n mat-flat-button mat-dialog-close \r\n color=\"secondary\" size=\"small\" class=\"sof-button-v2\"\r\n id=\"column-options-cancel\">\r\n {{'armature.sof-table.cancel' | translate}}\r\n </button>\r\n <button \r\n (click)=\"applyUpdatedColumnState()\"\r\n mat-flat-button color=\"primary\" \r\n size=\"small\" class=\"sof-button-v2\"\r\n id=\"column-options-update\">\r\n {{'armature.sof-table.update' | translate}}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["*{box-sizing:border-box}.column-options-header{display:flex;align-items:center;height:56px;padding:0 24px;border-bottom:1px solid #FAFAFA}.column-options-header i{font-size:20px}.column-options-header i:not(.close){margin-right:16px}.column-options-header h2{font-size:18px!important}.column-options-header button{height:20px;width:20px;padding:0;background:none;border:none;cursor:pointer}.column-options-container{padding:24px;padding-right:0!important}.column-options-container .column-options-description,.column-options-container .column-options-bottom{padding-right:24px}.column-options-container .column-options-description p{margin:0 0 16px;font-size:16px;line-height:24px}.column-options-container .column-options-description p.table-label{font-size:14px;color:#0009;margin-bottom:0;line-height:21px}.column-options-container .column-options-selections{max-height:calc(100vh - 324px);scrollbar-width:thin;padding-right:13px;scrollbar-gutter:stable;overflow-y:hidden!important}.column-options-container .column-options-selections:hover{overflow-y:auto!important}.column-options-container .column-options-bottom{display:flex;gap:16px;margin-top:24px}\n"], dependencies: [{ kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.SofHandleComponent, selector: "sof-handle", inputs: ["checkmarkColor", "handleList", "labelText"], outputs: ["orderChanged", "checkboxToggled"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: SofColumnOptionsComponent, selector: "sof-column-options", ngImport: i0, template: "<div class=\"column-options-header\">\r\n <i class=\"ph-bold ph-square-split-horizontal\" aria-hidden=\"true\"></i>\r\n <h2 id=\"column-options-heading\">{{'armature.sof-table.column-options' | translate}}</h2>\r\n <button \r\n mat-dialog-close m-l-auto \r\n disableRipple=\"true\" id=\"column-options-close\" aria-label=\"close\">\r\n <i class=\"ph-bold ph-x close\" aria-hidden=\"true\"></i>\r\n </button>\r\n</div>\r\n<div class=\"column-options-container\">\r\n <div class=\"column-options-description\">\r\n <p>\r\n {{'armature.sof-table.column-options-description' | translate}} \r\n {{ data.showSaveColumnOptionsText ? ('armature.sof-table.column-options-description-saving' | translate) : ''}}\r\n </p>\r\n <p class=\"table-label\">{{data.tableName | translate}} {{'armature.sof-table.columns' | translate}}</p>\r\n </div>\r\n <div class=\"column-options-selections\">\r\n <sof-handle [handleList]=\"data.columnData\"/>\r\n </div>\r\n <div class=\"column-options-bottom\">\r\n <button\r\n (click)=\"resetColumnData()\"\r\n mat-flat-button\r\n theme=\"neutral\" emphasis=\"floating\"\r\n class=\"sof-button-v2\" m-r-auto\r\n id=\"column-options-reset\">\r\n {{'armature.sof-table.reset' | translate}}\r\n </button>\r\n <button \r\n mat-flat-button mat-dialog-close \r\n theme=\"neutral\" emphasis=\"secondary\"\r\n class=\"sof-button-v2\"\r\n id=\"column-options-cancel\">\r\n {{'armature.sof-table.cancel' | translate}}\r\n </button>\r\n <button \r\n (click)=\"applyUpdatedColumnState()\"\r\n mat-flat-button \r\n class=\"sof-button-v2\"\r\n theme=\"primary\" emphasis=\"solid\"\r\n id=\"column-options-update\">\r\n {{'armature.sof-table.update' | translate}}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["*{box-sizing:border-box}.column-options-header{display:flex;align-items:center;height:56px;padding:0 24px;border-bottom:1px solid #FAFAFA}.column-options-header i{font-size:20px}.column-options-header i:not(.close){margin-right:16px}.column-options-header h2{font-size:18px!important}.column-options-header button{height:20px;width:20px;padding:0;background:none;border:none;cursor:pointer}.column-options-container{padding:24px;padding-right:0!important}.column-options-container .column-options-description,.column-options-container .column-options-bottom{padding-right:24px}.column-options-container .column-options-description p{margin:0 0 16px;font-size:16px;line-height:24px}.column-options-container .column-options-description p.table-label{font-size:14px;color:#0009;margin-bottom:0;line-height:21px}.column-options-container .column-options-selections{max-height:calc(100vh - 324px);scrollbar-width:thin;padding-right:13px;scrollbar-gutter:stable;overflow-y:hidden!important}.column-options-container .column-options-selections:hover{overflow-y:auto!important}.column-options-container .column-options-bottom{display:flex;gap:16px;margin-top:24px}\n"], dependencies: [{ kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.SofHandleComponent, selector: "sof-handle", inputs: ["checkmarkColor", "handleList", "labelText"], outputs: ["orderChanged", "checkboxToggled"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
36
36
  }
37
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: SofColumnOptionsComponent, decorators: [{
38
38
  type: Component,
39
- args: [{ selector: 'sof-column-options', template: "<div class=\"column-options-header\">\r\n <i class=\"ph-bold ph-square-split-horizontal\" aria-hidden=\"true\"></i>\r\n <h2 id=\"column-options-heading\">{{'armature.sof-table.column-options' | translate}}</h2>\r\n <button \r\n mat-dialog-close m-l-auto \r\n disableRipple=\"true\" id=\"column-options-close\" aria-label=\"close\">\r\n <i class=\"ph-bold ph-x close\" aria-hidden=\"true\"></i>\r\n </button>\r\n</div>\r\n<div class=\"column-options-container\">\r\n <div class=\"column-options-description\">\r\n <p>\r\n {{'armature.sof-table.column-options-description' | translate}} \r\n {{ data.showSaveColumnOptionsText ? ('armature.sof-table.column-options-description-saving' | translate) : ''}}\r\n </p>\r\n <p class=\"table-label\">{{data.tableName | translate}} {{'armature.sof-table.columns' | translate}}</p>\r\n </div>\r\n <div class=\"column-options-selections\">\r\n <sof-handle [handleList]=\"data.columnData\"/>\r\n </div>\r\n <div class=\"column-options-bottom\">\r\n <button\r\n (click)=\"resetColumnData()\"\r\n mat-flat-button color=\"tertiary\" \r\n size=\"small\" class=\"sof-button-v2\" m-r-auto\r\n id=\"column-options-reset\">\r\n {{'armature.sof-table.reset' | translate}}\r\n </button>\r\n <button \r\n mat-flat-button mat-dialog-close \r\n color=\"secondary\" size=\"small\" class=\"sof-button-v2\"\r\n id=\"column-options-cancel\">\r\n {{'armature.sof-table.cancel' | translate}}\r\n </button>\r\n <button \r\n (click)=\"applyUpdatedColumnState()\"\r\n mat-flat-button color=\"primary\" \r\n size=\"small\" class=\"sof-button-v2\"\r\n id=\"column-options-update\">\r\n {{'armature.sof-table.update' | translate}}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["*{box-sizing:border-box}.column-options-header{display:flex;align-items:center;height:56px;padding:0 24px;border-bottom:1px solid #FAFAFA}.column-options-header i{font-size:20px}.column-options-header i:not(.close){margin-right:16px}.column-options-header h2{font-size:18px!important}.column-options-header button{height:20px;width:20px;padding:0;background:none;border:none;cursor:pointer}.column-options-container{padding:24px;padding-right:0!important}.column-options-container .column-options-description,.column-options-container .column-options-bottom{padding-right:24px}.column-options-container .column-options-description p{margin:0 0 16px;font-size:16px;line-height:24px}.column-options-container .column-options-description p.table-label{font-size:14px;color:#0009;margin-bottom:0;line-height:21px}.column-options-container .column-options-selections{max-height:calc(100vh - 324px);scrollbar-width:thin;padding-right:13px;scrollbar-gutter:stable;overflow-y:hidden!important}.column-options-container .column-options-selections:hover{overflow-y:auto!important}.column-options-container .column-options-bottom{display:flex;gap:16px;margin-top:24px}\n"] }]
39
+ args: [{ selector: 'sof-column-options', template: "<div class=\"column-options-header\">\r\n <i class=\"ph-bold ph-square-split-horizontal\" aria-hidden=\"true\"></i>\r\n <h2 id=\"column-options-heading\">{{'armature.sof-table.column-options' | translate}}</h2>\r\n <button \r\n mat-dialog-close m-l-auto \r\n disableRipple=\"true\" id=\"column-options-close\" aria-label=\"close\">\r\n <i class=\"ph-bold ph-x close\" aria-hidden=\"true\"></i>\r\n </button>\r\n</div>\r\n<div class=\"column-options-container\">\r\n <div class=\"column-options-description\">\r\n <p>\r\n {{'armature.sof-table.column-options-description' | translate}} \r\n {{ data.showSaveColumnOptionsText ? ('armature.sof-table.column-options-description-saving' | translate) : ''}}\r\n </p>\r\n <p class=\"table-label\">{{data.tableName | translate}} {{'armature.sof-table.columns' | translate}}</p>\r\n </div>\r\n <div class=\"column-options-selections\">\r\n <sof-handle [handleList]=\"data.columnData\"/>\r\n </div>\r\n <div class=\"column-options-bottom\">\r\n <button\r\n (click)=\"resetColumnData()\"\r\n mat-flat-button\r\n theme=\"neutral\" emphasis=\"floating\"\r\n class=\"sof-button-v2\" m-r-auto\r\n id=\"column-options-reset\">\r\n {{'armature.sof-table.reset' | translate}}\r\n </button>\r\n <button \r\n mat-flat-button mat-dialog-close \r\n theme=\"neutral\" emphasis=\"secondary\"\r\n class=\"sof-button-v2\"\r\n id=\"column-options-cancel\">\r\n {{'armature.sof-table.cancel' | translate}}\r\n </button>\r\n <button \r\n (click)=\"applyUpdatedColumnState()\"\r\n mat-flat-button \r\n class=\"sof-button-v2\"\r\n theme=\"primary\" emphasis=\"solid\"\r\n id=\"column-options-update\">\r\n {{'armature.sof-table.update' | translate}}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["*{box-sizing:border-box}.column-options-header{display:flex;align-items:center;height:56px;padding:0 24px;border-bottom:1px solid #FAFAFA}.column-options-header i{font-size:20px}.column-options-header i:not(.close){margin-right:16px}.column-options-header h2{font-size:18px!important}.column-options-header button{height:20px;width:20px;padding:0;background:none;border:none;cursor:pointer}.column-options-container{padding:24px;padding-right:0!important}.column-options-container .column-options-description,.column-options-container .column-options-bottom{padding-right:24px}.column-options-container .column-options-description p{margin:0 0 16px;font-size:16px;line-height:24px}.column-options-container .column-options-description p.table-label{font-size:14px;color:#0009;margin-bottom:0;line-height:21px}.column-options-container .column-options-selections{max-height:calc(100vh - 324px);scrollbar-width:thin;padding-right:13px;scrollbar-gutter:stable;overflow-y:hidden!important}.column-options-container .column-options-selections:hover{overflow-y:auto!important}.column-options-container .column-options-bottom{display:flex;gap:16px;margin-top:24px}\n"] }]
40
40
  }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLW9wdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvYWctZ3JpZC1jb21wb25lbnRzL3NyYy9jb2x1bW4tb3B0aW9ucy1tb2RhbC9jb2x1bW4tb3B0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9hZy1ncmlkLWNvbXBvbmVudHMvc3JjL2NvbHVtbi1vcHRpb25zLW1vZGFsL2NvbHVtbi1vcHRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQUd6RSxrQ0FBa0M7QUFNbEMsTUFBTSxPQUFPLHlCQUF5QjtJQUx0QztRQU9FLHVCQUF1QjtRQUNmLGNBQVMsR0FBNEMsTUFBTSxDQUFDLENBQUEsWUFBdUMsQ0FBQSxDQUFDLENBQUM7UUFFN0csa0JBQWtCO1FBQ1gsU0FBSSxHQUFzQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7S0FxQjFEO0lBbkJDLG9DQUFvQztJQUM3Qix1QkFBdUI7UUFDNUIsTUFBTSxXQUFXLEdBQXVCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzFFLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUNoQixJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUzthQUN4QixDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLGtCQUFrQixHQUEyQjtZQUNqRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQztZQUN2QixVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQscURBQXFEO0lBQzlDLGVBQWU7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN0RSxDQUFDOzhHQTFCVSx5QkFBeUI7a0dBQXpCLHlCQUF5QiwwRENWdEMsbXhEQTJDQTs7MkZEakNhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBBcHBseUNvbHVtblN0YXRlUGFyYW1zLCBDb2x1bW5TdGF0ZSB9IGZyb20gXCJhZy1ncmlkLWNvbW11bml0eVwiO1xyXG5cclxuLyoqIFRhYmxlIENvbHVtbiBvcHRpb25zIGRpYWxvZyAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NvZi1jb2x1bW4tb3B0aW9ucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1vcHRpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY29sdW1uLW9wdGlvbnMuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTb2ZDb2x1bW5PcHRpb25zQ29tcG9uZW50IHtcclxuXHJcbiAgLyoqIGRpYWxvZyByZWZlcmVuY2UgKi9cclxuICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNvZkNvbHVtbk9wdGlvbnNDb21wb25lbnQ+ID0gaW5qZWN0KE1hdERpYWxvZ1JlZjxTb2ZDb2x1bW5PcHRpb25zQ29tcG9uZW50Pik7XHJcblxyXG4gIC8qKiBkaWFsb2cgZGF0YSAqL1xyXG4gIHB1YmxpYyBkYXRhOiBDb2x1bW5PcHRpb25zRGF0YSA9IGluamVjdChNQVRfRElBTE9HX0RBVEEpO1xyXG5cclxuICAvKiogZW1pdCB0aGUgdXBkYXRlZCBjb2x1bW4gc3RhdGUgKi9cclxuICBwdWJsaWMgYXBwbHlVcGRhdGVkQ29sdW1uU3RhdGUoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb2x1bW5TdGF0ZTogQXJyYXk8Q29sdW1uU3RhdGU+ID0gdGhpcy5kYXRhLmNvbHVtbkRhdGEubWFwKChjb2x1bW4pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBjb2xJZDogY29sdW1uLmlkLFxyXG4gICAgICAgIGhpZGU6ICFjb2x1bW4uaXNDaGVja2VkXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29uc3QgdXBkYXRlZENvbHVtblN0YXRlOiBBcHBseUNvbHVtblN0YXRlUGFyYW1zID0ge1xyXG4gICAgICBzdGF0ZTogWy4uLmNvbHVtblN0YXRlXSxcclxuICAgICAgYXBwbHlPcmRlcjogdHJ1ZVxyXG4gICAgfTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHVwZGF0ZWRDb2x1bW5TdGF0ZSk7XHJcbiAgfVxyXG5cclxuICAvKiogcmVzZXQgdGhlIGNvbHVtbiBkYXRhIHRvIGl0cyBmaXJzdCBzYXZlZCB2YWx1ZSAqL1xyXG4gIHB1YmxpYyByZXNldENvbHVtbkRhdGEoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGEuY29sdW1uRGF0YSA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLmRhdGEuaW5pdGlhbENvbHVtbkRhdGEpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqIFxyXG4gKiBDb2x1bW4gb3B0aW9ucyBtb2RhbCBkYXRhXHJcbiAqIEBkZXNjcmlwdGlvbiBkYXRhIHBhc3NlZCBmcm9tIHRoZSAnU29mVGFibGVDb21wb25lbnQnXHJcbiAqIEBwcm9wZXJ0eSBgdGFibGVOYW1lOiBzdHJpbmdgIG5hbWUgb2YgdGhlIHRhYmxlIHVzaW5nIHRoZSBjb2x1bW4gb3B0aW9uc1xyXG4gKiBAcHJvcGVydHkgYGNvbHVtbkRhdGE6IEFycmF5PENvbHVtbkRhdGE+YCBjb2x1bW4gZGF0YSByZXR1cm5lZCBmcm9tIHRoZSBhZ0dyaWQgYXBpXHJcbiAqIEBwcm9wZXJ0eSBgaW5pdGlhbENvbHVtbkRhdGE6IEFycmF5PENvbHVtbkRhdGE+YCBjb2x1bW4gZGF0YSBmcm9tIHNhdmVkIHVzZXIgcHJlZmVyZW5jZSBvciBpbml0aWFsIGBjb2x1bW5EYXRhYCBcclxuICogQHNlZSB7QGxpbmsgQ29sdW1uRGF0YX1cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uT3B0aW9uc0RhdGEge1xyXG4gIC8qKiBuYW1lIG9mIHRoZSB0YWJsZSB1c2luZyB0aGUgY29sdW1uIG9wdGlvbnMgKi9cclxuICB0YWJsZU5hbWU/OiBzdHJpbmc7XHJcbiAgLyoqIGNvbHVtbiBkYXRhIHJldHVybmVkIGZyb20gdGhlIGFnR3JpZCBhcGkgKi9cclxuICBjb2x1bW5EYXRhPzogQXJyYXk8Q29sdW1uRGF0YT47XHJcbiAgLyoqIGNvbHVtbiBkYXRhIGZyb20gc2F2ZWQgdXNlciBwcmVmZXJlbmNlIG9yIGluaXRpYWwgYGNvbHVtbkRhdGFgICovXHJcbiAgaW5pdGlhbENvbHVtbkRhdGE/OiBBcnJheTxDb2x1bW5EYXRhPjtcclxuICAvKiogXHJcbiAgICogVG8gZGlzcGxheSB0aGUgdGV4dCBvbiB0aGUgY29sdW1uIG9wdGlvbnMgbW9kYWwsIHdoaWNoIHN0YXRlcyAtXHJcbiAgICogYFwiT3B0aW9ucyB3aWxsIGJlIHNhdmVkIGZvciB0aGUgbmV4dCB0aW1lIHlvdSBsb2cgaW4uXCJgXHJcbiAgKi9cclxuICBzaG93U2F2ZUNvbHVtbk9wdGlvbnNUZXh0PzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqIFxyXG4gKiBDb2x1bW4gZGF0YSBcclxuICogQGRlc2NyaXB0aW9uIGNvbHVtbiBkYXRhIGRlcml2ZWQgZnJvbSB0aGUgYWdHcmlkIGFwaSwgYWRkcyBpZCBwcm9wZXJ0eSB0byB0eXBlIGBIYW5kbGVJbnB1dGBcclxuICogQHByb3BlcnR5IGBpZDogc3RyaW5nYCBjb2x1bW5zIHVuaXF1ZSBpZFxyXG4gKiBAcHJvcGVydHkgYHRleHQ6IHN0cmluZ2AgY29sdW1ucyBoZWFkZXIgdGV4dFxyXG4gKiBAcHJvcGVydHkgYGlzQ2hlY2tlZDogYm9vbGVhbmAgY29sdW1uIG5vdCBoaWRkZW5cclxuKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5EYXRhIHtcclxuICAvKiogY29sdW1ucyB1bmlxdWUgaWQgKi9cclxuICBpZD86IHN0cmluZztcclxuICAvKiogY29sdW1ucyBoZWFkZXIgdGV4dCAqL1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgLyoqIGNvbHVtbiBub3QgaGlkZGVuICovXHJcbiAgaXNDaGVja2VkPzogYm9vbGVhbjtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29sdW1uLW9wdGlvbnMtaGVhZGVyXCI+XHJcbiAgPGkgY2xhc3M9XCJwaC1ib2xkIHBoLXNxdWFyZS1zcGxpdC1ob3Jpem9udGFsXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gIDxoMiBpZD1cImNvbHVtbi1vcHRpb25zLWhlYWRpbmdcIj57eydhcm1hdHVyZS5zb2YtdGFibGUuY29sdW1uLW9wdGlvbnMnIHwgdHJhbnNsYXRlfX08L2gyPlxyXG4gIDxidXR0b24gXHJcbiAgICBtYXQtZGlhbG9nLWNsb3NlIG0tbC1hdXRvIFxyXG4gICAgZGlzYWJsZVJpcHBsZT1cInRydWVcIiBpZD1cImNvbHVtbi1vcHRpb25zLWNsb3NlXCIgYXJpYS1sYWJlbD1cImNsb3NlXCI+XHJcbiAgICA8aSBjbGFzcz1cInBoLWJvbGQgcGgteCBjbG9zZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICA8L2J1dHRvbj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjb2x1bW4tb3B0aW9ucy1jb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwiY29sdW1uLW9wdGlvbnMtZGVzY3JpcHRpb25cIj5cclxuICAgIDxwPlxyXG4gICAgICB7eydhcm1hdHVyZS5zb2YtdGFibGUuY29sdW1uLW9wdGlvbnMtZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlfX0gXHJcbiAgICAgIHt7IGRhdGEuc2hvd1NhdmVDb2x1bW5PcHRpb25zVGV4dCA/ICgnYXJtYXR1cmUuc29mLXRhYmxlLmNvbHVtbi1vcHRpb25zLWRlc2NyaXB0aW9uLXNhdmluZycgfCB0cmFuc2xhdGUpIDogJyd9fVxyXG4gICAgPC9wPlxyXG4gICAgPHAgY2xhc3M9XCJ0YWJsZS1sYWJlbFwiPnt7ZGF0YS50YWJsZU5hbWUgfCB0cmFuc2xhdGV9fSB7eydhcm1hdHVyZS5zb2YtdGFibGUuY29sdW1ucycgfCB0cmFuc2xhdGV9fTwvcD5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29sdW1uLW9wdGlvbnMtc2VsZWN0aW9uc1wiPlxyXG4gICAgPHNvZi1oYW5kbGUgW2hhbmRsZUxpc3RdPVwiZGF0YS5jb2x1bW5EYXRhXCIvPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjb2x1bW4tb3B0aW9ucy1ib3R0b21cIj5cclxuICAgIDxidXR0b25cclxuICAgICAgKGNsaWNrKT1cInJlc2V0Q29sdW1uRGF0YSgpXCJcclxuICAgICAgbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwidGVydGlhcnlcIiBcclxuICAgICAgc2l6ZT1cInNtYWxsXCIgY2xhc3M9XCJzb2YtYnV0dG9uLXYyXCIgbS1yLWF1dG9cclxuICAgICAgaWQ9XCJjb2x1bW4tb3B0aW9ucy1yZXNldFwiPlxyXG4gICAgICB7eydhcm1hdHVyZS5zb2YtdGFibGUucmVzZXQnIHwgdHJhbnNsYXRlfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBcclxuICAgICAgbWF0LWZsYXQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2UgXHJcbiAgICAgIGNvbG9yPVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNtYWxsXCIgY2xhc3M9XCJzb2YtYnV0dG9uLXYyXCJcclxuICAgICAgaWQ9XCJjb2x1bW4tb3B0aW9ucy1jYW5jZWxcIj5cclxuICAgICAge3snYXJtYXR1cmUuc29mLXRhYmxlLmNhbmNlbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIFxyXG4gICAgICAoY2xpY2spPVwiYXBwbHlVcGRhdGVkQ29sdW1uU3RhdGUoKVwiXHJcbiAgICAgIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBcclxuICAgICAgc2l6ZT1cInNtYWxsXCIgY2xhc3M9XCJzb2YtYnV0dG9uLXYyXCJcclxuICAgICAgaWQ9XCJjb2x1bW4tb3B0aW9ucy11cGRhdGVcIj5cclxuICAgICAge3snYXJtYXR1cmUuc29mLXRhYmxlLnVwZGF0ZScgfCB0cmFuc2xhdGV9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLW9wdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvYWctZ3JpZC1jb21wb25lbnRzL3NyYy9jb2x1bW4tb3B0aW9ucy1tb2RhbC9jb2x1bW4tb3B0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9hZy1ncmlkLWNvbXBvbmVudHMvc3JjL2NvbHVtbi1vcHRpb25zLW1vZGFsL2NvbHVtbi1vcHRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQUd6RSxrQ0FBa0M7QUFNbEMsTUFBTSxPQUFPLHlCQUF5QjtJQUx0QztRQU9FLHVCQUF1QjtRQUNmLGNBQVMsR0FBNEMsTUFBTSxDQUFDLENBQUEsWUFBdUMsQ0FBQSxDQUFDLENBQUM7UUFFN0csa0JBQWtCO1FBQ1gsU0FBSSxHQUFzQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7S0FxQjFEO0lBbkJDLG9DQUFvQztJQUM3Qix1QkFBdUI7UUFDNUIsTUFBTSxXQUFXLEdBQXVCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzFFLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUNoQixJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUzthQUN4QixDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLGtCQUFrQixHQUEyQjtZQUNqRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQztZQUN2QixVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQscURBQXFEO0lBQzlDLGVBQWU7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN0RSxDQUFDOzhHQTFCVSx5QkFBeUI7a0dBQXpCLHlCQUF5QiwwRENWdEMsNnpEQThDQTs7MkZEcENhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBBcHBseUNvbHVtblN0YXRlUGFyYW1zLCBDb2x1bW5TdGF0ZSB9IGZyb20gXCJhZy1ncmlkLWNvbW11bml0eVwiO1xyXG5cclxuLyoqIFRhYmxlIENvbHVtbiBvcHRpb25zIGRpYWxvZyAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NvZi1jb2x1bW4tb3B0aW9ucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1vcHRpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY29sdW1uLW9wdGlvbnMuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTb2ZDb2x1bW5PcHRpb25zQ29tcG9uZW50IHtcclxuXHJcbiAgLyoqIGRpYWxvZyByZWZlcmVuY2UgKi9cclxuICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNvZkNvbHVtbk9wdGlvbnNDb21wb25lbnQ+ID0gaW5qZWN0KE1hdERpYWxvZ1JlZjxTb2ZDb2x1bW5PcHRpb25zQ29tcG9uZW50Pik7XHJcblxyXG4gIC8qKiBkaWFsb2cgZGF0YSAqL1xyXG4gIHB1YmxpYyBkYXRhOiBDb2x1bW5PcHRpb25zRGF0YSA9IGluamVjdChNQVRfRElBTE9HX0RBVEEpO1xyXG5cclxuICAvKiogZW1pdCB0aGUgdXBkYXRlZCBjb2x1bW4gc3RhdGUgKi9cclxuICBwdWJsaWMgYXBwbHlVcGRhdGVkQ29sdW1uU3RhdGUoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb2x1bW5TdGF0ZTogQXJyYXk8Q29sdW1uU3RhdGU+ID0gdGhpcy5kYXRhLmNvbHVtbkRhdGEubWFwKChjb2x1bW4pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBjb2xJZDogY29sdW1uLmlkLFxyXG4gICAgICAgIGhpZGU6ICFjb2x1bW4uaXNDaGVja2VkXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29uc3QgdXBkYXRlZENvbHVtblN0YXRlOiBBcHBseUNvbHVtblN0YXRlUGFyYW1zID0ge1xyXG4gICAgICBzdGF0ZTogWy4uLmNvbHVtblN0YXRlXSxcclxuICAgICAgYXBwbHlPcmRlcjogdHJ1ZVxyXG4gICAgfTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHVwZGF0ZWRDb2x1bW5TdGF0ZSk7XHJcbiAgfVxyXG5cclxuICAvKiogcmVzZXQgdGhlIGNvbHVtbiBkYXRhIHRvIGl0cyBmaXJzdCBzYXZlZCB2YWx1ZSAqL1xyXG4gIHB1YmxpYyByZXNldENvbHVtbkRhdGEoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGEuY29sdW1uRGF0YSA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLmRhdGEuaW5pdGlhbENvbHVtbkRhdGEpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqIFxyXG4gKiBDb2x1bW4gb3B0aW9ucyBtb2RhbCBkYXRhXHJcbiAqIEBkZXNjcmlwdGlvbiBkYXRhIHBhc3NlZCBmcm9tIHRoZSAnU29mVGFibGVDb21wb25lbnQnXHJcbiAqIEBwcm9wZXJ0eSBgdGFibGVOYW1lOiBzdHJpbmdgIG5hbWUgb2YgdGhlIHRhYmxlIHVzaW5nIHRoZSBjb2x1bW4gb3B0aW9uc1xyXG4gKiBAcHJvcGVydHkgYGNvbHVtbkRhdGE6IEFycmF5PENvbHVtbkRhdGE+YCBjb2x1bW4gZGF0YSByZXR1cm5lZCBmcm9tIHRoZSBhZ0dyaWQgYXBpXHJcbiAqIEBwcm9wZXJ0eSBgaW5pdGlhbENvbHVtbkRhdGE6IEFycmF5PENvbHVtbkRhdGE+YCBjb2x1bW4gZGF0YSBmcm9tIHNhdmVkIHVzZXIgcHJlZmVyZW5jZSBvciBpbml0aWFsIGBjb2x1bW5EYXRhYCBcclxuICogQHNlZSB7QGxpbmsgQ29sdW1uRGF0YX1cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uT3B0aW9uc0RhdGEge1xyXG4gIC8qKiBuYW1lIG9mIHRoZSB0YWJsZSB1c2luZyB0aGUgY29sdW1uIG9wdGlvbnMgKi9cclxuICB0YWJsZU5hbWU/OiBzdHJpbmc7XHJcbiAgLyoqIGNvbHVtbiBkYXRhIHJldHVybmVkIGZyb20gdGhlIGFnR3JpZCBhcGkgKi9cclxuICBjb2x1bW5EYXRhPzogQXJyYXk8Q29sdW1uRGF0YT47XHJcbiAgLyoqIGNvbHVtbiBkYXRhIGZyb20gc2F2ZWQgdXNlciBwcmVmZXJlbmNlIG9yIGluaXRpYWwgYGNvbHVtbkRhdGFgICovXHJcbiAgaW5pdGlhbENvbHVtbkRhdGE/OiBBcnJheTxDb2x1bW5EYXRhPjtcclxuICAvKiogXHJcbiAgICogVG8gZGlzcGxheSB0aGUgdGV4dCBvbiB0aGUgY29sdW1uIG9wdGlvbnMgbW9kYWwsIHdoaWNoIHN0YXRlcyAtXHJcbiAgICogYFwiT3B0aW9ucyB3aWxsIGJlIHNhdmVkIGZvciB0aGUgbmV4dCB0aW1lIHlvdSBsb2cgaW4uXCJgXHJcbiAgKi9cclxuICBzaG93U2F2ZUNvbHVtbk9wdGlvbnNUZXh0PzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqIFxyXG4gKiBDb2x1bW4gZGF0YSBcclxuICogQGRlc2NyaXB0aW9uIGNvbHVtbiBkYXRhIGRlcml2ZWQgZnJvbSB0aGUgYWdHcmlkIGFwaSwgYWRkcyBpZCBwcm9wZXJ0eSB0byB0eXBlIGBIYW5kbGVJbnB1dGBcclxuICogQHByb3BlcnR5IGBpZDogc3RyaW5nYCBjb2x1bW5zIHVuaXF1ZSBpZFxyXG4gKiBAcHJvcGVydHkgYHRleHQ6IHN0cmluZ2AgY29sdW1ucyBoZWFkZXIgdGV4dFxyXG4gKiBAcHJvcGVydHkgYGlzQ2hlY2tlZDogYm9vbGVhbmAgY29sdW1uIG5vdCBoaWRkZW5cclxuKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5EYXRhIHtcclxuICAvKiogY29sdW1ucyB1bmlxdWUgaWQgKi9cclxuICBpZD86IHN0cmluZztcclxuICAvKiogY29sdW1ucyBoZWFkZXIgdGV4dCAqL1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgLyoqIGNvbHVtbiBub3QgaGlkZGVuICovXHJcbiAgaXNDaGVja2VkPzogYm9vbGVhbjtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29sdW1uLW9wdGlvbnMtaGVhZGVyXCI+XHJcbiAgPGkgY2xhc3M9XCJwaC1ib2xkIHBoLXNxdWFyZS1zcGxpdC1ob3Jpem9udGFsXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gIDxoMiBpZD1cImNvbHVtbi1vcHRpb25zLWhlYWRpbmdcIj57eydhcm1hdHVyZS5zb2YtdGFibGUuY29sdW1uLW9wdGlvbnMnIHwgdHJhbnNsYXRlfX08L2gyPlxyXG4gIDxidXR0b24gXHJcbiAgICBtYXQtZGlhbG9nLWNsb3NlIG0tbC1hdXRvIFxyXG4gICAgZGlzYWJsZVJpcHBsZT1cInRydWVcIiBpZD1cImNvbHVtbi1vcHRpb25zLWNsb3NlXCIgYXJpYS1sYWJlbD1cImNsb3NlXCI+XHJcbiAgICA8aSBjbGFzcz1cInBoLWJvbGQgcGgteCBjbG9zZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICA8L2J1dHRvbj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjb2x1bW4tb3B0aW9ucy1jb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwiY29sdW1uLW9wdGlvbnMtZGVzY3JpcHRpb25cIj5cclxuICAgIDxwPlxyXG4gICAgICB7eydhcm1hdHVyZS5zb2YtdGFibGUuY29sdW1uLW9wdGlvbnMtZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlfX0gXHJcbiAgICAgIHt7IGRhdGEuc2hvd1NhdmVDb2x1bW5PcHRpb25zVGV4dCA/ICgnYXJtYXR1cmUuc29mLXRhYmxlLmNvbHVtbi1vcHRpb25zLWRlc2NyaXB0aW9uLXNhdmluZycgfCB0cmFuc2xhdGUpIDogJyd9fVxyXG4gICAgPC9wPlxyXG4gICAgPHAgY2xhc3M9XCJ0YWJsZS1sYWJlbFwiPnt7ZGF0YS50YWJsZU5hbWUgfCB0cmFuc2xhdGV9fSB7eydhcm1hdHVyZS5zb2YtdGFibGUuY29sdW1ucycgfCB0cmFuc2xhdGV9fTwvcD5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29sdW1uLW9wdGlvbnMtc2VsZWN0aW9uc1wiPlxyXG4gICAgPHNvZi1oYW5kbGUgW2hhbmRsZUxpc3RdPVwiZGF0YS5jb2x1bW5EYXRhXCIvPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjb2x1bW4tb3B0aW9ucy1ib3R0b21cIj5cclxuICAgIDxidXR0b25cclxuICAgICAgKGNsaWNrKT1cInJlc2V0Q29sdW1uRGF0YSgpXCJcclxuICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgIHRoZW1lPVwibmV1dHJhbFwiIGVtcGhhc2lzPVwiZmxvYXRpbmdcIlxyXG4gICAgICBjbGFzcz1cInNvZi1idXR0b24tdjJcIiBtLXItYXV0b1xyXG4gICAgICBpZD1cImNvbHVtbi1vcHRpb25zLXJlc2V0XCI+XHJcbiAgICAgIHt7J2FybWF0dXJlLnNvZi10YWJsZS5yZXNldCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIFxyXG4gICAgICBtYXQtZmxhdC1idXR0b24gbWF0LWRpYWxvZy1jbG9zZSBcclxuICAgICAgdGhlbWU9XCJuZXV0cmFsXCIgZW1waGFzaXM9XCJzZWNvbmRhcnlcIlxyXG4gICAgICBjbGFzcz1cInNvZi1idXR0b24tdjJcIlxyXG4gICAgICBpZD1cImNvbHVtbi1vcHRpb25zLWNhbmNlbFwiPlxyXG4gICAgICB7eydhcm1hdHVyZS5zb2YtdGFibGUuY2FuY2VsJyB8IHRyYW5zbGF0ZX19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gXHJcbiAgICAgIChjbGljayk9XCJhcHBseVVwZGF0ZWRDb2x1bW5TdGF0ZSgpXCJcclxuICAgICAgbWF0LWZsYXQtYnV0dG9uIFxyXG4gICAgICBjbGFzcz1cInNvZi1idXR0b24tdjJcIlxyXG4gICAgICB0aGVtZT1cInByaW1hcnlcIiBlbXBoYXNpcz1cInNvbGlkXCJcclxuICAgICAgaWQ9XCJjb2x1bW4tb3B0aW9ucy11cGRhdGVcIj5cclxuICAgICAge3snYXJtYXR1cmUuc29mLXRhYmxlLnVwZGF0ZScgfCB0cmFuc2xhdGV9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=