@feedmepos/mf-inventory-portal 1.8.2 → 1.9.0-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.
Files changed (119) hide show
  1. package/dist/{App-inZSGILI.js → App-OAKZ4Qdf.js} +9 -9
  2. package/dist/{ApprovalView-STzBhbF7.js → ApprovalView-DN0rWMUh.js} +9 -9
  3. package/dist/{BindingsDialog-DNGhoaax.js → BindingsDialog-BWpIeq6j.js} +2 -2
  4. package/dist/{BindingsPicker-B2JyJsYZ.js → BindingsPicker-DRROpR8i.js} +3 -3
  5. package/dist/{BindingsTable-DC5b1Psj.js → BindingsTable-BFEoUCIT.js} +10 -10
  6. package/dist/{BulkReceiveRequestPage-DOCAhkVS.js → BulkReceiveRequestPage-wnXszulg.js} +217 -217
  7. package/dist/{ChangeLocationComponent.vue_vue_type_script_setup_true_lang-BdtFSZnX.js → ChangeLocationComponent.vue_vue_type_script_setup_true_lang-BtEblqcM.js} +1 -1
  8. package/dist/{ClosingDraftView-Cm_slHt4.js → ClosingDraftView-BRNRWXnj.js} +19 -19
  9. package/dist/{ClosingHistoryView-1EWta4_9.js → ClosingHistoryView-DWPINMVP.js} +7 -7
  10. package/dist/{ClosingTemplateView-B0ccD7-j.js → ClosingTemplateView-gqjNm3Wi.js} +18 -18
  11. package/dist/{CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-CNVhKNUd.js → CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-cxhbnvht.js} +1 -1
  12. package/dist/{DefaultView-DWeyIHi_.js → DefaultView-CTQ0-HzQ.js} +2 -2
  13. package/dist/{DeliveryOrderPrintPreview-DNIvtuZt.js → DeliveryOrderPrintPreview-gReWM4vq.js} +9 -9
  14. package/dist/{EmailDialog.vue_vue_type_script_setup_true_lang-CAEf3irc.js → EmailDialog.vue_vue_type_script_setup_true_lang-IYcE8OSG.js} +11723 -11601
  15. package/dist/{FeatureCapabilityBadge.vue_vue_type_script_setup_true_lang-C-hjrYMV.js → FeatureCapabilityBadge.vue_vue_type_script_setup_true_lang-CGkF-JhJ.js} +1 -1
  16. package/dist/{FeatureCapabilityGate-ByVkWoR_.js → FeatureCapabilityGate-Ce4_ozRL.js} +2 -2
  17. package/dist/{FeaturePageGate.vue_vue_type_script_setup_true_lang-B1_zFifk.js → FeaturePageGate.vue_vue_type_script_setup_true_lang-DViz4hgB.js} +1 -1
  18. package/dist/{FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-BgWSlJwh.js → FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-B6f-p8K7.js} +1 -1
  19. package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-y_iF_8AX.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-C-6cGWEV.js} +2 -2
  20. package/dist/{FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-D53aH0aj.js → FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-BALpSufj.js} +2 -2
  21. package/dist/{FmMultiselectDialog-CHS9T1rW.js → FmMultiselectDialog-B4Diosc4.js} +2 -2
  22. package/dist/{FmMultiselectDialog-C4Gj_aUx.js → FmMultiselectDialog-CJLfLql2.js} +2 -2
  23. package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-CD-IC4OA.js → FmUnitInput.vue_vue_type_script_setup_true_lang-DuNzft4K.js} +5 -5
  24. package/dist/{ImportView-79uwjQ_T.js → ImportView-DnYVbQ6I.js} +7 -7
  25. package/dist/{IngredientsView-BEJii1uc.js → IngredientsView-COUJUWAb.js} +68 -68
  26. package/dist/{IntegrationExplorerView-D36uuSha.js → IntegrationExplorerView-CgE2WN-x.js} +6 -6
  27. package/dist/{IntegrationPlatformView-Cjy6bRju.js → IntegrationPlatformView-BtTv4P3n.js} +2 -2
  28. package/dist/{IntegrationView-CxxkO5kF.js → IntegrationView-D_YkXYOW.js} +15 -15
  29. package/dist/{InventoryBindingForm-BUOyy4PC.js → InventoryBindingForm-B4HvjUs9.js} +1 -1
  30. package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-D54A7vK_.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-CjVc2mCE.js} +4 -4
  31. package/dist/{InventoryBindingSummary-B60fYDV4.js → InventoryBindingSummary-CCFW8rw_.js} +1 -1
  32. package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-DFCPnsum.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-PJMjcN03.js} +2 -2
  33. package/dist/{ProductionRunDetailPage-DoJlY1Ea.js → ProductionRunDetailPage-ChNKrpyj.js} +4 -4
  34. package/dist/{ProductionRunLifecycleDialogs.vue_vue_type_script_setup_true_lang-Cb7_AAJt.js → ProductionRunLifecycleDialogs.vue_vue_type_script_setup_true_lang-536rtKru.js} +8 -8
  35. package/dist/{ProductionRunPage-D3imvpXH.js → ProductionRunPage-FIUKUyDB.js} +4 -4
  36. package/dist/{PublishView-D5K3D8An.js → PublishView-JDX28AHk.js} +3 -3
  37. package/dist/{PurchaseOrderPrintPreview-C2iDY7vR.js → PurchaseOrderPrintPreview-C8-zlH52.js} +13 -13
  38. package/dist/ReceiveRequestView-DIuftfMU.js +729 -0
  39. package/dist/{RecipeView-tmBGDvX5.js → RecipeView-BKYAdx6j.js} +16 -16
  40. package/dist/{SettingsView-BxHLMLKl.js → SettingsView-CZR-ELPO.js} +7 -7
  41. package/dist/{StockView-CArMPI1D.js → StockView-C-9o5zUV.js} +21 -21
  42. package/dist/{SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-B9sfEoNM.js → SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-Db4DrwQJ.js} +1 -1
  43. package/dist/{SupplierView-Blr_X4i4.js → SupplierView-CHX-eb1W.js} +13 -13
  44. package/dist/{SurchargeView-q1yhY1oY.js → SurchargeView-D1y5BUvB.js} +7 -7
  45. package/dist/{SystemTrailDialog.vue_vue_type_script_setup_true_lang-BTo5_xn3.js → SystemTrailDialog.vue_vue_type_script_setup_true_lang-DU2wYI2T.js} +2 -2
  46. package/dist/{TemplatePublishDialog.vue_vue_type_script_setup_true_lang-CRlUiePl.js → TemplatePublishDialog.vue_vue_type_script_setup_true_lang-DKTWIz-E.js} +1 -1
  47. package/dist/TransferDetails.vue_vue_type_script_setup_true_lang-eSgt3P6r.js +4961 -0
  48. package/dist/{TransferTemplateView-mYeXG-bN.js → TransferTemplateView-Bq7Euggq.js} +19 -19
  49. package/dist/{UnitCostHistoryView-BdokT9j3.js → UnitCostHistoryView-CLpnjeEP.js} +4 -4
  50. package/dist/{UnitDisplayControl.vue_vue_type_script_setup_true_lang-Dk_V6cfz.js → UnitDisplayControl.vue_vue_type_script_setup_true_lang-CiWUAHMw.js} +4 -4
  51. package/dist/{UnitView-Dn7y7c8y.js → UnitView-RxPdbO_C.js} +7 -7
  52. package/dist/{WarehouseView-DkD0AMFa.js → WarehouseView-Ba_77-lL.js} +8 -8
  53. package/dist/{WastageTemplateView-CgLTuqSn.js → WastageTemplateView-DRB3J1CD.js} +15 -15
  54. package/dist/{app-DEDl7U52.js → app-B2FciWDu.js} +1191 -1208
  55. package/dist/app.js +1 -1
  56. package/dist/{bulk-edit-simulation.helper-4SDsJjn-.js → bulk-edit-simulation.helper-gZPNWgS7.js} +2 -2
  57. package/dist/{closing-template-Bjup5FCS.js → closing-template-L7d2nmhr.js} +1 -1
  58. package/dist/{date2-Dk20uwtf.js → date2--N7dpGRR.js} +1 -1
  59. package/dist/{dayjs.min-oX50J0DH.js → dayjs.min-CFhuhXoi.js} +1 -1
  60. package/dist/{decimal-v-odzABK.js → decimal-gywux_Ld.js} +2 -2
  61. package/dist/defineDeepModel-B2EkoePs.js +19 -0
  62. package/dist/{duplicate-template-BM_cVVXW.js → duplicate-template-t-iu60N3.js} +1 -1
  63. package/dist/{feature-CueVnu9M.js → feature-CvQ6eKvB.js} +51 -46
  64. package/dist/{format-time-from-id-CqV2fWas.js → format-time-from-id-BVk3iOfV.js} +1 -1
  65. package/dist/{format-unit-display-BRjd-dPg.js → format-unit-display-CLmFpKSI.js} +13 -12
  66. package/dist/{id-to-date-BhL3iWOY.js → id-to-date-DKmIZp6I.js} +1 -1
  67. package/dist/{import-export.helper-B45dByWv.js → import-export.helper-qShUWqck.js} +5 -5
  68. package/dist/{index-BeRwX80L.js → index-CJ1pZPwZ.js} +3 -3
  69. package/dist/{index-BMrFNZzX.js → index-CoGFfqOs.js} +1 -1
  70. package/dist/{index-DU7zB5F4.js → index-CrUvC9l4.js} +1 -1
  71. package/dist/{lz-string-8ndgpMge.js → lz-string-mHxrGSbY.js} +1 -1
  72. package/dist/{netsuite-C9IQHbuv.js → netsuite-BDcapEOO.js} +2 -2
  73. package/dist/{netsuite-explorer-Dyvhkn4W.js → netsuite-explorer-FeiogpVF.js} +1 -1
  74. package/dist/{predefined-templates-BpA67UsF.js → predefined-templates-CVAkYLi5.js} +1 -1
  75. package/dist/{purchase-order-template-Cz_vJs6G.js → purchase-order-template-CrRp6r28.js} +1 -1
  76. package/dist/{recalculationUtils-BlBf-Zzl.js → recalculationUtils-BuhlMBRB.js} +1 -1
  77. package/dist/{row-action.enum-B4hLVB0n.js → row-action.enum-b--87Y19.js} +1 -1
  78. package/dist/{rules-D1yABcU-.js → rules-CFEKk1zY.js} +3 -3
  79. package/dist/{stock-BYQeM6PC.js → stock-B4FZa2Ci.js} +1 -1
  80. package/dist/{stock-BZYEx2W6.js → stock-Bet2VY1l.js} +2 -2
  81. package/dist/stores/feature.d.ts +4 -2
  82. package/dist/{supplier-Bf-GKwqQ.js → supplier-DX_LR2LR.js} +2 -2
  83. package/dist/{surcharge-CgOySVXw.js → surcharge-gnQZF_xQ.js} +1 -1
  84. package/dist/tsconfig.app.tsbuildinfo +1 -1
  85. package/dist/{uom-rules-MY96On4N.js → uom-rules-B4qbIOqA.js} +1 -1
  86. package/dist/{use-ingredient-select-dialog-C-6U8HZg.js → use-ingredient-select-dialog-BE5IHSwH.js} +2 -2
  87. package/dist/{use-inventory-binding-dialog-n47g88p1.js → use-inventory-binding-dialog-B0xEQiLV.js} +2 -2
  88. package/dist/{use-template-enabled-locations-BH4BNVrW.js → use-template-enabled-locations-BvAG1cJF.js} +2 -2
  89. package/dist/{use-transfer-locations-BmSGdFzy.js → use-transfer-locations-pyDvqZxC.js} +3 -2
  90. package/dist/{useHrmPermission-CUvMFQJw.js → useHrmPermission-kFc2vRek.js} +4 -4
  91. package/dist/{useNavigationMenu-n5qDCC-B.js → useNavigationMenu-C9-LqWKt.js} +31 -31
  92. package/dist/{useSseClient-C7m0H8uC.js → useSseClient-CoafBOe-.js} +1 -1
  93. package/dist/views/receive-request/components/create-order-dialog/CreateOrderDialog.vue.d.ts +18 -0
  94. package/dist/views/receive-request/components/create-order-dialog/CreateOrderDialogProps.d.ts +14 -0
  95. package/dist/views/receive-request/components/create-order-dialog/TemplateList.spec.d.ts +1 -0
  96. package/dist/views/receive-request/components/create-order-dialog/TemplateList.vue.d.ts +43 -0
  97. package/dist/views/receive-request/components/create-order-dialog/TemplateSidebar.spec.d.ts +1 -0
  98. package/dist/views/receive-request/components/create-order-dialog/TemplateSidebar.vue.d.ts +36 -0
  99. package/dist/views/receive-request/components/create-order-dialog/sections.d.ts +3 -0
  100. package/dist/views/receive-request/components/create-order-dialog/useCreateOrderDialog.d.ts +62 -0
  101. package/dist/views/receive-request/components/create-order-dialog/useCreateOrderDialog.spec.d.ts +1 -0
  102. package/dist/views/receive-request/components/transfer-dialog/TransferDialog.vue.d.ts +2 -0
  103. package/dist/views/receive-request/components/transfer-dialog/TransferDialogProps.d.ts +5 -0
  104. package/dist/views/receive-request/components/transfer-form/TransferFormProps.d.ts +5 -0
  105. package/dist/views/receive-request/components/transfer-form/TransferFormWithController.block.spec.d.ts +1 -0
  106. package/dist/views/receive-request/components/transfer-form/TransferFormWithController.vue.d.ts +4 -0
  107. package/dist/views/receive-request/components/transfer-form/composables/use-purchase-order-form-controller.d.ts +3 -1
  108. package/dist/views/receive-request/components/transfer-form/composables/use-purchase-order-form-controller.spec.d.ts +1 -0
  109. package/dist/views/receive-request/composables/use-receive-request-form.d.ts +2 -0
  110. package/dist/views/receive-request/helper/create-order-selection.d.ts +43 -0
  111. package/dist/views/receive-request/helper/create-order-selection.spec.d.ts +1 -0
  112. package/dist/views/transfer-template/components/transfer-template-form/composables/use-transfer-locations.d.ts +41 -0
  113. package/dist/{vue-CZOq57to.js → vue-BMDdrHy_.js} +49 -53
  114. package/dist/{vue-i18n-CaPghuy6.js → vue-i18n-Bkodg08l.js} +225 -225
  115. package/dist/{xlsx.util-BZ5NcssA.js → xlsx.util-DOCqFSat.js} +2 -2
  116. package/package.json +4 -4
  117. package/dist/ReceiveRequestView-DFIvBDab.js +0 -346
  118. package/dist/TransferDetails.vue_vue_type_script_setup_true_lang-D8F68NOi.js +0 -4953
  119. package/dist/defineDeepModel-IyD7GQIK.js +0 -19
@@ -1,5 +1,5 @@
1
1
  import { computed as o } from "vue";
2
- import { u } from "./netsuite-C9IQHbuv.js";
2
+ import { u } from "./netsuite-BDcapEOO.js";
3
3
  function i(e) {
4
4
  const t = (n) => !!n && n.toLocaleLowerCase().includes("inactive");
5
5
  return t(e.name) || t(e.abbrev);
@@ -1,6 +1,6 @@
1
1
  import { defineStore as S } from "pinia";
2
- import { a as b } from "./app-DEDl7U52.js";
3
- import { a as A } from "./FmMultiselectDialog-C4Gj_aUx.js";
2
+ import { a as b } from "./app-B2FciWDu.js";
3
+ import { a as A } from "./FmMultiselectDialog-CJLfLql2.js";
4
4
  import { useDialog as I } from "@feedmepos/ui-library";
5
5
  import { useI18n as D } from "@feedmepos/mf-common";
6
6
  const w = S(
@@ -1,5 +1,5 @@
1
- import { a as y } from "./FmMultiselectDialog-C4Gj_aUx.js";
2
- import { a as S } from "./app-DEDl7U52.js";
1
+ import { a as y } from "./FmMultiselectDialog-CJLfLql2.js";
2
+ import { a as S } from "./app-B2FciWDu.js";
3
3
  import { useDialog as E } from "@feedmepos/ui-library";
4
4
  function w() {
5
5
  const c = S(), g = E();
@@ -1,5 +1,5 @@
1
- import { a as A } from "./FmMultiselectDialog-C4Gj_aUx.js";
2
- import { u as S } from "./app-DEDl7U52.js";
1
+ import { a as A } from "./FmMultiselectDialog-CJLfLql2.js";
2
+ import { u as S } from "./app-B2FciWDu.js";
3
3
  import { useI18n as w, useCoreStore as i, useCustomAttributes as _ } from "@feedmepos/mf-common";
4
4
  import { useDialog as C, components as p } from "@feedmepos/ui-library";
5
5
  import { computed as r, h as c } from "vue";
@@ -1,5 +1,5 @@
1
- import { u as g, r as l, a1 as w, a4 as R } from "./app-DEDl7U52.js";
2
- import { u as E } from "./supplier-Bf-GKwqQ.js";
1
+ import { u as g, r as l, a3 as w, a5 as R } from "./app-B2FciWDu.js";
2
+ import { u as E } from "./supplier-DX_LR2LR.js";
3
3
  import { computed as u } from "vue";
4
4
  function d(n) {
5
5
  const c = R.safeParse(n);
@@ -105,6 +105,7 @@ function F(n, c, y = !1, f = !1) {
105
105
  transferLocationModel: h,
106
106
  transferLocationOptions: O,
107
107
  locationOptionsTypePurchase: S,
108
+ locationOptionsTypePurchaseBusinessLevel: T,
108
109
  locationOptionsTypePurchaseLocationLevel: v,
109
110
  locationOptionsTypeTransfer: b,
110
111
  selectedLocation: P
@@ -1,14 +1,14 @@
1
1
  import { computed as p, toValue as o } from "vue";
2
- import { ad as n } from "./app-DEDl7U52.js";
2
+ import { ae as n } from "./app-B2FciWDu.js";
3
3
  import { useCoreStore as c } from "@feedmepos/mf-common";
4
4
  function g(t, i = "all") {
5
5
  const m = c();
6
6
  return { hasPermission: p(() => {
7
- var e;
7
+ var s;
8
8
  const r = o(t), u = o(i);
9
9
  if (r.length === 0) return !0;
10
- const s = ((e = m.sessionUser.value) == null ? void 0 : e.permissions) ?? [];
11
- return u === "any" ? r.some((a) => n([a], s).granted) : n(r, s).granted;
10
+ const e = ((s = m.sessionUser.value) == null ? void 0 : s.permissions) ?? [];
11
+ return u === "any" ? r.some((a) => n([a], e).granted) : n(r, e).granted;
12
12
  }) };
13
13
  }
14
14
  export {
@@ -1,9 +1,9 @@
1
1
  import { computed as R, h as P } from "vue";
2
- import { R as e, ae as O, af as A, ad as U } from "./app-DEDl7U52.js";
2
+ import { R as e, af as O, ag as A, ae as U } from "./app-B2FciWDu.js";
3
3
  import { useCoreStore as b, useI18n as L } from "@feedmepos/mf-common";
4
- import { u as y, I as E, e as v } from "./feature-CueVnu9M.js";
5
- import { e as G, g, d as M, f as F, i as H } from "./vue-CZOq57to.js";
6
- import { _ as K } from "./FeatureCapabilityBadge.vue_vue_type_script_setup_true_lang-C-hjrYMV.js";
4
+ import { u as y, I as E, e as g } from "./feature-CvQ6eKvB.js";
5
+ import { e as G, g as v, d as M, f as H } from "./vue-BMDdrHy_.js";
6
+ import { _ as K } from "./FeatureCapabilityBadge.vue_vue_type_script_setup_true_lang-CGkF-JhJ.js";
7
7
  const h = [
8
8
  {
9
9
  route: e.STOCK,
@@ -140,10 +140,10 @@ const h = [
140
140
  tier: "standard",
141
141
  description: "Inspect and manage integration records and synchronization."
142
142
  }
143
- ], k = Object.fromEntries(
143
+ ], F = Object.fromEntries(
144
144
  h.map((o) => {
145
145
  var u;
146
- const s = g(o.featureKey ?? "");
146
+ const s = v(o.featureKey ?? "");
147
147
  return [
148
148
  o.route,
149
149
  M({
@@ -155,40 +155,40 @@ const h = [
155
155
  ];
156
156
  })
157
157
  );
158
- function B(o) {
158
+ function k(o) {
159
159
  return h.find((s) => s.route === o) ?? null;
160
160
  }
161
- function D(o) {
162
- return o ? k[o] ?? null : null;
161
+ function B(o) {
162
+ return o ? F[o] ?? null : null;
163
163
  }
164
- function x(o, s) {
165
- const u = D(o);
164
+ function q(o, s) {
165
+ const u = B(o);
166
166
  return u ? G(u, s) : { enabled: !0, disabled: !1, stage: "ga", eligible: !0 };
167
167
  }
168
- const V = A.reduce(
168
+ const D = A.reduce(
169
169
  (o, s) => {
170
170
  var u;
171
171
  return s.name && (o[s.name] = (u = s.meta) == null ? void 0 : u.validationManifest), o;
172
172
  },
173
173
  {}
174
174
  );
175
- function z() {
175
+ function x() {
176
176
  const o = b(), s = y(), { t: u } = L(), a = (t) => O(t, u), _ = R(
177
177
  () => {
178
178
  var t;
179
179
  return ((t = o.sessionUser.value) == null ? void 0 : t.permissions) ?? [];
180
180
  }
181
- ), f = (t = []) => t.length === 0 ? !0 : U(t, _.value).granted, n = (t) => {
182
- const r = V[t];
183
- return f(r == null ? void 0 : r.requiredCaslPermissions);
181
+ ), N = (t = []) => t.length === 0 ? !0 : U(t, _.value).granted, n = (t) => {
182
+ const r = D[t];
183
+ return N(r == null ? void 0 : r.requiredCaslPermissions);
184
184
  }, c = (t) => {
185
185
  var r;
186
186
  return ((r = s.flags.find((d) => d.name === t)) == null ? void 0 : r.beta) !== !1 && !s.isFlagOn(t);
187
- }, m = (t) => t.filter((r) => !r.hide).map((r) => r.children ? { ...r, children: m(r.children) } : r).filter((r) => !r.children || r.children.length > 0), I = (t) => t.map((r) => {
187
+ }, I = (t) => t.filter((r) => !r.hide).map((r) => r.children ? { ...r, children: I(r.children) } : r).filter((r) => !r.children || r.children.length > 0), m = (t) => t.map((r) => {
188
188
  const { hide: d, children: i, ...l } = r, T = { ...l };
189
- return i && (T.children = I(i)), T;
190
- }), p = (t) => t.map((r) => {
191
- const d = r.value, i = B(d), l = g((i == null ? void 0 : i.featureKey) ?? ""), T = l == null ? void 0 : l.category, C = i && (i.tier === "premium" || T === "beta" || l != null && l.deprecateSoon) ? () => P(K, {
189
+ return i && (T.children = m(i)), T;
190
+ }), S = (t) => t.map((r) => {
191
+ const d = r.value, i = k(d), l = v((i == null ? void 0 : i.featureKey) ?? ""), T = l == null ? void 0 : l.category, C = i && (i.tier === "premium" || T === "beta" || l != null && l.deprecateSoon) ? () => P(K, {
192
192
  tier: i.tier,
193
193
  category: T,
194
194
  deprecateSoon: l == null ? void 0 : l.deprecateSoon,
@@ -197,9 +197,9 @@ function z() {
197
197
  return {
198
198
  ...r,
199
199
  badge: C,
200
- children: r.children ? p(r.children) : void 0
200
+ children: r.children ? S(r.children) : void 0
201
201
  };
202
- }), S = R(() => {
202
+ }), p = R(() => {
203
203
  var d;
204
204
  const t = [
205
205
  {
@@ -213,7 +213,7 @@ function z() {
213
213
  {
214
214
  label: a(e.PRODUCTION_RUN),
215
215
  value: e.PRODUCTION_RUN,
216
- hide: !n(e.PRODUCTION_RUN) || F("production-runs").disabled
216
+ hide: !n(e.PRODUCTION_RUN) || H("production-runs").disabled
217
217
  },
218
218
  {
219
219
  label: a(e.WASTAGE_TEMPLATE),
@@ -223,7 +223,7 @@ function z() {
223
223
  {
224
224
  label: a(e.UNIT_COST_HISTORY),
225
225
  value: e.UNIT_COST_HISTORY,
226
- hide: !n(e.UNIT_COST_HISTORY) || s.isModuleBeta(v.Costing) && !s.isModuleEnabled(v.Costing)
226
+ hide: !n(e.UNIT_COST_HISTORY) || s.isModuleBeta(g.Costing) && !s.isModuleEnabled(g.Costing)
227
227
  }
228
228
  ]
229
229
  },
@@ -288,7 +288,7 @@ function z() {
288
288
  {
289
289
  label: a(e.TRANSFER_TEMPLATE),
290
290
  value: e.TRANSFER_TEMPLATE,
291
- hide: !n(e.TRANSFER_TEMPLATE) || c(E.inventory_portal_must_use_transfer_template) && !H("purchase-order-template")
291
+ hide: !n(e.TRANSFER_TEMPLATE)
292
292
  }
293
293
  ]
294
294
  },
@@ -322,11 +322,11 @@ function z() {
322
322
  value: e.SETTINGS,
323
323
  hide: !n(e.SETTINGS)
324
324
  }
325
- ], r = p(I(m(t)));
325
+ ], r = S(m(I(t)));
326
326
  return ((d = o.currentBusiness.value) == null ? void 0 : d.menuVersion) === "v3" ? r.filter(
327
327
  (i) => i.value !== e.INGREDIENTS && i.value !== e.RECIPE && i.value !== e.UNIT && i.value !== e.PUBLISH
328
328
  ) : r;
329
- }), N = R(() => {
329
+ }), f = R(() => {
330
330
  function t(d) {
331
331
  for (const i of d)
332
332
  if (i.children && i.children.length > 0) {
@@ -335,12 +335,12 @@ function z() {
335
335
  } else if (i.value)
336
336
  return i.value;
337
337
  }
338
- return t(S.value) ?? null;
338
+ return t(p.value) ?? null;
339
339
  });
340
- return { menuItems: S, firstAccessibleRouteName: N };
340
+ return { menuItems: p, firstAccessibleRouteName: f };
341
341
  }
342
342
  export {
343
- x as e,
343
+ q as e,
344
344
  h as n,
345
- z as u
345
+ x as u
346
346
  };
@@ -1,4 +1,4 @@
1
- import { d as se } from "./app-DEDl7U52.js";
1
+ import { d as se } from "./app-B2FciWDu.js";
2
2
  import { useCoreStore as ne } from "@feedmepos/mf-common";
3
3
  const re = se((e, t) => ({
4
4
  getSubscribeUrl(s, r, a) {
@@ -0,0 +1,18 @@
1
+ import type { CreateOrderDialogProps } from './CreateOrderDialogProps';
2
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<CreateOrderDialogProps>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
3
+ "update:show": (show: boolean) => void;
4
+ select: (choice: import("../../helper/create-order-selection").CreateOrderChoice) => void;
5
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<CreateOrderDialogProps>>> & Readonly<{
6
+ onSelect?: ((choice: import("../../helper/create-order-selection").CreateOrderChoice) => any) | undefined;
7
+ "onUpdate:show"?: ((show: boolean) => any) | undefined;
8
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
9
+ export default _default;
10
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
11
+ type __VLS_TypePropsToRuntimeProps<T> = {
12
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
13
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
14
+ } : {
15
+ type: import('vue').PropType<T[K]>;
16
+ required: true;
17
+ };
18
+ };
@@ -0,0 +1,14 @@
1
+ import type { CreateOrderChoice } from '../../helper/create-order-selection';
2
+ export interface CreateOrderDialogProps {
3
+ show?: boolean;
4
+ supplierId?: string;
5
+ supplierName?: string;
6
+ }
7
+ export type CreateOrderDialogPropsWithEventBinding = CreateOrderDialogProps & {
8
+ 'onUpdate:show'?(show: boolean): void;
9
+ onSelect?(choice: CreateOrderChoice): void;
10
+ };
11
+ export interface CreateOrderDialogEvents {
12
+ (event: 'update:show', show: boolean): void;
13
+ (event: 'select', choice: CreateOrderChoice): void;
14
+ }
@@ -0,0 +1,43 @@
1
+ export interface TemplateListEntry {
2
+ id: string;
3
+ name: string;
4
+ invalidReason?: string;
5
+ sourceName: string;
6
+ itemCount: number;
7
+ time: string;
8
+ }
9
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
10
+ title: string;
11
+ kind?: string | undefined;
12
+ entries: TemplateListEntry[];
13
+ showSource: boolean;
14
+ query: string;
15
+ loading: boolean;
16
+ showBlank: boolean;
17
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
18
+ pick: (templateId: string) => void;
19
+ search: (query: string) => void;
20
+ blank: () => void;
21
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
22
+ title: string;
23
+ kind?: string | undefined;
24
+ entries: TemplateListEntry[];
25
+ showSource: boolean;
26
+ query: string;
27
+ loading: boolean;
28
+ showBlank: boolean;
29
+ }>>> & Readonly<{
30
+ onSearch?: ((query: string) => any) | undefined;
31
+ onPick?: ((templateId: string) => any) | undefined;
32
+ onBlank?: (() => any) | undefined;
33
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
34
+ export default _default;
35
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
36
+ type __VLS_TypePropsToRuntimeProps<T> = {
37
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
38
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
39
+ } : {
40
+ type: import('vue').PropType<T[K]>;
41
+ required: true;
42
+ };
43
+ };
@@ -0,0 +1,36 @@
1
+ export interface SidebarGroup {
2
+ id: string;
3
+ name: string;
4
+ kind: string;
5
+ kindLabel: string;
6
+ count: number;
7
+ }
8
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
9
+ groups: SidebarGroup[];
10
+ selectedId: string | null;
11
+ query: string;
12
+ total: number;
13
+ loading: boolean;
14
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
+ select: (id: string | null) => void;
16
+ search: (query: string) => void;
17
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
18
+ groups: SidebarGroup[];
19
+ selectedId: string | null;
20
+ query: string;
21
+ total: number;
22
+ loading: boolean;
23
+ }>>> & Readonly<{
24
+ onSelect?: ((id: string | null) => any) | undefined;
25
+ onSearch?: ((query: string) => any) | undefined;
26
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
27
+ export default _default;
28
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
29
+ type __VLS_TypePropsToRuntimeProps<T> = {
30
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
31
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
32
+ } : {
33
+ type: import('vue').PropType<T[K]>;
34
+ required: true;
35
+ };
36
+ };
@@ -0,0 +1,3 @@
1
+ import type { PermissionSubjectBusinessNamespace } from '@feedmepos/hrm-permission';
2
+ export type SectionId = 'sidebar' | 'templateList' | 'blankOrder';
3
+ export declare const sectionPermissions: Record<SectionId, PermissionSubjectBusinessNamespace | null>;
@@ -0,0 +1,62 @@
1
+ import type { PermissionSubjectBusinessNamespace } from '@feedmepos/hrm-permission';
2
+ import { type CreateOrderChoice, type SourceOption } from '../../helper/create-order-selection';
3
+ export interface CreateOrderPorts {
4
+ templates: {
5
+ list(): FdoPurchaseOrderTemplate[];
6
+ loading(): boolean;
7
+ };
8
+ sources: {
9
+ currentLocationId(): string;
10
+ };
11
+ permissions: {
12
+ has(subject: PermissionSubjectBusinessNamespace | null): boolean;
13
+ };
14
+ netsuite: {
15
+ subsidiaryError(supplier: FdoPurchaseOrderSupplier): string | undefined;
16
+ };
17
+ }
18
+ export interface CreateOrderPreset {
19
+ show?: boolean;
20
+ supplierId?: string;
21
+ }
22
+ export declare const kindLabels: Record<SourceOption, string>;
23
+ export declare function useDefaultCreateOrderPorts(): CreateOrderPorts;
24
+ export declare function useCreateOrderDialog(preset: () => CreateOrderPreset, onSelect: (choice: CreateOrderChoice) => void, ports?: CreateOrderPorts): {
25
+ viewState: import("vue").ComputedRef<{
26
+ loading: boolean;
27
+ sidebar: {
28
+ groups: {
29
+ id: string;
30
+ name: string;
31
+ kind: SourceOption;
32
+ kindLabel: string;
33
+ count: number;
34
+ }[];
35
+ selectedId: string | null;
36
+ query: string;
37
+ total: number;
38
+ };
39
+ templates: {
40
+ title: string;
41
+ kind: string | undefined;
42
+ showSource: boolean;
43
+ showBlank: boolean;
44
+ query: string;
45
+ entries: {
46
+ id: string;
47
+ name: string;
48
+ invalidReason: string | undefined;
49
+ sourceName: string;
50
+ itemCount: number;
51
+ time: string;
52
+ }[];
53
+ };
54
+ }>;
55
+ actions: {
56
+ selectSidebar(sourceId: string | null): void;
57
+ searchSidebar(query: string): void;
58
+ searchTemplates(query: string): void;
59
+ pickTemplate(templateId: string): void;
60
+ startBlank(): void;
61
+ };
62
+ };
@@ -6,7 +6,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
6
6
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
7
  "update:show": (show: boolean) => void;
8
8
  submitted: () => void;
9
+ change: (preset: import("../../helper/create-order-selection").ChangeOrderSourcePreset) => void;
9
10
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<TransferDialogProps>>> & Readonly<{
11
+ onChange?: ((preset: import("../../helper/create-order-selection").ChangeOrderSourcePreset) => any) | undefined;
10
12
  "onUpdate:show"?: ((show: boolean) => any) | undefined;
11
13
  onSubmitted?: (() => any) | undefined;
12
14
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -1,12 +1,17 @@
1
1
  import type { FormMode } from '@/components/form/form-mode.enum';
2
+ import type { ChangeOrderSourcePreset } from '../../helper/create-order-selection';
2
3
  export interface TransferDialogProps {
3
4
  mode?: FormMode;
4
5
  modelValue?: FdoPurchaseOrder;
5
6
  templateId?: string;
7
+ supplier?: FdoPurchaseOrderSupplier;
8
+ changeable?: boolean;
9
+ singleFlow?: boolean;
6
10
  show?: boolean;
7
11
  lastClosingDate?: Date | null;
8
12
  }
9
13
  export interface TransferDialogEvents {
10
14
  (event: 'update:show', show: boolean): void;
11
15
  (event: 'submitted'): void;
16
+ (event: 'change', preset: ChangeOrderSourcePreset): void;
12
17
  }
@@ -1,3 +1,4 @@
1
+ import type { ChangeOrderSourcePreset } from '../../helper/create-order-selection';
1
2
  export interface TransferFormProps {
2
3
  modelValue?: FdoPurchaseOrder;
3
4
  request?: FdoPurchaseOrderRequest;
@@ -8,10 +9,14 @@ export interface TransferFormProps {
8
9
  skuBalanceMap?: Map<string, FdoSkuBalance>;
9
10
  isBalanceLoading?: boolean;
10
11
  lockedSupplier?: FdoPurchaseOrderSupplier;
12
+ changeable?: boolean;
13
+ singleFlow?: boolean;
11
14
  }
12
15
  export interface TransferFormEvents {
13
16
  (event: 'validation-success'): void;
14
17
  (event: 'form:ready'): void;
18
+ (event: 'form:blocked', blocked: boolean): void;
19
+ (event: 'change', preset: ChangeOrderSourcePreset): void;
15
20
  (event: 'form:data-change', items: FdoPurchaseOrderItem[]): void;
16
21
  }
17
22
  export interface TransferFormExpose {
@@ -655,6 +655,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
655
655
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
656
656
  "validation-success": () => void;
657
657
  "form:ready": () => void;
658
+ "form:blocked": (blocked: boolean) => void;
659
+ change: (preset: import("../../helper/create-order-selection").ChangeOrderSourcePreset) => void;
658
660
  "form:data-change": (items: {
659
661
  measurement?: {
660
662
  name: string;
@@ -753,8 +755,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
753
755
  };
754
756
  }[]) => void;
755
757
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<TransferFormProps>>> & Readonly<{
758
+ onChange?: ((preset: import("../../helper/create-order-selection").ChangeOrderSourcePreset) => any) | undefined;
756
759
  "onValidation-success"?: (() => any) | undefined;
757
760
  "onForm:ready"?: (() => any) | undefined;
761
+ "onForm:blocked"?: ((blocked: boolean) => any) | undefined;
758
762
  "onForm:data-change"?: ((items: {
759
763
  measurement?: {
760
764
  name: string;
@@ -18,5 +18,7 @@ export type { PurchaseOrderFormController, PurchaseOrderFormState, PurchaseOrder
18
18
  export declare function usePurchaseOrderFormController(): {
19
19
  controller: import("vue").ShallowRef<PurchaseOrderFormController, PurchaseOrderFormController>;
20
20
  state: import("vue").ShallowRef<PurchaseOrderFormState, PurchaseOrderFormState>;
21
- init: (po?: FdoPurchaseOrder) => void;
21
+ init: (po?: FdoPurchaseOrder, options?: {
22
+ singleFlow?: boolean;
23
+ }) => void;
22
24
  };
@@ -1,6 +1,7 @@
1
1
  import { type WithToInventoryLocation } from '@/api/purchase-order';
2
2
  import type { DateRange } from 'node_modules/@feedmepos/ui-library/dist/components/form/calendar/date-range-picker/common';
3
3
  import type { TransferDialogProps } from '../components/transfer-dialog/TransferDialogProps';
4
+ import type { CreateOrderDialogPropsWithEventBinding } from '../components/create-order-dialog/CreateOrderDialogProps';
4
5
  import type { TransferDetailsProps } from '../components/transfer-details/TransferDetailsProps';
5
6
  import { F_PURCHASE_ORDER_ACTION } from '@feedmepos/zod-inventory';
6
7
  import type { XilnexImportDialogProps } from '../import/props';
@@ -4979,6 +4980,7 @@ export declare function useReceiveRequestForm(scope: PO_SCOPE, initialDateRange?
4979
4980
  fetchData: () => Promise<void> | undefined;
4980
4981
  loading: import("vue").Ref<boolean, boolean>;
4981
4982
  transferDialogProps: import("vue").Ref<TransferDialogProps | undefined, TransferDialogProps | undefined>;
4983
+ createOrderDialogProps: import("vue").Ref<CreateOrderDialogPropsWithEventBinding | undefined, CreateOrderDialogPropsWithEventBinding | undefined>;
4982
4984
  promptCreateTransferDialog: (init?: Partial<FdoPurchaseOrder>) => Promise<void>;
4983
4985
  promptUpdateTransferDialog: (po: FdoPurchaseOrder) => void;
4984
4986
  transferDetailsProps: import("vue").Ref<TransferDetailsProps | undefined, TransferDetailsProps | undefined>;
@@ -0,0 +1,43 @@
1
+ export type OrderType = F_PURCHASE_ORDER_TRANSACTION_TYPE;
2
+ export type SourceOption = 'supplier' | 'warehouse' | 'restaurant';
3
+ export declare function optionForSource(type: OrderType, internal?: string | null): SourceOption;
4
+ export interface TemplateEntry {
5
+ template: FdoPurchaseOrderTemplate;
6
+ type: OrderType;
7
+ supplierId: string;
8
+ supplier: FdoPurchaseOrderSupplier;
9
+ invalidReason?: string;
10
+ }
11
+ export interface ChangeOrderSourcePreset {
12
+ type?: OrderType;
13
+ supplierId?: string;
14
+ supplierName?: string;
15
+ }
16
+ export interface CreateOrderChoice {
17
+ templateId?: string;
18
+ supplier?: FdoPurchaseOrderSupplier;
19
+ }
20
+ export declare function templateRequiredKind(ctx: {
21
+ premium: boolean;
22
+ ruleOn: boolean;
23
+ vendorRuleOn?: boolean;
24
+ currentLocationType: string;
25
+ supplierInternal?: string | null;
26
+ isLocationSupplier?: boolean;
27
+ hasTemplate: boolean;
28
+ }): 'warehouse' | 'vendor' | null;
29
+ export declare function isTemplateRequired(ctx: Parameters<typeof templateRequiredKind>[0]): boolean;
30
+ /**
31
+ * Same visibility rules as `getTemplateId()` in use-transfer-template-actions.ts:
32
+ * hide templates sourced from the current location or restricted to other locations,
33
+ * and grey out (rather than hide) the invalid ones. Invalid entries sort last.
34
+ */
35
+ export declare function buildTemplateEntries(templates: FdoPurchaseOrderTemplate[], currentLocationId: string, getInvalidReason: (template: FdoPurchaseOrderTemplate) => string | undefined): TemplateEntry[];
36
+ export declare function entryKind(entry: TemplateEntry): SourceOption;
37
+ export interface SourceGroup {
38
+ source: FdoPurchaseOrderSupplier;
39
+ kind: SourceOption;
40
+ templates: TemplateEntry[];
41
+ }
42
+ /** Sources that have at least one template, each with its templates. */
43
+ export declare function groupTemplatesBySource(entries: TemplateEntry[]): SourceGroup[];
@@ -43,6 +43,47 @@ export declare function useTransferLocations(modelGetter: () => Partial<FdoPurch
43
43
  country: string;
44
44
  };
45
45
  }[]>;
46
+ locationOptionsTypePurchaseBusinessLevel: import("vue").ComputedRef<{
47
+ _rev?: string | null | undefined;
48
+ internal?: "restaurant" | "warehouse" | null | undefined;
49
+ contactName?: string | null | undefined;
50
+ email?: string | null | undefined;
51
+ phoneNumber?: string | null | undefined;
52
+ registrationNumber?: string | undefined;
53
+ supplyItems?: {
54
+ skuId: string;
55
+ defaultCost: {
56
+ measurement?: {
57
+ name: string;
58
+ id: string;
59
+ abbrev: string;
60
+ conversion: {
61
+ amount: number;
62
+ precision: number;
63
+ };
64
+ } | null | undefined;
65
+ costPerUnit: {
66
+ currency: "AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOV" | "BRL" | "BSD" | "BTN" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHE" | "CHF" | "CHW" | "CLF" | "CLP" | "CNY" | "COP" | "COU" | "CRC" | "CUC" | "CUP" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HRK" | "HTG" | "HUF" | "IDR" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LYD" | "MAD" | "MDL" | "MGA" | "MKD" | "MMK" | "MNT" | "MOP" | "MRU" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SLL" | "SOS" | "SRD" | "SSP" | "STN" | "SVC" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "USN" | "UYI" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XBC" | "XBD" | "XCD" | "XDR" | "XOF" | "XPD" | "XPF" | "XPT" | "XSU" | "XTS" | "XUA" | "XXX" | "YER" | "ZAR" | "ZMW" | "ZWL";
67
+ amount: number;
68
+ precision: number;
69
+ };
70
+ };
71
+ }[] | null | undefined;
72
+ preparationTime?: {
73
+ unit: "year" | "month" | "week" | "day" | "hour" | "minute" | "second" | "millisecond";
74
+ value: number;
75
+ } | null | undefined;
76
+ _id: string;
77
+ name: string;
78
+ address: {
79
+ line2?: string | null | undefined;
80
+ line1: string;
81
+ state: string;
82
+ city: string;
83
+ postcode: string;
84
+ country: string;
85
+ };
86
+ }[]>;
46
87
  locationOptionsTypePurchaseLocationLevel: import("vue").ComputedRef<{
47
88
  _rev?: string | null | undefined;
48
89
  internal?: "restaurant" | "warehouse" | null | undefined;