@feedmepos/mf-menu 0.32.70 → 0.32.71

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 (71) hide show
  1. package/dist/{App-D2qKBNOI.js → App-Bay6p3xd.js} +6 -6
  2. package/dist/{ApplyProduct.vue_vue_type_script_setup_true_lang-DpuE1Txi.js → ApplyProduct.vue_vue_type_script_setup_true_lang-Je_NoQ3y.js} +3 -3
  3. package/dist/{ApplyProductDialog.vue_vue_type_script_setup_true_lang-CuhfoI6u.js → ApplyProductDialog.vue_vue_type_script_setup_true_lang-DBjYkJhB.js} +3 -3
  4. package/dist/{Catalog-B8DQ8HuW.js → Catalog-DfWHNm4n.js} +6 -6
  5. package/dist/{Category-BlfQyXMP.js → Category-51BrJsdv.js} +4 -4
  6. package/dist/{Category-DXRKc5oR.js → Category-m45WrP7O.js} +4 -4
  7. package/dist/{CookingGuide-jNeTimU7.js → CookingGuide-Dk-ibGYd.js} +5 -5
  8. package/dist/{CustomAttributeChip.vue_vue_type_script_setup_true_lang-BMKqOTc3.js → CustomAttributeChip.vue_vue_type_script_setup_true_lang-CzpScELw.js} +1 -1
  9. package/dist/{Group-BmU0_HFA.js → Group-CZDoqPK7.js} +3 -3
  10. package/dist/{Group-BDS80Kj0.js → Group-NUWfR17j.js} +1 -1
  11. package/dist/{Group.vue_vue_type_script_setup_true_lang-hSxGRxop.js → Group.vue_vue_type_script_setup_true_lang-h8zygLBJ.js} +7 -7
  12. package/dist/{GroupMarkupPriceDialog.vue_vue_type_script_setup_true_lang-CUNcxRnJ.js → GroupMarkupPriceDialog.vue_vue_type_script_setup_true_lang-Dq5jMv3_.js} +5 -5
  13. package/dist/{ImportProductDialog.vue_vue_type_script_setup_true_lang-DjLnCfC5.js → ImportProductDialog.vue_vue_type_script_setup_true_lang-EsQKUSJa.js} +7 -7
  14. package/dist/{Ingredient-Czl2K5rQ.js → Ingredient-CcnUyiM5.js} +4 -4
  15. package/dist/{InventoryBinding.vue_vue_type_script_setup_true_lang-M8HxDzxj.js → InventoryBinding.vue_vue_type_script_setup_true_lang-BwxZEDVT.js} +2 -2
  16. package/dist/{LinkProductSideSheet-iwH-Ft7_.js → LinkProductSideSheet-ClMiajzX.js} +4 -4
  17. package/dist/{MenuSetting-D-PtnHh_.js → MenuSetting-Dw3lVHtp.js} +7 -7
  18. package/dist/{OrderPacing-DpajUDfR.js → OrderPacing-Dh8T7OKW.js} +5 -5
  19. package/dist/{PrintRoute-CWzUI3D1.js → PrintRoute-BrSaSZI3.js} +5 -5
  20. package/dist/{Product-C341g4w7.js → Product-CQ7AuhbY.js} +1 -1
  21. package/dist/{Product.vue_vue_type_script_setup_true_lang-BRLo39YE.js → Product.vue_vue_type_script_setup_true_lang-Bw6l2IEC.js} +14 -14
  22. package/dist/{ProductInternalTools-BUku68VS.js → ProductInternalTools-2rYX2GR0.js} +6 -6
  23. package/dist/{Products-Dco1XgQd.js → Products-CoL7S7-1.js} +64 -64
  24. package/dist/{Publish-sDveejeh.js → Publish-C_lOqrSX.js} +4 -4
  25. package/dist/{Recipe-MfXgmqtt.js → Recipe-Ce8qXnG5.js} +5 -5
  26. package/dist/{RestaurantAttributesSelector.vue_vue_type_script_setup_true_lang-vtJwWImA.js → RestaurantAttributesSelector.vue_vue_type_script_setup_true_lang-DMB9bFg9.js} +1 -1
  27. package/dist/{RuleView.vue_vue_type_script_setup_true_lang-ZnrzCXu3.js → RuleView.vue_vue_type_script_setup_true_lang-D9i9tMAj.js} +481 -481
  28. package/dist/{Scheduler-DKyhr6p8.js → Scheduler-B2ZtWIPp.js} +3 -3
  29. package/dist/{ServingSequence-nEoPok72.js → ServingSequence-BWZ1YpzI.js} +3 -3
  30. package/dist/{Setting-RWyx1jq2.js → Setting-CdxNVi7G.js} +5 -5
  31. package/dist/{Subcategory-B0smFoMD.js → Subcategory-Bn0O6i5t.js} +6 -6
  32. package/dist/{Takeaway-BpwBR54Y.js → Takeaway-luRkknPl.js} +1 -1
  33. package/dist/{Takeaway-BVMZewQ0.js → Takeaway-yE0GhL5I.js} +4 -4
  34. package/dist/{Takeaway.vue_vue_type_script_setup_true_lang-BTnFR11p.js → Takeaway.vue_vue_type_script_setup_true_lang-CnZTbF3e.js} +5 -5
  35. package/dist/{TranslationFieldSection.vue_vue_type_script_setup_true_lang-KNIxHJsf.js → TranslationFieldSection.vue_vue_type_script_setup_true_lang-B3N7_zfR.js} +1 -1
  36. package/dist/{TranslationSideSheet.vue_vue_type_script_setup_true_lang-Dznh3-H8.js → TranslationSideSheet.vue_vue_type_script_setup_true_lang-BLzzBcqV.js} +2 -2
  37. package/dist/{TreeEditorOpenner.vue_vue_type_script_setup_true_lang-k3m88FlR.js → TreeEditorOpenner.vue_vue_type_script_setup_true_lang-BvnoCeCw.js} +15 -15
  38. package/dist/{Unit-BzbHDW_L.js → Unit-JPFtrbuS.js} +2 -2
  39. package/dist/{Variant-BF_zXLDM.js → Variant-BGJ-aKF1.js} +3 -3
  40. package/dist/{_id_-BjGIzI2V.js → _id_-BUlkRwgU.js} +10 -10
  41. package/dist/{app-DDrm4hOt.js → app-2VeaJE9t.js} +37 -37
  42. package/dist/{app-qoGPYaSq.js → app-CMjz-bvL.js} +1 -1
  43. package/dist/app.js +1 -1
  44. package/dist/apps/mf-menu/src/components/feature/TreeEditor/composable/productImages.d.ts +29 -17
  45. package/dist/assets/{linked-status-CXL9skR7.js → linked-status-B9caUckb.js} +2 -2
  46. package/dist/assets/{menu-export-rYnoju7h.js → menu-export-DYfPYpgS.js} +3 -3
  47. package/dist/assets/{override-menu-D1btUpWP.js → override-menu-uNjUqcak.js} +2 -2
  48. package/dist/assets/{validate-menu-R6zi6RGb.js → validate-menu-BiXMOXpN.js} +2 -2
  49. package/dist/{catalog-ByfbV1WF.js → catalog--64fgdzd.js} +1 -1
  50. package/dist/{catalogSetting-qvKbsi8t.js → catalogSetting-CplTgRmk.js} +1 -1
  51. package/dist/{currency-C5kmu6Ku.js → currency-CjYkQ4FL.js} +1 -1
  52. package/dist/{dayjs.min-D3WVCWf8.js → dayjs.min-DCMtwvjf.js} +2 -2
  53. package/dist/{discardConfirm-rDbUqsKj.js → discardConfirm-DOc0ieeO.js} +1 -1
  54. package/dist/{index-B2Hnb8WK.js → index-BrtZ42qx.js} +6 -6
  55. package/dist/{index-COu9fsyr.js → index-CTA48kW2.js} +1 -1
  56. package/dist/{index-BoVuN9fk.js → index-Dw_Fw5ni.js} +5 -5
  57. package/dist/{index.vue_vue_type_script_setup_true_lang-Wm3L_CDm.js → index.vue_vue_type_script_setup_true_lang-BCZZq6zJ.js} +13621 -13616
  58. package/dist/{item-CcaqdD88.js → item-DL0lbXPC.js} +592 -586
  59. package/dist/{jszip.min-B-GfzNS3.js → jszip.min-CTn9qnAT.js} +384 -384
  60. package/dist/{linkProducts-DXSk9ntt.js → linkProducts-DNPyRjOC.js} +4 -4
  61. package/dist/{memberPricing-Bmv0qRtK.js → memberPricing-ByMD7Sun.js} +1 -1
  62. package/dist/{menu-BLbZDh7_.js → menu-C77otNXH.js} +1 -1
  63. package/dist/{menuV2-BSGYEEJI.js → menuV2-Bi_EMfOM.js} +44 -44
  64. package/dist/mf-menu.css +1 -1
  65. package/dist/{order_pacing-DLrwnijs.js → order_pacing-29v64nh0.js} +5 -5
  66. package/dist/{priceTier-Bw0-wJJ0.js → priceTier-BscL3YjX.js} +1 -1
  67. package/dist/{rules-Ciu45JMO.js → rules-BYL-otiB.js} +3 -3
  68. package/dist/{scheduler-DYZ2PnDh.js → scheduler-Cqvnr0u1.js} +5 -5
  69. package/dist/{toExcel-D6Rp5oOB.js → toExcel-421pbm-Z.js} +2 -2
  70. package/dist/{unit-BR60ZgDQ.js → unit-DDtyAbV0.js} +3 -3
  71. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { defineStore as r } from "pinia";
2
- import { J as a, K as s, L as l } from "./index.vue_vue_type_script_setup_true_lang-Wm3L_CDm.js";
2
+ import { J as a, K as s, L as l } from "./index.vue_vue_type_script_setup_true_lang-BCZZq6zJ.js";
3
3
  const u = {
4
4
  async read() {
5
5
  return a(await s().get("/public-setting"));
package/dist/app.js CHANGED
@@ -1,4 +1,4 @@
1
- import { F as e, i as r, j as o, o as t, r as i, u as p } from "./app-DDrm4hOt.js";
1
+ import { F as e, i as r, j as o, o as t, r as i, u as p } from "./app-2VeaJE9t.js";
2
2
  export {
3
3
  e as FmApp,
4
4
  r as i18nMessages,
@@ -47,20 +47,22 @@ export declare function validateImageFile(file: File): string | null;
47
47
  * The half of `validateImageFile` that is a real dead end.
48
48
  *
49
49
  * A file the browser cannot decode is refused outright, but being over
50
- * `MAX_IMAGE_BYTES` is not a reason to refuse a photo any more: the editor re-encodes it
51
- * under the limit (`canvasToFile`), which is the whole point of opening on upload. Call
52
- * sites that hand bytes straight to media-service Remy's output, a staged flush
53
- * still use the combined check, because nothing there can shrink a file.
50
+ * `MAX_IMAGE_BYTES` is not a reason to refuse a photo any more: every upload is re-encoded
51
+ * under the limit (`compressImageForUpload`), which is the whole point of opening on
52
+ * upload. The combined check is left for the base64 payload handed *to* Remy, which
53
+ * nothing shrinks on the way in.
54
54
  */
55
55
  export declare function validateImageType(file: File): string | null;
56
56
  /**
57
- * Longest edge the editor writes out.
57
+ * Longest edge an upload is allowed to keep.
58
58
  *
59
- * Generous media-service derives every ratio from this original, and 2400px still
60
- * covers a retina hero on the biggest POS screen but bounded, so a 48MP phone photo
61
- * cannot land as a 20 MB original that has to be re-encoded on every later edit.
59
+ * Every picked file is re-encoded to fit this box (`compressImageForUpload`), so it is
60
+ * the effective ceiling on what reaches media-service rather than just a cap the editor
61
+ * happens to respect. 2000px still covers a retina hero on the biggest POS screen, and
62
+ * it is what the pre-multi-image thumbnail flow wrote out, so nothing regresses against
63
+ * the images already in the wild.
62
64
  */
63
- export declare const MAX_IMAGE_EDGE = 2400;
65
+ export declare const MAX_IMAGE_EDGE = 2000;
64
66
  /**
65
67
  * Encodes an edited canvas as a file guaranteed to be uploadable.
66
68
  *
@@ -80,16 +82,26 @@ export declare function canvasToFile(canvas: HTMLCanvasElement, options: {
80
82
  maxBytes?: number;
81
83
  }): Promise<File>;
82
84
  /**
83
- * Hands back the file untouched when it already fits `MAX_IMAGE_BYTES`, and otherwise
84
- * re-encodes it under the limit exactly as the editor would — same edge cap, same
85
- * PNG-stays-PNG rule.
85
+ * Re-encodes a picked file to `MAX_IMAGE_EDGE` / `OUTPUT_QUALITY` before it is uploaded.
86
86
  *
87
- * This is for the paths that upload a picked file without opening the editor (the
88
- * "upload the rest as-is" batch): they get the same guarantee a confirmed edit has,
89
- * instead of handing media-service bytes it will refuse with a 413.
87
+ * Unconditional by design. The single-thumbnail flow this feature replaced compressed
88
+ * every image on the way out (4:3, 2000px, JPEG q0.75); the multi-image rewrite dropped
89
+ * that for a plain size check, which let a full-resolution phone photo reach
90
+ * media-service verbatim as long as it happened to sit under `MAX_IMAGE_BYTES`. So the
91
+ * trigger is the edge cap now, not the byte limit — an 8 MB 12MP original is compressed
92
+ * exactly like a 12 MB one.
93
+ *
94
+ * The one file handed back untouched is the one re-encoding would only make worse: canvas
95
+ * has no quality lever for PNG and re-encodes an already-optimised one bigger, and a JPEG
96
+ * already saved below `OUTPUT_QUALITY` grows too. When the source is inside the edge cap, already
97
+ * uploadable, in the very format the encoder would have written, and smaller than what
98
+ * came back, the original wins — "compressed" has to mean smaller.
99
+ */
100
+ export declare function compressImageForUpload(file: File, unreadableMessage?: string): Promise<File>;
101
+ /**
102
+ * Converts Remy's base64 result into a File. It is not compressed here — the caller runs
103
+ * it through `compressImageForUpload` like any other upload.
90
104
  */
91
- export declare function ensureUploadableImage(file: File, unreadableMessage?: string): Promise<File>;
92
- /** Converts Remy's base64 result into an uploadable file without re-encoding it. */
93
105
  export declare function dataUrlToFile(dataUrl: string, fileName?: string): Promise<File>;
94
106
  /** `confirm` needs the real pixel size, and only the browser has it before upload. */
95
107
  export declare function readImageDimensions(file: File, unreadableMessage?: string): Promise<{