@roadtrip/components 3.34.0 → 3.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index-bf8a763e.js.map +1 -1
- package/dist/cjs/index-fee0103c.js +4 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/road-badge_14.cjs.entry.js +2 -2
- package/dist/cjs/road-radio-card.cjs.entry.js +73 -0
- package/dist/cjs/road-radio-card.cjs.entry.js.map +1 -0
- package/dist/cjs/road-radio-group.cjs.entry.js +8 -1
- package/dist/cjs/road-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/road-range.cjs.entry.js +2 -2
- package/dist/cjs/road-rating.cjs.entry.js +1 -1
- package/dist/cjs/road-segmented-button-bar.cjs.entry.js +1 -1
- package/dist/cjs/road-segmented-button.cjs.entry.js +2 -2
- package/dist/cjs/road-segmented-buttons.cjs.entry.js +1 -1
- package/dist/cjs/road-select-filter.cjs.entry.js +2 -2
- package/dist/cjs/road-select.cjs.entry.js +1 -1
- package/dist/cjs/road-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/road-spinner.cjs.entry.js +1 -1
- package/dist/cjs/road-switch.cjs.entry.js +2 -2
- package/dist/cjs/road-tab-bar.cjs.entry.js +2 -2
- package/dist/cjs/road-tab-button.cjs.entry.js +2 -2
- package/dist/cjs/road-tab.cjs.entry.js +2 -2
- package/dist/cjs/road-table.cjs.entry.js +1 -1
- package/dist/cjs/road-tabs.cjs.entry.js +1 -1
- package/dist/cjs/road-tag.cjs.entry.js +1 -1
- package/dist/cjs/road-text.cjs.entry.js +1 -1
- package/dist/cjs/road-textarea.cjs.entry.js +2 -2
- package/dist/cjs/road-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/road-toast.cjs.entry.js +1 -1
- package/dist/cjs/road-toggle.cjs.entry.js +2 -2
- package/dist/cjs/road-toolbar-title-page.cjs.entry.js +1 -1
- package/dist/cjs/road-toolbar-title.cjs.entry.js +1 -1
- package/dist/cjs/road-toolbar-v2.cjs.entry.js +1 -1
- package/dist/cjs/road-tooltip.cjs.entry.js +3 -3
- package/dist/cjs/roadtrip.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/icon/svg/baby-seat-outline.svg +1 -0
- package/dist/collection/components/icon/svg/flag-luxembourg-color.svg +1 -1
- package/dist/collection/components/icon/svg/vehicle-cover-outline.svg +1 -0
- package/dist/collection/components/radio-card/radio-card.css +234 -0
- package/dist/collection/components/radio-card/radio-card.js +253 -0
- package/dist/collection/components/radio-card/radio-card.js.map +1 -0
- package/dist/collection/components/radio-card/radio-card.stories.js +90 -0
- package/dist/collection/components/radio-group/radio-group.js +8 -1
- package/dist/collection/components/radio-group/radio-group.js.map +1 -1
- package/dist/collection/components/range/range.js +2 -2
- package/dist/collection/components/rating/rating.js +1 -1
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/segmented-button/segmented-button.js +2 -2
- package/dist/collection/components/segmented-button-bar/segmented-button-bar.js +1 -1
- package/dist/collection/components/segmented-buttons/segmented-buttons.js +1 -1
- package/dist/collection/components/select/select.js +1 -1
- package/dist/collection/components/select-filter/select-filter.js +2 -2
- package/dist/collection/components/skeleton/skeleton.js +1 -1
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/switch/switch.js +2 -2
- package/dist/collection/components/tab/tab.js +2 -2
- package/dist/collection/components/tab-bar/tab-bar.js +2 -2
- package/dist/collection/components/tab-button/tab-button.js +2 -2
- package/dist/collection/components/table/table.js +1 -1
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/tag/tag.js +1 -1
- package/dist/collection/components/text/text.js +1 -1
- package/dist/collection/components/textarea/textarea.css +5 -2
- package/dist/collection/components/textarea/textarea.js +1 -1
- package/dist/collection/components/toast/toast.js +1 -1
- package/dist/collection/components/toggle/toggle.js +2 -2
- package/dist/collection/components/toolbar/toolbar.js +1 -1
- package/dist/collection/components/toolbar-title/toolbar-title.js +1 -1
- package/dist/collection/components/toolbar-title-page/toolbar-title-page.js +1 -1
- package/dist/collection/components/toolbar-v2/toolbar-v2.js +1 -1
- package/dist/collection/components/tooltip/tooltip.js +3 -3
- package/dist/esm/index-8dc34f94.js +4 -0
- package/dist/esm/index-f1358629.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/road-badge_14.entry.js +2 -2
- package/dist/esm/road-radio-card.entry.js +69 -0
- package/dist/esm/road-radio-card.entry.js.map +1 -0
- package/dist/esm/road-radio-group.entry.js +8 -1
- package/dist/esm/road-radio-group.entry.js.map +1 -1
- package/dist/esm/road-range.entry.js +2 -2
- package/dist/esm/road-rating.entry.js +1 -1
- package/dist/esm/road-segmented-button-bar.entry.js +1 -1
- package/dist/esm/road-segmented-button.entry.js +2 -2
- package/dist/esm/road-segmented-buttons.entry.js +1 -1
- package/dist/esm/road-select-filter.entry.js +2 -2
- package/dist/esm/road-select.entry.js +1 -1
- package/dist/esm/road-skeleton.entry.js +1 -1
- package/dist/esm/road-spinner.entry.js +1 -1
- package/dist/esm/road-switch.entry.js +2 -2
- package/dist/esm/road-tab-bar.entry.js +2 -2
- package/dist/esm/road-tab-button.entry.js +2 -2
- package/dist/esm/road-tab.entry.js +2 -2
- package/dist/esm/road-table.entry.js +1 -1
- package/dist/esm/road-tabs.entry.js +1 -1
- package/dist/esm/road-tag.entry.js +1 -1
- package/dist/esm/road-text.entry.js +1 -1
- package/dist/esm/road-textarea.entry.js +2 -2
- package/dist/esm/road-textarea.entry.js.map +1 -1
- package/dist/esm/road-toast.entry.js +1 -1
- package/dist/esm/road-toggle.entry.js +2 -2
- package/dist/esm/road-toolbar-title-page.entry.js +1 -1
- package/dist/esm/road-toolbar-title.entry.js +1 -1
- package/dist/esm/road-toolbar-v2.entry.js +1 -1
- package/dist/esm/road-tooltip.entry.js +3 -3
- package/dist/esm/roadtrip.js +1 -1
- package/dist/html.html-data.json +39 -0
- package/dist/icons/icons.svg +1 -1
- package/dist/icons/index.d.ts +2 -0
- package/dist/icons/index.js +2 -0
- package/dist/roadtrip/{p-78e6204e.entry.js → p-02a6e387.entry.js} +2 -2
- package/dist/roadtrip/{p-cb8924ee.entry.js → p-0b847a5d.entry.js} +2 -2
- package/dist/roadtrip/{p-4765c524.entry.js → p-0dce3168.entry.js} +2 -2
- package/dist/roadtrip/{p-061f6889.entry.js → p-1ca62c28.entry.js} +2 -2
- package/dist/roadtrip/{p-df897815.entry.js → p-355fcb74.entry.js} +2 -2
- package/dist/roadtrip/p-4a0711c8.entry.js +2 -0
- package/dist/roadtrip/p-4a0711c8.entry.js.map +1 -0
- package/dist/roadtrip/{p-4329a5ff.entry.js → p-4b1ac843.entry.js} +2 -2
- package/dist/roadtrip/{p-38fd91b3.entry.js → p-56f18548.entry.js} +2 -2
- package/dist/roadtrip/{p-ab550b59.entry.js → p-5f2a4cd5.entry.js} +2 -2
- package/dist/roadtrip/{p-f9ba8499.entry.js → p-5f6255ea.entry.js} +2 -2
- package/dist/roadtrip/{p-5ed9e829.entry.js → p-6cde1247.entry.js} +2 -2
- package/dist/roadtrip/{p-0de7b85d.entry.js → p-6e65c377.entry.js} +2 -2
- package/dist/roadtrip/p-6ef0a03b.entry.js +2 -0
- package/dist/roadtrip/{p-6fb0f8b8.entry.js.map → p-6ef0a03b.entry.js.map} +1 -1
- package/dist/roadtrip/{p-c4d3dda1.entry.js → p-780de42a.entry.js} +2 -2
- package/dist/roadtrip/p-80344aa2.entry.js +2 -0
- package/dist/roadtrip/p-80344aa2.entry.js.map +1 -0
- package/dist/roadtrip/{p-ebada9f6.entry.js → p-b0203787.entry.js} +2 -2
- package/dist/roadtrip/{p-7e1e110f.entry.js → p-c01aaf61.entry.js} +2 -2
- package/dist/roadtrip/{p-3aa617b1.entry.js → p-c09d87da.entry.js} +2 -2
- package/dist/roadtrip/p-cd1e078c.entry.js +2 -0
- package/dist/roadtrip/p-cd436a46.entry.js +2 -0
- package/dist/roadtrip/{p-93272a9d.entry.js.map → p-cd436a46.entry.js.map} +1 -1
- package/dist/roadtrip/p-d9cbd0b9.entry.js +2 -0
- package/dist/roadtrip/p-d9cbd0b9.entry.js.map +1 -0
- package/dist/roadtrip/{p-e82c8ca0.entry.js → p-da0e9f4e.entry.js} +2 -2
- package/dist/roadtrip/p-db82e012.js.map +1 -1
- package/dist/roadtrip/{p-e8bcf7a0.entry.js → p-df2f066e.entry.js} +2 -2
- package/dist/roadtrip/{p-dc9509b1.entry.js → p-dfc0d1c5.entry.js} +2 -2
- package/dist/roadtrip/{p-fafcecb2.entry.js → p-edfb6a90.entry.js} +2 -2
- package/dist/roadtrip/{p-7a7b1fb6.entry.js → p-f91b8ee7.entry.js} +2 -2
- package/dist/roadtrip/p-fb33aa91.entry.js +2 -0
- package/dist/roadtrip/roadtrip.css +1 -1
- package/dist/roadtrip/roadtrip.esm.js +1 -1
- package/dist/roadtrip/roadtrip.esm.js.map +1 -1
- package/dist/roadtrip/svg/baby-seat-outline.svg +1 -0
- package/dist/roadtrip/svg/flag-luxembourg-color.svg +1 -1
- package/dist/roadtrip/svg/vehicle-cover-outline.svg +1 -0
- package/dist/types/components/radio-card/radio-card.d.ts +25 -0
- package/dist/types/components/radio-group/radio-group.d.ts +1 -0
- package/dist/types/components.d.ts +45 -0
- package/hydrate/index.js +126 -38
- package/hydrate/index.mjs +126 -38
- package/icons/icons.svg +1 -1
- package/icons/index.d.ts +2 -0
- package/icons/index.js +2 -0
- package/package.json +1 -1
- package/dist/roadtrip/p-2f89b651.entry.js +0 -2
- package/dist/roadtrip/p-2f89b651.entry.js.map +0 -1
- package/dist/roadtrip/p-41bab704.entry.js +0 -2
- package/dist/roadtrip/p-6fb0f8b8.entry.js +0 -2
- package/dist/roadtrip/p-93272a9d.entry.js +0 -2
- package/dist/roadtrip/p-97245610.entry.js +0 -2
- package/dist/roadtrip/p-ce386f80.entry.js +0 -2
- package/dist/roadtrip/p-ce386f80.entry.js.map +0 -1
- /package/dist/roadtrip/{p-78e6204e.entry.js.map → p-02a6e387.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-cb8924ee.entry.js.map → p-0b847a5d.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-4765c524.entry.js.map → p-0dce3168.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-061f6889.entry.js.map → p-1ca62c28.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-df897815.entry.js.map → p-355fcb74.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-4329a5ff.entry.js.map → p-4b1ac843.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-38fd91b3.entry.js.map → p-56f18548.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-ab550b59.entry.js.map → p-5f2a4cd5.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-f9ba8499.entry.js.map → p-5f6255ea.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-5ed9e829.entry.js.map → p-6cde1247.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-0de7b85d.entry.js.map → p-6e65c377.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-c4d3dda1.entry.js.map → p-780de42a.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-ebada9f6.entry.js.map → p-b0203787.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-7e1e110f.entry.js.map → p-c01aaf61.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-3aa617b1.entry.js.map → p-c09d87da.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-97245610.entry.js.map → p-cd1e078c.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-e82c8ca0.entry.js.map → p-da0e9f4e.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-e8bcf7a0.entry.js.map → p-df2f066e.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-dc9509b1.entry.js.map → p-dfc0d1c5.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-fafcecb2.entry.js.map → p-edfb6a90.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-7a7b1fb6.entry.js.map → p-f91b8ee7.entry.js.map} +0 -0
- /package/dist/roadtrip/{p-41bab704.entry.js.map → p-fb33aa91.entry.js.map} +0 -0
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import { Host, h, } from "@stencil/core";
|
|
2
|
+
import "./../../utils/polyfill";
|
|
3
|
+
export class RadioCard {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.disabled = false;
|
|
6
|
+
this.selected = false;
|
|
7
|
+
this.inline = true;
|
|
8
|
+
this.isSelected = false;
|
|
9
|
+
this.onFocus = () => {
|
|
10
|
+
this.roadfocus.emit();
|
|
11
|
+
};
|
|
12
|
+
this.onBlur = () => {
|
|
13
|
+
this.roadblur.emit();
|
|
14
|
+
};
|
|
15
|
+
this.onClick = () => {
|
|
16
|
+
var _a;
|
|
17
|
+
if (this.disabled)
|
|
18
|
+
return;
|
|
19
|
+
(_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.click();
|
|
20
|
+
this.roadchange.emit(this.value);
|
|
21
|
+
window.dispatchEvent(new CustomEvent('road-radio-selected', {
|
|
22
|
+
detail: {
|
|
23
|
+
name: this.name,
|
|
24
|
+
value: this.value,
|
|
25
|
+
},
|
|
26
|
+
}));
|
|
27
|
+
};
|
|
28
|
+
this.onRadioSelected = (event) => {
|
|
29
|
+
const { name, value } = event.detail;
|
|
30
|
+
if (name === this.name) {
|
|
31
|
+
this.isSelected = value === this.value;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
componentWillLoad() {
|
|
36
|
+
this.radioId = `road-radio-${RadioCard.idCounter++}`;
|
|
37
|
+
if (!this.name) {
|
|
38
|
+
this.name = this.radioId;
|
|
39
|
+
}
|
|
40
|
+
if (!this.label) {
|
|
41
|
+
this.label = `${this.radioId}-label`;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
handleRadioSelected(event) {
|
|
45
|
+
this.onRadioSelected(event);
|
|
46
|
+
}
|
|
47
|
+
render() {
|
|
48
|
+
const labelId = `${this.radioId}-label`;
|
|
49
|
+
const inlineClass = this.inline ? 'form-radio-inline' : '';
|
|
50
|
+
const selectedClass = this.isSelected || this.selected ? 'radio-card-selected' : '';
|
|
51
|
+
const disabledClass = this.disabled ? 'radio-card-disabled' : '';
|
|
52
|
+
return (h(Host, { key: '92d10e0e857fa618b651d09d684760345ebcab09', class: `form-radio ${inlineClass}` }, h("div", { key: 'fcdabc5a9f337d8bd1e8a1bf7f3918bd65fa3b61', class: `radio-card ${selectedClass} ${disabledClass}`, onClick: this.onClick }, h("input", { key: 'cab960932990c7b41e248fd45e11f05f0ba946ad', ref: el => this.inputEl = el, class: "form-radio-input", type: "radio", id: this.radioId, name: this.name, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : undefined, checked: this.isSelected || this.selected, "aria-labelledby": labelId, value: this.value, onFocus: this.onFocus, onBlur: this.onBlur, onChange: () => { } }), h("label", { key: '9fbd563bb0d0ceb76374f8fdd961a0ae945cfd3b', class: "form-radio-label", htmlFor: this.radioId, id: labelId }, h("div", { key: 'a66f46c0b7d566492eb791a14a1dc5f37fe1d98c', class: "slot-wrapper" }, h("slot", { key: '2571e75dc92853a6f14ddb8c7c829ce4d3537ae5' }))))));
|
|
53
|
+
}
|
|
54
|
+
static get is() { return "road-radio-card"; }
|
|
55
|
+
static get encapsulation() { return "scoped"; }
|
|
56
|
+
static get originalStyleUrls() {
|
|
57
|
+
return {
|
|
58
|
+
"$": ["radio-card.css"]
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
static get styleUrls() {
|
|
62
|
+
return {
|
|
63
|
+
"$": ["radio-card.css"]
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
static get properties() {
|
|
67
|
+
return {
|
|
68
|
+
"name": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"mutable": false,
|
|
71
|
+
"complexType": {
|
|
72
|
+
"original": "string",
|
|
73
|
+
"resolved": "string | undefined",
|
|
74
|
+
"references": {}
|
|
75
|
+
},
|
|
76
|
+
"required": false,
|
|
77
|
+
"optional": true,
|
|
78
|
+
"docs": {
|
|
79
|
+
"tags": [],
|
|
80
|
+
"text": ""
|
|
81
|
+
},
|
|
82
|
+
"getter": false,
|
|
83
|
+
"setter": false,
|
|
84
|
+
"attribute": "name",
|
|
85
|
+
"reflect": false
|
|
86
|
+
},
|
|
87
|
+
"disabled": {
|
|
88
|
+
"type": "boolean",
|
|
89
|
+
"mutable": false,
|
|
90
|
+
"complexType": {
|
|
91
|
+
"original": "boolean",
|
|
92
|
+
"resolved": "boolean",
|
|
93
|
+
"references": {}
|
|
94
|
+
},
|
|
95
|
+
"required": false,
|
|
96
|
+
"optional": false,
|
|
97
|
+
"docs": {
|
|
98
|
+
"tags": [],
|
|
99
|
+
"text": ""
|
|
100
|
+
},
|
|
101
|
+
"getter": false,
|
|
102
|
+
"setter": false,
|
|
103
|
+
"attribute": "disabled",
|
|
104
|
+
"reflect": false,
|
|
105
|
+
"defaultValue": "false"
|
|
106
|
+
},
|
|
107
|
+
"selected": {
|
|
108
|
+
"type": "boolean",
|
|
109
|
+
"mutable": false,
|
|
110
|
+
"complexType": {
|
|
111
|
+
"original": "boolean",
|
|
112
|
+
"resolved": "boolean",
|
|
113
|
+
"references": {}
|
|
114
|
+
},
|
|
115
|
+
"required": false,
|
|
116
|
+
"optional": false,
|
|
117
|
+
"docs": {
|
|
118
|
+
"tags": [],
|
|
119
|
+
"text": ""
|
|
120
|
+
},
|
|
121
|
+
"getter": false,
|
|
122
|
+
"setter": false,
|
|
123
|
+
"attribute": "selected",
|
|
124
|
+
"reflect": false,
|
|
125
|
+
"defaultValue": "false"
|
|
126
|
+
},
|
|
127
|
+
"value": {
|
|
128
|
+
"type": "any",
|
|
129
|
+
"mutable": false,
|
|
130
|
+
"complexType": {
|
|
131
|
+
"original": "any | null",
|
|
132
|
+
"resolved": "any",
|
|
133
|
+
"references": {}
|
|
134
|
+
},
|
|
135
|
+
"required": false,
|
|
136
|
+
"optional": true,
|
|
137
|
+
"docs": {
|
|
138
|
+
"tags": [],
|
|
139
|
+
"text": ""
|
|
140
|
+
},
|
|
141
|
+
"getter": false,
|
|
142
|
+
"setter": false,
|
|
143
|
+
"attribute": "value",
|
|
144
|
+
"reflect": false
|
|
145
|
+
},
|
|
146
|
+
"label": {
|
|
147
|
+
"type": "string",
|
|
148
|
+
"mutable": false,
|
|
149
|
+
"complexType": {
|
|
150
|
+
"original": "string",
|
|
151
|
+
"resolved": "string | undefined",
|
|
152
|
+
"references": {}
|
|
153
|
+
},
|
|
154
|
+
"required": false,
|
|
155
|
+
"optional": true,
|
|
156
|
+
"docs": {
|
|
157
|
+
"tags": [],
|
|
158
|
+
"text": ""
|
|
159
|
+
},
|
|
160
|
+
"getter": false,
|
|
161
|
+
"setter": false,
|
|
162
|
+
"attribute": "label",
|
|
163
|
+
"reflect": false
|
|
164
|
+
},
|
|
165
|
+
"inline": {
|
|
166
|
+
"type": "boolean",
|
|
167
|
+
"mutable": false,
|
|
168
|
+
"complexType": {
|
|
169
|
+
"original": "boolean",
|
|
170
|
+
"resolved": "boolean",
|
|
171
|
+
"references": {}
|
|
172
|
+
},
|
|
173
|
+
"required": false,
|
|
174
|
+
"optional": false,
|
|
175
|
+
"docs": {
|
|
176
|
+
"tags": [],
|
|
177
|
+
"text": ""
|
|
178
|
+
},
|
|
179
|
+
"getter": false,
|
|
180
|
+
"setter": false,
|
|
181
|
+
"attribute": "inline",
|
|
182
|
+
"reflect": false,
|
|
183
|
+
"defaultValue": "true"
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
static get states() {
|
|
188
|
+
return {
|
|
189
|
+
"isSelected": {},
|
|
190
|
+
"radioId": {}
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
static get events() {
|
|
194
|
+
return [{
|
|
195
|
+
"method": "roadfocus",
|
|
196
|
+
"name": "roadfocus",
|
|
197
|
+
"bubbles": true,
|
|
198
|
+
"cancelable": true,
|
|
199
|
+
"composed": true,
|
|
200
|
+
"docs": {
|
|
201
|
+
"tags": [],
|
|
202
|
+
"text": ""
|
|
203
|
+
},
|
|
204
|
+
"complexType": {
|
|
205
|
+
"original": "void",
|
|
206
|
+
"resolved": "void",
|
|
207
|
+
"references": {}
|
|
208
|
+
}
|
|
209
|
+
}, {
|
|
210
|
+
"method": "roadblur",
|
|
211
|
+
"name": "roadblur",
|
|
212
|
+
"bubbles": true,
|
|
213
|
+
"cancelable": true,
|
|
214
|
+
"composed": true,
|
|
215
|
+
"docs": {
|
|
216
|
+
"tags": [],
|
|
217
|
+
"text": ""
|
|
218
|
+
},
|
|
219
|
+
"complexType": {
|
|
220
|
+
"original": "void",
|
|
221
|
+
"resolved": "void",
|
|
222
|
+
"references": {}
|
|
223
|
+
}
|
|
224
|
+
}, {
|
|
225
|
+
"method": "roadchange",
|
|
226
|
+
"name": "roadchange",
|
|
227
|
+
"bubbles": true,
|
|
228
|
+
"cancelable": true,
|
|
229
|
+
"composed": true,
|
|
230
|
+
"docs": {
|
|
231
|
+
"tags": [],
|
|
232
|
+
"text": ""
|
|
233
|
+
},
|
|
234
|
+
"complexType": {
|
|
235
|
+
"original": "any",
|
|
236
|
+
"resolved": "any",
|
|
237
|
+
"references": {}
|
|
238
|
+
}
|
|
239
|
+
}];
|
|
240
|
+
}
|
|
241
|
+
static get elementRef() { return "el"; }
|
|
242
|
+
static get listeners() {
|
|
243
|
+
return [{
|
|
244
|
+
"name": "road-radio-selected",
|
|
245
|
+
"method": "handleRadioSelected",
|
|
246
|
+
"target": "window",
|
|
247
|
+
"capture": false,
|
|
248
|
+
"passive": false
|
|
249
|
+
}];
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
RadioCard.idCounter = 0;
|
|
253
|
+
//# sourceMappingURL=radio-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-card.js","sourceRoot":"","sources":["../../../src/components/radio-card/radio-card.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n State,\n Listen,\n} from '@stencil/core';\nimport './../../utils/polyfill';\n\n\n@Component({\n tag: 'road-radio-card',\n styleUrl: 'radio-card.css',\n scoped: true,\n})\nexport class RadioCard {\n private inputEl?: HTMLInputElement;\n\n @Element() el!: HTMLRoadRadioCardElement;\n\n private static idCounter = 0;\n\n @Prop() name?: string;\n @Prop() disabled: boolean = false;\n @Prop() selected: boolean = false;\n @Prop() value?: any | null;\n @Prop() label?: string;\n @Prop() inline: boolean = true;\n\n @State() isSelected: boolean = false;\n @State() radioId!: string;\n\n @Event() roadfocus!: EventEmitter<void>;\n \n @Event() roadblur!: EventEmitter<void>;\n @Event() roadchange!: EventEmitter<any>;\n\n componentWillLoad() {\n this.radioId = `road-radio-${RadioCard.idCounter++}`;\n if (!this.name) {\n this.name = this.radioId;\n }\n if (!this.label) {\n this.label = `${this.radioId}-label`;\n }\n }\n\n private onFocus = () => {\n this.roadfocus.emit();\n };\n\n private onBlur = () => {\n this.roadblur.emit();\n };\n\n private onClick = () => {\n if (this.disabled) return;\n\n this.inputEl?.click();\n this.roadchange.emit(this.value);\n\n window.dispatchEvent(new CustomEvent('road-radio-selected', {\n detail: {\n name: this.name,\n value: this.value,\n },\n }));\n };\n\n private onRadioSelected = (event: CustomEvent) => {\n const { name, value } = event.detail;\n\n if (name === this.name) {\n this.isSelected = value === this.value;\n }\n };\n\n @Listen('road-radio-selected', { target: 'window' })\n handleRadioSelected(event: CustomEvent) {\n this.onRadioSelected(event);\n }\n\n render() {\n const labelId = `${this.radioId}-label`;\n const inlineClass = this.inline ? 'form-radio-inline' : '';\n const selectedClass = this.isSelected || this.selected ? 'radio-card-selected' : '';\n const disabledClass = this.disabled ? 'radio-card-disabled' : '';\n\n return (\n <Host class={`form-radio ${inlineClass}`}>\n <div class={`radio-card ${selectedClass} ${disabledClass}`} onClick={this.onClick}>\n <input\n ref={el => this.inputEl = el}\n class=\"form-radio-input\"\n type=\"radio\"\n id={this.radioId}\n name={this.name}\n disabled={this.disabled}\n aria-disabled={this.disabled ? 'true' : undefined}\n checked={this.isSelected || this.selected}\n aria-labelledby={labelId}\n value={this.value}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onChange={() => {}}\n />\n <label class=\"form-radio-label\" htmlFor={this.radioId} id={labelId}>\n <div class=\"slot-wrapper\">\n <slot />\n </div>\n </label>\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
3
|
+
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Forms/Radio Card',
|
|
7
|
+
component: 'road-radio-card',
|
|
8
|
+
subcomponents: {
|
|
9
|
+
'road-radio-group': 'road-radio-group',
|
|
10
|
+
},
|
|
11
|
+
parameters: {
|
|
12
|
+
actions: {
|
|
13
|
+
handles: ['roadblur', 'roadfocus'],
|
|
14
|
+
},
|
|
15
|
+
docs: {
|
|
16
|
+
description: {
|
|
17
|
+
component: 'A radio is used in a `radio-group`. It allows a user to select at most one radio button from a set.',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export const Playground = (args) => html`
|
|
24
|
+
<road-radio-group
|
|
25
|
+
name=${ifDefined(args.name)}
|
|
26
|
+
label="Label of radio group"
|
|
27
|
+
.asterisk=${args.asterisk}
|
|
28
|
+
@roadchange=${(event) => args.roadchange?.(event.detail.value)}
|
|
29
|
+
>
|
|
30
|
+
<road-radio-card
|
|
31
|
+
.disabled=${args.disabled}
|
|
32
|
+
.selected=${args.selected}
|
|
33
|
+
label=${ifDefined(args.label)}
|
|
34
|
+
value=${ifDefined(args.value)}
|
|
35
|
+
radio-id=${ifDefined(args['radio-id'])}
|
|
36
|
+
>
|
|
37
|
+
${unsafeHTML(args.slotContent)}
|
|
38
|
+
</road-radio-card>
|
|
39
|
+
</road-radio-group>
|
|
40
|
+
`;
|
|
41
|
+
|
|
42
|
+
Playground.args = {
|
|
43
|
+
disabled: false,
|
|
44
|
+
selected: false,
|
|
45
|
+
label: 'Label',
|
|
46
|
+
value: 'on',
|
|
47
|
+
asterisk: false,
|
|
48
|
+
name: 'radio-group-name',
|
|
49
|
+
'radio-id': '',
|
|
50
|
+
slotContent: `<span>Contenu dans la card</span>`,
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
Playground.argTypes = {
|
|
54
|
+
disabled: { control: 'boolean' },
|
|
55
|
+
selected: { control: 'boolean' },
|
|
56
|
+
asterisk: { control: 'boolean' },
|
|
57
|
+
label: { control: 'text' },
|
|
58
|
+
value: { control: 'text' },
|
|
59
|
+
name: { control: 'text' },
|
|
60
|
+
'radio-id': { control: 'text' },
|
|
61
|
+
slotContent: {
|
|
62
|
+
control: 'text',
|
|
63
|
+
name: 'Slot Content',
|
|
64
|
+
description: 'HTML content rendered inside the radio card',
|
|
65
|
+
},
|
|
66
|
+
roadblur: {
|
|
67
|
+
action: 'roadblur',
|
|
68
|
+
description: "Emitted when the radio button loses focus.",
|
|
69
|
+
table: {
|
|
70
|
+
category: 'Events',
|
|
71
|
+
type: { summary: 'CustomEvent' },
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
roadfocus: {
|
|
75
|
+
action: 'roadfocus',
|
|
76
|
+
description: "Emitted when the radio button has focus.",
|
|
77
|
+
table: {
|
|
78
|
+
category: 'Events',
|
|
79
|
+
type: { summary: 'CustomEvent' },
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
roadchange: {
|
|
83
|
+
action: 'roadchange',
|
|
84
|
+
description: "Emitted when the value has changed.",
|
|
85
|
+
table: {
|
|
86
|
+
category: 'Events',
|
|
87
|
+
type: { summary: 'CustomEvent' },
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
};
|
|
@@ -40,9 +40,16 @@ export class RadioGroup {
|
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
valueChanged(value) {
|
|
43
|
+
this.updateRadios();
|
|
43
44
|
this.roadchange.emit({ value });
|
|
44
45
|
this.roadChange.emit({ value });
|
|
45
46
|
}
|
|
47
|
+
updateRadios() {
|
|
48
|
+
const radios = this.el.querySelectorAll('road-radio-card');
|
|
49
|
+
radios.forEach(radio => {
|
|
50
|
+
radio.checked = (radio.getAttribute('value') === this.value);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
46
53
|
errorChanged() {
|
|
47
54
|
if (this.error !== undefined && this.error !== '') {
|
|
48
55
|
this.el.querySelectorAll('road-radio').forEach(item => item.error = true);
|
|
@@ -59,7 +66,7 @@ export class RadioGroup {
|
|
|
59
66
|
render() {
|
|
60
67
|
const labelId = `${this.radioGroupId}-label`;
|
|
61
68
|
const isInvalidClass = this.error !== undefined && this.error !== '' ? 'is-invalid' : '';
|
|
62
|
-
return (h(Host, { key: '
|
|
69
|
+
return (h(Host, { key: 'c0b1fc909fda6bc68c01adf993b30807f18a0486', role: "radiogroup", class: `form-group ${isInvalidClass}`, "aria-label": this.ariaLabel, onClick: this.onClick }, this.label && h("p", { key: 'f23d2998fd001549361d2540a9af9fac62e0754e', class: "text-content", id: labelId }, this.label, " ", this.asterisk && h("span", { key: '299ccd95c783db7768589f92db60ba14b3c1026e', class: "asterisk" }, "*")), h("slot", { key: '8ab9f52912fab8c99c610b4ffb2f7f316d9c8e21' }), this.error && this.error !== '' && h("p", { key: '9ff0060878567d4b45487f5986e46d57a11c2876', class: "invalid-feedback" }, this.error), this.helper && this.helper !== '' && h("p", { key: 'd081883688e4279ec03663cf595a555f7e9e8304', class: "helper" }, this.helper)));
|
|
63
70
|
}
|
|
64
71
|
static get is() { return "road-radio-group"; }
|
|
65
72
|
static get encapsulation() { return "scoped"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../../src/components/radio-group/radio-group.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAgB,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAE9F;;GAEG;AAOH,MAAM,OAAO,UAAU;IALvB;QASE;;WAEG;QACK,iBAAY,GAAW,oBAAoB,aAAa,EAAE,EAAE,CAAC;QAErE;;WAEG;QACK,wBAAmB,GAAG,KAAK,CAAC;QAEpC;;WAEG;QACK,SAAI,GAAW,IAAI,CAAC,YAAY,CAAC;QAYzC;;WAEG;QACM,aAAQ,GAAa,KAAK,CAAC;QAEpC;;WAEG;QACoB,cAAS,GAAW,GAAG,IAAI,CAAC,YAAY,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../../src/components/radio-group/radio-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, Host, Prop, Watch, h } from '@stencil/core';\n\n/**\n * @slot - Used to add multiple radio components.\n */\n\n@Component({\n tag: 'road-radio-group',\n styleUrl: 'radio-group.css',\n scoped: true,\n})\nexport class RadioGroup {\n\n @Element() el!: HTMLRoadRadioGroupElement;\n\n /**\n * The id of checkbox\n */\n @Prop() radioGroupId: string = `road-radio-group-${radioGroupIds++}`;\n\n /**\n * If `true`, the radios can be deselected.\n */\n @Prop() allowEmptySelection = false;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.radioGroupId;\n\n /**\n * the value of the radio group.\n */\n @Prop({ mutable: true }) value?: any | null;\n\n /**\n * Label for the field\n */\n @Prop() label?: string;\n\n /**\n * add an asterisk to the label of the field\n */\n @Prop() asterisk?: boolean = false;\n\n /**\n * Label for the field\n */\n @Prop({reflect: true}) ariaLabel: string = `${this.radioGroupId}-label`;\n\n /**\n * Error message for the radio group\n */\n @Prop({ mutable: true }) error?: string;\n\n /**\n * Helper message for the radio group\n */\n @Prop() helper?: string;\n\n @Watch('value')\n valueChanged(value: any | undefined) {\n this.updateRadios();\n this.roadchange.emit({ value });\n this.roadChange.emit({ value });\n }\n \n private updateRadios() {\n const radios = this.el.querySelectorAll('road-radio-card');\n radios.forEach(radio => {\n (radio as any).checked = (radio.getAttribute('value') === this.value);\n });\n }\n \n\n /**\n * Emitted when the value has changed.\n */\n @Event() roadchange!: EventEmitter<{\n value: string | undefined | null\n }>;\n /** @internal */\n @Event() roadChange!: EventEmitter<{\n value: string | undefined | null\n }>;\n\n private onClick = (ev: Event) => {\n const selectedRadio = ev.target && (ev.target as HTMLElement).closest('road-radio');\n if (selectedRadio) {\n const currentValue = this.value;\n const newValue = (selectedRadio as HTMLRoadRadioElement).value;\n if (newValue !== currentValue) {\n this.value = newValue;\n } else if (this.allowEmptySelection) {\n this.value = undefined;\n }\n this.error = undefined;\n }\n };\n\n @Watch('error')\n errorChanged() {\n if (this.error !== undefined && this.error !== '') {\n this.el.querySelectorAll('road-radio').forEach(item => item.error = true);\n } else {\n this.el.querySelectorAll('road-radio').forEach(item => item.error = false);\n }\n }\n\n componentWillLoad() {\n if (this.error !== undefined && this.error !== '') {\n this.el.querySelectorAll('road-radio').forEach(item => item.error = true);\n }\n }\n\n render() {\n const labelId = `${this.radioGroupId}-label`;\n const isInvalidClass = this.error !== undefined && this.error !== '' ? 'is-invalid' : '';\n\n return (\n <Host\n role=\"radiogroup\"\n class={`form-group ${isInvalidClass}`}\n aria-label={this.ariaLabel}\n onClick={this.onClick}\n >\n {this.label && <p class=\"text-content\" id={labelId}>{this.label} {this.asterisk && <span class=\"asterisk\">*</span>}</p>}\n <slot/>\n {this.error && this.error !== '' && <p class=\"invalid-feedback\">{this.error}</p>}\n {this.helper && this.helper !== '' && <p class=\"helper\">{this.helper}</p>}\n </Host>\n );\n }\n}\n\nlet radioGroupIds = 0;\n"]}
|
|
@@ -95,14 +95,14 @@ export class Range {
|
|
|
95
95
|
render() {
|
|
96
96
|
const value = this.getValue();
|
|
97
97
|
const datalist = this.showLabels !== undefined ? `tickmarks` : "";
|
|
98
|
-
return (h(Host, { key: '
|
|
98
|
+
return (h(Host, { key: 'f1486d106b3d7013b3e6b1d99d646c70127dbbdd', tabindex: "0", class: { disabled: this.disabled } }, h("div", { key: 'fd44d0ce903ba469fc2142a19b049676fddd2005', class: "form-group d-flex align-items-end" }, this.showTick && (h("road-icon", { key: '723c5da5321440524ffb5cf69ed2d71196996541', icon: navigationAddLessSolid, class: "mr-8", size: "sm" })), h("div", { key: '4653394e0dcfa7d452236f57bd2052ac9928007f', class: "form-range", style: {
|
|
99
99
|
"--min": this.min,
|
|
100
100
|
"--max": this.max,
|
|
101
101
|
"--value": value,
|
|
102
102
|
"--background-color": this.disabled
|
|
103
103
|
? "var(--road-surface-disabled)"
|
|
104
104
|
: "initial",
|
|
105
|
-
} }, this.showValue && h("output", { key: '
|
|
105
|
+
} }, this.showValue && h("output", { key: '2d3504f149aeba0bca77b7a7d03ac3fb9f3267b1' }), this.showLabels && h("slot", { key: '45c91307a659459919e67f022766bf98189a4511', name: "datalist" }), h("input", { key: '0cc864289e5c44b2dac2521af90b00dfa1d0625c', type: "range", class: "form-range-input", id: this.rangeId, min: this.min, max: this.max, value: value, onInput: this.onInput, list: datalist, "aria-label": "Valeur", tabindex: "0", disabled: this.disabled }), h("label", { key: '97c50d5a81be438d34f23223ef1e5acdafcbc1b2', class: "form-range-label" }, "Valeur"), h("div", { key: '92568d77bdbb044f66f0f5557ba81673836bd433', class: "form-range-progress" })), this.showTick && (h("road-icon", { key: '2587580ec2c19de6d2cf799e4a39bd02c555d19a', icon: navigationAddMoreSolid, class: "ml-8", size: "sm" })))));
|
|
106
106
|
}
|
|
107
107
|
static get is() { return "road-range"; }
|
|
108
108
|
static get encapsulation() { return "scoped"; }
|
|
@@ -37,7 +37,7 @@ export class Rating {
|
|
|
37
37
|
const sizeRatingStarsClass = this.size !== undefined ? `rating-stars rating-stars--${this.size}` : 'rating-stars';
|
|
38
38
|
const sizeRatingNumberClass = this.size !== undefined ? `rating-number rating-number--${this.size}` : 'rating-number';
|
|
39
39
|
const readOnly = this.readonly == true ? `readonly` : '';
|
|
40
|
-
return (h(Host, { key: '
|
|
40
|
+
return (h(Host, { key: '85efd8ef2ccfcecd3740e72a5ba7ce4760e0d9d6' }, h("div", { key: 'eab49904c7777e7f760d8ea79d970a76f0e1e32d', class: `${sizeRatingStarsClass}` }, [...Array(rate)].map(() => h("road-icon", { icon: star, size: "sm", color: "warning" })), [...Array(rateDecimale)].map(() => h("road-icon", { icon: starHalfColor, size: "sm", class: "rating-star" })), [...Array(5 - rate - rateDecimale)].map(() => h("road-icon", { icon: star, size: "sm", class: "rating-star" }))), this.readonly == false && this.showreviews && h("a", { key: 'd63c93743802e7fd5cb49c972bc39802eb6ee586', class: `${sizeRatingNumberClass}`, href: this.url }, "(", this.reviews, this.reviewsText && ` ${this.reviewsText}`, ")"), this.readonly == true && this.showreviews && h("road-label", { key: '57ca56a99dfa88b79b242a6b1ab92c08596bd0a8', class: `${sizeRatingNumberClass} ${readOnly}` }, "(", this.reviews, this.reviewsText && ` ${this.reviewsText}`, ")")));
|
|
41
41
|
}
|
|
42
42
|
static get is() { return "road-rating"; }
|
|
43
43
|
static get encapsulation() { return "shadow"; }
|
|
@@ -4,7 +4,7 @@ import { Host, h } from "@stencil/core";
|
|
|
4
4
|
*/
|
|
5
5
|
export class Row {
|
|
6
6
|
render() {
|
|
7
|
-
return (h(Host, { key: '
|
|
7
|
+
return (h(Host, { key: '6ee0a00bc04c580a827d19c99ec3e818d6def582' }, h("slot", { key: '6ad15bc804554c3e72dec334b40d7d28e277e92f' })));
|
|
8
8
|
}
|
|
9
9
|
static get is() { return "road-row"; }
|
|
10
10
|
static get encapsulation() { return "shadow"; }
|
|
@@ -52,10 +52,10 @@ export class SegmentedButton {
|
|
|
52
52
|
render() {
|
|
53
53
|
const { tabIndex, selected, tab } = this;
|
|
54
54
|
const sizeClass = this.size !== undefined ? `btn-${this.size}` : '';
|
|
55
|
-
return (h(Host, { key: '
|
|
55
|
+
return (h(Host, { key: '6433591d09a54719de64718201a2a51ad79ae28b', onClick: this.onClick, onKeyup: this.onKeyUp, role: "tab", tabindex: tabIndex, "aria-selected": selected ? 'true' : null, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
|
|
56
56
|
'tab-selected': selected,
|
|
57
57
|
[`${sizeClass}`]: true,
|
|
58
|
-
} }, h("span", { key: '
|
|
58
|
+
} }, h("span", { key: 'f3e0bf769c686b17171afe0130ac5e4736aa2ff4', tabIndex: -1, class: "button-native", part: "native", "aria-hidden": "true" }, h("slot", { key: '496201687fa4e9138d1a817215c4c90255f7232c' }))));
|
|
59
59
|
}
|
|
60
60
|
static get is() { return "road-segmented-button"; }
|
|
61
61
|
static get encapsulation() { return "shadow"; }
|
|
@@ -18,7 +18,7 @@ export class ButtonBar {
|
|
|
18
18
|
this.selectedTabChanged();
|
|
19
19
|
}
|
|
20
20
|
render() {
|
|
21
|
-
return (h(Host, { key: '
|
|
21
|
+
return (h(Host, { key: 'afd642615f117aadf941aa07e1006b87bc7af6ee', role: "tablist" }, h("slot", { key: '331b574bb64568dc247cd9789232d4dffebec937' })));
|
|
22
22
|
}
|
|
23
23
|
static get is() { return "road-segmented-button-bar"; }
|
|
24
24
|
static get encapsulation() { return "shadow"; }
|
|
@@ -86,7 +86,7 @@ export class Tabs {
|
|
|
86
86
|
return Array.from(this.el.querySelectorAll('road-tab'));
|
|
87
87
|
}
|
|
88
88
|
render() {
|
|
89
|
-
return (h(Host, { key: '
|
|
89
|
+
return (h(Host, { key: '0fe1c4ddf4b2d269ed66c456e411263d8de29c3f', onRoadSegmentedButtonClick: this.onTabClicked }, h("slot", { key: 'da756417993e0157ed3a7a4dda96abcdfc3d6c05', name: "top" }), h("slot", { key: '37678b31b482735d1a1cc5ed2c37f4a8d4d7ee4b' })));
|
|
90
90
|
}
|
|
91
91
|
static get is() { return "road-segmented-buttons"; }
|
|
92
92
|
static get encapsulation() { return "shadow"; }
|
|
@@ -92,7 +92,7 @@ export class Select {
|
|
|
92
92
|
const labelId = this.selectId + '-label';
|
|
93
93
|
const hasValueClass = this.value && this.value !== '' ? 'has-value' : '';
|
|
94
94
|
const isInvalidClass = this.error !== undefined && this.error !== '' ? 'is-invalid' : '';
|
|
95
|
-
return (h(Host, { key: '
|
|
95
|
+
return (h(Host, { key: 'f587a8414c05e32346f937765d28bce047615a39', class: this.sizes && `select-${this.sizes}` }, h("select", { key: 'e7b292e72914e7dacf0291609a0cb1d65eb0a3fa', class: `form-select ${hasValueClass} ${isInvalidClass}`, id: this.selectId, "aria-disabled": this.disabled ? 'true' : null, autoFocus: this.autofocus, disabled: this.disabled, name: this.name, required: this.required, size: this.size, onChange: this.onChange, onFocus: this.onFocus, onBlur: this.onBlur }, h("option", { key: '24d8ce15efedece915747955ae8a0842e5578e54', selected: !this.value, disabled: true, hidden: true, style: { display: 'none' }, value: "" }), this.options && this.options.map(option => (h("option", { value: option.value, selected: this.value !== null && option.value == this.value }, option.label)))), h("label", { key: '128f0f39050595aac1833f642b2742429a4c96cd', class: "form-select-label", id: labelId, htmlFor: this.selectId }, this.label), this.error && this.error !== '' && h("p", { key: '94fffc12a2be58bf311b4588ead8fa0331e0c3ca', class: "invalid-feedback" }, this.error)));
|
|
96
96
|
}
|
|
97
97
|
static get is() { return "road-select"; }
|
|
98
98
|
static get encapsulation() { return "scoped"; }
|
|
@@ -107,8 +107,8 @@ export class SelectFilter {
|
|
|
107
107
|
const options = this.filteredOptions;
|
|
108
108
|
const isActive = this.isActive ? 'true' : 'false';
|
|
109
109
|
const notActive = this.isActive ? '' : 'not-active';
|
|
110
|
-
return (h(Host, { key: '
|
|
111
|
-
h("ul", { key: '
|
|
110
|
+
return (h(Host, { key: 'ff1cb375e4108fbfe44f307ad6d00be4fec03430', "is-active": isActive }, h("slot", { key: '987d24b1f5ad17ef8a0e83e3165d1e137bf4d6e5' }), this.isOpen &&
|
|
111
|
+
h("ul", { key: '41e10aed226c8131e4313ea33da1ea6c79969b80', class: `${notActive} select-filter-list`, role: "listbox", onMouseLeave: this.handleMouseLeave }, options.map((option, idx) => (h("li", { class: `select-filter-item ${this.activeIndex === idx ? 'active' : ''}`, role: "option", "aria-selected": this.activeIndex === idx ? 'true' : 'false', onClick: () => this.handleOptionClick(option.item.value, option.item.label.replace(/(<([^>]+)>)/gi, "")), onMouseOver: () => this.handleOptionMouseOver(idx), innerHTML: option.item.label, tabindex: this.activeIndex === idx ? 0 : -1 }))))));
|
|
112
112
|
}
|
|
113
113
|
static get is() { return "road-select-filter"; }
|
|
114
114
|
static get encapsulation() { return "scoped"; }
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { h } from "@stencil/core";
|
|
2
2
|
export class Skeleton {
|
|
3
3
|
render() {
|
|
4
|
-
return (h("span", { key: '
|
|
4
|
+
return (h("span", { key: 'cf58a469e049fce0303bf49ec1c86233b1b4e305' }, "\u00A0"));
|
|
5
5
|
}
|
|
6
6
|
static get is() { return "road-skeleton"; }
|
|
7
7
|
static get encapsulation() { return "shadow"; }
|
|
@@ -13,7 +13,7 @@ export class Spinner {
|
|
|
13
13
|
render() {
|
|
14
14
|
const sizeClass = this.size !== undefined ? `spinner spinner--${this.size}` : 'spinner';
|
|
15
15
|
const colorClass = this.size !== undefined ? `spinner-circle spinner-circle--${this.color}` : 'spinner-circle';
|
|
16
|
-
return (h("svg", { key: '
|
|
16
|
+
return (h("svg", { key: '3e1e5094311da649229f7fa9b3bc7b12d5251cda', class: `${sizeClass}`, viewBox: "25 25 50 50" }, h("circle", { key: '6257e336cdf32cfa80973f4466eb9adcbf7fa239', class: `${colorClass}`, cx: "50", cy: "50", r: "20" })));
|
|
17
17
|
}
|
|
18
18
|
static get is() { return "road-spinner"; }
|
|
19
19
|
static get encapsulation() { return "shadow"; }
|
|
@@ -70,11 +70,11 @@ export class Switch {
|
|
|
70
70
|
}
|
|
71
71
|
render() {
|
|
72
72
|
const labelId = this.switchId + '-label';
|
|
73
|
-
const textLabel = h("label", { key: '
|
|
73
|
+
const textLabel = h("label", { key: 'a94f02e2edb416513ef6285b89c221a8fe1d5884', class: "form-switch-label", id: labelId, htmlFor: this.switchId }, this.label);
|
|
74
74
|
const colorClass = this.color !== undefined ? 'form-switch-' + this.color : '';
|
|
75
75
|
const isSpacedClass = this.isSpaced && 'form-switch-spaced';
|
|
76
76
|
const rightSwitchClass = this.hasLeftLabel ? 'form-switch-right' : '';
|
|
77
|
-
return (h(Host, { key: '
|
|
77
|
+
return (h(Host, { key: '5f93e9f0cd857f38d2f70152774b2ae0239ed342' }, h("input", { key: '42528718ca88666d428048a7477ac9ba611f12aa', class: "form-switch-input", type: "checkbox", id: this.switchId, name: this.name, checked: this.checked, disabled: this.disabled, value: this.value, "aria-checked": `${this.checked}`, "aria-disabled": this.disabled ? 'true' : null, "aria-labelledby": labelId, onClick: this.onClick, onFocus: this.onFocus, onBlur: this.onBlur }), h("label", { key: '0d5c0ef117c9235387e47b628c9036c3844cb9be', class: `form-switch-label ${isSpacedClass} ${colorClass}`, htmlFor: this.switchId }, this.hasLeftLabel && textLabel, h("div", { key: '0d16ade7abfe28bae3f7d756b89799aa737dd653', class: `form-switch-lever ${rightSwitchClass}`, "data-off": this.off, "data-on": this.on }), this.hasLeftLabel ? '' : textLabel)));
|
|
78
78
|
}
|
|
79
79
|
static get is() { return "road-switch"; }
|
|
80
80
|
static get encapsulation() { return "scoped"; }
|
|
@@ -21,9 +21,9 @@ export class Tab {
|
|
|
21
21
|
}
|
|
22
22
|
render() {
|
|
23
23
|
const { tab, active } = this;
|
|
24
|
-
return (h(Host, { key: '
|
|
24
|
+
return (h(Host, { key: '4559e255fa71417fe4fcd713b91c2186d55653c0', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
|
|
25
25
|
'tab-hidden': !active,
|
|
26
|
-
} }, h("slot", { key: '
|
|
26
|
+
} }, h("slot", { key: '3ec299696cf719bf911fe0c27befb34d8de3afcd' })));
|
|
27
27
|
}
|
|
28
28
|
static get is() { return "road-tab"; }
|
|
29
29
|
static get encapsulation() { return "shadow"; }
|
|
@@ -36,11 +36,11 @@ export class TabBar {
|
|
|
36
36
|
}
|
|
37
37
|
render() {
|
|
38
38
|
const { expand, center, secondary } = this;
|
|
39
|
-
return (h(Host, { key: '
|
|
39
|
+
return (h(Host, { key: '793bbb41d74e6e4dd0a7a5ee67b418fd59f61c7c', role: "tablist", class: {
|
|
40
40
|
'tab-expand': expand,
|
|
41
41
|
'tab-center': center,
|
|
42
42
|
'tab-secondary': secondary,
|
|
43
|
-
} }, h("slot", { key: '
|
|
43
|
+
} }, h("slot", { key: '4e2713a1a01ed7fcd8503a8231223d2793e8f808' })));
|
|
44
44
|
}
|
|
45
45
|
static get is() { return "road-tab-bar"; }
|
|
46
46
|
static get encapsulation() { return "shadow"; }
|
|
@@ -71,7 +71,7 @@ export class TabButton {
|
|
|
71
71
|
rel,
|
|
72
72
|
target,
|
|
73
73
|
};
|
|
74
|
-
return (h(Host, { key: '
|
|
74
|
+
return (h(Host, { key: '4766bf5988d063443b6a7958fe1c18ab20b4392d', onClick: (ev) => !disabled && this.onClick(ev), onKeyup: (ev) => !disabled && this.onKeyUp(ev), role: "tab", tabindex: disabled ? -1 : tabIndex, "aria-selected": selected ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
|
|
75
75
|
'tab-selected': selected,
|
|
76
76
|
'tab-has-label': hasLabel,
|
|
77
77
|
'tab-has-icon': hasIcon,
|
|
@@ -79,7 +79,7 @@ export class TabButton {
|
|
|
79
79
|
'tab-has-icon-only': hasIcon && !hasLabel,
|
|
80
80
|
[`tab-layout-${layout}`]: true,
|
|
81
81
|
'tab-disabled': disabled, // Classe CSS pour les styles désactivés
|
|
82
|
-
} }, h("a", Object.assign({ key: '
|
|
82
|
+
} }, h("a", Object.assign({ key: 'f11c00761d9057129770874f321f3afaa18a53e0' }, attrs, { tabIndex: -1, class: "button-native", part: "native" }), h("span", { key: '51c886bf60aa0544124c0e2cb19b20d9e0bb720e', class: "button-inner" }, h("slot", { key: '6f7d6d16789eb4db922fd3b49cbbe2df68fc71a1' })))));
|
|
83
83
|
}
|
|
84
84
|
static get is() { return "road-tab-button"; }
|
|
85
85
|
static get encapsulation() { return "shadow"; }
|
|
@@ -4,7 +4,7 @@ import { h } from "@stencil/core";
|
|
|
4
4
|
*/
|
|
5
5
|
export class Table {
|
|
6
6
|
render() {
|
|
7
|
-
return (h("slot", { key: '
|
|
7
|
+
return (h("slot", { key: '82316326496fee8116dbdc08996a51aa46848cfe' }));
|
|
8
8
|
}
|
|
9
9
|
static get is() { return "road-table"; }
|
|
10
10
|
static get encapsulation() { return "scoped"; }
|