| | |
| | | VITE_APP__TITLE = "Orion X" |
| | | VITE_APP__TITLE = "Bitx" |
| | | VUE_APP_THEME = "dark" |
| | |
| | | <meta name="theme-color" content="#131a2e"> |
| | | <meta name="apple-mobile-web-app-status-bar-style" content="#131a2e" /> |
| | | <link rel="apple-touch-icon" href="./public/img/App.png"> |
| | | <title>Orion X</title> |
| | | <title>Bitx</title> |
| | | </head> |
| | | |
| | | <body> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="text-grey font-26 flex flex-col justify-between"> |
| | | {{ entrust.create_time_ts ? dayjs(entrust.create_time_ts * 1000).format('YYYY-MM-DD HH:mm:ss') : '--' }} |
| | | {{ entrust.create_time ? entrust.create_time : '--' }} |
| | | </div> |
| | | </div> |
| | | <div class="flex justify-between pb-34"> |
| | |
| | | <div class="btn-wrap mt-64"> |
| | | <button class="detailBtn order-btn text-blue h-54 lh-54 " @click.stop="goDetail(entrust.order_no)"> |
| | | {{ $t('详情') }}</button> |
| | | <button v-if="state == 'submitted'" class="ml-19 order-btn border-none h-54 lh-54 cancel-btn yellow-bg textColor" |
| | | <button v-if="state == 'submitted'" |
| | | class="ml-19 order-btn border-none h-54 lh-54 cancel-btn yellow-bg textColor" |
| | | @click.stop="cancelSingle(entrust.order_no)"> |
| | | {{ $t('撤单') }}</button> |
| | | <button v-if="state == 'created'" class="ml-19 order-btn border-none h-54 lh-54 cancel-btn textColor yellow-bg">{{ |
| | | $t('已完成') }}</button> |
| | | <button v-if="state == 'canceled'" class="ml-19 order-btn border-none h-54 lh-54 cancel-btn yellow-bg textColor">{{ |
| | | $t('canceled') }}</button> |
| | | <button v-if="state == 'created'" |
| | | class="ml-19 order-btn border-none h-54 lh-54 cancel-btn textColor yellow-bg">{{ |
| | | $t('已完成') }}</button> |
| | | <button v-if="state == 'canceled'" |
| | | class="ml-19 order-btn border-none h-54 lh-54 cancel-btn yellow-bg textColor">{{ |
| | | $t('canceled') }}</button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | <style lang="scss" scoped> |
| | | @import "@/assets/init.scss"; |
| | | |
| | | #cryptos { |
| | |
| | | <div class="lever-popup-seg-item lever-popup-seg-right" :class="{ 'lever-popup-seg-active': leverPopupMargin === 0 }" |
| | | @click="leverPopupMargin = 0">Part</div> |
| | | </div> |
| | | <div class="lever-popup-row"> |
| | | <div class="lever-popup-btn lever-popup-btn-minus" @click="leverPopupValue = Math.max(1, (leverPopupValue || 1) - 1)">−</div> |
| | | <input v-model.number="leverPopupValue" type="number" class="lever-popup-input" min="1" :max="maxLever" |
| | | @input="onLeverInput" /> |
| | | <div class="lever-popup-btn lever-popup-btn-plus" @click="leverPopupValue = Math.min(maxLever, (leverPopupValue || 1) + 1)">+</div> |
| | | </div> |
| | | <div class="lever-popup-slider-wrap"> |
| | | <span class="lever-popup-slider-label">1X</span> |
| | | <div class="lever-popup-slider-inner"> |
| | | <van-slider v-model="leverPopupValue" :min="1" :max="maxLever" :step="1" class="lever-popup-slider" |
| | | bar-height="6px" active-color="#7c3aed" /> |
| | | </div> |
| | | <span class="lever-popup-slider-label">{{ maxLever }}X</span> |
| | | <div class="lever-popup-presets"> |
| | | <div v-for="lv in leverPresetList" :key="lv" class="lever-popup-preset-item" |
| | | :class="{ 'lever-popup-preset-active': leverPopupValue === lv }" @click="leverPopupValue = lv">{{ lv }}X</div> |
| | | </div> |
| | | <div class="lever-popup-confirm" @click="confirmLeverPopup">Confirm</div> |
| | | </div> |
| | |
| | | return max |
| | | }, |
| | | maxLever() { |
| | | return 100 // 杠杆倍率固定 1~100,不从接口获取 |
| | | return Math.max(...this.leverPresetList) |
| | | }, |
| | | leverDisplayMode() { |
| | | return this.locationVal === 1 ? 'Cross' : 'Part' |
| | |
| | | locationTitle: this.$t('全仓'), |
| | | locationVal: 1, |
| | | showLeverPopup: false, |
| | | leverPresetList: [30, 50, 100, 200, 300], |
| | | leverPopupValue: 100, |
| | | leverPopupMargin: 1, // 1=全仓 Cross, 0=逐仓 Part |
| | | } |
| | |
| | | }, |
| | | handleChoose(item) { |
| | | this.showOptions = !this.showOptions |
| | | this.form.lever_rate = item.lever_rate |
| | | this.form.lever_rate = this.snapLeverToPreset(item.lever_rate) |
| | | console.log('handleChoose') |
| | | this.handleInitSliderOption() |
| | | }, |
| | |
| | | this.locationShow = false; |
| | | }, |
| | | openLeverPopup() { |
| | | this.leverPopupValue = this.form.lever_rate || 1; |
| | | this.leverPopupValue = this.snapLeverToPreset(this.form.lever_rate); |
| | | this.leverPopupMargin = this.locationVal !== undefined ? this.locationVal : 1; |
| | | this.showLeverPopup = true; |
| | | }, |
| | | onLeverInput() { |
| | | let v = parseInt(this.leverPopupValue, 10); |
| | | if (isNaN(v) || v < 1) this.leverPopupValue = 1; |
| | | else if (v > this.maxLever) this.leverPopupValue = this.maxLever; |
| | | else this.leverPopupValue = v; |
| | | snapLeverToPreset(v) { |
| | | const list = this.leverPresetList; |
| | | const n = parseInt(v, 10); |
| | | if (isNaN(n) || n <= 0) return 100; |
| | | if (list.includes(n)) return n; |
| | | let best = list[0]; |
| | | let bestD = Infinity; |
| | | for (const x of list) { |
| | | const d = Math.abs(x - n); |
| | | if (d < bestD || (d === bestD && x < best)) { |
| | | bestD = d; |
| | | best = x; |
| | | } |
| | | } |
| | | return best; |
| | | }, |
| | | onLeverPopupClosed() { |
| | | this.leverPopupValue = this.form.lever_rate || 1; |
| | | this.leverPopupValue = this.snapLeverToPreset(this.form.lever_rate); |
| | | this.leverPopupMargin = this.locationVal !== undefined ? this.locationVal : 1; |
| | | }, |
| | | confirmLeverPopup() { |
| | | let val = parseInt(this.leverPopupValue, 10); |
| | | if (isNaN(val) || val < 1) val = 1; |
| | | if (val > this.maxLever) val = this.maxLever; |
| | | const val = this.snapLeverToPreset(this.leverPopupValue); |
| | | this.form.lever_rate = val; |
| | | this.locationVal = this.leverPopupMargin; |
| | | this.locationTitle = this.leverPopupMargin === 1 ? this.$t('全仓') : this.$t('逐仓'); |
| | |
| | | font-weight: 600; |
| | | box-shadow: 0 1px 6px rgba(0,0,0,0.06); |
| | | } |
| | | .lever-popup-row { |
| | | display: flex; |
| | | align-items: stretch; |
| | | .lever-popup-presets { |
| | | margin-top: 30px; |
| | | border-radius: 15px; |
| | | overflow: hidden; |
| | | border: 1px solid #eee; |
| | | } |
| | | .lever-popup-btn { |
| | | width: 78px; |
| | | min-width: 78px; |
| | | background: #f7f7f7; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 43px; |
| | | color: #333; |
| | | cursor: pointer; |
| | | font-weight: 400; |
| | | flex-wrap: wrap; |
| | | gap: 18px; |
| | | justify-content: flex-start; |
| | | } |
| | | .lever-popup-btn-minus { border-radius: 15px 0 0 15px; } |
| | | .lever-popup-btn-plus { border-radius: 0 15px 15px 0; } |
| | | .lever-popup-input { |
| | | flex: 1; |
| | | min-width: 0; |
| | | .lever-popup-preset-item { |
| | | flex: 1 1 calc(33.33% - 12px); |
| | | min-width: calc(33.33% - 12px); |
| | | box-sizing: border-box; |
| | | padding: 21px 12px; |
| | | text-align: center; |
| | | border: none; |
| | | font-size: 35px; |
| | | font-size: 30px; |
| | | font-weight: 600; |
| | | color: #868e9a; |
| | | background: #f7f7f7; |
| | | border-radius: 15px; |
| | | border: 2px solid transparent; |
| | | cursor: pointer; |
| | | transition: background 0.2s, color 0.2s, border-color 0.2s; |
| | | } |
| | | .lever-popup-preset-item.lever-popup-preset-active { |
| | | color: #1e1e1e; |
| | | background: #fff; |
| | | padding: 21px 12px; |
| | | } |
| | | .lever-popup-input:focus { outline: none; } |
| | | .lever-popup-slider-wrap { |
| | | margin-top: 36px; |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 18px; |
| | | } |
| | | .lever-popup-slider-label { |
| | | font-size: 23px; |
| | | color: #868e9a; |
| | | flex-shrink: 0; |
| | | } |
| | | .lever-popup-slider-inner { |
| | | flex: 1; |
| | | min-width: 0; |
| | | } |
| | | .lever-popup-slider :deep(.van-slider__bar) { |
| | | height: 6px; |
| | | background: linear-gradient(90deg, #7c3aed 0%, #5b21b6 100%) !important; |
| | | border-radius: 3px; |
| | | } |
| | | .lever-popup-slider :deep(.van-slider__button) { |
| | | width: 30px; |
| | | height: 30px; |
| | | background: #666; |
| | | border: none; |
| | | box-shadow: 0 1px 4px rgba(0,0,0,0.2); |
| | | border-color: #7c3aed; |
| | | box-shadow: 0 1px 8px rgba(124, 58, 237, 0.15); |
| | | } |
| | | .lever-popup-confirm { |
| | | margin-top: 42px; |
| | |
| | | </div> |
| | | <div class="flex-1 text-right"> |
| | | <div class="text-grey">{{ $t('Margin Ratio') || 'Margin Ratio' }}</div> |
| | | <div class="mt-12 textColor">{{ item.margin_ratio != null ? item.margin_ratio + '%' : '-' }}</div> |
| | | <div class="mt-12 textColor">{{ item.change_ratio != null ? item.change_ratio + '%' : '-' }}</div> |
| | | </div> |
| | | </div> |
| | | <!-- Entry Price / Mark Price / Liq. Price --> |
| | |
| | | |
| | | // const ENV_DEV = 'zhapi.coinbtcs.com' // dev |
| | | // const ENV_DEV = 'openapi.yanshiz.com' // dev |
| | | const ENV_DEV = 'api.orionx.cyou' // dev |
| | | const ENV_DEV = 'api.bitxworld.com' // dev |
| | | // const ENV_DEV = '192.168.10.6:8086' // dev |
| | | |
| | | // const ENV_PRO = 'qheufhj.site' // app域名 |
| | | // const ENV_PRO = window.location.hostname // 接口域名跟随 H5zhapi.coinbtcs.com |
| | | const ENV_PRO = 'api.orionx.cyou' // 接口域名跟随 H5zhapi.coinbtcs.com |
| | | const ENV_PRO = 'api.bitxworld.com' // 接口域名跟随 H5zhapi.coinbtcs.com |
| | | // const ENV_PRO = '192.168.10.6:8086' // 接口域名跟随 H5zhapi.coinbtcs.com |
| | | |
| | | let base_url = '' |
| | |
| | | ws_url = 'wss://' + ENV_PRO + '/api/websocket' |
| | | } |
| | | |
| | | let imgUrl = 'https://img.orionx.cyou' // 暂时的 单独的图片地址 |
| | | let imgUrl = 'https://img.bitxworld.com' // 暂时的 单独的图片地址 |
| | | |
| | | export const BASE_URL = base_url |
| | | export const WS_URL = ws_url |
| | |
| | | setLanguage: "Set Language", |
| | | quotes: "Quote", |
| | | chart: "Chart", |
| | | trade: "Trade", |
| | | trade: "Contract", |
| | | history: "History", |
| | | my: "My", |
| | | my: "Assets", |
| | | welcome: "Welcome", |
| | | notCertified: "Not Certified", |
| | | verified: "Verified", |
| | |
| | | "质押挖矿、DeFi等": "Staking Mining、Defi etc", |
| | | "24H量": "24h vol", |
| | | "推广总人数:": "Total referral", |
| | | "永续": "Perpetual", |
| | | "永续": "Contract", |
| | | "全仓": "Cross", |
| | | "开仓": "Open", |
| | | "平仓": "Close", |
| | |
| | | "账变记录": "Record", |
| | | "选择账户类型": "Select account type", |
| | | "查询": "Search", |
| | | "永续合约": "Perpetual", |
| | | "永续合约": "Contract", |
| | | "交割合约": "Delivery", |
| | | "最新价格": "Last price", |
| | | "24h最高价": "24h High", |
| | |
| | | "订金": "Deposit", |
| | | "提取": "Withdraw", |
| | | "人工智能交易": "AI Trading", |
| | | "Privacy Of BitX": "Privacy Of BitX", |
| | | "About BitX": "About BitX", |
| | | "贸易竞争": "Trade Competition", |
| | | "空投": "Airdrop", |
| | | "加密货币交易": "Crypto Trading", |
| | | "申请成为交易员": "Apply as Trader", |
| | | "不适用": "N/A", |
| | | "期货订单": "Futures Orders", |
| | | "期货订单": "Contract Orders", |
| | | "现货订单": "Spot Orders", |
| | | "当日成交": "Daily Deal", |
| | | "当日成交汇总": "Daily Deal Summary", |
| | |
| | | "订金": "订金", |
| | | "提取": "提取", |
| | | "人工智能交易": "人工智能交易", |
| | | "Privacy Of BitX": "BitX 隐私政策", |
| | | "About BitX": "关于 BitX", |
| | | "贸易竞争": "贸易竞争", |
| | | "空投": "空投", |
| | | "加密货币交易": "加密货币交易", |
| | |
| | | showToast(t('pleaseSelectBirth')); |
| | | return; |
| | | } |
| | | // 证件照非必填,不校验 frontFile/reverseFile |
| | | if (!frontFile.value.length || !frontFile.value[0]?.resURL) { |
| | | showToast(frontFile.value[0]?.status === 'uploading' ? t('uploading') : t('uploadComplete')); |
| | | return; |
| | | } |
| | | if (!reverseFile.value.length || !reverseFile.value[0]?.resURL) { |
| | | showToast(reverseFile.value[0]?.status === 'uploading' ? t('uploading') : t('uploadComplete')); |
| | | return; |
| | | } |
| | | |
| | | _applyIdentify({ |
| | | countryName: countryCode.value, |
| | |
| | | <div class="font-32 textColor">{{ orderTypes[item.content_type] }}</div> |
| | | <div class="text-grey font-26 mt-6"> |
| | | {{ item.createTime }} |
| | | (UTC+8) |
| | | <!-- (UTC+8) --> |
| | | </div> |
| | | <!-- <div class="text-grey font-26 mt-6">{{ orderTypes[item.content_type] }}</div> --> |
| | | </div> |
| | |
| | | <div class="text-grey">{{ $t('开仓时间') }}</div> |
| | | <div class="textColor"> |
| | | {{ detail.create_time }} |
| | | (UTC+8) |
| | | <!-- (UTC+8) --> |
| | | </div> |
| | | </div> |
| | | <div class="flex justify-between cell-item "> |
| | | <div class="text-grey">{{ $t('平仓时间') }}</div> |
| | | <div class="textColor">{{ detail.close_time ? dayjs(detail.close_time * 1000).format('YYYY-MM-DD HH:mm:ss') |
| | | + '(UTC+8)' |
| | | : '--' }}</div> |
| | | <div class="textColor">{{ detail.close_time ? formatUsTime(detail.close_time * 1000) : '--' }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | import assetsHead from "@/components/Transform/assets-head/index.vue"; |
| | | import { Popup } from "vant"; |
| | | import dayjs from 'dayjs' |
| | | |
| | | const US_TIMEZONE = 'America/New_York' |
| | | export default { |
| | | name: "orderDetail", |
| | | data() { |
| | |
| | | |
| | | methods: { |
| | | dayjs, |
| | | formatUsTime(timestampMs) { |
| | | if (!timestampMs) return '--' |
| | | try { |
| | | const dtf = new Intl.DateTimeFormat('en', { |
| | | hour12: false, |
| | | timeZone: US_TIMEZONE, |
| | | year: 'numeric', |
| | | month: '2-digit', |
| | | day: '2-digit', |
| | | hour: '2-digit', |
| | | minute: '2-digit', |
| | | second: '2-digit', |
| | | }) |
| | | const parts = dtf.formatToParts(new Date(timestampMs)) |
| | | const map = parts.reduce((acc, p) => { |
| | | acc[p.type] = p.value |
| | | return acc |
| | | }, {}) |
| | | return `${map.year}-${map.month}-${map.day} ${map.hour}:${map.minute}:${map.second}` |
| | | } catch (e) { |
| | | return dayjs(timestampMs).format('YYYY-MM-DD HH:mm:ss') |
| | | } |
| | | }, |
| | | handleText(state) { |
| | | let str = ''; |
| | | if (state == 'created') { |
| | |
| | | <div class="text-grey">{{ $t('日期') }}</div> |
| | | <div class="textColor"> |
| | | {{ info.create_time }} |
| | | (UTC+8) |
| | | <!-- (UTC+8) --> |
| | | </div> |
| | | </div> |
| | | <div class="flex justify-between mb74"> |
| | |
| | | |
| | | .right-chatBg { |
| | | position: relative; |
| | | background: $color_main; |
| | | background: #e3e3e3; |
| | | color: $text_color; |
| | | |
| | | &::after { |
| | |
| | | height: 0; |
| | | border-top: 5px solid transparent; |
| | | border-bottom: 5px solid transparent; |
| | | border-left: 10px solid $color_main; |
| | | border-left: 10px solid #e3e3e3; |
| | | position: absolute; |
| | | right: -8px; |
| | | top: 14px; |
| | |
| | | |
| | | /* Logo:紫色渐变圆角方框 */ |
| | | .login-logo-wrap { |
| | | width: 72px; |
| | | height: 72px; |
| | | border-radius: 18px; |
| | | background: linear-gradient(135deg, #2c1a5c 0%, #5a37a5 100%); |
| | | width: 100px; |
| | | height: 100%; |
| | | border-radius: 6px; |
| | | // background: linear-gradient(135deg, #2c1a5c 0%, #5a37a5 100%); |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | margin-bottom: 24px; |
| | | } |
| | | .login-logo { |
| | | width: 44px; |
| | | height: 44px; |
| | | width: 100%; |
| | | height: 100%; |
| | | border-radius: 6px; |
| | | object-fit: contain; |
| | | } |
| | | |
| | |
| | | |
| | | </div> |
| | | |
| | | <!-- 列表块1:人工智能交易、资金明细、空投 --> |
| | | <!-- 列表块1:资金明细 --> |
| | | <div class="my-list-card"> |
| | | <div class="my-list-item" @click="onRoute('/my/aiDetail')"> |
| | | <!-- <div class="my-list-item" @click="onRoute('/my/aiDetail')"> |
| | | <van-icon name="cluster-o" size="20" class="my-list-icon" /> |
| | | <span class="my-list-title">{{ $t('人工智能交易') }}</span> |
| | | <van-icon name="arrow" size="16" class="my-list-arrow" /> |
| | | </div> |
| | | </div> --> |
| | | <div class="my-list-item" @click="onRoute('/cryptos/accountChange')"> |
| | | <van-icon name="chart-trending-o" size="20" class="my-list-icon" /> |
| | | <span class="my-list-title">{{ $t('资金明细') }}</span> |
| | | <van-icon name="arrow" size="16" class="my-list-arrow" /> |
| | | </div> |
| | | <div class="my-list-item" @click="onRoute('/my/airdrop')"> |
| | | <!-- <div class="my-list-item" @click="onRoute('/my/airdrop')"> |
| | | <van-icon name="gift-o" size="20" class="my-list-icon" /> |
| | | <span class="my-list-title">{{ $t('空投') }}</span> |
| | | <van-icon name="arrow" size="16" class="my-list-arrow" /> |
| | | </div> |
| | | </div> --> |
| | | </div> |
| | | |
| | | <!-- 列表块2:加密货币交易、申请成为交易员、期货订单、现货订单 --> |
| | |
| | | <van-icon name="arrow" size="16" class="my-list-arrow" /> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 列表块4:Privacy Of BitX、About BitX --> |
| | | <div class="my-list-card"> |
| | | <div class="my-list-item" @click="onRoute('/aboutUs?serviceTerm=24')"> |
| | | <van-icon name="shield-o" size="20" class="my-list-icon" /> |
| | | <span class="my-list-title">{{ $t('Privacy Of BitX') }}</span> |
| | | <van-icon name="arrow" size="16" class="my-list-arrow" /> |
| | | </div> |
| | | <div class="my-list-item" @click="onRoute('/aboutUs?serviceTerm=20')"> |
| | | <van-icon name="info-o" size="20" class="my-list-icon" /> |
| | | <span class="my-list-title">{{ $t('About BitX') }}</span> |
| | | <van-icon name="arrow" size="16" class="my-list-arrow" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </section> |
| | | </template> |
| | |
| | | <van-icon :name="repwdVisible ? 'eye-o' : 'closed-eye'" size="20" /> |
| | | </span> |
| | | </div> |
| | | <!-- Referral Code (optional) --> |
| | | <!-- Referral Code --> |
| | | <div class="reg-field"> |
| | | <input |
| | | v-model="invitCode" |
| | | type="text" |
| | | class="reg-input" |
| | | :placeholder="`${$t('entryInvitCode')} (optional)`" |
| | | :placeholder="$t('entryInvitCode')" |
| | | /> |
| | | </div> |
| | | |
| | |
| | | showToast(t('entryPassword')); |
| | | return; |
| | | } |
| | | if (!validatePassword(password.value)) { |
| | | if (!password.value || password.value.length < 6 || password.value.length > 16) { |
| | | showToast(t('passwordTips')); |
| | | return; |
| | | } |
| | | if (repassword.value !== password.value) { |
| | | showToast(t('noSamePassword')); |
| | | return; |
| | | } |
| | | if (!invitCode.value.trim()) { |
| | | showToast(t('请输入邀请码')); |
| | | return; |
| | | } |
| | | if (!agree.value) { |
| | | showToast(t('agreeServiceCond')); |
| | | return; |
| | | } |
| | | return; |
| | | } |
| | | // 推荐码可选,无则传空 |
| | | registerApi(); |
| | | }; |
| | | |
| | |
| | | password: password.value, |
| | | type: '2', |
| | | verifcode: verifyCode.value, |
| | | usercode: invitCode.value.trim() || '', |
| | | usercode: invitCode.value.trim(), |
| | | safeword: password.value |
| | | }).then((res) => { |
| | | userStore[GET_USERINFO](res); |
| | | store.state.user.userInfo = res; |
| | | router.push('/login'); |
| | | }).catch((err) => { |
| | | showToast(err?.msg || t('register')); |
| | | showToast(err); |
| | | }); |
| | | }; |
| | | |
| | |
| | | } |
| | | |
| | | .reg-logo-wrap { |
| | | width: 72px; |
| | | height: 72px; |
| | | border-radius: 18px; |
| | | background: linear-gradient(135deg, #2c1a5c 0%, #5a37a5 100%); |
| | | width: 100px; |
| | | height: 100%; |
| | | border-radius: 6px; |
| | | // background: linear-gradient(135deg, #2c1a5c 0%, #5a37a5 100%); |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | margin-bottom: 24px; |
| | | } |
| | | .reg-logo { |
| | | width: 44px; |
| | | height: 44px; |
| | | width: 100%; |
| | | height: 100%; |
| | | border-radius: 6px; |
| | | object-fit: contain; |
| | | } |
| | | |
| | |
| | | dependencies: |
| | | "is-arrayish" "^0.2.1" |
| | | |
| | | "esbuild-darwin-64@0.15.18": |
| | | "integrity" "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==" |
| | | "resolved" "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz" |
| | | "esbuild-windows-64@0.15.18": |
| | | "integrity" "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==" |
| | | "resolved" "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz" |
| | | "version" "0.15.18" |
| | | |
| | | "esbuild@^0.15.9": |
| | |
| | | "integrity" "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" |
| | | "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" |
| | | "version" "1.0.0" |
| | | |
| | | "fsevents@~2.3.2": |
| | | "integrity" "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==" |
| | | "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" |
| | | "version" "2.3.2" |
| | | |
| | | "function-bind@^1.1.1": |
| | | "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" |