@cumulus-ui/components 0.1.2 → 0.1.4
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/dist/checkbox/internal.d.ts +3 -1
- package/dist/checkbox/internal.d.ts.map +1 -1
- package/dist/index.js +178 -133
- package/dist/list/internal.d.ts +3 -3
- package/dist/list/internal.d.ts.map +1 -1
- package/dist/radio-group/internal.d.ts.map +1 -1
- package/dist/tiles/internal.d.ts.map +1 -1
- package/dist/tree-view/internal.d.ts +3 -3
- package/dist/tree-view/internal.d.ts.map +1 -1
- package/package.json +4 -3
|
@@ -7,7 +7,9 @@ export declare class CsCheckboxInternal extends Base {
|
|
|
7
7
|
indeterminate: boolean;
|
|
8
8
|
readOnly: boolean;
|
|
9
9
|
description: string;
|
|
10
|
-
ariaLabel: string;
|
|
10
|
+
ariaLabel: string | null;
|
|
11
|
+
ariaRequired: string | null;
|
|
12
|
+
ariaControls: string | null;
|
|
11
13
|
private readonly _labelId;
|
|
12
14
|
private readonly _descriptionId;
|
|
13
15
|
connectedCallback(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/checkbox/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAQ5D,QAAA,MAAM,IAAI,qHAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/checkbox/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAQ5D,QAAA,MAAM,IAAI,qHAAqC,CAAC;AAuChD,qBAAa,kBAAmB,SAAQ,IAAI;IAC1C,OAAgB,MAAM,4BAAqE;IAG3F,OAAO,UAAS;IAGhB,aAAa,UAAS;IAGtB,QAAQ,UAAS;IAGjB,WAAW,SAAM;IAGR,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGhC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG5C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsC;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqC;IAE3D,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAK5B,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAQlD,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,OAAO;IAaN,MAAM;CAuEhB"}
|
package/dist/index.js
CHANGED
|
@@ -291,7 +291,6 @@ var abstractSwitchStyles = css3`
|
|
|
291
291
|
var Base = FormAssociatedMixin(CsBaseElement);
|
|
292
292
|
var hostStyles = css4`
|
|
293
293
|
:host { display: block; }
|
|
294
|
-
.label-wrapper { flex-direction: column; }
|
|
295
294
|
.checkbox-icon {
|
|
296
295
|
position: absolute;
|
|
297
296
|
inline-size: 100%;
|
|
@@ -333,7 +332,9 @@ var CsCheckboxInternal = class extends Base {
|
|
|
333
332
|
this.indeterminate = false;
|
|
334
333
|
this.readOnly = false;
|
|
335
334
|
this.description = "";
|
|
336
|
-
this.ariaLabel =
|
|
335
|
+
this.ariaLabel = null;
|
|
336
|
+
this.ariaRequired = null;
|
|
337
|
+
this.ariaControls = null;
|
|
337
338
|
this._labelId = generateUniqueId("checkbox-label");
|
|
338
339
|
this._descriptionId = generateUniqueId("checkbox-desc");
|
|
339
340
|
this._onHostClick = () => {
|
|
@@ -390,43 +391,47 @@ var CsCheckboxInternal = class extends Base {
|
|
|
390
391
|
const ariaDescribedBy = hasDescription ? this._descriptionId : void 0;
|
|
391
392
|
return html`
|
|
392
393
|
<label class="root wrapper" @click=${this._preventNativeToggle}>
|
|
393
|
-
<span class
|
|
394
|
+
<span class="label-wrapper">
|
|
395
|
+
<span class=${classMap({
|
|
394
396
|
"control": true,
|
|
395
397
|
"checkbox-control": true,
|
|
396
398
|
"checkbox-control--checked": this.checked && !this.indeterminate,
|
|
397
399
|
"checkbox-control--indeterminate": this.indeterminate
|
|
398
400
|
})}>
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
401
|
+
<svg class="checkbox-icon" viewBox="0 0 16 16" aria-hidden="true"><rect class=${classMap(styledBoxClasses)} x="0.5" y="0.5" width="15" height="15" rx="3" ry="3" />${this.checked && !this.indeterminate ? svg`<polyline class=${classMap(styledLineClasses)} points="3.5,8 7,11 12,4" />` : this.indeterminate ? svg`<polyline class=${classMap(styledLineClasses)} points="3.5,8 12.5,8" />` : ""}</svg>
|
|
402
|
+
<input
|
|
403
|
+
type="checkbox"
|
|
404
|
+
class="native-input"
|
|
405
|
+
.checked=${this.checked}
|
|
406
|
+
.indeterminate=${this.indeterminate}
|
|
407
|
+
?disabled=${this.disabled}
|
|
408
|
+
?readonly=${this.readOnly}
|
|
409
|
+
aria-label=${ifDefined(this.ariaLabel || void 0)}
|
|
410
|
+
aria-required=${ifDefined(this.ariaRequired || void 0)}
|
|
411
|
+
aria-controls=${ifDefined(this.ariaControls || void 0)}
|
|
412
|
+
aria-describedby=${ifDefined(ariaDescribedBy)}
|
|
413
|
+
aria-checked=${this.indeterminate ? "mixed" : this.checked}
|
|
414
|
+
@click=${this._preventNativeToggle}
|
|
415
|
+
/>
|
|
416
|
+
<span class="outline"></span>
|
|
417
|
+
</span>
|
|
418
|
+
<span class="content">
|
|
419
|
+
<span id=${this._labelId} class=${classMap({
|
|
416
420
|
"label": true,
|
|
417
421
|
"label-disabled": this.disabled
|
|
418
422
|
})}>
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
+
<slot></slot>
|
|
424
|
+
</span>
|
|
425
|
+
${hasDescription ? html`
|
|
426
|
+
<span id=${this._descriptionId} class=${classMap({
|
|
423
427
|
"description": true,
|
|
424
428
|
"description-bottom-padding": true,
|
|
425
429
|
"description-disabled": this.disabled
|
|
426
430
|
})}>
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
431
|
+
${this.description}
|
|
432
|
+
</span>
|
|
433
|
+
` : ""}
|
|
434
|
+
</span>
|
|
430
435
|
</span>
|
|
431
436
|
</label>
|
|
432
437
|
`;
|
|
@@ -447,6 +452,12 @@ __decorateClass([
|
|
|
447
452
|
__decorateClass([
|
|
448
453
|
property2({ type: String })
|
|
449
454
|
], CsCheckboxInternal.prototype, "ariaLabel", 2);
|
|
455
|
+
__decorateClass([
|
|
456
|
+
property2({ type: String })
|
|
457
|
+
], CsCheckboxInternal.prototype, "ariaRequired", 2);
|
|
458
|
+
__decorateClass([
|
|
459
|
+
property2({ type: String })
|
|
460
|
+
], CsCheckboxInternal.prototype, "ariaControls", 2);
|
|
450
461
|
|
|
451
462
|
// src/checkbox/index.ts
|
|
452
463
|
var CsCheckbox = class extends CsCheckboxInternal {
|
|
@@ -1256,7 +1267,7 @@ __decorateClass([
|
|
|
1256
1267
|
property7({ type: String })
|
|
1257
1268
|
], CsIconInternal.prototype, "alt", 2);
|
|
1258
1269
|
__decorateClass([
|
|
1259
|
-
property7({ type: String
|
|
1270
|
+
property7({ type: String })
|
|
1260
1271
|
], CsIconInternal.prototype, "ariaLabel", 2);
|
|
1261
1272
|
__decorateClass([
|
|
1262
1273
|
consume({ context: iconProviderContext, subscribe: true })
|
|
@@ -1524,16 +1535,13 @@ var CsRadioGroupInternal = class extends Base2 {
|
|
|
1524
1535
|
const descId = item.description ? `${itemId}-desc` : void 0;
|
|
1525
1536
|
const itemClasses = {
|
|
1526
1537
|
"radio": true,
|
|
1538
|
+
"wrapper": true,
|
|
1527
1539
|
"radio--has-description": !!item.description,
|
|
1528
|
-
"horizontal": this.direction === "horizontal"
|
|
1529
|
-
"radio--checked": isChecked,
|
|
1530
|
-
"radio--disabled": isDisabled,
|
|
1531
|
-
"radio--readonly": this.readOnly
|
|
1540
|
+
"horizontal": this.direction === "horizontal"
|
|
1532
1541
|
};
|
|
1533
1542
|
const controlClasses = {
|
|
1534
|
-
"
|
|
1535
|
-
"radio-control
|
|
1536
|
-
"radio-control--disabled": isDisabled
|
|
1543
|
+
"control": true,
|
|
1544
|
+
"radio-control": true
|
|
1537
1545
|
};
|
|
1538
1546
|
return html7`
|
|
1539
1547
|
<label
|
|
@@ -1543,40 +1551,55 @@ var CsRadioGroupInternal = class extends Base2 {
|
|
|
1543
1551
|
this._onItemClick(item);
|
|
1544
1552
|
}}
|
|
1545
1553
|
>
|
|
1546
|
-
<
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1554
|
+
<span class="label-wrapper">
|
|
1555
|
+
<span class=${classMap6(controlClasses)}>
|
|
1556
|
+
<svg viewBox="0 0 100 100" aria-hidden="true">
|
|
1557
|
+
<circle class=${classMap6({
|
|
1558
|
+
"styled-circle-border": true,
|
|
1559
|
+
"styled-circle-disabled": isDisabled,
|
|
1560
|
+
"styled-circle-readonly": this.readOnly
|
|
1561
|
+
})} stroke-width="6.25" cx="50" cy="50" r="46" />
|
|
1562
|
+
<circle class=${classMap6({
|
|
1563
|
+
"styled-circle-fill": true,
|
|
1564
|
+
"styled-circle-checked": isChecked,
|
|
1565
|
+
"styled-circle-disabled": isDisabled,
|
|
1566
|
+
"styled-circle-readonly": this.readOnly
|
|
1567
|
+
})} stroke-width="30" cx="50" cy="50" r="35" />
|
|
1568
|
+
</svg>
|
|
1569
|
+
<input
|
|
1570
|
+
type="radio"
|
|
1571
|
+
class="native-input"
|
|
1572
|
+
name=${groupName}
|
|
1573
|
+
.value=${item.value}
|
|
1574
|
+
.checked=${isChecked}
|
|
1575
|
+
?disabled=${isDisabled}
|
|
1576
|
+
?readonly=${this.readOnly}
|
|
1577
|
+
tabindex=${this._getTabIndex(index)}
|
|
1578
|
+
aria-describedby=${ifDefined3(descId)}
|
|
1579
|
+
@click=${(e) => e.preventDefault()}
|
|
1580
|
+
@focus=${() => this._onFocus(index)}
|
|
1581
|
+
/>
|
|
1582
|
+
<span class="outline"></span>
|
|
1568
1583
|
</span>
|
|
1569
|
-
|
|
1570
|
-
<span
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
})}
|
|
1576
|
-
>
|
|
1577
|
-
${item.description}
|
|
1584
|
+
<span class="content">
|
|
1585
|
+
<span class=${classMap6({
|
|
1586
|
+
"label": true,
|
|
1587
|
+
"label-disabled": isDisabled
|
|
1588
|
+
})}>
|
|
1589
|
+
${item.label}
|
|
1578
1590
|
</span>
|
|
1579
|
-
|
|
1591
|
+
${item.description ? html7`
|
|
1592
|
+
<span
|
|
1593
|
+
id=${descId}
|
|
1594
|
+
class=${classMap6({
|
|
1595
|
+
"description": true,
|
|
1596
|
+
"description-disabled": isDisabled
|
|
1597
|
+
})}
|
|
1598
|
+
>
|
|
1599
|
+
${item.description}
|
|
1600
|
+
</span>
|
|
1601
|
+
` : ""}
|
|
1602
|
+
</span>
|
|
1580
1603
|
</span>
|
|
1581
1604
|
</label>
|
|
1582
1605
|
`;
|
|
@@ -1589,13 +1612,13 @@ __decorateClass([
|
|
|
1589
1612
|
property8({ type: Array })
|
|
1590
1613
|
], CsRadioGroupInternal.prototype, "items", 2);
|
|
1591
1614
|
__decorateClass([
|
|
1592
|
-
property8({ type: String, attribute: "
|
|
1615
|
+
property8({ type: String, attribute: "aria-label" })
|
|
1593
1616
|
], CsRadioGroupInternal.prototype, "controlAriaLabel", 2);
|
|
1594
1617
|
__decorateClass([
|
|
1595
|
-
property8({ type: Boolean, attribute: "
|
|
1618
|
+
property8({ type: Boolean, attribute: "aria-required" })
|
|
1596
1619
|
], CsRadioGroupInternal.prototype, "controlAriaRequired", 2);
|
|
1597
1620
|
__decorateClass([
|
|
1598
|
-
property8({ type: String, attribute: "
|
|
1621
|
+
property8({ type: String, attribute: "aria-controls" })
|
|
1599
1622
|
], CsRadioGroupInternal.prototype, "controlAriaControls", 2);
|
|
1600
1623
|
__decorateClass([
|
|
1601
1624
|
property8({ type: Boolean, reflect: true })
|
|
@@ -2056,10 +2079,11 @@ var CsTilesInternal = class extends Base3 {
|
|
|
2056
2079
|
const tileClasses = {
|
|
2057
2080
|
"tile-container": true,
|
|
2058
2081
|
"refresh": true,
|
|
2082
|
+
"breakpoint-xxs": true,
|
|
2059
2083
|
"selected": isSelected,
|
|
2060
2084
|
"disabled": isDisabled,
|
|
2061
2085
|
"readonly": this.readOnly,
|
|
2062
|
-
"has-metadata": !!item.image
|
|
2086
|
+
"has-metadata": !!item.description || !!item.image
|
|
2063
2087
|
};
|
|
2064
2088
|
const controlClasses = {
|
|
2065
2089
|
"control": true,
|
|
@@ -2074,40 +2098,61 @@ var CsTilesInternal = class extends Base3 {
|
|
|
2074
2098
|
}}
|
|
2075
2099
|
>
|
|
2076
2100
|
<div class=${classMap7(controlClasses)}>
|
|
2077
|
-
<
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
-
|
|
2105
|
-
|
|
2101
|
+
<span class="wrapper">
|
|
2102
|
+
<span class="label-wrapper">
|
|
2103
|
+
<span class="control radio-control">
|
|
2104
|
+
<svg viewBox="0 0 100 100" aria-hidden="true">
|
|
2105
|
+
<circle class=${classMap7({
|
|
2106
|
+
"styled-circle-border": true,
|
|
2107
|
+
"styled-circle-disabled": isDisabled,
|
|
2108
|
+
"styled-circle-readonly": this.readOnly
|
|
2109
|
+
})} stroke-width="6.25" cx="50" cy="50" r="46" />
|
|
2110
|
+
<circle class=${classMap7({
|
|
2111
|
+
"styled-circle-fill": true,
|
|
2112
|
+
"styled-circle-checked": isSelected,
|
|
2113
|
+
"styled-circle-disabled": isDisabled,
|
|
2114
|
+
"styled-circle-readonly": this.readOnly
|
|
2115
|
+
})} stroke-width="30" cx="50" cy="50" r="35" />
|
|
2116
|
+
</svg>
|
|
2117
|
+
<input
|
|
2118
|
+
type="radio"
|
|
2119
|
+
class="native-input"
|
|
2120
|
+
name=${groupName}
|
|
2121
|
+
.value=${item.value}
|
|
2122
|
+
.checked=${isSelected}
|
|
2123
|
+
?disabled=${isDisabled}
|
|
2124
|
+
?readonly=${this.readOnly}
|
|
2125
|
+
tabindex=${this._getTabIndex(index)}
|
|
2126
|
+
aria-labelledby=${labelId}
|
|
2127
|
+
aria-describedby=${ifDefined4(descId)}
|
|
2128
|
+
@click=${(e) => e.preventDefault()}
|
|
2129
|
+
@focus=${() => this._onFocus(index)}
|
|
2130
|
+
/>
|
|
2131
|
+
<span class="outline"></span>
|
|
2132
|
+
</span>
|
|
2133
|
+
<span class="content">
|
|
2134
|
+
<span
|
|
2135
|
+
id=${labelId}
|
|
2136
|
+
class=${classMap7({
|
|
2137
|
+
"label": true,
|
|
2138
|
+
"label-disabled": isDisabled
|
|
2106
2139
|
})}
|
|
2107
|
-
|
|
2108
|
-
|
|
2140
|
+
>
|
|
2141
|
+
${item.label}
|
|
2142
|
+
</span>
|
|
2143
|
+
${item.description ? html8`
|
|
2144
|
+
<span
|
|
2145
|
+
id=${descId}
|
|
2146
|
+
class=${classMap7({
|
|
2147
|
+
"description": true,
|
|
2148
|
+
"description-disabled": isDisabled
|
|
2149
|
+
})}
|
|
2150
|
+
>
|
|
2151
|
+
${item.description}
|
|
2152
|
+
</span>
|
|
2153
|
+
` : ""}
|
|
2109
2154
|
</span>
|
|
2110
|
-
|
|
2155
|
+
</span>
|
|
2111
2156
|
</span>
|
|
2112
2157
|
</div>
|
|
2113
2158
|
${item.image ? html8`
|
|
@@ -2129,13 +2174,13 @@ __decorateClass([
|
|
|
2129
2174
|
property9({ type: Array })
|
|
2130
2175
|
], CsTilesInternal.prototype, "items", 2);
|
|
2131
2176
|
__decorateClass([
|
|
2132
|
-
property9({ type: String, attribute: "
|
|
2177
|
+
property9({ type: String, attribute: "aria-label" })
|
|
2133
2178
|
], CsTilesInternal.prototype, "controlAriaLabel", 2);
|
|
2134
2179
|
__decorateClass([
|
|
2135
|
-
property9({ type: Boolean, attribute: "
|
|
2180
|
+
property9({ type: Boolean, attribute: "aria-required" })
|
|
2136
2181
|
], CsTilesInternal.prototype, "controlAriaRequired", 2);
|
|
2137
2182
|
__decorateClass([
|
|
2138
|
-
property9({ type: String, attribute: "
|
|
2183
|
+
property9({ type: String, attribute: "aria-controls" })
|
|
2139
2184
|
], CsTilesInternal.prototype, "controlAriaControls", 2);
|
|
2140
2185
|
__decorateClass([
|
|
2141
2186
|
property9({ type: Number })
|
|
@@ -2258,9 +2303,9 @@ var CsListInternal = class extends CsBaseElement {
|
|
|
2258
2303
|
constructor() {
|
|
2259
2304
|
super(...arguments);
|
|
2260
2305
|
this.items = [];
|
|
2261
|
-
this.
|
|
2262
|
-
this.
|
|
2263
|
-
this.
|
|
2306
|
+
this.controlAriaLabel = "";
|
|
2307
|
+
this.controlAriaLabelledby = "";
|
|
2308
|
+
this.controlAriaDescribedby = "";
|
|
2264
2309
|
this.sortable = false;
|
|
2265
2310
|
this.sortDisabled = false;
|
|
2266
2311
|
this.disableItemPaddings = false;
|
|
@@ -2304,9 +2349,9 @@ var CsListInternal = class extends CsBaseElement {
|
|
|
2304
2349
|
<ol
|
|
2305
2350
|
class=${classMap8(listClasses)}
|
|
2306
2351
|
role="list"
|
|
2307
|
-
aria-label=${ifDefined5(this.
|
|
2308
|
-
aria-labelledby=${ifDefined5(this.
|
|
2309
|
-
aria-describedby=${ifDefined5(this.
|
|
2352
|
+
aria-label=${ifDefined5(this.controlAriaLabel || void 0)}
|
|
2353
|
+
aria-labelledby=${ifDefined5(this.controlAriaLabelledby || void 0)}
|
|
2354
|
+
aria-describedby=${ifDefined5(this.controlAriaDescribedby || void 0)}
|
|
2310
2355
|
>${content}</ol>
|
|
2311
2356
|
`;
|
|
2312
2357
|
}
|
|
@@ -2314,9 +2359,9 @@ var CsListInternal = class extends CsBaseElement {
|
|
|
2314
2359
|
<ul
|
|
2315
2360
|
class=${classMap8(listClasses)}
|
|
2316
2361
|
role="list"
|
|
2317
|
-
aria-label=${ifDefined5(this.
|
|
2318
|
-
aria-labelledby=${ifDefined5(this.
|
|
2319
|
-
aria-describedby=${ifDefined5(this.
|
|
2362
|
+
aria-label=${ifDefined5(this.controlAriaLabel || void 0)}
|
|
2363
|
+
aria-labelledby=${ifDefined5(this.controlAriaLabelledby || void 0)}
|
|
2364
|
+
aria-describedby=${ifDefined5(this.controlAriaDescribedby || void 0)}
|
|
2320
2365
|
>${content}</ul>
|
|
2321
2366
|
`;
|
|
2322
2367
|
}
|
|
@@ -2331,14 +2376,14 @@ __decorateClass([
|
|
|
2331
2376
|
property10({ type: String })
|
|
2332
2377
|
], CsListInternal.prototype, "tagOverride", 2);
|
|
2333
2378
|
__decorateClass([
|
|
2334
|
-
property10({ type: String, attribute: "label" })
|
|
2335
|
-
], CsListInternal.prototype, "
|
|
2379
|
+
property10({ type: String, attribute: "aria-label" })
|
|
2380
|
+
], CsListInternal.prototype, "controlAriaLabel", 2);
|
|
2336
2381
|
__decorateClass([
|
|
2337
|
-
property10({ type: String, attribute: "labelledby" })
|
|
2338
|
-
], CsListInternal.prototype, "
|
|
2382
|
+
property10({ type: String, attribute: "aria-labelledby" })
|
|
2383
|
+
], CsListInternal.prototype, "controlAriaLabelledby", 2);
|
|
2339
2384
|
__decorateClass([
|
|
2340
|
-
property10({ type: String, attribute: "describedby" })
|
|
2341
|
-
], CsListInternal.prototype, "
|
|
2385
|
+
property10({ type: String, attribute: "aria-describedby" })
|
|
2386
|
+
], CsListInternal.prototype, "controlAriaDescribedby", 2);
|
|
2342
2387
|
__decorateClass([
|
|
2343
2388
|
property10({ type: Boolean })
|
|
2344
2389
|
], CsListInternal.prototype, "sortable", 2);
|
|
@@ -2399,9 +2444,9 @@ var CsTreeViewInternal = class extends CsBaseElement {
|
|
|
2399
2444
|
constructor() {
|
|
2400
2445
|
super(...arguments);
|
|
2401
2446
|
this.items = [];
|
|
2402
|
-
this.
|
|
2403
|
-
this.
|
|
2404
|
-
this.
|
|
2447
|
+
this.controlAriaLabel = "";
|
|
2448
|
+
this.controlAriaLabelledby = "";
|
|
2449
|
+
this.controlAriaDescribedby = "";
|
|
2405
2450
|
this._expandedSet = /* @__PURE__ */ new Set();
|
|
2406
2451
|
}
|
|
2407
2452
|
static {
|
|
@@ -2488,9 +2533,9 @@ var CsTreeViewInternal = class extends CsBaseElement {
|
|
|
2488
2533
|
<ul
|
|
2489
2534
|
class=${classMap9(rootClasses)}
|
|
2490
2535
|
role="tree"
|
|
2491
|
-
aria-label=${ifDefined6(this.
|
|
2492
|
-
aria-labelledby=${ifDefined6(this.
|
|
2493
|
-
aria-describedby=${ifDefined6(this.
|
|
2536
|
+
aria-label=${ifDefined6(this.controlAriaLabel || void 0)}
|
|
2537
|
+
aria-labelledby=${ifDefined6(this.controlAriaLabelledby || void 0)}
|
|
2538
|
+
aria-describedby=${ifDefined6(this.controlAriaDescribedby || void 0)}
|
|
2494
2539
|
>
|
|
2495
2540
|
${this.items.map((item, i) => this._renderNode(item, i, 0))}
|
|
2496
2541
|
</ul>
|
|
@@ -2513,14 +2558,14 @@ __decorateClass([
|
|
|
2513
2558
|
property11({ attribute: false })
|
|
2514
2559
|
], CsTreeViewInternal.prototype, "expandedItems", 2);
|
|
2515
2560
|
__decorateClass([
|
|
2516
|
-
property11({ type: String, attribute: "label" })
|
|
2517
|
-
], CsTreeViewInternal.prototype, "
|
|
2561
|
+
property11({ type: String, attribute: "aria-label" })
|
|
2562
|
+
], CsTreeViewInternal.prototype, "controlAriaLabel", 2);
|
|
2518
2563
|
__decorateClass([
|
|
2519
|
-
property11({ type: String, attribute: "labelledby" })
|
|
2520
|
-
], CsTreeViewInternal.prototype, "
|
|
2564
|
+
property11({ type: String, attribute: "aria-labelledby" })
|
|
2565
|
+
], CsTreeViewInternal.prototype, "controlAriaLabelledby", 2);
|
|
2521
2566
|
__decorateClass([
|
|
2522
|
-
property11({ type: String, attribute: "describedby" })
|
|
2523
|
-
], CsTreeViewInternal.prototype, "
|
|
2567
|
+
property11({ type: String, attribute: "aria-describedby" })
|
|
2568
|
+
], CsTreeViewInternal.prototype, "controlAriaDescribedby", 2);
|
|
2524
2569
|
__decorateClass([
|
|
2525
2570
|
property11({ type: String })
|
|
2526
2571
|
], CsTreeViewInternal.prototype, "connectorLines", 2);
|
package/dist/list/internal.d.ts
CHANGED
|
@@ -14,9 +14,9 @@ export declare class CsListInternal<T = any> extends CsBaseElement {
|
|
|
14
14
|
items: ReadonlyArray<T>;
|
|
15
15
|
renderItem: ((item: T) => RenderedItem) | undefined;
|
|
16
16
|
tagOverride?: 'ol' | 'ul';
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
controlAriaLabel: string;
|
|
18
|
+
controlAriaLabelledby: string;
|
|
19
|
+
controlAriaDescribedby: string;
|
|
20
20
|
sortable: boolean;
|
|
21
21
|
sortDisabled: boolean;
|
|
22
22
|
disableItemPaddings: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/list/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAO5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAID,qBAAa,cAAc,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,aAAa;IACxD,OAAgB,MAAM,4BAAqE;IAG3F,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAM;IAG7B,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,YAAY,CAAC,GAAG,SAAS,CAAC;IAGpD,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAG1B,
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/list/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAO5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAID,qBAAa,cAAc,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,aAAa;IACxD,OAAgB,MAAM,4BAAqE;IAG3F,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAM;IAG7B,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,YAAY,CAAC,GAAG,SAAS,CAAC;IAGpD,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAG1B,gBAAgB,SAAM;IAGtB,qBAAqB,SAAM;IAG3B,sBAAsB,SAAM;IAG5B,QAAQ,UAAS;IAGjB,YAAY,UAAS;IAGrB,mBAAmB,UAAS;IAG5B,eAAe,UAAS;IAGxB,WAAW,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC;IAEpC,OAAO,CAAC,eAAe;IAqBd,MAAM;CAuChB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/radio-group/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAO5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,QAAA,MAAM,IAAI,qHAAqC,CAAC;AAIhD,qBAAa,oBAAqB,SAAQ,IAAI;IAC5C,OAAgB,MAAM,4BAAwF;IAGrG,KAAK,SAAM;IAGpB,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAM;IAGjE,gBAAgB,SAAM;IAGtB,mBAAmB,UAAS;IAG5B,mBAAmB,SAAM;IAGzB,QAAQ,UAAS;IAGjB,SAAS,EAAE,YAAY,GAAG,UAAU,CAAc;IAElD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,aAAa,CAAM;IAElB,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAK5B,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAQlD,KAAK,IAAI,IAAI;IAWb,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,UAAU,CAuChB;IAEF,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,YAAY;IAUX,MAAM,IAAI,cAAc;IAuBjC,OAAO,CAAC,WAAW;
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/radio-group/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAO5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,QAAA,MAAM,IAAI,qHAAqC,CAAC;AAIhD,qBAAa,oBAAqB,SAAQ,IAAI;IAC5C,OAAgB,MAAM,4BAAwF;IAGrG,KAAK,SAAM;IAGpB,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAM;IAGjE,gBAAgB,SAAM;IAGtB,mBAAmB,UAAS;IAG5B,mBAAmB,SAAM;IAGzB,QAAQ,UAAS;IAGjB,SAAS,EAAE,YAAY,GAAG,UAAU,CAAc;IAElD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,aAAa,CAAM;IAElB,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAK5B,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAQlD,KAAK,IAAI,IAAI;IAWb,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,UAAU,CAuChB;IAEF,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,YAAY;IAUX,MAAM,IAAI,cAAc;IAuBjC,OAAO,CAAC,WAAW;CAmFpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/tiles/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAO5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,QAAA,MAAM,IAAI,qHAAqC,CAAC;AAIhD,qBAAa,eAAgB,SAAQ,IAAI;IACvC,OAAgB,MAAM,4BAAwF;IAGrG,KAAK,SAAM;IAGpB,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,eAAe,CAAC,CAAM;IAGtD,gBAAgB,SAAM;IAGtB,mBAAmB,UAAS;IAG5B,mBAAmB,SAAM;IAGzB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,QAAQ,UAAS;IAEjB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,aAAa,CAAM;IAElB,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAK5B,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAQlD,KAAK,IAAI,IAAI;IAWb,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,UAAU,CAiChB;IAEF,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,YAAY;IASX,MAAM,IAAI,cAAc;IAwBjC,OAAO,CAAC,WAAW;
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/tiles/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAO5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,QAAA,MAAM,IAAI,qHAAqC,CAAC;AAIhD,qBAAa,eAAgB,SAAQ,IAAI;IACvC,OAAgB,MAAM,4BAAwF;IAGrG,KAAK,SAAM;IAGpB,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,eAAe,CAAC,CAAM;IAGtD,gBAAgB,SAAM;IAGtB,mBAAmB,UAAS;IAG5B,mBAAmB,SAAM;IAGzB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,QAAQ,UAAS;IAEjB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,aAAa,CAAM;IAElB,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAK5B,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAQlD,KAAK,IAAI,IAAI;IAWb,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,UAAU,CAiChB;IAEF,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,YAAY;IASX,MAAM,IAAI,cAAc;IAwBjC,OAAO,CAAC,WAAW;CAuGpB"}
|
|
@@ -8,9 +8,9 @@ export declare class CsTreeViewInternal<T = any> extends CsBaseElement {
|
|
|
8
8
|
getItemId: ((item: T, index: number) => string) | undefined;
|
|
9
9
|
getItemChildren: ((item: T, index: number) => ReadonlyArray<T> | undefined) | undefined;
|
|
10
10
|
expandedItems?: ReadonlyArray<string>;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
controlAriaLabel: string;
|
|
12
|
+
controlAriaLabelledby: string;
|
|
13
|
+
controlAriaDescribedby: string;
|
|
14
14
|
connectorLines?: TreeViewProps.ConnectorLinesVariant;
|
|
15
15
|
i18nStrings?: TreeViewProps.I18nStrings<T>;
|
|
16
16
|
renderItemToggleIcon?: (data: TreeViewProps.ItemToggleRenderIconData) => unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/tree-view/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAM5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIrD,qBAAa,kBAAkB,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,aAAa;IAC5D,OAAgB,MAAM,4BAA+C;IAGrE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAM;IAG7B,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,aAAa,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IAG7E,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IAG5D,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAGxF,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAGtC,
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/tree-view/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAM5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIrD,qBAAa,kBAAkB,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,aAAa;IAC5D,OAAgB,MAAM,4BAA+C;IAGrE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAM;IAG7B,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,aAAa,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IAG7E,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IAG5D,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAGxF,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAGtC,gBAAgB,SAAM;IAGtB,qBAAqB,SAAM;IAG3B,sBAAsB,SAAM;IAG5B,cAAc,CAAC,EAAE,aAAa,CAAC,qBAAqB,CAAC;IAGrD,WAAW,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAG3C,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,wBAAwB,KAAK,OAAO,CAAC;IAEjF,OAAO,CAAC,YAAY,CAAqB;IAEhC,UAAU,CAAC,OAAO,EAAE,OAAO,KAAK,EAAE,cAAc,GAAG,IAAI;IAMhE,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,WAAW;IAqDV,MAAM;CAqBhB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cumulus-ui/components",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Web components inspired by Cloudscape Design System",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"build:demo": "node scripts/build-demo.mjs",
|
|
24
24
|
"dev": "npx vite --port 3000",
|
|
25
25
|
"test": "npm run build:cdn && npx playwright test",
|
|
26
|
-
"typecheck": "tsc --noEmit
|
|
26
|
+
"typecheck": "tsc --noEmit",
|
|
27
27
|
"clean": "rm -rf dist",
|
|
28
28
|
"generate:interfaces": "tsx scripts/generate-interfaces.ts",
|
|
29
29
|
"generate:styles": "tsx scripts/generate-styles.ts",
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@axe-core/playwright": "^4.11.1",
|
|
52
|
+
"@cloudscape-design/components": "^3.0.1267",
|
|
52
53
|
"@playwright/test": "^1.59.1",
|
|
53
54
|
"@types/node": "^25.5.2",
|
|
54
55
|
"@types/pngjs": "^6.0.5",
|
|
@@ -57,6 +58,6 @@
|
|
|
57
58
|
"pngjs": "^7.0.0",
|
|
58
59
|
"tsx": "^4.21.0",
|
|
59
60
|
"typescript": "~5.9.3",
|
|
60
|
-
"vite": "^8.0.
|
|
61
|
+
"vite": "^8.0.7"
|
|
61
62
|
}
|
|
62
63
|
}
|