@ape.swap/bonds-sdk 1.0.314 → 1.0.316
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -48,7 +48,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
48
48
|
import { jsxs as _jsxs, jsx as _jsx } from "theme-ui/jsx-runtime";
|
|
49
49
|
/** @jsxImportSource theme-ui */
|
|
50
50
|
import React, { useEffect, useState } from 'react';
|
|
51
|
-
import { Flex,
|
|
51
|
+
import { Flex, ThemeUIProvider } from 'theme-ui';
|
|
52
52
|
import { useWeb3React } from '@web3-react/core';
|
|
53
53
|
import { defaultTheme } from '../../theme';
|
|
54
54
|
import '../../scss/BondModal.scss';
|
|
@@ -56,14 +56,15 @@ import getTimePeriods from '../../utils/getTimePeriods';
|
|
|
56
56
|
import axios from 'axios';
|
|
57
57
|
import { BigNumber } from 'bignumber.js';
|
|
58
58
|
import { getFirstNonZeroDigits } from '../../utils/roundNumber';
|
|
59
|
-
import { isNumber } from '../../utils/numbers';
|
|
60
59
|
import { TooltipBubble, Button, Svg, ListTag } from '../uikit-sdk';
|
|
61
60
|
import { TooltipText } from '../../enum/tooltips';
|
|
62
|
-
import
|
|
63
|
-
import { ethers } from 'ethers';
|
|
64
|
-
import { adjustDecimals } from "../../utils/convertToTokenValue";
|
|
65
|
-
import { BondAbi } from '../../enum/abis';
|
|
61
|
+
import billAbi from '../../config/abi/bond.json';
|
|
66
62
|
import TokenImage from '../uikit-sdk/TokenImage';
|
|
63
|
+
import { getBalanceNumber } from '../../utils/getBalanceNumber';
|
|
64
|
+
import multicall from '../../utils/multicall';
|
|
65
|
+
import { BillVersion } from '../../enum/apeswaplists';
|
|
66
|
+
import { ACF_TO_ABOND } from '../../config/constants/addresses';
|
|
67
|
+
import { MAINNET_CHAINS } from '../../config/constants/chains';
|
|
67
68
|
var YourBondsModal = function (_a) {
|
|
68
69
|
var isOpen = _a.isOpen, onClose = _a.onClose, bondAddress = _a.bondAddress;
|
|
69
70
|
if (!isOpen)
|
|
@@ -79,141 +80,162 @@ var YourBondsModal = function (_a) {
|
|
|
79
80
|
setBondData(bond);
|
|
80
81
|
});
|
|
81
82
|
}, [bondAddress]);
|
|
82
|
-
var getDiscountColor = function (discount) {
|
|
83
|
-
return discount < 0 ? 'discount-negative' : 'discount-positive';
|
|
84
|
-
};
|
|
85
|
-
var discountEarnTokenPrice = function (bond) {
|
|
86
|
-
var _a, _b;
|
|
87
|
-
var earnTokenPrice = parseFloat((_a = bond === null || bond === void 0 ? void 0 : bond.payoutTokenPrice) !== null && _a !== void 0 ? _a : '0');
|
|
88
|
-
return getFirstNonZeroDigits(earnTokenPrice - earnTokenPrice * (((_b = bond === null || bond === void 0 ? void 0 : bond.discount) !== null && _b !== void 0 ? _b : 0) / 100));
|
|
89
|
-
};
|
|
90
|
-
var earnTokenPrice = function (bond) {
|
|
91
|
-
var _a;
|
|
92
|
-
return getFirstNonZeroDigits(parseFloat((_a = bond === null || bond === void 0 ? void 0 : bond.payoutTokenPrice) !== null && _a !== void 0 ? _a : '0'));
|
|
93
|
-
};
|
|
94
|
-
var maxBuy = function (bond) {
|
|
95
|
-
var _a, _b, _c, _d;
|
|
96
|
-
var available = new BigNumber((_a = bond === null || bond === void 0 ? void 0 : bond.tokensRemaining) !== null && _a !== void 0 ? _a : '0');
|
|
97
|
-
var threshold = 5;
|
|
98
|
-
var thresholdToShow = new BigNumber(threshold).div((_b = bond === null || bond === void 0 ? void 0 : bond.payoutTokenPrice) !== null && _b !== void 0 ? _b : 0);
|
|
99
|
-
var safeAvailable = available.minus(thresholdToShow);
|
|
100
|
-
var singlePurchaseLimit = new BigNumber((_c = bond === null || bond === void 0 ? void 0 : bond.maxPayout) !== null && _c !== void 0 ? _c : 0).div(new BigNumber(10).pow((_d = bond === null || bond === void 0 ? void 0 : bond.payoutTokenDecimals) !== null && _d !== void 0 ? _d : 18));
|
|
101
|
-
return !available ? 0 : (singlePurchaseLimit.lt(safeAvailable) ? singlePurchaseLimit : safeAvailable);
|
|
102
|
-
};
|
|
103
|
-
var _d = useState(''), inputValue = _d[0], setInputValue = _d[1];
|
|
104
|
-
var handleInputChange = function (event) {
|
|
105
|
-
setInputValue(event.target.value);
|
|
106
|
-
};
|
|
107
83
|
// const [selectedBond, setSelectedBond] = useState<BondsDataResponse | null>(null);
|
|
108
84
|
// const navigate = useNavigate();
|
|
109
85
|
// const projectInfo = (bond: BondsDataResponse) => {
|
|
110
86
|
// setSelectedBond(bond);
|
|
111
87
|
// navigate(`/bondsingle/${bond.billAddress}`);
|
|
112
88
|
// };
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
var youSpendUSD = function (bond) {
|
|
142
|
-
return (parseFloat(inputValue) * parseFloat(bond.principalTokenPrice)).toString();
|
|
143
|
-
};
|
|
144
|
-
var youGet = function (bond) {
|
|
145
|
-
var _a;
|
|
146
|
-
var bigValue = new BigNumber(inputValue).times(new BigNumber(10).pow(18));
|
|
147
|
-
var billValue = bigValue.div(new BigNumber((_a = bond.trueBillPrice) !== null && _a !== void 0 ? _a : 0));
|
|
148
|
-
return formatNumber(billValue.toString());
|
|
149
|
-
};
|
|
150
|
-
var youGetUSD = function (bond) {
|
|
151
|
-
var _a;
|
|
152
|
-
var bigValue = new BigNumber(inputValue).times(new BigNumber(10).pow(18));
|
|
153
|
-
var billValue = bigValue.div(new BigNumber((_a = bond.trueBillPrice) !== null && _a !== void 0 ? _a : 0));
|
|
154
|
-
return (billValue.toNumber() * parseFloat(bond.payoutTokenPrice)).toString();
|
|
155
|
-
};
|
|
156
|
-
var premium = function (bond) {
|
|
157
|
-
var premiumUSD = parseFloat(youGetUSD(bond)) - parseFloat(youSpendUSD(bond));
|
|
158
|
-
return formatUSDNumber(premiumUSD.toString());
|
|
159
|
-
};
|
|
160
|
-
var getPremiumColor = function (bond) {
|
|
161
|
-
var getPremium = premium(bond);
|
|
162
|
-
return parseFloat(getPremium) < 0 ? 'premium-negative' : 'premium-positive';
|
|
163
|
-
};
|
|
164
|
-
var handleBuy = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
165
|
-
var provider, signer, bondContract, maxPrice, amount, tx, error_1;
|
|
89
|
+
var _d = useState([]), userOwnedBillsData = _d[0], setUserOwnedBillsData = _d[1];
|
|
90
|
+
useEffect(function () {
|
|
91
|
+
var fetchData = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
92
|
+
var results, error_1;
|
|
93
|
+
return __generator(this, function (_a) {
|
|
94
|
+
switch (_a.label) {
|
|
95
|
+
case 0:
|
|
96
|
+
if (!account) return [3 /*break*/, 4];
|
|
97
|
+
_a.label = 1;
|
|
98
|
+
case 1:
|
|
99
|
+
_a.trys.push([1, 3, , 4]);
|
|
100
|
+
return [4 /*yield*/, Promise.all(MAINNET_CHAINS.map(function (chain) { return fetchUserOwnedBillsDataAsync(chain, account); }))];
|
|
101
|
+
case 2:
|
|
102
|
+
results = _a.sent();
|
|
103
|
+
setUserOwnedBillsData(results);
|
|
104
|
+
return [3 /*break*/, 4];
|
|
105
|
+
case 3:
|
|
106
|
+
error_1 = _a.sent();
|
|
107
|
+
console.error('Error fetching user owned bills data:', error_1);
|
|
108
|
+
return [3 /*break*/, 4];
|
|
109
|
+
case 4: return [2 /*return*/];
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}); };
|
|
113
|
+
fetchData();
|
|
114
|
+
}, [account]);
|
|
115
|
+
var fetchUserOwnedBillsDataAsync = function (chainId, account) { return __awaiter(void 0, void 0, void 0, function () {
|
|
116
|
+
var bonds, userOwnedBills_1, mapUserOwnedBills_1, userOwnedBillsData_1, error_2;
|
|
166
117
|
return __generator(this, function (_a) {
|
|
167
118
|
switch (_a.label) {
|
|
168
119
|
case 0:
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
120
|
+
_a.trys.push([0, 2, , 3]);
|
|
121
|
+
bonds = bondData.filter(function (bond) {
|
|
122
|
+
return bond.billVersion !== BillVersion.FixedPrice &&
|
|
123
|
+
(bond === null || bond === void 0 ? void 0 : bond.chainId) === chainId &&
|
|
124
|
+
bond.type !== 'migration' &&
|
|
125
|
+
bond.billAddress.toLowerCase() !== ACF_TO_ABOND.toLowerCase();
|
|
126
|
+
});
|
|
127
|
+
return [4 /*yield*/, fetchUserOwnedBills(chainId, account, bonds)];
|
|
128
|
+
case 1:
|
|
129
|
+
userOwnedBills_1 = _a.sent();
|
|
130
|
+
mapUserOwnedBills_1 = bonds.map(function (bill) {
|
|
131
|
+
return userOwnedBills_1.filter(function (b) { return b.address.toLowerCase() === bill.billAddress.toLowerCase(); });
|
|
132
|
+
});
|
|
133
|
+
userOwnedBillsData_1 = bonds.map(function (bill, i) { return ({
|
|
134
|
+
index: bill.index,
|
|
135
|
+
userOwnedBills: mapUserOwnedBills_1[i],
|
|
136
|
+
}); });
|
|
137
|
+
return [2 /*return*/, Promise.resolve(userOwnedBillsData_1)];
|
|
138
|
+
case 2:
|
|
139
|
+
error_2 = _a.sent();
|
|
140
|
+
console.error('Error fetching user owned bills data:', error_2);
|
|
141
|
+
return [2 /*return*/, Promise.reject(error_2)];
|
|
142
|
+
case 3: return [2 /*return*/];
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
}); };
|
|
146
|
+
var fetchUserOwnedBills = function (chainId, account, bonds) { return __awaiter(void 0, void 0, void 0, function () {
|
|
147
|
+
var billIdCalls, billIds, billsPendingRewardCall, billDataCalls, billVersions, billData, pendingRewardsCall, result, i, billDataPos, data;
|
|
148
|
+
var _a, _b, _c, _d, _e;
|
|
149
|
+
return __generator(this, function (_f) {
|
|
150
|
+
switch (_f.label) {
|
|
151
|
+
case 0:
|
|
152
|
+
billIdCalls = bonds.map(function (b) { return ({
|
|
153
|
+
address: b.billAddress,
|
|
154
|
+
name: 'getBillIds',
|
|
155
|
+
params: [account],
|
|
156
|
+
}); });
|
|
157
|
+
return [4 /*yield*/, multicall(chainId, billAbi, billIdCalls, true, 15)];
|
|
179
158
|
case 1:
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
159
|
+
billIds = _f.sent();
|
|
160
|
+
billsPendingRewardCall = [];
|
|
161
|
+
billDataCalls = [];
|
|
162
|
+
billVersions = [];
|
|
163
|
+
billIds.forEach(function (idArray, index) {
|
|
164
|
+
return idArray[0].forEach(function (id) {
|
|
165
|
+
return id.gt(0) &&
|
|
166
|
+
(billDataCalls.push({
|
|
167
|
+
address: bonds[index].billAddress,
|
|
168
|
+
name: bonds[index].billVersion !== BillVersion.V1 ? 'getBillInfo' : 'billInfo',
|
|
169
|
+
params: [id],
|
|
170
|
+
bond: bonds[index]
|
|
171
|
+
}),
|
|
172
|
+
billDataCalls.push({ address: bonds[index].billAddress, name: 'billNft' }),
|
|
173
|
+
billsPendingRewardCall.push({
|
|
174
|
+
address: bonds[index].billAddress,
|
|
175
|
+
name: bonds[index].billVersion !== BillVersion.V1 ? 'claimablePayout' : 'pendingPayoutFor',
|
|
176
|
+
params: [id],
|
|
177
|
+
bond: bonds[index]
|
|
178
|
+
}),
|
|
179
|
+
billVersions.push(bonds[index].billVersion));
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
return [4 /*yield*/, multicall(chainId, billAbi, billDataCalls, true, 150)];
|
|
184
183
|
case 2:
|
|
185
|
-
|
|
186
|
-
return [4 /*yield*/,
|
|
184
|
+
billData = _f.sent();
|
|
185
|
+
return [4 /*yield*/, multicall(chainId, billAbi, billsPendingRewardCall)];
|
|
187
186
|
case 3:
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
187
|
+
pendingRewardsCall = _f.sent();
|
|
188
|
+
result = [];
|
|
189
|
+
for (i = 0; i < billsPendingRewardCall.length; i++) {
|
|
190
|
+
billDataPos = i === 0 ? 0 : i * 2;
|
|
191
|
+
data = billVersions[i] !== BillVersion.V1
|
|
192
|
+
? {
|
|
193
|
+
address: billsPendingRewardCall[i].address,
|
|
194
|
+
id: billsPendingRewardCall[i].params[0].toString(),
|
|
195
|
+
payout: new BigNumber((_a = billData[billDataPos][0]) === null || _a === void 0 ? void 0 : _a.payout.toString())
|
|
196
|
+
.minus((_b = billData[billDataPos][0]) === null || _b === void 0 ? void 0 : _b.payoutClaimed.toString())
|
|
197
|
+
.toString(),
|
|
198
|
+
billNftAddress: billData[billDataPos + 1][0].toString(),
|
|
199
|
+
vesting: (_c = billData[billDataPos][0]) === null || _c === void 0 ? void 0 : _c.vesting.toString(),
|
|
200
|
+
lastBlockTimestamp: (_d = billData[billDataPos][0]) === null || _d === void 0 ? void 0 : _d.lastClaimTimestamp.toString(),
|
|
201
|
+
truePricePaid: (_e = billData[billDataPos][0]) === null || _e === void 0 ? void 0 : _e.truePricePaid.toString(),
|
|
202
|
+
pendingRewards: pendingRewardsCall[i][0].toString(),
|
|
203
|
+
bond: billsPendingRewardCall[i].bond
|
|
204
|
+
}
|
|
205
|
+
: {
|
|
206
|
+
address: billsPendingRewardCall[i].address,
|
|
207
|
+
id: billsPendingRewardCall[i].params[0].toString(),
|
|
208
|
+
payout: billData[billDataPos][0].toString(),
|
|
209
|
+
billNftAddress: billData[billDataPos + 1][0].toString(),
|
|
210
|
+
vesting: billData[billDataPos][1].toString(),
|
|
211
|
+
lastBlockTimestamp: billData[billDataPos][2].toString(),
|
|
212
|
+
truePricePaid: billData[billDataPos][3].toString(),
|
|
213
|
+
pendingRewards: pendingRewardsCall[i][0].toString(),
|
|
214
|
+
bond: billsPendingRewardCall[i].bond
|
|
215
|
+
};
|
|
216
|
+
result.push(data);
|
|
217
|
+
}
|
|
218
|
+
return [2 /*return*/, result];
|
|
197
219
|
}
|
|
198
220
|
});
|
|
199
221
|
}); };
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
222
|
+
var chainId = useWeb3React().chainId;
|
|
223
|
+
var totalPending = function (userBill) {
|
|
224
|
+
var _a, _b, _c, _d;
|
|
225
|
+
return getBalanceNumber(new BigNumber((_a = userBill === null || userBill === void 0 ? void 0 : userBill.payout) !== null && _a !== void 0 ? _a : 0), (_d = (_c = (_b = userBill.bond.earnToken) === null || _b === void 0 ? void 0 : _b.decimals) === null || _c === void 0 ? void 0 : _c[chainId]) !== null && _d !== void 0 ? _d : 18);
|
|
226
|
+
};
|
|
227
|
+
var claimable = function (userBill) {
|
|
228
|
+
var _a, _b, _c;
|
|
229
|
+
return getBalanceNumber(new BigNumber(userBill.pendingRewards), (_c = (_b = (_a = userBill.bond.earnToken) === null || _a === void 0 ? void 0 : _a.decimals) === null || _b === void 0 ? void 0 : _b[chainId]) !== null && _c !== void 0 ? _c : 18);
|
|
230
|
+
};
|
|
231
|
+
var earnTokenPrice = function (bond) {
|
|
232
|
+
var _a;
|
|
233
|
+
return getFirstNonZeroDigits(parseFloat((_a = bond === null || bond === void 0 ? void 0 : bond.payoutTokenPrice) !== null && _a !== void 0 ? _a : '0'));
|
|
234
|
+
};
|
|
235
|
+
return (_jsx(ThemeUIProvider, __assign({ theme: defaultTheme }, { children: userOwnedBillsData.flat().map(function (data) {
|
|
236
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
237
|
+
var userBill = data.userOwnedBills.find(function (bill) { return bill.address === bondAddress; });
|
|
238
|
+
return userBill ? (_jsx(React.Fragment, { children: _jsx(Flex, __assign({ className: "modal modal-backdrop" }, { children: _jsxs(Flex, __assign({ className: "modal modal-content" }, { children: [isActive && account && (_jsxs("p", { children: ["Wallet Address: ", account] })), _jsx(Flex, __assign({ className: "modal modal-header" }, { children: _jsx(Flex, __assign({ className: "svg-close", onClick: onClose }, { children: _jsx(Svg, { icon: "close" }) })) })), _jsxs(Flex, __assign({ className: "modal-container table-container" }, { children: [_jsxs(Flex, __assign({ className: "modal-container title-container" }, { children: [_jsx(Flex, __assign({ className: "title-container bondicon" }, { children: _jsx(TokenImage, { symbol: (_a = userBill.bond.showcaseTokenName) !== null && _a !== void 0 ? _a : userBill.bond.payoutTokenName, size: 50 }) })), _jsx(Flex, __assign({ className: "title-container bondname" }, { children: (_b = userBill.bond) === null || _b === void 0 ? void 0 : _b.showcaseTokenName })), _jsxs(Flex, __assign({ className: "title-container price-container" }, { children: [_jsx(Flex, __assign({ className: "price-container price" }, { children: "$" })), _jsx(Flex, __assign({ className: "price-container discounted" }, { children: "$" }))] })), _jsx(Flex, __assign({ className: "title-container tokentags" }, { children: _jsx(ListTag, { text: (_d = (_c = userBill.bond) === null || _c === void 0 ? void 0 : _c.tags) === null || _d === void 0 ? void 0 : _d[0], variant: ((_f = (_e = userBill.bond) === null || _e === void 0 ? void 0 : _e.tags) === null || _f === void 0 ? void 0 : _f[0]) === 'Cex Fund' ? 'cex_fund' : 'liquidity' }) }))] })), _jsx(Flex, { className: "modal-container description-container" }), _jsxs(Flex, __assign({ className: "modal-container blocks-container" }, { children: [_jsx(Flex, __assign({ className: "modal-block column-discount" }, { children: _jsx(Flex, __assign({ className: "block-header header" }, { children: "Discount" })) })), _jsx(Flex, __assign({ className: "modal-block column-arr" }, { children: _jsx(Flex, __assign({ className: "block-header header" }, { children: "ARR" })) })), _jsx(Flex, __assign({ className: "modal-block column-term" }, { children: _jsx(Flex, __assign({ className: "block-header header" }, { children: "Terms" })) })), _jsx(Flex, __assign({ className: "modal-block column-maxbuy" }, { children: _jsx(Flex, __assign({ className: "block-header header" }, { children: "Max Buy" })) }))] })), _jsxs(Flex, __assign({ className: "modal-container text-container" }, { children: [_jsxs(Flex, __assign({ className: "text-container row" }, { children: [_jsx(Flex, __assign({ className: "row-container spend" }, { children: "You spend:" })), _jsx(Flex, { className: "row-container spend-val" })] })), _jsxs(Flex, __assign({ className: "text-container row" }, { children: [_jsxs(Flex, __assign({ className: "row-container premium" }, { children: ["Premium:", _jsx(TooltipBubble, __assign({ body: _jsx(Flex, { children: TooltipText.Premium }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, -5%)" }, { children: _jsx(Flex, __assign({ className: "row-container premium-icon" }, { children: _jsx(Svg, { icon: "questionCircle", width: "12px" }) })) }))] })), _jsx(Flex, __assign({ className: "row-container premium-val" }, { children: "$" }))] })), _jsx(Flex, __assign({ className: "text-container row" }, { children: _jsx(Flex, __assign({ className: "row-container get" }, { children: "You get" })) }))] })), _jsxs(Flex, __assign({ className: "modal-container input-container" }, { children: [_jsx(Flex, { className: "input-container input" }), _jsx(Flex, __assign({ className: "input-container token" }, { children: (_g = userBill.bond) === null || _g === void 0 ? void 0 : _g.principalTokenName }))] })), _jsxs(Flex, __assign({ className: "modal-container button-container" }, { children: [_jsx(Flex, __assign({ className: "button-container get" }, { children: _jsx(Button, { children: "CLAIM" }) })), _jsx(Flex, __assign({ className: "button-container buy" }, { children: _jsx(Button, { children: "TRANSFER" }) }))] }))] }))] })) })) }, userBill.address)) : null;
|
|
217
239
|
}) })));
|
|
218
240
|
};
|
|
219
241
|
export default YourBondsModal;
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
justify-content: center;
|
|
10
10
|
align-items: center;
|
|
11
11
|
z-index: 1000;
|
|
12
|
+
overflow: auto;
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
.modal.modal-content {
|
|
@@ -19,8 +20,9 @@
|
|
|
19
20
|
padding: 10px;
|
|
20
21
|
border-radius: 10px;
|
|
21
22
|
z-index: 1001;
|
|
22
|
-
max-width:
|
|
23
|
+
max-width: 1200px;
|
|
23
24
|
min-width: 700px;
|
|
25
|
+
overflow: auto;
|
|
24
26
|
}
|
|
25
27
|
|
|
26
28
|
.modal.modal-header {
|