UNPKG

@creit.tech/stellar-wallets-kit

Version:
1 lines 9.39 kB
{"version":3,"file":"stellar-selector-modal.cjs","sources":["../../../src/components/selector-modal/stellar-selector-modal.ts"],"sourcesContent":["import { css, html, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { IModalTheme } from '../../types';\nimport {\n backdropStyles,\n modalAnimations,\n modalDialogBodyStyles,\n modalHelpSection,\n modalWalletsSection,\n modalDialogStyles,\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-accounts-selector')\nexport class StellarSelectorModal 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 @property({ type: Boolean, reflect: true })\n showModal: boolean = false;\n\n @property({ type: Boolean, reflect: true })\n loadingAccounts: boolean = false;\n\n @state()\n closingModal: boolean = false;\n\n @property({ type: String, reflect: true })\n modalTitle: string = 'Pick your account';\n\n @property({ type: String, reflect: true, converter: value => (value ? JSON.parse(value) : []) })\n accounts: { index: number; publicKey: string }[] = [];\n\n override connectedCallback() {\n super.connectedCallback();\n }\n\n async pickAccount(option: { publicKey: string; index: number }): Promise<void> {\n this.closingModal = true;\n\n await new Promise(r => setTimeout(r, 280));\n\n this.dispatchEvent(\n new CustomEvent('account-selected', {\n detail: option,\n bubbles: true,\n composed: true,\n })\n );\n\n this.closingModal = false;\n }\n\n async closeModal(): Promise<void> {\n this.closingModal = true;\n\n await new Promise(r => setTimeout(r, 280));\n\n this.showModal = false;\n\n this.dispatchEvent(\n new CustomEvent('account-selector-closed', {\n detail: new Error('Account selector closed'),\n bubbles: true,\n composed: true,\n })\n );\n\n this.closingModal = false;\n }\n\n override render() {\n const loadingIcon = html`\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <style>\n .spinner_qM83 {\n animation: spinner_8HQG 1.05s infinite;\n fill: white;\n }\n .spinner_oXPr {\n animation-delay: 0.1s;\n }\n .spinner_ZTLf {\n animation-delay: 0.2s;\n }\n @keyframes spinner_8HQG {\n 0%,\n 57.14% {\n animation-timing-function: cubic-bezier(0.33, 0.66, 0.66, 1);\n transform: translate(0);\n }\n 28.57% {\n animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0.33);\n transform: translateY(-6px);\n }\n 100% {\n transform: translate(0);\n }\n }\n </style>\n <circle class=\"spinner_qM83\" cx=\"4\" cy=\"12\" r=\"3\" />\n <circle class=\"spinner_qM83 spinner_oXPr\" cx=\"12\" cy=\"12\" r=\"3\" />\n <circle class=\"spinner_qM83 spinner_ZTLf\" cx=\"20\" cy=\"12\" r=\"3\" />\n </svg>\n `;\n\n const accountsList = html`\n <ul class=\"wallets-body\">\n ${this.accounts.map(\n ({ publicKey, index }) => html`\n <li @click=\"${() => this.pickAccount({ publicKey, index })}\" class=\"wallets-body__item\">\n <span style=\"margin-right: 1rem;\" class=\"dialog-text-solid\">\n ${publicKey.slice(0, 4)}....${publicKey.slice(-6)}\n </span>\n <span class=\"dialog-text\">(44'/148'/${index}')</span>\n </li>\n `\n )}\n </ul>\n `;\n\n return html`\n <dialog style=\"\" class=\"dialog-modal ${this.closingModal ? 'closing' : ''}\" .open=${this.showModal}>\n <section class=\"dialog-modal-body\">\n <div class=\"dialog-modal-body__wallets\">\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\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"#000000\"\n height=\"20px\"\n width=\"20px\"\n 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 ${this.loadingAccounts ? loadingIcon : accountsList}\n </section>\n </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","StellarSelectorModal","LitElement","css","modalDialogStyles","modalDialogBodyStyles","modalHelpSection","backdropStyles","modalAnimations","modalWalletsSection","html","__decorate","property","state","customElement"],"mappings":"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"}