@ionic/core 8.5.2-nightly.20250326 → 8.5.3-dev.11743446543.135a05ae
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/components/checkbox.js +18 -6
- package/components/ion-datetime.js +5 -5
- package/components/ion-toggle.js +2 -2
- package/components/picker.js +54 -77
- package/dist/cjs/ion-checkbox.cjs.entry.js +18 -6
- package/dist/cjs/ion-datetime_3.cjs.entry.js +5 -5
- package/dist/cjs/ion-picker.cjs.entry.js +54 -77
- package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
- package/dist/collection/components/checkbox/checkbox.ios.css +5 -16
- package/dist/collection/components/checkbox/checkbox.js +16 -4
- package/dist/collection/components/checkbox/checkbox.md.css +5 -16
- package/dist/collection/components/datetime/datetime.js +5 -5
- package/dist/collection/components/picker/picker.js +54 -77
- package/dist/collection/components/toggle/toggle.js +2 -2
- package/dist/docs.json +1 -1
- package/dist/esm/ion-checkbox.entry.js +18 -6
- package/dist/esm/ion-datetime_3.entry.js +5 -5
- package/dist/esm/ion-picker.entry.js +54 -77
- package/dist/esm/ion-toggle.entry.js +2 -2
- package/dist/esm-es5/ion-checkbox.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-picker.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-2567237c.entry.js +4 -0
- package/dist/ionic/p-2720f98d.entry.js +4 -0
- package/dist/ionic/{p-df54ab6b.system.entry.js → p-2a445f16.system.entry.js} +1 -1
- package/dist/ionic/{p-e89451e8.system.entry.js → p-4ea4c73a.system.entry.js} +1 -1
- package/dist/ionic/p-96eec056.entry.js +4 -0
- package/dist/ionic/{p-e29c5aab.system.entry.js → p-b1339f3e.system.entry.js} +1 -1
- package/dist/ionic/p-bd52cead.entry.js +4 -0
- package/dist/ionic/p-bf64af90.system.js +1 -1
- package/dist/ionic/p-e3284879.system.entry.js +4 -0
- package/dist/types/components/checkbox/checkbox.d.ts +2 -0
- package/dist/types/components/picker/picker.d.ts +8 -0
- package/hydrate/index.js +79 -90
- package/hydrate/index.mjs +79 -90
- package/package.json +1 -1
- package/dist/ionic/p-056b4c2a.system.entry.js +0 -4
- package/dist/ionic/p-0904eb08.entry.js +0 -4
- package/dist/ionic/p-180b4f9a.entry.js +0 -4
- package/dist/ionic/p-7514f2f5.entry.js +0 -4
- package/dist/ionic/p-ff6be116.entry.js +0 -4
package/components/checkbox.js
CHANGED
|
@@ -6,10 +6,10 @@ import { i as inheritAriaAttributes, e as renderHiddenInput } from './helpers.js
|
|
|
6
6
|
import { c as createColorClasses, h as hostContext } from './theme.js';
|
|
7
7
|
import { b as getIonMode } from './ionic-global.js';
|
|
8
8
|
|
|
9
|
-
const checkboxIosCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{
|
|
9
|
+
const checkboxIosCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.checkbox-icon{border-radius:var(--border-radius);position:relative;width:var(--size);height:var(--size);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}.checkbox-bottom{padding-top:4px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;font-size:0.75rem;white-space:normal}:host(.checkbox-label-placement-stacked) .checkbox-bottom{font-size:1rem}.checkbox-bottom .error-text{display:none;color:var(--ion-color-danger, #c5000f)}.checkbox-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .checkbox-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .checkbox-bottom .helper-text{display:none}:host(.checkbox-label-placement-start) .checkbox-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.checkbox-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-end) .checkbox-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex-pack:start;justify-content:start}:host(.checkbox-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.checkbox-label-placement-stacked) .checkbox-wrapper{-ms-flex-direction:column;flex-direction:column;text-align:center}:host(.checkbox-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-start .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-start:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper{-webkit-transform-origin:center top;transform-origin:center top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-center .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-center:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}}:host(.checkbox-justify-space-between) .checkbox-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.checkbox-justify-start) .checkbox-wrapper{-ms-flex-pack:start;justify-content:start}:host(.checkbox-justify-end) .checkbox-wrapper{-ms-flex-pack:end;justify-content:end}:host(.checkbox-alignment-start) .checkbox-wrapper{-ms-flex-align:start;align-items:start}:host(.checkbox-alignment-center) .checkbox-wrapper{-ms-flex-align:center;align-items:center}:host(.checkbox-justify-space-between),:host(.checkbox-justify-start),:host(.checkbox-justify-end),:host(.checkbox-alignment-start),:host(.checkbox-alignment-center){display:block}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--checkbox-background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:50%;--border-width:0.125rem;--border-style:solid;--border-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.23);--checkbox-background:var(--ion-item-background, var(--ion-background-color, #fff));--size:min(1.375rem, 55.836px);--checkmark-width:1.5px}:host(.checkbox-disabled){opacity:0.3}";
|
|
10
10
|
const IonCheckboxIosStyle0 = checkboxIosCss;
|
|
11
11
|
|
|
12
|
-
const checkboxMdCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{
|
|
12
|
+
const checkboxMdCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.checkbox-icon{border-radius:var(--border-radius);position:relative;width:var(--size);height:var(--size);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}.checkbox-bottom{padding-top:4px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;font-size:0.75rem;white-space:normal}:host(.checkbox-label-placement-stacked) .checkbox-bottom{font-size:1rem}.checkbox-bottom .error-text{display:none;color:var(--ion-color-danger, #c5000f)}.checkbox-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .checkbox-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .checkbox-bottom .helper-text{display:none}:host(.checkbox-label-placement-start) .checkbox-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.checkbox-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-end) .checkbox-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex-pack:start;justify-content:start}:host(.checkbox-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.checkbox-label-placement-stacked) .checkbox-wrapper{-ms-flex-direction:column;flex-direction:column;text-align:center}:host(.checkbox-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-start .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-start:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper{-webkit-transform-origin:center top;transform-origin:center top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-center .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-center:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}}:host(.checkbox-justify-space-between) .checkbox-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.checkbox-justify-start) .checkbox-wrapper{-ms-flex-pack:start;justify-content:start}:host(.checkbox-justify-end) .checkbox-wrapper{-ms-flex-pack:end;justify-content:end}:host(.checkbox-alignment-start) .checkbox-wrapper{-ms-flex-align:start;align-items:start}:host(.checkbox-alignment-center) .checkbox-wrapper{-ms-flex-align:center;align-items:center}:host(.checkbox-justify-space-between),:host(.checkbox-justify-start),:host(.checkbox-justify-end),:host(.checkbox-alignment-start),:host(.checkbox-alignment-center){display:block}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--checkbox-background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:calc(var(--size) * .125);--border-width:2px;--border-style:solid;--border-color:rgb(var(--ion-text-color-rgb, 0, 0, 0), 0.6);--checkmark-width:3;--checkbox-background:var(--ion-item-background, var(--ion-background-color, #fff));--transition:background 180ms cubic-bezier(0.4, 0, 0.2, 1);--size:18px}.checkbox-icon path{stroke-dasharray:30;stroke-dashoffset:30}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{stroke-dashoffset:0;-webkit-transition:stroke-dashoffset 90ms linear 90ms;transition:stroke-dashoffset 90ms linear 90ms}:host(.checkbox-disabled) .label-text-wrapper{opacity:0.38}:host(.checkbox-disabled) .native-wrapper{opacity:0.63}";
|
|
13
13
|
const IonCheckboxMdStyle0 = checkboxMdCss;
|
|
14
14
|
|
|
15
15
|
const Checkbox = /*@__PURE__*/ proxyCustomElement(class Checkbox extends HTMLElement {
|
|
@@ -21,6 +21,7 @@ const Checkbox = /*@__PURE__*/ proxyCustomElement(class Checkbox extends HTMLEle
|
|
|
21
21
|
this.ionFocus = createEvent(this, "ionFocus", 7);
|
|
22
22
|
this.ionBlur = createEvent(this, "ionBlur", 7);
|
|
23
23
|
this.inputId = `ion-cb-${checkboxIds++}`;
|
|
24
|
+
this.inputLabelId = `${this.inputId}-lbl`;
|
|
24
25
|
this.helperTextId = `${this.inputId}-helper-text`;
|
|
25
26
|
this.errorTextId = `${this.inputId}-error-text`;
|
|
26
27
|
this.inheritedAttributes = {};
|
|
@@ -49,6 +50,14 @@ const Checkbox = /*@__PURE__*/ proxyCustomElement(class Checkbox extends HTMLEle
|
|
|
49
50
|
this.onBlur = () => {
|
|
50
51
|
this.ionBlur.emit();
|
|
51
52
|
};
|
|
53
|
+
this.onKeyDown = (ev) => {
|
|
54
|
+
if (ev.key === ' ') {
|
|
55
|
+
ev.preventDefault();
|
|
56
|
+
if (!this.disabled) {
|
|
57
|
+
this.toggleChecked(ev);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
52
61
|
this.onClick = (ev) => {
|
|
53
62
|
if (this.disabled) {
|
|
54
63
|
return;
|
|
@@ -107,8 +116,11 @@ const Checkbox = /*@__PURE__*/ proxyCustomElement(class Checkbox extends HTMLEle
|
|
|
107
116
|
const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
|
|
108
117
|
const mode = getIonMode(this);
|
|
109
118
|
const path = getSVGPath(mode, indeterminate);
|
|
119
|
+
const hasLabelContent = el.textContent !== '';
|
|
110
120
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
111
|
-
|
|
121
|
+
// The host element must have a checkbox role to ensure proper VoiceOver
|
|
122
|
+
// support in Safari for accessibility.
|
|
123
|
+
return (h(Host, { key: '90bb17a4fae17088524555968a002327400807cf', role: "checkbox", "aria-checked": indeterminate ? 'mixed' : `${checked}`, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId, "aria-labelledby": hasLabelContent ? this.inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, class: createColorClasses(color, {
|
|
112
124
|
[mode]: true,
|
|
113
125
|
'in-item': hostContext('ion-item', el),
|
|
114
126
|
'checkbox-checked': checked,
|
|
@@ -118,10 +130,10 @@ const Checkbox = /*@__PURE__*/ proxyCustomElement(class Checkbox extends HTMLEle
|
|
|
118
130
|
[`checkbox-justify-${justify}`]: justify !== undefined,
|
|
119
131
|
[`checkbox-alignment-${alignment}`]: alignment !== undefined,
|
|
120
132
|
[`checkbox-label-placement-${labelPlacement}`]: true,
|
|
121
|
-
}), onClick: this.onClick }, h("label", { key: '
|
|
133
|
+
}), onClick: this.onClick }, h("label", { key: '58b5762aa358dff81910874631e06620a2ae1561', class: "checkbox-wrapper", htmlFor: inputId }, h("input", Object.assign({ key: '6abe299d690c345d36d6fd76ab113fdccfbbac52', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, inheritedAttributes)), h("div", { key: '2654168e45ccfdbcfe13af8c97e0e21d61ba0150', class: {
|
|
122
134
|
'label-text-wrapper': true,
|
|
123
|
-
'label-text-wrapper-hidden':
|
|
124
|
-
}, part: "label" }, h("slot", { key: '
|
|
135
|
+
'label-text-wrapper-hidden': !hasLabelContent,
|
|
136
|
+
}, part: "label", id: this.inputLabelId }, h("slot", { key: 'a91f3f67d9ddd6b616e48799aba11cae3564d1ab' }), this.renderHintText()), h("div", { key: 'd5a9170b084d09df6b02f416e744085b5bcf0dde', class: "native-wrapper" }, h("svg", { key: 'b1968ce4aa9d652a9f2bdc427ea3a65e6c04df51', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
|
|
125
137
|
}
|
|
126
138
|
getSVGPath(mode, indeterminate) {
|
|
127
139
|
let path = indeterminate ? (h("path", { d: "M6 12L18 12", part: "mark" })) : (h("path", { d: "M5.9,12.5l3.8,3.8l8.8-8.8", part: "mark" }));
|
|
@@ -1429,7 +1429,7 @@ const Datetime = /*@__PURE__*/ proxyCustomElement(class Datetime extends HTMLEle
|
|
|
1429
1429
|
const activePart = this.getActivePartsWithFallback();
|
|
1430
1430
|
return (h("ion-picker-column", { "aria-label": "Select an hour", color: this.color, disabled: disabled, value: activePart.hour, numericInput: true, onIonChange: (ev) => {
|
|
1431
1431
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
|
|
1432
|
-
this.setActiveParts(Object.assign(Object.assign({},
|
|
1432
|
+
this.setActiveParts(Object.assign(Object.assign({}, this.getActivePartsWithFallback()), { hour: ev.detail.value }));
|
|
1433
1433
|
ev.stopPropagation();
|
|
1434
1434
|
} }, hoursData.map((hour) => (h("ion-picker-column-option", { part: hour.value === activePart.hour ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: hour.value, disabled: hour.disabled, value: hour.value }, hour.text)))));
|
|
1435
1435
|
}
|
|
@@ -1440,7 +1440,7 @@ const Datetime = /*@__PURE__*/ proxyCustomElement(class Datetime extends HTMLEle
|
|
|
1440
1440
|
const activePart = this.getActivePartsWithFallback();
|
|
1441
1441
|
return (h("ion-picker-column", { "aria-label": "Select a minute", color: this.color, disabled: disabled, value: activePart.minute, numericInput: true, onIonChange: (ev) => {
|
|
1442
1442
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
|
|
1443
|
-
this.setActiveParts(Object.assign(Object.assign({},
|
|
1443
|
+
this.setActiveParts(Object.assign(Object.assign({}, this.getActivePartsWithFallback()), { minute: ev.detail.value }));
|
|
1444
1444
|
ev.stopPropagation();
|
|
1445
1445
|
} }, minutesData.map((minute) => (h("ion-picker-column-option", { part: minute.value === activePart.minute ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: minute.value, disabled: minute.disabled, value: minute.value }, minute.text)))));
|
|
1446
1446
|
}
|
|
@@ -1454,7 +1454,7 @@ const Datetime = /*@__PURE__*/ proxyCustomElement(class Datetime extends HTMLEle
|
|
|
1454
1454
|
return (h("ion-picker-column", { "aria-label": "Select a day period", style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, onIonChange: (ev) => {
|
|
1455
1455
|
const hour = calculateHourFromAMPM(workingParts, ev.detail.value);
|
|
1456
1456
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
|
|
1457
|
-
this.setActiveParts(Object.assign(Object.assign({},
|
|
1457
|
+
this.setActiveParts(Object.assign(Object.assign({}, this.getActivePartsWithFallback()), { ampm: ev.detail.value, hour }));
|
|
1458
1458
|
ev.stopPropagation();
|
|
1459
1459
|
} }, dayPeriodData.map((dayPeriod) => (h("ion-picker-column-option", { part: dayPeriod.value === activePart.ampm ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: dayPeriod.value, disabled: dayPeriod.disabled, value: dayPeriod.value }, dayPeriod.text)))));
|
|
1460
1460
|
}
|
|
@@ -1761,7 +1761,7 @@ const Datetime = /*@__PURE__*/ proxyCustomElement(class Datetime extends HTMLEle
|
|
|
1761
1761
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
1762
1762
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
1763
1763
|
renderHiddenInput(true, el, name, formatValue(value), disabled);
|
|
1764
|
-
return (h(Host, { key: '
|
|
1764
|
+
return (h(Host, { key: '08d429533a09c600b936ad1e022658051c765595', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
|
|
1765
1765
|
[mode]: true,
|
|
1766
1766
|
['datetime-readonly']: readonly,
|
|
1767
1767
|
['datetime-disabled']: disabled,
|
|
@@ -1771,7 +1771,7 @@ const Datetime = /*@__PURE__*/ proxyCustomElement(class Datetime extends HTMLEle
|
|
|
1771
1771
|
[`datetime-size-${size}`]: true,
|
|
1772
1772
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
1773
1773
|
[`datetime-grid`]: isGridStyle,
|
|
1774
|
-
})) }, h("div", { key: '
|
|
1774
|
+
})) }, h("div", { key: 'f4ff0fcd1e059767a7ef14fcc76ebfd55d23a97b', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
|
|
1775
1775
|
}
|
|
1776
1776
|
get el() { return this; }
|
|
1777
1777
|
static get watchers() { return {
|
package/components/ion-toggle.js
CHANGED
|
@@ -203,10 +203,10 @@ const Toggle = /*@__PURE__*/ proxyCustomElement(class Toggle extends HTMLElement
|
|
|
203
203
|
[`toggle-alignment-${alignment}`]: alignment !== undefined,
|
|
204
204
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
205
205
|
[`toggle-${rtl}`]: true,
|
|
206
|
-
}) }, h("label", { key: 'f49531391f4513d084061c27ebc4c4eb1dcd02ab', class: "toggle-wrapper" }, h("input", Object.assign({ key: '
|
|
206
|
+
}) }, h("label", { key: 'f49531391f4513d084061c27ebc4c4eb1dcd02ab', class: "toggle-wrapper" }, h("input", Object.assign({ key: 'cf2b9147f9fb408c446c16df596dc73695fab3b5', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, { switch: true }, this.inheritedAttributes)), h("div", { key: '36639ea6755d2baf1fc8ce7542edf26cc5a1a484', class: {
|
|
207
207
|
'label-text-wrapper': true,
|
|
208
208
|
'label-text-wrapper-hidden': !this.hasLabel,
|
|
209
|
-
}, part: "label" }, h("slot", { key: '
|
|
209
|
+
}, part: "label" }, h("slot", { key: 'd9cde59b79670012f33745522248ba3e34822c0a' }), this.renderHintText()), h("div", { key: 'b0c784a0fe0ce909d01f611210ccc0663e32dfd4', class: "native-wrapper" }, this.renderToggleControl()))));
|
|
210
210
|
}
|
|
211
211
|
get el() { return this; }
|
|
212
212
|
static get watchers() { return {
|
package/components/picker.js
CHANGED
|
@@ -321,13 +321,59 @@ const Picker = /*@__PURE__*/ proxyCustomElement(class Picker extends HTMLElement
|
|
|
321
321
|
* or trailing zeros when looking at the item text.
|
|
322
322
|
*/
|
|
323
323
|
this.searchColumn = (colEl, value, zeroBehavior = 'start') => {
|
|
324
|
+
if (!value) {
|
|
325
|
+
return false;
|
|
326
|
+
}
|
|
324
327
|
const behavior = zeroBehavior === 'start' ? /^0+/ : /0$/;
|
|
328
|
+
value = value.replace(behavior, '');
|
|
325
329
|
const option = Array.from(colEl.querySelectorAll('ion-picker-column-option')).find((el) => {
|
|
326
330
|
return el.disabled !== true && el.textContent.replace(behavior, '') === value;
|
|
327
331
|
});
|
|
328
332
|
if (option) {
|
|
329
333
|
colEl.setValue(option.value);
|
|
330
334
|
}
|
|
335
|
+
return !!option;
|
|
336
|
+
};
|
|
337
|
+
/**
|
|
338
|
+
* Attempts to intelligently search the first and second
|
|
339
|
+
* column as if they're number columns for the provided numbers
|
|
340
|
+
* where the first two numbers are the first column
|
|
341
|
+
* and the last 2 are the last column. Tries to allow for the first
|
|
342
|
+
* number to be ignored for situations where typos occurred.
|
|
343
|
+
*/
|
|
344
|
+
this.multiColumnSearch = (firstColumn, secondColumn, input) => {
|
|
345
|
+
if (input.length === 0) {
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
348
|
+
const inputArray = input.split('');
|
|
349
|
+
const hourValue = inputArray.slice(0, 2).join('');
|
|
350
|
+
// Try to find a match for the first two digits in the first column
|
|
351
|
+
const foundHour = this.searchColumn(firstColumn, hourValue);
|
|
352
|
+
// If we have more than 2 digits and found a match for hours,
|
|
353
|
+
// use the remaining digits for the second column (minutes)
|
|
354
|
+
if (inputArray.length > 2 && foundHour) {
|
|
355
|
+
const minuteValue = inputArray.slice(2, 4).join('');
|
|
356
|
+
this.searchColumn(secondColumn, minuteValue);
|
|
357
|
+
}
|
|
358
|
+
// If we couldn't find a match for the two-digit hour, try single digit approaches
|
|
359
|
+
else if (!foundHour && inputArray.length >= 1) {
|
|
360
|
+
// First try the first digit as a single-digit hour
|
|
361
|
+
let singleDigitHour = inputArray[0];
|
|
362
|
+
let singleDigitFound = this.searchColumn(firstColumn, singleDigitHour);
|
|
363
|
+
// If that didn't work, try the second digit as a single-digit hour
|
|
364
|
+
// (handles case where user made a typo in the first digit, or they typed over themselves)
|
|
365
|
+
if (!singleDigitFound) {
|
|
366
|
+
inputArray.shift();
|
|
367
|
+
singleDigitHour = inputArray[0];
|
|
368
|
+
singleDigitFound = this.searchColumn(firstColumn, singleDigitHour);
|
|
369
|
+
}
|
|
370
|
+
// If we found a single-digit hour and have remaining digits,
|
|
371
|
+
// use up to 2 of the remaining digits for the second column
|
|
372
|
+
if (singleDigitFound && inputArray.length > 1) {
|
|
373
|
+
const remainingDigits = inputArray.slice(1, 3).join('');
|
|
374
|
+
this.searchColumn(secondColumn, remainingDigits);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
331
377
|
};
|
|
332
378
|
this.selectMultiColumn = () => {
|
|
333
379
|
const { inputEl, el } = this;
|
|
@@ -338,82 +384,13 @@ const Picker = /*@__PURE__*/ proxyCustomElement(class Picker extends HTMLElement
|
|
|
338
384
|
const firstColumn = numericPickers[0];
|
|
339
385
|
const lastColumn = numericPickers[1];
|
|
340
386
|
let value = inputEl.value;
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
case 2:
|
|
347
|
-
/**
|
|
348
|
-
* If the first character is `0` or `1` it is
|
|
349
|
-
* possible that users are trying to type `09`
|
|
350
|
-
* or `11` into the hour field, so we should look
|
|
351
|
-
* at that first.
|
|
352
|
-
*/
|
|
353
|
-
const firstCharacter = inputEl.value.substring(0, 1);
|
|
354
|
-
value = firstCharacter === '0' || firstCharacter === '1' ? inputEl.value : firstCharacter;
|
|
355
|
-
this.searchColumn(firstColumn, value);
|
|
356
|
-
/**
|
|
357
|
-
* If only checked the first value,
|
|
358
|
-
* we can check the second value
|
|
359
|
-
* for a match in the minutes column
|
|
360
|
-
*/
|
|
361
|
-
if (value.length === 1) {
|
|
362
|
-
minuteValue = inputEl.value.substring(inputEl.value.length - 1);
|
|
363
|
-
this.searchColumn(lastColumn, minuteValue, 'end');
|
|
364
|
-
}
|
|
365
|
-
break;
|
|
366
|
-
case 3:
|
|
367
|
-
/**
|
|
368
|
-
* If the first character is `0` or `1` it is
|
|
369
|
-
* possible that users are trying to type `09`
|
|
370
|
-
* or `11` into the hour field, so we should look
|
|
371
|
-
* at that first.
|
|
372
|
-
*/
|
|
373
|
-
const firstCharacterAgain = inputEl.value.substring(0, 1);
|
|
374
|
-
value =
|
|
375
|
-
firstCharacterAgain === '0' || firstCharacterAgain === '1'
|
|
376
|
-
? inputEl.value.substring(0, 2)
|
|
377
|
-
: firstCharacterAgain;
|
|
378
|
-
this.searchColumn(firstColumn, value);
|
|
379
|
-
/**
|
|
380
|
-
* If only checked the first value,
|
|
381
|
-
* we can check the second value
|
|
382
|
-
* for a match in the minutes column
|
|
383
|
-
*/
|
|
384
|
-
minuteValue = value.length === 1 ? inputEl.value.substring(1) : inputEl.value.substring(2);
|
|
385
|
-
this.searchColumn(lastColumn, minuteValue, 'end');
|
|
386
|
-
break;
|
|
387
|
-
case 4:
|
|
388
|
-
/**
|
|
389
|
-
* If the first character is `0` or `1` it is
|
|
390
|
-
* possible that users are trying to type `09`
|
|
391
|
-
* or `11` into the hour field, so we should look
|
|
392
|
-
* at that first.
|
|
393
|
-
*/
|
|
394
|
-
const firstCharacterAgainAgain = inputEl.value.substring(0, 1);
|
|
395
|
-
value =
|
|
396
|
-
firstCharacterAgainAgain === '0' || firstCharacterAgainAgain === '1'
|
|
397
|
-
? inputEl.value.substring(0, 2)
|
|
398
|
-
: firstCharacterAgainAgain;
|
|
399
|
-
this.searchColumn(firstColumn, value);
|
|
400
|
-
/**
|
|
401
|
-
* If only checked the first value,
|
|
402
|
-
* we can check the second value
|
|
403
|
-
* for a match in the minutes column
|
|
404
|
-
*/
|
|
405
|
-
const minuteValueAgain = value.length === 1
|
|
406
|
-
? inputEl.value.substring(1, inputEl.value.length)
|
|
407
|
-
: inputEl.value.substring(2, inputEl.value.length);
|
|
408
|
-
this.searchColumn(lastColumn, minuteValueAgain, 'end');
|
|
409
|
-
break;
|
|
410
|
-
default:
|
|
411
|
-
const startIndex = inputEl.value.length - 4;
|
|
412
|
-
const newString = inputEl.value.substring(startIndex);
|
|
413
|
-
inputEl.value = newString;
|
|
414
|
-
this.selectMultiColumn();
|
|
415
|
-
break;
|
|
387
|
+
if (value.length > 4) {
|
|
388
|
+
const startIndex = inputEl.value.length - 4;
|
|
389
|
+
const newString = inputEl.value.substring(startIndex);
|
|
390
|
+
inputEl.value = newString;
|
|
391
|
+
value = newString;
|
|
416
392
|
}
|
|
393
|
+
this.multiColumnSearch(firstColumn, lastColumn, value);
|
|
417
394
|
};
|
|
418
395
|
/**
|
|
419
396
|
* Searches the value of the active column
|
|
@@ -482,7 +459,7 @@ const Picker = /*@__PURE__*/ proxyCustomElement(class Picker extends HTMLElement
|
|
|
482
459
|
this.emitInputModeChange();
|
|
483
460
|
}
|
|
484
461
|
render() {
|
|
485
|
-
return (h(Host, { key: '
|
|
462
|
+
return (h(Host, { key: '28f81e4ed44a633178561757c5199c2c98f94b74', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, h("input", { key: 'abb3d1ad25ef63856af7804111175a4d50008bc0', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
|
|
486
463
|
var _a;
|
|
487
464
|
/**
|
|
488
465
|
* The "Enter" key represents
|
|
@@ -497,7 +474,7 @@ const Picker = /*@__PURE__*/ proxyCustomElement(class Picker extends HTMLElement
|
|
|
497
474
|
if (ev.key === 'Enter') {
|
|
498
475
|
(_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.blur();
|
|
499
476
|
}
|
|
500
|
-
}, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), h("div", { key: '
|
|
477
|
+
}, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), h("div", { key: '334a5abdc02e6b127c57177f626d7e4ff5526183', class: "picker-before" }), h("div", { key: 'ffd6271931129e88fc7c820e919d684899e420c5', class: "picker-after" }), h("div", { key: '78d1d95fd09e04f154ea59f24a1cece72c47ed7b', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), h("slot", { key: '0bd5b9f875d3c71f6cbbde2054baeb1b0a2e8cd5' })));
|
|
501
478
|
}
|
|
502
479
|
get el() { return this; }
|
|
503
480
|
static get style() { return {
|
|
@@ -10,10 +10,10 @@ const helpers = require('./helpers-3a248559.js');
|
|
|
10
10
|
const theme = require('./theme-d1c573d2.js');
|
|
11
11
|
const ionicGlobal = require('./ionic-global-acb665ad.js');
|
|
12
12
|
|
|
13
|
-
const checkboxIosCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{
|
|
13
|
+
const checkboxIosCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.checkbox-icon{border-radius:var(--border-radius);position:relative;width:var(--size);height:var(--size);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}.checkbox-bottom{padding-top:4px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;font-size:0.75rem;white-space:normal}:host(.checkbox-label-placement-stacked) .checkbox-bottom{font-size:1rem}.checkbox-bottom .error-text{display:none;color:var(--ion-color-danger, #c5000f)}.checkbox-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .checkbox-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .checkbox-bottom .helper-text{display:none}:host(.checkbox-label-placement-start) .checkbox-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.checkbox-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-end) .checkbox-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex-pack:start;justify-content:start}:host(.checkbox-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.checkbox-label-placement-stacked) .checkbox-wrapper{-ms-flex-direction:column;flex-direction:column;text-align:center}:host(.checkbox-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-start .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-start:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper{-webkit-transform-origin:center top;transform-origin:center top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-center .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-center:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}}:host(.checkbox-justify-space-between) .checkbox-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.checkbox-justify-start) .checkbox-wrapper{-ms-flex-pack:start;justify-content:start}:host(.checkbox-justify-end) .checkbox-wrapper{-ms-flex-pack:end;justify-content:end}:host(.checkbox-alignment-start) .checkbox-wrapper{-ms-flex-align:start;align-items:start}:host(.checkbox-alignment-center) .checkbox-wrapper{-ms-flex-align:center;align-items:center}:host(.checkbox-justify-space-between),:host(.checkbox-justify-start),:host(.checkbox-justify-end),:host(.checkbox-alignment-start),:host(.checkbox-alignment-center){display:block}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--checkbox-background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:50%;--border-width:0.125rem;--border-style:solid;--border-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.23);--checkbox-background:var(--ion-item-background, var(--ion-background-color, #fff));--size:min(1.375rem, 55.836px);--checkmark-width:1.5px}:host(.checkbox-disabled){opacity:0.3}";
|
|
14
14
|
const IonCheckboxIosStyle0 = checkboxIosCss;
|
|
15
15
|
|
|
16
|
-
const checkboxMdCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{
|
|
16
|
+
const checkboxMdCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.checkbox-icon{border-radius:var(--border-radius);position:relative;width:var(--size);height:var(--size);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}.checkbox-bottom{padding-top:4px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;font-size:0.75rem;white-space:normal}:host(.checkbox-label-placement-stacked) .checkbox-bottom{font-size:1rem}.checkbox-bottom .error-text{display:none;color:var(--ion-color-danger, #c5000f)}.checkbox-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .checkbox-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .checkbox-bottom .helper-text{display:none}:host(.checkbox-label-placement-start) .checkbox-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.checkbox-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-end) .checkbox-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex-pack:start;justify-content:start}:host(.checkbox-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.checkbox-label-placement-stacked) .checkbox-wrapper{-ms-flex-direction:column;flex-direction:column;text-align:center}:host(.checkbox-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-start .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-start:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper{-webkit-transform-origin:center top;transform-origin:center top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-center .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-center:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}}:host(.checkbox-justify-space-between) .checkbox-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.checkbox-justify-start) .checkbox-wrapper{-ms-flex-pack:start;justify-content:start}:host(.checkbox-justify-end) .checkbox-wrapper{-ms-flex-pack:end;justify-content:end}:host(.checkbox-alignment-start) .checkbox-wrapper{-ms-flex-align:start;align-items:start}:host(.checkbox-alignment-center) .checkbox-wrapper{-ms-flex-align:center;align-items:center}:host(.checkbox-justify-space-between),:host(.checkbox-justify-start),:host(.checkbox-justify-end),:host(.checkbox-alignment-start),:host(.checkbox-alignment-center){display:block}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--checkbox-background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:calc(var(--size) * .125);--border-width:2px;--border-style:solid;--border-color:rgb(var(--ion-text-color-rgb, 0, 0, 0), 0.6);--checkmark-width:3;--checkbox-background:var(--ion-item-background, var(--ion-background-color, #fff));--transition:background 180ms cubic-bezier(0.4, 0, 0.2, 1);--size:18px}.checkbox-icon path{stroke-dasharray:30;stroke-dashoffset:30}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{stroke-dashoffset:0;-webkit-transition:stroke-dashoffset 90ms linear 90ms;transition:stroke-dashoffset 90ms linear 90ms}:host(.checkbox-disabled) .label-text-wrapper{opacity:0.38}:host(.checkbox-disabled) .native-wrapper{opacity:0.63}";
|
|
17
17
|
const IonCheckboxMdStyle0 = checkboxMdCss;
|
|
18
18
|
|
|
19
19
|
const Checkbox = class {
|
|
@@ -23,6 +23,7 @@ const Checkbox = class {
|
|
|
23
23
|
this.ionFocus = index.createEvent(this, "ionFocus", 7);
|
|
24
24
|
this.ionBlur = index.createEvent(this, "ionBlur", 7);
|
|
25
25
|
this.inputId = `ion-cb-${checkboxIds++}`;
|
|
26
|
+
this.inputLabelId = `${this.inputId}-lbl`;
|
|
26
27
|
this.helperTextId = `${this.inputId}-helper-text`;
|
|
27
28
|
this.errorTextId = `${this.inputId}-error-text`;
|
|
28
29
|
this.inheritedAttributes = {};
|
|
@@ -51,6 +52,14 @@ const Checkbox = class {
|
|
|
51
52
|
this.onBlur = () => {
|
|
52
53
|
this.ionBlur.emit();
|
|
53
54
|
};
|
|
55
|
+
this.onKeyDown = (ev) => {
|
|
56
|
+
if (ev.key === ' ') {
|
|
57
|
+
ev.preventDefault();
|
|
58
|
+
if (!this.disabled) {
|
|
59
|
+
this.toggleChecked(ev);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
};
|
|
54
63
|
this.onClick = (ev) => {
|
|
55
64
|
if (this.disabled) {
|
|
56
65
|
return;
|
|
@@ -109,8 +118,11 @@ const Checkbox = class {
|
|
|
109
118
|
const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
|
|
110
119
|
const mode = ionicGlobal.getIonMode(this);
|
|
111
120
|
const path = getSVGPath(mode, indeterminate);
|
|
121
|
+
const hasLabelContent = el.textContent !== '';
|
|
112
122
|
helpers.renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
113
|
-
|
|
123
|
+
// The host element must have a checkbox role to ensure proper VoiceOver
|
|
124
|
+
// support in Safari for accessibility.
|
|
125
|
+
return (index.h(index.Host, { key: '90bb17a4fae17088524555968a002327400807cf', role: "checkbox", "aria-checked": indeterminate ? 'mixed' : `${checked}`, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId, "aria-labelledby": hasLabelContent ? this.inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, class: theme.createColorClasses(color, {
|
|
114
126
|
[mode]: true,
|
|
115
127
|
'in-item': theme.hostContext('ion-item', el),
|
|
116
128
|
'checkbox-checked': checked,
|
|
@@ -120,10 +132,10 @@ const Checkbox = class {
|
|
|
120
132
|
[`checkbox-justify-${justify}`]: justify !== undefined,
|
|
121
133
|
[`checkbox-alignment-${alignment}`]: alignment !== undefined,
|
|
122
134
|
[`checkbox-label-placement-${labelPlacement}`]: true,
|
|
123
|
-
}), onClick: this.onClick }, index.h("label", { key: '
|
|
135
|
+
}), onClick: this.onClick }, index.h("label", { key: '58b5762aa358dff81910874631e06620a2ae1561', class: "checkbox-wrapper", htmlFor: inputId }, index.h("input", Object.assign({ key: '6abe299d690c345d36d6fd76ab113fdccfbbac52', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, inheritedAttributes)), index.h("div", { key: '2654168e45ccfdbcfe13af8c97e0e21d61ba0150', class: {
|
|
124
136
|
'label-text-wrapper': true,
|
|
125
|
-
'label-text-wrapper-hidden':
|
|
126
|
-
}, part: "label" }, index.h("slot", { key: '
|
|
137
|
+
'label-text-wrapper-hidden': !hasLabelContent,
|
|
138
|
+
}, part: "label", id: this.inputLabelId }, index.h("slot", { key: 'a91f3f67d9ddd6b616e48799aba11cae3564d1ab' }), this.renderHintText()), index.h("div", { key: 'd5a9170b084d09df6b02f416e744085b5bcf0dde', class: "native-wrapper" }, index.h("svg", { key: 'b1968ce4aa9d652a9f2bdc427ea3a65e6c04df51', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
|
|
127
139
|
}
|
|
128
140
|
getSVGPath(mode, indeterminate) {
|
|
129
141
|
let path = indeterminate ? (index.h("path", { d: "M6 12L18 12", part: "mark" })) : (index.h("path", { d: "M5.9,12.5l3.8,3.8l8.8-8.8", part: "mark" }));
|
|
@@ -1431,7 +1431,7 @@ const Datetime = class {
|
|
|
1431
1431
|
const activePart = this.getActivePartsWithFallback();
|
|
1432
1432
|
return (index$1.h("ion-picker-column", { "aria-label": "Select an hour", color: this.color, disabled: disabled, value: activePart.hour, numericInput: true, onIonChange: (ev) => {
|
|
1433
1433
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
|
|
1434
|
-
this.setActiveParts(Object.assign(Object.assign({},
|
|
1434
|
+
this.setActiveParts(Object.assign(Object.assign({}, this.getActivePartsWithFallback()), { hour: ev.detail.value }));
|
|
1435
1435
|
ev.stopPropagation();
|
|
1436
1436
|
} }, hoursData.map((hour) => (index$1.h("ion-picker-column-option", { part: hour.value === activePart.hour ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: hour.value, disabled: hour.disabled, value: hour.value }, hour.text)))));
|
|
1437
1437
|
}
|
|
@@ -1442,7 +1442,7 @@ const Datetime = class {
|
|
|
1442
1442
|
const activePart = this.getActivePartsWithFallback();
|
|
1443
1443
|
return (index$1.h("ion-picker-column", { "aria-label": "Select a minute", color: this.color, disabled: disabled, value: activePart.minute, numericInput: true, onIonChange: (ev) => {
|
|
1444
1444
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
|
|
1445
|
-
this.setActiveParts(Object.assign(Object.assign({},
|
|
1445
|
+
this.setActiveParts(Object.assign(Object.assign({}, this.getActivePartsWithFallback()), { minute: ev.detail.value }));
|
|
1446
1446
|
ev.stopPropagation();
|
|
1447
1447
|
} }, minutesData.map((minute) => (index$1.h("ion-picker-column-option", { part: minute.value === activePart.minute ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: minute.value, disabled: minute.disabled, value: minute.value }, minute.text)))));
|
|
1448
1448
|
}
|
|
@@ -1456,7 +1456,7 @@ const Datetime = class {
|
|
|
1456
1456
|
return (index$1.h("ion-picker-column", { "aria-label": "Select a day period", style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, onIonChange: (ev) => {
|
|
1457
1457
|
const hour = data.calculateHourFromAMPM(workingParts, ev.detail.value);
|
|
1458
1458
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
|
|
1459
|
-
this.setActiveParts(Object.assign(Object.assign({},
|
|
1459
|
+
this.setActiveParts(Object.assign(Object.assign({}, this.getActivePartsWithFallback()), { ampm: ev.detail.value, hour }));
|
|
1460
1460
|
ev.stopPropagation();
|
|
1461
1461
|
} }, dayPeriodData.map((dayPeriod) => (index$1.h("ion-picker-column-option", { part: dayPeriod.value === activePart.ampm ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: dayPeriod.value, disabled: dayPeriod.disabled, value: dayPeriod.value }, dayPeriod.text)))));
|
|
1462
1462
|
}
|
|
@@ -1763,7 +1763,7 @@ const Datetime = class {
|
|
|
1763
1763
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
1764
1764
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
1765
1765
|
helpers.renderHiddenInput(true, el, name, data.formatValue(value), disabled);
|
|
1766
|
-
return (index$1.h(index$1.Host, { key: '
|
|
1766
|
+
return (index$1.h(index$1.Host, { key: '08d429533a09c600b936ad1e022658051c765595', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, theme.createColorClasses(color, {
|
|
1767
1767
|
[mode]: true,
|
|
1768
1768
|
['datetime-readonly']: readonly,
|
|
1769
1769
|
['datetime-disabled']: disabled,
|
|
@@ -1773,7 +1773,7 @@ const Datetime = class {
|
|
|
1773
1773
|
[`datetime-size-${size}`]: true,
|
|
1774
1774
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
1775
1775
|
[`datetime-grid`]: isGridStyle,
|
|
1776
|
-
})) }, index$1.h("div", { key: '
|
|
1776
|
+
})) }, index$1.h("div", { key: 'f4ff0fcd1e059767a7ef14fcc76ebfd55d23a97b', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
|
|
1777
1777
|
}
|
|
1778
1778
|
get el() { return index$1.getElement(this); }
|
|
1779
1779
|
static get watchers() { return {
|