{"version":3,"file":"swaps-B_Wi8Xev.cjs","sources":["../node_modules/@reown/appkit-common/dist/esm/src/utils/InputUtil.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-swap-details/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-swap-details/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-swap-input-skeleton/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-swap-input-skeleton/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-swap-input/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-swap-input/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/views/w3m-swap-view/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/views/w3m-swap-view/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/views/w3m-swap-preview-view/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/views/w3m-swap-preview-view/index.js","../node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-token-list-item/styles.js","../node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-token-list-item/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/views/w3m-swap-select-token-view/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/views/w3m-swap-select-token-view/index.js"],"sourcesContent":["export const InputUtil = {\n    numericInputKeyDown(event, currentValue, onChange) {\n        const allowedKeys = [\n            'Backspace',\n            'Meta',\n            'Ctrl',\n            'a',\n            'A',\n            'c',\n            'C',\n            'x',\n            'X',\n            'v',\n            'V',\n            'ArrowLeft',\n            'ArrowRight',\n            'Tab'\n        ];\n        const controlPressed = event.metaKey || event.ctrlKey;\n        const eventKey = event.key;\n        const lowercaseEventKey = eventKey.toLocaleLowerCase();\n        const selectAll = lowercaseEventKey === 'a';\n        const copyKey = lowercaseEventKey === 'c';\n        const pasteKey = lowercaseEventKey === 'v';\n        const cutKey = lowercaseEventKey === 'x';\n        const isComma = eventKey === ',';\n        const isDot = eventKey === '.';\n        const isNumericKey = eventKey >= '0' && eventKey <= '9';\n        if (!controlPressed && (selectAll || copyKey || pasteKey || cutKey)) {\n            event.preventDefault();\n        }\n        if (currentValue === '0' && !isComma && !isDot && eventKey === '0') {\n            event.preventDefault();\n        }\n        if (currentValue === '0' && isNumericKey) {\n            onChange(eventKey);\n            event.preventDefault();\n        }\n        if (isComma || isDot) {\n            if (!currentValue) {\n                onChange('0.');\n                event.preventDefault();\n            }\n            if (currentValue?.includes('.') || currentValue?.includes(',')) {\n                event.preventDefault();\n            }\n        }\n        if (!isNumericKey && !allowedKeys.includes(eventKey) && !isDot && !isComma) {\n            event.preventDefault();\n        }\n    }\n};\n//# sourceMappingURL=InputUtil.js.map","import { css } from 'lit';\nexport default css `\n  :host {\n    width: 100%;\n  }\n\n  .details-container > wui-flex {\n    background: var(--wui-color-gray-glass-002);\n    border-radius: var(--wui-border-radius-xxs);\n    width: 100%;\n  }\n\n  .details-container > wui-flex > button {\n    border: none;\n    background: none;\n    padding: var(--wui-spacing-s);\n    border-radius: var(--wui-border-radius-xxs);\n    cursor: pointer;\n  }\n\n  .details-content-container {\n    padding: var(--wui-spacing-1xs);\n    padding-top: 0px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n\n  .details-content-container > wui-flex {\n    width: 100%;\n  }\n\n  .details-row {\n    width: 100%;\n    padding: var(--wui-spacing-s);\n    padding-left: var(--wui-spacing-s);\n    padding-right: var(--wui-spacing-1xs);\n    border-radius: calc(var(--wui-border-radius-5xs) + var(--wui-border-radius-4xs));\n    background: var(--wui-color-gray-glass-002);\n  }\n\n  .details-row-title {\n    white-space: nowrap;\n  }\n\n  .details-row.provider-free-row {\n    padding-right: var(--wui-spacing-xs);\n  }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { NumberUtil } from '@reown/appkit-common';\nimport { ChainController, ConstantsUtil, SwapController } from '@reown/appkit-controllers';\nimport { UiHelperUtil, customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-icon';\nimport '@reown/appkit-ui/wui-text';\nimport '../w3m-tooltip-trigger/index.js';\nimport '../w3m-tooltip/index.js';\nimport styles from './styles.js';\nconst slippageRate = ConstantsUtil.CONVERT_SLIPPAGE_TOLERANCE;\nlet WuiSwapDetails = class WuiSwapDetails extends LitElement {\n    constructor() {\n        super();\n        this.unsubscribe = [];\n        this.networkName = ChainController.state.activeCaipNetwork?.name;\n        this.detailsOpen = false;\n        this.sourceToken = SwapController.state.sourceToken;\n        this.toToken = SwapController.state.toToken;\n        this.toTokenAmount = SwapController.state.toTokenAmount;\n        this.sourceTokenPriceInUSD = SwapController.state.sourceTokenPriceInUSD;\n        this.toTokenPriceInUSD = SwapController.state.toTokenPriceInUSD;\n        this.priceImpact = SwapController.state.priceImpact;\n        this.maxSlippage = SwapController.state.maxSlippage;\n        this.networkTokenSymbol = SwapController.state.networkTokenSymbol;\n        this.inputError = SwapController.state.inputError;\n        this.unsubscribe.push(...[\n            SwapController.subscribe(newState => {\n                this.sourceToken = newState.sourceToken;\n                this.toToken = newState.toToken;\n                this.toTokenAmount = newState.toTokenAmount;\n                this.priceImpact = newState.priceImpact;\n                this.maxSlippage = newState.maxSlippage;\n                this.sourceTokenPriceInUSD = newState.sourceTokenPriceInUSD;\n                this.toTokenPriceInUSD = newState.toTokenPriceInUSD;\n                this.inputError = newState.inputError;\n            })\n        ]);\n    }\n    render() {\n        const minReceivedAmount = this.toTokenAmount && this.maxSlippage\n            ? NumberUtil.bigNumber(this.toTokenAmount).minus(this.maxSlippage).toString()\n            : null;\n        if (!this.sourceToken || !this.toToken || this.inputError) {\n            return null;\n        }\n        const toTokenSwappedAmount = this.sourceTokenPriceInUSD && this.toTokenPriceInUSD\n            ? (1 / this.toTokenPriceInUSD) * this.sourceTokenPriceInUSD\n            : 0;\n        return html `\n      <wui-flex flexDirection=\"column\" alignItems=\"center\" gap=\"1xs\" class=\"details-container\">\n        <wui-flex flexDirection=\"column\">\n          <button @click=${this.toggleDetails.bind(this)}>\n            <wui-flex justifyContent=\"space-between\" .padding=${['0', 'xs', '0', 'xs']}>\n              <wui-flex justifyContent=\"flex-start\" flexGrow=\"1\" gap=\"xs\">\n                <wui-text variant=\"small-400\" color=\"fg-100\">\n                  1 ${this.sourceToken.symbol} =\n                  ${UiHelperUtil.formatNumberToLocalString(toTokenSwappedAmount, 3)}\n                  ${this.toToken.symbol}\n                </wui-text>\n                <wui-text variant=\"small-400\" color=\"fg-200\">\n                  $${UiHelperUtil.formatNumberToLocalString(this.sourceTokenPriceInUSD)}\n                </wui-text>\n              </wui-flex>\n              <wui-icon name=\"chevronBottom\"></wui-icon>\n            </wui-flex>\n          </button>\n          ${this.detailsOpen\n            ? html `\n                <wui-flex flexDirection=\"column\" gap=\"xs\" class=\"details-content-container\">\n                  ${this.priceImpact\n                ? html ` <wui-flex flexDirection=\"column\" gap=\"xs\">\n                        <wui-flex\n                          justifyContent=\"space-between\"\n                          alignItems=\"center\"\n                          class=\"details-row\"\n                        >\n                          <wui-flex alignItems=\"center\" gap=\"xs\">\n                            <wui-text class=\"details-row-title\" variant=\"small-400\" color=\"fg-150\">\n                              Price impact\n                            </wui-text>\n                            <w3m-tooltip-trigger\n                              text=\"Price impact reflects the change in market price due to your trade\"\n                            >\n                              <wui-icon size=\"xs\" color=\"fg-250\" name=\"infoCircle\"></wui-icon>\n                            </w3m-tooltip-trigger>\n                          </wui-flex>\n                          <wui-flex>\n                            <wui-text variant=\"small-400\" color=\"fg-200\">\n                              ${UiHelperUtil.formatNumberToLocalString(this.priceImpact, 3)}%\n                            </wui-text>\n                          </wui-flex>\n                        </wui-flex>\n                      </wui-flex>`\n                : null}\n                  ${this.maxSlippage && this.sourceToken.symbol\n                ? html `<wui-flex flexDirection=\"column\" gap=\"xs\">\n                        <wui-flex\n                          justifyContent=\"space-between\"\n                          alignItems=\"center\"\n                          class=\"details-row\"\n                        >\n                          <wui-flex alignItems=\"center\" gap=\"xs\">\n                            <wui-text class=\"details-row-title\" variant=\"small-400\" color=\"fg-150\">\n                              Max. slippage\n                            </wui-text>\n                            <w3m-tooltip-trigger\n                              text=${`Max slippage sets the minimum amount you must receive for the transaction to proceed. ${minReceivedAmount\n                    ? `Transaction will be reversed if you receive less than ${UiHelperUtil.formatNumberToLocalString(minReceivedAmount, 6)} ${this.toToken.symbol} due to price changes.`\n                    : ''}`}\n                            >\n                              <wui-icon size=\"xs\" color=\"fg-250\" name=\"infoCircle\"></wui-icon>\n                            </w3m-tooltip-trigger>\n                          </wui-flex>\n                          <wui-flex>\n                            <wui-text variant=\"small-400\" color=\"fg-200\">\n                              ${UiHelperUtil.formatNumberToLocalString(this.maxSlippage, 6)}\n                              ${this.toToken.symbol} ${slippageRate}%\n                            </wui-text>\n                          </wui-flex>\n                        </wui-flex>\n                      </wui-flex>`\n                : null}\n                  <wui-flex flexDirection=\"column\" gap=\"xs\">\n                    <wui-flex\n                      justifyContent=\"space-between\"\n                      alignItems=\"center\"\n                      class=\"details-row provider-free-row\"\n                    >\n                      <wui-flex alignItems=\"center\" gap=\"xs\">\n                        <wui-text class=\"details-row-title\" variant=\"small-400\" color=\"fg-150\">\n                          Provider fee\n                        </wui-text>\n                      </wui-flex>\n                      <wui-flex>\n                        <wui-text variant=\"small-400\" color=\"fg-200\">0.85%</wui-text>\n                      </wui-flex>\n                    </wui-flex>\n                  </wui-flex>\n                </wui-flex>\n              `\n            : null}\n        </wui-flex>\n      </wui-flex>\n    `;\n    }\n    toggleDetails() {\n        this.detailsOpen = !this.detailsOpen;\n    }\n};\nWuiSwapDetails.styles = [styles];\n__decorate([\n    state()\n], WuiSwapDetails.prototype, \"networkName\", void 0);\n__decorate([\n    property()\n], WuiSwapDetails.prototype, \"detailsOpen\", void 0);\n__decorate([\n    state()\n], WuiSwapDetails.prototype, \"sourceToken\", void 0);\n__decorate([\n    state()\n], WuiSwapDetails.prototype, \"toToken\", void 0);\n__decorate([\n    state()\n], WuiSwapDetails.prototype, \"toTokenAmount\", void 0);\n__decorate([\n    state()\n], WuiSwapDetails.prototype, \"sourceTokenPriceInUSD\", void 0);\n__decorate([\n    state()\n], WuiSwapDetails.prototype, \"toTokenPriceInUSD\", void 0);\n__decorate([\n    state()\n], WuiSwapDetails.prototype, \"priceImpact\", void 0);\n__decorate([\n    state()\n], WuiSwapDetails.prototype, \"maxSlippage\", void 0);\n__decorate([\n    state()\n], WuiSwapDetails.prototype, \"networkTokenSymbol\", void 0);\n__decorate([\n    state()\n], WuiSwapDetails.prototype, \"inputError\", void 0);\nWuiSwapDetails = __decorate([\n    customElement('w3m-swap-details')\n], WuiSwapDetails);\nexport { WuiSwapDetails };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n  :host {\n    width: 100%;\n  }\n\n  :host > wui-flex {\n    display: flex;\n    flex-direction: row;\n    justify-content: space-between;\n    align-items: center;\n    border-radius: var(--wui-border-radius-s);\n    padding: var(--wui-spacing-xl);\n    padding-right: var(--wui-spacing-s);\n    background-color: var(--wui-color-gray-glass-002);\n    box-shadow: inset 0px 0px 0px 1px var(--wui-color-gray-glass-002);\n    width: 100%;\n    height: 100px;\n    box-sizing: border-box;\n    position: relative;\n  }\n\n  wui-shimmer.market-value {\n    opacity: 0;\n  }\n\n  :host > wui-flex > svg.input_mask {\n    position: absolute;\n    inset: 0;\n    z-index: 5;\n  }\n\n  :host wui-flex .input_mask__border,\n  :host wui-flex .input_mask__background {\n    transition: fill var(--wui-duration-md) var(--wui-ease-out-power-1);\n    will-change: fill;\n  }\n\n  :host wui-flex .input_mask__border {\n    fill: var(--wui-color-gray-glass-020);\n  }\n\n  :host wui-flex .input_mask__background {\n    fill: var(--wui-color-gray-glass-002);\n  }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport {} from '@reown/appkit-controllers';\nimport { customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-shimmer';\nimport styles from './styles.js';\nlet W3mSwapInputSkeleton = class W3mSwapInputSkeleton extends LitElement {\n    constructor() {\n        super(...arguments);\n        this.target = 'sourceToken';\n    }\n    render() {\n        return html `\n      <wui-flex class justifyContent=\"space-between\">\n        <wui-flex\n          flex=\"1\"\n          flexDirection=\"column\"\n          alignItems=\"flex-start\"\n          justifyContent=\"center\"\n          class=\"swap-input\"\n          gap=\"xxs\"\n        >\n          <wui-shimmer width=\"80px\" height=\"40px\" borderRadius=\"xxs\" variant=\"light\"></wui-shimmer>\n        </wui-flex>\n        ${this.templateTokenSelectButton()}\n      </wui-flex>\n    `;\n    }\n    templateTokenSelectButton() {\n        return html `\n      <wui-flex\n        class=\"swap-token-button\"\n        flexDirection=\"column\"\n        alignItems=\"flex-end\"\n        justifyContent=\"center\"\n        gap=\"xxs\"\n      >\n        <wui-shimmer width=\"80px\" height=\"40px\" borderRadius=\"3xl\" variant=\"light\"></wui-shimmer>\n      </wui-flex>\n    `;\n    }\n};\nW3mSwapInputSkeleton.styles = [styles];\n__decorate([\n    property()\n], W3mSwapInputSkeleton.prototype, \"target\", void 0);\nW3mSwapInputSkeleton = __decorate([\n    customElement('w3m-swap-input-skeleton')\n], W3mSwapInputSkeleton);\nexport { W3mSwapInputSkeleton };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n  :host > wui-flex {\n    display: flex;\n    flex-direction: row;\n    justify-content: space-between;\n    align-items: center;\n    border-radius: var(--wui-border-radius-s);\n    background-color: var(--wui-color-gray-glass-002);\n    padding: var(--wui-spacing-xl);\n    padding-right: var(--wui-spacing-s);\n    width: 100%;\n    height: 100px;\n    box-sizing: border-box;\n    box-shadow: inset 0px 0px 0px 1px var(--wui-color-gray-glass-002);\n    position: relative;\n    transition: box-shadow var(--wui-ease-out-power-1) var(--wui-duration-lg);\n    will-change: background-color;\n  }\n\n  :host wui-flex.focus {\n    box-shadow: inset 0px 0px 0px 1px var(--wui-color-gray-glass-005);\n  }\n\n  :host > wui-flex .swap-input,\n  :host > wui-flex .swap-token-button {\n    z-index: 10;\n  }\n\n  :host > wui-flex .swap-input {\n    -webkit-mask-image: linear-gradient(\n      270deg,\n      transparent 0px,\n      transparent 8px,\n      black 24px,\n      black 25px,\n      black 32px,\n      black 100%\n    );\n    mask-image: linear-gradient(\n      270deg,\n      transparent 0px,\n      transparent 8px,\n      black 24px,\n      black 25px,\n      black 32px,\n      black 100%\n    );\n  }\n\n  :host > wui-flex .swap-input input {\n    background: none;\n    border: none;\n    height: 42px;\n    width: 100%;\n    font-size: 32px;\n    font-style: normal;\n    font-weight: 400;\n    line-height: 130%;\n    letter-spacing: -1.28px;\n    outline: none;\n    caret-color: var(--wui-color-accent-100);\n    color: var(--wui-color-fg-100);\n    padding: 0px;\n  }\n\n  :host > wui-flex .swap-input input:focus-visible {\n    outline: none;\n  }\n\n  :host > wui-flex .swap-input input::-webkit-outer-spin-button,\n  :host > wui-flex .swap-input input::-webkit-inner-spin-button {\n    -webkit-appearance: none;\n    margin: 0;\n  }\n\n  .max-value-button {\n    background-color: transparent;\n    border: none;\n    cursor: pointer;\n    color: var(--wui-color-gray-glass-020);\n    padding-left: 0px;\n  }\n\n  .market-value {\n    min-height: 18px;\n  }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { InputUtil, NumberUtil } from '@reown/appkit-common';\nimport { EventsController, RouterController } from '@reown/appkit-controllers';\nimport { UiHelperUtil, customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-button';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-text';\nimport '@reown/appkit-ui/wui-token-button';\nimport styles from './styles.js';\nconst MINIMUM_USD_VALUE_TO_CONVERT = 0.00005;\nlet W3mSwapInput = class W3mSwapInput extends LitElement {\n    constructor() {\n        super(...arguments);\n        this.focused = false;\n        this.price = 0;\n        this.target = 'sourceToken';\n        this.onSetAmount = null;\n        this.onSetMaxValue = null;\n    }\n    render() {\n        const marketValue = this.marketValue || '0';\n        const isMarketValueGreaterThanZero = NumberUtil.bigNumber(marketValue).gt('0');\n        return html `\n      <wui-flex class=\"${this.focused ? 'focus' : ''}\" justifyContent=\"space-between\">\n        <wui-flex\n          flex=\"1\"\n          flexDirection=\"column\"\n          alignItems=\"flex-start\"\n          justifyContent=\"center\"\n          class=\"swap-input\"\n        >\n          <input\n            data-testid=\"swap-input-${this.target}\"\n            @focusin=${() => this.onFocusChange(true)}\n            @focusout=${() => this.onFocusChange(false)}\n            ?disabled=${this.disabled}\n            .value=${this.value}\n            @input=${this.dispatchInputChangeEvent}\n            @keydown=${this.handleKeydown}\n            placeholder=\"0\"\n            type=\"text\"\n            inputmode=\"decimal\"\n          />\n          <wui-text class=\"market-value\" variant=\"small-400\" color=\"fg-200\">\n            ${isMarketValueGreaterThanZero\n            ? `$${UiHelperUtil.formatNumberToLocalString(this.marketValue, 2)}`\n            : null}\n          </wui-text>\n        </wui-flex>\n        ${this.templateTokenSelectButton()}\n      </wui-flex>\n    `;\n    }\n    handleKeydown(event) {\n        return InputUtil.numericInputKeyDown(event, this.value, (value) => this.onSetAmount?.(this.target, value));\n    }\n    dispatchInputChangeEvent(event) {\n        if (!this.onSetAmount) {\n            return;\n        }\n        const value = event.target.value.replace(/[^0-9.]/gu, '');\n        if (value === ',' || value === '.') {\n            this.onSetAmount(this.target, '0.');\n        }\n        else if (value.endsWith(',')) {\n            this.onSetAmount(this.target, value.replace(',', '.'));\n        }\n        else {\n            this.onSetAmount(this.target, value);\n        }\n    }\n    setMaxValueToInput() {\n        this.onSetMaxValue?.(this.target, this.balance);\n    }\n    templateTokenSelectButton() {\n        if (!this.token) {\n            return html ` <wui-button\n        data-testid=\"swap-select-token-button-${this.target}\"\n        class=\"swap-token-button\"\n        size=\"md\"\n        variant=\"accent\"\n        @click=${this.onSelectToken.bind(this)}\n      >\n        Select token\n      </wui-button>`;\n        }\n        return html `\n      <wui-flex\n        class=\"swap-token-button\"\n        flexDirection=\"column\"\n        alignItems=\"flex-end\"\n        justifyContent=\"center\"\n        gap=\"xxs\"\n      >\n        <wui-token-button\n          data-testid=\"swap-input-token-${this.target}\"\n          text=${this.token.symbol}\n          imageSrc=${this.token.logoUri}\n          @click=${this.onSelectToken.bind(this)}\n        >\n        </wui-token-button>\n        <wui-flex alignItems=\"center\" gap=\"xxs\"> ${this.tokenBalanceTemplate()} </wui-flex>\n      </wui-flex>\n    `;\n    }\n    tokenBalanceTemplate() {\n        const balanceValueInUSD = NumberUtil.multiply(this.balance, this.price);\n        const haveBalance = balanceValueInUSD\n            ? balanceValueInUSD?.gt(MINIMUM_USD_VALUE_TO_CONVERT)\n            : false;\n        return html `\n      ${haveBalance\n            ? html `<wui-text variant=\"small-400\" color=\"fg-200\">\n            ${UiHelperUtil.formatNumberToLocalString(this.balance, 2)}\n          </wui-text>`\n            : null}\n      ${this.target === 'sourceToken' ? this.tokenActionButtonTemplate(haveBalance) : null}\n    `;\n    }\n    tokenActionButtonTemplate(haveBalance) {\n        if (haveBalance) {\n            return html ` <button class=\"max-value-button\" @click=${this.setMaxValueToInput.bind(this)}>\n        <wui-text color=\"accent-100\" variant=\"small-600\">Max</wui-text>\n      </button>`;\n        }\n        return html ` <button class=\"max-value-button\" @click=${this.onBuyToken.bind(this)}>\n      <wui-text color=\"accent-100\" variant=\"small-600\">Buy</wui-text>\n    </button>`;\n    }\n    onFocusChange(state) {\n        this.focused = state;\n    }\n    onSelectToken() {\n        EventsController.sendEvent({ type: 'track', event: 'CLICK_SELECT_TOKEN_TO_SWAP' });\n        RouterController.push('SwapSelectToken', {\n            target: this.target\n        });\n    }\n    onBuyToken() {\n        RouterController.push('OnRampProviders');\n    }\n};\nW3mSwapInput.styles = [styles];\n__decorate([\n    property()\n], W3mSwapInput.prototype, \"focused\", void 0);\n__decorate([\n    property()\n], W3mSwapInput.prototype, \"balance\", void 0);\n__decorate([\n    property()\n], W3mSwapInput.prototype, \"value\", void 0);\n__decorate([\n    property()\n], W3mSwapInput.prototype, \"price\", void 0);\n__decorate([\n    property()\n], W3mSwapInput.prototype, \"marketValue\", void 0);\n__decorate([\n    property()\n], W3mSwapInput.prototype, \"disabled\", void 0);\n__decorate([\n    property()\n], W3mSwapInput.prototype, \"target\", void 0);\n__decorate([\n    property()\n], W3mSwapInput.prototype, \"token\", void 0);\n__decorate([\n    property()\n], W3mSwapInput.prototype, \"onSetAmount\", void 0);\n__decorate([\n    property()\n], W3mSwapInput.prototype, \"onSetMaxValue\", void 0);\nW3mSwapInput = __decorate([\n    customElement('w3m-swap-input')\n], W3mSwapInput);\nexport { W3mSwapInput };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n  :host > wui-flex:first-child {\n    overflow-y: auto;\n    overflow-x: hidden;\n    scrollbar-width: none;\n  }\n\n  :host > wui-flex:first-child::-webkit-scrollbar {\n    display: none;\n  }\n\n  wui-loading-hexagon {\n    position: absolute;\n  }\n\n  .action-button {\n    width: 100%;\n    border-radius: var(--wui-border-radius-xs);\n  }\n\n  .action-button:disabled {\n    border-color: 1px solid var(--wui-color-gray-glass-005);\n  }\n\n  .swap-inputs-container {\n    position: relative;\n  }\n\n  .replace-tokens-button-container {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    gap: var(--wui-spacing-1xs);\n    border-radius: var(--wui-border-radius-xs);\n    background-color: var(--wui-color-modal-bg-base);\n    padding: var(--wui-spacing-xxs);\n  }\n\n  .replace-tokens-button-container > button {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    height: 40px;\n    width: 40px;\n    padding: var(--wui-spacing-xs);\n    border: none;\n    border-radius: var(--wui-border-radius-xxs);\n    background: var(--wui-color-gray-glass-002);\n    transition: background-color var(--wui-duration-md) var(--wui-ease-out-power-1);\n    will-change: background-color;\n    z-index: 20;\n  }\n\n  .replace-tokens-button-container > button:hover {\n    background: var(--wui-color-gray-glass-005);\n  }\n\n  .details-container > wui-flex {\n    background: var(--wui-color-gray-glass-002);\n    border-radius: var(--wui-border-radius-xxs);\n    width: 100%;\n  }\n\n  .details-container > wui-flex > button {\n    border: none;\n    background: none;\n    padding: var(--wui-spacing-s);\n    border-radius: var(--wui-border-radius-xxs);\n    transition: background 0.2s linear;\n  }\n\n  .details-container > wui-flex > button:hover {\n    background: var(--wui-color-gray-glass-002);\n  }\n\n  .details-content-container {\n    padding: var(--wui-spacing-1xs);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n\n  .details-content-container > wui-flex {\n    width: 100%;\n  }\n\n  .details-row {\n    width: 100%;\n    padding: var(--wui-spacing-s) var(--wui-spacing-xl);\n    border-radius: var(--wui-border-radius-xxs);\n    background: var(--wui-color-gray-glass-002);\n  }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { NumberUtil } from '@reown/appkit-common';\nimport { AccountController, ChainController, CoreHelperUtil, EventsController, ModalController, RouterController, SwapController } from '@reown/appkit-controllers';\nimport { customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-button';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-icon';\nimport '@reown/appkit-ui/wui-text';\nimport { W3mFrameRpcConstants } from '@reown/appkit-wallet/utils';\nimport '../../partials/w3m-swap-details/index.js';\nimport '../../partials/w3m-swap-input-skeleton/index.js';\nimport '../../partials/w3m-swap-input/index.js';\nimport styles from './styles.js';\nlet W3mSwapView = class W3mSwapView extends LitElement {\n    constructor() {\n        super();\n        this.unsubscribe = [];\n        this.initialParams = RouterController.state.data?.swap;\n        this.detailsOpen = false;\n        this.caipAddress = AccountController.state.caipAddress;\n        this.caipNetworkId = ChainController.state.activeCaipNetwork?.caipNetworkId;\n        this.initialized = SwapController.state.initialized;\n        this.loadingQuote = SwapController.state.loadingQuote;\n        this.loadingPrices = SwapController.state.loadingPrices;\n        this.loadingTransaction = SwapController.state.loadingTransaction;\n        this.sourceToken = SwapController.state.sourceToken;\n        this.sourceTokenAmount = SwapController.state.sourceTokenAmount;\n        this.sourceTokenPriceInUSD = SwapController.state.sourceTokenPriceInUSD;\n        this.toToken = SwapController.state.toToken;\n        this.toTokenAmount = SwapController.state.toTokenAmount;\n        this.toTokenPriceInUSD = SwapController.state.toTokenPriceInUSD;\n        this.inputError = SwapController.state.inputError;\n        this.fetchError = SwapController.state.fetchError;\n        this.onDebouncedGetSwapCalldata = CoreHelperUtil.debounce(async () => {\n            await SwapController.swapTokens();\n        }, 200);\n        ChainController.subscribeKey('activeCaipNetwork', newCaipNetwork => this.onCaipNetworkChange({\n            newCaipNetwork,\n            resetSwapState: true,\n            initializeSwapState: false\n        }));\n        AccountController.subscribeKey('caipAddress', newCaipAddress => this.onCaipAddressChange({\n            newCaipAddress,\n            resetSwapState: true,\n            initializeSwapState: false\n        }));\n        this.unsubscribe.push(...[\n            ChainController.subscribeKey('activeCaipNetwork', newCaipNetwork => this.onCaipNetworkChange({\n                newCaipNetwork,\n                resetSwapState: false,\n                initializeSwapState: true\n            })),\n            AccountController.subscribeKey('caipAddress', newCaipAddress => this.onCaipAddressChange({\n                newCaipAddress,\n                resetSwapState: false,\n                initializeSwapState: true\n            })),\n            ModalController.subscribeKey('open', isOpen => {\n                if (!isOpen) {\n                    SwapController.resetState();\n                }\n            }),\n            RouterController.subscribeKey('view', newRoute => {\n                if (!newRoute.includes('Swap')) {\n                    SwapController.resetValues();\n                }\n            }),\n            SwapController.subscribe(newState => {\n                this.initialized = newState.initialized;\n                this.loadingQuote = newState.loadingQuote;\n                this.loadingPrices = newState.loadingPrices;\n                this.loadingTransaction = newState.loadingTransaction;\n                this.sourceToken = newState.sourceToken;\n                this.sourceTokenAmount = newState.sourceTokenAmount;\n                this.sourceTokenPriceInUSD = newState.sourceTokenPriceInUSD;\n                this.toToken = newState.toToken;\n                this.toTokenAmount = newState.toTokenAmount;\n                this.toTokenPriceInUSD = newState.toTokenPriceInUSD;\n                this.inputError = newState.inputError;\n                this.fetchError = newState.fetchError;\n            })\n        ]);\n    }\n    async firstUpdated() {\n        SwapController.initializeState();\n        this.watchTokensAndValues();\n        await this.handleSwapParameters();\n    }\n    disconnectedCallback() {\n        this.unsubscribe.forEach(unsubscribe => unsubscribe?.());\n        clearInterval(this.interval);\n    }\n    render() {\n        return html `\n      <wui-flex flexDirection=\"column\" .padding=${['0', 'l', 'l', 'l']} gap=\"s\">\n        ${this.initialized ? this.templateSwap() : this.templateLoading()}\n      </wui-flex>\n    `;\n    }\n    watchTokensAndValues() {\n        this.interval = setInterval(() => {\n            SwapController.getNetworkTokenPrice();\n            SwapController.getMyTokensWithBalance();\n            SwapController.swapTokens();\n        }, 10_000);\n    }\n    templateSwap() {\n        return html `\n      <wui-flex flexDirection=\"column\" gap=\"s\">\n        <wui-flex flexDirection=\"column\" alignItems=\"center\" gap=\"xs\" class=\"swap-inputs-container\">\n          ${this.templateTokenInput('sourceToken', this.sourceToken)}\n          ${this.templateTokenInput('toToken', this.toToken)} ${this.templateReplaceTokensButton()}\n        </wui-flex>\n        ${this.templateDetails()} ${this.templateActionButton()}\n      </wui-flex>\n    `;\n    }\n    actionButtonLabel() {\n        if (this.fetchError) {\n            return 'Swap';\n        }\n        if (!this.sourceToken || !this.toToken) {\n            return 'Select token';\n        }\n        if (!this.sourceTokenAmount) {\n            return 'Enter amount';\n        }\n        if (this.inputError) {\n            return this.inputError;\n        }\n        return 'Review swap';\n    }\n    templateReplaceTokensButton() {\n        return html `\n      <wui-flex class=\"replace-tokens-button-container\">\n        <button @click=${this.onSwitchTokens.bind(this)}>\n          <wui-icon name=\"recycleHorizontal\" color=\"fg-250\" size=\"lg\"></wui-icon>\n        </button>\n      </wui-flex>\n    `;\n    }\n    templateLoading() {\n        return html `\n      <wui-flex flexDirection=\"column\" gap=\"l\">\n        <wui-flex flexDirection=\"column\" alignItems=\"center\" gap=\"xs\" class=\"swap-inputs-container\">\n          <w3m-swap-input-skeleton target=\"sourceToken\"></w3m-swap-input-skeleton>\n          <w3m-swap-input-skeleton target=\"toToken\"></w3m-swap-input-skeleton>\n          ${this.templateReplaceTokensButton()}\n        </wui-flex>\n        ${this.templateActionButton()}\n      </wui-flex>\n    `;\n    }\n    templateTokenInput(target, token) {\n        const myToken = SwapController.state.myTokensWithBalance?.find(ct => ct?.address === token?.address);\n        const amount = target === 'toToken' ? this.toTokenAmount : this.sourceTokenAmount;\n        const price = target === 'toToken' ? this.toTokenPriceInUSD : this.sourceTokenPriceInUSD;\n        const marketValue = NumberUtil.parseLocalStringToNumber(amount) * price;\n        return html `<w3m-swap-input\n      .value=${target === 'toToken' ? this.toTokenAmount : this.sourceTokenAmount}\n      .disabled=${target === 'toToken'}\n      .onSetAmount=${this.handleChangeAmount.bind(this)}\n      target=${target}\n      .token=${token}\n      .balance=${myToken?.quantity?.numeric}\n      .price=${myToken?.price}\n      .marketValue=${marketValue}\n      .onSetMaxValue=${this.onSetMaxValue.bind(this)}\n    ></w3m-swap-input>`;\n    }\n    onSetMaxValue(target, balance) {\n        const maxValue = NumberUtil.bigNumber(balance || '0');\n        this.handleChangeAmount(target, maxValue.gt(0) ? maxValue.toFixed(20) : '0');\n    }\n    templateDetails() {\n        if (!this.sourceToken || !this.toToken || this.inputError) {\n            return null;\n        }\n        return html `<w3m-swap-details .detailsOpen=${this.detailsOpen}></w3m-swap-details>`;\n    }\n    handleChangeAmount(target, value) {\n        SwapController.clearError();\n        if (target === 'sourceToken') {\n            SwapController.setSourceTokenAmount(value);\n        }\n        else {\n            SwapController.setToTokenAmount(value);\n        }\n        this.onDebouncedGetSwapCalldata();\n    }\n    templateActionButton() {\n        const haveNoTokenSelected = !this.toToken || !this.sourceToken;\n        const haveNoAmount = !this.sourceTokenAmount;\n        const loading = this.loadingQuote || this.loadingPrices || this.loadingTransaction;\n        const disabled = loading || haveNoTokenSelected || haveNoAmount || this.inputError;\n        return html ` <wui-flex gap=\"xs\">\n      <wui-button\n        data-testid=\"swap-action-button\"\n        class=\"action-button\"\n        fullWidth\n        size=\"lg\"\n        borderRadius=\"xs\"\n        variant=${haveNoTokenSelected ? 'neutral' : 'main'}\n        .loading=${loading}\n        .disabled=${disabled}\n        @click=${this.onSwapPreview.bind(this)}\n      >\n        ${this.actionButtonLabel()}\n      </wui-button>\n    </wui-flex>`;\n    }\n    onSwitchTokens() {\n        SwapController.switchTokens();\n    }\n    async onSwapPreview() {\n        const activeChainNamespace = ChainController.state.activeChain;\n        if (this.fetchError) {\n            await SwapController.swapTokens();\n        }\n        EventsController.sendEvent({\n            type: 'track',\n            event: 'INITIATE_SWAP',\n            properties: {\n                network: this.caipNetworkId || '',\n                swapFromToken: this.sourceToken?.symbol || '',\n                swapToToken: this.toToken?.symbol || '',\n                swapFromAmount: this.sourceTokenAmount || '',\n                swapToAmount: this.toTokenAmount || '',\n                isSmartAccount: AccountController.state.preferredAccountTypes?.[activeChainNamespace] ===\n                    W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT\n            }\n        });\n        RouterController.push('SwapPreview');\n    }\n    async handleSwapParameters() {\n        if (!this.initialParams) {\n            return;\n        }\n        if (!SwapController.state.initialized) {\n            const waitForInitialization = new Promise(resolve => {\n                const unsubscribe = SwapController.subscribeKey('initialized', initialized => {\n                    if (initialized) {\n                        unsubscribe?.();\n                        resolve();\n                    }\n                });\n            });\n            await waitForInitialization;\n        }\n        await this.setSwapParameters(this.initialParams);\n    }\n    async setSwapParameters({ amount, fromToken, toToken }) {\n        if (!SwapController.state.tokens || !SwapController.state.myTokensWithBalance) {\n            const waitForTokens = new Promise(resolve => {\n                const unsubscribe = SwapController.subscribeKey('myTokensWithBalance', tokens => {\n                    if (tokens && tokens.length > 0) {\n                        unsubscribe?.();\n                        resolve();\n                    }\n                });\n                setTimeout(() => {\n                    unsubscribe?.();\n                    resolve();\n                }, 5000);\n            });\n            await waitForTokens;\n        }\n        const allTokens = [\n            ...(SwapController.state.tokens || []),\n            ...(SwapController.state.myTokensWithBalance || [])\n        ];\n        if (fromToken) {\n            const token = allTokens.find(t => t.symbol.toLowerCase() === fromToken.toLowerCase());\n            if (token) {\n                SwapController.setSourceToken(token);\n            }\n        }\n        if (toToken) {\n            const token = allTokens.find(t => t.symbol.toLowerCase() === toToken.toLowerCase());\n            if (token) {\n                SwapController.setToToken(token);\n            }\n        }\n        if (amount && !isNaN(Number(amount))) {\n            SwapController.setSourceTokenAmount(amount);\n        }\n    }\n    onCaipAddressChange({ newCaipAddress, resetSwapState, initializeSwapState }) {\n        if (this.caipAddress !== newCaipAddress) {\n            this.caipAddress = newCaipAddress;\n            if (resetSwapState) {\n                SwapController.resetState();\n            }\n            if (initializeSwapState) {\n                SwapController.initializeState();\n            }\n        }\n    }\n    onCaipNetworkChange({ newCaipNetwork, resetSwapState, initializeSwapState }) {\n        if (this.caipNetworkId !== newCaipNetwork?.caipNetworkId) {\n            this.caipNetworkId = newCaipNetwork?.caipNetworkId;\n            if (resetSwapState) {\n                SwapController.resetState();\n            }\n            if (initializeSwapState) {\n                SwapController.initializeState();\n            }\n        }\n    }\n};\nW3mSwapView.styles = styles;\n__decorate([\n    property({ type: Object })\n], W3mSwapView.prototype, \"initialParams\", void 0);\n__decorate([\n    state()\n], W3mSwapView.prototype, \"interval\", void 0);\n__decorate([\n    state()\n], W3mSwapView.prototype, \"detailsOpen\", void 0);\n__decorate([\n    state()\n], W3mSwapView.prototype, \"caipAddress\", void 0);\n__decorate([\n    state()\n], W3mSwapView.prototype, \"caipNetworkId\", void 0);\n__decorate([\n    state()\n], W3mSwapView.prototype, \"initialized\", void 0);\n__decorate([\n    state()\n], W3mSwapView.prototype, \"loadingQuote\", void 0);\n__decorate([\n    state()\n], W3mSwapView.prototype, \"loadingPrices\", void 0);\n__decorate([\n    state()\n], W3mSwapView.prototype, \"loadingTransaction\", void 0);\n__decorate([\n    state()\n], W3mSwapView.prototype, \"sourceToken\", void 0);\n__decorate([\n    state()\n], W3mSwapView.prototype, \"sourceTokenAmount\", void 0);\n__decorate([\n    state()\n], W3mSwapView.prototype, \"sourceTokenPriceInUSD\", void 0);\n__decorate([\n    state()\n], W3mSwapView.prototype, \"toToken\", void 0);\n__decorate([\n    state()\n], W3mSwapView.prototype, \"toTokenAmount\", void 0);\n__decorate([\n    state()\n], W3mSwapView.prototype, \"toTokenPriceInUSD\", void 0);\n__decorate([\n    state()\n], W3mSwapView.prototype, \"inputError\", void 0);\n__decorate([\n    state()\n], W3mSwapView.prototype, \"fetchError\", void 0);\nW3mSwapView = __decorate([\n    customElement('w3m-swap-view')\n], W3mSwapView);\nexport { W3mSwapView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n  :host > wui-flex:first-child {\n    overflow-y: auto;\n    overflow-x: hidden;\n    scrollbar-width: none;\n  }\n\n  :host > wui-flex:first-child::-webkit-scrollbar {\n    display: none;\n  }\n\n  .preview-container,\n  .details-container {\n    width: 100%;\n  }\n\n  .token-image {\n    width: 24px;\n    height: 24px;\n    box-shadow: 0 0 0 2px var(--wui-color-gray-glass-005);\n    border-radius: 12px;\n  }\n\n  wui-loading-hexagon {\n    position: absolute;\n  }\n\n  .token-item {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: var(--wui-spacing-xxs);\n    padding: var(--wui-spacing-xs);\n    height: 40px;\n    border: none;\n    border-radius: 80px;\n    background: var(--wui-color-gray-glass-002);\n    box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-002);\n    cursor: pointer;\n    transition: background 0.2s linear;\n  }\n\n  .token-item:hover {\n    background: var(--wui-color-gray-glass-005);\n  }\n\n  .preview-token-details-container {\n    width: 100%;\n  }\n\n  .details-row {\n    width: 100%;\n    padding: var(--wui-spacing-s) var(--wui-spacing-xl);\n    border-radius: var(--wui-border-radius-xxs);\n    background: var(--wui-color-gray-glass-002);\n  }\n\n  .action-buttons-container {\n    width: 100%;\n    gap: var(--wui-spacing-xs);\n  }\n\n  .action-buttons-container > button {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    background: transparent;\n    height: 48px;\n    border-radius: var(--wui-border-radius-xs);\n    border: none;\n    box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n  }\n\n  .action-buttons-container > button:disabled {\n    opacity: 0.8;\n    cursor: not-allowed;\n  }\n\n  .action-button > wui-loading-spinner {\n    display: inline-block;\n  }\n\n  .cancel-button:hover,\n  .action-button:hover {\n    cursor: pointer;\n  }\n\n  .action-buttons-container > wui-button.cancel-button {\n    flex: 2;\n  }\n\n  .action-buttons-container > wui-button.action-button {\n    flex: 4;\n  }\n\n  .action-buttons-container > button.action-button > wui-text {\n    color: white;\n  }\n\n  .details-container > wui-flex {\n    background: var(--wui-color-gray-glass-002);\n    border-radius: var(--wui-border-radius-xxs);\n    width: 100%;\n  }\n\n  .details-container > wui-flex > button {\n    border: none;\n    background: none;\n    padding: var(--wui-spacing-s);\n    border-radius: var(--wui-border-radius-xxs);\n    transition: background 0.2s linear;\n  }\n\n  .details-container > wui-flex > button:hover {\n    background: var(--wui-color-gray-glass-002);\n  }\n\n  .details-content-container {\n    padding: var(--wui-spacing-1xs);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n\n  .details-content-container > wui-flex {\n    width: 100%;\n  }\n\n  .details-row {\n    width: 100%;\n    padding: var(--wui-spacing-s) var(--wui-spacing-xl);\n    border-radius: var(--wui-border-radius-xxs);\n    background: var(--wui-color-gray-glass-002);\n  }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { AccountController, ChainController, RouterController, SwapController } from '@reown/appkit-controllers';\nimport { UiHelperUtil, customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-button';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-icon';\nimport '@reown/appkit-ui/wui-text';\nimport '@reown/appkit-ui/wui-token-button';\nimport '../../partials/w3m-swap-details/index.js';\nimport styles from './styles.js';\nlet W3mSwapPreviewView = class W3mSwapPreviewView extends LitElement {\n    constructor() {\n        super();\n        this.unsubscribe = [];\n        this.detailsOpen = true;\n        this.approvalTransaction = SwapController.state.approvalTransaction;\n        this.swapTransaction = SwapController.state.swapTransaction;\n        this.sourceToken = SwapController.state.sourceToken;\n        this.sourceTokenAmount = SwapController.state.sourceTokenAmount ?? '';\n        this.sourceTokenPriceInUSD = SwapController.state.sourceTokenPriceInUSD;\n        this.toToken = SwapController.state.toToken;\n        this.toTokenAmount = SwapController.state.toTokenAmount ?? '';\n        this.toTokenPriceInUSD = SwapController.state.toTokenPriceInUSD;\n        this.caipNetwork = ChainController.state.activeCaipNetwork;\n        this.balanceSymbol = AccountController.state.balanceSymbol;\n        this.inputError = SwapController.state.inputError;\n        this.loadingQuote = SwapController.state.loadingQuote;\n        this.loadingApprovalTransaction = SwapController.state.loadingApprovalTransaction;\n        this.loadingBuildTransaction = SwapController.state.loadingBuildTransaction;\n        this.loadingTransaction = SwapController.state.loadingTransaction;\n        this.unsubscribe.push(...[\n            AccountController.subscribeKey('balanceSymbol', newBalanceSymbol => {\n                if (this.balanceSymbol !== newBalanceSymbol) {\n                    RouterController.goBack();\n                }\n            }),\n            ChainController.subscribeKey('activeCaipNetwork', newCaipNetwork => {\n                if (this.caipNetwork !== newCaipNetwork) {\n                    this.caipNetwork = newCaipNetwork;\n                }\n            }),\n            SwapController.subscribe(newState => {\n                this.approvalTransaction = newState.approvalTransaction;\n                this.swapTransaction = newState.swapTransaction;\n                this.sourceToken = newState.sourceToken;\n                this.toToken = newState.toToken;\n                this.toTokenPriceInUSD = newState.toTokenPriceInUSD;\n                this.sourceTokenAmount = newState.sourceTokenAmount ?? '';\n                this.toTokenAmount = newState.toTokenAmount ?? '';\n                this.inputError = newState.inputError;\n                if (newState.inputError) {\n                    RouterController.goBack();\n                }\n                this.loadingQuote = newState.loadingQuote;\n                this.loadingApprovalTransaction = newState.loadingApprovalTransaction;\n                this.loadingBuildTransaction = newState.loadingBuildTransaction;\n                this.loadingTransaction = newState.loadingTransaction;\n            })\n        ]);\n    }\n    firstUpdated() {\n        SwapController.getTransaction();\n        this.refreshTransaction();\n    }\n    disconnectedCallback() {\n        this.unsubscribe.forEach(unsubscribe => unsubscribe?.());\n        clearInterval(this.interval);\n    }\n    render() {\n        return html `\n      <wui-flex flexDirection=\"column\" .padding=${['0', 'l', 'l', 'l']} gap=\"s\">\n        ${this.templateSwap()}\n      </wui-flex>\n    `;\n    }\n    refreshTransaction() {\n        this.interval = setInterval(() => {\n            if (!SwapController.getApprovalLoadingState()) {\n                SwapController.getTransaction();\n            }\n        }, 10_000);\n    }\n    templateSwap() {\n        const sourceTokenText = `${UiHelperUtil.formatNumberToLocalString(parseFloat(this.sourceTokenAmount))} ${this.sourceToken?.symbol}`;\n        const toTokenText = `${UiHelperUtil.formatNumberToLocalString(parseFloat(this.toTokenAmount))} ${this.toToken?.symbol}`;\n        const sourceTokenValue = parseFloat(this.sourceTokenAmount) * this.sourceTokenPriceInUSD;\n        const toTokenValue = parseFloat(this.toTokenAmount) * this.toTokenPriceInUSD;\n        const sentPrice = UiHelperUtil.formatNumberToLocalString(sourceTokenValue);\n        const receivePrice = UiHelperUtil.formatNumberToLocalString(toTokenValue);\n        const loading = this.loadingQuote ||\n            this.loadingBuildTransaction ||\n            this.loadingTransaction ||\n            this.loadingApprovalTransaction;\n        return html `\n      <wui-flex flexDirection=\"column\" alignItems=\"center\" gap=\"l\">\n        <wui-flex class=\"preview-container\" flexDirection=\"column\" alignItems=\"flex-start\" gap=\"l\">\n          <wui-flex\n            class=\"preview-token-details-container\"\n            alignItems=\"center\"\n            justifyContent=\"space-between\"\n            gap=\"l\"\n          >\n            <wui-flex flexDirection=\"column\" alignItems=\"flex-start\" gap=\"4xs\">\n              <wui-text variant=\"small-400\" color=\"fg-150\">Send</wui-text>\n              <wui-text variant=\"paragraph-400\" color=\"fg-100\">$${sentPrice}</wui-text>\n            </wui-flex>\n            <wui-token-button\n              flexDirection=\"row-reverse\"\n              text=${sourceTokenText}\n              imageSrc=${this.sourceToken?.logoUri}\n            >\n            </wui-token-button>\n          </wui-flex>\n          <wui-icon name=\"recycleHorizontal\" color=\"fg-200\" size=\"md\"></wui-icon>\n          <wui-flex\n            class=\"preview-token-details-container\"\n            alignItems=\"center\"\n            justifyContent=\"space-between\"\n            gap=\"l\"\n          >\n            <wui-flex flexDirection=\"column\" alignItems=\"flex-start\" gap=\"4xs\">\n              <wui-text variant=\"small-400\" color=\"fg-150\">Receive</wui-text>\n              <wui-text variant=\"paragraph-400\" color=\"fg-100\">$${receivePrice}</wui-text>\n            </wui-flex>\n            <wui-token-button\n              flexDirection=\"row-reverse\"\n              text=${toTokenText}\n              imageSrc=${this.toToken?.logoUri}\n            >\n            </wui-token-button>\n          </wui-flex>\n        </wui-flex>\n\n        ${this.templateDetails()}\n\n        <wui-flex flexDirection=\"row\" alignItems=\"center\" justifyContent=\"center\" gap=\"xs\">\n          <wui-icon size=\"sm\" color=\"fg-200\" name=\"infoCircle\"></wui-icon>\n          <wui-text variant=\"small-400\" color=\"fg-200\">Review transaction carefully</wui-text>\n        </wui-flex>\n\n        <wui-flex\n          class=\"action-buttons-container\"\n          flexDirection=\"row\"\n          alignItems=\"center\"\n          justifyContent=\"space-between\"\n          gap=\"xs\"\n        >\n          <wui-button\n            class=\"cancel-button\"\n            fullWidth\n            size=\"lg\"\n            borderRadius=\"xs\"\n            variant=\"neutral\"\n            @click=${this.onCancelTransaction.bind(this)}\n          >\n            <wui-text variant=\"paragraph-600\" color=\"fg-200\">Cancel</wui-text>\n          </wui-button>\n          <wui-button\n            class=\"action-button\"\n            fullWidth\n            size=\"lg\"\n            borderRadius=\"xs\"\n            variant=\"main\"\n            ?loading=${loading}\n            ?disabled=${loading}\n            @click=${this.onSendTransaction.bind(this)}\n          >\n            <wui-text variant=\"paragraph-600\" color=\"inverse-100\">\n              ${this.actionButtonLabel()}\n            </wui-text>\n          </wui-button>\n        </wui-flex>\n      </wui-flex>\n    `;\n    }\n    templateDetails() {\n        if (!this.sourceToken || !this.toToken || this.inputError) {\n            return null;\n        }\n        return html `<w3m-swap-details .detailsOpen=${this.detailsOpen}></w3m-swap-details>`;\n    }\n    actionButtonLabel() {\n        if (this.loadingApprovalTransaction) {\n            return 'Approving...';\n        }\n        if (this.approvalTransaction) {\n            return 'Approve';\n        }\n        return 'Swap';\n    }\n    onCancelTransaction() {\n        RouterController.goBack();\n    }\n    onSendTransaction() {\n        if (this.approvalTransaction) {\n            SwapController.sendTransactionForApproval(this.approvalTransaction);\n        }\n        else {\n            SwapController.sendTransactionForSwap(this.swapTransaction);\n        }\n    }\n};\nW3mSwapPreviewView.styles = styles;\n__decorate([\n    state()\n], W3mSwapPreviewView.prototype, \"interval\", void 0);\n__decorate([\n    state()\n], W3mSwapPreviewView.prototype, \"detailsOpen\", void 0);\n__decorate([\n    state()\n], W3mSwapPreviewView.prototype, \"approvalTransaction\", void 0);\n__decorate([\n    state()\n], W3mSwapPreviewView.prototype, \"swapTransaction\", void 0);\n__decorate([\n    state()\n], W3mSwapPreviewView.prototype, \"sourceToken\", void 0);\n__decorate([\n    state()\n], W3mSwapPreviewView.prototype, \"sourceTokenAmount\", void 0);\n__decorate([\n    state()\n], W3mSwapPreviewView.prototype, \"sourceTokenPriceInUSD\", void 0);\n__decorate([\n    state()\n], W3mSwapPreviewView.prototype, \"toToken\", void 0);\n__decorate([\n    state()\n], W3mSwapPreviewView.prototype, \"toTokenAmount\", void 0);\n__decorate([\n    state()\n], W3mSwapPreviewView.prototype, \"toTokenPriceInUSD\", void 0);\n__decorate([\n    state()\n], W3mSwapPreviewView.prototype, \"caipNetwork\", void 0);\n__decorate([\n    state()\n], W3mSwapPreviewView.prototype, \"balanceSymbol\", void 0);\n__decorate([\n    state()\n], W3mSwapPreviewView.prototype, \"inputError\", void 0);\n__decorate([\n    state()\n], W3mSwapPreviewView.prototype, \"loadingQuote\", void 0);\n__decorate([\n    state()\n], W3mSwapPreviewView.prototype, \"loadingApprovalTransaction\", void 0);\n__decorate([\n    state()\n], W3mSwapPreviewView.prototype, \"loadingBuildTransaction\", void 0);\n__decorate([\n    state()\n], W3mSwapPreviewView.prototype, \"loadingTransaction\", void 0);\nW3mSwapPreviewView = __decorate([\n    customElement('w3m-swap-preview-view')\n], W3mSwapPreviewView);\nexport { W3mSwapPreviewView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n  :host {\n    height: 60px;\n    min-height: 60px;\n  }\n\n  :host > wui-flex {\n    cursor: pointer;\n    height: 100%;\n    display: flex;\n    column-gap: var(--wui-spacing-s);\n    padding: var(--wui-spacing-xs);\n    padding-right: var(--wui-spacing-l);\n    width: 100%;\n    background-color: transparent;\n    border-radius: var(--wui-border-radius-xs);\n    color: var(--wui-color-fg-250);\n    transition:\n      background-color var(--wui-ease-out-power-1) var(--wui-duration-lg),\n      opacity var(--wui-ease-out-power-1) var(--wui-duration-lg);\n    will-change: background-color, opacity;\n  }\n\n  @media (hover: hover) and (pointer: fine) {\n    :host > wui-flex:hover {\n      background-color: var(--wui-color-gray-glass-002);\n    }\n\n    :host > wui-flex:active {\n      background-color: var(--wui-color-gray-glass-005);\n    }\n  }\n\n  :host([disabled]) > wui-flex {\n    opacity: 0.6;\n  }\n\n  :host([disabled]) > wui-flex:hover {\n    background-color: transparent;\n  }\n\n  :host > wui-flex > wui-flex {\n    flex: 1;\n  }\n\n  :host > wui-flex > wui-image,\n  :host > wui-flex > .token-item-image-placeholder {\n    width: 40px;\n    max-width: 40px;\n    height: 40px;\n    border-radius: var(--wui-border-radius-3xl);\n    position: relative;\n  }\n\n  :host > wui-flex > .token-item-image-placeholder {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n\n  :host > wui-flex > wui-image::after,\n  :host > wui-flex > .token-item-image-placeholder::after {\n    position: absolute;\n    content: '';\n    inset: 0;\n    box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n    border-radius: var(--wui-border-radius-l);\n  }\n\n  button > wui-icon-box[data-variant='square-blue'] {\n    border-radius: var(--wui-border-radius-3xs);\n    position: relative;\n    border: none;\n    width: 36px;\n    height: 36px;\n  }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { NumberUtil } from '@reown/appkit-common';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-image/index.js';\nimport '../../components/wui-text/index.js';\nimport '../../layout/wui-flex/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { UiHelperUtil } from '../../utils/UiHelperUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiTokenListItem = class WuiTokenListItem extends LitElement {\n    constructor() {\n        super();\n        this.observer = new IntersectionObserver(() => undefined);\n        this.imageSrc = undefined;\n        this.name = undefined;\n        this.symbol = undefined;\n        this.price = undefined;\n        this.amount = undefined;\n        this.visible = false;\n        this.imageError = false;\n        this.observer = new IntersectionObserver(entries => {\n            entries.forEach(entry => {\n                if (entry.isIntersecting) {\n                    this.visible = true;\n                }\n                else {\n                    this.visible = false;\n                }\n            });\n        }, { threshold: 0.1 });\n    }\n    firstUpdated() {\n        this.observer.observe(this);\n    }\n    disconnectedCallback() {\n        this.observer.disconnect();\n    }\n    render() {\n        if (!this.visible) {\n            return null;\n        }\n        const value = this.amount && this.price ? NumberUtil.multiply(this.price, this.amount)?.toFixed(3) : null;\n        return html `\n      <wui-flex alignItems=\"center\">\n        ${this.visualTemplate()}\n        <wui-flex flexDirection=\"column\" gap=\"3xs\">\n          <wui-flex justifyContent=\"space-between\">\n            <wui-text variant=\"paragraph-500\" color=\"fg-100\" lineClamp=\"1\">${this.name}</wui-text>\n            ${value\n            ? html `\n                  <wui-text variant=\"paragraph-500\" color=\"fg-100\">\n                    $${UiHelperUtil.formatNumberToLocalString(value, 3)}\n                  </wui-text>\n                `\n            : null}\n          </wui-flex>\n          <wui-flex justifyContent=\"space-between\">\n            <wui-text variant=\"small-400\" color=\"fg-200\" lineClamp=\"1\">${this.symbol}</wui-text>\n            ${this.amount\n            ? html `<wui-text variant=\"small-400\" color=\"fg-200\">\n                  ${UiHelperUtil.formatNumberToLocalString(this.amount, 4)}\n                </wui-text>`\n            : null}\n          </wui-flex>\n        </wui-flex>\n      </wui-flex>\n    `;\n    }\n    visualTemplate() {\n        if (this.imageError) {\n            return html `<wui-flex class=\"token-item-image-placeholder\">\n        <wui-icon name=\"image\" color=\"inherit\"></wui-icon>\n      </wui-flex>`;\n        }\n        if (this.imageSrc) {\n            return html `<wui-image\n        width=\"40\"\n        height=\"40\"\n        src=${this.imageSrc}\n        @onLoadError=${this.imageLoadError}\n      ></wui-image>`;\n        }\n        return null;\n    }\n    imageLoadError() {\n        this.imageError = true;\n    }\n};\nWuiTokenListItem.styles = [resetStyles, elementStyles, styles];\n__decorate([\n    property()\n], WuiTokenListItem.prototype, \"imageSrc\", void 0);\n__decorate([\n    property()\n], WuiTokenListItem.prototype, \"name\", void 0);\n__decorate([\n    property()\n], WuiTokenListItem.prototype, \"symbol\", void 0);\n__decorate([\n    property()\n], WuiTokenListItem.prototype, \"price\", void 0);\n__decorate([\n    property()\n], WuiTokenListItem.prototype, \"amount\", void 0);\n__decorate([\n    state()\n], WuiTokenListItem.prototype, \"visible\", void 0);\n__decorate([\n    state()\n], WuiTokenListItem.prototype, \"imageError\", void 0);\nWuiTokenListItem = __decorate([\n    customElement('wui-token-list-item')\n], WuiTokenListItem);\nexport { WuiTokenListItem };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n  :host {\n    --tokens-scroll--top-opacity: 0;\n    --tokens-scroll--bottom-opacity: 1;\n    --suggested-tokens-scroll--left-opacity: 0;\n    --suggested-tokens-scroll--right-opacity: 1;\n  }\n\n  :host > wui-flex:first-child {\n    overflow-y: hidden;\n    overflow-x: hidden;\n    scrollbar-width: none;\n    scrollbar-height: none;\n  }\n\n  :host > wui-flex:first-child::-webkit-scrollbar {\n    display: none;\n  }\n\n  wui-loading-hexagon {\n    position: absolute;\n  }\n\n  .suggested-tokens-container {\n    overflow-x: auto;\n    mask-image: linear-gradient(\n      to right,\n      rgba(0, 0, 0, calc(1 - var(--suggested-tokens-scroll--left-opacity))) 0px,\n      rgba(200, 200, 200, calc(1 - var(--suggested-tokens-scroll--left-opacity))) 1px,\n      black 50px,\n      black 90px,\n      black calc(100% - 90px),\n      black calc(100% - 50px),\n      rgba(155, 155, 155, calc(1 - var(--suggested-tokens-scroll--right-opacity))) calc(100% - 1px),\n      rgba(0, 0, 0, calc(1 - var(--suggested-tokens-scroll--right-opacity))) 100%\n    );\n  }\n\n  .suggested-tokens-container::-webkit-scrollbar {\n    display: none;\n  }\n\n  .tokens-container {\n    border-top: 1px solid var(--wui-color-gray-glass-005);\n    height: 100%;\n    max-height: 390px;\n  }\n\n  .tokens {\n    width: 100%;\n    overflow-y: auto;\n    mask-image: linear-gradient(\n      to bottom,\n      rgba(0, 0, 0, calc(1 - var(--tokens-scroll--top-opacity))) 0px,\n      rgba(200, 200, 200, calc(1 - var(--tokens-scroll--top-opacity))) 1px,\n      black 50px,\n      black 90px,\n      black calc(100% - 90px),\n      black calc(100% - 50px),\n      rgba(155, 155, 155, calc(1 - var(--tokens-scroll--bottom-opacity))) calc(100% - 1px),\n      rgba(0, 0, 0, calc(1 - var(--tokens-scroll--bottom-opacity))) 100%\n    );\n  }\n\n  .network-search-input,\n  .select-network-button {\n    height: 40px;\n  }\n\n  .select-network-button {\n    border: none;\n    display: flex;\n    flex-direction: row;\n    align-items: center;\n    justify-content: center;\n    gap: var(--wui-spacing-xs);\n    box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);\n    background-color: transparent;\n    border-radius: var(--wui-border-radius-xxs);\n    padding: var(--wui-spacing-xs);\n    align-items: center;\n    transition: background-color 0.2s linear;\n  }\n\n  .select-network-button:hover {\n    background-color: var(--wui-color-gray-glass-002);\n  }\n\n  .select-network-button > wui-image {\n    width: 26px;\n    height: 26px;\n    border-radius: var(--wui-border-radius-xs);\n    box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n  }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { RouterController, SwapController } from '@reown/appkit-controllers';\nimport { MathUtil, customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-button';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-icon';\nimport '@reown/appkit-ui/wui-input-text';\nimport '@reown/appkit-ui/wui-text';\nimport '@reown/appkit-ui/wui-token-button';\nimport '@reown/appkit-ui/wui-token-list-item';\nimport styles from './styles.js';\nlet W3mSwapSelectTokenView = class W3mSwapSelectTokenView extends LitElement {\n    constructor() {\n        super();\n        this.unsubscribe = [];\n        this.targetToken = RouterController.state.data?.target;\n        this.sourceToken = SwapController.state.sourceToken;\n        this.sourceTokenAmount = SwapController.state.sourceTokenAmount;\n        this.toToken = SwapController.state.toToken;\n        this.myTokensWithBalance = SwapController.state.myTokensWithBalance;\n        this.popularTokens = SwapController.state.popularTokens;\n        this.searchValue = '';\n        this.unsubscribe.push(...[\n            SwapController.subscribe(newState => {\n                this.sourceToken = newState.sourceToken;\n                this.toToken = newState.toToken;\n                this.myTokensWithBalance = newState.myTokensWithBalance;\n            })\n        ]);\n    }\n    updated() {\n        const suggestedTokensContainer = this.renderRoot?.querySelector('.suggested-tokens-container');\n        suggestedTokensContainer?.addEventListener('scroll', this.handleSuggestedTokensScroll.bind(this));\n        const tokensList = this.renderRoot?.querySelector('.tokens');\n        tokensList?.addEventListener('scroll', this.handleTokenListScroll.bind(this));\n    }\n    disconnectedCallback() {\n        super.disconnectedCallback();\n        const suggestedTokensContainer = this.renderRoot?.querySelector('.suggested-tokens-container');\n        const tokensList = this.renderRoot?.querySelector('.tokens');\n        suggestedTokensContainer?.removeEventListener('scroll', this.handleSuggestedTokensScroll.bind(this));\n        tokensList?.removeEventListener('scroll', this.handleTokenListScroll.bind(this));\n        clearInterval(this.interval);\n    }\n    render() {\n        return html `\n      <wui-flex flexDirection=\"column\" gap=\"s\">\n        ${this.templateSearchInput()} ${this.templateSuggestedTokens()} ${this.templateTokens()}\n      </wui-flex>\n    `;\n    }\n    onSelectToken(token) {\n        if (this.targetToken === 'sourceToken') {\n            SwapController.setSourceToken(token);\n        }\n        else {\n            SwapController.setToToken(token);\n            if (this.sourceToken && this.sourceTokenAmount) {\n                SwapController.swapTokens();\n            }\n        }\n        RouterController.goBack();\n    }\n    templateSearchInput() {\n        return html `\n      <wui-flex .padding=${['3xs', 's', '0', 's']} gap=\"xs\">\n        <wui-input-text\n          data-testid=\"swap-select-token-search-input\"\n          class=\"network-search-input\"\n          size=\"sm\"\n          placeholder=\"Search token\"\n          icon=\"search\"\n          .value=${this.searchValue}\n          @inputChange=${this.onSearchInputChange.bind(this)}\n        ></wui-input-text>\n      </wui-flex>\n    `;\n    }\n    templateTokens() {\n        const yourTokens = this.myTokensWithBalance ? Object.values(this.myTokensWithBalance) : [];\n        const tokens = this.popularTokens ? this.popularTokens : [];\n        const filteredYourTokens = this.filterTokensWithText(yourTokens, this.searchValue);\n        const filteredTokens = this.filterTokensWithText(tokens, this.searchValue);\n        return html `\n      <wui-flex class=\"tokens-container\">\n        <wui-flex class=\"tokens\" .padding=${['0', 's', 's', 's']} flexDirection=\"column\">\n          ${filteredYourTokens?.length > 0\n            ? html `\n                <wui-flex justifyContent=\"flex-start\" padding=\"s\">\n                  <wui-text variant=\"paragraph-500\" color=\"fg-200\">Your tokens</wui-text>\n                </wui-flex>\n                ${filteredYourTokens.map(token => {\n                const selected = token.symbol === this.sourceToken?.symbol ||\n                    token.symbol === this.toToken?.symbol;\n                return html `\n                    <wui-token-list-item\n                      data-testid=\"swap-select-token-item-${token.symbol}\"\n                      name=${token.name}\n                      ?disabled=${selected}\n                      symbol=${token.symbol}\n                      price=${token?.price}\n                      amount=${token?.quantity?.numeric}\n                      imageSrc=${token.logoUri}\n                      @click=${() => {\n                    if (!selected) {\n                        this.onSelectToken(token);\n                    }\n                }}\n                    >\n                    </wui-token-list-item>\n                  `;\n            })}\n              `\n            : null}\n\n          <wui-flex justifyContent=\"flex-start\" padding=\"s\">\n            <wui-text variant=\"paragraph-500\" color=\"fg-200\">Tokens</wui-text>\n          </wui-flex>\n          ${filteredTokens?.length > 0\n            ? filteredTokens.map(token => html `\n                  <wui-token-list-item\n                    data-testid=\"swap-select-token-item-${token.symbol}\"\n                    name=${token.name}\n                    symbol=${token.symbol}\n                    imageSrc=${token.logoUri}\n                    @click=${() => this.onSelectToken(token)}\n                  >\n                  </wui-token-list-item>\n                `)\n            : null}\n        </wui-flex>\n      </wui-flex>\n    `;\n    }\n    templateSuggestedTokens() {\n        const tokens = SwapController.state.suggestedTokens\n            ? SwapController.state.suggestedTokens.slice(0, 8)\n            : null;\n        if (!tokens) {\n            return null;\n        }\n        return html `\n      <wui-flex class=\"suggested-tokens-container\" .padding=${['0', 's', '0', 's']} gap=\"xs\">\n        ${tokens.map(token => html `\n            <wui-token-button\n              text=${token.symbol}\n              imageSrc=${token.logoUri}\n              @click=${() => this.onSelectToken(token)}\n            >\n            </wui-token-button>\n          `)}\n      </wui-flex>\n    `;\n    }\n    onSearchInputChange(event) {\n        this.searchValue = event.detail;\n    }\n    handleSuggestedTokensScroll() {\n        const container = this.renderRoot?.querySelector('.suggested-tokens-container');\n        if (!container) {\n            return;\n        }\n        container.style.setProperty('--suggested-tokens-scroll--left-opacity', MathUtil.interpolate([0, 100], [0, 1], container.scrollLeft).toString());\n        container.style.setProperty('--suggested-tokens-scroll--right-opacity', MathUtil.interpolate([0, 100], [0, 1], container.scrollWidth - container.scrollLeft - container.offsetWidth).toString());\n    }\n    handleTokenListScroll() {\n        const container = this.renderRoot?.querySelector('.tokens');\n        if (!container) {\n            return;\n        }\n        container.style.setProperty('--tokens-scroll--top-opacity', MathUtil.interpolate([0, 100], [0, 1], container.scrollTop).toString());\n        container.style.setProperty('--tokens-scroll--bottom-opacity', MathUtil.interpolate([0, 100], [0, 1], container.scrollHeight - container.scrollTop - container.offsetHeight).toString());\n    }\n    filterTokensWithText(tokens, text) {\n        return tokens.filter(token => `${token.symbol} ${token.name} ${token.address}`.toLowerCase().includes(text.toLowerCase()));\n    }\n};\nW3mSwapSelectTokenView.styles = styles;\n__decorate([\n    state()\n], W3mSwapSelectTokenView.prototype, \"interval\", void 0);\n__decorate([\n    state()\n], W3mSwapSelectTokenView.prototype, \"targetToken\", void 0);\n__decorate([\n    state()\n], W3mSwapSelectTokenView.prototype, \"sourceToken\", void 0);\n__decorate([\n    state()\n], W3mSwapSelectTokenView.prototype, \"sourceTokenAmount\", void 0);\n__decorate([\n    state()\n], W3mSwapSelectTokenView.prototype, \"toToken\", void 0);\n__decorate([\n    state()\n], W3mSwapSelectTokenView.prototype, \"myTokensWithBalance\", void 0);\n__decorate([\n    state()\n], W3mSwapSelectTokenView.prototype, \"popularTokens\", void 0);\n__decorate([\n    state()\n], W3mSwapSelectTokenView.prototype, \"searchValue\", void 0);\nW3mSwapSelectTokenView = __decorate([\n    customElement('w3m-swap-select-token-view')\n], W3mSwapSelectTokenView);\nexport { W3mSwapSelectTokenView };\n//# sourceMappingURL=index.js.map"],"names":["InputUtil","event","currentValue","onChange","allowedKeys","controlPressed","eventKey","lowercaseEventKey","selectAll","copyKey","pasteKey","cutKey","isComma","isDot","isNumericKey","css","__decorate","decorators","target","key","desc","c","r","d","i","slippageRate","ConstantsUtil","WuiSwapDetails","LitElement","ChainController","SwapController","newState","minReceivedAmount","NumberUtil","toTokenSwappedAmount","html","UiHelperUtil","styles","state","property","customElement","W3mSwapInputSkeleton","MINIMUM_USD_VALUE_TO_CONVERT","W3mSwapInput","marketValue","isMarketValueGreaterThanZero","value","_a","balanceValueInUSD","haveBalance","EventsController","RouterController","W3mSwapView","AccountController","CoreHelperUtil","newCaipNetwork","newCaipAddress","ModalController","isOpen","newRoute","unsubscribe","token","myToken","ct","amount","price","_b","balance","maxValue","haveNoTokenSelected","haveNoAmount","loading","disabled","activeChainNamespace","W3mFrameRpcConstants","resolve","initialized","fromToken","toToken","tokens","allTokens","t","resetSwapState","initializeSwapState","W3mSwapPreviewView","newBalanceSymbol","sourceTokenText","toTokenText","sourceTokenValue","toTokenValue","sentPrice","receivePrice","_c","_d","WuiTokenListItem","entries","entry","resetStyles","elementStyles","W3mSwapSelectTokenView","suggestedTokensContainer","tokensList","yourTokens","filteredYourTokens","filteredTokens","selected","container","MathUtil","text"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]}