@ukic/web-components 3.17.0 → 3.18.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/core.cjs.js +1 -1
- package/dist/cjs/ic-alert.cjs.entry.js +6 -2
- package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +28 -16
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +23 -2
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +3 -4
- package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-skeleton.cjs.entry.js +20 -5
- package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-step.cjs.entry.js +16 -14
- package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-stepper.cjs.entry.js +24 -4
- package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +4 -4
- package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
- package/dist/cjs/ic-theme.cjs.entry.js +1 -1
- package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +5 -5
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-toggle-button.cjs.entry.js +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/ic-alert/ic-alert.js +26 -2
- package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
- package/dist/collection/components/ic-alert/ic-alert.stories.js +15 -0
- package/dist/collection/components/ic-button/ic-button.css +12 -0
- package/dist/collection/components/ic-button/ic-button.js +3 -3
- package/dist/collection/components/ic-button/ic-button.js.map +1 -1
- package/dist/collection/components/ic-button/ic-button.stories.js +251 -0
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +25 -2
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +16 -8
- package/dist/collection/components/ic-data-list/ic-data-list.stories.js +6 -0
- package/dist/collection/components/ic-data-row/ic-data-row.css +1 -1
- package/dist/collection/components/ic-input-validation/ic-input-validation.js +7 -8
- package/dist/collection/components/ic-input-validation/ic-input-validation.js.map +1 -1
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +29 -14
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
- package/dist/collection/components/ic-menu/ic-menu.css +1 -1
- package/dist/collection/components/ic-select/ic-select_(multi).stories.js +2 -2
- package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +1 -1
- package/dist/collection/components/ic-select/ic-select_(single).stories.js +3 -3
- package/dist/collection/components/ic-skeleton/ic-skeleton.js +58 -5
- package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
- package/dist/collection/components/ic-skeleton/ic-skeleton.stories.js +4 -3
- package/dist/collection/components/ic-step/ic-step.css +16 -7
- package/dist/collection/components/ic-step/ic-step.js +19 -14
- package/dist/collection/components/ic-step/ic-step.js.map +1 -1
- package/dist/collection/components/ic-stepper/ic-stepper.js +24 -4
- package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
- package/dist/collection/components/ic-stepper/ic-stepper.stories.js +12 -0
- package/dist/collection/components/ic-switch/ic-switch.js +4 -4
- package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
- package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
- package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
- package/dist/collection/components/ic-theme/ic-theme.js +1 -1
- package/dist/collection/components/ic-toast/ic-toast.js +5 -5
- package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
- package/dist/components/ic-alert.js +7 -2
- package/dist/components/ic-alert.js.map +1 -1
- package/dist/components/ic-button2.js +4 -4
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-checkbox-group.js +24 -2
- package/dist/components/ic-checkbox-group.js.map +1 -1
- package/dist/components/ic-data-row.js +1 -1
- package/dist/components/ic-data-row.js.map +1 -1
- package/dist/components/ic-input-validation2.js +4 -5
- package/dist/components/ic-input-validation2.js.map +1 -1
- package/dist/components/ic-loading-indicator2.js +27 -13
- package/dist/components/ic-loading-indicator2.js.map +1 -1
- package/dist/components/ic-menu2.js +1 -1
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-skeleton.js +23 -6
- package/dist/components/ic-skeleton.js.map +1 -1
- package/dist/components/ic-step.js +17 -15
- package/dist/components/ic-step.js.map +1 -1
- package/dist/components/ic-stepper.js +24 -4
- package/dist/components/ic-stepper.js.map +1 -1
- package/dist/components/ic-switch.js +4 -4
- package/dist/components/ic-tab-context.js +1 -1
- package/dist/components/ic-tab-group.js +2 -2
- package/dist/components/ic-tab-panel.js +2 -2
- package/dist/components/ic-theme.js +1 -1
- package/dist/components/ic-toast-region.js +1 -1
- package/dist/components/ic-toast.js +5 -5
- package/dist/components/ic-toggle-button-group.js +2 -2
- package/dist/components/ic-toggle-button.js +2 -2
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/p-049839cd.entry.js +2 -0
- package/dist/core/p-049839cd.entry.js.map +1 -0
- package/dist/core/p-0648dd8e.entry.js +2 -0
- package/dist/core/p-0648dd8e.entry.js.map +1 -0
- package/dist/core/{p-f51c609d.entry.js → p-177d3c2f.entry.js} +2 -2
- package/dist/core/{p-5254a078.entry.js → p-1be17f22.entry.js} +2 -2
- package/dist/core/{p-7d0d85c4.entry.js → p-4631ac1b.entry.js} +2 -2
- package/dist/core/{p-30312243.entry.js → p-49444c33.entry.js} +2 -2
- package/dist/core/p-49444c33.entry.js.map +1 -0
- package/dist/core/p-5d2efd2d.entry.js +2 -0
- package/dist/core/p-5d2efd2d.entry.js.map +1 -0
- package/dist/core/{p-b59504f1.entry.js → p-72e5eb70.entry.js} +2 -2
- package/dist/core/{p-b59504f1.entry.js.map → p-72e5eb70.entry.js.map} +1 -1
- package/dist/core/{p-3636be4f.entry.js → p-7dff646d.entry.js} +2 -2
- package/dist/core/p-a5295f66.entry.js +2 -0
- package/dist/core/p-a5295f66.entry.js.map +1 -0
- package/dist/core/{p-3d23ce54.entry.js → p-a61fa6ad.entry.js} +2 -2
- package/dist/core/{p-53740194.entry.js → p-a8310dfd.entry.js} +2 -2
- package/dist/core/p-a8310dfd.entry.js.map +1 -0
- package/dist/core/{p-afbba548.entry.js → p-af728534.entry.js} +2 -2
- package/dist/core/{p-04cb17d7.entry.js → p-b9459ba2.entry.js} +2 -2
- package/dist/core/{p-adde6c66.entry.js → p-d376858f.entry.js} +2 -2
- package/dist/core/{p-4d3b219c.entry.js → p-de630a9a.entry.js} +2 -2
- package/dist/core/p-e82d9a6f.entry.js +2 -0
- package/dist/core/p-e82d9a6f.entry.js.map +1 -0
- package/dist/core/{p-b83a736d.entry.js → p-ed3aaa3a.entry.js} +2 -2
- package/dist/core/p-ed3aaa3a.entry.js.map +1 -0
- package/dist/esm/core.js +1 -1
- package/dist/esm/ic-alert.entry.js +6 -2
- package/dist/esm/ic-alert.entry.js.map +1 -1
- package/dist/esm/ic-button_3.entry.js +28 -16
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +23 -2
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-data-row.entry.js +1 -1
- package/dist/esm/ic-data-row.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-input-label_2.entry.js +3 -4
- package/dist/esm/ic-input-label_2.entry.js.map +1 -1
- package/dist/esm/ic-skeleton.entry.js +20 -5
- package/dist/esm/ic-skeleton.entry.js.map +1 -1
- package/dist/esm/ic-step.entry.js +17 -15
- package/dist/esm/ic-step.entry.js.map +1 -1
- package/dist/esm/ic-stepper.entry.js +24 -4
- package/dist/esm/ic-stepper.entry.js.map +1 -1
- package/dist/esm/ic-switch.entry.js +4 -4
- package/dist/esm/ic-tab-context.entry.js +1 -1
- package/dist/esm/ic-tab-group.entry.js +2 -2
- package/dist/esm/ic-tab-panel.entry.js +2 -2
- package/dist/esm/ic-theme.entry.js +1 -1
- package/dist/esm/ic-toast-region.entry.js +1 -1
- package/dist/esm/ic-toast.entry.js +5 -5
- package/dist/esm/ic-toggle-button-group.entry.js +2 -2
- package/dist/esm/ic-toggle-button.entry.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-alert/ic-alert.d.ts +4 -0
- package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +3 -0
- package/dist/types/components/ic-input-validation/ic-input-validation.d.ts +1 -1
- package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +4 -1
- package/dist/types/components/ic-skeleton/ic-skeleton.d.ts +8 -0
- package/dist/types/components/ic-step/ic-step.d.ts +3 -0
- package/dist/types/components/ic-stepper/ic-stepper.d.ts +1 -0
- package/dist/types/components.d.ts +28 -4
- package/hydrate/index.js +151 -71
- package/hydrate/index.mjs +151 -71
- package/package.json +2 -2
- package/vscode-data.json +13 -1
- package/dist/core/p-1f41818b.entry.js +0 -2
- package/dist/core/p-1f41818b.entry.js.map +0 -1
- package/dist/core/p-30312243.entry.js.map +0 -1
- package/dist/core/p-33e35173.entry.js +0 -2
- package/dist/core/p-33e35173.entry.js.map +0 -1
- package/dist/core/p-34407b13.entry.js +0 -2
- package/dist/core/p-34407b13.entry.js.map +0 -1
- package/dist/core/p-42d35fc4.entry.js +0 -2
- package/dist/core/p-42d35fc4.entry.js.map +0 -1
- package/dist/core/p-53740194.entry.js.map +0 -1
- package/dist/core/p-b83a736d.entry.js.map +0 -1
- package/dist/core/p-cce398e1.entry.js +0 -2
- package/dist/core/p-cce398e1.entry.js.map +0 -1
- /package/dist/core/{p-f51c609d.entry.js.map → p-177d3c2f.entry.js.map} +0 -0
- /package/dist/core/{p-5254a078.entry.js.map → p-1be17f22.entry.js.map} +0 -0
- /package/dist/core/{p-7d0d85c4.entry.js.map → p-4631ac1b.entry.js.map} +0 -0
- /package/dist/core/{p-3636be4f.entry.js.map → p-7dff646d.entry.js.map} +0 -0
- /package/dist/core/{p-3d23ce54.entry.js.map → p-a61fa6ad.entry.js.map} +0 -0
- /package/dist/core/{p-afbba548.entry.js.map → p-af728534.entry.js.map} +0 -0
- /package/dist/core/{p-04cb17d7.entry.js.map → p-b9459ba2.entry.js.map} +0 -0
- /package/dist/core/{p-adde6c66.entry.js.map → p-d376858f.entry.js.map} +0 -0
- /package/dist/core/{p-4d3b219c.entry.js.map → p-de630a9a.entry.js.map} +0 -0
|
@@ -5,6 +5,8 @@ const defaultArgs = {
|
|
|
5
5
|
additionalFieldDisplay: "dynamic",
|
|
6
6
|
additionalFieldSlot: "additional-field",
|
|
7
7
|
checked: false,
|
|
8
|
+
checkboxDisabled: false,
|
|
9
|
+
checkboxSize: "medium",
|
|
8
10
|
disabled: false,
|
|
9
11
|
dynamicText: "Dynamic text",
|
|
10
12
|
groupLabel: "Checkbox group label",
|
|
@@ -43,7 +45,7 @@ export const Default = {
|
|
|
43
45
|
<ic-checkbox
|
|
44
46
|
value="valueName3"
|
|
45
47
|
label="Unselected / Disabled"
|
|
46
|
-
|
|
48
|
+
disabled
|
|
47
49
|
></ic-checkbox>
|
|
48
50
|
</ic-checkbox-group>
|
|
49
51
|
`,
|
|
@@ -76,26 +78,22 @@ export const Required = {
|
|
|
76
78
|
|
|
77
79
|
export const Disabled = {
|
|
78
80
|
render: () => html`
|
|
79
|
-
<ic-checkbox-group label="This is a label" name="group1"
|
|
81
|
+
<ic-checkbox-group label="This is a label" name="group1" disabled>
|
|
80
82
|
<ic-checkbox
|
|
81
83
|
value="valueName1"
|
|
82
84
|
label="Unselected / Disabled 1"
|
|
83
|
-
Disabled
|
|
84
85
|
></ic-checkbox>
|
|
85
86
|
<ic-checkbox
|
|
86
87
|
value="valueName2"
|
|
87
88
|
label="Unselected / Disabled 2"
|
|
88
|
-
Disabled
|
|
89
89
|
></ic-checkbox>
|
|
90
90
|
<ic-checkbox
|
|
91
91
|
value="valueName3"
|
|
92
92
|
label="Unselected / Disabled 3"
|
|
93
|
-
Disabled
|
|
94
93
|
></ic-checkbox>
|
|
95
94
|
<ic-checkbox
|
|
96
95
|
value="valueName4"
|
|
97
96
|
label="Selected / Disabled"
|
|
98
|
-
Disabled
|
|
99
97
|
checked
|
|
100
98
|
></ic-checkbox>
|
|
101
99
|
</ic-checkbox-group>
|
|
@@ -872,10 +870,10 @@ export const Playground = {
|
|
|
872
870
|
theme=${args.theme}
|
|
873
871
|
>
|
|
874
872
|
<ic-checkbox
|
|
875
|
-
disabled=${args.
|
|
873
|
+
disabled=${args.checkboxDisabled}
|
|
876
874
|
label=${args.label}
|
|
877
875
|
value=${args.value}
|
|
878
|
-
size=${args.
|
|
876
|
+
size=${args.checkboxSize}
|
|
879
877
|
hide-label=${args.hideLabel}
|
|
880
878
|
indeterminate=${args.indeterminate}
|
|
881
879
|
checked=${checked}
|
|
@@ -889,6 +887,8 @@ export const Playground = {
|
|
|
889
887
|
label="What's your favourite type of coffee?"
|
|
890
888
|
></ic-text-field>
|
|
891
889
|
</ic-checkbox>
|
|
890
|
+
<ic-checkbox value="valueName2" label="Checkbox 2"></ic-checkbox>
|
|
891
|
+
<ic-checkbox value="valueName3" label="Checkbox 3"></ic-checkbox>
|
|
892
892
|
</ic-checkbox-group>`;
|
|
893
893
|
},
|
|
894
894
|
|
|
@@ -919,6 +919,14 @@ export const Playground = {
|
|
|
919
919
|
},
|
|
920
920
|
},
|
|
921
921
|
|
|
922
|
+
checkboxSize: {
|
|
923
|
+
options: ["medium", "large", "small"],
|
|
924
|
+
|
|
925
|
+
control: {
|
|
926
|
+
type: inlineRadioSelector,
|
|
927
|
+
},
|
|
928
|
+
},
|
|
929
|
+
|
|
922
930
|
validationAriaLive: {
|
|
923
931
|
options: ["polite", "assertive", "off"],
|
|
924
932
|
|
|
@@ -155,6 +155,7 @@ export const IconButton = {
|
|
|
155
155
|
variant="icon-tertiary"
|
|
156
156
|
aria-label="Edit"
|
|
157
157
|
slot="end-component"
|
|
158
|
+
size="small"
|
|
158
159
|
>
|
|
159
160
|
<svg
|
|
160
161
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -173,6 +174,7 @@ export const IconButton = {
|
|
|
173
174
|
variant="icon-tertiary"
|
|
174
175
|
aria-label="Edit"
|
|
175
176
|
slot="end-component"
|
|
177
|
+
size="small"
|
|
176
178
|
>
|
|
177
179
|
<svg
|
|
178
180
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -191,6 +193,7 @@ export const IconButton = {
|
|
|
191
193
|
variant="icon-tertiary"
|
|
192
194
|
aria-label="Edit"
|
|
193
195
|
slot="end-component"
|
|
196
|
+
size="small"
|
|
194
197
|
>
|
|
195
198
|
<svg
|
|
196
199
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -209,6 +212,7 @@ export const IconButton = {
|
|
|
209
212
|
variant="icon-tertiary"
|
|
210
213
|
aria-label="Edit"
|
|
211
214
|
slot="end-component"
|
|
215
|
+
size="small"
|
|
212
216
|
>
|
|
213
217
|
<svg
|
|
214
218
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -236,6 +240,7 @@ export const IconButton = {
|
|
|
236
240
|
variant="icon-tertiary"
|
|
237
241
|
aria-label="Edit"
|
|
238
242
|
slot="end-component"
|
|
243
|
+
size="small"
|
|
239
244
|
>
|
|
240
245
|
<svg
|
|
241
246
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -502,6 +507,7 @@ export const Playground = {
|
|
|
502
507
|
variant="icon-tertiary"
|
|
503
508
|
aria-label="Edit"
|
|
504
509
|
slot=${args.endCompSlot}
|
|
510
|
+
size="small"
|
|
505
511
|
>
|
|
506
512
|
<svg
|
|
507
513
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -3,7 +3,7 @@ import { IcInformationStatus, } from "../../utils/types";
|
|
|
3
3
|
import errorIcon from "../../assets/error-icon.svg";
|
|
4
4
|
import successIcon from "../../assets/success-icon.svg";
|
|
5
5
|
import warningIcon from "../../assets/warning-icon.svg";
|
|
6
|
-
import { getInputValidationTextID
|
|
6
|
+
import { getInputValidationTextID } from "../../utils/helpers";
|
|
7
7
|
const ICON = {
|
|
8
8
|
[IcInformationStatus.Warning]: warningIcon,
|
|
9
9
|
[IcInformationStatus.Error]: errorIcon,
|
|
@@ -37,20 +37,19 @@ export class InputValidation {
|
|
|
37
37
|
}, 200); // Delay to help ensure screen readers detect change
|
|
38
38
|
}
|
|
39
39
|
componentDidLoad() {
|
|
40
|
-
onComponentRequiredPropUndefined([{ prop: this.message, propName: "message" }], "Input Validation");
|
|
41
40
|
this.messageEl.textContent = INVISIBLE_CHAR;
|
|
42
41
|
}
|
|
43
42
|
render() {
|
|
44
43
|
const { ariaLiveMode, fullWidth, status, message } = this;
|
|
45
44
|
const displayIcon = status !== "" ? ICON[status] : "";
|
|
46
|
-
return (h(Host, { key: '
|
|
45
|
+
return (h(Host, { key: '2314e8e4f655e95cee33a0717322b65a5077cc3a', class: {
|
|
47
46
|
[`ic-input-validation-${status}`]: status !== "",
|
|
48
47
|
"ic-input-validation-full-width": !!fullWidth,
|
|
49
48
|
"ic-input-validation-with-status": status !== "",
|
|
50
|
-
} }, displayIcon !== "" && (h("span", { key: '
|
|
49
|
+
} }, displayIcon !== "" && (h("span", { key: '171000e63f0d8ea96cd34e283700cfa641795419', class: {
|
|
51
50
|
"status-icon": true,
|
|
52
51
|
[`icon-${status}`]: true,
|
|
53
|
-
}, innerHTML: displayIcon })), h("ic-typography", { key: '
|
|
52
|
+
}, innerHTML: displayIcon })), h("ic-typography", { key: '87c722d45b0b7c02602f65b418748b8fe890fed8', variant: "caption", class: "statustext" }, h("span", { key: 'd4440c3115b085b471b0de094cb89f9e775df5cb', id: this.for && getInputValidationTextID(this.for) }, message), h("span", { key: '3e1f4328c6ae86a01eccc0bc99a26e37af3aa4c4', ref: (el) => (this.messageEl = el), class: "sr-only", "aria-live": ariaLiveMode })), h("slot", { key: 'b042762de928907af3e92882ae2f6068a3c2808d', name: "validation-message-adornment" })));
|
|
54
53
|
}
|
|
55
54
|
static get is() { return "ic-input-validation"; }
|
|
56
55
|
static get originalStyleUrls() {
|
|
@@ -135,11 +134,11 @@ export class InputValidation {
|
|
|
135
134
|
"mutable": false,
|
|
136
135
|
"complexType": {
|
|
137
136
|
"original": "string",
|
|
138
|
-
"resolved": "string",
|
|
137
|
+
"resolved": "string | undefined",
|
|
139
138
|
"references": {}
|
|
140
139
|
},
|
|
141
|
-
"required":
|
|
142
|
-
"optional":
|
|
140
|
+
"required": false,
|
|
141
|
+
"optional": true,
|
|
143
142
|
"docs": {
|
|
144
143
|
"tags": [],
|
|
145
144
|
"text": "The validation message to display."
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ic-input-validation.js","sourceRoot":"","sources":["../../../src/components/ic-input-validation/ic-input-validation.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEzE,OAAO,EAEL,mBAAmB,GAEpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,WAAW,MAAM,+BAA+B,CAAC;AACxD,OAAO,WAAW,MAAM,+BAA+B,CAAC;AAExD,OAAO,
|
|
1
|
+
{"version":3,"file":"ic-input-validation.js","sourceRoot":"","sources":["../../../src/components/ic-input-validation/ic-input-validation.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEzE,OAAO,EAEL,mBAAmB,GAEpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,WAAW,MAAM,+BAA+B,CAAC;AACxD,OAAO,WAAW,MAAM,+BAA+B,CAAC;AAExD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,IAAI,GAAG;IACX,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,WAAW;IAC1C,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,SAAS;IACtC,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,WAAW;CAC3C,CAAC;AACF,MAAM,cAAc,GAAG,QAAQ,CAAC;AAEhC;;GAEG;AAKH,MAAM,OAAO,eAAe;IAJ5B;QASE;;WAEG;QACK,iBAAY,GAAgB,QAAQ,CAAC;QAO7C;;WAEG;QACK,cAAS,GAAa,KAAK,CAAC;QAgBpC;;WAEG;QACK,WAAM,GAAgC,EAAE,CAAC;KAyClD;IArDC,mBAAmB,CAAC,QAAgB;QAClC,+BAA+B;QAC/B,2FAA2F;QAC3F,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,cAAc,CAAC;QAC5C,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC;QACxC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,oDAAoD;IAC/D,CAAC;IAOD,gBAAgB;QACd,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,cAAc,CAAC;IAC9C,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC1D,MAAM,WAAW,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,CACL,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,CAAC,uBAAuB,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,EAAE;gBAChD,gCAAgC,EAAE,CAAC,CAAC,SAAS;gBAC7C,iCAAiC,EAAE,MAAM,KAAK,EAAE;aACjD;YAEA,WAAW,KAAK,EAAE,IAAI,CACrB,6DACE,KAAK,EAAE;oBACL,aAAa,EAAE,IAAI;oBACnB,CAAC,QAAQ,MAAM,EAAE,CAAC,EAAE,IAAI;iBACzB,EACD,SAAS,EAAE,WAAW,GACtB,CACH;YACD,sEAAe,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,YAAY;gBACjD,6DAAM,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,IACrD,OAAO,CACH;gBAEP,6DACE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,EAAqB,CAAC,EACrD,KAAK,EAAC,SAAS,eACJ,YAAY,GACjB,CACM;YAChB,6DAAM,IAAI,EAAC,8BAA8B,GAAQ,CAC5C,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Element, Component, Host, Prop, h, Watch } from \"@stencil/core\";\n\nimport {\n IcAriaLive,\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n} from \"../../utils/types\";\nimport errorIcon from \"../../assets/error-icon.svg\";\nimport successIcon from \"../../assets/success-icon.svg\";\nimport warningIcon from \"../../assets/warning-icon.svg\";\n\nimport { getInputValidationTextID } from \"../../utils/helpers\";\n\nconst ICON = {\n [IcInformationStatus.Warning]: warningIcon,\n [IcInformationStatus.Error]: errorIcon,\n [IcInformationStatus.Success]: successIcon,\n};\nconst INVISIBLE_CHAR = \"\\u200B\";\n\n/**\n * @slot validation-message-adornment - Content will be placed to the right of the validation message.\n */\n@Component({\n tag: \"ic-input-validation\",\n styleUrl: \"ic-input-validation.css\",\n})\nexport class InputValidation {\n private messageEl!: HTMLSpanElement;\n\n @Element() el: HTMLIcInputValidationElement;\n\n /**\n * The ARIA live mode to apply to the message.\n */\n @Prop() ariaLiveMode?: IcAriaLive = \"polite\";\n\n /**\n * The ID of the form element the validation is bound to.\n */\n @Prop() for?: string;\n\n /**\n * If `true`, the input validation will fill the width of the container.\n */\n @Prop() fullWidth?: boolean = false;\n\n /**\n * The validation message to display.\n */\n @Prop() message?: string;\n @Watch(\"message\")\n watchMessageHandler(newValue: string) {\n // Force detectable DOM changes\n // Invisible character used as screen readers can ignore whitespace changes e.g. \"\" and \" \"\n this.messageEl.textContent = INVISIBLE_CHAR;\n setTimeout(() => {\n this.messageEl.textContent = newValue;\n }, 200); // Delay to help ensure screen readers detect change\n }\n\n /**\n * The status of the validation - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() status?: IcInformationStatusOrEmpty = \"\";\n\n componentDidLoad(): void {\n this.messageEl.textContent = INVISIBLE_CHAR;\n }\n\n render() {\n const { ariaLiveMode, fullWidth, status, message } = this;\n const displayIcon = status !== \"\" ? ICON[status!] : \"\";\n return (\n <Host\n class={{\n [`ic-input-validation-${status}`]: status !== \"\",\n \"ic-input-validation-full-width\": !!fullWidth,\n \"ic-input-validation-with-status\": status !== \"\",\n }}\n >\n {displayIcon !== \"\" && (\n <span\n class={{\n \"status-icon\": true,\n [`icon-${status}`]: true,\n }}\n innerHTML={displayIcon}\n />\n )}\n <ic-typography variant=\"caption\" class=\"statustext\">\n <span id={this.for && getInputValidationTextID(this.for)}>\n {message}\n </span>\n {/* Separate aria-live region to avoid flashing due to textContent delay */}\n <span\n ref={(el) => (this.messageEl = el as HTMLSpanElement)}\n class=\"sr-only\"\n aria-live={ariaLiveMode}\n ></span>\n </ic-typography>\n <slot name=\"validation-message-adornment\"></slot>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -16,6 +16,7 @@ export class LoadingIndicator {
|
|
|
16
16
|
r: 0,
|
|
17
17
|
};
|
|
18
18
|
this.clipInnerElement = false;
|
|
19
|
+
this.internalType = "circular";
|
|
19
20
|
/**
|
|
20
21
|
* The description that will be set as the aria-label of the loading indicator when not using a visible label.
|
|
21
22
|
*/
|
|
@@ -51,7 +52,7 @@ export class LoadingIndicator {
|
|
|
51
52
|
*/
|
|
52
53
|
this.theme = "inherit";
|
|
53
54
|
/**
|
|
54
|
-
* The type of indicator, either linear or circular.
|
|
55
|
+
* The type of indicator, either linear or circular. When size is set to 'icon' the type will be set to circular.
|
|
55
56
|
*/
|
|
56
57
|
this.type = "circular";
|
|
57
58
|
this.getLabel = (labelIndex) => new Promise(() => {
|
|
@@ -66,7 +67,7 @@ export class LoadingIndicator {
|
|
|
66
67
|
}, this.labelDuration);
|
|
67
68
|
});
|
|
68
69
|
this.getLabelVariant = () => {
|
|
69
|
-
const width = this.
|
|
70
|
+
const width = this.internalType === "circular" ? this.calculateWidth() : 0;
|
|
70
71
|
if (this.size === "small" || (width && width < 60)) {
|
|
71
72
|
return "label";
|
|
72
73
|
}
|
|
@@ -110,6 +111,12 @@ export class LoadingIndicator {
|
|
|
110
111
|
}
|
|
111
112
|
this.innerElement.style.setProperty("--linear-width", `${proportion * 100}%`);
|
|
112
113
|
};
|
|
114
|
+
this.setInternalType = () => {
|
|
115
|
+
this.internalType = this.type;
|
|
116
|
+
if (this.type == "linear") {
|
|
117
|
+
this.internalType = this.size == "icon" ? "circular" : "linear";
|
|
118
|
+
}
|
|
119
|
+
};
|
|
113
120
|
this.updateLabel = () => {
|
|
114
121
|
if (!this.label)
|
|
115
122
|
return;
|
|
@@ -145,15 +152,19 @@ export class LoadingIndicator {
|
|
|
145
152
|
this.updateLabel();
|
|
146
153
|
}
|
|
147
154
|
handleProgressChange() {
|
|
148
|
-
if (this.
|
|
155
|
+
if (this.internalType === "linear") {
|
|
149
156
|
this.setLinearDeterminateWidth();
|
|
150
157
|
}
|
|
151
158
|
else {
|
|
152
159
|
this.setCircleDimensions();
|
|
153
160
|
}
|
|
154
161
|
}
|
|
162
|
+
handleIconSize() {
|
|
163
|
+
this.setIndicatorDimensions();
|
|
164
|
+
}
|
|
155
165
|
setIndicatorDimensions() {
|
|
156
|
-
|
|
166
|
+
this.setInternalType();
|
|
167
|
+
if (this.internalType === "circular") {
|
|
157
168
|
// Sets the circular indicator line width - accounting for the circle size being altered using the CSS custom property
|
|
158
169
|
const diameter = this.calculateWidth();
|
|
159
170
|
if (this.outerElement && diameter !== this.circularDiameter) {
|
|
@@ -178,25 +189,25 @@ export class LoadingIndicator {
|
|
|
178
189
|
this.setIndicatorDimensions();
|
|
179
190
|
}
|
|
180
191
|
render() {
|
|
181
|
-
const { circularDiameter, circularDimensions: { x, y, r, dashArray, dashOffset }, description, fullWidth, indicatorLabel, innerLabel, label, max, min, monochrome, progress, size, theme,
|
|
182
|
-
return (h(Host, { key: '
|
|
192
|
+
const { circularDiameter, circularDimensions: { x, y, r, dashArray, dashOffset }, description, fullWidth, indicatorLabel, innerLabel, internalType, label, max, min, monochrome, progress, size, theme, } = this;
|
|
193
|
+
return (h(Host, { key: '576bca57e7314a41e887f7f1e258b14563560c46', class: {
|
|
183
194
|
[`ic-theme-${theme}`]: theme !== "inherit",
|
|
184
195
|
"ic-loading-indicator-full-width": fullWidth,
|
|
185
196
|
"ic-loading-indicator-label": !!label,
|
|
186
197
|
"ic-loading-indicator-monochrome": monochrome,
|
|
187
198
|
[`ic-loading-indicator-size-${size}`]: true,
|
|
188
|
-
} }, h("div", { key: '
|
|
189
|
-
[`ic-loading-${
|
|
199
|
+
} }, h("div", { key: '16ff356ffed07fe8136691d8e0753845c2430238', class: "ic-loading-container", part: "ic-loading-container" }, h("div", { key: '5124f9e43b1c0495f1e5d954c289877475a523b3', ref: (el) => (this.outerElement = el), class: {
|
|
200
|
+
[`ic-loading-${internalType}-outer`]: true,
|
|
190
201
|
[progress === undefined ? "indeterminate" : "determinate"]: true,
|
|
191
|
-
}, role: "progressbar", "aria-labelledby": label && size !== "icon" && "ic-loading-label", "aria-label": description, "aria-valuenow": progress, "aria-valuemin": min, "aria-valuemax": max }, h("div", { key: '
|
|
192
|
-
[`ic-loading-${
|
|
202
|
+
}, role: "progressbar", "aria-labelledby": label && size !== "icon" && "ic-loading-label", "aria-label": description, "aria-valuenow": progress, "aria-valuemin": min, "aria-valuemax": max }, h("div", { key: 'c9cf5cacd62bbbe1373aac4d91ac81eea4020377', ref: (el) => (this.innerElement = el), class: {
|
|
203
|
+
[`ic-loading-${internalType}-inner`]: true,
|
|
193
204
|
"inner-label": !!innerLabel,
|
|
194
|
-
} }, innerLabel && size === "small" && (h("ic-typography", { key: '
|
|
205
|
+
} }, innerLabel && size === "small" && (h("ic-typography", { key: '5c5f7a6a38f6b390d60461c245a37117e551f644', variant: "subtitle-small", class: "inner-text" }, innerLabel)), internalType === "circular" && (h("svg", { key: '3a6199bb2179195850d1fc96129f80073df3b987', class: "ic-loading-circular-svg", viewBox: `0 0 ${circularDiameter} ${circularDiameter}` }, h("circle", { key: '7a449a4379039d1e07e33aa01259e503b3b5390f', cx: x, cy: y, r: r }), h("circle", { key: '0307da67d66732d95653e87c56e10568eaf60623', style: {
|
|
195
206
|
"--circular-steps-max": progress ? `${max}` : undefined,
|
|
196
207
|
"--progress-value": progress !== undefined ? `${progress}` : undefined,
|
|
197
208
|
"--stroke-dasharray": dashArray,
|
|
198
209
|
"--stroke-dashoffset": dashOffset,
|
|
199
|
-
}, cx: x, cy: y, r: r }))))), label && size !== "icon" && (h("ic-typography", { key: '
|
|
210
|
+
}, cx: x, cy: y, r: r }))))), label && size !== "icon" && (h("ic-typography", { key: 'f24cde659281c195321e185fe95f8afc1c655ad9', id: "ic-loading-label", class: "ic-loading-label", role: "alert", variant: this.getLabelVariant() }, h("p", { key: '17d96b5a351f90e17e939b37478e9da2d089857c' }, indicatorLabel))))));
|
|
200
211
|
}
|
|
201
212
|
static get is() { return "ic-loading-indicator"; }
|
|
202
213
|
static get encapsulation() { return "shadow"; }
|
|
@@ -462,7 +473,7 @@ export class LoadingIndicator {
|
|
|
462
473
|
"optional": false,
|
|
463
474
|
"docs": {
|
|
464
475
|
"tags": [],
|
|
465
|
-
"text": "The type of indicator, either linear or circular."
|
|
476
|
+
"text": "The type of indicator, either linear or circular. When size is set to 'icon' the type will be set to circular."
|
|
466
477
|
},
|
|
467
478
|
"getter": false,
|
|
468
479
|
"setter": false,
|
|
@@ -478,7 +489,8 @@ export class LoadingIndicator {
|
|
|
478
489
|
"circularLineWidth": {},
|
|
479
490
|
"circularDimensions": {},
|
|
480
491
|
"indicatorLabel": {},
|
|
481
|
-
"clipInnerElement": {}
|
|
492
|
+
"clipInnerElement": {},
|
|
493
|
+
"internalType": {}
|
|
482
494
|
};
|
|
483
495
|
}
|
|
484
496
|
static get elementRef() { return "el"; }
|
|
@@ -495,6 +507,9 @@ export class LoadingIndicator {
|
|
|
495
507
|
}, {
|
|
496
508
|
"propName": "progress",
|
|
497
509
|
"methodName": "handleProgressChange"
|
|
510
|
+
}, {
|
|
511
|
+
"propName": "size",
|
|
512
|
+
"methodName": "handleIconSize"
|
|
498
513
|
}, {
|
|
499
514
|
"propName": "type",
|
|
500
515
|
"methodName": "setIndicatorDimensions"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ic-loading-indicator.js","sourceRoot":"","sources":["../../../src/components/ic-loading-indicator/ic-loading-indicator.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\nimport {\n IcLoadingCircleXYR,\n IcLoadingSizes,\n IcLoadingTypes,\n} from \"./ic-loading-indicator.types\";\nimport { IcThemeMode } from \"../../utils/types\";\n\nconst LOADING_INDICATOR_WIDTHS = {\n large: 120,\n medium: 80,\n small: 40,\n icon: 20,\n};\n\n@Component({\n tag: \"ic-loading-indicator\",\n styleUrl: \"ic-loading-indicator.css\",\n shadow: true,\n})\nexport class LoadingIndicator {\n private innerElement?: HTMLDivElement;\n private interval: ReturnType<typeof setInterval>;\n private labelList: string[] = [];\n private outerElement?: HTMLDivElement;\n\n @Element() el: HTMLIcLoadingIndicatorElement;\n\n @State() circularDiameter = 0;\n @State() circularLineWidth = 0;\n @State() circularDimensions: IcLoadingCircleXYR = {\n x: 0,\n y: 0,\n r: 0,\n };\n @State() indicatorLabel?: string;\n @State() clipInnerElement = false;\n\n /**\n * The description that will be set as the aria-label of the loading indicator when not using a visible label.\n */\n @Prop() description = \"Loading\";\n\n /**\n * If `true`, when linear, the full-width variant (i.e. without a border radius) will be displayed.\n */\n @Prop({ reflect: true }) fullWidth = false;\n\n /**\n * @internal The step number of a compact step, managed by ic-step.\n */\n @Prop() innerLabel?: number;\n\n /**\n * The label to be displayed beneath the loading indicator.\n * Display a changing label by supplying an array of messages.\n */\n @Prop() label?: string | string[];\n @Watch(\"label\")\n watchPropHandler(): void {\n this.updateLabel();\n }\n\n /**\n * The time in milliseconds before the label changes.\n */\n @Prop() labelDuration = 8000;\n\n /**\n * The maximum value that the progress value can take.\n * Used to calculate the proportional width of the progress bar.\n */\n @Prop() max = 100;\n\n /**\n * The minimum value that the progress value can take.\n * Used to calculate the proportional width of the progress bar.\n */\n @Prop() min = 0;\n\n /**\n * If `true`, the element will display as black and white.\n */\n @Prop() monochrome = false;\n\n /**\n * The current amount of progress made.\n * If not provided, component acts as an indeterminate loading indicator.\n */\n @Prop() progress?: number;\n @Watch(\"max\")\n @Watch(\"min\")\n @Watch(\"progress\")\n handleProgressChange(): void {\n if (this.type === \"linear\") {\n this.setLinearDeterminateWidth();\n } else {\n this.setCircleDimensions();\n }\n }\n\n /**\n * The size of the loading indicator.\n */\n @Prop({ reflect: true }) size: IcLoadingSizes = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * The type of indicator, either linear or circular.\n */\n @Prop({ reflect: true }) type: IcLoadingTypes = \"circular\";\n @Watch(\"type\")\n setIndicatorDimensions(): void {\n if (this.type === \"circular\") {\n // Sets the circular indicator line width - accounting for the circle size being altered using the CSS custom property\n const diameter = this.calculateWidth();\n if (this.outerElement && diameter !== this.circularDiameter) {\n this.circularLineWidth = diameter * 0.1;\n this.circularDiameter = diameter;\n this.outerElement.style.setProperty(\n \"--circular-line-width\",\n `${this.circularLineWidth}px`\n );\n }\n this.setCircleDimensions();\n } else {\n this.setLinearDeterminateWidth();\n }\n }\n\n disconnectedCallback(): void {\n clearInterval(this.interval);\n }\n\n componentWillLoad(): void {\n this.updateLabel();\n this.el.setAttribute(\"exportparts\", \"ic-loading-container\");\n }\n\n componentDidLoad(): void {\n this.setIndicatorDimensions();\n }\n\n private getLabel = (labelIndex: number) =>\n new Promise(() => {\n this.interval = setInterval(() => {\n if (labelIndex < this.labelList.length - 1) {\n labelIndex++;\n } else {\n labelIndex = 0;\n }\n this.indicatorLabel = this.labelList[labelIndex];\n }, this.labelDuration);\n });\n\n private getLabelVariant = () => {\n const width = this.type === \"circular\" ? this.calculateWidth() : 0;\n\n if (this.size === \"small\" || (width && width < 60)) {\n return \"label\";\n } else if (this.size === \"large\" || width >= 120) {\n return \"h2\";\n }\n return \"h4\";\n };\n\n private calculateWidth = () => {\n if (this.outerElement?.offsetWidth) return this.outerElement.offsetWidth;\n\n if (this.outerElement) {\n const { width } = window.getComputedStyle(this.outerElement);\n\n if (width) {\n // Regex to check the units of the css string\n if (width.match(/\\D+$/)?.[0] !== \"%\") return parseFloat(width);\n\n const parentWidth = this.outerElement.parentElement?.offsetWidth;\n if (parentWidth) return parentWidth * (parseFloat(width) / 100);\n }\n }\n\n return LOADING_INDICATOR_WIDTHS[this.size];\n };\n\n private calculateProportion = (progress: number) => {\n const minProgress = Math.min(this.max, Math.max(this.min, progress));\n return (minProgress - this.min) / (this.max - this.min);\n };\n\n private setLinearDeterminateWidth = () => {\n // Ensure progress cannot be out of bounds\n if (!this.innerElement || !this.progress) return;\n\n const proportion = this.calculateProportion(this.progress);\n this.clipInnerElement = proportion > 0.5;\n if (this.clipInnerElement) {\n this.innerElement.classList.remove(\"clip\");\n } else {\n this.innerElement.classList.add(\"clip\");\n }\n this.innerElement.style.setProperty(\n \"--linear-width\",\n `${proportion * 100}%`\n );\n };\n\n private updateLabel = () => {\n if (!this.label) return;\n\n if (typeof this.label === \"string\") {\n this.indicatorLabel = this.label;\n } else {\n this.labelList = this.label;\n this.indicatorLabel = this.labelList[0];\n if (this.labelList.length > 1) {\n this.getLabel(0);\n }\n }\n };\n\n private setCircleDimensions = () => {\n if (this.circularDiameter <= 0) return;\n\n const r = this.circularDiameter / 2;\n const nextRadius = r - this.circularLineWidth / 2;\n const dashArray = 2 * Math.PI * nextRadius;\n\n this.circularDimensions = {\n x: r,\n y: r,\n r: nextRadius,\n dashArray: `${dashArray}px`,\n dashOffset: this.progress\n ? `${(-1 - this.calculateProportion(this.progress)) * dashArray}px`\n : undefined,\n };\n };\n\n render() {\n const {\n circularDiameter,\n circularDimensions: { x, y, r, dashArray, dashOffset },\n description,\n fullWidth,\n indicatorLabel,\n innerLabel,\n label,\n max,\n min,\n monochrome,\n progress,\n size,\n theme,\n type,\n } = this;\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n \"ic-loading-indicator-full-width\": fullWidth,\n \"ic-loading-indicator-label\": !!label,\n \"ic-loading-indicator-monochrome\": monochrome,\n [`ic-loading-indicator-size-${size}`]: true,\n }}\n >\n <div class=\"ic-loading-container\" part=\"ic-loading-container\">\n <div\n ref={(el) => (this.outerElement = el)}\n class={{\n [`ic-loading-${type}-outer`]: true,\n [progress === undefined ? \"indeterminate\" : \"determinate\"]: true,\n }}\n role=\"progressbar\"\n aria-labelledby={label && size !== \"icon\" && \"ic-loading-label\"}\n aria-label={description}\n aria-valuenow={progress}\n aria-valuemin={min}\n aria-valuemax={max}\n >\n <div\n ref={(el) => (this.innerElement = el)}\n class={{\n [`ic-loading-${type}-inner`]: true,\n \"inner-label\": !!innerLabel,\n }}\n >\n {innerLabel && size === \"small\" && (\n <ic-typography variant=\"subtitle-small\" class=\"inner-text\">\n {innerLabel}\n </ic-typography>\n )}\n {type === \"circular\" && (\n <svg\n class=\"ic-loading-circular-svg\"\n viewBox={`0 0 ${circularDiameter} ${circularDiameter}`}\n >\n <circle cx={x} cy={y} r={r}></circle>\n <circle\n style={{\n \"--circular-steps-max\": progress ? `${max}` : undefined,\n \"--progress-value\":\n progress !== undefined ? `${progress}` : undefined,\n \"--stroke-dasharray\": dashArray,\n \"--stroke-dashoffset\": dashOffset,\n }}\n cx={x}\n cy={y}\n r={r}\n ></circle>\n </svg>\n )}\n </div>\n </div>\n {label && size !== \"icon\" && (\n <ic-typography\n id=\"ic-loading-label\"\n class=\"ic-loading-label\"\n role=\"alert\"\n variant={this.getLabelVariant()}\n >\n <p>{indicatorLabel}</p>\n </ic-typography>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ic-loading-indicator.js","sourceRoot":"","sources":["../../../src/components/ic-loading-indicator/ic-loading-indicator.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\nimport {\n IcLoadingCircleXYR,\n IcLoadingSizes,\n IcLoadingTypes,\n} from \"./ic-loading-indicator.types\";\nimport { IcThemeMode } from \"../../utils/types\";\n\nconst LOADING_INDICATOR_WIDTHS = {\n large: 120,\n medium: 80,\n small: 40,\n icon: 20,\n};\n\n@Component({\n tag: \"ic-loading-indicator\",\n styleUrl: \"ic-loading-indicator.css\",\n shadow: true,\n})\nexport class LoadingIndicator {\n private innerElement?: HTMLDivElement;\n private interval: ReturnType<typeof setInterval>;\n private labelList: string[] = [];\n private outerElement?: HTMLDivElement;\n\n @Element() el: HTMLIcLoadingIndicatorElement;\n\n @State() circularDiameter = 0;\n @State() circularLineWidth = 0;\n @State() circularDimensions: IcLoadingCircleXYR = {\n x: 0,\n y: 0,\n r: 0,\n };\n @State() indicatorLabel?: string;\n @State() clipInnerElement = false;\n @State() internalType: IcLoadingTypes = \"circular\";\n\n /**\n * The description that will be set as the aria-label of the loading indicator when not using a visible label.\n */\n @Prop() description = \"Loading\";\n\n /**\n * If `true`, when linear, the full-width variant (i.e. without a border radius) will be displayed.\n */\n @Prop({ reflect: true }) fullWidth = false;\n\n /**\n * @internal The step number of a compact step, managed by ic-step.\n */\n @Prop() innerLabel?: number;\n\n /**\n * The label to be displayed beneath the loading indicator.\n * Display a changing label by supplying an array of messages.\n */\n @Prop() label?: string | string[];\n @Watch(\"label\")\n watchPropHandler(): void {\n this.updateLabel();\n }\n\n /**\n * The time in milliseconds before the label changes.\n */\n @Prop() labelDuration = 8000;\n\n /**\n * The maximum value that the progress value can take.\n * Used to calculate the proportional width of the progress bar.\n */\n @Prop() max = 100;\n\n /**\n * The minimum value that the progress value can take.\n * Used to calculate the proportional width of the progress bar.\n */\n @Prop() min = 0;\n\n /**\n * If `true`, the element will display as black and white.\n */\n @Prop() monochrome = false;\n\n /**\n * The current amount of progress made.\n * If not provided, component acts as an indeterminate loading indicator.\n */\n @Prop() progress?: number;\n @Watch(\"max\")\n @Watch(\"min\")\n @Watch(\"progress\")\n handleProgressChange(): void {\n if (this.internalType === \"linear\") {\n this.setLinearDeterminateWidth();\n } else {\n this.setCircleDimensions();\n }\n }\n\n /**\n * The size of the loading indicator.\n */\n @Prop({ reflect: true }) size: IcLoadingSizes = \"medium\";\n @Watch(\"size\")\n handleIconSize(): void {\n this.setIndicatorDimensions();\n }\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * The type of indicator, either linear or circular. When size is set to 'icon' the type will be set to circular.\n */\n @Prop({ reflect: true }) type: IcLoadingTypes = \"circular\";\n @Watch(\"type\")\n setIndicatorDimensions(): void {\n this.setInternalType();\n if (this.internalType === \"circular\") {\n // Sets the circular indicator line width - accounting for the circle size being altered using the CSS custom property\n const diameter = this.calculateWidth();\n if (this.outerElement && diameter !== this.circularDiameter) {\n this.circularLineWidth = diameter * 0.1;\n this.circularDiameter = diameter;\n this.outerElement.style.setProperty(\n \"--circular-line-width\",\n `${this.circularLineWidth}px`\n );\n }\n this.setCircleDimensions();\n } else {\n this.setLinearDeterminateWidth();\n }\n }\n\n disconnectedCallback(): void {\n clearInterval(this.interval);\n }\n\n componentWillLoad(): void {\n this.updateLabel();\n this.el.setAttribute(\"exportparts\", \"ic-loading-container\");\n }\n\n componentDidLoad(): void {\n this.setIndicatorDimensions();\n }\n\n private getLabel = (labelIndex: number) =>\n new Promise(() => {\n this.interval = setInterval(() => {\n if (labelIndex < this.labelList.length - 1) {\n labelIndex++;\n } else {\n labelIndex = 0;\n }\n this.indicatorLabel = this.labelList[labelIndex];\n }, this.labelDuration);\n });\n\n private getLabelVariant = () => {\n const width = this.internalType === \"circular\" ? this.calculateWidth() : 0;\n\n if (this.size === \"small\" || (width && width < 60)) {\n return \"label\";\n } else if (this.size === \"large\" || width >= 120) {\n return \"h2\";\n }\n return \"h4\";\n };\n\n private calculateWidth = () => {\n if (this.outerElement?.offsetWidth) return this.outerElement.offsetWidth;\n\n if (this.outerElement) {\n const { width } = window.getComputedStyle(this.outerElement);\n\n if (width) {\n // Regex to check the units of the css string\n if (width.match(/\\D+$/)?.[0] !== \"%\") return parseFloat(width);\n\n const parentWidth = this.outerElement.parentElement?.offsetWidth;\n if (parentWidth) return parentWidth * (parseFloat(width) / 100);\n }\n }\n\n return LOADING_INDICATOR_WIDTHS[this.size];\n };\n\n private calculateProportion = (progress: number) => {\n const minProgress = Math.min(this.max, Math.max(this.min, progress));\n return (minProgress - this.min) / (this.max - this.min);\n };\n\n private setLinearDeterminateWidth = () => {\n // Ensure progress cannot be out of bounds\n if (!this.innerElement || !this.progress) return;\n\n const proportion = this.calculateProportion(this.progress);\n this.clipInnerElement = proportion > 0.5;\n if (this.clipInnerElement) {\n this.innerElement.classList.remove(\"clip\");\n } else {\n this.innerElement.classList.add(\"clip\");\n }\n this.innerElement.style.setProperty(\n \"--linear-width\",\n `${proportion * 100}%`\n );\n };\n\n private setInternalType = () => {\n this.internalType = this.type;\n if (this.type == \"linear\") {\n this.internalType = this.size == \"icon\" ? \"circular\" : \"linear\";\n }\n };\n\n private updateLabel = () => {\n if (!this.label) return;\n\n if (typeof this.label === \"string\") {\n this.indicatorLabel = this.label;\n } else {\n this.labelList = this.label;\n this.indicatorLabel = this.labelList[0];\n if (this.labelList.length > 1) {\n this.getLabel(0);\n }\n }\n };\n\n private setCircleDimensions = () => {\n if (this.circularDiameter <= 0) return;\n\n const r = this.circularDiameter / 2;\n const nextRadius = r - this.circularLineWidth / 2;\n const dashArray = 2 * Math.PI * nextRadius;\n\n this.circularDimensions = {\n x: r,\n y: r,\n r: nextRadius,\n dashArray: `${dashArray}px`,\n dashOffset: this.progress\n ? `${(-1 - this.calculateProportion(this.progress)) * dashArray}px`\n : undefined,\n };\n };\n\n render() {\n const {\n circularDiameter,\n circularDimensions: { x, y, r, dashArray, dashOffset },\n description,\n fullWidth,\n indicatorLabel,\n innerLabel,\n internalType,\n label,\n max,\n min,\n monochrome,\n progress,\n size,\n theme,\n } = this;\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n \"ic-loading-indicator-full-width\": fullWidth,\n \"ic-loading-indicator-label\": !!label,\n \"ic-loading-indicator-monochrome\": monochrome,\n [`ic-loading-indicator-size-${size}`]: true,\n }}\n >\n <div class=\"ic-loading-container\" part=\"ic-loading-container\">\n <div\n ref={(el) => (this.outerElement = el)}\n class={{\n [`ic-loading-${internalType}-outer`]: true,\n [progress === undefined ? \"indeterminate\" : \"determinate\"]: true,\n }}\n role=\"progressbar\"\n aria-labelledby={label && size !== \"icon\" && \"ic-loading-label\"}\n aria-label={description}\n aria-valuenow={progress}\n aria-valuemin={min}\n aria-valuemax={max}\n >\n <div\n ref={(el) => (this.innerElement = el)}\n class={{\n [`ic-loading-${internalType}-inner`]: true,\n \"inner-label\": !!innerLabel,\n }}\n >\n {innerLabel && size === \"small\" && (\n <ic-typography variant=\"subtitle-small\" class=\"inner-text\">\n {innerLabel}\n </ic-typography>\n )}\n {internalType === \"circular\" && (\n <svg\n class=\"ic-loading-circular-svg\"\n viewBox={`0 0 ${circularDiameter} ${circularDiameter}`}\n >\n <circle cx={x} cy={y} r={r}></circle>\n <circle\n style={{\n \"--circular-steps-max\": progress ? `${max}` : undefined,\n \"--progress-value\":\n progress !== undefined ? `${progress}` : undefined,\n \"--stroke-dasharray\": dashArray,\n \"--stroke-dashoffset\": dashOffset,\n }}\n cx={x}\n cy={y}\n r={r}\n ></circle>\n </svg>\n )}\n </div>\n </div>\n {label && size !== \"icon\" && (\n <ic-typography\n id=\"ic-loading-label\"\n class=\"ic-loading-label\"\n role=\"alert\"\n variant={this.getLabelVariant()}\n >\n <p>{indicatorLabel}</p>\n </ic-typography>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -286,12 +286,12 @@ export const CustomComponents = {
|
|
|
286
286
|
component: \`<ic-status-tag label="Neutral status"></ic-status-tag>\`,
|
|
287
287
|
ariaLabel: "Neutral status tag",
|
|
288
288
|
},
|
|
289
|
-
icon: \`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="
|
|
289
|
+
icon: \`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><g><path d="M4.47 20.5037H19.53C21.07 20.5037 22.03 18.8337 21.26 17.5037L13.73 4.49375C12.96 3.16375 11.04 3.16375 10.27 4.49375L2.74 17.5037C1.97 18.8337 2.93 20.5037 4.47 20.5037ZM12 13.5037C11.45 13.5037 11 13.0537 11 12.5037V10.5037C11 9.95375 11.45 9.50375 12 9.50375C12.55 9.50375 13 9.95375 13 10.5037V12.5037C13 13.0537 12.55 13.5037 12 13.5037ZM13 17.5037H11V15.5037H13V17.5037Z" /></g></svg>\`,
|
|
290
290
|
},
|
|
291
291
|
{
|
|
292
292
|
label: "Americano",
|
|
293
293
|
value: "Ame",
|
|
294
|
-
icon: \`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="
|
|
294
|
+
icon: \`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
|
|
295
295
|
<g>
|
|
296
296
|
<path d="M4.47 20.5037H19.53C21.07 20.5037 22.03 18.8337 21.26 17.5037L13.73 4.49375C12.96 3.16375 11.04 3.16375 10.27 4.49375L2.74 17.5037C1.97 18.8337 2.93 20.5037 4.47 20.5037ZM12 13.5037C11.45 13.5037 11 13.0537 11 12.5037V10.5037C11 9.95375 11.45 9.50375 12 9.50375C12.55 9.50375 13 9.95375 13 10.5037V12.5037C13 13.0537 12.55 13.5037 12 13.5037ZM13 17.5037H11V15.5037H13V17.5037Z" />
|
|
297
297
|
</g>
|
|
@@ -232,12 +232,12 @@ export const CustomComponents = {
|
|
|
232
232
|
component: \`<ic-status-tag label="Success status" status="success"></ic-status-tag>\`,
|
|
233
233
|
ariaLabel: "Success status tag",
|
|
234
234
|
},
|
|
235
|
-
icon: \`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="
|
|
235
|
+
icon: \`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><g><path d="M4.47 20.5037H19.53C21.07 20.5037 22.03 18.8337 21.26 17.5037L13.73 4.49375C12.96 3.16375 11.04 3.16375 10.27 4.49375L2.74 17.5037C1.97 18.8337 2.93 20.5037 4.47 20.5037ZM12 13.5037C11.45 13.5037 11 13.0537 11 12.5037V10.5037C11 9.95375 11.45 9.50375 12 9.50375C12.55 9.50375 13 9.95375 13 10.5037V12.5037C13 13.0537 12.55 13.5037 12 13.5037ZM13 17.5037H11V15.5037H13V17.5037Z" /></g></svg>\`,
|
|
236
236
|
},
|
|
237
237
|
{
|
|
238
238
|
label: "Americano",
|
|
239
239
|
value: "Ame",
|
|
240
|
-
icon: \`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="
|
|
240
|
+
icon: \`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
|
|
241
241
|
<g>
|
|
242
242
|
<path d="M4.47 20.5037H19.53C21.07 20.5037 22.03 18.8337 21.26 17.5037L13.73 4.49375C12.96 3.16375 11.04 3.16375 10.27 4.49375L2.74 17.5037C1.97 18.8337 2.93 20.5037 4.47 20.5037ZM12 13.5037C11.45 13.5037 11 13.0537 11 12.5037V10.5037C11 9.95375 11.45 9.50375 12 9.50375C12.55 9.50375 13 9.95375 13 10.5037V12.5037C13 13.0537 12.55 13.5037 12 13.5037ZM13 17.5037H11V15.5037H13V17.5037Z" />
|
|
243
243
|
</g>
|
|
@@ -896,7 +896,7 @@ export const Playground = {
|
|
|
896
896
|
height="24px"
|
|
897
897
|
viewBox="0 0 24 24"
|
|
898
898
|
width="24px"
|
|
899
|
-
fill="
|
|
899
|
+
fill="currentColor"
|
|
900
900
|
>
|
|
901
901
|
<path d="M0 0h24v24H0z" fill="none" />
|
|
902
902
|
<path
|
|
@@ -4,6 +4,11 @@ const DEFAULT_HEIGHTS = {
|
|
|
4
4
|
circle: "25px",
|
|
5
5
|
rectangle: "93px",
|
|
6
6
|
};
|
|
7
|
+
const DEFAULT_WIDTHS = {
|
|
8
|
+
text: "260px",
|
|
9
|
+
circle: "25px",
|
|
10
|
+
rectangle: "260px",
|
|
11
|
+
};
|
|
7
12
|
export class Skeleton {
|
|
8
13
|
constructor() {
|
|
9
14
|
/**
|
|
@@ -16,18 +21,28 @@ export class Skeleton {
|
|
|
16
21
|
this.variant = "rectangle";
|
|
17
22
|
}
|
|
18
23
|
render() {
|
|
19
|
-
const { variant, theme, el } = this;
|
|
24
|
+
const { variant = "rectangle", theme, el } = this;
|
|
25
|
+
let height = this.height;
|
|
26
|
+
let width = this.width;
|
|
27
|
+
if (variant === "circle") {
|
|
28
|
+
if (height && !width) {
|
|
29
|
+
width = height;
|
|
30
|
+
}
|
|
31
|
+
else if (width && !height) {
|
|
32
|
+
height = width;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
20
35
|
const style = !el.firstElementChild
|
|
21
36
|
? {
|
|
22
|
-
height: el.style.height || DEFAULT_HEIGHTS[variant],
|
|
23
|
-
width: el.style.width ||
|
|
37
|
+
height: el.style.height || height || DEFAULT_HEIGHTS[variant],
|
|
38
|
+
width: el.style.width || width || DEFAULT_WIDTHS[variant],
|
|
24
39
|
}
|
|
25
40
|
: undefined;
|
|
26
|
-
return (h(Host, { key: '
|
|
41
|
+
return (h(Host, { key: '3cb324b15256dfa0f641621061b5c9a0a102da61', class: {
|
|
27
42
|
skeleton: true,
|
|
28
43
|
"ic-skeleton-circle": variant === "circle",
|
|
29
44
|
[`ic-theme-${theme}`]: theme !== "inherit",
|
|
30
|
-
}, style: style, "aria-disabled": "true" }, h("slot", { key: '
|
|
45
|
+
}, style: style, "aria-disabled": "true" }, h("slot", { key: '93a1efa371acaf2aaff6674198e4083a4cf21862' })));
|
|
31
46
|
}
|
|
32
47
|
static get is() { return "ic-skeleton"; }
|
|
33
48
|
static get encapsulation() { return "shadow"; }
|
|
@@ -94,6 +109,44 @@ export class Skeleton {
|
|
|
94
109
|
"attribute": "variant",
|
|
95
110
|
"reflect": false,
|
|
96
111
|
"defaultValue": "\"rectangle\""
|
|
112
|
+
},
|
|
113
|
+
"height": {
|
|
114
|
+
"type": "string",
|
|
115
|
+
"mutable": false,
|
|
116
|
+
"complexType": {
|
|
117
|
+
"original": "string",
|
|
118
|
+
"resolved": "string | undefined",
|
|
119
|
+
"references": {}
|
|
120
|
+
},
|
|
121
|
+
"required": false,
|
|
122
|
+
"optional": true,
|
|
123
|
+
"docs": {
|
|
124
|
+
"tags": [],
|
|
125
|
+
"text": "Height of the skeleton. Accepts any valid CSS length (e.g. \"24px\", \"2rem\", \"100%\")."
|
|
126
|
+
},
|
|
127
|
+
"getter": false,
|
|
128
|
+
"setter": false,
|
|
129
|
+
"attribute": "height",
|
|
130
|
+
"reflect": false
|
|
131
|
+
},
|
|
132
|
+
"width": {
|
|
133
|
+
"type": "string",
|
|
134
|
+
"mutable": false,
|
|
135
|
+
"complexType": {
|
|
136
|
+
"original": "string",
|
|
137
|
+
"resolved": "string | undefined",
|
|
138
|
+
"references": {}
|
|
139
|
+
},
|
|
140
|
+
"required": false,
|
|
141
|
+
"optional": true,
|
|
142
|
+
"docs": {
|
|
143
|
+
"tags": [],
|
|
144
|
+
"text": "Width of the skeleton. Accepts any valid CSS length (e.g. \"24px\", \"2rem\", \"100%\")."
|
|
145
|
+
},
|
|
146
|
+
"getter": false,
|
|
147
|
+
"setter": false,
|
|
148
|
+
"attribute": "width",
|
|
149
|
+
"reflect": false
|
|
97
150
|
}
|
|
98
151
|
};
|
|
99
152
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ic-skeleton.js","sourceRoot":"","sources":["../../../src/components/ic-skeleton/ic-skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAIlE,MAAM,eAAe,GAAG;IACtB,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,MAAM;CAClB,CAAC;AAOF,MAAM,OAAO,QAAQ;IALrB;QAQE;;WAEG;QACK,UAAK,GAAiB,SAAS,CAAC;QAExC;;WAEG;QACK,YAAO,GAAwB,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ic-skeleton.js","sourceRoot":"","sources":["../../../src/components/ic-skeleton/ic-skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAIlE,MAAM,eAAe,GAAG;IACtB,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,MAAM;CAClB,CAAC;AAEF,MAAM,cAAc,GAAG;IACrB,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,OAAO;CACnB,CAAC;AAOF,MAAM,OAAO,QAAQ;IALrB;QAQE;;WAEG;QACK,UAAK,GAAiB,SAAS,CAAC;QAExC;;WAEG;QACK,YAAO,GAAwB,WAAW,CAAC;KA+CpD;IAnCC,MAAM;QACJ,MAAM,EAAE,OAAO,GAAG,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QAElD,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvB,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrB,KAAK,GAAG,MAAM,CAAC;YACjB,CAAC;iBAAM,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC5B,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC,iBAAiB;YACjC,CAAC,CAAC;gBACE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,IAAI,eAAe,CAAC,OAAQ,CAAC;gBAC9D,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,IAAI,cAAc,CAAC,OAAQ,CAAC;aAC3D;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO,CACL,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,QAAQ,EAAE,IAAI;gBACd,oBAAoB,EAAE,OAAO,KAAK,QAAQ;gBAC1C,CAAC,YAAY,KAAK,EAAE,CAAC,EAAE,KAAK,KAAK,SAAS;aAC3C,EACD,KAAK,EAAE,KAAK,mBACE,MAAM;YAEpB,8DAAQ,CACH,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Host, Prop, h } from \"@stencil/core\";\nimport { IcSkeletonVariants } from \"./ic-skeleton.types\";\nimport { IcThemeMode } from \"../../utils/types\";\n\nconst DEFAULT_HEIGHTS = {\n text: \"1em\",\n circle: \"25px\",\n rectangle: \"93px\",\n};\n\nconst DEFAULT_WIDTHS = {\n text: \"260px\",\n circle: \"25px\",\n rectangle: \"260px\",\n};\n\n@Component({\n tag: \"ic-skeleton\",\n styleUrl: \"ic-skeleton.css\",\n shadow: true,\n})\nexport class Skeleton {\n @Element() el: HTMLIcSkeletonElement;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The variant of the skeleton that will be displayed.\n */\n @Prop() variant?: IcSkeletonVariants = \"rectangle\";\n\n /**\n * Height of the skeleton. Accepts any valid CSS length (e.g. \"24px\", \"2rem\", \"100%\").\n */\n @Prop() height?: string;\n\n /**\n * Width of the skeleton. Accepts any valid CSS length (e.g. \"24px\", \"2rem\", \"100%\").\n */\n @Prop() width?: string;\n\n render() {\n const { variant = \"rectangle\", theme, el } = this;\n\n let height = this.height;\n let width = this.width;\n\n if (variant === \"circle\") {\n if (height && !width) {\n width = height;\n } else if (width && !height) {\n height = width;\n }\n }\n\n const style = !el.firstElementChild\n ? {\n height: el.style.height || height || DEFAULT_HEIGHTS[variant!],\n width: el.style.width || width || DEFAULT_WIDTHS[variant!],\n }\n : undefined;\n\n return (\n <Host\n class={{\n skeleton: true,\n \"ic-skeleton-circle\": variant === \"circle\",\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n style={style}\n aria-disabled=\"true\"\n >\n <slot />\n </Host>\n );\n }\n}\n"]}
|
|
@@ -3,6 +3,8 @@ import { html } from "lit-html";
|
|
|
3
3
|
const defaultArgs = {
|
|
4
4
|
theme: "inherit",
|
|
5
5
|
variant: "rectangle",
|
|
6
|
+
height: "93px",
|
|
7
|
+
width: "260px",
|
|
6
8
|
};
|
|
7
9
|
|
|
8
10
|
export default {
|
|
@@ -113,9 +115,8 @@ export const Playground = {
|
|
|
113
115
|
<ic-skeleton
|
|
114
116
|
theme=${args.theme}
|
|
115
117
|
variant=${args.variant}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
: ""};width:${args.variant == "circle" ? "20px" : ""};"
|
|
118
|
+
height=${args.height}
|
|
119
|
+
width=${args.width}
|
|
119
120
|
></ic-skeleton>
|
|
120
121
|
</div>`,
|
|
121
122
|
|