@ionic/core 8.7.17-dev.11769813102.16c5bfac → 8.7.17-dev.11770319814.172b4f50
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/ion-range.js +39 -81
- package/components/ion-refresher.js +32 -3
- package/components/ion-select.js +3 -2
- package/components/select-modal.js +6 -1
- package/dist/cjs/ion-range.cjs.entry.js +38 -79
- package/dist/cjs/ion-refresher_2.cjs.entry.js +32 -3
- package/dist/cjs/ion-select-modal.cjs.entry.js +5 -1
- package/dist/cjs/ion-select_3.cjs.entry.js +3 -2
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/range/range.js +42 -99
- package/dist/collection/components/refresher/refresher.js +70 -4
- package/dist/collection/components/select/select.js +3 -2
- package/dist/collection/components/select-modal/select-modal.js +25 -1
- package/dist/docs.json +83 -129
- package/dist/esm/ion-range.entry.js +38 -79
- package/dist/esm/ion-refresher_2.entry.js +32 -3
- package/dist/esm/ion-select-modal.entry.js +5 -1
- package/dist/esm/ion-select_3.entry.js +3 -2
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/html.html-data.json +5 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-012212e4.entry.js +4 -0
- package/dist/ionic/p-88367362.entry.js +4 -0
- package/dist/ionic/p-90f2d3ff.entry.js +4 -0
- package/dist/ionic/p-d2489bf2.entry.js +4 -0
- package/dist/types/components/range/range-interface.d.ts +0 -1
- package/dist/types/components/range/range.d.ts +4 -20
- package/dist/types/components/refresher/refresher-interface.d.ts +7 -0
- package/dist/types/components/refresher/refresher.d.ts +16 -3
- package/dist/types/components/select-modal/select-modal.d.ts +4 -0
- package/dist/types/components.d.ts +26 -5
- package/dist/types/interface.d.ts +1 -1
- package/hydrate/index.js +83 -105
- package/hydrate/index.mjs +83 -105
- package/package.json +1 -1
- package/dist/ionic/p-02d76786.entry.js +0 -4
- package/dist/ionic/p-639dd543.entry.js +0 -4
- package/dist/ionic/p-73ecefff.entry.js +0 -4
- package/dist/ionic/p-eb024a5b.entry.js +0 -4
package/hydrate/index.js
CHANGED
|
@@ -28717,28 +28717,13 @@ const rangeMdCss = ":host{--knob-handle-size:calc(var(--knob-size) * 2);display:
|
|
|
28717
28717
|
* @slot start - Content is placed to the left of the range slider in LTR, and to the right in RTL.
|
|
28718
28718
|
* @slot end - Content is placed to the right of the range slider in LTR, and to the left in RTL.
|
|
28719
28719
|
*
|
|
28720
|
-
* @part label - The label text describing the range.
|
|
28721
28720
|
* @part tick - An inactive tick mark.
|
|
28722
28721
|
* @part tick-active - An active tick mark.
|
|
28722
|
+
* @part pin - The counter that appears above a knob.
|
|
28723
|
+
* @part knob - The handle that is used to drag the range.
|
|
28723
28724
|
* @part bar - The inactive part of the bar.
|
|
28724
28725
|
* @part bar-active - The active part of the bar.
|
|
28725
|
-
* @part
|
|
28726
|
-
* @part knob-handle-a - The container element for the first knob. Only available when `dualKnobs` is `true`.
|
|
28727
|
-
* @part knob-handle-b - The container element for the second knob. Only available when `dualKnobs` is `true`.
|
|
28728
|
-
* @part knob-handle-lower - The container element for the lower knob. Only available when `dualKnobs` is `true`.
|
|
28729
|
-
* @part knob-handle-upper - The container element for the upper knob. Only available when `dualKnobs` is `true`.
|
|
28730
|
-
* @part pin - The counter that appears above a knob.
|
|
28731
|
-
* @part pin-a - The counter that appears above the first knob. Only available when `dualKnobs` is `true`.
|
|
28732
|
-
* @part pin-b - The counter that appears above the second knob. Only available when `dualKnobs` is `true`.
|
|
28733
|
-
* @part pin-lower - The counter that appears above the lower knob. Only available when `dualKnobs` is `true`.
|
|
28734
|
-
* @part pin-upper - The counter that appears above the upper knob. Only available when `dualKnobs` is `true`.
|
|
28735
|
-
* @part knob - The visual knob element that appears on the range track.
|
|
28736
|
-
* @part knob-a - The visual knob element for the first knob. Only available when `dualKnobs` is `true`.
|
|
28737
|
-
* @part knob-b - The visual knob element for the second knob. Only available when `dualKnobs` is `true`.
|
|
28738
|
-
* @part knob-lower - The visual knob element for the lower knob. Only available when `dualKnobs` is `true`.
|
|
28739
|
-
* @part knob-upper - The visual knob element for the upper knob. Only available when `dualKnobs` is `true`.
|
|
28740
|
-
* @part pressed - Added to the knob-handle, knob, and pin that is currently being pressed to drag. Only one set has this part at a time.
|
|
28741
|
-
* @part focused - Added to the knob-handle, knob, and pin that currently has focus. Only one set has this part at a time.
|
|
28726
|
+
* @part label - The label text describing the range.
|
|
28742
28727
|
*/
|
|
28743
28728
|
class Range {
|
|
28744
28729
|
constructor(hostRef) {
|
|
@@ -28756,7 +28741,6 @@ class Range {
|
|
|
28756
28741
|
this.inheritedAttributes = {};
|
|
28757
28742
|
this.contentEl = null;
|
|
28758
28743
|
this.initialContentScrollY = true;
|
|
28759
|
-
this.focusFromPointer = false;
|
|
28760
28744
|
this.ratioA = 0;
|
|
28761
28745
|
this.ratioB = 0;
|
|
28762
28746
|
/**
|
|
@@ -28888,7 +28872,6 @@ class Range {
|
|
|
28888
28872
|
this.onBlur = () => {
|
|
28889
28873
|
if (this.hasFocus) {
|
|
28890
28874
|
this.hasFocus = false;
|
|
28891
|
-
this.focusedKnob = undefined;
|
|
28892
28875
|
this.ionBlur.emit();
|
|
28893
28876
|
}
|
|
28894
28877
|
};
|
|
@@ -28899,20 +28882,21 @@ class Range {
|
|
|
28899
28882
|
}
|
|
28900
28883
|
};
|
|
28901
28884
|
this.onKnobFocus = (knob) => {
|
|
28902
|
-
// Clicking focuses the range which is needed for the keyboard,
|
|
28903
|
-
// but we only want to add the ion-focused class when focused via Tab.
|
|
28904
|
-
if (!this.focusFromPointer) {
|
|
28905
|
-
this.focusedKnob = knob;
|
|
28906
|
-
}
|
|
28907
|
-
else {
|
|
28908
|
-
this.focusFromPointer = false;
|
|
28909
|
-
this.focusedKnob = undefined;
|
|
28910
|
-
}
|
|
28911
|
-
// If the knob was not already focused, emit the focus event
|
|
28912
28885
|
if (!this.hasFocus) {
|
|
28913
28886
|
this.hasFocus = true;
|
|
28914
28887
|
this.ionFocus.emit();
|
|
28915
28888
|
}
|
|
28889
|
+
// Manually manage ion-focused class for dual knobs
|
|
28890
|
+
if (this.dualKnobs && this.el.shadowRoot) {
|
|
28891
|
+
const knobA = this.el.shadowRoot.querySelector('.range-knob-a');
|
|
28892
|
+
const knobB = this.el.shadowRoot.querySelector('.range-knob-b');
|
|
28893
|
+
// Remove ion-focused from both knobs first
|
|
28894
|
+
knobA === null || knobA === void 0 ? void 0 : knobA.classList.remove('ion-focused');
|
|
28895
|
+
knobB === null || knobB === void 0 ? void 0 : knobB.classList.remove('ion-focused');
|
|
28896
|
+
// Add ion-focused only to the focused knob
|
|
28897
|
+
const focusedKnobEl = knob === 'A' ? knobA : knobB;
|
|
28898
|
+
focusedKnobEl === null || focusedKnobEl === void 0 ? void 0 : focusedKnobEl.classList.add('ion-focused');
|
|
28899
|
+
}
|
|
28916
28900
|
};
|
|
28917
28901
|
this.onKnobBlur = () => {
|
|
28918
28902
|
// Check if focus is moving to another knob within the same range
|
|
@@ -28924,9 +28908,15 @@ class Range {
|
|
|
28924
28908
|
if (!isStillFocusedOnKnob) {
|
|
28925
28909
|
if (this.hasFocus) {
|
|
28926
28910
|
this.hasFocus = false;
|
|
28927
|
-
this.focusedKnob = undefined;
|
|
28928
28911
|
this.ionBlur.emit();
|
|
28929
28912
|
}
|
|
28913
|
+
// Remove ion-focused from both knobs when focus leaves the range
|
|
28914
|
+
if (this.dualKnobs && this.el.shadowRoot) {
|
|
28915
|
+
const knobA = this.el.shadowRoot.querySelector('.range-knob-a');
|
|
28916
|
+
const knobB = this.el.shadowRoot.querySelector('.range-knob-b');
|
|
28917
|
+
knobA === null || knobA === void 0 ? void 0 : knobA.classList.remove('ion-focused');
|
|
28918
|
+
knobB === null || knobB === void 0 ? void 0 : knobB.classList.remove('ion-focused');
|
|
28919
|
+
}
|
|
28930
28920
|
}
|
|
28931
28921
|
}, 0);
|
|
28932
28922
|
};
|
|
@@ -29183,6 +29173,7 @@ class Range {
|
|
|
29183
29173
|
ratio = 1 - ratio;
|
|
29184
29174
|
}
|
|
29185
29175
|
this.pressedKnob = !this.dualKnobs || Math.abs(this.ratioA - ratio) < Math.abs(this.ratioB - ratio) ? 'A' : 'B';
|
|
29176
|
+
this.setFocus(this.pressedKnob);
|
|
29186
29177
|
}
|
|
29187
29178
|
get valA() {
|
|
29188
29179
|
return ratioToValue(this.ratioA, this.min, this.max, this.step);
|
|
@@ -29209,23 +29200,9 @@ class Range {
|
|
|
29209
29200
|
updateRatio() {
|
|
29210
29201
|
const value = this.getValue();
|
|
29211
29202
|
const { min, max } = this;
|
|
29212
|
-
/**
|
|
29213
|
-
* For dual knobs, value gives lower/upper but not which is A vs B.
|
|
29214
|
-
* Assign (lowerRatio, upperRatio) to (ratioA, ratioB) in the way that
|
|
29215
|
-
* minimizes change from the current ratios so the knobs don't swap.
|
|
29216
|
-
*/
|
|
29217
29203
|
if (this.dualKnobs) {
|
|
29218
|
-
|
|
29219
|
-
|
|
29220
|
-
if (Math.abs(this.ratioA - lowerRatio) + Math.abs(this.ratioB - upperRatio) <=
|
|
29221
|
-
Math.abs(this.ratioA - upperRatio) + Math.abs(this.ratioB - lowerRatio)) {
|
|
29222
|
-
this.ratioA = lowerRatio;
|
|
29223
|
-
this.ratioB = upperRatio;
|
|
29224
|
-
}
|
|
29225
|
-
else {
|
|
29226
|
-
this.ratioA = upperRatio;
|
|
29227
|
-
this.ratioB = lowerRatio;
|
|
29228
|
-
}
|
|
29204
|
+
this.ratioA = valueToRatio(value.lower, min, max);
|
|
29205
|
+
this.ratioB = valueToRatio(value.upper, min, max);
|
|
29229
29206
|
}
|
|
29230
29207
|
else {
|
|
29231
29208
|
this.ratioA = valueToRatio(value, min, max);
|
|
@@ -29242,6 +29219,14 @@ class Range {
|
|
|
29242
29219
|
};
|
|
29243
29220
|
this.noUpdate = false;
|
|
29244
29221
|
}
|
|
29222
|
+
setFocus(knob) {
|
|
29223
|
+
if (this.el.shadowRoot) {
|
|
29224
|
+
const knobEl = this.el.shadowRoot.querySelector(knob === 'A' ? '.range-knob-a' : '.range-knob-b');
|
|
29225
|
+
if (knobEl) {
|
|
29226
|
+
knobEl.focus();
|
|
29227
|
+
}
|
|
29228
|
+
}
|
|
29229
|
+
}
|
|
29245
29230
|
/**
|
|
29246
29231
|
* Returns true if content was passed to the "start" slot
|
|
29247
29232
|
*/
|
|
@@ -29259,7 +29244,7 @@ class Range {
|
|
|
29259
29244
|
}
|
|
29260
29245
|
renderRangeSlider() {
|
|
29261
29246
|
var _a;
|
|
29262
|
-
const { min, max, step, handleKeyboard,
|
|
29247
|
+
const { min, max, step, handleKeyboard, pressedKnob, disabled, pin, ratioLower, ratioUpper, pinFormatter, inheritedAttributes, } = this;
|
|
29263
29248
|
let barStart = `${ratioLower * 100}%`;
|
|
29264
29249
|
let barEnd = `${100 - ratioUpper * 100}%`;
|
|
29265
29250
|
const rtl = isRTL$1(this.el);
|
|
@@ -29319,9 +29304,7 @@ class Range {
|
|
|
29319
29304
|
ticks.push(tick);
|
|
29320
29305
|
}
|
|
29321
29306
|
}
|
|
29322
|
-
return (hAsync("div", { class: "range-slider", ref: (rangeEl) => (this.rangeSlider = rangeEl),
|
|
29323
|
-
this.focusFromPointer = true;
|
|
29324
|
-
},
|
|
29307
|
+
return (hAsync("div", { class: "range-slider", ref: (rangeEl) => (this.rangeSlider = rangeEl),
|
|
29325
29308
|
/**
|
|
29326
29309
|
* Since the gesture has a threshold, the value
|
|
29327
29310
|
* won't change until the user has dragged past
|
|
@@ -29334,7 +29317,6 @@ class Range {
|
|
|
29334
29317
|
* we need to listen for the "pointerUp" event.
|
|
29335
29318
|
*/
|
|
29336
29319
|
onPointerUp: (ev) => {
|
|
29337
|
-
this.focusFromPointer = false;
|
|
29338
29320
|
/**
|
|
29339
29321
|
* If the user drags the knob on the web
|
|
29340
29322
|
* version (does not occur on mobile),
|
|
@@ -29360,10 +29342,7 @@ class Range {
|
|
|
29360
29342
|
'has-ticks': ticks.length > 0,
|
|
29361
29343
|
}, role: "presentation", style: barStyle, part: "bar-active" })), renderKnob(rtl, {
|
|
29362
29344
|
knob: 'A',
|
|
29363
|
-
position: this.dualKnobs ? (this.ratioA <= this.ratioB ? 'lower' : 'upper') : 'lower',
|
|
29364
|
-
dualKnobs: this.dualKnobs,
|
|
29365
29345
|
pressed: pressedKnob === 'A',
|
|
29366
|
-
focused: focusedKnob === 'A',
|
|
29367
29346
|
value: this.valA,
|
|
29368
29347
|
ratio: this.ratioA,
|
|
29369
29348
|
pin,
|
|
@@ -29378,10 +29357,7 @@ class Range {
|
|
|
29378
29357
|
}), this.dualKnobs &&
|
|
29379
29358
|
renderKnob(rtl, {
|
|
29380
29359
|
knob: 'B',
|
|
29381
|
-
position: this.ratioB <= this.ratioA ? 'lower' : 'upper',
|
|
29382
|
-
dualKnobs: this.dualKnobs,
|
|
29383
29360
|
pressed: pressedKnob === 'B',
|
|
29384
|
-
focused: focusedKnob === 'B',
|
|
29385
29361
|
value: this.valB,
|
|
29386
29362
|
ratio: this.ratioB,
|
|
29387
29363
|
pin,
|
|
@@ -29418,11 +29394,10 @@ class Range {
|
|
|
29418
29394
|
const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
|
|
29419
29395
|
const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
|
|
29420
29396
|
renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
|
|
29421
|
-
return (hAsync(Host, { key: '
|
|
29397
|
+
return (hAsync(Host, { key: 'ed646a42d51b8fe22012198c354cbcf5a389c108', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
|
|
29422
29398
|
[mode]: true,
|
|
29423
29399
|
'in-item': inItem,
|
|
29424
29400
|
'range-disabled': disabled,
|
|
29425
|
-
'range-dual-knobs': dualKnobs,
|
|
29426
29401
|
'range-pressed': pressedKnob !== undefined,
|
|
29427
29402
|
'range-has-pin': pin,
|
|
29428
29403
|
[`range-label-placement-${labelPlacement}`]: true,
|
|
@@ -29430,10 +29405,10 @@ class Range {
|
|
|
29430
29405
|
'range-item-end-adjustment': needsEndAdjustment,
|
|
29431
29406
|
'range-value-min': valueAtMin,
|
|
29432
29407
|
'range-value-max': valueAtMax,
|
|
29433
|
-
}) }, hAsync("label", { key: '
|
|
29408
|
+
}) }, hAsync("label", { key: '3083e4f2a624e3b268396acb4415f7c6ac44d851', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '47b92f94d2a0381dd7c5cd3dda54ed2942096715', class: {
|
|
29434
29409
|
'label-text-wrapper': true,
|
|
29435
29410
|
'label-text-wrapper-hidden': !hasLabel,
|
|
29436
|
-
}, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '
|
|
29411
|
+
}, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '5341da8d19eb29091df680978a0e20cc8f2eec65', class: "native-wrapper" }, hAsync("slot", { key: '09f1437078032676695442d8c827a16faa7dffe2', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: '02b7781970ea4d44f10b5f4627a2ca36eca45f85', name: "end" })))));
|
|
29437
29412
|
}
|
|
29438
29413
|
get el() { return getElement(this); }
|
|
29439
29414
|
static get watchers() { return {
|
|
@@ -29471,15 +29446,14 @@ class Range {
|
|
|
29471
29446
|
"labelPlacement": [1, "label-placement"],
|
|
29472
29447
|
"ratioA": [32],
|
|
29473
29448
|
"ratioB": [32],
|
|
29474
|
-
"pressedKnob": [32]
|
|
29475
|
-
"focusedKnob": [32]
|
|
29449
|
+
"pressedKnob": [32]
|
|
29476
29450
|
},
|
|
29477
29451
|
"$listeners$": undefined,
|
|
29478
29452
|
"$lazyBundleId$": "-",
|
|
29479
29453
|
"$attrsToReflect$": [["color", "color"]]
|
|
29480
29454
|
}; }
|
|
29481
29455
|
}
|
|
29482
|
-
const renderKnob = (rtl, { knob,
|
|
29456
|
+
const renderKnob = (rtl, { knob, value, ratio, min, max, disabled, pressed, pin, handleKeyboard, pinFormatter, inheritedAttributes, onKnobFocus, onKnobBlur, }) => {
|
|
29483
29457
|
const start = rtl ? 'right' : 'left';
|
|
29484
29458
|
const knobStyle = () => {
|
|
29485
29459
|
const style = {};
|
|
@@ -29502,45 +29476,14 @@ const renderKnob = (rtl, { knob, position, dualKnobs, value, ratio, min, max, di
|
|
|
29502
29476
|
}
|
|
29503
29477
|
}, onFocus: () => onKnobFocus(knob), onBlur: onKnobBlur, class: {
|
|
29504
29478
|
'range-knob-handle': true,
|
|
29505
|
-
'range-knob-
|
|
29506
|
-
'range-knob-
|
|
29479
|
+
'range-knob-a': knob === 'A',
|
|
29480
|
+
'range-knob-b': knob === 'B',
|
|
29507
29481
|
'range-knob-pressed': pressed,
|
|
29508
29482
|
'range-knob-min': value === min,
|
|
29509
29483
|
'range-knob-max': value === max,
|
|
29510
29484
|
'ion-activatable': true,
|
|
29511
29485
|
'ion-focusable': true,
|
|
29512
|
-
|
|
29513
|
-
}, part: [
|
|
29514
|
-
'knob-handle',
|
|
29515
|
-
dualKnobs && knob === 'A' && 'knob-handle-a',
|
|
29516
|
-
dualKnobs && knob === 'B' && 'knob-handle-b',
|
|
29517
|
-
dualKnobs && position === 'lower' && 'knob-handle-lower',
|
|
29518
|
-
dualKnobs && position === 'upper' && 'knob-handle-upper',
|
|
29519
|
-
pressed && 'pressed',
|
|
29520
|
-
focused && 'focused',
|
|
29521
|
-
]
|
|
29522
|
-
.filter(Boolean)
|
|
29523
|
-
.join(' '), style: knobStyle(), role: "slider", tabindex: disabled ? -1 : 0, "aria-label": ariaLabel !== undefined ? ariaLabel : null, "aria-labelledby": ariaLabel === undefined ? 'range-label' : null, "aria-valuemin": min, "aria-valuemax": max, "aria-disabled": disabled ? 'true' : null, "aria-valuenow": value }, pin && (hAsync("div", { class: "range-pin", role: "presentation", part: [
|
|
29524
|
-
'pin',
|
|
29525
|
-
dualKnobs && knob === 'A' && 'pin-a',
|
|
29526
|
-
dualKnobs && knob === 'B' && 'pin-b',
|
|
29527
|
-
dualKnobs && position === 'lower' && 'pin-lower',
|
|
29528
|
-
dualKnobs && position === 'upper' && 'pin-upper',
|
|
29529
|
-
pressed && 'pressed',
|
|
29530
|
-
focused && 'focused',
|
|
29531
|
-
]
|
|
29532
|
-
.filter(Boolean)
|
|
29533
|
-
.join(' ') }, pinFormatter(value))), hAsync("div", { class: "range-knob", role: "presentation", part: [
|
|
29534
|
-
'knob',
|
|
29535
|
-
dualKnobs && knob === 'A' && 'knob-a',
|
|
29536
|
-
dualKnobs && knob === 'B' && 'knob-b',
|
|
29537
|
-
dualKnobs && position === 'lower' && 'knob-lower',
|
|
29538
|
-
dualKnobs && position === 'upper' && 'knob-upper',
|
|
29539
|
-
pressed && 'pressed',
|
|
29540
|
-
focused && 'focused',
|
|
29541
|
-
]
|
|
29542
|
-
.filter(Boolean)
|
|
29543
|
-
.join(' ') })));
|
|
29486
|
+
}, style: knobStyle(), role: "slider", tabindex: disabled ? -1 : 0, "aria-label": ariaLabel !== undefined ? ariaLabel : null, "aria-labelledby": ariaLabel === undefined ? 'range-label' : null, "aria-valuemin": min, "aria-valuemax": max, "aria-disabled": disabled ? 'true' : null, "aria-valuenow": value }, pin && (hAsync("div", { class: "range-pin", role: "presentation", part: "pin" }, pinFormatter(value))), hAsync("div", { class: "range-knob", role: "presentation", part: "knob" })));
|
|
29544
29487
|
};
|
|
29545
29488
|
const ratioToValue = (ratio, min, max, step) => {
|
|
29546
29489
|
let value = (max - min) * ratio;
|
|
@@ -29757,6 +29700,8 @@ class Refresher {
|
|
|
29757
29700
|
this.ionRefresh = createEvent(this, "ionRefresh", 7);
|
|
29758
29701
|
this.ionPull = createEvent(this, "ionPull", 7);
|
|
29759
29702
|
this.ionStart = createEvent(this, "ionStart", 7);
|
|
29703
|
+
this.ionPullStart = createEvent(this, "ionPullStart", 7);
|
|
29704
|
+
this.ionPullEnd = createEvent(this, "ionPullEnd", 7);
|
|
29760
29705
|
this.appliedStyles = false;
|
|
29761
29706
|
this.didStart = false;
|
|
29762
29707
|
this.progress = 0;
|
|
@@ -29811,8 +29756,8 @@ class Refresher {
|
|
|
29811
29756
|
* than `1`. The default value is `1` which is equal to the speed of the cursor.
|
|
29812
29757
|
* If a negative value is passed in, the factor will be `1` instead.
|
|
29813
29758
|
*
|
|
29814
|
-
* For example
|
|
29815
|
-
* `10` pixels, instead of `10` pixels the content will be pulled by `12` pixels
|
|
29759
|
+
* For example, If the value passed is `1.2` and the content is dragged by
|
|
29760
|
+
* `10` pixels, instead of `10` pixels, the content will be pulled by `12` pixels
|
|
29816
29761
|
* (an increase of 20 percent). If the value passed is `0.8`, the dragged amount
|
|
29817
29762
|
* will be `8` pixels, less than the amount the cursor has moved.
|
|
29818
29763
|
*
|
|
@@ -29862,6 +29807,9 @@ class Refresher {
|
|
|
29862
29807
|
this.animations = [];
|
|
29863
29808
|
this.progress = 0;
|
|
29864
29809
|
this.state = 1 /* RefresherState.Inactive */;
|
|
29810
|
+
this.ionPullEnd.emit({
|
|
29811
|
+
reason: state === 32 /* RefresherState.Completing */ ? 'complete' : 'cancel',
|
|
29812
|
+
});
|
|
29865
29813
|
}
|
|
29866
29814
|
async setupiOSNativeRefresher(pullingSpinner, refreshingSpinner) {
|
|
29867
29815
|
this.elementToTransform = this.scrollEl;
|
|
@@ -29894,6 +29842,7 @@ class Refresher {
|
|
|
29894
29842
|
if (!this.didStart) {
|
|
29895
29843
|
this.didStart = true;
|
|
29896
29844
|
this.ionStart.emit();
|
|
29845
|
+
this.ionPullStart.emit();
|
|
29897
29846
|
}
|
|
29898
29847
|
// emit "pulling" on every move
|
|
29899
29848
|
if (this.pointerDown) {
|
|
@@ -29969,6 +29918,7 @@ class Refresher {
|
|
|
29969
29918
|
this.lastVelocityY = ev.velocityY;
|
|
29970
29919
|
},
|
|
29971
29920
|
onEnd: () => {
|
|
29921
|
+
const hadStarted = this.didStart;
|
|
29972
29922
|
this.pointerDown = false;
|
|
29973
29923
|
this.didStart = false;
|
|
29974
29924
|
if (this.needsCompletion) {
|
|
@@ -29978,6 +29928,13 @@ class Refresher {
|
|
|
29978
29928
|
else if (this.didRefresh) {
|
|
29979
29929
|
readTask(() => translateElement(this.elementToTransform, `${this.el.clientHeight}px`));
|
|
29980
29930
|
}
|
|
29931
|
+
else if (hadStarted) {
|
|
29932
|
+
/**
|
|
29933
|
+
* User started pulling but released before reaching the refresh threshold.
|
|
29934
|
+
* Emit ionPullEnd to complete the event pair.
|
|
29935
|
+
*/
|
|
29936
|
+
this.ionPullEnd.emit({ reason: 'cancel' });
|
|
29937
|
+
}
|
|
29981
29938
|
},
|
|
29982
29939
|
});
|
|
29983
29940
|
this.disabledChanged();
|
|
@@ -30024,6 +29981,7 @@ class Refresher {
|
|
|
30024
29981
|
ev.data.animation = animation;
|
|
30025
29982
|
animation.progressStart(false, 0);
|
|
30026
29983
|
this.ionStart.emit();
|
|
29984
|
+
this.ionPullStart.emit();
|
|
30027
29985
|
this.animations.push(animation);
|
|
30028
29986
|
return;
|
|
30029
29987
|
}
|
|
@@ -30046,6 +30004,7 @@ class Refresher {
|
|
|
30046
30004
|
this.animations = [];
|
|
30047
30005
|
this.gesture.enable(true);
|
|
30048
30006
|
this.state = 1 /* RefresherState.Inactive */;
|
|
30007
|
+
this.ionPullEnd.emit({ reason: 'cancel' });
|
|
30049
30008
|
});
|
|
30050
30009
|
return;
|
|
30051
30010
|
}
|
|
@@ -30290,6 +30249,7 @@ class Refresher {
|
|
|
30290
30249
|
if (!this.didStart) {
|
|
30291
30250
|
this.didStart = true;
|
|
30292
30251
|
this.ionStart.emit();
|
|
30252
|
+
this.ionPullStart.emit();
|
|
30293
30253
|
}
|
|
30294
30254
|
// emit "pulling" on every move
|
|
30295
30255
|
this.ionPull.emit();
|
|
@@ -30333,6 +30293,15 @@ class Refresher {
|
|
|
30333
30293
|
* available right away.
|
|
30334
30294
|
*/
|
|
30335
30295
|
this.restoreOverflowStyle();
|
|
30296
|
+
/**
|
|
30297
|
+
* If ionPullStart was emitted, we need to emit ionPullEnd
|
|
30298
|
+
* even though the gesture was aborted before reaching the
|
|
30299
|
+
* pulling threshold.
|
|
30300
|
+
*/
|
|
30301
|
+
if (this.didStart) {
|
|
30302
|
+
this.didStart = false;
|
|
30303
|
+
this.ionPullEnd.emit({ reason: 'cancel' });
|
|
30304
|
+
}
|
|
30336
30305
|
}
|
|
30337
30306
|
}
|
|
30338
30307
|
beginRefresh() {
|
|
@@ -30379,6 +30348,9 @@ class Refresher {
|
|
|
30379
30348
|
if (this.contentFullscreen && this.backgroundContentEl) {
|
|
30380
30349
|
(_a = this.backgroundContentEl) === null || _a === void 0 ? void 0 : _a.style.removeProperty('--offset-top');
|
|
30381
30350
|
}
|
|
30351
|
+
this.ionPullEnd.emit({
|
|
30352
|
+
reason: state === 32 /* RefresherState.Completing */ ? 'complete' : 'cancel',
|
|
30353
|
+
});
|
|
30382
30354
|
}, 600);
|
|
30383
30355
|
// reset the styles on the scroll element
|
|
30384
30356
|
// set that the refresh is actively cancelling/completing
|
|
@@ -30432,7 +30404,7 @@ class Refresher {
|
|
|
30432
30404
|
}
|
|
30433
30405
|
render() {
|
|
30434
30406
|
const mode = getIonMode$1(this);
|
|
30435
|
-
return (hAsync(Host, { key: '
|
|
30407
|
+
return (hAsync(Host, { key: 'bed0c2f44c32ecac24b7d8326ac7c7ef1d12c44f', slot: "fixed", class: {
|
|
30436
30408
|
[mode]: true,
|
|
30437
30409
|
// Used internally for styling
|
|
30438
30410
|
[`refresher-${mode}`]: true,
|
|
@@ -34164,6 +34136,7 @@ class Select {
|
|
|
34164
34136
|
const mode = getIonMode$1(this);
|
|
34165
34137
|
const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode, cssClass: ['select-modal', interfaceOptions.cssClass], component: 'ion-select-modal', componentProps: {
|
|
34166
34138
|
header: interfaceOptions.header,
|
|
34139
|
+
cancelText: this.cancelText,
|
|
34167
34140
|
multiple,
|
|
34168
34141
|
value,
|
|
34169
34142
|
options: this.createOverlaySelectOptions(this.childOpts, value),
|
|
@@ -34413,7 +34386,7 @@ class Select {
|
|
|
34413
34386
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
34414
34387
|
*/
|
|
34415
34388
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
34416
|
-
return (hAsync(Host, { key: '
|
|
34389
|
+
return (hAsync(Host, { key: 'b7fa907f8fbc54fd63e2d07a9bb5156d94fd5057', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
34417
34390
|
[mode]: true,
|
|
34418
34391
|
'in-item': inItem,
|
|
34419
34392
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -34431,7 +34404,7 @@ class Select {
|
|
|
34431
34404
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
34432
34405
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
34433
34406
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
34434
|
-
}) }, hAsync("label", { key: '
|
|
34407
|
+
}) }, hAsync("label", { key: '11137e6a8b0374e93923ddb5a4629972ded5f43c', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '99e3c09b5e6c2e7be493ed5834f991fffe45cfff', class: "select-wrapper-inner" }, hAsync("slot", { key: '740f0e5a913cb0209d5acae31c33a6ed8f672dfc', name: "start" }), hAsync("div", { key: 'b20e33c8b60915a5194948fcf8e22d7789f0b050', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '0199f338185d5fa2cdd977bb20516746bd9ddad5', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: '3b54de893cc8fc66df8588cee22e30d6f10850b3', class: "select-highlight" })), this.renderBottomContent()));
|
|
34435
34408
|
}
|
|
34436
34409
|
get el() { return getElement(this); }
|
|
34437
34410
|
static get watchers() { return {
|
|
@@ -34526,6 +34499,10 @@ const selectModalMdCss = ".sc-ion-select-modal-md-h{height:100%}ion-list.sc-ion-
|
|
|
34526
34499
|
class SelectModal {
|
|
34527
34500
|
constructor(hostRef) {
|
|
34528
34501
|
registerInstance(this, hostRef);
|
|
34502
|
+
/**
|
|
34503
|
+
* The text to display on the cancel button.
|
|
34504
|
+
*/
|
|
34505
|
+
this.cancelText = 'Close';
|
|
34529
34506
|
this.options = [];
|
|
34530
34507
|
}
|
|
34531
34508
|
closeModal() {
|
|
@@ -34592,7 +34569,7 @@ class SelectModal {
|
|
|
34592
34569
|
} }, option.text))));
|
|
34593
34570
|
}
|
|
34594
34571
|
render() {
|
|
34595
|
-
return (hAsync(Host, { key: '
|
|
34572
|
+
return (hAsync(Host, { key: '59ba79ffdbb69befe8e13745450c1071a1fe8c6c', class: getIonMode$1(this) }, hAsync("ion-header", { key: 'fa4d08ee43eec4b9add09d9ffabcba9ed13dd4af' }, hAsync("ion-toolbar", { key: 'b5e26cf092297c51c1dba3ce7963e7b03420393b' }, this.header !== undefined && hAsync("ion-title", { key: 'a8a93cdea4d119d3a17d8cef3878b8a1daa86e26' }, this.header), hAsync("ion-buttons", { key: 'bbc656713b41ef09099ed466f93a9cfbdaceecc1', slot: "end" }, hAsync("ion-button", { key: '80b8751fe4c96e06b620a0b9d17b2d9b3da2faa5', onClick: () => this.closeModal() }, this.cancelText)))), hAsync("ion-content", { key: 'a251fc00ae4cc7e6b3abe13caa10d95bb515558e' }, hAsync("ion-list", { key: 'bcaf38d6d91accfabb4a9d26783bc0e4801abe3c' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
|
|
34596
34573
|
}
|
|
34597
34574
|
get el() { return getElement(this); }
|
|
34598
34575
|
static get style() { return {
|
|
@@ -34605,6 +34582,7 @@ class SelectModal {
|
|
|
34605
34582
|
"$tagName$": "ion-select-modal",
|
|
34606
34583
|
"$members$": {
|
|
34607
34584
|
"header": [1],
|
|
34585
|
+
"cancelText": [1, "cancel-text"],
|
|
34608
34586
|
"multiple": [4],
|
|
34609
34587
|
"options": [16]
|
|
34610
34588
|
},
|