@fayz-ai/plugin-menu 0.9.3 → 0.10.0
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/MenuPage-2LLWRJGN.js +1785 -0
- package/dist/MenuPage-2LLWRJGN.js.map +1 -0
- package/dist/chunk-C6W53TML.js +65 -0
- package/dist/chunk-C6W53TML.js.map +1 -0
- package/dist/components/DraftSectionCard.d.ts +18 -0
- package/dist/components/DraftSectionCard.d.ts.map +1 -0
- package/dist/components/ItemRailPage.d.ts +36 -0
- package/dist/components/ItemRailPage.d.ts.map +1 -0
- package/dist/components/MenuPreview.d.ts +17 -0
- package/dist/components/MenuPreview.d.ts.map +1 -0
- package/dist/components/MenuRailPage.d.ts +17 -0
- package/dist/components/MenuRailPage.d.ts.map +1 -0
- package/dist/components/ScheduleEditor.d.ts +8 -0
- package/dist/components/ScheduleEditor.d.ts.map +1 -0
- package/dist/components/SectionCard.d.ts +32 -0
- package/dist/components/SectionCard.d.ts.map +1 -0
- package/dist/data/legacy-adapter.d.ts +4 -0
- package/dist/data/legacy-adapter.d.ts.map +1 -0
- package/dist/data/mock.d.ts +2 -2
- package/dist/data/mock.d.ts.map +1 -1
- package/dist/data/registries.d.ts.map +1 -1
- package/dist/data/supabase.d.ts +7 -0
- package/dist/data/supabase.d.ts.map +1 -0
- package/dist/data/tables.d.ts +17 -0
- package/dist/data/tables.d.ts.map +1 -0
- package/dist/data/types.d.ts +36 -2
- package/dist/data/types.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2150 -356
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-surface.d.ts +46 -0
- package/dist/lib/agent-surface.d.ts.map +1 -0
- package/dist/lib/availability.d.ts +16 -0
- package/dist/lib/availability.d.ts.map +1 -0
- package/dist/lib/extract-parse.d.ts +16 -0
- package/dist/lib/extract-parse.d.ts.map +1 -0
- package/dist/lib/extract-transport.d.ts +10 -0
- package/dist/lib/extract-transport.d.ts.map +1 -0
- package/dist/lib/images.d.ts +7 -0
- package/dist/lib/images.d.ts.map +1 -0
- package/dist/locales/en.d.ts.map +1 -1
- package/dist/locales/pt-BR.d.ts.map +1 -1
- package/dist/migrations/index.d.ts +8 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/store.d.ts +46 -10
- package/dist/store.d.ts.map +1 -1
- package/dist/types.d.ts +151 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/views/MenuManagerView.d.ts.map +1 -1
- package/package.json +15 -9
- package/dist/MenuPage-ZNKKQJKD.js +0 -523
- package/dist/MenuPage-ZNKKQJKD.js.map +0 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { MenuItem, MenuItemStatus, MenuSection } from '../types';
|
|
3
|
+
export interface ItemFormValues {
|
|
4
|
+
name: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
price: number;
|
|
7
|
+
cost?: number;
|
|
8
|
+
deliveryPrice?: number;
|
|
9
|
+
prepTimeMinutes?: number;
|
|
10
|
+
imageUrl?: string;
|
|
11
|
+
status: MenuItemStatus;
|
|
12
|
+
availableForPos: boolean;
|
|
13
|
+
availableForDelivery: boolean;
|
|
14
|
+
isFeatured: boolean;
|
|
15
|
+
sectionId: string;
|
|
16
|
+
/** Price for THIS menu only. Undefined = use the item's price. */
|
|
17
|
+
priceOverride?: number;
|
|
18
|
+
}
|
|
19
|
+
export declare function ItemRailPage({ open, item, sections, sectionId, currency, deliveryPricing, multiMenu, priceOverride, onClose, onSubmit, onUploadImage, }: {
|
|
20
|
+
open: boolean;
|
|
21
|
+
item?: MenuItem;
|
|
22
|
+
sections: MenuSection[];
|
|
23
|
+
sectionId: string;
|
|
24
|
+
currency: {
|
|
25
|
+
code: string;
|
|
26
|
+
locale: string;
|
|
27
|
+
symbol: string;
|
|
28
|
+
};
|
|
29
|
+
deliveryPricing: boolean;
|
|
30
|
+
multiMenu: boolean;
|
|
31
|
+
priceOverride?: number;
|
|
32
|
+
onClose: () => void;
|
|
33
|
+
onSubmit: (values: ItemFormValues) => Promise<void>;
|
|
34
|
+
onUploadImage?: (file: File) => Promise<string | null>;
|
|
35
|
+
}): React.JSX.Element;
|
|
36
|
+
//# sourceMappingURL=ItemRailPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ItemRailPage.d.ts","sourceRoot":"","sources":["../../src/components/ItemRailPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAOlD,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAWrE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,cAAc,CAAA;IACtB,eAAe,EAAE,OAAO,CAAA;IACxB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EACrE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,GAChD,EAAE;IACD,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1D,eAAe,EAAE,OAAO,CAAA;IACxB,SAAS,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CACvD,qBA4NA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { Menu, MenuItem, MenuPlacement, MenuSection } from '../types';
|
|
3
|
+
export declare function MenuPreview({ open, menu, sections, placements, itemsById, currency, locale, onClose }: {
|
|
4
|
+
open: boolean;
|
|
5
|
+
menu?: Menu;
|
|
6
|
+
sections: MenuSection[];
|
|
7
|
+
placements: MenuPlacement[];
|
|
8
|
+
itemsById: Map<string, MenuItem>;
|
|
9
|
+
currency: {
|
|
10
|
+
code: string;
|
|
11
|
+
locale: string;
|
|
12
|
+
symbol: string;
|
|
13
|
+
};
|
|
14
|
+
locale: string;
|
|
15
|
+
onClose: () => void;
|
|
16
|
+
}): React.JSX.Element;
|
|
17
|
+
//# sourceMappingURL=MenuPreview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuPreview.d.ts","sourceRoot":"","sources":["../../src/components/MenuPreview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAW1E,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IACtG,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAChC,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1D,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,qBAyDA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { Menu, MenuAvailability, MenuChannel } from '../types';
|
|
3
|
+
export declare function MenuRailPage({ open, menu, locale, onClose, onSubmit }: {
|
|
4
|
+
open: boolean;
|
|
5
|
+
/** Undefined = creating. */
|
|
6
|
+
menu?: Menu;
|
|
7
|
+
locale: string;
|
|
8
|
+
onClose: () => void;
|
|
9
|
+
onSubmit: (values: {
|
|
10
|
+
name: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
channels: MenuChannel[];
|
|
13
|
+
availability: MenuAvailability;
|
|
14
|
+
isActive: boolean;
|
|
15
|
+
}) => Promise<void>;
|
|
16
|
+
}): React.JSX.Element;
|
|
17
|
+
//# sourceMappingURL=MenuRailPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuRailPage.d.ts","sourceRoot":"","sources":["../../src/components/MenuRailPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAKlD,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAanE,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;IACtE,IAAI,EAAE,OAAO,CAAA;IACb,4BAA4B;IAC5B,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,EAAE,CAAC,MAAM,EAAE;QACjB,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,QAAQ,EAAE,WAAW,EAAE,CAAA;QACvB,YAAY,EAAE,gBAAgB,CAAA;QAC9B,QAAQ,EAAE,OAAO,CAAA;KAClB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpB,qBA2GA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { MenuAvailability } from '../types';
|
|
3
|
+
export declare function ScheduleEditor({ value, onChange, locale }: {
|
|
4
|
+
value: MenuAvailability;
|
|
5
|
+
onChange: (next: MenuAvailability) => void;
|
|
6
|
+
locale: string;
|
|
7
|
+
}): React.JSX.Element;
|
|
8
|
+
//# sourceMappingURL=ScheduleEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScheduleEditor.d.ts","sourceRoot":"","sources":["../../src/components/ScheduleEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAiBhD,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;IAC1D,KAAK,EAAE,gBAAgB,CAAA;IACvB,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC1C,MAAM,EAAE,MAAM,CAAA;CACf,qBAkFA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { MenuItem, MenuItemStatus, MenuPlacement, MenuSection } from '../types';
|
|
3
|
+
export interface SectionHandlers {
|
|
4
|
+
onRenameSection: (sectionId: string, name: string) => void;
|
|
5
|
+
onEditSection: (section: MenuSection) => void;
|
|
6
|
+
onDeleteSection: (section: MenuSection) => void;
|
|
7
|
+
onAddItem: (sectionId: string) => void;
|
|
8
|
+
onEditItem: (item: MenuItem, placement: MenuPlacement) => void;
|
|
9
|
+
onDuplicateItem: (item: MenuItem, sectionId: string) => void;
|
|
10
|
+
onRemoveFromMenu: (placement: MenuPlacement) => void;
|
|
11
|
+
onDeleteItem: (item: MenuItem) => void;
|
|
12
|
+
onToggleItem: (itemId: string, field: 'availableForPos' | 'availableForDelivery' | 'isFeatured', value: boolean) => void;
|
|
13
|
+
onSetItemStatus: (itemId: string, status: MenuItemStatus) => void;
|
|
14
|
+
onSetPlacementPrice: (placementId: string, price: number | undefined) => void;
|
|
15
|
+
}
|
|
16
|
+
export declare function SectionCard({ section, placements, itemsById, currency, locale, deliveryPricing, multiMenu, pendingIds, handlers, }: {
|
|
17
|
+
section: MenuSection;
|
|
18
|
+
placements: MenuPlacement[];
|
|
19
|
+
itemsById: Map<string, MenuItem>;
|
|
20
|
+
currency: {
|
|
21
|
+
code: string;
|
|
22
|
+
locale: string;
|
|
23
|
+
symbol: string;
|
|
24
|
+
};
|
|
25
|
+
locale: string;
|
|
26
|
+
deliveryPricing: boolean;
|
|
27
|
+
multiMenu: boolean;
|
|
28
|
+
/** Ids of rows already on screen whose write has not landed. */
|
|
29
|
+
pendingIds?: string[];
|
|
30
|
+
handlers: SectionHandlers;
|
|
31
|
+
}): React.JSX.Element;
|
|
32
|
+
//# sourceMappingURL=SectionCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SectionCard.d.ts","sourceRoot":"","sources":["../../src/components/SectionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAYvC,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAUpF,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1D,aAAa,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IAC7C,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IAC/C,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,KAAK,IAAI,CAAA;IAC9D,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5D,gBAAgB,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,CAAA;IACpD,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;IACtC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,sBAAsB,GAAG,YAAY,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACxH,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;IACjE,mBAAmB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;CAC9E;AAkLD,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,GACnG,EAAE;IACD,OAAO,EAAE,WAAW,CAAA;IACpB,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAChC,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1D,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,OAAO,CAAA;IACxB,SAAS,EAAE,OAAO,CAAA;IAClB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,QAAQ,EAAE,eAAe,CAAA;CAC1B,qBAkIA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-adapter.d.ts","sourceRoot":"","sources":["../../src/data/legacy-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAarE,eAAO,MAAM,cAAc,gBAAgB,CAAA;AAU3C,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,oBAAoB,CA+InF"}
|
package/dist/data/mock.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function createMockMenuProvider():
|
|
1
|
+
import type { FullMenuDataProvider } from './types';
|
|
2
|
+
export declare function createMockMenuProvider(): FullMenuDataProvider;
|
|
3
3
|
//# sourceMappingURL=mock.d.ts.map
|
package/dist/data/mock.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../src/data/mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../src/data/mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AA0BnD,wBAAgB,sBAAsB,IAAI,oBAAoB,CAyX7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registries.d.ts","sourceRoot":"","sources":["../../src/data/registries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"registries.d.ts","sourceRoot":"","sources":["../../src/data/registries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AA+CtD,eAAO,MAAM,cAAc,EAAE,iBAAiB,EAqC7C,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FullMenuDataProvider } from './types';
|
|
2
|
+
export interface SupabaseMenuProviderOptions {
|
|
3
|
+
/** Currency code stamped on items — display only. */
|
|
4
|
+
currencyCode?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function createSupabaseMenuProvider(options?: SupabaseMenuProviderOptions): FullMenuDataProvider;
|
|
7
|
+
//# sourceMappingURL=supabase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/data/supabase.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AA+GnD,MAAM,WAAW,2BAA2B;IAC1C,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,0BAA0B,CAAC,OAAO,CAAC,EAAE,2BAA2B,GAAG,oBAAoB,CAuetG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const T: {
|
|
2
|
+
readonly menus: "plg_menu_menus";
|
|
3
|
+
readonly sections: "plg_menu_sections";
|
|
4
|
+
readonly placements: "plg_menu_placements";
|
|
5
|
+
readonly items: "plg_menu_items";
|
|
6
|
+
readonly allergens: "plg_menu_allergens";
|
|
7
|
+
readonly dietaryTags: "plg_menu_dietary_tags";
|
|
8
|
+
readonly modifierGroups: "plg_menu_modifier_groups";
|
|
9
|
+
readonly modifiers: "plg_menu_modifiers";
|
|
10
|
+
readonly itemModifierGroups: "plg_menu_item_modifier_groups";
|
|
11
|
+
/** Spine tables this plugin reads/writes through. */
|
|
12
|
+
readonly products: "products";
|
|
13
|
+
readonly categories: "categories";
|
|
14
|
+
/** Bucket for item, section and import photos. */
|
|
15
|
+
readonly mediaBucket: "menu-images";
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=tables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../src/data/tables.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,CAAC;;;;;;;;;;IAUZ,qDAAqD;;;IAGrD,kDAAkD;;CAE1C,CAAA"}
|
package/dist/data/types.d.ts
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
|
-
import type { MenuCategory, MenuItem, ModifierGroup, CreateMenuItemInput, UpdateMenuItemInput, CreateMenuCategoryInput, MenuItemQuery, PaginatedResult, MenuSummary } from '../types';
|
|
1
|
+
import type { Menu, MenuSection, MenuPlacement, MenuCategory, MenuItem, ModifierGroup, CreateMenuInput, UpdateMenuInput, CreateSectionInput, UpdateSectionInput, PlaceItemInput, CreateMenuItemInput, UpdateMenuItemInput, CreateMenuCategoryInput, MenuItemQuery, PaginatedResult, MenuSummary } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* What a host must implement to back the menu screen.
|
|
4
|
+
*
|
|
5
|
+
* The MENU half (menus / sections / placements) is optional on purpose. A host
|
|
6
|
+
* that predates it — an app-local provider written while this plugin was
|
|
7
|
+
* incubating — keeps working: `wrapLegacyProvider` presents its flat categories
|
|
8
|
+
* as one menu, so the UI has a single shape to render and the app is not forced
|
|
9
|
+
* to migrate on the same day the plugin ships.
|
|
10
|
+
*/
|
|
2
11
|
export interface MenuDataProvider {
|
|
12
|
+
getMenus?(): Promise<Menu[]>;
|
|
13
|
+
createMenu?(input: CreateMenuInput): Promise<Menu>;
|
|
14
|
+
updateMenu?(id: string, data: UpdateMenuInput): Promise<Menu>;
|
|
15
|
+
deleteMenu?(id: string): Promise<void>;
|
|
16
|
+
/** Copy a menu with its sections and placements — how a weekend menu is born. */
|
|
17
|
+
duplicateMenu?(id: string, name: string): Promise<Menu>;
|
|
18
|
+
reorderMenus?(ids: string[]): Promise<void>;
|
|
19
|
+
getSections?(menuId: string): Promise<MenuSection[]>;
|
|
20
|
+
createSection?(input: CreateSectionInput): Promise<MenuSection>;
|
|
21
|
+
updateSection?(id: string, data: UpdateSectionInput): Promise<MenuSection>;
|
|
22
|
+
deleteSection?(id: string): Promise<void>;
|
|
23
|
+
reorderSections?(menuId: string, ids: string[]): Promise<void>;
|
|
24
|
+
getPlacements?(menuId: string): Promise<MenuPlacement[]>;
|
|
25
|
+
placeItem?(input: PlaceItemInput): Promise<MenuPlacement>;
|
|
26
|
+
updatePlacement?(id: string, data: Partial<PlaceItemInput>): Promise<MenuPlacement>;
|
|
27
|
+
removePlacement?(id: string): Promise<void>;
|
|
28
|
+
/** Ids in their new order, within one section. */
|
|
29
|
+
reorderPlacements?(sectionId: string, placementIds: string[]): Promise<void>;
|
|
30
|
+
/** Cross-section drag: same item, another section, at `toIndex`. */
|
|
31
|
+
movePlacement?(placementId: string, toSectionId: string, toIndex: number): Promise<void>;
|
|
32
|
+
uploadImage?(file: File, kind: 'item' | 'section' | 'menu' | 'import'): Promise<string>;
|
|
3
33
|
getCategories(): Promise<MenuCategory[]>;
|
|
4
34
|
getCategoryById(id: string): Promise<MenuCategory | null>;
|
|
5
35
|
createCategory(input: CreateMenuCategoryInput): Promise<MenuCategory>;
|
|
@@ -11,7 +41,7 @@ export interface MenuDataProvider {
|
|
|
11
41
|
createMenuItem(input: CreateMenuItemInput): Promise<MenuItem>;
|
|
12
42
|
updateMenuItem(id: string, data: UpdateMenuItemInput): Promise<MenuItem>;
|
|
13
43
|
deleteMenuItem(id: string): Promise<void>;
|
|
14
|
-
toggleAvailability(id: string, field: 'status' | 'availableForPos' | 'availableForDelivery', value: any): Promise<MenuItem>;
|
|
44
|
+
toggleAvailability(id: string, field: 'status' | 'availableForPos' | 'availableForDelivery' | 'isFeatured', value: any): Promise<MenuItem>;
|
|
15
45
|
reorderItems(categoryId: string, ids: string[]): Promise<void>;
|
|
16
46
|
getModifierGroups(): Promise<ModifierGroup[]>;
|
|
17
47
|
createModifierGroup(input: Partial<ModifierGroup>): Promise<ModifierGroup>;
|
|
@@ -19,4 +49,8 @@ export interface MenuDataProvider {
|
|
|
19
49
|
deleteModifierGroup(id: string): Promise<void>;
|
|
20
50
|
getSummary(): Promise<MenuSummary>;
|
|
21
51
|
}
|
|
52
|
+
/** A provider with the menu half guaranteed — what the store and UI talk to. */
|
|
53
|
+
export type FullMenuDataProvider = MenuDataProvider & Required<Pick<MenuDataProvider, 'getMenus' | 'createMenu' | 'updateMenu' | 'deleteMenu' | 'duplicateMenu' | 'reorderMenus' | 'getSections' | 'createSection' | 'updateSection' | 'deleteSection' | 'reorderSections' | 'getPlacements' | 'placeItem' | 'updatePlacement' | 'removePlacement' | 'reorderPlacements' | 'movePlacement'>>;
|
|
54
|
+
/** Does this host know about menus, or only about a flat list of categories? */
|
|
55
|
+
export declare function supportsMenus(provider: MenuDataProvider): boolean;
|
|
22
56
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/data/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAAE,QAAQ,EAAE,aAAa,EACrC,mBAAmB,EAAE,mBAAmB,EAAE,uBAAuB,EACjE,aAAa,EAAE,eAAe,EAAE,WAAW,EAC5C,MAAM,UAAU,CAAA;AAEjB,MAAM,WAAW,gBAAgB;IAE/B,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IACxC,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IACzD,cAAc,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IACrE,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9E,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAG/C,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAA;IACtE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IACrD,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC7D,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IACxE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,iBAAiB,GAAG,sBAAsB,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAiBpD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAChB;AAmBD,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,eAAe,CAAC,EAAE,OAAO,CAAA;KAC1B,CAAA;IACD,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAClC,QAAQ,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAA;IAC9C,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,YAAY,CAAC,EAAE,gBAAgB,CAAA;IAC/B,cAAc,CAAC,EAAE,YAAY,CAAA;CAC9B;AAqBD,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAqI5E;AAED,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAC9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAGnD,mBAAmB,SAAS,CAAA"}
|