@ionic/core 8.6.2-dev.11749668763.17db572c → 8.6.2-dev.11749761258.1b46b6a9

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/hydrate/index.mjs CHANGED
@@ -24620,7 +24620,25 @@ class PickerColumn {
24620
24620
  * elementsFromPoint can returns multiple elements
24621
24621
  * so find the relevant picker column option if one exists.
24622
24622
  */
24623
- const newActiveElement = elementsAtPoint.find((el) => el.tagName === 'ION-PICKER-COLUMN-OPTION');
24623
+ let newActiveElement = elementsAtPoint.find((el) => el.tagName === 'ION-PICKER-COLUMN-OPTION');
24624
+ /**
24625
+ * TODO(FW-6594): Remove this workaround when iOS 16 is no longer
24626
+ * supported.
24627
+ *
24628
+ * If `elementsFromPoint` failed to find the active element (a known
24629
+ * issue on iOS 16 when elements are in a Shadow DOM and the
24630
+ * referenceNode is the document), a fallback to `elementFromPoint`
24631
+ * is used. While `elementsFromPoint` returns all elements,
24632
+ * `elementFromPoint` returns only the top-most, which is sufficient
24633
+ * for this use case and appears to handle Shadow DOM retargeting
24634
+ * more reliably in this specific iOS bug.
24635
+ */
24636
+ if (newActiveElement === undefined) {
24637
+ const fallbackActiveElement = referenceNode.elementFromPoint(centerX, centerY);
24638
+ if ((fallbackActiveElement === null || fallbackActiveElement === void 0 ? void 0 : fallbackActiveElement.tagName) === 'ION-PICKER-COLUMN-OPTION') {
24639
+ newActiveElement = fallbackActiveElement;
24640
+ }
24641
+ }
24624
24642
  if (activeEl !== undefined) {
24625
24643
  this.setPickerItemActiveState(activeEl, false);
24626
24644
  }
@@ -24988,12 +25006,12 @@ class PickerColumn {
24988
25006
  render() {
24989
25007
  const { color, disabled, isActive, numericInput } = this;
24990
25008
  const mode = getIonMode$1(this);
24991
- return (hAsync(Host, { key: 'a221dc10f1eb7c41637a16d2c7167c16939822fd', class: createColorClasses$1(color, {
25009
+ return (hAsync(Host, { key: 'ea0280355b2f87895bf7dddd289ccf473aa759f3', class: createColorClasses$1(color, {
24992
25010
  [mode]: true,
24993
25011
  ['picker-column-active']: isActive,
24994
25012
  ['picker-column-numeric-input']: numericInput,
24995
25013
  ['picker-column-disabled']: disabled,
24996
- }) }, this.renderAssistiveFocusable(), hAsync("slot", { key: '81b0656f606856f3dc0a657bf167d81a5011405e', name: "prefix" }), hAsync("div", { key: '71b9de67c04150255dd66592601c9d926db0c31c', "aria-hidden": "true", class: "picker-opts", ref: (el) => {
25014
+ }) }, this.renderAssistiveFocusable(), hAsync("slot", { key: '482992131cdeb85b1f61430d7fe1322a16345769', name: "prefix" }), hAsync("div", { key: '43f7f80d621d411ef366b3ca1396299e8c9a0c97', "aria-hidden": "true", class: "picker-opts", ref: (el) => {
24997
25015
  this.scrollEl = el;
24998
25016
  },
24999
25017
  /**
@@ -25014,7 +25032,7 @@ class PickerColumn {
25014
25032
  * To prevent this, we set the tabIndex to -1. This
25015
25033
  * will match the behavior of the other browsers.
25016
25034
  */
25017
- tabIndex: -1 }, hAsync("div", { key: 'ebdc2f08c83db0cf17b4be29f28fcb00f529601e', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '04ab56fcb8e6a7d6af00204c4560feb99ff34a56', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '6cf8f538903faf0fe1e4130f3eaf7b4e2e17cb52', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("slot", { key: '1cc392307b70c576be5b81b5226ceba735957f0f' }), hAsync("div", { key: '23e3f28e2a99b9aa8b7c8f68ad9583e3ca63e9e2', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '8a0563f09780c3116af0caebe4f40587ec1f041f', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '13207e248fc0009f37e0c90a3ee2bac2f130b856', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), hAsync("slot", { key: '55ecf2ab5f214f936c2468cbdb7952daf89416b8', name: "suffix" })));
25035
+ tabIndex: -1 }, hAsync("div", { key: '13a9ee686132af32240710730765de4c0003a9e8', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'dbccba4920833cfcebe9b0fc763458ec3053705a', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '682b43f83a5ea2e46067457f3af118535e111edb', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("slot", { key: 'd27e1e1dc0504b2f4627a29912a05bb91e8e413a' }), hAsync("div", { key: '61c948dbb9cf7469aed3018542bc0954211585ba', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'cf46c277fbee65e35ff44ce0d53ce12aa9cbf9db', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'bbc0e2d491d3f836ab849493ade2f7fa6ad9244e', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), hAsync("slot", { key: 'd25cbbe14b2914fe7b878d43b4e3f4a8c8177d24', name: "suffix" })));
25018
25036
  }
25019
25037
  get el() { return getElement(this); }
25020
25038
  static get watchers() { return {
@@ -29399,9 +29417,6 @@ class ReorderGroup {
29399
29417
  constructor(hostRef) {
29400
29418
  registerInstance(this, hostRef);
29401
29419
  this.ionItemReorder = createEvent(this, "ionItemReorder", 7);
29402
- this.ionReorderStart = createEvent(this, "ionReorderStart", 7);
29403
- this.ionReorderMove = createEvent(this, "ionReorderMove", 7);
29404
- this.ionReorderEnd = createEvent(this, "ionReorderEnd", 7);
29405
29420
  this.lastToIndex = -1;
29406
29421
  this.cachedHeights = [];
29407
29422
  this.scrollElTop = 0;
@@ -29447,7 +29462,7 @@ class ReorderGroup {
29447
29462
  }
29448
29463
  }
29449
29464
  /**
29450
- * Completes the reorder operation. Must be called by the `ionReorderEnd` event.
29465
+ * Completes the reorder operation. Must be called by the `ionItemReorder` event.
29451
29466
  *
29452
29467
  * If a list of items is passed, the list will be reordered and returned in the
29453
29468
  * proper order.
@@ -29514,7 +29529,6 @@ class ReorderGroup {
29514
29529
  this.state = 1 /* ReorderGroupState.Active */;
29515
29530
  item.classList.add(ITEM_REORDER_SELECTED);
29516
29531
  hapticSelectionStart();
29517
- this.ionReorderStart.emit();
29518
29532
  }
29519
29533
  onMove(ev) {
29520
29534
  const selectedItem = this.selectedItemEl;
@@ -29529,7 +29543,6 @@ class ReorderGroup {
29529
29543
  const currentY = Math.max(top, Math.min(ev.currentY, bottom));
29530
29544
  const deltaY = scroll + currentY - ev.startY;
29531
29545
  const normalizedY = currentY - top;
29532
- const fromIndex = this.lastToIndex;
29533
29546
  const toIndex = this.itemIndexForTop(normalizedY);
29534
29547
  if (toIndex !== this.lastToIndex) {
29535
29548
  const fromIndex = indexForItem(selectedItem);
@@ -29539,10 +29552,6 @@ class ReorderGroup {
29539
29552
  }
29540
29553
  // Update selected item position
29541
29554
  selectedItem.style.transform = `translateY(${deltaY}px)`;
29542
- this.ionReorderMove.emit({
29543
- from: fromIndex,
29544
- to: toIndex,
29545
- });
29546
29555
  }
29547
29556
  onEnd() {
29548
29557
  const selectedItemEl = this.selectedItemEl;
@@ -29554,14 +29563,9 @@ class ReorderGroup {
29554
29563
  const toIndex = this.lastToIndex;
29555
29564
  const fromIndex = indexForItem(selectedItemEl);
29556
29565
  if (toIndex === fromIndex) {
29557
- // TODO(FW-6590): Remove this once the deprecated event is removed
29558
- // Since the ionReorderEnd event is emitted at the end of every reorder
29559
- // gesture, even if the item did not move, the user can always call
29560
- // complete() to reset the state of the reorder group.
29561
29566
  this.completeReorder();
29562
29567
  }
29563
29568
  else {
29564
- // TODO(FW-6590): Remove this once the deprecated event is removed
29565
29569
  this.ionItemReorder.emit({
29566
29570
  from: fromIndex,
29567
29571
  to: toIndex,
@@ -29569,11 +29573,6 @@ class ReorderGroup {
29569
29573
  });
29570
29574
  }
29571
29575
  hapticSelectionEnd();
29572
- this.ionReorderEnd.emit({
29573
- from: fromIndex,
29574
- to: toIndex,
29575
- complete: this.completeReorder.bind(this),
29576
- });
29577
29576
  }
29578
29577
  completeReorder(listOrReorder) {
29579
29578
  const selectedItemEl = this.selectedItemEl;
@@ -29651,7 +29650,7 @@ class ReorderGroup {
29651
29650
  }
29652
29651
  render() {
29653
29652
  const mode = getIonMode$1(this);
29654
- return (hAsync(Host, { key: '9ff97c31e99392e6e23e117bc248bb7c28ab8e4c', class: {
29653
+ return (hAsync(Host, { key: 'f30613b361c5c3095b7928a92fb4b1e8d6eff600', class: {
29655
29654
  [mode]: true,
29656
29655
  'reorder-enabled': !this.disabled,
29657
29656
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ionic/core",
3
- "version": "8.6.2-dev.11749668763.17db572c",
3
+ "version": "8.6.2-dev.11749761258.1b46b6a9",
4
4
  "description": "Base components for Ionic",
5
5
  "keywords": [
6
6
  "ionic",
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import{r as t,d as i,a as e,h as s,e as n,j as o,k as a}from"./p-B_U9CtaY.js";import{d as r}from"./p-ZjP4CjeZ.js";import{r as l,g as c}from"./p-Do-uqmtX.js";import{b as d,a as h,h as p}from"./p-CKvCXMs9.js";import{c as f}from"./p-DiVJyqlX.js";import"./p-CIGNaXM1.js";const u=class{constructor(n){t(this,n),this.ionChange=i(this,"ionChange",7),this.isScrolling=!1,this.isColumnVisible=!1,this.canExitInputMode=!0,this.updateValueTextOnScroll=!1,this.ariaLabel=null,this.isActive=!1,this.disabled=!1,this.color="primary",this.numericInput=!1,this.centerPickerItemInView=(t,i=!0,e=!0)=>{const{isColumnVisible:s,scrollEl:n}=this;if(s&&n){const s=t.offsetTop-3*t.clientHeight+t.clientHeight/2;n.scrollTop!==s&&(this.canExitInputMode=e,this.updateValueTextOnScroll=!1,n.scroll({top:s,left:0,behavior:i?"smooth":void 0}))}},this.setPickerItemActiveState=(t,i)=>{i?t.classList.add(m):t.classList.remove(m)},this.inputModeChange=t=>{if(!this.numericInput)return;const{useInputMode:i,inputModeColumn:e}=t.detail;this.setInputModeActive(!(!i||void 0!==e&&e!==this.el))},this.setInputModeActive=t=>{this.isScrolling?this.scrollEndCallback=()=>{this.isActive=t}:this.isActive=t},this.initializeScrollListener=()=>{const t=e("ios"),{el:i,scrollEl:s}=this;let n,o=this.activeItem;const a=()=>{l((()=>{var e;if(!s)return;n&&(clearTimeout(n),n=void 0),this.isScrolling||(t&&d(),this.isScrolling=!0);const a=s.getBoundingClientRect(),l=a.x+a.width/2,c=a.y+a.height/2,f=i.getRootNode(),u=f instanceof ShadowRoot?f:r;if(void 0===u)return;const m=u.elementsFromPoint(l,c).find((t=>"ION-PICKER-COLUMN-OPTION"===t.tagName));void 0!==o&&this.setPickerItemActiveState(o,!1),void 0===m||m.disabled||(m!==o&&(t&&h(),this.canExitInputMode&&this.exitInputMode()),o=m,this.setPickerItemActiveState(m,!0),this.updateValueTextOnScroll&&(null===(e=this.assistiveFocusable)||void 0===e||e.setAttribute("aria-valuetext",this.getOptionValueText(m))),n=setTimeout((()=>{this.isScrolling=!1,this.updateValueTextOnScroll=!0,t&&p();const{scrollEndCallback:i}=this;i&&(i(),this.scrollEndCallback=void 0),this.canExitInputMode=!0,this.setValue(m.value)}),250))}))};l((()=>{s&&(s.addEventListener("scroll",a),this.destroyScrollListener=()=>{s.removeEventListener("scroll",a)})}))},this.exitInputMode=()=>{const{parentEl:t}=this;null!=t&&(t.exitInputMode(),this.el.classList.remove("picker-column-active"))},this.findNextOption=(t=1)=>{const{activeItem:i}=this;if(!i)return null;let e=i,s=i.nextElementSibling;for(;null!=s;){if(t>0&&t--,"ION-PICKER-COLUMN-OPTION"===s.tagName&&!s.disabled&&0===t)return s;e=s,s=s.nextElementSibling}return e},this.findPreviousOption=(t=1)=>{const{activeItem:i}=this;if(!i)return null;let e=i,s=i.previousElementSibling;for(;null!=s;){if(t>0&&t--,"ION-PICKER-COLUMN-OPTION"===s.tagName&&!s.disabled&&0===t)return s;e=s,s=s.previousElementSibling}return e},this.onKeyDown=t=>{const i=e("mobile");let s=null;switch(t.key){case"ArrowDown":s=i?this.findPreviousOption():this.findNextOption();break;case"ArrowUp":s=i?this.findNextOption():this.findPreviousOption();break;case"PageUp":s=i?this.findNextOption(5):this.findPreviousOption(5);break;case"PageDown":s=i?this.findPreviousOption(5):this.findNextOption(5);break;case"Home":s=this.el.querySelector("ion-picker-column-option:first-of-type");break;case"End":s=this.el.querySelector("ion-picker-column-option:last-of-type")}null!==s&&(this.setValue(s.value),t.preventDefault())},this.getOptionValueText=t=>{var i;return t?null!==(i=t.getAttribute("aria-label"))&&void 0!==i?i:t.innerText:""},this.renderAssistiveFocusable=()=>{const{activeItem:t}=this,i=this.getOptionValueText(t);return s("div",{ref:t=>this.assistiveFocusable=t,class:"assistive-focusable",role:"slider",tabindex:this.disabled?void 0:0,"aria-label":this.ariaLabel,"aria-valuemin":0,"aria-valuemax":0,"aria-valuenow":0,"aria-valuetext":i,"aria-orientation":"vertical",onKeyDown:t=>this.onKeyDown(t)})}}ariaLabelChanged(t){this.ariaLabel=t}valueChange(){this.isColumnVisible&&this.scrollActiveItemIntoView(!0)}componentWillLoad(){const t=this.parentEl=this.el.closest("ion-picker");new IntersectionObserver((t=>{if(t[t.length-1].isIntersecting){const{activeItem:t,el:i}=this;this.isColumnVisible=!0;const e=c(i).querySelector(`.${m}`);e&&this.setPickerItemActiveState(e,!1),this.scrollActiveItemIntoView(),t&&this.setPickerItemActiveState(t,!0),this.initializeScrollListener()}else this.isColumnVisible=!1,this.destroyScrollListener&&(this.destroyScrollListener(),this.destroyScrollListener=void 0)}),{threshold:.001,root:this.parentEl}).observe(this.el),null!==t&&t.addEventListener("ionInputModeChange",(t=>this.inputModeChange(t)))}componentDidRender(){const{el:t,activeItem:i,isColumnVisible:e,value:s}=this;if(e&&!i){const i=t.querySelector("ion-picker-column-option");null!==i&&i.value!==s&&this.setValue(i.value)}}async scrollActiveItemIntoView(t=!1){const i=this.activeItem;i&&this.centerPickerItemInView(i,t,!1)}async setValue(t){!0!==this.disabled&&this.value!==t&&(this.value=t,this.ionChange.emit({value:t}))}async setFocus(){this.assistiveFocusable&&this.assistiveFocusable.focus()}connectedCallback(){var t;this.ariaLabel=null!==(t=this.el.getAttribute("aria-label"))&&void 0!==t?t:"Select a value"}get activeItem(){const{value:t}=this;return Array.from(this.el.querySelectorAll("ion-picker-column-option")).find((i=>!(!this.disabled&&i.disabled)&&i.value===t))}render(){const{color:t,disabled:i,isActive:e,numericInput:a}=this,r=n(this);return s(o,{key:"a221dc10f1eb7c41637a16d2c7167c16939822fd",class:f(t,{[r]:!0,"picker-column-active":e,"picker-column-numeric-input":a,"picker-column-disabled":i})},this.renderAssistiveFocusable(),s("slot",{key:"81b0656f606856f3dc0a657bf167d81a5011405e",name:"prefix"}),s("div",{key:"71b9de67c04150255dd66592601c9d926db0c31c","aria-hidden":"true",class:"picker-opts",ref:t=>{this.scrollEl=t},tabIndex:-1},s("div",{key:"ebdc2f08c83db0cf17b4be29f28fcb00f529601e",class:"picker-item-empty","aria-hidden":"true"}," "),s("div",{key:"04ab56fcb8e6a7d6af00204c4560feb99ff34a56",class:"picker-item-empty","aria-hidden":"true"}," "),s("div",{key:"6cf8f538903faf0fe1e4130f3eaf7b4e2e17cb52",class:"picker-item-empty","aria-hidden":"true"}," "),s("slot",{key:"1cc392307b70c576be5b81b5226ceba735957f0f"}),s("div",{key:"23e3f28e2a99b9aa8b7c8f68ad9583e3ca63e9e2",class:"picker-item-empty","aria-hidden":"true"}," "),s("div",{key:"8a0563f09780c3116af0caebe4f40587ec1f041f",class:"picker-item-empty","aria-hidden":"true"}," "),s("div",{key:"13207e248fc0009f37e0c90a3ee2bac2f130b856",class:"picker-item-empty","aria-hidden":"true"}," ")),s("slot",{key:"55ecf2ab5f214f936c2468cbdb7952daf89416b8",name:"suffix"}))}get el(){return a(this)}static get watchers(){return{"aria-label":["ariaLabelChanged"],value:["valueChange"]}}},m="option-active";u.style=":host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;max-width:100%;height:200px;font-size:22px;text-align:center}.assistive-focusable{left:0;right:0;top:0;bottom:0;position:absolute;z-index:1;pointer-events:none}.assistive-focusable:focus{outline:none}.picker-opts{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-width:26px;max-height:200px;outline:none;text-align:inherit;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none}.picker-item-empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-opts::-webkit-scrollbar{display:none}::slotted(ion-picker-column-option){display:block;scroll-snap-align:center}.picker-item-empty,:host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled){scroll-snap-align:none}::slotted([slot=prefix]),::slotted([slot=suffix]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::slotted([slot=prefix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:end;justify-content:end}::slotted([slot=suffix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:start;justify-content:start}:host(.picker-column-disabled) .picker-opts{overflow-y:hidden}:host(.picker-column-disabled) ::slotted(ion-picker-column-option){cursor:default;opacity:0.4;pointer-events:none}@media (any-hover: hover){:host(:focus) .picker-opts{outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}";export{u as ion_picker_column}
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import{r as t,e as s,h as e,j as i,k as r,d as o}from"./p-B_U9CtaY.js";import{j as n,k as h}from"./p-BLV6ykCk.js";import{f as a,g as c}from"./p-QwEXyOze.js";import{r as d}from"./p-Do-uqmtX.js";import{b as l,a as m,h as b}from"./p-CKvCXMs9.js";import"./p-CIGNaXM1.js";import"./p-ZjP4CjeZ.js";const p=class{constructor(s){t(this,s)}onClick(t){const s=this.el.closest("ion-reorder-group");t.preventDefault(),s&&s.disabled||t.stopImmediatePropagation()}render(){const t=s(this);return e(i,{key:"e6807bb349725682e99e791ac65e729a360d64e8",class:t},e("slot",{key:"1c691cdbffa6427ba08dc12184c69559ed5d5506"},e("ion-icon",{key:"8b4150302cdca475379582b2251737b5e74079b1",icon:"ios"===t?n:h,lazy:!1,class:"reorder-icon",part:"icon","aria-hidden":"true"})))}get el(){return r(this)}};p.style={ios:":host([slot]){display:none;line-height:0;z-index:100}.reorder-icon{display:block}::slotted(ion-icon){font-size:dynamic-font(16px)}.reorder-icon{font-size:2.125rem;opacity:0.4}",md:":host([slot]){display:none;line-height:0;z-index:100}.reorder-icon{display:block}::slotted(ion-icon){font-size:dynamic-font(16px)}.reorder-icon{font-size:1.9375rem;opacity:0.3}"};const f=class{constructor(s){t(this,s),this.ionItemReorder=o(this,"ionItemReorder",7),this.ionReorderStart=o(this,"ionReorderStart",7),this.ionReorderMove=o(this,"ionReorderMove",7),this.ionReorderEnd=o(this,"ionReorderEnd",7),this.lastToIndex=-1,this.cachedHeights=[],this.scrollElTop=0,this.scrollElBottom=0,this.scrollElInitial=0,this.containerTop=0,this.containerBottom=0,this.state=0,this.disabled=!0}disabledChanged(){this.gesture&&this.gesture.enable(!this.disabled)}async connectedCallback(){const t=a(this.el);t&&(this.scrollEl=await c(t)),this.gesture=(await import("./p-Cl0B-RWe.js")).createGesture({el:this.el,gestureName:"reorder",gesturePriority:110,threshold:0,direction:"y",passive:!1,canStart:t=>this.canStart(t),onStart:t=>this.onStart(t),onMove:t=>this.onMove(t),onEnd:()=>this.onEnd()}),this.disabledChanged()}disconnectedCallback(){this.onEnd(),this.gesture&&(this.gesture.destroy(),this.gesture=void 0)}complete(t){return Promise.resolve(this.completeReorder(t))}canStart(t){if(this.selectedItemEl||0!==this.state)return!1;const s=t.event.target.closest("ion-reorder");if(!s)return!1;const e=k(s,this.el);return!!e&&(t.data=e,!0)}onStart(t){t.event.preventDefault();const s=this.selectedItemEl=t.data,e=this.cachedHeights;e.length=0;const i=this.el,r=i.children;if(!r||0===r.length)return;let o=0;for(let t=0;t<r.length;t++){const s=r[t];o+=s.offsetHeight,e.push(o),s.$ionIndex=t}const n=i.getBoundingClientRect();if(this.containerTop=n.top,this.containerBottom=n.bottom,this.scrollEl){const t=this.scrollEl.getBoundingClientRect();this.scrollElInitial=this.scrollEl.scrollTop,this.scrollElTop=t.top+y,this.scrollElBottom=t.bottom-y}else this.scrollElInitial=0,this.scrollElTop=0,this.scrollElBottom=0;this.lastToIndex=u(s),this.selectedItemHeight=s.offsetHeight,this.state=1,s.classList.add(w),l(),this.ionReorderStart.emit()}onMove(t){const s=this.selectedItemEl;if(!s)return;const e=this.autoscroll(t.currentY),i=this.containerTop-e,r=Math.max(i,Math.min(t.currentY,this.containerBottom-e)),o=e+r-t.startY,n=this.lastToIndex,h=this.itemIndexForTop(r-i);if(h!==this.lastToIndex){const t=u(s);this.lastToIndex=h,m(),this.reorderMove(t,h)}s.style.transform=`translateY(${o}px)`,this.ionReorderMove.emit({from:n,to:h})}onEnd(){const t=this.selectedItemEl;if(this.state=2,!t)return void(this.state=0);const s=this.lastToIndex,e=u(t);s===e?this.completeReorder():this.ionItemReorder.emit({from:e,to:s,complete:this.completeReorder.bind(this)}),b(),this.ionReorderEnd.emit({from:e,to:s,complete:this.completeReorder.bind(this)})}completeReorder(t){const s=this.selectedItemEl;if(s&&2===this.state){const e=this.el.children,i=e.length,r=this.lastToIndex,o=u(s);d((()=>{r===o||void 0!==t&&!0!==t||this.el.insertBefore(s,o<r?e[r+1]:e[r]);for(let t=0;t<i;t++)e[t].style.transform=""})),Array.isArray(t)&&(t=v(t,o,r)),s.style.transition="",s.classList.remove(w),this.selectedItemEl=void 0,this.state=0}return t}itemIndexForTop(t){const s=this.cachedHeights;for(let e=0;e<s.length;e++)if(s[e]>t)return e;return s.length-1}reorderMove(t,s){const e=this.selectedItemHeight,i=this.el.children;for(let r=0;r<i.length;r++){let o="";r>t&&r<=s?o=`translateY(${-e}px)`:r<t&&r>=s&&(o=`translateY(${e}px)`),i[r].style.transform=o}}autoscroll(t){if(!this.scrollEl)return 0;let s=0;return t<this.scrollElTop?s=-10:t>this.scrollElBottom&&(s=g),0!==s&&this.scrollEl.scrollBy(0,s),this.scrollEl.scrollTop-this.scrollElInitial}render(){const t=s(this);return e(i,{key:"9ff97c31e99392e6e23e117bc248bb7c28ab8e4c",class:{[t]:!0,"reorder-enabled":!this.disabled,"reorder-list-active":0!==this.state}})}get el(){return r(this)}static get watchers(){return{disabled:["disabledChanged"]}}},u=t=>t.$ionIndex,k=(t,s)=>{let e;for(;t;){if(e=t.parentElement,e===s)return t;t=e}},y=60,g=10,w="reorder-selected",v=(t,s,e)=>{const i=t[s];return t.splice(s,1),t.splice(e,0,i),t.slice()};f.style=".reorder-list-active>*{display:block;-webkit-transition:-webkit-transform 300ms;transition:-webkit-transform 300ms;transition:transform 300ms;transition:transform 300ms, -webkit-transform 300ms;will-change:transform}.reorder-enabled{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.reorder-enabled ion-reorder{display:block;cursor:-webkit-grab;cursor:grab;pointer-events:all;-ms-touch-action:none;touch-action:none}.reorder-selected,.reorder-selected ion-reorder{cursor:-webkit-grabbing;cursor:grabbing}.reorder-selected{position:relative;-webkit-transition:none !important;transition:none !important;-webkit-box-shadow:0 0 10px rgba(0, 0, 0, 0.4);box-shadow:0 0 10px rgba(0, 0, 0, 0.4);opacity:0.8;z-index:100}.reorder-visible ion-reorder .reorder-icon{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}";export{p as ion_reorder,f as ion_reorder_group}