@ketvietlab/ketsuite 0.1.22 → 0.1.25
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/cli.js +9 -3
- package/dist/cli.js.map +1 -1
- package/dist/demo/crm.d.ts +3 -0
- package/dist/demo/crm.d.ts.map +1 -0
- package/dist/demo/crm.js +418 -0
- package/dist/demo/crm.js.map +1 -0
- package/dist/demo/partner.d.ts +8 -0
- package/dist/demo/partner.d.ts.map +1 -0
- package/dist/demo/partner.js +179 -0
- package/dist/demo/partner.js.map +1 -0
- package/dist/demo/product.d.ts +25 -0
- package/dist/demo/product.d.ts.map +1 -0
- package/dist/demo/product.js +579 -0
- package/dist/demo/product.js.map +1 -0
- package/dist/demo/purchase.d.ts +4 -0
- package/dist/demo/purchase.d.ts.map +1 -0
- package/dist/demo/purchase.js +58 -0
- package/dist/demo/purchase.js.map +1 -0
- package/dist/demo/sale.d.ts +4 -0
- package/dist/demo/sale.d.ts.map +1 -0
- package/dist/demo/sale.js +52 -0
- package/dist/demo/sale.js.map +1 -0
- package/dist/demo/seed.d.ts +14 -0
- package/dist/demo/seed.d.ts.map +1 -0
- package/dist/demo/seed.js +88 -0
- package/dist/demo/seed.js.map +1 -0
- package/dist/demo/stock.d.ts +7 -0
- package/dist/demo/stock.d.ts.map +1 -0
- package/dist/demo/stock.js +26 -0
- package/dist/demo/stock.js.map +1 -0
- package/dist/demo/user.d.ts +4 -0
- package/dist/demo/user.d.ts.map +1 -0
- package/dist/demo/user.js +41 -0
- package/dist/demo/user.js.map +1 -0
- package/dist/demo/util.d.ts +7 -0
- package/dist/demo/util.d.ts.map +1 -0
- package/dist/demo/util.js +19 -0
- package/dist/demo/util.js.map +1 -0
- package/dist/modules/backend/design/client/backend-shell.d.mts +2 -2
- package/dist/modules/backend/design/client/backend-shell.d.mts.map +1 -1
- package/dist/modules/backend/design/client/backend-shell.mjs +1 -1
- package/dist/modules/backend/design/client/backend-shell.mjs.map +3 -3
- package/dist/modules/backend/design/forms.css +7 -0
- package/dist/modules/backend/screen.d.ts.map +1 -1
- package/dist/modules/backend/screen.js +11 -2
- package/dist/modules/backend/screen.js.map +1 -1
- package/dist/modules/crm/functions/access.d.ts +3 -0
- package/dist/modules/crm/functions/access.d.ts.map +1 -0
- package/dist/modules/crm/functions/access.js +89 -0
- package/dist/modules/crm/functions/access.js.map +1 -0
- package/dist/modules/crm/functions/activities.d.ts +3 -0
- package/dist/modules/crm/functions/activities.d.ts.map +1 -0
- package/dist/modules/crm/functions/activities.js +174 -0
- package/dist/modules/crm/functions/activities.js.map +1 -0
- package/dist/modules/crm/functions/cases.d.ts +3 -0
- package/dist/modules/crm/functions/cases.d.ts.map +1 -0
- package/dist/modules/crm/functions/cases.js +585 -0
- package/dist/modules/crm/functions/cases.js.map +1 -0
- package/dist/modules/crm/functions/configuration.d.ts +3 -0
- package/dist/modules/crm/functions/configuration.d.ts.map +1 -0
- package/dist/modules/crm/functions/configuration.js +331 -0
- package/dist/modules/crm/functions/configuration.js.map +1 -0
- package/dist/modules/crm/functions/gamification.d.ts +3 -0
- package/dist/modules/crm/functions/gamification.d.ts.map +1 -0
- package/dist/modules/crm/functions/gamification.js +58 -0
- package/dist/modules/crm/functions/gamification.js.map +1 -0
- package/dist/modules/crm/functions/index.d.ts +4 -0
- package/dist/modules/crm/functions/index.d.ts.map +1 -0
- package/dist/modules/crm/functions/index.js +33 -0
- package/dist/modules/crm/functions/index.js.map +1 -0
- package/dist/modules/crm/functions/modal-context.d.ts +3 -0
- package/dist/modules/crm/functions/modal-context.d.ts.map +1 -0
- package/dist/modules/crm/functions/modal-context.js +248 -0
- package/dist/modules/crm/functions/modal-context.js.map +1 -0
- package/dist/modules/crm/functions/previews.d.ts +3 -0
- package/dist/modules/crm/functions/previews.d.ts.map +1 -0
- package/dist/modules/crm/functions/previews.js +20 -0
- package/dist/modules/crm/functions/previews.js.map +1 -0
- package/dist/modules/crm/functions/shared.d.ts +31 -0
- package/dist/modules/crm/functions/shared.d.ts.map +1 -0
- package/dist/modules/crm/functions/shared.js +194 -0
- package/dist/modules/crm/functions/shared.js.map +1 -0
- package/dist/modules/crm/index.d.ts +1 -1
- package/dist/modules/crm/index.d.ts.map +1 -1
- package/dist/modules/crm/index.js +2 -2
- package/dist/modules/crm/index.js.map +1 -1
- package/dist/modules/crm/messages.d.ts +4 -1
- package/dist/modules/crm/messages.d.ts.map +1 -1
- package/dist/modules/crm/messages.js +6 -0
- package/dist/modules/crm/messages.js.map +1 -1
- package/dist/modules/crm/record-modal-labels.d.ts +9 -0
- package/dist/modules/crm/record-modal-labels.d.ts.map +1 -0
- package/dist/modules/crm/record-modal-labels.js +36 -0
- package/dist/modules/crm/record-modal-labels.js.map +1 -0
- package/dist/modules/crm/types.d.ts +5 -0
- package/dist/modules/crm/types.d.ts.map +1 -1
- package/dist/modules/crm/types.js +9 -0
- package/dist/modules/crm/types.js.map +1 -1
- package/dist/modules/crm_backend/client/crm-configuration-modal.d.mts +352 -0
- package/dist/modules/crm_backend/client/crm-configuration-modal.d.mts.map +1 -0
- package/dist/modules/crm_backend/client/crm-configuration-modal.mjs +2 -0
- package/dist/modules/crm_backend/client/crm-configuration-modal.mjs.map +7 -0
- package/dist/modules/crm_backend/index.d.ts.map +1 -1
- package/dist/modules/crm_backend/index.js +5 -1
- package/dist/modules/crm_backend/index.js.map +1 -1
- package/dist/modules/crm_backend/islands.d.ts +27 -0
- package/dist/modules/crm_backend/islands.d.ts.map +1 -1
- package/dist/modules/crm_backend/islands.js +22 -0
- package/dist/modules/crm_backend/islands.js.map +1 -1
- package/dist/modules/crm_backend/messages.d.ts +30 -0
- package/dist/modules/crm_backend/messages.d.ts.map +1 -1
- package/dist/modules/crm_backend/messages.js +30 -0
- package/dist/modules/crm_backend/messages.js.map +1 -1
- package/dist/modules/crm_backend/modal/configuration-modal-view.d.ts +55 -0
- package/dist/modules/crm_backend/modal/configuration-modal-view.d.ts.map +1 -0
- package/dist/modules/crm_backend/modal/configuration-modal-view.js +601 -0
- package/dist/modules/crm_backend/modal/configuration-modal-view.js.map +1 -0
- package/dist/modules/crm_backend/routes.d.ts.map +1 -1
- package/dist/modules/crm_backend/routes.js +69 -359
- package/dist/modules/crm_backend/routes.js.map +1 -1
- package/dist/modules/crm_backend/screens/configuration.d.ts +24 -32
- package/dist/modules/crm_backend/screens/configuration.d.ts.map +1 -1
- package/dist/modules/crm_backend/screens/configuration.js +183 -274
- package/dist/modules/crm_backend/screens/configuration.js.map +1 -1
- package/dist/modules/crm_backend/screens/index.d.ts +2 -2
- package/dist/modules/crm_backend/screens/index.d.ts.map +1 -1
- package/dist/modules/crm_backend/screens/index.js +1 -1
- package/dist/modules/crm_backend/screens/index.js.map +1 -1
- package/dist/modules/product/functions.d.ts +14 -1
- package/dist/modules/product/functions.d.ts.map +1 -1
- package/dist/modules/product/functions.js +36 -31
- package/dist/modules/product/functions.js.map +1 -1
- package/dist/modules/product/product-modal-context.d.ts +3 -0
- package/dist/modules/product/product-modal-context.d.ts.map +1 -0
- package/dist/modules/product/product-modal-context.js +173 -0
- package/dist/modules/product/product-modal-context.js.map +1 -0
- package/dist/modules/product/product-record-tabs.d.ts +14 -0
- package/dist/modules/product/product-record-tabs.d.ts.map +1 -0
- package/dist/modules/product/product-record-tabs.js +23 -0
- package/dist/modules/product/product-record-tabs.js.map +1 -0
- package/dist/modules/product_backend/client/product-modal.d.mts +144 -0
- package/dist/modules/product_backend/client/product-modal.d.mts.map +1 -0
- package/dist/modules/product_backend/client/product-modal.mjs +2 -0
- package/dist/modules/product_backend/client/product-modal.mjs.map +7 -0
- package/dist/modules/product_backend/index.d.ts.map +1 -1
- package/dist/modules/product_backend/index.js +25 -0
- package/dist/modules/product_backend/index.js.map +1 -1
- package/dist/modules/product_backend/islands.d.ts +1 -0
- package/dist/modules/product_backend/islands.d.ts.map +1 -1
- package/dist/modules/product_backend/islands.js +9 -0
- package/dist/modules/product_backend/islands.js.map +1 -1
- package/dist/modules/product_backend/modal/product-modal-view.d.ts +49 -0
- package/dist/modules/product_backend/modal/product-modal-view.d.ts.map +1 -0
- package/dist/modules/product_backend/modal/product-modal-view.js +609 -0
- package/dist/modules/product_backend/modal/product-modal-view.js.map +1 -0
- package/dist/modules/product_backend/routes.d.ts.map +1 -1
- package/dist/modules/product_backend/routes.js +44 -330
- package/dist/modules/product_backend/routes.js.map +1 -1
- package/dist/modules/product_backend/screens/detail.d.ts.map +1 -1
- package/dist/modules/product_backend/screens/detail.js +6 -108
- package/dist/modules/product_backend/screens/detail.js.map +1 -1
- package/dist/modules/product_backend/screens/index.d.ts +0 -1
- package/dist/modules/product_backend/screens/index.d.ts.map +1 -1
- package/dist/modules/product_backend/screens/index.js +0 -1
- package/dist/modules/product_backend/screens/index.js.map +1 -1
- package/dist/modules/product_backend/screens/list.d.ts +3 -1
- package/dist/modules/product_backend/screens/list.d.ts.map +1 -1
- package/dist/modules/product_backend/screens/list.js +6 -5
- package/dist/modules/product_backend/screens/list.js.map +1 -1
- package/dist/modules/user/authorization.d.ts.map +1 -1
- package/dist/modules/user/authorization.js +114 -0
- package/dist/modules/user/authorization.js.map +1 -1
- package/dist/modules/user/functions.d.ts.map +1 -1
- package/dist/modules/user/functions.js +2 -0
- package/dist/modules/user/functions.js.map +1 -1
- package/dist/modules/user/user-modal-context.d.ts +3 -0
- package/dist/modules/user/user-modal-context.d.ts.map +1 -0
- package/dist/modules/user/user-modal-context.js +151 -0
- package/dist/modules/user/user-modal-context.js.map +1 -0
- package/dist/modules/user_backend/client/user-modal.d.mts +72 -0
- package/dist/modules/user_backend/client/user-modal.d.mts.map +1 -0
- package/dist/modules/user_backend/client/user-modal.mjs +2 -0
- package/dist/modules/user_backend/client/user-modal.mjs.map +7 -0
- package/dist/modules/user_backend/index.d.ts.map +1 -1
- package/dist/modules/user_backend/index.js +9 -0
- package/dist/modules/user_backend/index.js.map +1 -1
- package/dist/modules/user_backend/islands.d.ts +15 -0
- package/dist/modules/user_backend/islands.d.ts.map +1 -0
- package/dist/modules/user_backend/islands.js +14 -0
- package/dist/modules/user_backend/islands.js.map +1 -0
- package/dist/modules/user_backend/messages.d.ts +30 -0
- package/dist/modules/user_backend/messages.d.ts.map +1 -1
- package/dist/modules/user_backend/messages.js +30 -0
- package/dist/modules/user_backend/messages.js.map +1 -1
- package/dist/modules/user_backend/modal/user-modal-view.d.ts +26 -0
- package/dist/modules/user_backend/modal/user-modal-view.d.ts.map +1 -0
- package/dist/modules/user_backend/modal/user-modal-view.js +320 -0
- package/dist/modules/user_backend/modal/user-modal-view.js.map +1 -0
- package/dist/modules/user_backend/routes.d.ts.map +1 -1
- package/dist/modules/user_backend/routes.js +15 -3
- package/dist/modules/user_backend/routes.js.map +1 -1
- package/dist/permission-catalogue.d.ts.map +1 -1
- package/dist/permission-catalogue.js +8 -0
- package/dist/permission-catalogue.js.map +1 -1
- package/dist/scaffold/index.js +1 -1
- package/dist/ui/client/record-modal-form.d.ts +67 -0
- package/dist/ui/client/record-modal-form.d.ts.map +1 -0
- package/dist/ui/client/record-modal-form.js +45 -0
- package/dist/ui/client/record-modal-form.js.map +1 -0
- package/dist/ui/client/record-modal.d.ts +103 -6
- package/dist/ui/client/record-modal.d.ts.map +1 -1
- package/dist/ui/client/record-modal.js +333 -65
- package/dist/ui/client/record-modal.js.map +1 -1
- package/dist/ui/index.d.ts +2 -1
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +2 -1
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/nav.d.ts +7 -0
- package/dist/ui/nav.d.ts.map +1 -1
- package/dist/ui/nav.js +1 -1
- package/dist/ui/nav.js.map +1 -1
- package/dist/ui/record-modal.d.ts +15 -0
- package/dist/ui/record-modal.d.ts.map +1 -1
- package/dist/ui/record-modal.js +12 -0
- package/dist/ui/record-modal.js.map +1 -1
- package/dist/ui/table.d.ts.map +1 -1
- package/dist/ui/table.js +1 -1
- package/dist/ui/table.js.map +1 -1
- package/package.json +4 -4
- package/dist/modules/crm/functions.d.ts +0 -10
- package/dist/modules/crm/functions.d.ts.map +0 -1
- package/dist/modules/crm/functions.js +0 -1394
- package/dist/modules/crm/functions.js.map +0 -1
- package/dist/modules/product_backend/screens/create.d.ts +0 -16
- package/dist/modules/product_backend/screens/create.d.ts.map +0 -1
- package/dist/modules/product_backend/screens/create.js +0 -86
- package/dist/modules/product_backend/screens/create.js.map +0 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { FieldOption, FieldProps } from '@ketvietlab/design-system';
|
|
2
|
+
import type { JSXChild, TemplateResult } from '@ketvietlab/ketjs-view';
|
|
3
|
+
/**
|
|
4
|
+
* The form a record modal's runtime submits. A `command` becomes the hidden
|
|
5
|
+
* `__command` field; without one, the submitting button names it.
|
|
6
|
+
*/
|
|
7
|
+
export declare const RecordModalForm: (props: {
|
|
8
|
+
kind: string;
|
|
9
|
+
fields: readonly FieldProps[];
|
|
10
|
+
actions?: readonly JSXChild[];
|
|
11
|
+
command?: string | null;
|
|
12
|
+
/** Lets a button outside this form submit it via the HTML `form` attribute. */
|
|
13
|
+
id?: string;
|
|
14
|
+
}) => TemplateResult;
|
|
15
|
+
/**
|
|
16
|
+
* The control of a select whose choice changes what the rest of the form offers.
|
|
17
|
+
* Use it as a design-system field's `control`; `data-record-state` makes the
|
|
18
|
+
* runtime re-render the view with the new choice.
|
|
19
|
+
*/
|
|
20
|
+
export declare const recordStateSelectControl: (props: {
|
|
21
|
+
id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
state: string;
|
|
24
|
+
value: string;
|
|
25
|
+
options: readonly FieldOption[];
|
|
26
|
+
required?: boolean;
|
|
27
|
+
disabled?: boolean;
|
|
28
|
+
invalid?: boolean;
|
|
29
|
+
}) => TemplateResult;
|
|
30
|
+
/**
|
|
31
|
+
* Opens a dialog of the open record. `id` reaches the dialog as `params.id`;
|
|
32
|
+
* without it the dialog opens for a new child (for example a new team member).
|
|
33
|
+
*/
|
|
34
|
+
export declare const RecordDialogTrigger: (props: {
|
|
35
|
+
dialog: string;
|
|
36
|
+
id?: string | null;
|
|
37
|
+
children: JSXChild;
|
|
38
|
+
}) => TemplateResult;
|
|
39
|
+
/**
|
|
40
|
+
* A bare form for an action that names no field of its own — generate, remove.
|
|
41
|
+
* `data-layout="actions"` opts the form out of the record-form grid (built for a
|
|
42
|
+
* field/label pair), which would otherwise stretch a lone submit button to fill it.
|
|
43
|
+
*/
|
|
44
|
+
export declare const RecordActionForm: (props: {
|
|
45
|
+
kind: string;
|
|
46
|
+
command: string;
|
|
47
|
+
hidden?: Record<string, string>;
|
|
48
|
+
children: JSXChild;
|
|
49
|
+
}) => TemplateResult;
|
|
50
|
+
/**
|
|
51
|
+
* A form with no field or button of its own, submitted only through the HTML
|
|
52
|
+
* `form` attribute on buttons placed elsewhere — a menu whose every item names
|
|
53
|
+
* its own command on itself, so one empty form serves the whole menu.
|
|
54
|
+
*/
|
|
55
|
+
export declare const RecordCommandForm: (props: {
|
|
56
|
+
kind: string;
|
|
57
|
+
id: string;
|
|
58
|
+
}) => TemplateResult;
|
|
59
|
+
/**
|
|
60
|
+
* Marks its child as a labeled close control the runtime's own click handler
|
|
61
|
+
* recognizes from anywhere in the record's body — distinct from
|
|
62
|
+
* `data-ui="modal-close"`, the icon-only corner control's own styling hook.
|
|
63
|
+
*/
|
|
64
|
+
export declare const RecordCloseTrigger: (props: {
|
|
65
|
+
children: JSXChild;
|
|
66
|
+
}) => TemplateResult;
|
|
67
|
+
//# sourceMappingURL=record-modal-form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-modal-form.d.ts","sourceRoot":"","sources":["../../../../../../packages/ketsuite/src/ui/client/record-modal-form.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAGtE;;;GAGG;AACH,eAAO,MAAM,eAAe,UAAW;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,SAAS,UAAU,EAAE,CAAA;IAC7B,OAAO,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,+EAA+E;IAC/E,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ,KAAG,cAaH,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,UAAW;IAC9C,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,KAAG,cAgBH,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,UAAW;IACzC,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;CACnB,KAAG,cAIH,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,UAAW;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,QAAQ,EAAE,QAAQ,CAAA;CACnB,KAAG,cAQH,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,UAAW;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,KAAG,cAEvE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,UAAW;IAAE,QAAQ,EAAE,QAAQ,CAAA;CAAE,KAAG,cAElE,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@ketvietlab/ketjs-view/jsx-runtime";
|
|
2
|
+
// Record-modal form markup, owned by the kit.
|
|
3
|
+
//
|
|
4
|
+
// A record modal's views are module code; markup belongs to `ketsuite/ui`. These
|
|
5
|
+
// are the pieces a view needs beyond the design system's fields and buttons: the
|
|
6
|
+
// form the runtime submits (optionally naming its command), a select whose choice
|
|
7
|
+
// feeds view state before anything is submitted, and a trigger that opens a dialog
|
|
8
|
+
// of the same record.
|
|
9
|
+
import { ActionGroup, Field } from '@ketvietlab/design-system';
|
|
10
|
+
import { RECORD_COMMAND_FIELD } from './record-modal.js';
|
|
11
|
+
/**
|
|
12
|
+
* The form a record modal's runtime submits. A `command` becomes the hidden
|
|
13
|
+
* `__command` field; without one, the submitting button names it.
|
|
14
|
+
*/
|
|
15
|
+
export const RecordModalForm = (props) => (_jsxs("form", { "data-ui": "record-form", method: "post", action: "", "data-record-kind": props.kind, id: props.id, children: [props.command ? (_jsx("input", { type: "hidden", name: RECORD_COMMAND_FIELD, value: props.command, autocomplete: "off" })) : (''), _jsx("div", { "data-ui": "form-grid", children: props.fields.map((item) => Field(item)) }), props.actions?.length ? _jsx("div", { "data-ui": "form-actions", children: ActionGroup({ actions: props.actions }) }) : ''] }));
|
|
16
|
+
/**
|
|
17
|
+
* The control of a select whose choice changes what the rest of the form offers.
|
|
18
|
+
* Use it as a design-system field's `control`; `data-record-state` makes the
|
|
19
|
+
* runtime re-render the view with the new choice.
|
|
20
|
+
*/
|
|
21
|
+
export const recordStateSelectControl = (props) => (_jsx("select", { "data-ui": "field-control", "data-record-state": props.state, id: props.id, name: props.name, required: props.required === true, disabled: props.disabled === true, "aria-invalid": props.invalid ? 'true' : null, children: props.options.map((option) => (_jsx("option", { value: option.value, selected: option.value === props.value, children: option.label }))) }));
|
|
22
|
+
/**
|
|
23
|
+
* Opens a dialog of the open record. `id` reaches the dialog as `params.id`;
|
|
24
|
+
* without it the dialog opens for a new child (for example a new team member).
|
|
25
|
+
*/
|
|
26
|
+
export const RecordDialogTrigger = (props) => (_jsx("span", { "data-record-dialog": props.dialog, "data-record-param-id": props.id ?? null, children: props.children }));
|
|
27
|
+
/**
|
|
28
|
+
* A bare form for an action that names no field of its own — generate, remove.
|
|
29
|
+
* `data-layout="actions"` opts the form out of the record-form grid (built for a
|
|
30
|
+
* field/label pair), which would otherwise stretch a lone submit button to fill it.
|
|
31
|
+
*/
|
|
32
|
+
export const RecordActionForm = (props) => (_jsxs("form", { "data-ui": "record-form", "data-layout": "actions", method: "post", action: "", "data-record-kind": props.kind, children: [_jsx("input", { type: "hidden", name: RECORD_COMMAND_FIELD, value: props.command, autocomplete: "off" }), Object.entries(props.hidden ?? {}).map(([name, value]) => (_jsx("input", { type: "hidden", name: name, value: value, autocomplete: "off" }))), props.children] }));
|
|
33
|
+
/**
|
|
34
|
+
* A form with no field or button of its own, submitted only through the HTML
|
|
35
|
+
* `form` attribute on buttons placed elsewhere — a menu whose every item names
|
|
36
|
+
* its own command on itself, so one empty form serves the whole menu.
|
|
37
|
+
*/
|
|
38
|
+
export const RecordCommandForm = (props) => (_jsx("form", { id: props.id, "data-record-kind": props.kind, method: "post", action: "", hidden: true }));
|
|
39
|
+
/**
|
|
40
|
+
* Marks its child as a labeled close control the runtime's own click handler
|
|
41
|
+
* recognizes from anywhere in the record's body — distinct from
|
|
42
|
+
* `data-ui="modal-close"`, the icon-only corner control's own styling hook.
|
|
43
|
+
*/
|
|
44
|
+
export const RecordCloseTrigger = (props) => (_jsx("span", { "data-record-close": "true", children: props.children }));
|
|
45
|
+
//# sourceMappingURL=record-modal-form.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-modal-form.js","sourceRoot":"","sources":["../../../../../../../packages/ketsuite/src/ui/client/record-modal-form.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IslandController, JSXChild, TemplateResult } from '@ketvietlab/ketjs-view';
|
|
2
|
-
import { RECORD_PARAM, RECORD_TAB_PARAM, readRecordModalTarget, recordModalClosedHref, recordModalHref } from '../record-modal.tsx';
|
|
2
|
+
import { RECORD_NEW_ID, RECORD_PARAM, RECORD_TAB_PARAM, readRecordModalTarget, recordModalClosedHref, recordModalCreateHref, recordModalHref } from '../record-modal.tsx';
|
|
3
3
|
export type RecordIssue = {
|
|
4
4
|
field: string | null;
|
|
5
5
|
code: string;
|
|
@@ -35,6 +35,8 @@ export type RecordContextEnvelope<Data> = {
|
|
|
35
35
|
export type RecordModalContext<Data> = {
|
|
36
36
|
kind: string;
|
|
37
37
|
id: string;
|
|
38
|
+
/** The modal was opened by a create action (`record=<kind>:new`); there is no record yet. */
|
|
39
|
+
creating: boolean;
|
|
38
40
|
tab: string;
|
|
39
41
|
data: Data;
|
|
40
42
|
/** Translate a key the context shipped, interpolating `{name}` params. */
|
|
@@ -43,7 +45,13 @@ export type RecordModalContext<Data> = {
|
|
|
43
45
|
fieldError: (name: string) => string | null;
|
|
44
46
|
/** What was typed into a field before a refused submit, or the fallback. */
|
|
45
47
|
draft: (name: string, fallback?: string) => string;
|
|
46
|
-
/**
|
|
48
|
+
/** Whether a checkbox/radio value was selected before the view re-rendered. */
|
|
49
|
+
draftChecked: (name: string, value?: string, fallback?: boolean) => boolean;
|
|
50
|
+
/**
|
|
51
|
+
* A submit has been in flight long enough to be worth saying so. A command the
|
|
52
|
+
* server answers at once never sets it, so a button bound to it does not flash
|
|
53
|
+
* its spinner; the runtime stops a second submit either way.
|
|
54
|
+
*/
|
|
47
55
|
busy: boolean;
|
|
48
56
|
dialog: {
|
|
49
57
|
name: string;
|
|
@@ -58,26 +66,51 @@ export type RecordUploads = Record<string, {
|
|
|
58
66
|
id: string;
|
|
59
67
|
name: string | null;
|
|
60
68
|
}>;
|
|
69
|
+
/** One extra call of a multi-step command — see `RecordModalCommand.also`. */
|
|
70
|
+
export type RecordModalCommandStep<Data> = {
|
|
71
|
+
fn: string;
|
|
72
|
+
input: (form: FormData, context: RecordModalContext<Data>, uploads: RecordUploads) => Record<string, unknown>;
|
|
73
|
+
/** Skip this step — a module not installed, a permission the viewer lacks. */
|
|
74
|
+
when?: (context: RecordModalContext<Data>) => boolean;
|
|
75
|
+
};
|
|
61
76
|
export type RecordModalCommand<Data> = {
|
|
62
77
|
fn: string;
|
|
63
78
|
/** Map the submitted form to the function's input. */
|
|
64
79
|
input: (form: FormData, context: RecordModalContext<Data>, uploads: RecordUploads) => Record<string, unknown>;
|
|
80
|
+
/**
|
|
81
|
+
* Further calls made right after `fn`/`input` succeeds, in order, as part of
|
|
82
|
+
* the same user-facing action — one busy state, one success notice, one set
|
|
83
|
+
* of field refusals — stopping at the first one that fails. For an edit that
|
|
84
|
+
* spans functions in different modules that cannot call one another (a
|
|
85
|
+
* single `product.saveTemplate` cannot also configure stock tracking or
|
|
86
|
+
* tax), this is what lets one "Save" button still read as one save.
|
|
87
|
+
*/
|
|
88
|
+
also?: readonly RecordModalCommandStep<Data>[];
|
|
65
89
|
/**
|
|
66
90
|
* File fields stored through `/files` before the function runs, each mapped to
|
|
67
91
|
* the attachment's metadata (`resModel`, `resId`, `resField`, `public`). The
|
|
68
92
|
* stored attachment ids reach `input` as its third argument.
|
|
69
93
|
*/
|
|
70
94
|
upload?: Record<string, (form: FormData, context: RecordModalContext<Data>) => Record<string, string>>;
|
|
95
|
+
/** A destructive command asks first; declining leaves the record untouched. */
|
|
96
|
+
confirm?: (context: RecordModalContext<Data>) => string | null;
|
|
71
97
|
/**
|
|
72
98
|
* What happens after success. Defaults to `close`. `reload` reads the record
|
|
73
99
|
* again behind a loading state and closes a dialog; `refresh` reads it again in
|
|
74
100
|
* place, keeping the tab, the open dialog and any islands mounted in them.
|
|
101
|
+
* `open` is for a create command: the modal switches to the record it created
|
|
102
|
+
* (the id from `created`, else the function value's `id`) on the tab named by
|
|
103
|
+
* `openTab`, replacing the `:new` history entry.
|
|
75
104
|
*/
|
|
76
|
-
after?: 'close' | 'reload' | 'refresh' | 'stay' | {
|
|
105
|
+
after?: 'close' | 'reload' | 'refresh' | 'stay' | 'open' | {
|
|
77
106
|
tab: string;
|
|
78
107
|
} | {
|
|
79
108
|
dialog: string | null;
|
|
80
109
|
};
|
|
110
|
+
/** The id of the record a create command made, read from the function's value. */
|
|
111
|
+
created?: (value: unknown) => string | null;
|
|
112
|
+
/** Tab to open on the created record when `after` is `open`. */
|
|
113
|
+
openTab?: string;
|
|
81
114
|
};
|
|
82
115
|
export type RecordModalTab<Data> = {
|
|
83
116
|
id: string;
|
|
@@ -93,15 +126,47 @@ export type RecordModalDialog<Data> = {
|
|
|
93
126
|
export type RecordModalDefinition<Data> = {
|
|
94
127
|
kind: string;
|
|
95
128
|
size?: 'default' | 'large';
|
|
96
|
-
/**
|
|
129
|
+
/**
|
|
130
|
+
* Caps a tabbed record's fixed height (a CSS length or `min()`/`calc()`
|
|
131
|
+
* expression) below the viewport-filling default, for a record whose own
|
|
132
|
+
* content is shorter than that — see `ModalSheet.fixedHeight`. Ignored for a
|
|
133
|
+
* record with one tab or none, since those never turn on `height: 'fixed'`.
|
|
134
|
+
*/
|
|
135
|
+
fixedHeight?: string;
|
|
136
|
+
/**
|
|
137
|
+
* A permission-checked read returning `{ data, messages }`. For a create action
|
|
138
|
+
* the default input is `{}` (no id): the read returns the empty record's defaults,
|
|
139
|
+
* the choices its form needs and the viewer's permissions.
|
|
140
|
+
*/
|
|
97
141
|
context: {
|
|
98
142
|
fn: string;
|
|
99
|
-
input?: (id: string) => Record<string, unknown>;
|
|
143
|
+
input?: (id: string, creating: boolean) => Record<string, unknown>;
|
|
100
144
|
};
|
|
101
145
|
title: (context: RecordModalContext<Data>) => string;
|
|
102
146
|
description?: (context: RecordModalContext<Data>) => string | null;
|
|
147
|
+
/**
|
|
148
|
+
* What state this record is in, beside the modal's title: a badge, not a
|
|
149
|
+
* strip. It stays put while the body scrolls, and a reader looking at the
|
|
150
|
+
* title learns the state without reading down into the form.
|
|
151
|
+
*/
|
|
152
|
+
status?: (context: RecordModalContext<Data>) => JSXChild;
|
|
153
|
+
/** A strip above the body — a customer, a summary — for what a badge cannot hold. */
|
|
103
154
|
header?: (context: RecordModalContext<Data>) => JSXChild;
|
|
155
|
+
/**
|
|
156
|
+
* A footer strip below the body, outside the scrolling area and the same on
|
|
157
|
+
* every tab — the natural home for a record's primary actions (save, close,
|
|
158
|
+
* more) so they stay reachable without hunting through the tab that happens
|
|
159
|
+
* to hold the save button. Return `undefined` (not `''`) to render no footer
|
|
160
|
+
* at all, e.g. while creating, when the create form owns its own submit.
|
|
161
|
+
*/
|
|
162
|
+
actions?: (context: RecordModalContext<Data>) => JSXChild | undefined;
|
|
104
163
|
tabs?: readonly RecordModalTab<Data>[];
|
|
164
|
+
/**
|
|
165
|
+
* Tabs other modules add to this record, read from its context: they follow the
|
|
166
|
+
* declared tabs, in composition order, and render through the same TabbedView.
|
|
167
|
+
* A module that owns the record cannot know them when it is built.
|
|
168
|
+
*/
|
|
169
|
+
extensionTabs?: (context: RecordModalContext<Data>) => readonly RecordModalTab<Data>[];
|
|
105
170
|
/** The body of a record without tabs. */
|
|
106
171
|
body?: (context: RecordModalContext<Data>) => JSXChild;
|
|
107
172
|
dialogs?: Record<string, RecordModalDialog<Data>>;
|
|
@@ -112,7 +177,15 @@ export type RecordModalDefinition<Data> = {
|
|
|
112
177
|
* built-in English defaults, because `messages` arrive with the context.
|
|
113
178
|
*/
|
|
114
179
|
labels?: Record<string, string> | (() => Record<string, string>);
|
|
180
|
+
/**
|
|
181
|
+
* Keep read contexts in memory so reopening a record shows at once and is read
|
|
182
|
+
* again quietly (stale-while-revalidate). On by default; set `false` for a kind
|
|
183
|
+
* whose context must never be shown before a fresh read.
|
|
184
|
+
*/
|
|
185
|
+
cache?: boolean;
|
|
115
186
|
};
|
|
187
|
+
/** How many record contexts one island keeps for instant reopening. */
|
|
188
|
+
export declare const RECORD_MODAL_CACHE_SIZE = 30;
|
|
116
189
|
/**
|
|
117
190
|
* English defaults for every label the runtime itself shows. A module passes its
|
|
118
191
|
* own language through `labels`; these only guarantee a reader never sees a key.
|
|
@@ -134,6 +207,30 @@ export declare const RECORD_COMMAND_FIELD = "__command";
|
|
|
134
207
|
export declare const RECORD_DIALOG_ATTRIBUTE = "data-record-dialog";
|
|
135
208
|
/** Whether anything in a layer was typed into since it rendered. Same rule as route modals. */
|
|
136
209
|
export declare const recordLayerHasDraft: (layer: HTMLElement) => boolean;
|
|
210
|
+
/**
|
|
211
|
+
* How long a command may run before its button says so. Below this the answer
|
|
212
|
+
* arrives while the reader is still lifting their finger, and a spinner shown
|
|
213
|
+
* and withdrawn inside that window is noise; above it, silence would read as a
|
|
214
|
+
* click that did nothing.
|
|
215
|
+
*/
|
|
216
|
+
export declare const BUSY_AFTER_MS = 400;
|
|
217
|
+
/**
|
|
218
|
+
* A flag that turns on late and off at once. Work that finishes inside the
|
|
219
|
+
* window never raises it, so a progress indicator bound to it appears only when
|
|
220
|
+
* there is progress to report, and never flashes on its way back out.
|
|
221
|
+
*/
|
|
222
|
+
export declare const delayedFlag: (show: (value: boolean) => void, after?: number) => {
|
|
223
|
+
set: (running: boolean) => void;
|
|
224
|
+
stop: () => void;
|
|
225
|
+
};
|
|
226
|
+
/**
|
|
227
|
+
* Where a click is asking to go: the link it landed on, or the row it landed
|
|
228
|
+
* in. A table row carries its destination on the row itself (`rowLink: false`),
|
|
229
|
+
* so the whole row is one target rather than a link around the first cell. The
|
|
230
|
+
* shell would navigate such a row through the navigation layer, which fetches
|
|
231
|
+
* the collection again and leaves the modal unopened, so this reads it first.
|
|
232
|
+
*/
|
|
233
|
+
export declare const openerHref: (element: Element | null) => string | null;
|
|
137
234
|
/**
|
|
138
235
|
* Create the island controller for one record kind.
|
|
139
236
|
*
|
|
@@ -146,5 +243,5 @@ export declare const createRecordModal: <Data>(definition: RecordModalDefinition
|
|
|
146
243
|
* appears and disposes it when the host leaves; props must be JSON.
|
|
147
244
|
*/
|
|
148
245
|
export declare const recordIsland: (name: string, props: Record<string, unknown>) => TemplateResult;
|
|
149
|
-
export { RECORD_PARAM, RECORD_TAB_PARAM, recordModalHref, recordModalClosedHref, readRecordModalTarget };
|
|
246
|
+
export { RECORD_NEW_ID, RECORD_PARAM, RECORD_TAB_PARAM, recordModalHref, recordModalCreateHref, recordModalClosedHref, readRecordModalTarget, };
|
|
150
247
|
//# sourceMappingURL=record-modal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-modal.d.ts","sourceRoot":"","sources":["../../../../../../packages/ketsuite/src/ui/client/record-modal.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAExF,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EAErB,eAAe,EAChB,MAAM,qBAAqB,CAAA;AAI5B,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,gBAAgB,CAAC,KAAK,GAAG,OAAO,IACxC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC1B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAqBhF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAAU,KAAK,GAAG,OAAO,QAChD,MAAM,SACL,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YACrB;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,KACzD,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CA4BjC,CAAA;AAID,mEAAmE;AACnE,MAAM,MAAM,qBAAqB,CAAC,IAAI,IAAI;IACxC,IAAI,EAAE,IAAI,CAAA;IACV,4FAA4F;IAC5F,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,IAAI,IAAI;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,IAAI,CAAA;IACV,0EAA0E;IAC1E,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAA;IAC5D,gEAAgE;IAChE,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;IAC3C,4EAA4E;IAC5E,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAClD,
|
|
1
|
+
{"version":3,"file":"record-modal.d.ts","sourceRoot":"","sources":["../../../../../../packages/ketsuite/src/ui/client/record-modal.tsx"],"names":[],"mappings":"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"}
|