1 |
- {"ast":null,"code":"import _asyncToGenerator from \"F:/workspace/202226701027/huinongbao-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\n/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { k as clamp } from './helpers.js';\nimport { b as hapticSelectionChanged, h as hapticSelectionEnd, a as hapticSelectionStart } from './haptic.js';\nimport { g as getClassMap } from './theme.js';\nimport { b as getIonMode } from './ionic-global.js';\nconst pickerColumnIosCss = \".picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}.picker-opt{inset-inline-start:0}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:20px;line-height:42px;pointer-events:none}.picker-opt{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-transform-origin:center center;transform-origin:center center;height:46px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:20px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}:host-context([dir=rtl]) .picker-opt{-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}[dir=rtl] .picker-opt{-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}@supports selector(:dir(rtl)){.picker-opt:dir(rtl){-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}}\";\nconst IonPickerLegacyColumnIosStyle0 = pickerColumnIosCss;\nconst pickerColumnMdCss = \".picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}.picker-opt{inset-inline-start:0}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:22px;line-height:42px;pointer-events:none}.picker-opt{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;height:43px;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:22px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}.picker-prefix,.picker-suffix,.picker-opt.picker-opt-selected{color:var(--ion-color-primary, #0054e9)}\";\nconst IonPickerLegacyColumnMdStyle0 = pickerColumnMdCss;\nconst PickerColumnCmp = /*@__PURE__*/proxyCustomElement(class PickerColumnCmp extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.ionPickerColChange = createEvent(this, \"ionPickerColChange\", 7);\n this.optHeight = 0;\n this.rotateFactor = 0;\n this.scaleFactor = 1;\n this.velocity = 0;\n this.y = 0;\n this.noAnimate = true;\n // `colDidChange` is a flag that gets set when the column is changed\n // dynamically. When this flag is set, the column will refresh\n // after the component re-renders to incorporate the new column data.\n // This is necessary because `this.refresh` queries for the option elements,\n // so it needs to wait for the latest elements to be available in the DOM.\n // Ex: column is created with 3 options. User updates the column data\n // to have 5 options. The column will still think it only has 3 options.\n this.colDidChange = false;\n this.col = undefined;\n }\n colChanged() {\n this.colDidChange = true;\n }\n connectedCallback() {\n var _this = this;\n return _asyncToGenerator(function* () {\n let pickerRotateFactor = 0;\n let pickerScaleFactor = 0.81;\n const mode = getIonMode(_this);\n if (mode === 'ios') {\n pickerRotateFactor = -0.46;\n pickerScaleFactor = 1;\n }\n _this.rotateFactor = pickerRotateFactor;\n _this.scaleFactor = pickerScaleFactor;\n _this.gesture = (yield import('./index3.js')).createGesture({\n el: _this.el,\n gestureName: 'picker-swipe',\n gesturePriority: 100,\n threshold: 0,\n passive: false,\n onStart: ev => _this.onStart(ev),\n onMove: ev => _this.onMove(ev),\n onEnd: ev => _this.onEnd(ev)\n });\n _this.gesture.enable();\n // Options have not been initialized yet\n // Animation must be disabled through the `noAnimate` flag\n // Otherwise, the options will render\n // at the top of the column and transition down\n _this.tmrId = setTimeout(() => {\n _this.noAnimate = false;\n // After initialization, `refresh()` will be called\n // At this point, animation will be enabled. The options will\n // animate as they are being selected.\n _this.refresh(true);\n }, 250);\n })();\n }\n componentDidLoad() {\n this.onDomChange();\n }\n componentDidUpdate() {\n // Options may have changed since last update.\n if (this.colDidChange) {\n // Animation must be disabled through the `onDomChange` parameter.\n // Otherwise, the recently added options will render\n // at the top of the column and transition down\n this.onDomChange(true, false);\n this.colDidChange = false;\n }\n }\n disconnectedCallback() {\n if (this.rafId !== undefined) cancelAnimationFrame(this.rafId);\n if (this.tmrId) clearTimeout(this.tmrId);\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n emitColChange() {\n this.ionPickerColChange.emit(this.col);\n }\n setSelected(selectedIndex, duration) {\n // if there is a selected index, then figure out it's y position\n // if there isn't a selected index, then just use the top y position\n const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;\n this.velocity = 0;\n // set what y position we're at\n if (this.rafId !== undefined) cancelAnimationFrame(this.rafId);\n this.update(y, duration, true);\n this.emitColChange();\n }\n update(y, duration, saveY) {\n if (!this.optsEl) {\n return;\n }\n // ensure we've got a good round number :)\n let translateY = 0;\n let translateZ = 0;\n const {\n col,\n rotateFactor\n } = this;\n const prevSelected = col.selectedIndex;\n const selectedIndex = col.selectedIndex = this.indexForY(-y);\n const durationStr = duration === 0 ? '' : duration + 'ms';\n const scaleStr = `scale(${this.scaleFactor})`;\n const children = this.optsEl.children;\n for (let i = 0; i < children.length; i++) {\n const button = children[i];\n const opt = col.options[i];\n const optOffset = i * this.optHeight + y;\n let transform = '';\n if (rotateFactor !== 0) {\n const rotateX = optOffset * rotateFactor;\n if (Math.abs(rotateX) <= 90) {\n translateY = 0;\n translateZ = 90;\n transform = `rotateX(${rotateX}deg) `;\n } else {\n translateY = -9999;\n }\n } else {\n translateZ = 0;\n translateY = optOffset;\n }\n const selected = selectedIndex === i;\n transform += `translate3d(0px,${translateY}px,${translateZ}px) `;\n if (this.scaleFactor !== 1 && !selected) {\n transform += scaleStr;\n }\n // Update transition duration\n if (this.noAnimate) {\n opt.duration = 0;\n button.style.transitionDuration = '';\n } else if (duration !== opt.duration) {\n opt.duration = duration;\n button.style.transitionDuration = durationStr;\n }\n // Update transform\n if (transform !== opt.transform) {\n opt.transform = transform;\n }\n button.style.transform = transform;\n /**\n * Ensure that the select column\n * item has the selected class\n */\n opt.selected = selected;\n if (selected) {\n button.classList.add(PICKER_OPT_SELECTED);\n } else {\n button.classList.remove(PICKER_OPT_SELECTED);\n }\n }\n this.col.prevSelected = prevSelected;\n if (saveY) {\n this.y = y;\n }\n if (this.lastIndex !== selectedIndex) {\n // have not set a last index yet\n hapticSelectionChanged();\n this.lastIndex = selectedIndex;\n }\n }\n decelerate() {\n if (this.velocity !== 0) {\n // still decelerating\n this.velocity *= DECELERATION_FRICTION;\n // do not let it go slower than a velocity of 1\n this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);\n let y = this.y + this.velocity;\n if (y > this.minY) {\n // whoops, it's trying to scroll up farther than the options we have!\n y = this.minY;\n this.velocity = 0;\n } else if (y < this.maxY) {\n // gahh, it's trying to scroll down farther than we can!\n y = this.maxY;\n this.velocity = 0;\n }\n this.update(y, 0, true);\n const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;\n if (notLockedIn) {\n // isn't locked in yet, keep decelerating until it is\n this.rafId = requestAnimationFrame(() => this.decelerate());\n } else {\n this.velocity = 0;\n this.emitColChange();\n hapticSelectionEnd();\n }\n } else if (this.y % this.optHeight !== 0) {\n // needs to still get locked into a position so options line up\n const currentPos = Math.abs(this.y % this.optHeight);\n // create a velocity in the direction it needs to scroll\n this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;\n this.decelerate();\n }\n }\n indexForY(y) {\n return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);\n }\n onStart(detail) {\n // We have to prevent default in order to block scrolling under the picker\n // but we DO NOT have to stop propagation, since we still want\n // some \"click\" events to capture\n if (detail.event.cancelable) {\n detail.event.preventDefault();\n }\n detail.event.stopPropagation();\n hapticSelectionStart();\n // reset everything\n if (this.rafId !== undefined) cancelAnimationFrame(this.rafId);\n const options = this.col.options;\n let minY = options.length - 1;\n let maxY = 0;\n for (let i = 0; i < options.length; i++) {\n if (!options[i].disabled) {\n minY = Math.min(minY, i);\n maxY = Math.max(maxY, i);\n }\n }\n this.minY = -(minY * this.optHeight);\n this.maxY = -(maxY * this.optHeight);\n }\n onMove(detail) {\n if (detail.event.cancelable) {\n detail.event.preventDefault();\n }\n detail.event.stopPropagation();\n // update the scroll position relative to pointer start position\n let y = this.y + detail.deltaY;\n if (y > this.minY) {\n // scrolling up higher than scroll area\n y = Math.pow(y, 0.8);\n this.bounceFrom = y;\n } else if (y < this.maxY) {\n // scrolling down below scroll area\n y += Math.pow(this.maxY - y, 0.9);\n this.bounceFrom = y;\n } else {\n this.bounceFrom = 0;\n }\n this.update(y, 0, false);\n }\n onEnd(detail) {\n if (this.bounceFrom > 0) {\n // bounce back up\n this.update(this.minY, 100, true);\n this.emitColChange();\n return;\n } else if (this.bounceFrom < 0) {\n // bounce back down\n this.update(this.maxY, 100, true);\n this.emitColChange();\n return;\n }\n this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);\n if (this.velocity === 0 && detail.deltaY === 0) {\n const opt = detail.event.target.closest('.picker-opt');\n if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {\n this.setSelected(parseInt(opt.getAttribute('opt-index'), 10), TRANSITION_DURATION);\n }\n } else {\n this.y += detail.deltaY;\n if (Math.abs(detail.velocityY) < 0.05) {\n const isScrollingUp = detail.deltaY > 0;\n const optHeightFraction = Math.abs(this.y) % this.optHeight / this.optHeight;\n if (isScrollingUp && optHeightFraction > 0.5) {\n this.velocity = Math.abs(this.velocity) * -1;\n } else if (!isScrollingUp && optHeightFraction <= 0.5) {\n this.velocity = Math.abs(this.velocity);\n }\n }\n this.decelerate();\n }\n }\n refresh(forceRefresh, animated) {\n var _a;\n let min = this.col.options.length - 1;\n let max = 0;\n const options = this.col.options;\n for (let i = 0; i < options.length; i++) {\n if (!options[i].disabled) {\n min = Math.min(min, i);\n max = Math.max(max, i);\n }\n }\n /**\n * Only update selected value if column has a\n * velocity of 0. If it does not, then the\n * column is animating might land on\n * a value different than the value at\n * selectedIndex\n */\n if (this.velocity !== 0) {\n return;\n }\n const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);\n if (this.col.prevSelected !== selectedIndex || forceRefresh) {\n const y = selectedIndex * this.optHeight * -1;\n const duration = animated ? TRANSITION_DURATION : 0;\n this.velocity = 0;\n this.update(y, duration, true);\n }\n }\n onDomChange(forceRefresh, animated) {\n const colEl = this.optsEl;\n if (colEl) {\n // DOM READ\n // We perfom a DOM read over a rendered item, this needs to happen after the first render or after the the column has changed\n this.optHeight = colEl.firstElementChild ? colEl.firstElementChild.clientHeight : 0;\n }\n this.refresh(forceRefresh, animated);\n }\n render() {\n const col = this.col;\n const mode = getIonMode(this);\n return h(Host, {\n key: 'c015eb8bc01b3287cbd1d71af0aa311b6be89d36',\n class: Object.assign({\n [mode]: true,\n 'picker-col': true,\n 'picker-opts-left': this.col.align === 'left',\n 'picker-opts-right': this.col.align === 'right'\n }, getClassMap(col.cssClass)),\n style: {\n 'max-width': this.col.columnWidth\n }\n }, col.prefix && h(\"div\", {\n key: 'f9de3fe2f5c7ad3256d6e5f44b6d03a2b1f96ffb',\n class: \"picker-prefix\",\n style: {\n width: col.prefixWidth\n }\n }, col.prefix), h(\"div\", {\n key: '10f9c12aa174f96c7cf9adc30efbb26695c0aa64',\n class: \"picker-opts\",\n style: {\n maxWidth: col.optionsWidth\n },\n ref: el => this.optsEl = el\n }, col.options.map((o, index) => h(\"button\", {\n \"aria-label\": o.ariaLabel,\n class: {\n 'picker-opt': true,\n 'picker-opt-disabled': !!o.disabled\n },\n \"opt-index\": index\n }, o.text))), col.suffix && h(\"div\", {\n key: '1d9c0892ce56e0da9044c79eb953827166f5190b',\n class: \"picker-suffix\",\n style: {\n width: col.suffixWidth\n }\n }, col.suffix));\n }\n get el() {\n return this;\n }\n static get watchers() {\n return {\n \"col\": [\"colChanged\"]\n };\n }\n static get style() {\n return {\n ios: IonPickerLegacyColumnIosStyle0,\n md: IonPickerLegacyColumnMdStyle0\n };\n }\n}, [32, \"ion-picker-legacy-column\", {\n \"col\": [16]\n}, undefined, {\n \"col\": [\"colChanged\"]\n}]);\nconst PICKER_OPT_SELECTED = 'picker-opt-selected';\nconst DECELERATION_FRICTION = 0.97;\nconst MAX_PICKER_SPEED = 90;\nconst TRANSITION_DURATION = 150;\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-picker-legacy-column\"];\n components.forEach(tagName => {\n switch (tagName) {\n case \"ion-picker-legacy-column\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, PickerColumnCmp);\n }\n break;\n }\n });\n}\nexport { PickerColumnCmp as P, defineCustomElement as d };","map":{"version":3,"names":["proxyCustomElement","HTMLElement","createEvent","h","Host","k","clamp","b","hapticSelectionChanged","hapticSelectionEnd","a","hapticSelectionStart","g","getClassMap","getIonMode","pickerColumnIosCss","IonPickerLegacyColumnIosStyle0","pickerColumnMdCss","IonPickerLegacyColumnMdStyle0","PickerColumnCmp","constructor","__registerHost","ionPickerColChange","optHeight","rotateFactor","scaleFactor","velocity","y","noAnimate","colDidChange","col","undefined","colChanged","connectedCallback","_this","_asyncToGenerator","pickerRotateFactor","pickerScaleFactor","mode","gesture","createGesture","el","gestureName","gesturePriority","threshold","passive","onStart","ev","onMove","onEnd","enable","tmrId","setTimeout","refresh","componentDidLoad","onDomChange","componentDidUpdate","disconnectedCallback","rafId","cancelAnimationFrame","clearTimeout","destroy","emitColChange","emit","setSelected","selectedIndex","duration","update","saveY","optsEl","translateY","translateZ","prevSelected","indexForY","durationStr","scaleStr","children","i","length","button","opt","options","optOffset","transform","rotateX","Math","abs","selected","style","transitionDuration","classList","add","PICKER_OPT_SELECTED","remove","lastIndex","decelerate","DECELERATION_FRICTION","max","min","minY","maxY","notLockedIn","round","requestAnimationFrame","currentPos","detail","event","cancelable","preventDefault","stopPropagation","disabled","deltaY","pow","bounceFrom","MAX_PICKER_SPEED","velocityY","target","closest","hasAttribute","parseInt","getAttribute","TRANSITION_DURATION","isScrollingUp","optHeightFraction","forceRefresh","animated","_a","colEl","firstElementChild","clientHeight","render","key","class","Object","assign","align","cssClass","columnWidth","prefix","width","prefixWidth","maxWidth","optionsWidth","ref","map","o","index","ariaLabel","text","suffix","suffixWidth","watchers","ios","md","defineCustomElement","customElements","components","forEach","tagName","get","define","P","d"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@ionic/core/components/picker-column2.js"],"sourcesContent":["/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { k as clamp } from './helpers.js';\nimport { b as hapticSelectionChanged, h as hapticSelectionEnd, a as hapticSelectionStart } from './haptic.js';\nimport { g as getClassMap } from './theme.js';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst pickerColumnIosCss = \".picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}.picker-opt{inset-inline-start:0}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:20px;line-height:42px;pointer-events:none}.picker-opt{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-transform-origin:center center;transform-origin:center center;height:46px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:20px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}:host-context([dir=rtl]) .picker-opt{-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}[dir=rtl] .picker-opt{-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}@supports selector(:dir(rtl)){.picker-opt:dir(rtl){-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}}\";\nconst IonPickerLegacyColumnIosStyle0 = pickerColumnIosCss;\n\nconst pickerColumnMdCss = \".picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}.picker-opt{inset-inline-start:0}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:22px;line-height:42px;pointer-events:none}.picker-opt{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;height:43px;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:22px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}.picker-prefix,.picker-suffix,.picker-opt.picker-opt-selected{color:var(--ion-color-primary, #0054e9)}\";\nconst IonPickerLegacyColumnMdStyle0 = pickerColumnMdCss;\n\nconst PickerColumnCmp = /*@__PURE__*/ proxyCustomElement(class PickerColumnCmp extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.ionPickerColChange = createEvent(this, \"ionPickerColChange\", 7);\n this.optHeight = 0;\n this.rotateFactor = 0;\n this.scaleFactor = 1;\n this.velocity = 0;\n this.y = 0;\n this.noAnimate = true;\n // `colDidChange` is a flag that gets set when the column is changed\n // dynamically. When this flag is set, the column will refresh\n // after the component re-renders to incorporate the new column data.\n // This is necessary because `this.refresh` queries for the option elements,\n // so it needs to wait for the latest elements to be available in the DOM.\n // Ex: column is created with 3 options. User updates the column data\n // to have 5 options. The column will still think it only has 3 options.\n this.colDidChange = false;\n this.col = undefined;\n }\n colChanged() {\n this.colDidChange = true;\n }\n async connectedCallback() {\n let pickerRotateFactor = 0;\n let pickerScaleFactor = 0.81;\n const mode = getIonMode(this);\n if (mode === 'ios') {\n pickerRotateFactor = -0.46;\n pickerScaleFactor = 1;\n }\n this.rotateFactor = pickerRotateFactor;\n this.scaleFactor = pickerScaleFactor;\n this.gesture = (await import('./index3.js')).createGesture({\n el: this.el,\n gestureName: 'picker-swipe',\n gesturePriority: 100,\n threshold: 0,\n passive: false,\n onStart: (ev) => this.onStart(ev),\n onMove: (ev) => this.onMove(ev),\n onEnd: (ev) => this.onEnd(ev),\n });\n this.gesture.enable();\n // Options have not been initialized yet\n // Animation must be disabled through the `noAnimate` flag\n // Otherwise, the options will render\n // at the top of the column and transition down\n this.tmrId = setTimeout(() => {\n this.noAnimate = false;\n // After initialization, `refresh()` will be called\n // At this point, animation will be enabled. The options will\n // animate as they are being selected.\n this.refresh(true);\n }, 250);\n }\n componentDidLoad() {\n this.onDomChange();\n }\n componentDidUpdate() {\n // Options may have changed since last update.\n if (this.colDidChange) {\n // Animation must be disabled through the `onDomChange` parameter.\n // Otherwise, the recently added options will render\n // at the top of the column and transition down\n this.onDomChange(true, false);\n this.colDidChange = false;\n }\n }\n disconnectedCallback() {\n if (this.rafId !== undefined)\n cancelAnimationFrame(this.rafId);\n if (this.tmrId)\n clearTimeout(this.tmrId);\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n emitColChange() {\n this.ionPickerColChange.emit(this.col);\n }\n setSelected(selectedIndex, duration) {\n // if there is a selected index, then figure out it's y position\n // if there isn't a selected index, then just use the top y position\n const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;\n this.velocity = 0;\n // set what y position we're at\n if (this.rafId !== undefined)\n cancelAnimationFrame(this.rafId);\n this.update(y, duration, true);\n this.emitColChange();\n }\n update(y, duration, saveY) {\n if (!this.optsEl) {\n return;\n }\n // ensure we've got a good round number :)\n let translateY = 0;\n let translateZ = 0;\n const { col, rotateFactor } = this;\n const prevSelected = col.selectedIndex;\n const selectedIndex = (col.selectedIndex = this.indexForY(-y));\n const durationStr = duration === 0 ? '' : duration + 'ms';\n const scaleStr = `scale(${this.scaleFactor})`;\n const children = this.optsEl.children;\n for (let i = 0; i < children.length; i++) {\n const button = children[i];\n const opt = col.options[i];\n const optOffset = i * this.optHeight + y;\n let transform = '';\n if (rotateFactor !== 0) {\n const rotateX = optOffset * rotateFactor;\n if (Math.abs(rotateX) <= 90) {\n translateY = 0;\n translateZ = 90;\n transform = `rotateX(${rotateX}deg) `;\n }\n else {\n translateY = -9999;\n }\n }\n else {\n translateZ = 0;\n translateY = optOffset;\n }\n const selected = selectedIndex === i;\n transform += `translate3d(0px,${translateY}px,${translateZ}px) `;\n if (this.scaleFactor !== 1 && !selected) {\n transform += scaleStr;\n }\n // Update transition duration\n if (this.noAnimate) {\n opt.duration = 0;\n button.style.transitionDuration = '';\n }\n else if (duration !== opt.duration) {\n opt.duration = duration;\n button.style.transitionDuration = durationStr;\n }\n // Update transform\n if (transform !== opt.transform) {\n opt.transform = transform;\n }\n button.style.transform = transform;\n /**\n * Ensure that the select column\n * item has the selected class\n */\n opt.selected = selected;\n if (selected) {\n button.classList.add(PICKER_OPT_SELECTED);\n }\n else {\n button.classList.remove(PICKER_OPT_SELECTED);\n }\n }\n this.col.prevSelected = prevSelected;\n if (saveY) {\n this.y = y;\n }\n if (this.lastIndex !== selectedIndex) {\n // have not set a last index yet\n hapticSelectionChanged();\n this.lastIndex = selectedIndex;\n }\n }\n decelerate() {\n if (this.velocity !== 0) {\n // still decelerating\n this.velocity *= DECELERATION_FRICTION;\n // do not let it go slower than a velocity of 1\n this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);\n let y = this.y + this.velocity;\n if (y > this.minY) {\n // whoops, it's trying to scroll up farther than the options we have!\n y = this.minY;\n this.velocity = 0;\n }\n else if (y < this.maxY) {\n // gahh, it's trying to scroll down farther than we can!\n y = this.maxY;\n this.velocity = 0;\n }\n this.update(y, 0, true);\n const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;\n if (notLockedIn) {\n // isn't locked in yet, keep decelerating until it is\n this.rafId = requestAnimationFrame(() => this.decelerate());\n }\n else {\n this.velocity = 0;\n this.emitColChange();\n hapticSelectionEnd();\n }\n }\n else if (this.y % this.optHeight !== 0) {\n // needs to still get locked into a position so options line up\n const currentPos = Math.abs(this.y % this.optHeight);\n // create a velocity in the direction it needs to scroll\n this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;\n this.decelerate();\n }\n }\n indexForY(y) {\n return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);\n }\n onStart(detail) {\n // We have to prevent default in order to block scrolling under the picker\n // but we DO NOT have to stop propagation, since we still want\n // some \"click\" events to capture\n if (detail.event.cancelable) {\n detail.event.preventDefault();\n }\n detail.event.stopPropagation();\n hapticSelectionStart();\n // reset everything\n if (this.rafId !== undefined)\n cancelAnimationFrame(this.rafId);\n const options = this.col.options;\n let minY = options.length - 1;\n let maxY = 0;\n for (let i = 0; i < options.length; i++) {\n if (!options[i].disabled) {\n minY = Math.min(minY, i);\n maxY = Math.max(maxY, i);\n }\n }\n this.minY = -(minY * this.optHeight);\n this.maxY = -(maxY * this.optHeight);\n }\n onMove(detail) {\n if (detail.event.cancelable) {\n detail.event.preventDefault();\n }\n detail.event.stopPropagation();\n // update the scroll position relative to pointer start position\n let y = this.y + detail.deltaY;\n if (y > this.minY) {\n // scrolling up higher than scroll area\n y = Math.pow(y, 0.8);\n this.bounceFrom = y;\n }\n else if (y < this.maxY) {\n // scrolling down below scroll area\n y += Math.pow(this.maxY - y, 0.9);\n this.bounceFrom = y;\n }\n else {\n this.bounceFrom = 0;\n }\n this.update(y, 0, false);\n }\n onEnd(detail) {\n if (this.bounceFrom > 0) {\n // bounce back up\n this.update(this.minY, 100, true);\n this.emitColChange();\n return;\n }\n else if (this.bounceFrom < 0) {\n // bounce back down\n this.update(this.maxY, 100, true);\n this.emitColChange();\n return;\n }\n this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);\n if (this.velocity === 0 && detail.deltaY === 0) {\n const opt = detail.event.target.closest('.picker-opt');\n if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {\n this.setSelected(parseInt(opt.getAttribute('opt-index'), 10), TRANSITION_DURATION);\n }\n }\n else {\n this.y += detail.deltaY;\n if (Math.abs(detail.velocityY) < 0.05) {\n const isScrollingUp = detail.deltaY > 0;\n const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;\n if (isScrollingUp && optHeightFraction > 0.5) {\n this.velocity = Math.abs(this.velocity) * -1;\n }\n else if (!isScrollingUp && optHeightFraction <= 0.5) {\n this.velocity = Math.abs(this.velocity);\n }\n }\n this.decelerate();\n }\n }\n refresh(forceRefresh, animated) {\n var _a;\n let min = this.col.options.length - 1;\n let max = 0;\n const options = this.col.options;\n for (let i = 0; i < options.length; i++) {\n if (!options[i].disabled) {\n min = Math.min(min, i);\n max = Math.max(max, i);\n }\n }\n /**\n * Only update selected value if column has a\n * velocity of 0. If it does not, then the\n * column is animating might land on\n * a value different than the value at\n * selectedIndex\n */\n if (this.velocity !== 0) {\n return;\n }\n const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);\n if (this.col.prevSelected !== selectedIndex || forceRefresh) {\n const y = selectedIndex * this.optHeight * -1;\n const duration = animated ? TRANSITION_DURATION : 0;\n this.velocity = 0;\n this.update(y, duration, true);\n }\n }\n onDomChange(forceRefresh, animated) {\n const colEl = this.optsEl;\n if (colEl) {\n // DOM READ\n // We perfom a DOM read over a rendered item, this needs to happen after the first render or after the the column has changed\n this.optHeight = colEl.firstElementChild ? colEl.firstElementChild.clientHeight : 0;\n }\n this.refresh(forceRefresh, animated);\n }\n render() {\n const col = this.col;\n const mode = getIonMode(this);\n return (h(Host, { key: 'c015eb8bc01b3287cbd1d71af0aa311b6be89d36', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {\n 'max-width': this.col.columnWidth,\n } }, col.prefix && (h(\"div\", { key: 'f9de3fe2f5c7ad3256d6e5f44b6d03a2b1f96ffb', class: \"picker-prefix\", style: { width: col.prefixWidth } }, col.prefix)), h(\"div\", { key: '10f9c12aa174f96c7cf9adc30efbb26695c0aa64', class: \"picker-opts\", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (h(\"button\", { \"aria-label\": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, \"opt-index\": index }, o.text)))), col.suffix && (h(\"div\", { key: '1d9c0892ce56e0da9044c79eb953827166f5190b', class: \"picker-suffix\", style: { width: col.suffixWidth } }, col.suffix))));\n }\n get el() { return this; }\n static get watchers() { return {\n \"col\": [\"colChanged\"]\n }; }\n static get style() { return {\n ios: IonPickerLegacyColumnIosStyle0,\n md: IonPickerLegacyColumnMdStyle0\n }; }\n}, [32, \"ion-picker-legacy-column\", {\n \"col\": [16]\n }, undefined, {\n \"col\": [\"colChanged\"]\n }]);\nconst PICKER_OPT_SELECTED = 'picker-opt-selected';\nconst DECELERATION_FRICTION = 0.97;\nconst MAX_PICKER_SPEED = 90;\nconst TRANSITION_DURATION = 150;\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-picker-legacy-column\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-picker-legacy-column\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, PickerColumnCmp);\n }\n break;\n } });\n}\n\nexport { PickerColumnCmp as P, defineCustomElement as d };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|