@feedmepos/mf-inventory-portal 1.7.0-dev.6 → 1.7.0-dev.7

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 (113) hide show
  1. package/README.md +8 -8
  2. package/dist/{App-NlIy4RUv.js → App-CdLmQWt8.js} +4 -4
  3. package/dist/{ApprovalView-E7y0ueFH.js → ApprovalView-CSsDqhpv.js} +8 -8
  4. package/dist/{BindingsDialog-BNApImJz.js → BindingsDialog-DHJ1tvNJ.js} +2 -2
  5. package/dist/{BindingsPicker-DRWs430b.js → BindingsPicker-C8MPcvSz.js} +2 -2
  6. package/dist/{BindingsTable-BC1TgKaN.js → BindingsTable-52py8Ws5.js} +3 -3
  7. package/dist/{BulkReceiveRequestView-3XmccTDH.js → BulkReceiveRequestView-DV-Pi8Dl.js} +19 -19
  8. package/dist/{ChangeLocationComponent.vue_vue_type_script_setup_true_lang-DW71yYOY.js → ChangeLocationComponent.vue_vue_type_script_setup_true_lang-DqEFrMvv.js} +1 -1
  9. package/dist/ClosingDraftView-By9Ubrjj.js +4398 -0
  10. package/dist/ClosingHistoryView-DPX0oThW.js +1112 -0
  11. package/dist/ClosingTemplateView-CPfsw6Jo.js +2270 -0
  12. package/dist/CursorPaginatedTable.vue_vue_type_script_setup_true_lang-4KT9rH9e.js +152 -0
  13. package/dist/{DefaultView-vIumMOKt.js → DefaultView-bnlvalOA.js} +2 -2
  14. package/dist/{DeliveryOrderPrintPreview-DhLgl3uz.js → DeliveryOrderPrintPreview-DvCoRkS5.js} +2 -2
  15. package/dist/{EmailDialog.vue_vue_type_script_setup_true_lang-Cn2ub5XB.js → EmailDialog.vue_vue_type_script_setup_true_lang-hclhTx1v.js} +23 -23
  16. package/dist/FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-Dnb11ZZu.js +69 -0
  17. package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-CNkXEMRd.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-5zyDFkIj.js} +2 -2
  18. package/dist/FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-BGeYHCo3.js +120 -0
  19. package/dist/{FmMultiselectDialog-Ckl1Yv9A.js → FmMultiselectDialog-BmsipVZ1.js} +1 -1
  20. package/dist/{FmMultiselectDialog-BKUDjNe8.js → FmMultiselectDialog-C89_c6t-.js} +2 -2
  21. package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-D-dqtdHm.js → FmUnitInput.vue_vue_type_script_setup_true_lang-mZVsLfXN.js} +5 -5
  22. package/dist/{ImportView-B2dZLlIQ.js → ImportView-5o7viifV.js} +6 -6
  23. package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-CZN7bMba.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-Cf5aYcgE.js} +1 -1
  24. package/dist/{IngredientGroupView-B8uTaewu.js → IngredientGroupView-DFtA9PGx.js} +5 -5
  25. package/dist/{IngredientsView-0pIpqaYP.js → IngredientsView-B7xgch69.js} +16 -16
  26. package/dist/{IntegrationExplorerView-m340FRkF.js → IntegrationExplorerView-WgrLMM-S.js} +4 -4
  27. package/dist/{IntegrationView-CR63stDu.js → IntegrationView-DODVvXar.js} +13 -13
  28. package/dist/{InventoryBindingForm-DxwGujF1.js → InventoryBindingForm-BFjgIg5X.js} +1 -1
  29. package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-CuXUsDzD.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-BafAL8Ko.js} +5 -5
  30. package/dist/{InventoryBindingSummary-BZC8PmSy.js → InventoryBindingSummary-DIbLUq8T.js} +1 -1
  31. package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-DUQxKXKO.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-CmMhWVV1.js} +1 -1
  32. package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-DhabkmeS.js → PremiumBadge.vue_vue_type_script_setup_true_lang-ChruzrrP.js} +1 -1
  33. package/dist/{ProductionView-DGK7ari8.js → ProductionView-DbomR0mp.js} +7 -7
  34. package/dist/{PublishView-C2WdbS4L.js → PublishView-CY8RPc96.js} +3 -3
  35. package/dist/{PurchaseOrderPrintPreview-DbB68sX0.js → PurchaseOrderPrintPreview-LlaeK9yj.js} +2 -2
  36. package/dist/{ReceiveRequestView-zAUq0Ssz.js → ReceiveRequestView-DhaH8q7H.js} +13 -13
  37. package/dist/{RecipeView-C5w_pUXR.js → RecipeView-BssQDDZQ.js} +17 -17
  38. package/dist/{SettingsView-DLRcCvk4.js → SettingsView-t33Yw-Y7.js} +4 -4
  39. package/dist/{StockView-BaH1vKcT.js → StockView-BS4bOyqr.js} +21 -21
  40. package/dist/{SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-weKIvp8F.js → SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-DuC1cXzZ.js} +1 -1
  41. package/dist/{SupplierView-DrviX9XY.js → SupplierView-BJvfJjTL.js} +12 -12
  42. package/dist/{SurchargeView-PeKEls1Z.js → SurchargeView-D9MTfTxj.js} +6 -6
  43. package/dist/{SystemTrailDialog.vue_vue_type_script_setup_true_lang-Czkd0qqw.js → SystemTrailDialog.vue_vue_type_script_setup_true_lang-BDbdkJMO.js} +2 -2
  44. package/dist/{TemplatePublishDialog.vue_vue_type_script_setup_true_lang-B01wr4F8.js → TemplatePublishDialog.vue_vue_type_script_setup_true_lang-bHKvO-R3.js} +1 -1
  45. package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-Dqz1eFSJ.js → TransferDetails.vue_vue_type_script_setup_true_lang-CiLaobTu.js} +20 -20
  46. package/dist/{TransferTemplateView-wN2nr_0X.js → TransferTemplateView-BJyvlc5A.js} +20 -20
  47. package/dist/{UnitCostHistoryView-DGTYxbvj.js → UnitCostHistoryView-D1x3terP.js} +4 -4
  48. package/dist/{UnitDisplayControl.vue_vue_type_script_setup_true_lang-B6krURPH.js → UnitDisplayControl.vue_vue_type_script_setup_true_lang-CQuzAchK.js} +4 -4
  49. package/dist/{UnitView-C8SM9fQP.js → UnitView-Bt6iIBYS.js} +7 -7
  50. package/dist/{WarehouseView-DhOlmE3U.js → WarehouseView-Ds_FmW5Y.js} +5 -5
  51. package/dist/{WastageTemplateView-CM4eTx0N.js → WastageTemplateView-DEYy49G9.js} +14 -14
  52. package/dist/api/closing-draft.d.ts +11 -0
  53. package/dist/api/closing-template.d.ts +11 -2
  54. package/dist/api/closing.d.ts +12 -1
  55. package/dist/{app-pfHbU1WT.js → app-C5ZjmQBL.js} +4228 -4018
  56. package/dist/app.d.ts +8 -0
  57. package/dist/app.js +1 -1
  58. package/dist/{closing-template-C6Vx5eWA.js → closing-template-C1RAVtfm.js} +31 -11
  59. package/dist/components/CursorPaginatedTable.vue.d.ts +136 -0
  60. package/dist/components/FmInventoryTableToolbar.vue.d.ts +26 -0
  61. package/dist/components/ui-library/FmDateRangePickerChip.vue.d.ts +5 -0
  62. package/dist/composable/defineApi.d.ts +1 -1
  63. package/dist/{date2-C-n9LpKa.js → date2-C_I6Sj_2.js} +1 -1
  64. package/dist/{dayjs.min-Bu4_8gM9.js → dayjs.min-DLA2WeAZ.js} +1 -1
  65. package/dist/{decimal-C2_Vh-I3.js → decimal-CmyPHcIE.js} +2 -2
  66. package/dist/{defineDeepModel-CXP9xlO9.js → defineDeepModel-DgZRD9r1.js} +1 -1
  67. package/dist/{duplicate-template-XPmYbOJ9.js → duplicate-template-YgZzxaM1.js} +1 -1
  68. package/dist/{feature-CLk0uPEH.js → feature-DM1fHf-j.js} +2 -2
  69. package/dist/{format-time-from-id-G5QRBa84.js → format-time-from-id-ZLKKvFN3.js} +1 -1
  70. package/dist/{format-unit-display-IIqavf90.js → format-unit-display-Dh9Gkal3.js} +12 -12
  71. package/dist/{import-export.helper-BO_uqwp4.js → import-export.helper-NRzOlfjs.js} +6 -6
  72. package/dist/{index-Dcm54ldM.js → index-CH2gGkkr.js} +1 -1
  73. package/dist/{index-DnpSJzwo.js → index-D6ZdZoYl.js} +3 -3
  74. package/dist/{index-Ce3fiDvd.js → index-tlUzP5gu.js} +3344 -3066
  75. package/dist/{inventory-core-dart.default-INsUG73Y.js → inventory-core-dart.default-DEJl1cw1.js} +1 -1
  76. package/dist/{jszip.min-D3KgBOLH.js → jszip.min-IIc159ih.js} +2 -2
  77. package/dist/{lz-string-BWhXP-Xc.js → lz-string-CLDiS3IE.js} +1 -1
  78. package/dist/{netsuite-DzOrZBvA.js → netsuite-DuBR2cEF.js} +2 -2
  79. package/dist/{number-VpMHWJsJ.js → number-D80m3cTF.js} +3 -3
  80. package/dist/{predefined-templates-BvnvUI_F.js → predefined-templates-DRyPnzlW.js} +1 -1
  81. package/dist/{purchase-order-template-CJh4_Q3H.js → purchase-order-template-BBnMW_fW.js} +1 -1
  82. package/dist/{recalculationUtils-BTvAwC7J.js → recalculationUtils-DJK6lrcN.js} +1 -1
  83. package/dist/{rules-LPO_v5Zr.js → rules-BVYE7agw.js} +2 -2
  84. package/dist/{stock-DCHhwIaC.js → stock-Bp5E9dDF.js} +1 -1
  85. package/dist/{stock-CqpYPWHj.js → stock-WZL_VV0O.js} +3 -3
  86. package/dist/{supplier-CZEJx5mC.js → supplier-DaLG_xt7.js} +2 -2
  87. package/dist/{surcharge-BbTuG_a2.js → surcharge-4CBOByoy.js} +1 -1
  88. package/dist/tsconfig.app.tsbuildinfo +1 -1
  89. package/dist/{uom-rules-Cu4fXhZ2.js → uom-rules-B604Aftd.js} +1 -1
  90. package/dist/{use-ingredient-select-dialog-D6ETW66d.js → use-ingredient-select-dialog-C6FoBmcN.js} +2 -2
  91. package/dist/{use-inventory-binding-dialog-D_b729Po.js → use-inventory-binding-dialog-DGSFzKVG.js} +2 -2
  92. package/dist/{use-template-enabled-locations-DeR8DY64.js → use-template-enabled-locations-D5_hVbtg.js} +2 -2
  93. package/dist/{use-transfer-locations-DysOG_1c.js → use-transfer-locations-C8Tn4jb9.js} +2 -2
  94. package/dist/{useHrmPermission-BDMnFbDK.js → useHrmPermission-Cu0490uh.js} +1 -1
  95. package/dist/{useNavigationMenu-CjoofsrC.js → useNavigationMenu-HSwbFOrI.js} +2 -2
  96. package/dist/{useSseClient-B7hHgXIn.js → useSseClient-CptMV4gY.js} +1 -1
  97. package/dist/views/adjustment-template/wastage-template/table.d.ts +1 -1
  98. package/dist/views/closing-draft/composables/use-closing-draft-actions.d.ts +1284 -15
  99. package/dist/views/closing-draft/composables/use-closing-draft-table.d.ts +234 -3090
  100. package/dist/views/closing-draft/helpers/closing-group-status.helper.d.ts +5 -3
  101. package/dist/views/closing-draft/helpers/closing-groups.helper.d.ts +19 -8
  102. package/dist/views/closing-template/composables/use-closing-template-actions.d.ts +577 -15
  103. package/dist/views/closing-template/composables/use-closing-template-table.d.ts +51 -1025
  104. package/dist/views/closing-template/helpers/import-export.helper.d.ts +1 -1
  105. package/dist/views/transfer-template/composables/use-transfer-template-table.d.ts +1 -1
  106. package/dist/{vue-i18n-kLRqcyG8.js → vue-i18n-CXcdytIG.js} +1 -1
  107. package/dist/{xlsx.util-1F6O_wmm.js → xlsx.util-Dhm1k2gt.js} +2 -2
  108. package/package.json +3 -3
  109. package/dist/ClosingDraftView-DUv-k-RN.js +0 -4320
  110. package/dist/ClosingHistoryView-CGb32hip.js +0 -1115
  111. package/dist/ClosingTemplateView-DtxeqHgX.js +0 -2237
  112. package/dist/FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-OReBYvpY.js +0 -61
  113. package/dist/FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-DiyqG-gq.js +0 -118
package/dist/app.d.ts CHANGED
@@ -52,6 +52,8 @@ export declare const i18nMessages: {
52
52
  send: string;
53
53
  refresh: string;
54
54
  refreshFailed: string;
55
+ somethingWentWrong: string;
56
+ tryAgain: string;
55
57
  upload: string;
56
58
  export: string;
57
59
  import: string;
@@ -1792,6 +1794,8 @@ export declare const i18nMessages: {
1792
1794
  print: string;
1793
1795
  refresh: string;
1794
1796
  refreshFailed: string;
1797
+ somethingWentWrong: string;
1798
+ tryAgain: string;
1795
1799
  upload: string;
1796
1800
  export: string;
1797
1801
  import: string;
@@ -3347,6 +3351,8 @@ export declare const i18nMessages: {
3347
3351
  print: string;
3348
3352
  refresh: string;
3349
3353
  refreshFailed: string;
3354
+ somethingWentWrong: string;
3355
+ tryAgain: string;
3350
3356
  upload: string;
3351
3357
  export: string;
3352
3358
  import: string;
@@ -4906,6 +4912,8 @@ export declare const i18nMessages: {
4906
4912
  print: string;
4907
4913
  refresh: string;
4908
4914
  refreshFailed: string;
4915
+ somethingWentWrong: string;
4916
+ tryAgain: string;
4909
4917
  upload: string;
4910
4918
  export: string;
4911
4919
  import: string;
package/dist/app.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "vue";
2
- import { az as s, aA as e, aB as o, ay as t, a6 as i, a as m } from "./app-pfHbU1WT.js";
2
+ import { az as s, aA as e, aB as o, ay as t, a6 as i, a as m } from "./app-C5ZjmQBL.js";
3
3
  export {
4
4
  s as FmApp,
5
5
  e as InventoryBindingForm,
@@ -1,9 +1,9 @@
1
- import { m as c } from "./app-pfHbU1WT.js";
2
- import { useCoreStore as u } from "@feedmepos/mf-common";
3
- const d = c((s, a) => {
1
+ import { m as u } from "./app-C5ZjmQBL.js";
2
+ import { useCoreStore as m } from "@feedmepos/mf-common";
3
+ const i = u((s, a) => {
4
4
  function r() {
5
5
  var n;
6
- return `business_${((n = u().currentBusiness.value) == null ? void 0 : n._id) ?? ""}`;
6
+ return `business_${((n = m().currentBusiness.value) == null ? void 0 : n._id) ?? ""}`;
7
7
  }
8
8
  return {
9
9
  async getRecentPublishingJob() {
@@ -67,10 +67,10 @@ const d = c((s, a) => {
67
67
  return a.get(n);
68
68
  }
69
69
  };
70
- }), p = c((s, a) => {
70
+ }), $ = u((s, a) => {
71
71
  function r() {
72
72
  var n;
73
- return `business_${((n = u().currentBusiness.value) == null ? void 0 : n._id) ?? ""}`;
73
+ return `business_${((n = m().currentBusiness.value) == null ? void 0 : n._id) ?? ""}`;
74
74
  }
75
75
  return {
76
76
  async getRecentPublishingJob() {
@@ -93,14 +93,34 @@ const d = c((s, a) => {
93
93
  const n = r(), o = `${s.inventoryBackendUrl}/${n}/closing-template/unpublish/${e}`;
94
94
  return a.post(o, { locationDbNames: t });
95
95
  },
96
- async getTemplate(e) {
97
- const t = r(), n = `${s.inventoryBackendUrl}/${t}/closing-template/${e}`;
98
- return a.get(n);
96
+ async getTemplate(e, t) {
97
+ const n = r(), o = `${s.inventoryBackendUrl}/${n}/closing-template/${e}`;
98
+ return a.get(o, t);
99
99
  },
100
100
  async readTemplates() {
101
101
  const e = r(), t = `${s.inventoryBackendUrl}/${e}/closing-template`;
102
102
  return a.get(t);
103
103
  },
104
+ /** Single page of the trimmed listing endpoint (cursor-based). */
105
+ async listTemplatesPage(e) {
106
+ const t = r(), n = `${s.inventoryBackendUrl}/${t}/closing-template/list`;
107
+ return a.post(n, e);
108
+ },
109
+ /** Cursor-walks the trimmed listing endpoint, fetching every page so
110
+ * callers keep the "load everything up front" table UX while the
111
+ * network payload stays small per page. */
112
+ async listTemplates() {
113
+ const e = r(), t = `${s.inventoryBackendUrl}/${e}/closing-template/list`, n = [];
114
+ let o, c = !0;
115
+ for (; c; ) {
116
+ const l = await a.post(t, {
117
+ limit: 200,
118
+ startkey: o
119
+ });
120
+ if (n.push(...l.docs), c = l.hasMore, o = l.nextStartkey ?? void 0, c && !o) break;
121
+ }
122
+ return n;
123
+ },
104
124
  async createTemplate(e) {
105
125
  const t = r(), n = `${s.inventoryBackendUrl}/${t}/closing-template`;
106
126
  return a.post(n, e);
@@ -124,6 +144,6 @@ const d = c((s, a) => {
124
144
  };
125
145
  });
126
146
  export {
127
- p as a,
128
- d as u
147
+ $ as a,
148
+ i as u
129
149
  };
@@ -0,0 +1,136 @@
1
+ /** Request/response contract of the backend cursor-paginated list
2
+ * endpoints (see backend CursorPaginationService). */
3
+ export interface CursorPageRequest {
4
+ limit: number;
5
+ /** `_id` of the last doc of the previous page (exclusive). */
6
+ startkey?: string;
7
+ }
8
+ export interface CursorPageResponse {
9
+ docs: any[];
10
+ nextStartkey?: string | null;
11
+ hasMore: boolean;
12
+ }
13
+ /** Drops all pagination state and remounts the inner FmTable, which
14
+ * resets it to page 0 and triggers `fetchFn` again. */
15
+ declare function refresh(): void;
16
+ /** Runs a (possibly async) row action behind a cancellable loading
17
+ * placeholder, so row-click callers don't hand-roll spinners/try-catch.
18
+ * The action receives an AbortSignal wired to the placeholder's cancel
19
+ * button; a newer action aborts a still-running one (latest click wins).
20
+ * Also reachable from custom row slots via the component ref. */
21
+ declare function runRowAction(action: (signal: AbortSignal) => unknown | Promise<unknown>): Promise<void>;
22
+ /** Fetch-view-and-sync pipeline for a row (also reachable from custom row
23
+ * slots via the component ref): runs `fetchDetail` behind the cancellable
24
+ * placeholder, emits `detail`, then refreshes the cached row. */
25
+ declare function openRowDetail(rowData: any): Promise<void>;
26
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
27
+ /** Fetches one page from a cursor-paginated list endpoint. */
28
+ fetchPage: (request: CursorPageRequest) => Promise<CursorPageResponse>;
29
+ /** Rows of the current page (`v-model:rows`), so the owner can read
30
+ * and patch them (e.g. update a row after an edit dialog). */
31
+ rows: any[];
32
+ /** Optional mapping applied to a fetched page before it becomes rows. */
33
+ transform?: ((docs: any[]) => any[] | Promise<any[]>) | undefined;
34
+ pageSize?: number | undefined;
35
+ /** Bump to reset pagination and refetch from the first page. */
36
+ refreshKey?: number | undefined;
37
+ /** Extra loading state OR-ed with the page-fetch loading (e.g. a row
38
+ * action that refetches when done). */
39
+ loading?: boolean | undefined;
40
+ /** Row-click handler run through `runRowAction`: a cancellable loading
41
+ * placeholder shows over the table while the (possibly async) action
42
+ * runs and failures surface via snackbar, so callers just pass the
43
+ * callback. Cancel aborts the passed signal, terminating the request. */
44
+ rowAction?: ((row: any, signal: AbortSignal) => unknown) | undefined;
45
+ /** View API: fetches a row's detail (always the latest revision) on row
46
+ * click, behind the same cancellable placeholder. The component emits
47
+ * `detail` with the result and refreshes the cached row when the
48
+ * revisions diverge (see `detailToRow`), so the list can't contradict
49
+ * the opened detail. Receives the plain row data, not the table row. */
50
+ fetchDetail?: ((rowData: any, signal: AbortSignal) => Promise<any>) | undefined;
51
+ /** Maps a fetched detail back onto its listing row for the cache sync
52
+ * (may be async, e.g. lazy-loading a mapper). Without it, only the
53
+ * row's own fields are refreshed from matching detail fields — needed
54
+ * when the row carries derived fields (counts, previews) the detail
55
+ * doesn't expose directly. */
56
+ detailToRow?: ((detail: any, row: any) => unknown) | undefined;
57
+ }>, {
58
+ transform: undefined;
59
+ pageSize: number;
60
+ refreshKey: number;
61
+ loading: boolean;
62
+ }>>, {
63
+ refresh: typeof refresh;
64
+ runRowAction: typeof runRowAction;
65
+ openRowDetail: typeof openRowDetail;
66
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
67
+ "update:rows": (rows: any[]) => void;
68
+ detail: (detail: any) => void;
69
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
70
+ /** Fetches one page from a cursor-paginated list endpoint. */
71
+ fetchPage: (request: CursorPageRequest) => Promise<CursorPageResponse>;
72
+ /** Rows of the current page (`v-model:rows`), so the owner can read
73
+ * and patch them (e.g. update a row after an edit dialog). */
74
+ rows: any[];
75
+ /** Optional mapping applied to a fetched page before it becomes rows. */
76
+ transform?: ((docs: any[]) => any[] | Promise<any[]>) | undefined;
77
+ pageSize?: number | undefined;
78
+ /** Bump to reset pagination and refetch from the first page. */
79
+ refreshKey?: number | undefined;
80
+ /** Extra loading state OR-ed with the page-fetch loading (e.g. a row
81
+ * action that refetches when done). */
82
+ loading?: boolean | undefined;
83
+ /** Row-click handler run through `runRowAction`: a cancellable loading
84
+ * placeholder shows over the table while the (possibly async) action
85
+ * runs and failures surface via snackbar, so callers just pass the
86
+ * callback. Cancel aborts the passed signal, terminating the request. */
87
+ rowAction?: ((row: any, signal: AbortSignal) => unknown) | undefined;
88
+ /** View API: fetches a row's detail (always the latest revision) on row
89
+ * click, behind the same cancellable placeholder. The component emits
90
+ * `detail` with the result and refreshes the cached row when the
91
+ * revisions diverge (see `detailToRow`), so the list can't contradict
92
+ * the opened detail. Receives the plain row data, not the table row. */
93
+ fetchDetail?: ((rowData: any, signal: AbortSignal) => Promise<any>) | undefined;
94
+ /** Maps a fetched detail back onto its listing row for the cache sync
95
+ * (may be async, e.g. lazy-loading a mapper). Without it, only the
96
+ * row's own fields are refreshed from matching detail fields — needed
97
+ * when the row carries derived fields (counts, previews) the detail
98
+ * doesn't expose directly. */
99
+ detailToRow?: ((detail: any, row: any) => unknown) | undefined;
100
+ }>, {
101
+ transform: undefined;
102
+ pageSize: number;
103
+ refreshKey: number;
104
+ loading: boolean;
105
+ }>>> & Readonly<{
106
+ "onUpdate:rows"?: ((rows: any[]) => any) | undefined;
107
+ onDetail?: ((detail: any) => any) | undefined;
108
+ }>, {
109
+ loading: boolean;
110
+ transform: (docs: any[]) => any[] | Promise<any[]>;
111
+ pageSize: number;
112
+ refreshKey: number;
113
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Partial<Record<NonNullable<string | number>, (_: any) => any>>>;
114
+ export default _default;
115
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
116
+ type __VLS_TypePropsToRuntimeProps<T> = {
117
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
118
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
119
+ } : {
120
+ type: import('vue').PropType<T[K]>;
121
+ required: true;
122
+ };
123
+ };
124
+ type __VLS_WithDefaults<P, D> = {
125
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
126
+ default: D[K];
127
+ }> : P[K];
128
+ };
129
+ type __VLS_Prettify<T> = {
130
+ [K in keyof T]: T[K];
131
+ } & {};
132
+ type __VLS_WithTemplateSlots<T, S> = T & {
133
+ new (): {
134
+ $slots: S;
135
+ };
136
+ };
@@ -4,6 +4,14 @@ export interface FmInventoryTableToolbarAction {
4
4
  }
5
5
  export interface FmInventoryTableToolbarProps {
6
6
  dateRangeQuery?: boolean;
7
+ /** Overrides the date picker's built-in quick ranges. */
8
+ predefinedDateRanges?: {
9
+ label: string;
10
+ value: {
11
+ startDate: string;
12
+ endDate: string;
13
+ };
14
+ }[];
7
15
  changeLocation?: boolean;
8
16
  searchable?: boolean;
9
17
  hideFilterOptions?: boolean;
@@ -28,6 +36,15 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<im
28
36
  dateRangeQuery: {
29
37
  type: import("vue").PropType<boolean>;
30
38
  };
39
+ predefinedDateRanges: {
40
+ type: import("vue").PropType<{
41
+ label: string;
42
+ value: {
43
+ startDate: string;
44
+ endDate: string;
45
+ };
46
+ }[]>;
47
+ };
31
48
  changeLocation: {
32
49
  type: import("vue").PropType<boolean>;
33
50
  };
@@ -76,6 +93,15 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<im
76
93
  dateRangeQuery: {
77
94
  type: import("vue").PropType<boolean>;
78
95
  };
96
+ predefinedDateRanges: {
97
+ type: import("vue").PropType<{
98
+ label: string;
99
+ value: {
100
+ startDate: string;
101
+ endDate: string;
102
+ };
103
+ }[]>;
104
+ };
79
105
  changeLocation: {
80
106
  type: import("vue").PropType<boolean>;
81
107
  };
@@ -4,6 +4,11 @@ interface DateRange {
4
4
  }
5
5
  export interface FmDateRangePickerChipProps {
6
6
  modelValue?: DateRange;
7
+ /** Overrides the picker's built-in quick ranges (undefined = library default). */
8
+ predefinedRange?: {
9
+ label: string;
10
+ value: DateRange;
11
+ }[];
7
12
  }
8
13
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<FmDateRangePickerChipProps>, {
9
14
  modelValue: (p: any) => any;
@@ -1,7 +1,7 @@
1
1
  import { useApiStore } from '@/stores/api';
2
2
  export interface HttpClient {
3
3
  withBaseUrl(url: string): Omit<HttpClient, 'withBaseUrl'>;
4
- get<ResponseBody = any>(url: string): Promise<ResponseBody>;
4
+ get<ResponseBody = any>(url: string, signal?: AbortSignal): Promise<ResponseBody>;
5
5
  post<ResponseBody = any>(url: string, body?: any, signal?: AbortSignal): Promise<ResponseBody>;
6
6
  put<ResponseBody = any>(url: string, body?: any): Promise<ResponseBody>;
7
7
  patch<ResponseBody = any>(url: string, body?: any): Promise<ResponseBody>;
@@ -1,4 +1,4 @@
1
- import { d as l } from "./dayjs.min-Bu4_8gM9.js";
1
+ import { d as l } from "./dayjs.min-DLA2WeAZ.js";
2
2
  const T = new Intl.DateTimeFormat("en-US", {
3
3
  year: "numeric",
4
4
  month: "2-digit",
@@ -1,4 +1,4 @@
1
- import { y as Q, Y as K } from "./app-pfHbU1WT.js";
1
+ import { y as Q, Y as K } from "./app-C5ZjmQBL.js";
2
2
  var E = { exports: {} };
3
3
  (function(V, X) {
4
4
  (function(W, k) {
@@ -1,5 +1,5 @@
1
- import "./dayjs.min-Bu4_8gM9.js";
2
- import "./app-pfHbU1WT.js";
1
+ import "./dayjs.min-DLA2WeAZ.js";
2
+ import "./app-C5ZjmQBL.js";
3
3
  function m(a) {
4
4
  function t(o, n = !0) {
5
5
  const e = Math.round(Math.log10(o));
@@ -1,4 +1,4 @@
1
- import { c as a, a3 as u } from "./app-pfHbU1WT.js";
1
+ import { c as a, a3 as u } from "./app-C5ZjmQBL.js";
2
2
  import { getCurrentInstance as d, reactive as l, watch as o } from "vue";
3
3
  function g(i = "modelValue", e) {
4
4
  var n, c;
@@ -1,4 +1,4 @@
1
- import { m as p } from "./app-pfHbU1WT.js";
1
+ import { m as p } from "./app-C5ZjmQBL.js";
2
2
  import { useCoreStore as c } from "@feedmepos/mf-common";
3
3
  const u = p((s, n) => {
4
4
  function o() {
@@ -2,9 +2,9 @@ var ht = Object.defineProperty;
2
2
  var pt = (l, u, _) => u in l ? ht(l, u, { enumerable: !0, configurable: !0, writable: !0, value: _ }) : l[u] = _;
3
3
  var ce = (l, u, _) => pt(l, typeof u != "symbol" ? u + "" : u, _);
4
4
  import { useCoreStore as Ke } from "@feedmepos/mf-common";
5
- import { Y as ve, a as ft, u as Ve, j as ot } from "./app-pfHbU1WT.js";
5
+ import { Y as ve, a as ft, u as Ve, j as ot } from "./app-C5ZjmQBL.js";
6
6
  import { readonly as Ge, ref as de } from "vue";
7
- import "./inventory-core-dart.default-INsUG73Y.js";
7
+ import "./inventory-core-dart.default-DEJl1cw1.js";
8
8
  var qe = { exports: {} };
9
9
  (function(l, u) {
10
10
  (function(_, p) {
@@ -1,4 +1,4 @@
1
- import { h as n } from "./date2-C-n9LpKa.js";
1
+ import { h as n } from "./date2-C_I6Sj_2.js";
2
2
  function d(r) {
3
3
  const t = a(r);
4
4
  return t === null ? "" : n(t);
@@ -1,24 +1,24 @@
1
1
  import { components as ce, useDialogChild as Pe, useSnackbar as de, useDialog as Me, FmButtonVariant as te } from "@feedmepos/ui-library";
2
2
  import { defineStore as pe } from "pinia";
3
3
  import { F as xe } from "./form-mode.enum-BKiNVH6A.js";
4
- import { u as fe } from "./purchase-order-template-CJh4_Q3H.js";
4
+ import { u as fe } from "./purchase-order-template-BBnMW_fW.js";
5
5
  import { ref as I, h as oe, defineComponent as ye, resolveComponent as W, createElementBlock as F, openBlock as O, createElementVNode as N, createCommentVNode as J, normalizeClass as Z, createTextVNode as Be, toDisplayString as q, unref as B, createVNode as j, withCtx as me, Fragment as Y, renderList as ae, onMounted as Le, computed as H, watch as Qe, createSlots as Ue, createBlock as re } from "vue";
6
- import { a as X, c as ve, r as L, u as ie, l as qe, j as _e, s as Ve, R as we } from "./app-pfHbU1WT.js";
6
+ import { a as X, c as ve, r as L, u as ie, l as qe, j as _e, s as Ve, R as we } from "./app-C5ZjmQBL.js";
7
7
  import { useRouter as He } from "vue-router";
8
- import { a as je } from "./FmMultiselectDialog-BKUDjNe8.js";
8
+ import { a as je } from "./FmMultiselectDialog-C89_c6t-.js";
9
9
  import { D as ne, R as U } from "./row-action.enum-DQ9bJ_uv.js";
10
10
  import { c as ze } from "./component-kqxARxvM.js";
11
- import { f as Ye } from "./format-time-from-id-G5QRBa84.js";
11
+ import { f as Ye } from "./format-time-from-id-ZLKKvFN3.js";
12
12
  import { useI18n as he, useCoreStore as Ie } from "@feedmepos/mf-common";
13
- import { t as K, a as Ce, d as Oe, s as Ae, r as Ke } from "./xlsx.util-1F6O_wmm.js";
13
+ import { t as K, a as Ce, d as Oe, s as Ae, r as Ke } from "./xlsx.util-Dhm1k2gt.js";
14
14
  import { F as Ge } from "./FmDroppableField-J0tG_U3w.js";
15
- import { a as G, c as We, t as se, g as ue } from "./number-VpMHWJsJ.js";
16
- import { f as Je } from "./date2-C-n9LpKa.js";
17
- import { u as ge } from "./supplier-CZEJx5mC.js";
18
- import { a as Ze, B as Xe } from "./rules-LPO_v5Zr.js";
19
- import { u as Te } from "./netsuite-DzOrZBvA.js";
20
- import { u as et } from "./duplicate-template-XPmYbOJ9.js";
21
- import { u as tt } from "./vue-i18n-kLRqcyG8.js";
15
+ import { a as G, c as We, t as se, g as ue } from "./number-D80m3cTF.js";
16
+ import { f as Je } from "./date2-C_I6Sj_2.js";
17
+ import { u as ge } from "./supplier-DaLG_xt7.js";
18
+ import { a as Ze, B as Xe } from "./rules-BVYE7agw.js";
19
+ import { u as Te } from "./netsuite-DuBR2cEF.js";
20
+ import { u as et } from "./duplicate-template-YgZzxaM1.js";
21
+ import { u as tt } from "./vue-i18n-CXcdytIG.js";
22
22
  function De(n) {
23
23
  const e = X(), o = n.sku, d = e.skuById[o._id];
24
24
  if (d.unit._id !== o.unit._id) return !0;
@@ -1,10 +1,10 @@
1
- import { a as w, t as H, f as T } from "./number-VpMHWJsJ.js";
2
- import { u as P } from "./feature-CLk0uPEH.js";
1
+ import { a as w, t as H, f as T } from "./number-D80m3cTF.js";
2
+ import { u as P } from "./feature-DM1fHf-j.js";
3
3
  import { useCoreStore as y } from "@feedmepos/mf-common";
4
- import { a as g, g as k, l as j, d as S } from "./app-pfHbU1WT.js";
5
- import { b as N, d as $, s as I } from "./xlsx.util-1F6O_wmm.js";
6
- import { f as _ } from "./date2-C-n9LpKa.js";
7
- import { I as O } from "./rules-LPO_v5Zr.js";
4
+ import { a as g, g as k, l as j, d as S } from "./app-C5ZjmQBL.js";
5
+ import { b as N, d as $, s as I } from "./xlsx.util-Dhm1k2gt.js";
6
+ import { f as _ } from "./date2-C_I6Sj_2.js";
7
+ import { I as O } from "./rules-BVYE7agw.js";
8
8
  function U() {
9
9
  return {
10
10
  low: 6,
@@ -1,4 +1,4 @@
1
- import { y as h } from "./app-pfHbU1WT.js";
1
+ import { y as h } from "./app-C5ZjmQBL.js";
2
2
  var a = { exports: {} };
3
3
  function x(r, s = 100, u = {}) {
4
4
  if (typeof r != "function")
@@ -1,8 +1,8 @@
1
1
  import { ref as p, computed as m } from "vue";
2
- import { u as C } from "./netsuite-DzOrZBvA.js";
3
- import { A as $, a as S, u as f, m as L, E as h } from "./app-pfHbU1WT.js";
2
+ import { u as C } from "./netsuite-DuBR2cEF.js";
3
+ import { A as $, a as S, u as f, m as L, E as h } from "./app-C5ZjmQBL.js";
4
4
  import { useSnackbar as x } from "@feedmepos/ui-library";
5
- import { u as b } from "./feature-CLk0uPEH.js";
5
+ import { u as b } from "./feature-DM1fHf-j.js";
6
6
  function k() {
7
7
  return {
8
8
  setting: {