@feedmepos/mf-inventory-portal 1.2.0 → 1.2.2-5.dev-1
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/App-DMkUg806.js +297 -0
- package/dist/{ApprovalView-Dr-qd_Ai.js → ApprovalView-DWJh2K6W.js} +65 -64
- package/dist/{BindingsDialog-Chh00-83.js → BindingsDialog-EmHCvqJI.js} +2 -2
- package/dist/{BindingsPicker-DCTGJ8eM.js → BindingsPicker-h_9jm1s0.js} +3 -3
- package/dist/{BindingsTable-BsDs5d0V.js → BindingsTable-BAVWGUoa.js} +1 -1
- package/dist/ClosingDraftView-Du4kOwIg.js +1899 -0
- package/dist/ClosingHistoryView-DuW2Vtrs.js +355 -0
- package/dist/ClosingTemplateView-CfPY8R5M.js +2001 -0
- package/dist/{DeliveryOrderPrintPreview-CrH9UVdW.js → DeliveryOrderPrintPreview-C6Cj8mOp.js} +9 -9
- package/dist/FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-WWIrybw_.js +230 -0
- package/dist/{FmMultiselectDialog-ypgaHejh.js → FmMultiselectDialog-BzWrQOS4.js} +1 -1
- package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-DJctVhvZ.js → FmUnitInput.vue_vue_type_script_setup_true_lang-DwqVRUFz.js} +36 -36
- package/dist/ImportView-lKlYeLay.js +1291 -0
- package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-D59M4Bl1.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-_2WZMZU2.js} +5 -5
- package/dist/{IngredientGroupView-Cf9ePE7_.js → IngredientGroupView-CrmwR2Xt.js} +34 -35
- package/dist/IngredientsView-1bAsyz-b.js +2254 -0
- package/dist/{IntegrationView-DEDn2mc5.js → IntegrationView-D16qeEc_.js} +1773 -1635
- package/dist/{InventoryBindingForm-AB8rum4-.js → InventoryBindingForm-BRwOXV_P.js} +1 -1
- package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-BgZt_9h1.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-NDbtbtqK.js} +28 -28
- package/dist/{InventoryBindingSummary-CWOG5DIz.js → InventoryBindingSummary-DKM2gX8_.js} +1 -1
- package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-CmN30iEZ.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-CdaiYTdf.js} +4 -4
- package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-C1cUDp0u.js → PremiumBadge.vue_vue_type_script_setup_true_lang-B0OKeK5O.js} +7 -7
- package/dist/{PublishView-FHyjjevA.js → PublishView-D0NnU22l.js} +73 -63
- package/dist/{PurchaseOrderPrintPreview-BPvvkjkR.js → PurchaseOrderPrintPreview-BmuwNbeL.js} +4 -4
- package/dist/{ReceiveRequestView-CoWU2g0R.js → ReceiveRequestView-j79m7TKk.js} +343 -333
- package/dist/RecipeView-D_fNQQ-C.js +636 -0
- package/dist/StockView-DX_xeFBT.js +2385 -0
- package/dist/SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-Bg49isUy.js +172 -0
- package/dist/{SupplierView-CJG2Idbl.js → SupplierView-DuFTqbOg.js} +1193 -1073
- package/dist/TransferDetails.vue_vue_type_script_setup_true_lang-c428GXwc.js +3233 -0
- package/dist/{TransferTemplateView-DZnPt5b5.js → TransferTemplateView-Ccsfcetz.js} +104 -103
- package/dist/UnitView-BklpNsFN.js +674 -0
- package/dist/WarehouseView-BrURbU67.js +1066 -0
- package/dist/api/adjustment-template.d.ts +1 -0
- package/dist/api/bill.d.ts +140 -2
- package/dist/api/closing-template.d.ts +1 -0
- package/dist/api/closing.d.ts +1 -0
- package/dist/api/inventory.d.ts +405 -0
- package/dist/api/netsuite.d.ts +5 -1
- package/dist/api/purchase-order-template.d.ts +1 -0
- package/dist/api/purchase-order.d.ts +3 -0
- package/dist/api/shipment.d.ts +11 -0
- package/dist/api/stock.d.ts +2 -44
- package/dist/api/warehouse.d.ts +3 -1
- package/dist/{app-B6mXF-3v.js → app-a9r50k3U.js} +68557 -67576
- package/dist/app.d.ts +646 -15
- package/dist/app.js +6 -6
- package/dist/components/FmAdminBadge.vue.d.ts +1 -4
- package/dist/components/FmEnhancedSelect.vue.d.ts +30 -0
- package/dist/components/FmInventoryTableToolbar.vue.d.ts +16 -2
- package/dist/components/FmLockableField.vue.d.ts +3 -0
- package/dist/components/netsuite/ItemSubsidiaryTreeDialog.vue.d.ts +16 -0
- package/dist/components/netsuite/SubsidiaryTreeDialog.vue.d.ts +2 -0
- package/dist/composable/defineApi.d.ts +1 -1
- package/dist/composable/useIframe.d.ts +2 -2
- package/dist/{decimal-DErYDfEJ.js → decimal-AusUnA1W.js} +1 -1
- package/dist/{format-unit-display-BtjJtmQp.js → format-unit-display-BqkHL-ph.js} +397 -429
- package/dist/helper/array.d.ts +1 -0
- package/dist/helper/core/country/utils.d.ts +3 -4
- package/dist/helper/country.d.ts +6 -255
- package/dist/helper/number.d.ts +1 -0
- package/dist/import-export.helper-PIyNeHfa.js +238 -0
- package/dist/{index-lj4ClRIU.js → index-CjxirPvn.js} +283 -268
- package/dist/{index-CvfUsVdt.js → index-Dj9-pdT9.js} +1 -1
- package/dist/layout/SingleColumnLayout.vue.d.ts +6 -3
- package/dist/purchase-order-template-CQikvY1p.js +41 -0
- package/dist/router/name.d.ts +2 -0
- package/dist/stock-CDZ2uWSF.js +83 -0
- package/dist/stock-Dw908dIC.js +74 -0
- package/dist/stores/feature.d.ts +12 -0
- package/dist/stores/integration/netsuite.d.ts +42 -0
- package/dist/stores/inventory.d.ts +28 -199
- package/dist/stores/location.d.ts +331 -1
- package/dist/stores/supplier.d.ts +96 -0
- package/dist/stores/warehouse.d.ts +4 -0
- package/dist/style.css +1 -1
- package/dist/{supplier-D_2yzArc.js → supplier-BPPBUudN.js} +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{use-ingredient-select-dialog-C9iEMCVA.js → use-ingredient-select-dialog-C_fSKN3_.js} +5 -5
- package/dist/{use-inventory-binding-dialog-CavX3SFd.js → use-inventory-binding-dialog-ClAkJ864.js} +8 -8
- package/dist/views/adjustment-template/wastage-template/actions.d.ts +60 -0
- package/dist/views/adjustment-template/wastage-template/table.d.ts +60 -0
- package/dist/views/closing-draft/components/closing-draft-dialog/ClosingDraftDialog.vue.d.ts +56 -0
- package/dist/views/closing-draft/composables/use-closing-draft-actions.d.ts +3 -3
- package/dist/views/closing-draft/composables/use-closing-draft-table.d.ts +468 -0
- package/dist/views/closing-draft/helpers/export-draft.helper.d.ts +9 -2
- package/dist/views/closing-history/ClosingHistoryView.vue.d.ts +2 -0
- package/dist/views/closing-template/composables/use-closing-template-actions.d.ts +4 -1
- package/dist/views/closing-template/helpers/import-export.helper.d.ts +5 -0
- package/dist/views/import/ImportView.vue.d.ts +3 -0
- package/dist/views/import/components/ImportDialog.vue.d.ts +2 -0
- package/dist/views/import/helper/import-export.helper.d.ts +4 -0
- package/dist/views/ingredients/components/ingredient-dialog/IngredientDialogProps.d.ts +1 -1
- package/dist/views/ingredients/components/ingredient-form/IngredientForm.vue.d.ts +181 -12
- package/dist/views/ingredients/components/ingredient-form/IngredientFormProps.d.ts +6 -0
- package/dist/views/ingredients/helper/import-export.helper.d.ts +4 -1
- package/dist/views/integration/components/netsuite/business/BusinessNetSuiteSideSheet.vue.d.ts +2 -0
- package/dist/views/receive-request/components/delivery-order-form/CreateForm.vue.d.ts +16 -0
- package/dist/views/receive-request/components/delivery-order-form/CreateFormProps.d.ts +4 -0
- package/dist/views/receive-request/components/delivery-order-form/EditForm.vue.d.ts +16 -0
- package/dist/views/receive-request/components/delivery-order-form/EditFormProps.d.ts +4 -0
- package/dist/views/receive-request/components/delivery-order-form/SystemTrailDialog.vue.d.ts +21 -0
- package/dist/views/receive-request/components/netsuite/NetSuiteTransactionChangeLog.vue.d.ts +15 -0
- package/dist/views/receive-request/components/transfer-details/TransferDetailsProps.d.ts +1 -0
- package/dist/views/receive-request/components/transfer-form/TransferForm.vue.d.ts +420 -2
- package/dist/views/receive-request/composables/use-process-purchase-order.d.ts +99 -0
- package/dist/views/receive-request/composables/use-receive-request-form.d.ts +644 -13
- package/dist/views/receive-request/composables/use-receive-request-table.d.ts +711 -14
- package/dist/views/recipe/RecipeView.vue.d.ts +1 -0
- package/dist/views/recipe/components/import-recipes/ImportRecipeItem.vue.d.ts +16 -0
- package/dist/views/recipe/components/import-recipes/ImportRecipes.vue.d.ts +2 -0
- package/dist/views/recipe/helper/import-recipe.d.ts +48 -0
- package/dist/views/stock/components/StockRecordCard.vue.d.ts +70 -1
- package/dist/views/stock/components/dialog/RecalculationDialog.vue.d.ts +11 -0
- package/dist/views/stock/components/dialog/RecalculationDialogProps.d.ts +3 -0
- package/dist/views/stock/components/dialog/StockAdjustmentSideSheet.vue.d.ts +20 -0
- package/dist/views/supplier/components/SupplierForm.vue.d.ts +8 -0
- package/dist/views/supplier/components/SupplierSupplyItemField.vue.d.ts +3 -0
- package/dist/views/supplier/composables/use-supplier-table.d.ts +4 -0
- package/dist/views/transfer-template/components/transfer-template-dialog/TransferTemplateDialog.vue.d.ts +8 -0
- package/dist/views/transfer-template/components/transfer-template-form/components/NetSuiteCustomCodeSelection.vue.d.ts +2 -0
- package/dist/views/transfer-template/components/transfer-template-form/composables/use-transfer-locations.d.ts +16 -0
- package/dist/views/transfer-template/composables/use-transfer-template-actions.d.ts +48 -0
- package/dist/views/transfer-template/composables/use-transfer-template-table.d.ts +48 -0
- package/dist/views/unit/UnitView.vue.d.ts +1 -0
- package/dist/views/unit/components/import-units/ImportUnitItem.vue.d.ts +12 -0
- package/dist/views/unit/components/import-units/ImportUnitItemProps.d.ts +6 -0
- package/dist/views/unit/components/import-units/ImportUnits.vue.d.ts +9 -0
- package/dist/views/unit/components/import-units/ImportUnitsProps.d.ts +5 -0
- package/dist/views/unit/helper/import-export.helper.d.ts +40 -0
- package/dist/views/warehouse/components/WarehouseForm.vue.d.ts +8 -0
- package/package.json +3 -3
- package/dist/App-Bs0pR0sL.js +0 -276
- package/dist/ClosingDraftView-Dyr4hrHk.js +0 -1687
- package/dist/ClosingTemplateView-Dw0Lld6E.js +0 -1908
- package/dist/FmAdminBadge-BUJh40aj.js +0 -34
- package/dist/FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-B-p9ffPK.js +0 -224
- package/dist/IngredientsView-61WfWyGy.js +0 -1858
- package/dist/RecipeView-CznjQMrS.js +0 -621
- package/dist/StockForecast.vue_vue_type_style_index_0_lang-KLXSWvo5.js +0 -59
- package/dist/StockView-N-84Q5Ih.js +0 -2086
- package/dist/TransferDetails.vue_vue_type_script_setup_true_lang-BmU-VLNN.js +0 -2336
- package/dist/UnitView-BrLjAWNq.js +0 -667
- package/dist/WarehouseView-CI-RuaPq.js +0 -1034
- package/dist/array-Ca8T3f_G.js +0 -44
- package/dist/helper/core/country/codes.d.ts +0 -255
- package/dist/stock-CIpuon0m.js +0 -146
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { defineComponent as I, computed as x, openBlock as l, createElementBlock as d, createElementVNode as e, normalizeClass as b, toDisplayString as u, unref as p, ref as D, resolveComponent as B, Fragment as $, createVNode as k, createCommentVNode as N, withCtx as C, renderList as E } from "vue";
|
|
2
|
+
import { useI18n as F, useCoreStore as A } from "@feedmepos/mf-common";
|
|
3
|
+
import { b as U } from "./app-a9r50k3U.js";
|
|
4
|
+
function ee(o, n = !1) {
|
|
5
|
+
var c;
|
|
6
|
+
return o ? [
|
|
7
|
+
{
|
|
8
|
+
label: n ? o.abbrev : `1 ${o.name} (${o.abbrev})`,
|
|
9
|
+
abbrev: o.abbrev,
|
|
10
|
+
value: null
|
|
11
|
+
},
|
|
12
|
+
...((c = o.measurements) == null ? void 0 : c.map((t) => ({
|
|
13
|
+
label: n ? t.abbrev : `1 ${t.name} (${t.abbrev})`,
|
|
14
|
+
abbrev: t.abbrev,
|
|
15
|
+
value: t.id
|
|
16
|
+
}))) ?? []
|
|
17
|
+
] : [];
|
|
18
|
+
}
|
|
19
|
+
var y = /* @__PURE__ */ ((o) => (o.noInfo = "no-info", o.low = "low", o.mid = "mid", o.high = "high", o))(y || {});
|
|
20
|
+
const H = {
|
|
21
|
+
key: 0,
|
|
22
|
+
class: "flex"
|
|
23
|
+
}, O = {
|
|
24
|
+
key: 1,
|
|
25
|
+
class: "flex"
|
|
26
|
+
}, z = { class: "flex px-8 py-4 bg-fm-color-neutral-gray-100 fm-corner-radius-md gap-8" }, R = { class: "fm-typo-en-body-md-600 text-fm-color-typo-secondary" }, re = /* @__PURE__ */ I({
|
|
27
|
+
__name: "StockForecast",
|
|
28
|
+
props: {
|
|
29
|
+
days: {},
|
|
30
|
+
level: {}
|
|
31
|
+
},
|
|
32
|
+
setup(o) {
|
|
33
|
+
const n = o, { t: m } = F(), c = x(() => n.level ? n.level : typeof n.days != "number" ? y.noInfo : n.days > 14 ? y.high : n.days >= 7 && n.days <= 14 ? y.mid : y.low);
|
|
34
|
+
return (t, g) => typeof n.days == "number" ? (l(), d("div", H, [
|
|
35
|
+
e("div", {
|
|
36
|
+
class: b([
|
|
37
|
+
`fm-forecast-notification-${c.value}`,
|
|
38
|
+
"flex items-center gap-8 p-4 fm-corner-radius-md fm-typo-en-body-md-600"
|
|
39
|
+
])
|
|
40
|
+
}, [
|
|
41
|
+
e("div", {
|
|
42
|
+
class: b([
|
|
43
|
+
"fm-forecast-notification-indicator",
|
|
44
|
+
`fm-forecast-notification-indicator-${c.value}`
|
|
45
|
+
])
|
|
46
|
+
}, null, 2),
|
|
47
|
+
e("div", null, u(p(m)("inventory.stock.prediction.days", [n.days])), 1)
|
|
48
|
+
], 2)
|
|
49
|
+
])) : (l(), d("div", O, [
|
|
50
|
+
e("div", z, [
|
|
51
|
+
e("p", R, u(p(m)("inventory.stock.prediction.noData")), 1)
|
|
52
|
+
])
|
|
53
|
+
]));
|
|
54
|
+
}
|
|
55
|
+
}), Y = {
|
|
56
|
+
key: 0,
|
|
57
|
+
class: "flex items-center gap-8"
|
|
58
|
+
}, j = { class: "flex flex-col" }, q = { class: "fm-typo-en-heading-lg-600" }, G = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, J = {
|
|
59
|
+
key: 0,
|
|
60
|
+
class: "fm-typo-en-body-md-400 text-fm-color-system-warning-300"
|
|
61
|
+
}, K = {
|
|
62
|
+
key: 1,
|
|
63
|
+
class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary"
|
|
64
|
+
}, M = { class: "flex flex-col" }, Q = { class: "flex flex-col bg-fm-color-bg-secondary font-mono p-4 rounded-md" }, W = { class: "text-fm-color-typo-tertiary flex-shrink-0 fm-typo-en-body-md-400 whitespace-pre flex items-center" }, se = /* @__PURE__ */ I({
|
|
65
|
+
__name: "SubsidiaryTreeDialog",
|
|
66
|
+
setup(o) {
|
|
67
|
+
const n = D(!1), { t: m } = F(), c = A(), t = U(), g = x(() => {
|
|
68
|
+
var i;
|
|
69
|
+
return ((i = c.sessionUser.value) == null ? void 0 : i.role.isAdmin) ?? !1;
|
|
70
|
+
});
|
|
71
|
+
function h(i, r = [], a = []) {
|
|
72
|
+
const f = [];
|
|
73
|
+
return i.forEach((s, V) => {
|
|
74
|
+
const S = V === i.length - 1, P = [...r, S];
|
|
75
|
+
let v = "";
|
|
76
|
+
for (let _ = 0; _ < r.length; _++)
|
|
77
|
+
v += r[_] ? " " : "│ ";
|
|
78
|
+
v += S ? "└── " : "├── ", f.push({
|
|
79
|
+
id: s.id,
|
|
80
|
+
name: s.name,
|
|
81
|
+
prefix: r.length === 0 ? "" : v,
|
|
82
|
+
isCurrentBusiness: s.id === t.businessSubsidiaryId,
|
|
83
|
+
isRoot: r.length === 0,
|
|
84
|
+
isInPath: a.includes(s.id)
|
|
85
|
+
}), s.children && s.children.length > 0 && f.push(...h(s.children, P, a));
|
|
86
|
+
}), f;
|
|
87
|
+
}
|
|
88
|
+
function w(i, r) {
|
|
89
|
+
return i.map((a) => r.includes(a.id) ? {
|
|
90
|
+
...a,
|
|
91
|
+
// Recursively filter children
|
|
92
|
+
children: a.children ? w(a.children, r) : []
|
|
93
|
+
} : null).filter(Boolean);
|
|
94
|
+
}
|
|
95
|
+
const T = x(() => {
|
|
96
|
+
if (!t.businessSubsidiaryId)
|
|
97
|
+
return [];
|
|
98
|
+
const i = t.getBusinessSubsidiaryTree(), r = t.getBusinessSubsidiaryPath();
|
|
99
|
+
if (g.value)
|
|
100
|
+
return h(i, [], r);
|
|
101
|
+
const a = w(i, r);
|
|
102
|
+
return h(a, [], r);
|
|
103
|
+
});
|
|
104
|
+
return (i, r) => {
|
|
105
|
+
const a = B("FmButton"), f = B("FmDialog");
|
|
106
|
+
return l(), d($, null, [
|
|
107
|
+
p(t).isEnabled ? (l(), d("div", Y, [
|
|
108
|
+
k(a, {
|
|
109
|
+
"prepend-icon": "info",
|
|
110
|
+
variant: "tertiary",
|
|
111
|
+
onClick: r[0] || (r[0] = (s) => n.value = !0)
|
|
112
|
+
})
|
|
113
|
+
])) : N("", !0),
|
|
114
|
+
k(f, {
|
|
115
|
+
modelValue: n.value,
|
|
116
|
+
"onUpdate:modelValue": r[1] || (r[1] = (s) => n.value = s),
|
|
117
|
+
"close-button": "",
|
|
118
|
+
dismissAway: ""
|
|
119
|
+
}, {
|
|
120
|
+
"dialog-header": C(() => [
|
|
121
|
+
e("div", j, [
|
|
122
|
+
e("div", q, u(p(m)("inventory.integration.netsuite.subsidiaryHierarchy.title")), 1),
|
|
123
|
+
e("p", G, u(p(m)("inventory.integration.netsuite.subsidiaryHierarchy.description")), 1),
|
|
124
|
+
g.value ? (l(), d("p", J, " All subsidiaries are shown since you are an admin. ")) : (l(), d("p", K, " Only showing subsidiaries in your business path. ")),
|
|
125
|
+
r[2] || (r[2] = e("div", { class: "flex flex-wrap gap-2 mt-4" }, [
|
|
126
|
+
e("div", { class: "flex items-center gap-2 px-2 py-1 bg-fm-color-bg-brand-secondary rounded-md" }, [
|
|
127
|
+
e("span", { class: "w-3 h-3 rounded-sm bg-green-400" }),
|
|
128
|
+
e("span", { class: "fm-typo-en-body-sm-400" }, "Your Business")
|
|
129
|
+
]),
|
|
130
|
+
e("div", { class: "flex items-center gap-2 px-2 py-1 bg-fm-color-bg-primary rounded-md border border-fm-color-border-secondary" }, [
|
|
131
|
+
e("span", { class: "w-3 h-3 rounded-sm bg-gray-200 border-2 border-gray-400" }),
|
|
132
|
+
e("span", { class: "fm-typo-en-body-sm-400" }, "Parent Subsidiary")
|
|
133
|
+
])
|
|
134
|
+
], -1))
|
|
135
|
+
])
|
|
136
|
+
]),
|
|
137
|
+
default: C(() => [
|
|
138
|
+
e("div", M, [
|
|
139
|
+
e("div", Q, [
|
|
140
|
+
(l(!0), d($, null, E(T.value, (s) => (l(), d("div", {
|
|
141
|
+
key: s.id,
|
|
142
|
+
class: "flex items-stretch"
|
|
143
|
+
}, [
|
|
144
|
+
e("span", W, u(s.prefix), 1),
|
|
145
|
+
e("div", {
|
|
146
|
+
class: b([
|
|
147
|
+
"px-2 py-1 rounded-md flex-1",
|
|
148
|
+
s.isCurrentBusiness ? "border-2 bg-green-200 border-green-400" : s.isInPath ? "border-2 bg-gray-200 border-gray-400" : "bg-fm-color-bg-primary border border-fm-color-border-secondary"
|
|
149
|
+
])
|
|
150
|
+
}, [
|
|
151
|
+
e("span", {
|
|
152
|
+
class: b([
|
|
153
|
+
s.isCurrentBusiness || s.isInPath ? "fm-typo-en-body-md-600 text-fm-color-typo-primary" : "fm-typo-en-body-md-400 text-fm-color-typo-secondary"
|
|
154
|
+
])
|
|
155
|
+
}, u(s.name), 3)
|
|
156
|
+
], 2)
|
|
157
|
+
]))), 128))
|
|
158
|
+
])
|
|
159
|
+
])
|
|
160
|
+
]),
|
|
161
|
+
_: 1
|
|
162
|
+
}, 8, ["modelValue"])
|
|
163
|
+
], 64);
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
export {
|
|
168
|
+
y as S,
|
|
169
|
+
re as _,
|
|
170
|
+
se as a,
|
|
171
|
+
ee as g
|
|
172
|
+
};
|