@pisell/pisellos 2.3.141 → 2.3.142
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.
- package/dist/modules/Cart/index.js +4 -3
- package/dist/modules/Cart/types.d.ts +2 -0
- package/dist/modules/Cart/utils/cartProduct.d.ts +3 -1
- package/dist/modules/Cart/utils/cartProduct.js +59 -32
- package/dist/modules/Order/index.d.ts +1 -1
- package/dist/modules/Order/types.d.ts +1 -0
- package/dist/modules/Order/utils.js +8 -0
- package/dist/modules/Product/types.d.ts +11 -0
- package/dist/server/index.js +118 -69
- package/dist/server/modules/order/types.d.ts +1 -0
- package/dist/shared/receipt/small-ticket.d.ts +2 -0
- package/dist/shared/receipt/small-ticket.js +188 -73
- package/dist/shared/receipt/templateVisibility.d.ts +23 -0
- package/dist/shared/receipt/templateVisibility.js +64 -0
- package/dist/solution/BookingByStep/index.d.ts +4 -2
- package/dist/solution/BookingByStep/index.js +8 -3
- package/dist/solution/OrderInvoicePreview/index.js +2 -1
- package/lib/model/strategy/adapter/promotion/index.js +46 -1
- package/lib/modules/Cart/index.js +4 -2
- package/lib/modules/Cart/types.d.ts +2 -0
- package/lib/modules/Cart/utils/cartProduct.d.ts +3 -1
- package/lib/modules/Cart/utils/cartProduct.js +39 -20
- package/lib/modules/Order/index.d.ts +1 -1
- package/lib/modules/Order/types.d.ts +1 -0
- package/lib/modules/Order/utils.js +8 -0
- package/lib/modules/Product/types.d.ts +11 -0
- package/lib/server/index.js +68 -28
- package/lib/server/modules/order/types.d.ts +1 -0
- package/lib/shared/receipt/small-ticket.d.ts +2 -0
- package/lib/shared/receipt/small-ticket.js +113 -22
- package/lib/shared/receipt/templateVisibility.d.ts +23 -0
- package/lib/shared/receipt/templateVisibility.js +63 -0
- package/lib/solution/BookingByStep/index.d.ts +4 -2
- package/lib/solution/BookingByStep/index.js +7 -3
- package/lib/solution/OrderInvoicePreview/index.js +2 -1
- package/package.json +1 -1
|
@@ -21,6 +21,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
|
|
|
21
21
|
import dayjs from 'dayjs';
|
|
22
22
|
import Decimal from 'decimal.js';
|
|
23
23
|
import { isFulfillmentTimingBooking } from "../../modules/Order/pickupTiming";
|
|
24
|
+
import { resolveInvoiceDataVisibility } from "./templateVisibility";
|
|
24
25
|
var DEFAULT_LOCALES = ['en', 'zh_CN'];
|
|
25
26
|
|
|
26
27
|
// Attach provenance to a private copy BEFORE any locale-dependent filtering.
|
|
@@ -309,12 +310,14 @@ export function buildSmallTicketData(params) {
|
|
|
309
310
|
var shopInfo = params.shopInfo || {};
|
|
310
311
|
var locales = resolveLocales(shopInfo, params.locales);
|
|
311
312
|
var productMap = params.productMap || {};
|
|
313
|
+
var visibility = resolveInvoiceDataVisibility(params.templateSettings);
|
|
312
314
|
var result = locales.reduce(function (data, locale) {
|
|
313
315
|
data[locale] = buildLocaleData({
|
|
314
316
|
order: order,
|
|
315
317
|
shopInfo: shopInfo,
|
|
316
318
|
locale: locale,
|
|
317
|
-
productMap: productMap
|
|
319
|
+
productMap: productMap,
|
|
320
|
+
visibility: visibility
|
|
318
321
|
});
|
|
319
322
|
return data;
|
|
320
323
|
}, {});
|
|
@@ -328,12 +331,13 @@ function buildLocaleData(params) {
|
|
|
328
331
|
var order = params.order,
|
|
329
332
|
shopInfo = params.shopInfo,
|
|
330
333
|
locale = params.locale,
|
|
331
|
-
productMap = params.productMap
|
|
334
|
+
productMap = params.productMap,
|
|
335
|
+
visibility = params.visibility;
|
|
332
336
|
var products = buildProducts(order, locale, productMap);
|
|
333
337
|
var summary = getSummary(order);
|
|
334
338
|
var currencySymbol = getCurrencySymbol(order, shopInfo);
|
|
335
339
|
var financials = resolveReceiptFinancials(order, summary);
|
|
336
|
-
var delivery = buildDelivery(order, locale);
|
|
340
|
+
var delivery = buildDelivery(order, locale, visibility.handover);
|
|
337
341
|
return _objectSpread(_objectSpread({
|
|
338
342
|
base_data: buildBaseData({
|
|
339
343
|
order: order,
|
|
@@ -352,7 +356,7 @@ function buildLocaleData(params) {
|
|
|
352
356
|
currencySymbol: currencySymbol,
|
|
353
357
|
financials: financials
|
|
354
358
|
}),
|
|
355
|
-
customer: buildCustomer(order, locale),
|
|
359
|
+
customer: buildCustomer(order, locale, visibility.customer),
|
|
356
360
|
appointment: buildAppointment(order, locale)
|
|
357
361
|
}, delivery.length ? {
|
|
358
362
|
delivery: delivery
|
|
@@ -363,12 +367,15 @@ function buildLocaleData(params) {
|
|
|
363
367
|
locale: locale,
|
|
364
368
|
currencySymbol: currencySymbol
|
|
365
369
|
}),
|
|
366
|
-
wallets: buildWallets({
|
|
370
|
+
wallets: visibility.card.show ? buildWallets({
|
|
367
371
|
order: order,
|
|
368
372
|
locale: locale,
|
|
369
|
-
currencySymbol: currencySymbol
|
|
370
|
-
|
|
371
|
-
|
|
373
|
+
currencySymbol: currencySymbol,
|
|
374
|
+
passTypes: visibility.card.passTypes
|
|
375
|
+
}) : [],
|
|
376
|
+
// Native printers fall back to tickets when wallets is empty. Legacy rows
|
|
377
|
+
// have no trustworthy asset tags, so they cannot bypass a card whitelist.
|
|
378
|
+
tickets: visibility.card.show && visibility.card.passTypes === null && Array.isArray(order.tickets) ? order.tickets.map(function (group) {
|
|
372
379
|
return Array.isArray(group) ? group.map(function (row) {
|
|
373
380
|
return row && _typeof(row) === 'object' ? _objectSpread(_objectSpread({}, row), receiptKey(row, 'ticket')) : row;
|
|
374
381
|
}) : group;
|
|
@@ -1299,8 +1306,10 @@ function calculateProductOriginalAmount(order) {
|
|
|
1299
1306
|
return total.plus(new Decimal(toMoneyNumber(originalPrice)).mul(quantity));
|
|
1300
1307
|
}, new Decimal(0));
|
|
1301
1308
|
}
|
|
1302
|
-
function buildCustomer(order, locale) {
|
|
1309
|
+
function buildCustomer(order, locale, visibility) {
|
|
1303
1310
|
var _order$customer, _order$customer2, _order$customer3, _order$customer4;
|
|
1311
|
+
if (!visibility.show) return [];
|
|
1312
|
+
var fields = [visibility.name, visibility.phone, visibility.email];
|
|
1304
1313
|
return [_objectSpread(_objectSpread({}, receiptKey(order, 'customer.contactName')), {}, {
|
|
1305
1314
|
item: label(locale, 'contactName'),
|
|
1306
1315
|
value: normalizeCustomerDisplayValue(order.customer_name || ((_order$customer = order.customer) === null || _order$customer === void 0 ? void 0 : _order$customer.name) || ((_order$customer2 = order.customer) === null || _order$customer2 === void 0 ? void 0 : _order$customer2.display_name))
|
|
@@ -1310,7 +1319,9 @@ function buildCustomer(order, locale) {
|
|
|
1310
1319
|
}), _objectSpread(_objectSpread({}, receiptKey(order, 'customer.email')), {}, {
|
|
1311
1320
|
item: label(locale, 'email'),
|
|
1312
1321
|
value: stringify(order.email || ((_order$customer4 = order.customer) === null || _order$customer4 === void 0 ? void 0 : _order$customer4.email))
|
|
1313
|
-
})]
|
|
1322
|
+
})].filter(function (_row, index) {
|
|
1323
|
+
return fields[index];
|
|
1324
|
+
});
|
|
1314
1325
|
}
|
|
1315
1326
|
function normalizeCustomerDisplayValue(value) {
|
|
1316
1327
|
var text = stringify(value).trim();
|
|
@@ -1318,16 +1329,18 @@ function normalizeCustomerDisplayValue(value) {
|
|
|
1318
1329
|
if (text.toLowerCase() === 'select a customer') return 'Walk-In';
|
|
1319
1330
|
return text;
|
|
1320
1331
|
}
|
|
1321
|
-
function buildDelivery(order, locale) {
|
|
1332
|
+
function buildDelivery(order, locale, visibility) {
|
|
1322
1333
|
var _order$metadata2, _order$metadata3, _order$metadata4, _order$metadata5, _order$metadata6, _order$metadata7, _order$metadata8, _order$metadata9, _order$metadata10, _order$metadata11, _order$metadata12;
|
|
1334
|
+
if (!visibility.show) return [];
|
|
1323
1335
|
var serviceType = stringify((_order$metadata2 = order.metadata) === null || _order$metadata2 === void 0 || (_order$metadata2 = _order$metadata2.shop_service_data) === null || _order$metadata2 === void 0 ? void 0 : _order$metadata2.service_type).trim();
|
|
1324
1336
|
var serviceTypeLabelKey = resolveServiceTypeLabelKey(serviceType);
|
|
1325
1337
|
if (!serviceTypeLabelKey) return [];
|
|
1326
|
-
var items = [_objectSpread(_objectSpread({}, receiptKey(order, 'service-type')), {}, {
|
|
1338
|
+
var items = visibility.method ? [_objectSpread(_objectSpread({}, receiptKey(order, 'service-type')), {}, {
|
|
1327
1339
|
item: label(locale, serviceTypeLabelKey),
|
|
1328
1340
|
value: '',
|
|
1329
1341
|
size: 2
|
|
1330
|
-
})];
|
|
1342
|
+
})] : [];
|
|
1343
|
+
if (!visibility.fulfillmentTime) return items;
|
|
1331
1344
|
if (serviceType === 'pick_up') {
|
|
1332
1345
|
var pickupTime = formatPickupBookingStart(order.bookings, locale);
|
|
1333
1346
|
if (pickupTime) {
|
|
@@ -1657,10 +1670,100 @@ function resolveRefundPayment(refund, payments) {
|
|
|
1657
1670
|
});
|
|
1658
1671
|
return matchedPayment || refund;
|
|
1659
1672
|
}
|
|
1673
|
+
function getPaymentWalletAssetIdentity(payment) {
|
|
1674
|
+
var record = getFundRecord(payment);
|
|
1675
|
+
return {
|
|
1676
|
+
id: firstNormalizedWalletAssetId(record === null || record === void 0 ? void 0 : record.voucher_id, payment.voucher_id),
|
|
1677
|
+
codes: normalizeWalletAssetCodes(record === null || record === void 0 ? void 0 : record.code, record === null || record === void 0 ? void 0 : record.encoded)
|
|
1678
|
+
};
|
|
1679
|
+
}
|
|
1680
|
+
function getProductWalletAssetTag(record) {
|
|
1681
|
+
// Rules normalizes product_discount_card to type=discount_card. That
|
|
1682
|
+
// ambiguous alias cannot establish the original asset tag for a whitelist.
|
|
1683
|
+
for (var _i6 = 0, _arr2 = [record.tag, (_record$discount = record.discount) === null || _record$discount === void 0 ? void 0 : _record$discount.tag]; _i6 < _arr2.length; _i6++) {
|
|
1684
|
+
var _record$discount;
|
|
1685
|
+
var _tag = _arr2[_i6];
|
|
1686
|
+
if (typeof _tag === 'string' && _tag) return _tag;
|
|
1687
|
+
}
|
|
1688
|
+
for (var _i7 = 0, _arr3 = [record.type, (_record$discount2 = record.discount) === null || _record$discount2 === void 0 ? void 0 : _record$discount2.type]; _i7 < _arr3.length; _i7++) {
|
|
1689
|
+
var _record$discount2;
|
|
1690
|
+
var type = _arr3[_i7];
|
|
1691
|
+
if (typeof type === 'string' && type !== 'discount_card' && PRODUCT_WALLET_DISCOUNT_TYPES.has(type)) return type;
|
|
1692
|
+
}
|
|
1693
|
+
return undefined;
|
|
1694
|
+
}
|
|
1695
|
+
function createWalletAssetFilter(order, passTypes) {
|
|
1696
|
+
if (passTypes === null) return function () {
|
|
1697
|
+
return true;
|
|
1698
|
+
};
|
|
1699
|
+
var assets = [];
|
|
1700
|
+
var remember = function remember(identity, tag) {
|
|
1701
|
+
if (typeof tag === 'string' && tag && (identity.id || identity.codes.length)) assets.push({
|
|
1702
|
+
identity: identity,
|
|
1703
|
+
tag: tag
|
|
1704
|
+
});
|
|
1705
|
+
};
|
|
1706
|
+
for (var _i8 = 0, _arr4 = [].concat(_toConsumableArray(normalizeArray(order.vouchers)), _toConsumableArray(normalizeArray((_order$order_meta_lis = order.order_meta_list) === null || _order$order_meta_lis === void 0 ? void 0 : _order$order_meta_lis.point_cards_snapshot)), _toConsumableArray(normalizeArray((_order$order_meta_lis2 = order.order_meta_list) === null || _order$order_meta_lis2 === void 0 ? void 0 : _order$order_meta_lis2.virtual_currency_snapshot))); _i8 < _arr4.length; _i8++) {
|
|
1707
|
+
var _order$order_meta_lis, _order$order_meta_lis2;
|
|
1708
|
+
var asset = _arr4[_i8];
|
|
1709
|
+
if (asset && _typeof(asset) === 'object') remember(getVoucherAssetIdentity(asset), asset.tag);
|
|
1710
|
+
}
|
|
1711
|
+
// Some order snapshots retain the original selected assets at the root.
|
|
1712
|
+
// Only their explicit tag is authoritative; do not infer it from type.
|
|
1713
|
+
for (var _i9 = 0, _normalizeArray3 = normalizeArray(order.discount_list); _i9 < _normalizeArray3.length; _i9++) {
|
|
1714
|
+
var _record$tag, _record$discount3;
|
|
1715
|
+
var record = _normalizeArray3[_i9];
|
|
1716
|
+
if (!record || _typeof(record) !== 'object') continue;
|
|
1717
|
+
remember({
|
|
1718
|
+
id: getProductWalletDiscountAssetId(record),
|
|
1719
|
+
codes: getProductWalletDiscountCodes(record)
|
|
1720
|
+
}, (_record$tag = record.tag) !== null && _record$tag !== void 0 ? _record$tag : (_record$discount3 = record.discount) === null || _record$discount3 === void 0 ? void 0 : _record$discount3.tag);
|
|
1721
|
+
}
|
|
1722
|
+
var visit = function visit(product) {
|
|
1723
|
+
if (!product || _typeof(product) !== 'object') return;
|
|
1724
|
+
for (var _i10 = 0, _normalizeArray4 = normalizeArray(product.discount_list); _i10 < _normalizeArray4.length; _i10++) {
|
|
1725
|
+
var _record = _normalizeArray4[_i10];
|
|
1726
|
+
if (!_record || _typeof(_record) !== 'object') continue;
|
|
1727
|
+
remember({
|
|
1728
|
+
id: getProductWalletDiscountAssetId(_record),
|
|
1729
|
+
codes: getProductWalletDiscountCodes(_record)
|
|
1730
|
+
}, getProductWalletAssetTag(_record));
|
|
1731
|
+
}
|
|
1732
|
+
for (var _i11 = 0, _arr5 = ['combinations', 'product_bundle', 'bundle']; _i11 < _arr5.length; _i11++) {
|
|
1733
|
+
var _key3 = _arr5[_i11];
|
|
1734
|
+
normalizeArray(product[_key3]).forEach(visit);
|
|
1735
|
+
}
|
|
1736
|
+
};
|
|
1737
|
+
normalizeArray(order.products).forEach(function (product) {
|
|
1738
|
+
if (product && _typeof(product) === 'object') visit(restoreReceiptDiscountHierarchy(product));
|
|
1739
|
+
});
|
|
1740
|
+
return function (identity, tag) {
|
|
1741
|
+
var resolvePaymentSource = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
1742
|
+
var directTag = typeof tag === 'string' && tag ? tag : undefined;
|
|
1743
|
+
if (directTag && !resolvePaymentSource) return passTypes.has(directTag);
|
|
1744
|
+
var exactMatches = identity.id ? assets.filter(function (asset) {
|
|
1745
|
+
return asset.identity.id === identity.id;
|
|
1746
|
+
}) : [];
|
|
1747
|
+
// A known asset ID is stronger than an unrelated code-only snapshot.
|
|
1748
|
+
var matches = exactMatches.length ? exactMatches : assets.filter(function (asset) {
|
|
1749
|
+
return isSameWalletAssetIdentity(asset.identity, identity);
|
|
1750
|
+
});
|
|
1751
|
+
var tags = new Set(matches.map(function (asset) {
|
|
1752
|
+
return asset.tag;
|
|
1753
|
+
}));
|
|
1754
|
+
if (!tags.size) return !!directTag && passTypes.has(directTag);
|
|
1755
|
+
// A conflicting fund record is not reliable evidence for a payment's tag.
|
|
1756
|
+
// It must not claim the identity ahead of the original typed asset.
|
|
1757
|
+
if (tags.size !== 1 || directTag && !tags.has(directTag)) return false;
|
|
1758
|
+
return passTypes.has(matches[0].tag);
|
|
1759
|
+
};
|
|
1760
|
+
}
|
|
1660
1761
|
function buildWallets(params) {
|
|
1661
|
-
var
|
|
1762
|
+
var allowAsset = createWalletAssetFilter(params.order, params.passTypes);
|
|
1763
|
+
var virtualCurrencySnapshots = collectVirtualCurrencySnapshots(params.order, allowAsset);
|
|
1662
1764
|
var displayedWalletPayments = normalizeArray(params.order.payments).filter(function (payment) {
|
|
1663
|
-
|
|
1765
|
+
var _getFundRecord;
|
|
1766
|
+
return isPrintablePayment(payment) && !!getFundRecord(payment) && allowAsset(getPaymentWalletAssetIdentity(payment), (_getFundRecord = getFundRecord(payment)) === null || _getFundRecord === void 0 ? void 0 : _getFundRecord.tag, true);
|
|
1664
1767
|
});
|
|
1665
1768
|
var paymentWallets = displayedWalletPayments.map(function (payment) {
|
|
1666
1769
|
var virtualCurrencySnapshot = findVirtualCurrencySnapshotForPayment(payment, virtualCurrencySnapshots.byId);
|
|
@@ -1676,19 +1779,23 @@ function buildWallets(params) {
|
|
|
1676
1779
|
});
|
|
1677
1780
|
var displayedWalletAssetIdentities = collectDisplayedWalletAssetIdentities(displayedWalletPayments);
|
|
1678
1781
|
var voucherWallets = buildVoucherAssets(_objectSpread(_objectSpread({}, params), {}, {
|
|
1782
|
+
allowAsset: allowAsset,
|
|
1679
1783
|
displayedWalletAssetIdentities: displayedWalletAssetIdentities
|
|
1680
1784
|
}));
|
|
1681
1785
|
var productDiscountWallets = buildProductDiscountAssets(_objectSpread(_objectSpread({}, params), {}, {
|
|
1786
|
+
allowAsset: allowAsset,
|
|
1682
1787
|
displayedWalletAssetIdentities: displayedWalletAssetIdentities
|
|
1683
1788
|
}));
|
|
1684
1789
|
return [].concat(_toConsumableArray(paymentWallets), voucherWallets, productDiscountWallets, _toConsumableArray(buildPointCardSnapshotAssets({
|
|
1685
1790
|
order: params.order,
|
|
1686
1791
|
locale: params.locale,
|
|
1792
|
+
allowAsset: allowAsset,
|
|
1687
1793
|
displayedWalletAssetIdentities: displayedWalletAssetIdentities
|
|
1688
1794
|
})), _toConsumableArray(buildVirtualCurrencySnapshotAssets({
|
|
1689
1795
|
snapshots: virtualCurrencySnapshots.items,
|
|
1690
1796
|
order: params.order,
|
|
1691
1797
|
locale: params.locale,
|
|
1798
|
+
allowAsset: allowAsset,
|
|
1692
1799
|
displayedWalletAssetIdentities: displayedWalletAssetIdentities
|
|
1693
1800
|
})));
|
|
1694
1801
|
}
|
|
@@ -1721,7 +1828,7 @@ function collectDisplayedWalletAssetIdentities(payments) {
|
|
|
1721
1828
|
var PRODUCT_WALLET_DISCOUNT_TYPES = new Set(['good_pass', 'discount_card', 'product_discount_card', 'entitlement_pass']);
|
|
1722
1829
|
function buildProductDiscountAssets(params) {
|
|
1723
1830
|
var fallbackAssetTime = firstPresentValue(params.order.updated_at, params.order.created_at);
|
|
1724
|
-
return collectProductWalletDiscountAssets(params.order).flatMap(function (asset) {
|
|
1831
|
+
return collectProductWalletDiscountAssets(params.order, params.allowAsset).flatMap(function (asset) {
|
|
1725
1832
|
var _getProductWalletDisc;
|
|
1726
1833
|
if (!claimWalletAssetIdentity(params.displayedWalletAssetIdentities, {
|
|
1727
1834
|
id: asset.id,
|
|
@@ -1760,16 +1867,16 @@ function buildProductDiscountAssets(params) {
|
|
|
1760
1867
|
})] : []), _toConsumableArray(timeRow ? [timeRow] : []))];
|
|
1761
1868
|
});
|
|
1762
1869
|
}
|
|
1763
|
-
function collectProductWalletDiscountAssets(order) {
|
|
1870
|
+
function collectProductWalletDiscountAssets(order, allowAsset) {
|
|
1764
1871
|
var assets = [];
|
|
1765
1872
|
var assetsById = new Map();
|
|
1766
1873
|
normalizeArray(order.products).forEach(function (rawProduct) {
|
|
1767
1874
|
if (!rawProduct || _typeof(rawProduct) !== 'object') return;
|
|
1768
|
-
visitProductWalletDiscounts(restoreReceiptDiscountHierarchy(rawProduct), assets, assetsById);
|
|
1875
|
+
visitProductWalletDiscounts(restoreReceiptDiscountHierarchy(rawProduct), assets, assetsById, allowAsset);
|
|
1769
1876
|
});
|
|
1770
1877
|
return assets;
|
|
1771
1878
|
}
|
|
1772
|
-
function visitProductWalletDiscounts(product, assets, assetsById) {
|
|
1879
|
+
function visitProductWalletDiscounts(product, assets, assetsById, allowAsset) {
|
|
1773
1880
|
normalizeArray(product.discount_list).forEach(function (record) {
|
|
1774
1881
|
if (!record || _typeof(record) !== 'object' || Array.isArray(record)) return;
|
|
1775
1882
|
var type = getProductWalletDiscountType(record);
|
|
@@ -1777,6 +1884,10 @@ function visitProductWalletDiscounts(product, assets, assetsById) {
|
|
|
1777
1884
|
var id = getProductWalletDiscountAssetId(record);
|
|
1778
1885
|
if (!id) return;
|
|
1779
1886
|
var codes = getProductWalletDiscountCodes(record);
|
|
1887
|
+
if (allowAsset && !allowAsset({
|
|
1888
|
+
id: id,
|
|
1889
|
+
codes: codes
|
|
1890
|
+
}, getProductWalletAssetTag(record))) return;
|
|
1780
1891
|
var existing = assetsById.get(id);
|
|
1781
1892
|
if (existing) {
|
|
1782
1893
|
existing.records.push(record);
|
|
@@ -1792,35 +1903,35 @@ function visitProductWalletDiscounts(product, assets, assetsById) {
|
|
|
1792
1903
|
assetsById.set(id, asset);
|
|
1793
1904
|
assets.push(asset);
|
|
1794
1905
|
});
|
|
1795
|
-
for (var
|
|
1796
|
-
var childKey =
|
|
1906
|
+
for (var _i12 = 0, _arr6 = ['combinations', 'product_bundle', 'bundle']; _i12 < _arr6.length; _i12++) {
|
|
1907
|
+
var childKey = _arr6[_i12];
|
|
1797
1908
|
normalizeArray(product[childKey]).forEach(function (child) {
|
|
1798
1909
|
if (!child || _typeof(child) !== 'object' || Array.isArray(child)) return;
|
|
1799
|
-
visitProductWalletDiscounts(child, assets, assetsById);
|
|
1910
|
+
visitProductWalletDiscounts(child, assets, assetsById, allowAsset);
|
|
1800
1911
|
});
|
|
1801
1912
|
}
|
|
1802
1913
|
}
|
|
1803
1914
|
function getProductWalletDiscountType(record) {
|
|
1804
|
-
for (var
|
|
1805
|
-
var _record$
|
|
1806
|
-
var value =
|
|
1915
|
+
for (var _i13 = 0, _arr7 = [record.tag, record.type, (_record$discount4 = record.discount) === null || _record$discount4 === void 0 ? void 0 : _record$discount4.tag, (_record$discount5 = record.discount) === null || _record$discount5 === void 0 ? void 0 : _record$discount5.type]; _i13 < _arr7.length; _i13++) {
|
|
1916
|
+
var _record$discount4, _record$discount5;
|
|
1917
|
+
var value = _arr7[_i13];
|
|
1807
1918
|
var type = stringify(value).trim().toLowerCase();
|
|
1808
1919
|
if (PRODUCT_WALLET_DISCOUNT_TYPES.has(type)) return type;
|
|
1809
1920
|
}
|
|
1810
1921
|
return null;
|
|
1811
1922
|
}
|
|
1812
1923
|
function getProductWalletDiscountAssetId(record) {
|
|
1813
|
-
for (var
|
|
1814
|
-
var _record$
|
|
1815
|
-
var value =
|
|
1924
|
+
for (var _i14 = 0, _arr8 = [(_record$discount6 = record.discount) === null || _record$discount6 === void 0 ? void 0 : _record$discount6.resource_id, record.resource_id, record.id, record.discount_id]; _i14 < _arr8.length; _i14++) {
|
|
1925
|
+
var _record$discount6;
|
|
1926
|
+
var value = _arr8[_i14];
|
|
1816
1927
|
var id = normalizeWalletPassId(value);
|
|
1817
1928
|
if (id && id !== '0') return id;
|
|
1818
1929
|
}
|
|
1819
1930
|
return null;
|
|
1820
1931
|
}
|
|
1821
1932
|
function getProductWalletDiscountCodes(record) {
|
|
1822
|
-
var _record$
|
|
1823
|
-
return normalizeWalletAssetCodes(record.code, record.encoded, (_record$
|
|
1933
|
+
var _record$discount7, _record$discount8;
|
|
1934
|
+
return normalizeWalletAssetCodes(record.code, record.encoded, (_record$discount7 = record.discount) === null || _record$discount7 === void 0 ? void 0 : _record$discount7.code, (_record$discount8 = record.discount) === null || _record$discount8 === void 0 ? void 0 : _record$discount8.encoded);
|
|
1824
1935
|
}
|
|
1825
1936
|
function getProductWalletDiscountName(asset, locale) {
|
|
1826
1937
|
var _iterator4 = _createForOfIteratorHelper(asset.records),
|
|
@@ -1828,9 +1939,9 @@ function getProductWalletDiscountName(asset, locale) {
|
|
|
1828
1939
|
try {
|
|
1829
1940
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
1830
1941
|
var record = _step4.value;
|
|
1831
|
-
for (var
|
|
1832
|
-
var _record$
|
|
1833
|
-
var value =
|
|
1942
|
+
for (var _i15 = 0, _arr9 = [(_record$discount9 = record.discount) === null || _record$discount9 === void 0 ? void 0 : _record$discount9.title, (_record$discount10 = record.discount) === null || _record$discount10 === void 0 ? void 0 : _record$discount10.name, (_record$discount11 = record.discount) === null || _record$discount11 === void 0 ? void 0 : _record$discount11.message, record.product_name, record.format_title, record.title, record.name, record.message]; _i15 < _arr9.length; _i15++) {
|
|
1943
|
+
var _record$discount9, _record$discount10, _record$discount11;
|
|
1944
|
+
var value = _arr9[_i15];
|
|
1834
1945
|
var name = getLocalizedValue(value, locale).trim();
|
|
1835
1946
|
if (name) return name;
|
|
1836
1947
|
}
|
|
@@ -1843,15 +1954,15 @@ function getProductWalletDiscountName(asset, locale) {
|
|
|
1843
1954
|
return asset.codes[0] || label(locale, 'giftCard');
|
|
1844
1955
|
}
|
|
1845
1956
|
function getProductWalletDiscountTime(asset) {
|
|
1846
|
-
for (var
|
|
1847
|
-
var field =
|
|
1957
|
+
for (var _i16 = 0, _arr10 = ['updated_at', 'created_at', 'collection_time']; _i16 < _arr10.length; _i16++) {
|
|
1958
|
+
var field = _arr10[_i16];
|
|
1848
1959
|
var _iterator5 = _createForOfIteratorHelper(asset.records),
|
|
1849
1960
|
_step5;
|
|
1850
1961
|
try {
|
|
1851
1962
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
1852
|
-
var _record$
|
|
1963
|
+
var _record$discount12;
|
|
1853
1964
|
var record = _step5.value;
|
|
1854
|
-
var value = firstPresentValue(record[field], (_record$
|
|
1965
|
+
var value = firstPresentValue(record[field], (_record$discount12 = record.discount) === null || _record$discount12 === void 0 ? void 0 : _record$discount12[field]);
|
|
1855
1966
|
if (isPresentId(value)) return value;
|
|
1856
1967
|
}
|
|
1857
1968
|
} catch (err) {
|
|
@@ -1879,15 +1990,15 @@ function getProductEntitlementBalance(asset) {
|
|
|
1879
1990
|
return null;
|
|
1880
1991
|
}
|
|
1881
1992
|
function getProductDiscountEntitlementBalance(record) {
|
|
1882
|
-
var _record$metadata, _record$
|
|
1883
|
-
return getEntitlementBalance((_record$metadata = record.metadata) === null || _record$metadata === void 0 ? void 0 : _record$metadata.balance, record.balance, (_record$
|
|
1993
|
+
var _record$metadata, _record$discount13, _record$discount14;
|
|
1994
|
+
return getEntitlementBalance((_record$metadata = record.metadata) === null || _record$metadata === void 0 ? void 0 : _record$metadata.balance, record.balance, (_record$discount13 = record.discount) === null || _record$discount13 === void 0 || (_record$discount13 = _record$discount13.metadata) === null || _record$discount13 === void 0 ? void 0 : _record$discount13.balance, (_record$discount14 = record.discount) === null || _record$discount14 === void 0 ? void 0 : _record$discount14.balance);
|
|
1884
1995
|
}
|
|
1885
1996
|
function getEntitlementBalance() {
|
|
1886
|
-
for (var _len3 = arguments.length, values = new Array(_len3),
|
|
1887
|
-
values[
|
|
1997
|
+
for (var _len3 = arguments.length, values = new Array(_len3), _key4 = 0; _key4 < _len3; _key4++) {
|
|
1998
|
+
values[_key4] = arguments[_key4];
|
|
1888
1999
|
}
|
|
1889
|
-
for (var
|
|
1890
|
-
var value = _values2[
|
|
2000
|
+
for (var _i17 = 0, _values2 = values; _i17 < _values2.length; _i17++) {
|
|
2001
|
+
var value = _values2[_i17];
|
|
1891
2002
|
if (!isNumericAmount(value)) continue;
|
|
1892
2003
|
var balance = new Decimal(value);
|
|
1893
2004
|
if (balance.isFinite() && balance.isInteger() && balance.gte(0)) {
|
|
@@ -1916,17 +2027,17 @@ function getProductWalletDiscountPercent(asset) {
|
|
|
1916
2027
|
_step7;
|
|
1917
2028
|
try {
|
|
1918
2029
|
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
1919
|
-
var _record$metadata2, _record$
|
|
2030
|
+
var _record$metadata2, _record$discount15, _record$discount16, _record$discount17;
|
|
1920
2031
|
var record = _step7.value;
|
|
1921
|
-
var discountType = stringify(firstPresentValue(record.discount_card_type, (_record$metadata2 = record.metadata) === null || _record$metadata2 === void 0 ? void 0 : _record$metadata2.discount_card_type, (_record$
|
|
2032
|
+
var discountType = stringify(firstPresentValue(record.discount_card_type, (_record$metadata2 = record.metadata) === null || _record$metadata2 === void 0 ? void 0 : _record$metadata2.discount_card_type, (_record$discount15 = record.discount) === null || _record$discount15 === void 0 ? void 0 : _record$discount15.discount_card_type, (_record$discount16 = record.discount) === null || _record$discount16 === void 0 || (_record$discount16 = _record$discount16.metadata) === null || _record$discount16 === void 0 ? void 0 : _record$discount16.discount_card_type)).trim().toLowerCase();
|
|
1922
2033
|
if (discountType && discountType !== 'percent' && discountType !== 'percentage') continue;
|
|
1923
|
-
var candidates = [record.percent, (_record$
|
|
2034
|
+
var candidates = [record.percent, (_record$discount17 = record.discount) === null || _record$discount17 === void 0 ? void 0 : _record$discount17.percent];
|
|
1924
2035
|
if (discountType === 'percent' || discountType === 'percentage') {
|
|
1925
|
-
var _record$
|
|
1926
|
-
candidates.push(record.par_value, (_record$
|
|
2036
|
+
var _record$discount18;
|
|
2037
|
+
candidates.push(record.par_value, (_record$discount18 = record.discount) === null || _record$discount18 === void 0 ? void 0 : _record$discount18.par_value);
|
|
1927
2038
|
}
|
|
1928
|
-
for (var
|
|
1929
|
-
var value = _candidates[
|
|
2039
|
+
for (var _i18 = 0, _candidates = candidates; _i18 < _candidates.length; _i18++) {
|
|
2040
|
+
var value = _candidates[_i18];
|
|
1930
2041
|
if (!isNumericAmount(value)) continue;
|
|
1931
2042
|
var percent = new Decimal(value);
|
|
1932
2043
|
if (percent.isFinite() && percent.gt(0) && percent.lte(100)) {
|
|
@@ -1947,9 +2058,9 @@ function getProductWalletMoneyBalance(asset) {
|
|
|
1947
2058
|
try {
|
|
1948
2059
|
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
1949
2060
|
var record = _step8.value;
|
|
1950
|
-
for (var
|
|
1951
|
-
var _record$metadata3, _record$
|
|
1952
|
-
var value =
|
|
2061
|
+
for (var _i19 = 0, _arr11 = [(_record$metadata3 = record.metadata) === null || _record$metadata3 === void 0 ? void 0 : _record$metadata3.balance, record.balance, (_record$discount19 = record.discount) === null || _record$discount19 === void 0 || (_record$discount19 = _record$discount19.metadata) === null || _record$discount19 === void 0 ? void 0 : _record$discount19.balance, (_record$discount20 = record.discount) === null || _record$discount20 === void 0 ? void 0 : _record$discount20.balance]; _i19 < _arr11.length; _i19++) {
|
|
2062
|
+
var _record$metadata3, _record$discount19, _record$discount20;
|
|
2063
|
+
var value = _arr11[_i19];
|
|
1953
2064
|
if (!isNumericAmount(value)) continue;
|
|
1954
2065
|
return Decimal.max(new Decimal(value), 0);
|
|
1955
2066
|
}
|
|
@@ -1963,10 +2074,10 @@ function getProductWalletMoneyBalance(asset) {
|
|
|
1963
2074
|
_step9;
|
|
1964
2075
|
try {
|
|
1965
2076
|
for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
|
|
1966
|
-
var
|
|
1967
|
-
var
|
|
1968
|
-
var parValue = firstPresentValue(
|
|
1969
|
-
var usedParValue = firstPresentValue(
|
|
2077
|
+
var _record2$discount, _record2$discount2;
|
|
2078
|
+
var _record2 = _step9.value;
|
|
2079
|
+
var parValue = firstPresentValue(_record2.par_value, (_record2$discount = _record2.discount) === null || _record2$discount === void 0 ? void 0 : _record2$discount.par_value);
|
|
2080
|
+
var usedParValue = firstPresentValue(_record2.used_par_value, (_record2$discount2 = _record2.discount) === null || _record2$discount2 === void 0 ? void 0 : _record2$discount2.used_par_value);
|
|
1970
2081
|
if (!isNumericAmount(parValue) || !isNumericAmount(usedParValue)) continue;
|
|
1971
2082
|
return Decimal.max(new Decimal(parValue).minus(new Decimal(usedParValue)), 0);
|
|
1972
2083
|
}
|
|
@@ -1987,6 +2098,7 @@ function buildPointCardSnapshotAssets(params) {
|
|
|
1987
2098
|
var pointCard = snapshot;
|
|
1988
2099
|
if (stringify(pointCard.tag).trim().toLowerCase() !== 'point_card') return [];
|
|
1989
2100
|
var assetId = normalizeWalletPassId(pointCard.id);
|
|
2101
|
+
if (!params.allowAsset(getVoucherAssetIdentity(pointCard), pointCard.tag)) return [];
|
|
1990
2102
|
if (!assetId || !claimWalletAssetIdentity(params.displayedWalletAssetIdentities, {
|
|
1991
2103
|
id: assetId,
|
|
1992
2104
|
codes: []
|
|
@@ -2011,11 +2123,11 @@ function buildPointCardSnapshotAssets(params) {
|
|
|
2011
2123
|
return [rows];
|
|
2012
2124
|
});
|
|
2013
2125
|
}
|
|
2014
|
-
function collectVirtualCurrencySnapshots(order) {
|
|
2015
|
-
var _order$
|
|
2126
|
+
function collectVirtualCurrencySnapshots(order, allowAsset) {
|
|
2127
|
+
var _order$order_meta_lis3;
|
|
2016
2128
|
var items = [];
|
|
2017
2129
|
var byId = new Map();
|
|
2018
|
-
var snapshots = (_order$
|
|
2130
|
+
var snapshots = (_order$order_meta_lis3 = order.order_meta_list) === null || _order$order_meta_lis3 === void 0 ? void 0 : _order$order_meta_lis3.virtual_currency_snapshot;
|
|
2019
2131
|
if (!Array.isArray(snapshots)) return {
|
|
2020
2132
|
items: items,
|
|
2021
2133
|
byId: byId
|
|
@@ -2024,6 +2136,7 @@ function collectVirtualCurrencySnapshots(order) {
|
|
|
2024
2136
|
if (!snapshot || _typeof(snapshot) !== 'object' || Array.isArray(snapshot)) return;
|
|
2025
2137
|
var virtualCurrency = snapshot;
|
|
2026
2138
|
if (stringify(virtualCurrency.tag).trim().toLowerCase() !== 'virtual_currency') return;
|
|
2139
|
+
if (!allowAsset(getVoucherAssetIdentity(virtualCurrency), virtualCurrency.tag)) return;
|
|
2027
2140
|
var id = normalizeWalletPassId(virtualCurrency.id);
|
|
2028
2141
|
if (!id || byId.has(id)) return;
|
|
2029
2142
|
byId.set(id, virtualCurrency);
|
|
@@ -2036,8 +2149,8 @@ function collectVirtualCurrencySnapshots(order) {
|
|
|
2036
2149
|
}
|
|
2037
2150
|
function findVirtualCurrencySnapshotForPayment(payment, snapshotsById) {
|
|
2038
2151
|
var fundRecord = getFundRecord(payment);
|
|
2039
|
-
for (var
|
|
2040
|
-
var value =
|
|
2152
|
+
for (var _i20 = 0, _arr12 = [fundRecord === null || fundRecord === void 0 ? void 0 : fundRecord.voucher_id, payment.voucher_id]; _i20 < _arr12.length; _i20++) {
|
|
2153
|
+
var value = _arr12[_i20];
|
|
2041
2154
|
var id = normalizeWalletPassId(value);
|
|
2042
2155
|
if (!id) continue;
|
|
2043
2156
|
var snapshot = snapshotsById.get(id);
|
|
@@ -2049,12 +2162,13 @@ function buildVirtualCurrencySnapshotAssets(params) {
|
|
|
2049
2162
|
var snapshotTime = firstPresentValue(params.order.updated_at, params.order.created_at);
|
|
2050
2163
|
return params.snapshots.flatMap(function (virtualCurrency) {
|
|
2051
2164
|
var assetId = normalizeWalletPassId(virtualCurrency.id);
|
|
2165
|
+
if (!params.allowAsset(getVoucherAssetIdentity(virtualCurrency), virtualCurrency.tag)) return [];
|
|
2052
2166
|
if (!assetId || !claimWalletAssetIdentity(params.displayedWalletAssetIdentities, {
|
|
2053
2167
|
id: assetId,
|
|
2054
2168
|
codes: []
|
|
2055
2169
|
})) return [];
|
|
2056
2170
|
var rows = [_objectSpread(_objectSpread({}, receiptKey(virtualCurrency, 'asset-name')), {}, {
|
|
2057
|
-
item: stringify(virtualCurrency.product_name).trim(),
|
|
2171
|
+
item: appendMaskedCardCode(stringify(virtualCurrency.product_name).trim(), virtualCurrency.code),
|
|
2058
2172
|
value: ''
|
|
2059
2173
|
})];
|
|
2060
2174
|
var balance = getVirtualCurrencySnapshotBalance(virtualCurrency);
|
|
@@ -2087,8 +2201,8 @@ function getNonEmptyLocalizedValue(value, locale) {
|
|
|
2087
2201
|
if (_typeof(value) !== 'object' || Array.isArray(value)) return stringify(value).trim();
|
|
2088
2202
|
var dashedLocale = locale.replace('_', '-');
|
|
2089
2203
|
var underscoredLocale = locale.replace('-', '_');
|
|
2090
|
-
for (var
|
|
2091
|
-
var candidate =
|
|
2204
|
+
for (var _i21 = 0, _arr13 = [value[locale], value[dashedLocale], value[underscoredLocale], value.original, value.auto, value.default, value.en]; _i21 < _arr13.length; _i21++) {
|
|
2205
|
+
var candidate = _arr13[_i21];
|
|
2092
2206
|
var text = stringify(candidate).trim();
|
|
2093
2207
|
if (text) return text;
|
|
2094
2208
|
}
|
|
@@ -2105,19 +2219,19 @@ function normalizeWalletPassId(value) {
|
|
|
2105
2219
|
return value.trim() || null;
|
|
2106
2220
|
}
|
|
2107
2221
|
function firstNormalizedWalletAssetId() {
|
|
2108
|
-
for (var _len4 = arguments.length, values = new Array(_len4),
|
|
2109
|
-
values[
|
|
2222
|
+
for (var _len4 = arguments.length, values = new Array(_len4), _key5 = 0; _key5 < _len4; _key5++) {
|
|
2223
|
+
values[_key5] = arguments[_key5];
|
|
2110
2224
|
}
|
|
2111
|
-
for (var
|
|
2112
|
-
var value = _values3[
|
|
2225
|
+
for (var _i22 = 0, _values3 = values; _i22 < _values3.length; _i22++) {
|
|
2226
|
+
var value = _values3[_i22];
|
|
2113
2227
|
var id = normalizeWalletPassId(value);
|
|
2114
2228
|
if (id) return id;
|
|
2115
2229
|
}
|
|
2116
2230
|
return null;
|
|
2117
2231
|
}
|
|
2118
2232
|
function normalizeWalletAssetCodes() {
|
|
2119
|
-
for (var _len5 = arguments.length, values = new Array(_len5),
|
|
2120
|
-
values[
|
|
2233
|
+
for (var _len5 = arguments.length, values = new Array(_len5), _key6 = 0; _key6 < _len5; _key6++) {
|
|
2234
|
+
values[_key6] = arguments[_key6];
|
|
2121
2235
|
}
|
|
2122
2236
|
return Array.from(new Set(values.map(function (value) {
|
|
2123
2237
|
return normalizeWalletPassId(value);
|
|
@@ -2174,6 +2288,7 @@ function buildVoucherAssets(params) {
|
|
|
2174
2288
|
var fallbackAssetTime = firstPresentValue(params.order.updated_at, params.order.created_at);
|
|
2175
2289
|
return normalizeArray(params.order.vouchers).flatMap(function (voucher) {
|
|
2176
2290
|
if (!voucher || _typeof(voucher) !== 'object' || Array.isArray(voucher)) return [];
|
|
2291
|
+
if (!params.allowAsset(getVoucherAssetIdentity(voucher), voucher.tag)) return [];
|
|
2177
2292
|
if (!claimWalletAssetIdentity(params.displayedWalletAssetIdentities, getVoucherAssetIdentity(voucher))) return [];
|
|
2178
2293
|
var name = getVoucherAssetName(voucher, params.locale);
|
|
2179
2294
|
var assetTime = firstPresentValue(voucher.updated_at, voucher.created_at, voucher.collection_time, fallbackAssetTime);
|
|
@@ -2334,9 +2449,9 @@ function formatVoucherDiscount(percent, locale) {
|
|
|
2334
2449
|
return normalizedLocale === 'en' ? "Discount ".concat(trimDecimal(percent), "% OFF") : "".concat(trimDecimal(percent), "% OFF");
|
|
2335
2450
|
}
|
|
2336
2451
|
function getVoucherBalance(voucher) {
|
|
2337
|
-
for (var
|
|
2452
|
+
for (var _i23 = 0, _arr14 = [(_voucher$metadata15 = voucher.metadata) === null || _voucher$metadata15 === void 0 ? void 0 : _voucher$metadata15.balance, voucher.balance]; _i23 < _arr14.length; _i23++) {
|
|
2338
2453
|
var _voucher$metadata15;
|
|
2339
|
-
var value =
|
|
2454
|
+
var value = _arr14[_i23];
|
|
2340
2455
|
if (!isNumericAmount(value)) continue;
|
|
2341
2456
|
return Decimal.max(new Decimal(value), 0);
|
|
2342
2457
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** Template children are direct module members; legacy missing values stay visible. */
|
|
2
|
+
export interface InvoiceDataVisibility {
|
|
3
|
+
handover: {
|
|
4
|
+
show: boolean;
|
|
5
|
+
method: boolean;
|
|
6
|
+
fulfillmentTime: boolean;
|
|
7
|
+
};
|
|
8
|
+
customer: {
|
|
9
|
+
show: boolean;
|
|
10
|
+
name: boolean;
|
|
11
|
+
email: boolean;
|
|
12
|
+
phone: boolean;
|
|
13
|
+
};
|
|
14
|
+
card: {
|
|
15
|
+
show: boolean;
|
|
16
|
+
passTypes: ReadonlySet<string> | null;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export declare function invoiceSettingIsVisible(value: unknown): boolean;
|
|
20
|
+
export declare function getInvoiceTemplateModules(settings: unknown): Record<string, any>[];
|
|
21
|
+
export declare function resolveInvoiceDataVisibility(settings: unknown): InvoiceDataVisibility;
|
|
22
|
+
/** Whether an old unfiltered snapshot is unsafe for this template. */
|
|
23
|
+
export declare function requiresInvoiceDataFiltering(settings: unknown): boolean;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
/** Template children are direct module members; legacy missing values stay visible. */
|
|
3
|
+
|
|
4
|
+
export function invoiceSettingIsVisible(value) {
|
|
5
|
+
return value !== 0 && value !== false;
|
|
6
|
+
}
|
|
7
|
+
export function getInvoiceTemplateModules(settings) {
|
|
8
|
+
var _settings$modules;
|
|
9
|
+
if (Array.isArray(settings)) return settings.filter(isRecord);
|
|
10
|
+
if (!isRecord(settings)) return [];
|
|
11
|
+
if (isRecord(settings.template_settings)) {
|
|
12
|
+
return getInvoiceTemplateModules(settings.template_settings);
|
|
13
|
+
}
|
|
14
|
+
var modules = (_settings$modules = settings.modules) !== null && _settings$modules !== void 0 ? _settings$modules : settings.module;
|
|
15
|
+
return Array.isArray(modules) ? modules.filter(isRecord) : [];
|
|
16
|
+
}
|
|
17
|
+
function isRecord(value) {
|
|
18
|
+
return !!value && _typeof(value) === 'object' && !Array.isArray(value);
|
|
19
|
+
}
|
|
20
|
+
export function resolveInvoiceDataVisibility(settings) {
|
|
21
|
+
var modules = getInvoiceTemplateModules(settings);
|
|
22
|
+
// Native templates use the first occurrence of each module.
|
|
23
|
+
var module = function module(key) {
|
|
24
|
+
return modules.find(function (item) {
|
|
25
|
+
return item.key === key;
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
var handover = module('handover');
|
|
29
|
+
var customer = module('customer');
|
|
30
|
+
var card = module('card');
|
|
31
|
+
var field = function field(config, key) {
|
|
32
|
+
var _config$key;
|
|
33
|
+
return invoiceSettingIsVisible(config === null || config === void 0 || (_config$key = config[key]) === null || _config$key === void 0 ? void 0 : _config$key.is_show);
|
|
34
|
+
};
|
|
35
|
+
var passTypes = Array.isArray(card === null || card === void 0 ? void 0 : card.pass_type) && card.pass_type.length > 0 ? new Set(card.pass_type.filter(function (tag) {
|
|
36
|
+
return typeof tag === 'string' && tag.length > 0;
|
|
37
|
+
})) : null;
|
|
38
|
+
return {
|
|
39
|
+
handover: {
|
|
40
|
+
show: invoiceSettingIsVisible(handover === null || handover === void 0 ? void 0 : handover.is_show),
|
|
41
|
+
method: field(handover, 'method'),
|
|
42
|
+
fulfillmentTime: field(handover, 'fulfillment_time')
|
|
43
|
+
},
|
|
44
|
+
customer: {
|
|
45
|
+
show: invoiceSettingIsVisible(customer === null || customer === void 0 ? void 0 : customer.is_show),
|
|
46
|
+
name: field(customer, 'name'),
|
|
47
|
+
email: field(customer, 'email'),
|
|
48
|
+
phone: field(customer, 'phone')
|
|
49
|
+
},
|
|
50
|
+
card: {
|
|
51
|
+
show: invoiceSettingIsVisible(card === null || card === void 0 ? void 0 : card.is_show),
|
|
52
|
+
passTypes: passTypes
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** Whether an old unfiltered snapshot is unsafe for this template. */
|
|
58
|
+
export function requiresInvoiceDataFiltering(settings) {
|
|
59
|
+
var _resolveInvoiceDataVi = resolveInvoiceDataVisibility(settings),
|
|
60
|
+
handover = _resolveInvoiceDataVi.handover,
|
|
61
|
+
customer = _resolveInvoiceDataVi.customer,
|
|
62
|
+
card = _resolveInvoiceDataVi.card;
|
|
63
|
+
return !handover.show || !handover.method || !handover.fulfillmentTime || !customer.show || !customer.name || !customer.email || !customer.phone || !card.show || card.passTypes !== null;
|
|
64
|
+
}
|