{"ast":null,"code":"import _asyncToGenerator from \"C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport { r as registerInstance, h, H as Host, i as getElement, e as createEvent } from './index-7a8b7a1c.js';\nimport { b as getIonMode } from './ionic-global-63a97a32.js';\nimport { c as createColorClasses } from './theme-ff3fc52f.js';\nimport { n as isEndSide } from './helpers-1457892a.js';\nconst itemOptionIosCss = \":host{--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff);background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit)}:host(.in-list.item-options-end:last-child){padding-right:calc(.7em + var(--ion-safe-area-right))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-list.item-options-end:last-child){padding-right:unset;-webkit-padding-end:calc(.7em + var(--ion-safe-area-right));padding-inline-end:calc(.7em + var(--ion-safe-area-right))}}:host(.in-list.item-options-start:first-child){padding-left:calc(.7em + var(--ion-safe-area-left))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-list.item-options-start:first-child){padding-left:unset;-webkit-padding-start:calc(.7em + var(--ion-safe-area-left));padding-inline-start:calc(.7em + var(--ion-safe-area-left))}}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}.button-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:0.7em;padding-right:0.7em;padding-top:0;padding-bottom:0;display:inline-block;position:relative;width:100%;height:100%;border:0;outline:none;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:0.7em;padding-inline-start:0.7em;-webkit-padding-end:0.7em;padding-inline-end:0.7em}}.button-inner{display:-ms-flexbox;display:flex;-ms-flex-flow:column nowrap;flex-flow:column nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.horizontal-wrapper{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%}::slotted(*){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]){margin-left:0;margin-right:5px;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:5px;margin-inline-end:5px}}::slotted([slot=end]){margin-left:5px;margin-right:0;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:5px;margin-inline-start:5px;-webkit-margin-end:0;margin-inline-end:0}}::slotted([slot=icon-only]){padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:10px;margin-right:10px;margin-top:0;margin-bottom:0;min-width:0.9em;font-size:1.8em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=icon-only]){margin-left:unset;margin-right:unset;-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:10px;margin-inline-end:10px}}:host(.item-option-expandable){-ms-flex-negative:0;flex-shrink:0;-webkit-transition-duration:0;transition-duration:0;-webkit-transition-property:none;transition-property:none;-webkit-transition-timing-function:cubic-bezier(0.65, 0.05, 0.36, 1);transition-timing-function:cubic-bezier(0.65, 0.05, 0.36, 1)}:host(.item-option-disabled){pointer-events:none}:host(.item-option-disabled) .button-native{cursor:default;opacity:0.5;pointer-events:none}:host{font-size:16px}:host(.ion-activated){background:var(--ion-color-primary-shade, #3171e0)}:host(.ion-color.ion-activated){background:var(--ion-color-shade)}\";\nconst itemOptionMdCss = \":host{--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff);background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit)}:host(.in-list.item-options-end:last-child){padding-right:calc(.7em + var(--ion-safe-area-right))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-list.item-options-end:last-child){padding-right:unset;-webkit-padding-end:calc(.7em + var(--ion-safe-area-right));padding-inline-end:calc(.7em + var(--ion-safe-area-right))}}:host(.in-list.item-options-start:first-child){padding-left:calc(.7em + var(--ion-safe-area-left))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-list.item-options-start:first-child){padding-left:unset;-webkit-padding-start:calc(.7em + var(--ion-safe-area-left));padding-inline-start:calc(.7em + var(--ion-safe-area-left))}}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}.button-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:0.7em;padding-right:0.7em;padding-top:0;padding-bottom:0;display:inline-block;position:relative;width:100%;height:100%;border:0;outline:none;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:0.7em;padding-inline-start:0.7em;-webkit-padding-end:0.7em;padding-inline-end:0.7em}}.button-inner{display:-ms-flexbox;display:flex;-ms-flex-flow:column nowrap;flex-flow:column nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.horizontal-wrapper{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%}::slotted(*){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]){margin-left:0;margin-right:5px;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:5px;margin-inline-end:5px}}::slotted([slot=end]){margin-left:5px;margin-right:0;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:5px;margin-inline-start:5px;-webkit-margin-end:0;margin-inline-end:0}}::slotted([slot=icon-only]){padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:10px;margin-right:10px;margin-top:0;margin-bottom:0;min-width:0.9em;font-size:1.8em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=icon-only]){margin-left:unset;margin-right:unset;-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:10px;margin-inline-end:10px}}:host(.item-option-expandable){-ms-flex-negative:0;flex-shrink:0;-webkit-transition-duration:0;transition-duration:0;-webkit-transition-property:none;transition-property:none;-webkit-transition-timing-function:cubic-bezier(0.65, 0.05, 0.36, 1);transition-timing-function:cubic-bezier(0.65, 0.05, 0.36, 1)}:host(.item-option-disabled){pointer-events:none}:host(.item-option-disabled) .button-native{cursor:default;opacity:0.5;pointer-events:none}:host{font-size:14px;font-weight:500;text-transform:uppercase}\";\nconst ItemOption = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n /**\n * If `true`, the user cannot interact with the item option.\n */\n this.disabled = false;\n /**\n * If `true`, the option will expand to take up the available width and cover any other options.\n */\n this.expandable = false;\n /**\n * The type of the button.\n */\n this.type = 'button';\n this.onClick = ev => {\n const el = ev.target.closest('ion-item-option');\n if (el) {\n ev.preventDefault();\n }\n };\n }\n render() {\n const {\n disabled,\n expandable,\n href\n } = this;\n const TagType = href === undefined ? 'button' : 'a';\n const mode = getIonMode(this);\n const attrs = TagType === 'button' ? {\n type: this.type\n } : {\n download: this.download,\n href: this.href,\n target: this.target\n };\n return h(Host, {\n onClick: this.onClick,\n class: createColorClasses(this.color, {\n [mode]: true,\n 'item-option-disabled': disabled,\n 'item-option-expandable': expandable,\n 'ion-activatable': true\n })\n }, h(TagType, Object.assign({}, attrs, {\n class: \"button-native\",\n part: \"native\",\n disabled: disabled\n }), h(\"span\", {\n class: \"button-inner\"\n }, h(\"slot\", {\n name: \"top\"\n }), h(\"div\", {\n class: \"horizontal-wrapper\"\n }, h(\"slot\", {\n name: \"start\"\n }), h(\"slot\", {\n name: \"icon-only\"\n }), h(\"slot\", null), h(\"slot\", {\n name: \"end\"\n })), h(\"slot\", {\n name: \"bottom\"\n })), mode === 'md' && h(\"ion-ripple-effect\", null)));\n }\n get el() {\n return getElement(this);\n }\n};\nItemOption.style = {\n ios: itemOptionIosCss,\n md: itemOptionMdCss\n};\nconst itemOptionsIosCss = \"ion-item-options{top:0;right:0;-ms-flex-pack:end;justify-content:flex-end;display:none;position:absolute;height:100%;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1}[dir=rtl] ion-item-options,:host-context([dir=rtl]) ion-item-options{-ms-flex-pack:start;justify-content:flex-start}[dir=rtl] ion-item-options:not(.item-options-end),:host-context([dir=rtl]) ion-item-options:not(.item-options-end){right:auto;left:0;-ms-flex-pack:end;justify-content:flex-end}.item-options-start{right:auto;left:0;-ms-flex-pack:start;justify-content:flex-start}[dir=rtl] .item-options-start,:host-context([dir=rtl]) .item-options-start{-ms-flex-pack:end;justify-content:flex-end}.item-options-start ion-item-option:first-child{padding-right:var(--ion-safe-area-left)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-options-start ion-item-option:first-child{padding-right:unset;-webkit-padding-end:var(--ion-safe-area-left);padding-inline-end:var(--ion-safe-area-left)}}.item-options-end ion-item-option:last-child{padding-right:var(--ion-safe-area-right)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-options-end ion-item-option:last-child{padding-right:unset;-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right)}}[dir=rtl] .item-sliding-active-slide.item-sliding-active-options-start ion-item-options:not(.item-options-end),:host-context([dir=rtl]) .item-sliding-active-slide.item-sliding-active-options-start ion-item-options:not(.item-options-end){width:100%;visibility:visible}.item-sliding-active-slide ion-item-options{display:-ms-flexbox;display:flex;visibility:hidden}.item-sliding-active-slide.item-sliding-active-options-start .item-options-start,.item-sliding-active-slide.item-sliding-active-options-end ion-item-options:not(.item-options-start){width:100%;visibility:visible}.item-options-ios{border-bottom-width:0;border-bottom-style:solid;border-bottom-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)))}.item-options-ios.item-options-end{border-bottom-width:0.55px}.list-ios-lines-none .item-options-ios{border-bottom-width:0}.list-ios-lines-full .item-options-ios,.list-ios-lines-inset .item-options-ios.item-options-end{border-bottom-width:0.55px}\";\nconst itemOptionsMdCss = \"ion-item-options{top:0;right:0;-ms-flex-pack:end;justify-content:flex-end;display:none;position:absolute;height:100%;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1}[dir=rtl] ion-item-options,:host-context([dir=rtl]) ion-item-options{-ms-flex-pack:start;justify-content:flex-start}[dir=rtl] ion-item-options:not(.item-options-end),:host-context([dir=rtl]) ion-item-options:not(.item-options-end){right:auto;left:0;-ms-flex-pack:end;justify-content:flex-end}.item-options-start{right:auto;left:0;-ms-flex-pack:start;justify-content:flex-start}[dir=rtl] .item-options-start,:host-context([dir=rtl]) .item-options-start{-ms-flex-pack:end;justify-content:flex-end}.item-options-start ion-item-option:first-child{padding-right:var(--ion-safe-area-left)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-options-start ion-item-option:first-child{padding-right:unset;-webkit-padding-end:var(--ion-safe-area-left);padding-inline-end:var(--ion-safe-area-left)}}.item-options-end ion-item-option:last-child{padding-right:var(--ion-safe-area-right)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-options-end ion-item-option:last-child{padding-right:unset;-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right)}}[dir=rtl] .item-sliding-active-slide.item-sliding-active-options-start ion-item-options:not(.item-options-end),:host-context([dir=rtl]) .item-sliding-active-slide.item-sliding-active-options-start ion-item-options:not(.item-options-end){width:100%;visibility:visible}.item-sliding-active-slide ion-item-options{display:-ms-flexbox;display:flex;visibility:hidden}.item-sliding-active-slide.item-sliding-active-options-start .item-options-start,.item-sliding-active-slide.item-sliding-active-options-end ion-item-options:not(.item-options-start){width:100%;visibility:visible}.item-options-md{border-bottom-width:0;border-bottom-style:solid;border-bottom-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))))}.list-md-lines-none .item-options-md{border-bottom-width:0}.list-md-lines-full .item-options-md,.list-md-lines-inset .item-options-md.item-options-end{border-bottom-width:1px}\";\nconst ItemOptions = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.ionSwipe = createEvent(this, \"ionSwipe\", 7);\n /**\n * The side the option button should be on. Possible values: `\"start\"` and `\"end\"`. If you have multiple `ion-item-options`, a side must be provided for each.\n *\n */\n this.side = 'end';\n }\n /** @internal */\n fireSwipeEvent() {\n var _this = this;\n return _asyncToGenerator(function* () {\n _this.ionSwipe.emit({\n side: _this.side\n });\n })();\n }\n render() {\n const mode = getIonMode(this);\n const isEnd = isEndSide(this.side);\n return h(Host, {\n class: {\n [mode]: true,\n // Used internally for styling\n [`item-options-${mode}`]: true,\n 'item-options-start': !isEnd,\n 'item-options-end': isEnd\n }\n });\n }\n get el() {\n return getElement(this);\n }\n};\nItemOptions.style = {\n ios: itemOptionsIosCss,\n md: itemOptionsMdCss\n};\nconst itemSlidingCss = \"ion-item-sliding{display:block;position:relative;width:100%;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ion-item-sliding .item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.item-sliding-active-slide .item{position:relative;-webkit-transition:-webkit-transform 500ms cubic-bezier(0.36, 0.66, 0.04, 1);transition:-webkit-transform 500ms cubic-bezier(0.36, 0.66, 0.04, 1);transition:transform 500ms cubic-bezier(0.36, 0.66, 0.04, 1);transition:transform 500ms cubic-bezier(0.36, 0.66, 0.04, 1), -webkit-transform 500ms cubic-bezier(0.36, 0.66, 0.04, 1);opacity:1;z-index:2;pointer-events:none;will-change:transform}.item-sliding-active-swipe-end .item-options-end .item-option-expandable{padding-left:100%;-ms-flex-order:1;order:1;-webkit-transition-duration:0.6s;transition-duration:0.6s;-webkit-transition-property:padding-left;transition-property:padding-left}[dir=rtl] .item-sliding-active-swipe-end .item-options-end .item-option-expandable,:host-context([dir=rtl]) .item-sliding-active-swipe-end .item-options-end .item-option-expandable{-ms-flex-order:-1;order:-1}.item-sliding-active-swipe-start .item-options-start .item-option-expandable{padding-right:100%;-ms-flex-order:-1;order:-1;-webkit-transition-duration:0.6s;transition-duration:0.6s;-webkit-transition-property:padding-right;transition-property:padding-right}[dir=rtl] .item-sliding-active-swipe-start .item-options-start .item-option-expandable,:host-context([dir=rtl]) .item-sliding-active-swipe-start .item-options-start .item-option-expandable{-ms-flex-order:1;order:1}\";\nconst SWIPE_MARGIN = 30;\nconst ELASTIC_FACTOR = 0.55;\nlet openSlidingItem;\nconst ItemSliding = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.ionDrag = createEvent(this, \"ionDrag\", 7);\n this.item = null;\n this.openAmount = 0;\n this.initialOpenAmount = 0;\n this.optsWidthRightSide = 0;\n this.optsWidthLeftSide = 0;\n this.sides = 0 /* None */;\n this.optsDirty = true;\n this.closestContent = null;\n this.initialContentScrollY = true;\n this.state = 2 /* Disabled */;\n /**\n * If `true`, the user cannot interact with the sliding item.\n */\n this.disabled = false;\n }\n disabledChanged() {\n if (this.gesture) {\n this.gesture.enable(!this.disabled);\n }\n }\n connectedCallback() {\n var _this2 = this;\n return _asyncToGenerator(function* () {\n _this2.item = _this2.el.querySelector('ion-item');\n _this2.closestContent = _this2.el.closest('ion-content');\n yield _this2.updateOptions();\n _this2.gesture = (yield import('./index-34cb2743.js')).createGesture({\n el: _this2.el,\n gestureName: 'item-swipe',\n gesturePriority: 100,\n threshold: 5,\n canStart: ev => _this2.canStart(ev),\n onStart: () => _this2.onStart(),\n onMove: ev => _this2.onMove(ev),\n onEnd: ev => _this2.onEnd(ev)\n });\n _this2.disabledChanged();\n })();\n }\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n this.item = null;\n this.leftOptions = this.rightOptions = undefined;\n if (openSlidingItem === this.el) {\n openSlidingItem = undefined;\n }\n }\n /**\n * Get the amount the item is open in pixels.\n */\n getOpenAmount() {\n return Promise.resolve(this.openAmount);\n }\n /**\n * Get the ratio of the open amount of the item compared to the width of the options.\n * If the number returned is positive, then the options on the right side are open.\n * If the number returned is negative, then the options on the left side are open.\n * If the absolute value of the number is greater than 1, the item is open more than\n * the width of the options.\n */\n getSlidingRatio() {\n return Promise.resolve(this.getSlidingRatioSync());\n }\n /**\n * Open the sliding item.\n *\n * @param side The side of the options to open. If a side is not provided, it will open the first set of options it finds within the item.\n */\n open(side) {\n var _this3 = this;\n return _asyncToGenerator(function* () {\n if (_this3.item === null) {\n return;\n }\n const optionsToOpen = _this3.getOptions(side);\n if (!optionsToOpen) {\n return;\n }\n /**\n * If side is not set, we need to infer the side\n * so we know which direction to move the options\n */\n if (side === undefined) {\n side = optionsToOpen === _this3.leftOptions ? 'start' : 'end';\n }\n // In RTL we want to switch the sides\n side = isEndSide(side) ? 'end' : 'start';\n const isStartOpen = _this3.openAmount < 0;\n const isEndOpen = _this3.openAmount > 0;\n /**\n * If a side is open and a user tries to\n * re-open the same side, we should not do anything\n */\n if (isStartOpen && optionsToOpen === _this3.leftOptions) {\n return;\n }\n if (isEndOpen && optionsToOpen === _this3.rightOptions) {\n return;\n }\n _this3.closeOpened();\n _this3.state = 4 /* Enabled */;\n requestAnimationFrame(() => {\n _this3.calculateOptsWidth();\n const width = side === 'end' ? _this3.optsWidthRightSide : -_this3.optsWidthLeftSide;\n openSlidingItem = _this3.el;\n _this3.setOpenAmount(width, false);\n _this3.state = side === 'end' ? 8 /* End */ : 16 /* Start */;\n });\n })();\n }\n /**\n * Close the sliding item. Items can also be closed from the [List](../list).\n */\n close() {\n var _this4 = this;\n return _asyncToGenerator(function* () {\n _this4.setOpenAmount(0, true);\n })();\n }\n /**\n * Close all of the sliding items in the list. Items can also be closed from the [List](../list).\n */\n closeOpened() {\n return _asyncToGenerator(function* () {\n if (openSlidingItem !== undefined) {\n openSlidingItem.close();\n openSlidingItem = undefined;\n return true;\n }\n return false;\n })();\n }\n /**\n * Given an optional side, return the ion-item-options element.\n *\n * @param side This side of the options to get. If a side is not provided it will\n * return the first one available.\n */\n getOptions(side) {\n if (side === undefined) {\n return this.leftOptions || this.rightOptions;\n } else if (side === 'start') {\n return this.leftOptions;\n } else {\n return this.rightOptions;\n }\n }\n updateOptions() {\n var _this5 = this;\n return _asyncToGenerator(function* () {\n const options = _this5.el.querySelectorAll('ion-item-options');\n let sides = 0;\n // Reset left and right options in case they were removed\n _this5.leftOptions = _this5.rightOptions = undefined;\n for (let i = 0; i < options.length; i++) {\n const item = options.item(i);\n /**\n * We cannot use the componentOnReady helper\n * util here since we need to wait for all of these items\n * to be ready before we set `this.sides` and `this.optsDirty`.\n */\n const option = item.componentOnReady !== undefined ? yield item.componentOnReady() : item;\n const side = isEndSide(option.side) ? 'end' : 'start';\n if (side === 'start') {\n _this5.leftOptions = option;\n sides |= 1 /* Start */;\n } else {\n _this5.rightOptions = option;\n sides |= 2 /* End */;\n }\n }\n\n _this5.optsDirty = true;\n _this5.sides = sides;\n })();\n }\n canStart(gesture) {\n /**\n * If very close to start of the screen\n * do not open left side so swipe to go\n * back will still work.\n */\n const rtl = document.dir === 'rtl';\n const atEdge = rtl ? window.innerWidth - gesture.startX < 15 : gesture.startX < 15;\n if (atEdge) {\n return false;\n }\n const selected = openSlidingItem;\n if (selected && selected !== this.el) {\n this.closeOpened();\n }\n return !!(this.rightOptions || this.leftOptions);\n }\n disableContentScrollY() {\n if (this.closestContent === null) {\n return;\n }\n this.initialContentScrollY = this.closestContent.scrollY;\n this.closestContent.scrollY = false;\n }\n restoreContentScrollY() {\n if (this.closestContent === null) {\n return;\n }\n this.closestContent.scrollY = this.initialContentScrollY;\n }\n onStart() {\n /**\n * We need to query for the ion-item\n * every time the gesture starts. Developers\n * may toggle ion-item elements via *ngIf.\n */\n this.item = this.el.querySelector('ion-item');\n // Prevent scrolling during gesture\n this.disableContentScrollY();\n openSlidingItem = this.el;\n if (this.tmr !== undefined) {\n clearTimeout(this.tmr);\n this.tmr = undefined;\n }\n if (this.openAmount === 0) {\n this.optsDirty = true;\n this.state = 4 /* Enabled */;\n }\n\n this.initialOpenAmount = this.openAmount;\n if (this.item) {\n this.item.style.transition = 'none';\n }\n }\n onMove(gesture) {\n if (this.optsDirty) {\n this.calculateOptsWidth();\n }\n let openAmount = this.initialOpenAmount - gesture.deltaX;\n switch (this.sides) {\n case 2 /* End */:\n openAmount = Math.max(0, openAmount);\n break;\n case 1 /* Start */:\n openAmount = Math.min(0, openAmount);\n break;\n case 3 /* Both */:\n break;\n case 0 /* None */:\n return;\n default:\n console.warn('invalid ItemSideFlags value', this.sides);\n break;\n }\n let optsWidth;\n if (openAmount > this.optsWidthRightSide) {\n optsWidth = this.optsWidthRightSide;\n openAmount = optsWidth + (openAmount - optsWidth) * ELASTIC_FACTOR;\n } else if (openAmount < -this.optsWidthLeftSide) {\n optsWidth = -this.optsWidthLeftSide;\n openAmount = optsWidth + (openAmount - optsWidth) * ELASTIC_FACTOR;\n }\n this.setOpenAmount(openAmount, false);\n }\n onEnd(gesture) {\n // Restore ion-content scrollY to initial value when gesture ends\n this.restoreContentScrollY();\n const velocity = gesture.velocityX;\n let restingPoint = this.openAmount > 0 ? this.optsWidthRightSide : -this.optsWidthLeftSide;\n // Check if the drag didn't clear the buttons mid-point\n // and we aren't moving fast enough to swipe open\n const isResetDirection = this.openAmount > 0 === !(velocity < 0);\n const isMovingFast = Math.abs(velocity) > 0.3;\n const isOnCloseZone = Math.abs(this.openAmount) < Math.abs(restingPoint / 2);\n if (swipeShouldReset(isResetDirection, isMovingFast, isOnCloseZone)) {\n restingPoint = 0;\n }\n const state = this.state;\n this.setOpenAmount(restingPoint, true);\n if ((state & 32 /* SwipeEnd */) !== 0 && this.rightOptions) {\n this.rightOptions.fireSwipeEvent();\n } else if ((state & 64 /* SwipeStart */) !== 0 && this.leftOptions) {\n this.leftOptions.fireSwipeEvent();\n }\n }\n calculateOptsWidth() {\n this.optsWidthRightSide = 0;\n if (this.rightOptions) {\n this.rightOptions.style.display = 'flex';\n this.optsWidthRightSide = this.rightOptions.offsetWidth;\n this.rightOptions.style.display = '';\n }\n this.optsWidthLeftSide = 0;\n if (this.leftOptions) {\n this.leftOptions.style.display = 'flex';\n this.optsWidthLeftSide = this.leftOptions.offsetWidth;\n this.leftOptions.style.display = '';\n }\n this.optsDirty = false;\n }\n setOpenAmount(openAmount, isFinal) {\n if (this.tmr !== undefined) {\n clearTimeout(this.tmr);\n this.tmr = undefined;\n }\n if (!this.item) {\n return;\n }\n const style = this.item.style;\n this.openAmount = openAmount;\n if (isFinal) {\n style.transition = '';\n }\n if (openAmount > 0) {\n this.state = openAmount >= this.optsWidthRightSide + SWIPE_MARGIN ? 8 /* End */ | 32 /* SwipeEnd */ : 8 /* End */;\n } else if (openAmount < 0) {\n this.state = openAmount <= -this.optsWidthLeftSide - SWIPE_MARGIN ? 16 /* Start */ | 64 /* SwipeStart */ : 16 /* Start */;\n } else {\n /**\n * Item sliding cannot be interrupted\n * while closing the item. If it did,\n * it would allow the item to get into an\n * inconsistent state where multiple\n * items are then open at the same time.\n */\n if (this.gesture) {\n this.gesture.enable(false);\n }\n this.tmr = setTimeout(() => {\n this.state = 2 /* Disabled */;\n this.tmr = undefined;\n if (this.gesture) {\n this.gesture.enable(true);\n }\n }, 600);\n openSlidingItem = undefined;\n style.transform = '';\n return;\n }\n style.transform = `translate3d(${-openAmount}px,0,0)`;\n this.ionDrag.emit({\n amount: openAmount,\n ratio: this.getSlidingRatioSync()\n });\n }\n getSlidingRatioSync() {\n if (this.openAmount > 0) {\n return this.openAmount / this.optsWidthRightSide;\n } else if (this.openAmount < 0) {\n return this.openAmount / this.optsWidthLeftSide;\n } else {\n return 0;\n }\n }\n render() {\n const mode = getIonMode(this);\n return h(Host, {\n class: {\n [mode]: true,\n 'item-sliding-active-slide': this.state !== 2 /* Disabled */,\n 'item-sliding-active-options-end': (this.state & 8 /* End */) !== 0,\n 'item-sliding-active-options-start': (this.state & 16 /* Start */) !== 0,\n 'item-sliding-active-swipe-end': (this.state & 32 /* SwipeEnd */) !== 0,\n 'item-sliding-active-swipe-start': (this.state & 64 /* SwipeStart */) !== 0\n }\n });\n }\n get el() {\n return getElement(this);\n }\n static get watchers() {\n return {\n \"disabled\": [\"disabledChanged\"]\n };\n }\n};\nconst swipeShouldReset = (isResetDirection, isMovingFast, isOnResetZone) => {\n // The logic required to know when the sliding item should close (openAmount=0)\n // depends on three booleans (isResetDirection, isMovingFast, isOnResetZone)\n // and it ended up being too complicated to be written manually without errors\n // so the truth table is attached below: (0=false, 1=true)\n // isResetDirection | isMovingFast | isOnResetZone || shouldClose\n // 0 | 0 | 0 || 0\n // 0 | 0 | 1 || 1\n // 0 | 1 | 0 || 0\n // 0 | 1 | 1 || 0\n // 1 | 0 | 0 || 0\n // 1 | 0 | 1 || 1\n // 1 | 1 | 0 || 1\n // 1 | 1 | 1 || 1\n // The resulting expression was generated by resolving the K-map (Karnaugh map):\n return !isMovingFast && isOnResetZone || isResetDirection && isMovingFast;\n};\nItemSliding.style = itemSlidingCss;\nexport { ItemOption as ion_item_option, ItemOptions as ion_item_options, ItemSliding as ion_item_sliding };","map":{"version":3,"names":["r","registerInstance","h","H","Host","i","getElement","e","createEvent","b","getIonMode","c","createColorClasses","n","isEndSide","itemOptionIosCss","itemOptionMdCss","ItemOption","constructor","hostRef","disabled","expandable","type","onClick","ev","el","target","closest","preventDefault","render","href","TagType","undefined","mode","attrs","download","class","color","Object","assign","part","name","style","ios","md","itemOptionsIosCss","itemOptionsMdCss","ItemOptions","ionSwipe","side","fireSwipeEvent","_this","_asyncToGenerator","emit","isEnd","itemSlidingCss","SWIPE_MARGIN","ELASTIC_FACTOR","openSlidingItem","ItemSliding","ionDrag","item","openAmount","initialOpenAmount","optsWidthRightSide","optsWidthLeftSide","sides","optsDirty","closestContent","initialContentScrollY","state","disabledChanged","gesture","enable","connectedCallback","_this2","querySelector","updateOptions","createGesture","gestureName","gesturePriority","threshold","canStart","onStart","onMove","onEnd","disconnectedCallback","destroy","leftOptions","rightOptions","getOpenAmount","Promise","resolve","getSlidingRatio","getSlidingRatioSync","open","_this3","optionsToOpen","getOptions","isStartOpen","isEndOpen","closeOpened","requestAnimationFrame","calculateOptsWidth","width","setOpenAmount","close","_this4","_this5","options","querySelectorAll","length","option","componentOnReady","rtl","document","dir","atEdge","window","innerWidth","startX","selected","disableContentScrollY","scrollY","restoreContentScrollY","tmr","clearTimeout","transition","deltaX","Math","max","min","console","warn","optsWidth","velocity","velocityX","restingPoint","isResetDirection","isMovingFast","abs","isOnCloseZone","swipeShouldReset","display","offsetWidth","isFinal","setTimeout","transform","amount","ratio","watchers","isOnResetZone","ion_item_option","ion_item_options","ion_item_sliding"],"sources":["C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/@ionic/core/dist/esm/ion-item-option_3.entry.js"],"sourcesContent":["import { r as registerInstance, h, H as Host, i as getElement, e as createEvent } from './index-7a8b7a1c.js';\nimport { b as getIonMode } from './ionic-global-63a97a32.js';\nimport { c as createColorClasses } from './theme-ff3fc52f.js';\nimport { n as isEndSide } from './helpers-1457892a.js';\n\nconst itemOptionIosCss = \":host{--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff);background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit)}:host(.in-list.item-options-end:last-child){padding-right:calc(.7em + var(--ion-safe-area-right))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-list.item-options-end:last-child){padding-right:unset;-webkit-padding-end:calc(.7em + var(--ion-safe-area-right));padding-inline-end:calc(.7em + var(--ion-safe-area-right))}}:host(.in-list.item-options-start:first-child){padding-left:calc(.7em + var(--ion-safe-area-left))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-list.item-options-start:first-child){padding-left:unset;-webkit-padding-start:calc(.7em + var(--ion-safe-area-left));padding-inline-start:calc(.7em + var(--ion-safe-area-left))}}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}.button-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:0.7em;padding-right:0.7em;padding-top:0;padding-bottom:0;display:inline-block;position:relative;width:100%;height:100%;border:0;outline:none;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:0.7em;padding-inline-start:0.7em;-webkit-padding-end:0.7em;padding-inline-end:0.7em}}.button-inner{display:-ms-flexbox;display:flex;-ms-flex-flow:column nowrap;flex-flow:column nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.horizontal-wrapper{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%}::slotted(*){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]){margin-left:0;margin-right:5px;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:5px;margin-inline-end:5px}}::slotted([slot=end]){margin-left:5px;margin-right:0;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:5px;margin-inline-start:5px;-webkit-margin-end:0;margin-inline-end:0}}::slotted([slot=icon-only]){padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:10px;margin-right:10px;margin-top:0;margin-bottom:0;min-width:0.9em;font-size:1.8em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=icon-only]){margin-left:unset;margin-right:unset;-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:10px;margin-inline-end:10px}}:host(.item-option-expandable){-ms-flex-negative:0;flex-shrink:0;-webkit-transition-duration:0;transition-duration:0;-webkit-transition-property:none;transition-property:none;-webkit-transition-timing-function:cubic-bezier(0.65, 0.05, 0.36, 1);transition-timing-function:cubic-bezier(0.65, 0.05, 0.36, 1)}:host(.item-option-disabled){pointer-events:none}:host(.item-option-disabled) .button-native{cursor:default;opacity:0.5;pointer-events:none}:host{font-size:16px}:host(.ion-activated){background:var(--ion-color-primary-shade, #3171e0)}:host(.ion-color.ion-activated){background:var(--ion-color-shade)}\";\n\nconst itemOptionMdCss = \":host{--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff);background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit)}:host(.in-list.item-options-end:last-child){padding-right:calc(.7em + var(--ion-safe-area-right))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-list.item-options-end:last-child){padding-right:unset;-webkit-padding-end:calc(.7em + var(--ion-safe-area-right));padding-inline-end:calc(.7em + var(--ion-safe-area-right))}}:host(.in-list.item-options-start:first-child){padding-left:calc(.7em + var(--ion-safe-area-left))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-list.item-options-start:first-child){padding-left:unset;-webkit-padding-start:calc(.7em + var(--ion-safe-area-left));padding-inline-start:calc(.7em + var(--ion-safe-area-left))}}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}.button-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:0.7em;padding-right:0.7em;padding-top:0;padding-bottom:0;display:inline-block;position:relative;width:100%;height:100%;border:0;outline:none;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:0.7em;padding-inline-start:0.7em;-webkit-padding-end:0.7em;padding-inline-end:0.7em}}.button-inner{display:-ms-flexbox;display:flex;-ms-flex-flow:column nowrap;flex-flow:column nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.horizontal-wrapper{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%}::slotted(*){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]){margin-left:0;margin-right:5px;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:5px;margin-inline-end:5px}}::slotted([slot=end]){margin-left:5px;margin-right:0;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:5px;margin-inline-start:5px;-webkit-margin-end:0;margin-inline-end:0}}::slotted([slot=icon-only]){padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:10px;margin-right:10px;margin-top:0;margin-bottom:0;min-width:0.9em;font-size:1.8em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=icon-only]){margin-left:unset;margin-right:unset;-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:10px;margin-inline-end:10px}}:host(.item-option-expandable){-ms-flex-negative:0;flex-shrink:0;-webkit-transition-duration:0;transition-duration:0;-webkit-transition-property:none;transition-property:none;-webkit-transition-timing-function:cubic-bezier(0.65, 0.05, 0.36, 1);transition-timing-function:cubic-bezier(0.65, 0.05, 0.36, 1)}:host(.item-option-disabled){pointer-events:none}:host(.item-option-disabled) .button-native{cursor:default;opacity:0.5;pointer-events:none}:host{font-size:14px;font-weight:500;text-transform:uppercase}\";\n\nconst ItemOption = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n /**\n * If `true`, the user cannot interact with the item option.\n */\n this.disabled = false;\n /**\n * If `true`, the option will expand to take up the available width and cover any other options.\n */\n this.expandable = false;\n /**\n * The type of the button.\n */\n this.type = 'button';\n this.onClick = (ev) => {\n const el = ev.target.closest('ion-item-option');\n if (el) {\n ev.preventDefault();\n }\n };\n }\n render() {\n const { disabled, expandable, href } = this;\n const TagType = href === undefined ? 'button' : 'a';\n const mode = getIonMode(this);\n const attrs = (TagType === 'button')\n ? { type: this.type }\n : {\n download: this.download,\n href: this.href,\n target: this.target\n };\n return (h(Host, { onClick: this.onClick, class: createColorClasses(this.color, {\n [mode]: true,\n 'item-option-disabled': disabled,\n 'item-option-expandable': expandable,\n 'ion-activatable': true\n }) }, h(TagType, Object.assign({}, attrs, { class: \"button-native\", part: \"native\", disabled: disabled }), h(\"span\", { class: \"button-inner\" }, h(\"slot\", { name: \"top\" }), h(\"div\", { class: \"horizontal-wrapper\" }, h(\"slot\", { name: \"start\" }), h(\"slot\", { name: \"icon-only\" }), h(\"slot\", null), h(\"slot\", { name: \"end\" })), h(\"slot\", { name: \"bottom\" })), mode === 'md' && h(\"ion-ripple-effect\", null))));\n }\n get el() { return getElement(this); }\n};\nItemOption.style = {\n ios: itemOptionIosCss,\n md: itemOptionMdCss\n};\n\nconst itemOptionsIosCss = \"ion-item-options{top:0;right:0;-ms-flex-pack:end;justify-content:flex-end;display:none;position:absolute;height:100%;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1}[dir=rtl] ion-item-options,:host-context([dir=rtl]) ion-item-options{-ms-flex-pack:start;justify-content:flex-start}[dir=rtl] ion-item-options:not(.item-options-end),:host-context([dir=rtl]) ion-item-options:not(.item-options-end){right:auto;left:0;-ms-flex-pack:end;justify-content:flex-end}.item-options-start{right:auto;left:0;-ms-flex-pack:start;justify-content:flex-start}[dir=rtl] .item-options-start,:host-context([dir=rtl]) .item-options-start{-ms-flex-pack:end;justify-content:flex-end}.item-options-start ion-item-option:first-child{padding-right:var(--ion-safe-area-left)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-options-start ion-item-option:first-child{padding-right:unset;-webkit-padding-end:var(--ion-safe-area-left);padding-inline-end:var(--ion-safe-area-left)}}.item-options-end ion-item-option:last-child{padding-right:var(--ion-safe-area-right)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-options-end ion-item-option:last-child{padding-right:unset;-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right)}}[dir=rtl] .item-sliding-active-slide.item-sliding-active-options-start ion-item-options:not(.item-options-end),:host-context([dir=rtl]) .item-sliding-active-slide.item-sliding-active-options-start ion-item-options:not(.item-options-end){width:100%;visibility:visible}.item-sliding-active-slide ion-item-options{display:-ms-flexbox;display:flex;visibility:hidden}.item-sliding-active-slide.item-sliding-active-options-start .item-options-start,.item-sliding-active-slide.item-sliding-active-options-end ion-item-options:not(.item-options-start){width:100%;visibility:visible}.item-options-ios{border-bottom-width:0;border-bottom-style:solid;border-bottom-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)))}.item-options-ios.item-options-end{border-bottom-width:0.55px}.list-ios-lines-none .item-options-ios{border-bottom-width:0}.list-ios-lines-full .item-options-ios,.list-ios-lines-inset .item-options-ios.item-options-end{border-bottom-width:0.55px}\";\n\nconst itemOptionsMdCss = \"ion-item-options{top:0;right:0;-ms-flex-pack:end;justify-content:flex-end;display:none;position:absolute;height:100%;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1}[dir=rtl] ion-item-options,:host-context([dir=rtl]) ion-item-options{-ms-flex-pack:start;justify-content:flex-start}[dir=rtl] ion-item-options:not(.item-options-end),:host-context([dir=rtl]) ion-item-options:not(.item-options-end){right:auto;left:0;-ms-flex-pack:end;justify-content:flex-end}.item-options-start{right:auto;left:0;-ms-flex-pack:start;justify-content:flex-start}[dir=rtl] .item-options-start,:host-context([dir=rtl]) .item-options-start{-ms-flex-pack:end;justify-content:flex-end}.item-options-start ion-item-option:first-child{padding-right:var(--ion-safe-area-left)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-options-start ion-item-option:first-child{padding-right:unset;-webkit-padding-end:var(--ion-safe-area-left);padding-inline-end:var(--ion-safe-area-left)}}.item-options-end ion-item-option:last-child{padding-right:var(--ion-safe-area-right)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-options-end ion-item-option:last-child{padding-right:unset;-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right)}}[dir=rtl] .item-sliding-active-slide.item-sliding-active-options-start ion-item-options:not(.item-options-end),:host-context([dir=rtl]) .item-sliding-active-slide.item-sliding-active-options-start ion-item-options:not(.item-options-end){width:100%;visibility:visible}.item-sliding-active-slide ion-item-options{display:-ms-flexbox;display:flex;visibility:hidden}.item-sliding-active-slide.item-sliding-active-options-start .item-options-start,.item-sliding-active-slide.item-sliding-active-options-end ion-item-options:not(.item-options-start){width:100%;visibility:visible}.item-options-md{border-bottom-width:0;border-bottom-style:solid;border-bottom-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))))}.list-md-lines-none .item-options-md{border-bottom-width:0}.list-md-lines-full .item-options-md,.list-md-lines-inset .item-options-md.item-options-end{border-bottom-width:1px}\";\n\nconst ItemOptions = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.ionSwipe = createEvent(this, \"ionSwipe\", 7);\n /**\n * The side the option button should be on. Possible values: `\"start\"` and `\"end\"`. If you have multiple `ion-item-options`, a side must be provided for each.\n *\n */\n this.side = 'end';\n }\n /** @internal */\n async fireSwipeEvent() {\n this.ionSwipe.emit({\n side: this.side\n });\n }\n render() {\n const mode = getIonMode(this);\n const isEnd = isEndSide(this.side);\n return (h(Host, { class: {\n [mode]: true,\n // Used internally for styling\n [`item-options-${mode}`]: true,\n 'item-options-start': !isEnd,\n 'item-options-end': isEnd\n } }));\n }\n get el() { return getElement(this); }\n};\nItemOptions.style = {\n ios: itemOptionsIosCss,\n md: itemOptionsMdCss\n};\n\nconst itemSlidingCss = \"ion-item-sliding{display:block;position:relative;width:100%;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ion-item-sliding .item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.item-sliding-active-slide .item{position:relative;-webkit-transition:-webkit-transform 500ms cubic-bezier(0.36, 0.66, 0.04, 1);transition:-webkit-transform 500ms cubic-bezier(0.36, 0.66, 0.04, 1);transition:transform 500ms cubic-bezier(0.36, 0.66, 0.04, 1);transition:transform 500ms cubic-bezier(0.36, 0.66, 0.04, 1), -webkit-transform 500ms cubic-bezier(0.36, 0.66, 0.04, 1);opacity:1;z-index:2;pointer-events:none;will-change:transform}.item-sliding-active-swipe-end .item-options-end .item-option-expandable{padding-left:100%;-ms-flex-order:1;order:1;-webkit-transition-duration:0.6s;transition-duration:0.6s;-webkit-transition-property:padding-left;transition-property:padding-left}[dir=rtl] .item-sliding-active-swipe-end .item-options-end .item-option-expandable,:host-context([dir=rtl]) .item-sliding-active-swipe-end .item-options-end .item-option-expandable{-ms-flex-order:-1;order:-1}.item-sliding-active-swipe-start .item-options-start .item-option-expandable{padding-right:100%;-ms-flex-order:-1;order:-1;-webkit-transition-duration:0.6s;transition-duration:0.6s;-webkit-transition-property:padding-right;transition-property:padding-right}[dir=rtl] .item-sliding-active-swipe-start .item-options-start .item-option-expandable,:host-context([dir=rtl]) .item-sliding-active-swipe-start .item-options-start .item-option-expandable{-ms-flex-order:1;order:1}\";\n\nconst SWIPE_MARGIN = 30;\nconst ELASTIC_FACTOR = 0.55;\nlet openSlidingItem;\nconst ItemSliding = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.ionDrag = createEvent(this, \"ionDrag\", 7);\n this.item = null;\n this.openAmount = 0;\n this.initialOpenAmount = 0;\n this.optsWidthRightSide = 0;\n this.optsWidthLeftSide = 0;\n this.sides = 0 /* None */;\n this.optsDirty = true;\n this.closestContent = null;\n this.initialContentScrollY = true;\n this.state = 2 /* Disabled */;\n /**\n * If `true`, the user cannot interact with the sliding item.\n */\n this.disabled = false;\n }\n disabledChanged() {\n if (this.gesture) {\n this.gesture.enable(!this.disabled);\n }\n }\n async connectedCallback() {\n this.item = this.el.querySelector('ion-item');\n this.closestContent = this.el.closest('ion-content');\n await this.updateOptions();\n this.gesture = (await import('./index-34cb2743.js')).createGesture({\n el: this.el,\n gestureName: 'item-swipe',\n gesturePriority: 100,\n threshold: 5,\n canStart: ev => this.canStart(ev),\n onStart: () => this.onStart(),\n onMove: ev => this.onMove(ev),\n onEnd: ev => this.onEnd(ev),\n });\n this.disabledChanged();\n }\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n this.item = null;\n this.leftOptions = this.rightOptions = undefined;\n if (openSlidingItem === this.el) {\n openSlidingItem = undefined;\n }\n }\n /**\n * Get the amount the item is open in pixels.\n */\n getOpenAmount() {\n return Promise.resolve(this.openAmount);\n }\n /**\n * Get the ratio of the open amount of the item compared to the width of the options.\n * If the number returned is positive, then the options on the right side are open.\n * If the number returned is negative, then the options on the left side are open.\n * If the absolute value of the number is greater than 1, the item is open more than\n * the width of the options.\n */\n getSlidingRatio() {\n return Promise.resolve(this.getSlidingRatioSync());\n }\n /**\n * Open the sliding item.\n *\n * @param side The side of the options to open. If a side is not provided, it will open the first set of options it finds within the item.\n */\n async open(side) {\n if (this.item === null) {\n return;\n }\n const optionsToOpen = this.getOptions(side);\n if (!optionsToOpen) {\n return;\n }\n /**\n * If side is not set, we need to infer the side\n * so we know which direction to move the options\n */\n if (side === undefined) {\n side = (optionsToOpen === this.leftOptions) ? 'start' : 'end';\n }\n // In RTL we want to switch the sides\n side = isEndSide(side) ? 'end' : 'start';\n const isStartOpen = this.openAmount < 0;\n const isEndOpen = this.openAmount > 0;\n /**\n * If a side is open and a user tries to\n * re-open the same side, we should not do anything\n */\n if (isStartOpen && optionsToOpen === this.leftOptions) {\n return;\n }\n if (isEndOpen && optionsToOpen === this.rightOptions) {\n return;\n }\n this.closeOpened();\n this.state = 4 /* Enabled */;\n requestAnimationFrame(() => {\n this.calculateOptsWidth();\n const width = (side === 'end') ? this.optsWidthRightSide : -this.optsWidthLeftSide;\n openSlidingItem = this.el;\n this.setOpenAmount(width, false);\n this.state = (side === 'end') ? 8 /* End */ : 16 /* Start */;\n });\n }\n /**\n * Close the sliding item. Items can also be closed from the [List](../list).\n */\n async close() {\n this.setOpenAmount(0, true);\n }\n /**\n * Close all of the sliding items in the list. Items can also be closed from the [List](../list).\n */\n async closeOpened() {\n if (openSlidingItem !== undefined) {\n openSlidingItem.close();\n openSlidingItem = undefined;\n return true;\n }\n return false;\n }\n /**\n * Given an optional side, return the ion-item-options element.\n *\n * @param side This side of the options to get. If a side is not provided it will\n * return the first one available.\n */\n getOptions(side) {\n if (side === undefined) {\n return this.leftOptions || this.rightOptions;\n }\n else if (side === 'start') {\n return this.leftOptions;\n }\n else {\n return this.rightOptions;\n }\n }\n async updateOptions() {\n const options = this.el.querySelectorAll('ion-item-options');\n let sides = 0;\n // Reset left and right options in case they were removed\n this.leftOptions = this.rightOptions = undefined;\n for (let i = 0; i < options.length; i++) {\n const item = options.item(i);\n /**\n * We cannot use the componentOnReady helper\n * util here since we need to wait for all of these items\n * to be ready before we set `this.sides` and `this.optsDirty`.\n */\n const option = (item.componentOnReady !== undefined) ? await item.componentOnReady() : item;\n const side = isEndSide(option.side) ? 'end' : 'start';\n if (side === 'start') {\n this.leftOptions = option;\n sides |= 1 /* Start */;\n }\n else {\n this.rightOptions = option;\n sides |= 2 /* End */;\n }\n }\n this.optsDirty = true;\n this.sides = sides;\n }\n canStart(gesture) {\n /**\n * If very close to start of the screen\n * do not open left side so swipe to go\n * back will still work.\n */\n const rtl = document.dir === 'rtl';\n const atEdge = (rtl) ? (window.innerWidth - gesture.startX) < 15 : gesture.startX < 15;\n if (atEdge) {\n return false;\n }\n const selected = openSlidingItem;\n if (selected && selected !== this.el) {\n this.closeOpened();\n }\n return !!(this.rightOptions || this.leftOptions);\n }\n disableContentScrollY() {\n if (this.closestContent === null) {\n return;\n }\n this.initialContentScrollY = this.closestContent.scrollY;\n this.closestContent.scrollY = false;\n }\n restoreContentScrollY() {\n if (this.closestContent === null) {\n return;\n }\n this.closestContent.scrollY = this.initialContentScrollY;\n }\n onStart() {\n /**\n * We need to query for the ion-item\n * every time the gesture starts. Developers\n * may toggle ion-item elements via *ngIf.\n */\n this.item = this.el.querySelector('ion-item');\n // Prevent scrolling during gesture\n this.disableContentScrollY();\n openSlidingItem = this.el;\n if (this.tmr !== undefined) {\n clearTimeout(this.tmr);\n this.tmr = undefined;\n }\n if (this.openAmount === 0) {\n this.optsDirty = true;\n this.state = 4 /* Enabled */;\n }\n this.initialOpenAmount = this.openAmount;\n if (this.item) {\n this.item.style.transition = 'none';\n }\n }\n onMove(gesture) {\n if (this.optsDirty) {\n this.calculateOptsWidth();\n }\n let openAmount = this.initialOpenAmount - gesture.deltaX;\n switch (this.sides) {\n case 2 /* End */:\n openAmount = Math.max(0, openAmount);\n break;\n case 1 /* Start */:\n openAmount = Math.min(0, openAmount);\n break;\n case 3 /* Both */: break;\n case 0 /* None */: return;\n default:\n console.warn('invalid ItemSideFlags value', this.sides);\n break;\n }\n let optsWidth;\n if (openAmount > this.optsWidthRightSide) {\n optsWidth = this.optsWidthRightSide;\n openAmount = optsWidth + (openAmount - optsWidth) * ELASTIC_FACTOR;\n }\n else if (openAmount < -this.optsWidthLeftSide) {\n optsWidth = -this.optsWidthLeftSide;\n openAmount = optsWidth + (openAmount - optsWidth) * ELASTIC_FACTOR;\n }\n this.setOpenAmount(openAmount, false);\n }\n onEnd(gesture) {\n // Restore ion-content scrollY to initial value when gesture ends\n this.restoreContentScrollY();\n const velocity = gesture.velocityX;\n let restingPoint = (this.openAmount > 0)\n ? this.optsWidthRightSide\n : -this.optsWidthLeftSide;\n // Check if the drag didn't clear the buttons mid-point\n // and we aren't moving fast enough to swipe open\n const isResetDirection = (this.openAmount > 0) === !(velocity < 0);\n const isMovingFast = Math.abs(velocity) > 0.3;\n const isOnCloseZone = Math.abs(this.openAmount) < Math.abs(restingPoint / 2);\n if (swipeShouldReset(isResetDirection, isMovingFast, isOnCloseZone)) {\n restingPoint = 0;\n }\n const state = this.state;\n this.setOpenAmount(restingPoint, true);\n if ((state & 32 /* SwipeEnd */) !== 0 && this.rightOptions) {\n this.rightOptions.fireSwipeEvent();\n }\n else if ((state & 64 /* SwipeStart */) !== 0 && this.leftOptions) {\n this.leftOptions.fireSwipeEvent();\n }\n }\n calculateOptsWidth() {\n this.optsWidthRightSide = 0;\n if (this.rightOptions) {\n this.rightOptions.style.display = 'flex';\n this.optsWidthRightSide = this.rightOptions.offsetWidth;\n this.rightOptions.style.display = '';\n }\n this.optsWidthLeftSide = 0;\n if (this.leftOptions) {\n this.leftOptions.style.display = 'flex';\n this.optsWidthLeftSide = this.leftOptions.offsetWidth;\n this.leftOptions.style.display = '';\n }\n this.optsDirty = false;\n }\n setOpenAmount(openAmount, isFinal) {\n if (this.tmr !== undefined) {\n clearTimeout(this.tmr);\n this.tmr = undefined;\n }\n if (!this.item) {\n return;\n }\n const style = this.item.style;\n this.openAmount = openAmount;\n if (isFinal) {\n style.transition = '';\n }\n if (openAmount > 0) {\n this.state = (openAmount >= (this.optsWidthRightSide + SWIPE_MARGIN))\n ? 8 /* End */ | 32 /* SwipeEnd */\n : 8 /* End */;\n }\n else if (openAmount < 0) {\n this.state = (openAmount <= (-this.optsWidthLeftSide - SWIPE_MARGIN))\n ? 16 /* Start */ | 64 /* SwipeStart */\n : 16 /* Start */;\n }\n else {\n /**\n * Item sliding cannot be interrupted\n * while closing the item. If it did,\n * it would allow the item to get into an\n * inconsistent state where multiple\n * items are then open at the same time.\n */\n if (this.gesture) {\n this.gesture.enable(false);\n }\n this.tmr = setTimeout(() => {\n this.state = 2 /* Disabled */;\n this.tmr = undefined;\n if (this.gesture) {\n this.gesture.enable(true);\n }\n }, 600);\n openSlidingItem = undefined;\n style.transform = '';\n return;\n }\n style.transform = `translate3d(${-openAmount}px,0,0)`;\n this.ionDrag.emit({\n amount: openAmount,\n ratio: this.getSlidingRatioSync()\n });\n }\n getSlidingRatioSync() {\n if (this.openAmount > 0) {\n return this.openAmount / this.optsWidthRightSide;\n }\n else if (this.openAmount < 0) {\n return this.openAmount / this.optsWidthLeftSide;\n }\n else {\n return 0;\n }\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n 'item-sliding-active-slide': (this.state !== 2 /* Disabled */),\n 'item-sliding-active-options-end': (this.state & 8 /* End */) !== 0,\n 'item-sliding-active-options-start': (this.state & 16 /* Start */) !== 0,\n 'item-sliding-active-swipe-end': (this.state & 32 /* SwipeEnd */) !== 0,\n 'item-sliding-active-swipe-start': (this.state & 64 /* SwipeStart */) !== 0\n } }));\n }\n get el() { return getElement(this); }\n static get watchers() { return {\n \"disabled\": [\"disabledChanged\"]\n }; }\n};\nconst swipeShouldReset = (isResetDirection, isMovingFast, isOnResetZone) => {\n // The logic required to know when the sliding item should close (openAmount=0)\n // depends on three booleans (isResetDirection, isMovingFast, isOnResetZone)\n // and it ended up being too complicated to be written manually without errors\n // so the truth table is attached below: (0=false, 1=true)\n // isResetDirection | isMovingFast | isOnResetZone || shouldClose\n // 0 | 0 | 0 || 0\n // 0 | 0 | 1 || 1\n // 0 | 1 | 0 || 0\n // 0 | 1 | 1 || 0\n // 1 | 0 | 0 || 0\n // 1 | 0 | 1 || 1\n // 1 | 1 | 0 || 1\n // 1 | 1 | 1 || 1\n // The resulting expression was generated by resolving the K-map (Karnaugh map):\n return (!isMovingFast && isOnResetZone) || (isResetDirection && isMovingFast);\n};\nItemSliding.style = itemSlidingCss;\n\nexport { ItemOption as ion_item_option, ItemOptions as ion_item_options, ItemSliding as ion_item_sliding };\n"],"mappings":"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"},"metadata":{},"sourceType":"module"}