{"version":3,"file":"stellar-wallets-modal.cjs","sources":["../../../src/components/modal/stellar-wallets-modal.ts"],"sourcesContent":["import { LitElement, html, css } from 'lit';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ReactiveState } from '../../state/reactive-state';\nimport { allowedWallets$, modalTheme$ } from '../../state/store';\n\nimport { ISupportedWallet, IModalTheme } from '../../types';\nimport {\n  backdropStyles,\n  modalWalletsSection,\n  modalDialogBodyStyles,\n  modalDialogStyles,\n  modalHelpSection,\n  modalAnimations,\n} from './styles';\n\nexport enum ModalThemeType {\n  DARK = 'DARK',\n  LIGHT = 'LIGHT',\n}\n\nexport const ModalThemes: { [key in ModalThemeType]: IModalTheme } = {\n  DARK: {\n    bgColor: '#161616',\n    textColor: '#a0a0a0',\n    solidTextColor: '#ededed',\n    headerButtonColor: '#707070',\n    dividerColor: 'rgba(255, 255, 255, 0.15)',\n    helpBgColor: '#1c1c1c',\n    notAvailableTextColor: '#a0a0a0',\n    notAvailableBgColor: '#232323',\n    notAvailableBorderColor: '#343434',\n  },\n  LIGHT: {\n    bgColor: '#fcfcfc',\n    textColor: '#181818',\n    solidTextColor: '#000000',\n    headerButtonColor: '#8f8f8f',\n    dividerColor: 'rgba(0, 0, 0, 0.15)',\n    helpBgColor: '#f8f8f8',\n    notAvailableTextColor: '#6f6f6f',\n    notAvailableBgColor: '#f3f3f3',\n    notAvailableBorderColor: '#e2e2e2',\n  },\n};\n\n@customElement('stellar-wallets-modal')\nexport class StellarWalletsModal extends LitElement {\n  static override styles = [\n    css`\n      :host * {\n        box-sizing: border-box;\n      }\n\n      .mb-0 {\n        margin-bottom: 0 !important;\n      }\n    `,\n    modalDialogStyles,\n    modalDialogBodyStyles,\n    modalHelpSection,\n    backdropStyles,\n    modalAnimations,\n    modalWalletsSection,\n  ];\n\n  /**\n   * This value is used to tell the modal that it should not update the value\n   * `showModal` at any moment, this comes handy when the state wants to be handled by another source\n   */\n  @property({ type: Boolean, reflect: true })\n  ignoreShowStatus: boolean = false;\n\n  @property({ type: Boolean, reflect: true })\n  showModal: boolean = false;\n\n  @state()\n  closingModal: boolean = false;\n\n  @property({ type: String, reflect: true })\n  modalTitle: string = 'Connect a Wallet';\n\n  @property({ type: String, reflect: true })\n  notAvailableText: string = 'Not available';\n\n  allowedWallets: ReactiveState<ISupportedWallet[]> = new ReactiveState(this, allowedWallets$);\n\n  theme: ReactiveState<IModalTheme | undefined> = new ReactiveState(this, modalTheme$);\n\n  override connectedCallback() {\n    super.connectedCallback();\n  }\n\n  async closeModal(): Promise<void> {\n    this.closingModal = true;\n\n    await new Promise(r => setTimeout(r, 280));\n\n    if (!this.ignoreShowStatus) {\n      this.showModal = false;\n    }\n\n    this.dispatchEvent(\n      new CustomEvent('modal-closed', {\n        detail: new Error('Modal closed'),\n        bubbles: true,\n        composed: true,\n      })\n    );\n\n    this.closingModal = false;\n  }\n\n  async pickWalletOption(option: ISupportedWallet): Promise<void> {\n    if (!option.isAvailable) {\n      window.open(option.url, '_blank');\n      return;\n    }\n\n    this.closingModal = true;\n\n    await new Promise(r => setTimeout(r, 280));\n\n    try {\n      const record: string | null = window.localStorage.getItem('@StellarWalletsKit/usedWalletsIds');\n      let usedWalletsIds: Array<ISupportedWallet['id']> = record ? JSON.parse(record) : [];\n      usedWalletsIds = [option.id, ...usedWalletsIds.filter((id: string): boolean => id !== option.id)];\n      window.localStorage.setItem('@StellarWalletsKit/usedWalletsIds', JSON.stringify(usedWalletsIds));\n    } catch (e) {\n      console.error(e);\n    }\n\n    this.dispatchEvent(\n      new CustomEvent('wallet-selected', {\n        detail: option,\n        bubbles: true,\n        composed: true,\n      })\n    );\n\n    this.closingModal = false;\n  }\n\n  /**\n   * This function gets the list of the wallets following the logic from this task https://github.com/Creit-Tech/Stellar-Wallets-Kit/issues/28\n   * It follows this order:\n   * 1- Wallet last used by wallet selector\n   * 2- If not wallet last use, wallets detected in the browser\n   * 3- Wallet ordering as defined by the developer\n   *\n   */\n  private getSortedList(): ISupportedWallet[] {\n    const sortedWallets: { available: ISupportedWallet[]; unavailable: ISupportedWallet[] } =\n      this.allowedWallets.value!.reduce(\n        (all: { available: ISupportedWallet[]; unavailable: ISupportedWallet[] }, current: ISupportedWallet) => {\n          return {\n            available: current.isAvailable ? [...all.available, current] : all.available,\n            unavailable: !current.isAvailable ? [...all.unavailable, current] : all.unavailable,\n          };\n        },\n        { available: [], unavailable: [] }\n      );\n\n    let usedWalletsIds: Array<ISupportedWallet['id']>;\n    try {\n      const record: string | null = window.localStorage.getItem('@StellarWalletsKit/usedWalletsIds');\n      usedWalletsIds = record ? JSON.parse(record) : [];\n    } catch (e) {\n      console.error(e);\n      usedWalletsIds = [];\n    }\n\n    if (usedWalletsIds.length === 0) {\n      return [...sortedWallets.available, ...sortedWallets.unavailable];\n    }\n\n    const usedWallets: ISupportedWallet[] = [];\n    const nonUsedWallets: ISupportedWallet[] = [];\n    for (const availableWallet of sortedWallets.available) {\n      if (usedWalletsIds.find((id: string): boolean => id === availableWallet.id)) {\n        usedWallets.push(availableWallet);\n      } else {\n        nonUsedWallets.push(availableWallet);\n      }\n    }\n\n    return [\n      ...usedWallets.sort((a: ISupportedWallet, b: ISupportedWallet) => {\n        return usedWalletsIds.indexOf(a.id) - usedWalletsIds.indexOf(b.id);\n      }),\n      ...nonUsedWallets,\n      ...sortedWallets.unavailable,\n    ];\n  }\n\n  private getThemeStyles() {\n    if (!this.theme.value) return {};\n\n    return {\n      '--modal-bg-color': this.theme.value.bgColor,\n      '--modal-text-color': this.theme.value.textColor,\n      '--modal-solid-text-color': this.theme.value.solidTextColor,\n      '--modal-header-button-color': this.theme.value.headerButtonColor,\n      '--modal-divider-color': this.theme.value.dividerColor,\n      '--modal-help-bg-color': this.theme.value.helpBgColor,\n      '--modal-not-available-text-color': this.theme.value.notAvailableTextColor,\n      '--modal-not-available-bg-color': this.theme.value.notAvailableBgColor,\n      '--modal-not-available-border-color': this.theme.value.notAvailableBorderColor,\n    };\n  }\n\n  override render() {\n    const helpSection = html`\n      <section class=\"help-container\">\n        <header class=\"help-header\">\n          <h2 class=\"help-header__modal-title dialog-text-solid\">Learn more</h2>\n        </header>\n\n        <div class=\"help__whats_a_wallet\">\n          <h2 class=\"dialog-text-solid help__title\">What is a wallet?</h2>\n          <p class=\"dialog-text help__text\">\n            Wallets are used to send, receive, and store the keys you use to sign blockchain transactions.\n          </p>\n        </div>\n\n        <div class=\"help__whats_stellar\">\n          <h2 class=\"dialog-text-solid help__title\">What is Stellar?</h2>\n          <p class=\"dialog-text help__text\">\n            Stellar is a decentralized, public blockchain that gives developers the tools to create experiences that are\n            more like cash than crypto\n          </p>\n        </div>\n      </section>\n    `;\n\n    const walletsSection = html`\n      <section class=\"wallets-container\">\n        <header class=\"wallets-header\">\n          <h2 class=\"wallets-header__modal-title dialog-text-solid\">${this.modalTitle}</h2>\n\n          <button @click=${() => this.closeModal()} class=\"wallets-header__button\">\n            <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"#000000\" height=\"20px\" width=\"20px\" viewBox=\"0 0 490 490\">\n              <polygon\n                points=\"456.851,0 245,212.564 33.149,0 0.708,32.337 212.669,245.004 0.708,457.678 33.149,490 245,277.443 456.851,490   489.292,457.678 277.331,245.004 489.292,32.337 \" />\n            </svg>\n          </button>\n        </header>\n\n        <ul class=\"wallets-body\">\n          ${this.getSortedList().map(\n            (item: ISupportedWallet, i: number) =>\n              html`\n                <li\n                  @click=${() => this.pickWalletOption(item)}\n                  class=\" wallets-body__item ${!item.isAvailable ? 'not-available' : ''} ${i ===\n                  this.allowedWallets.value!.length - 1\n                    ? 'mb-0'\n                    : ''}\">\n                  <img src=${item.icon} alt=${item.name} />\n                  <span class=\"dialog-text-solid\">${item.name}</span>\n                  ${!item.isAvailable ? html`<small class=\"not-available\">${this.notAvailableText}</small>` : ''}\n                </li>\n              `\n          )}\n        </ul>\n      </section>\n    `;\n\n    return html`\n      <dialog\n        style=${styleMap(this.getThemeStyles())}\n        class=\"dialog-modal ${this.closingModal ? 'closing' : ''}\"\n        .open=${this.showModal}>\n        <section class=\"dialog-modal-body\">\n          <div class=\"dialog-modal-body__help\">${helpSection}</div>\n          <div class=\"dialog-modal-body__wallets\">${walletsSection}</div>\n        </section>\n      </dialog>\n\n      <div\n        style=\"position: fixed; z-index: 950\"\n        class=\"backdrop ${this.closingModal ? 'closing' : ''}\"\n        @click=${() => this.closeModal()}></div>\n    `;\n  }\n}\n"],"names":["ModalThemeType","StellarWalletsModal","LitElement","ReactiveState","allowedWallets$","modalTheme$","css","modalDialogStyles","modalDialogBodyStyles","modalHelpSection","backdropStyles","modalAnimations","modalWalletsSection","html","styleMap","__decorate","property","state","customElement"],"mappings":"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"}