@antelopejs/interface-dms 0.8.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +111 -0
- package/dist/base/form-schema.d.ts +11 -4
- package/dist/base/form-schema.js +22 -0
- package/dist/base/form-schema.js.map +1 -1
- package/dist/base/form-types.d.ts +26 -0
- package/dist/base/form-types.js.map +1 -1
- package/dist/base/internal/form-schema.js +3 -0
- package/dist/base/internal/form-schema.js.map +1 -1
- package/dist/base/internal/layouts.d.ts +13 -5
- package/dist/base/layouts.d.ts +16 -17
- package/dist/base/layouts.js.map +1 -1
- package/dist/base/table-view/internal/column-conditions.d.ts +15 -0
- package/dist/base/table-view/internal/column-conditions.js +94 -0
- package/dist/base/table-view/internal/column-conditions.js.map +1 -0
- package/dist/base/table-view/internal/validation.d.ts +7 -0
- package/dist/base/table-view/internal/validation.js +22 -0
- package/dist/base/table-view/internal/validation.js.map +1 -1
- package/dist/base/table-view/meta.d.ts +17 -1
- package/dist/base/table-view/meta.js +11 -1
- package/dist/base/table-view/meta.js.map +1 -1
- package/dist/base/table-view/options.d.ts +13 -11
- package/dist/base/table-view/routes.js +3 -2
- package/dist/base/table-view/routes.js.map +1 -1
- package/dist/component.d.ts +6 -0
- package/dist/component.js.map +1 -1
- package/dist/hooks.d.ts +13 -5
- package/dist/hooks.js +7 -3
- package/dist/hooks.js.map +1 -1
- package/dist/invite-extensions/internal/form-slot.js +1 -1
- package/dist/invite-extensions/internal/form-slot.js.map +1 -1
- package/dist/page/internal/layout-filter.d.ts +10 -5
- package/dist/page/internal/layout-filter.js +26 -15
- package/dist/page/internal/layout-filter.js.map +1 -1
- package/dist/page/internal/page-record.d.ts +34 -0
- package/dist/page/internal/page-record.js +87 -0
- package/dist/page/internal/page-record.js.map +1 -0
- package/dist/page/metadata.js +7 -2
- package/dist/page/metadata.js.map +1 -1
- package/dist/page/types.d.ts +14 -1
- package/dist/tenant-provisioning.d.ts +15 -0
- package/dist/tenant-provisioning.js +27 -0
- package/dist/tenant-provisioning.js.map +1 -0
- package/docs/1.core/7.hooks.md +12 -2
- package/docs/3.base/3.forms.md +7 -2
- package/docs/3.base/4.tables.md +14 -1
- package/docs/3.base/6.layout.md +14 -5
- package/docs/3.base/8.data-types.md +2 -2
- package/docs/tsconfig.json +5 -1
- package/package.json +7 -13
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,120 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v0.9.1
|
|
4
|
+
|
|
5
|
+
[compare changes](https://github.com/AntelopeJS/dms/compare/interface-v0.9.0...v0.9.1)
|
|
6
|
+
|
|
7
|
+
### 🚀 Enhancements
|
|
8
|
+
|
|
9
|
+
- **menu:** Support nested dynamic menu entries ([#446](https://github.com/AntelopeJS/dms/pull/446))
|
|
10
|
+
|
|
11
|
+
### 🩹 Fixes
|
|
12
|
+
|
|
13
|
+
- **release:** Build the interface before the release lint ([#454](https://github.com/AntelopeJS/dms/pull/454))
|
|
14
|
+
|
|
15
|
+
### 📖 Documentation
|
|
16
|
+
|
|
17
|
+
- **changelog:** Upgrade notes of dms 0.11.0 ([#440](https://github.com/AntelopeJS/dms/pull/440))
|
|
18
|
+
|
|
19
|
+
### 📦 Build
|
|
20
|
+
|
|
21
|
+
- Adopt the AntelopeJS guardrail pack ([#444](https://github.com/AntelopeJS/dms/pull/444))
|
|
22
|
+
|
|
23
|
+
### 🏡 Chore
|
|
24
|
+
|
|
25
|
+
- **release:** @antelopejs/dms v0.11.0 ([65235375](https://github.com/AntelopeJS/dms/commit/65235375))
|
|
26
|
+
- Configure Renovate with the shared preset ([#445](https://github.com/AntelopeJS/dms/pull/445))
|
|
27
|
+
|
|
28
|
+
### 🤖 CI
|
|
29
|
+
|
|
30
|
+
- Run docs-playground on main pushes only ([#443](https://github.com/AntelopeJS/dms/pull/443))
|
|
31
|
+
|
|
32
|
+
### ❤️ Contributors
|
|
33
|
+
|
|
34
|
+
- Antony Rizzitelli ([@Upd4ting](http://github.com/Upd4ting))
|
|
35
|
+
|
|
36
|
+
## v0.9.0
|
|
37
|
+
|
|
38
|
+
[compare changes](https://github.com/AntelopeJS/dms/compare/interface-v0.8.0...v0.9.0)
|
|
39
|
+
|
|
40
|
+
### Upgrade notes
|
|
41
|
+
|
|
42
|
+
- **Breaking:** `DefaultLayoutOptions.record` is a `PageRecordLoader` instead of `{ fetchUrl }`, and `PageRecordSource` is removed ([#426](https://github.com/AntelopeJS/dms/pull/426)). `record: { fetchUrl: "/api/sites/get?id={{params.id}}" }` becomes `record: ({ params }) => …` reading the row, in `PageLayoutRequest`'s context.
|
|
43
|
+
- **Breaking:** the default tenant is provisioned through `TENANT_BEING_PROVISIONED` ([#420](https://github.com/AntelopeJS/dms/pull/420)). `TenantProvisioningHookPayload.userId` is now `string | undefined`, and an emitter calling `ExecuteHooks(Hook.TENANT_BEING_PROVISIONED, …)` directly no longer gets the schema instance registered: use `ProvisionTenant`.
|
|
44
|
+
- **Behavior change:** in generated forms, the fallback language of a `@Localized` field is required ([#427](https://github.com/AntelopeJS/dms/pull/427)). `FormField.fallbackLocale` carries it, and the column's server validator refuses a localized value that fills another language but not that one.
|
|
45
|
+
- Table view columns take `visibleWhen` and `disabledWhen` conditions, carried to `FormField` ([#431](https://github.com/AntelopeJS/dms/pull/431)). The `new` and `edit` data routes enforce them: a hidden field is neither required nor written, an edit that hides a `visibleWhen` field clears its stored value, and a `disabledWhen` field keeps its stored value.
|
|
46
|
+
- Relations answer "Not found" for unanswered ids; the cascader reads by `?ids=`; lists need the `Foreign` join ([#421](https://github.com/AntelopeJS/dms/pull/421)). The dev manifest lists the origins it rewrites (`originRewrites`, [#434](https://github.com/AntelopeJS/dms/pull/434)).
|
|
47
|
+
- Requires `@antelopejs/interface-data-api` `>=0.4.0` (structured `400 { code, fields }`), `@antelopejs/interface-database-decorators` `>=0.1.10` and `@antelopejs/interface-database` `>=0.1.11`. Modules implementing interface-dms move to `>=0.9.0 <0.10.0`; `@antelopejs/dms` 0.11 implements it.
|
|
48
|
+
|
|
49
|
+
### 🚀 Enhancements
|
|
50
|
+
|
|
51
|
+
- **frontend:** List the origins the dev manifest rewrites ([#434](https://github.com/AntelopeJS/dms/pull/434))
|
|
52
|
+
- **store:** ⚠️ Changing modules from the store is reserved to development ([#418](https://github.com/AntelopeJS/dms/pull/418))
|
|
53
|
+
- **relation:** "Not found" for unanswered ids, cascader read by ?ids=, lists need the Foreign join ([#421](https://github.com/AntelopeJS/dms/pull/421))
|
|
54
|
+
- **tenants:** Provision the default tenant through TENANT_BEING_PROVISIONED ([#420](https://github.com/AntelopeJS/dms/pull/420))
|
|
55
|
+
- **page:** Read the page's record with its layout, in PageLayoutRequest's context ([#426](https://github.com/AntelopeJS/dms/pull/426))
|
|
56
|
+
- **page:** Leave a detail page whose record was deleted; 404 shown as not found ([#432](https://github.com/AntelopeJS/dms/pull/432))
|
|
57
|
+
- **dms-layout:** ⚠️ Remove the GitHub star button from the footer ([#428](https://github.com/AntelopeJS/dms/pull/428))
|
|
58
|
+
- **forms:** Require the fallback language of a localized field ([#427](https://github.com/AntelopeJS/dms/pull/427))
|
|
59
|
+
- **table-view:** VisibleWhen and disabledWhen column conditions ([#431](https://github.com/AntelopeJS/dms/pull/431))
|
|
60
|
+
- **errors:** Read the data API's { code, fields } field errors ([#433](https://github.com/AntelopeJS/dms/pull/433))
|
|
61
|
+
|
|
62
|
+
### 🔥 Performance
|
|
63
|
+
|
|
64
|
+
- **dms-ui:** Load each code snippet's grammar alone, without the editor ([#403](https://github.com/AntelopeJS/dms/pull/403))
|
|
65
|
+
|
|
66
|
+
### 🩹 Fixes
|
|
67
|
+
|
|
68
|
+
- **export:** Quote the CSV header line ([#419](https://github.com/AntelopeJS/dms/pull/419))
|
|
69
|
+
- **format:** Draw the narrow no-break space in Geist, and keep the locale's ([#422](https://github.com/AntelopeJS/dms/pull/422))
|
|
70
|
+
- **playground:** Hydration and invite-extension warnings of the playground pages ([#429](https://github.com/AntelopeJS/dms/pull/429))
|
|
71
|
+
- **tabs:** Take the pill tabs' corners from the theme radius ([#359](https://github.com/AntelopeJS/dms/pull/359))
|
|
72
|
+
- **modules:** Wait for the listing's background read on a return to the page ([#436](https://github.com/AntelopeJS/dms/pull/436))
|
|
73
|
+
|
|
74
|
+
### 💅 Refactors
|
|
75
|
+
|
|
76
|
+
- **i18n:** Translate outside setup through getAppTranslation only ([#423](https://github.com/AntelopeJS/dms/pull/423))
|
|
77
|
+
- **hydration:** Read the runtime's isDmsHydrating, drop isHydratingComponent ([#424](https://github.com/AntelopeJS/dms/pull/424))
|
|
78
|
+
|
|
79
|
+
### 📖 Documentation
|
|
80
|
+
|
|
81
|
+
- **changelog:** Upgrade notes of dms 0.10.0 ([#417](https://github.com/AntelopeJS/dms/pull/417))
|
|
82
|
+
- **deployment:** Require affinity on the realtime routes across instances ([#430](https://github.com/AntelopeJS/dms/pull/430))
|
|
83
|
+
|
|
84
|
+
### 📦 Build
|
|
85
|
+
|
|
86
|
+
- **deps:** Dms-frontend 0.9, interface-data-api 0.4, decorators 0.1.10 ([#437](https://github.com/AntelopeJS/dms/pull/437))
|
|
87
|
+
|
|
88
|
+
### 🏡 Chore
|
|
89
|
+
|
|
90
|
+
- **release:** @antelopejs/dms v0.10.0 ([6fa3d532](https://github.com/AntelopeJS/dms/commit/6fa3d532))
|
|
91
|
+
|
|
92
|
+
### ✅ Tests
|
|
93
|
+
|
|
94
|
+
- Run the backend tests without Ethereal ([#435](https://github.com/AntelopeJS/dms/pull/435))
|
|
95
|
+
- **hydration:** Give the live tests isDmsHydrating ([#438](https://github.com/AntelopeJS/dms/pull/438))
|
|
96
|
+
|
|
97
|
+
#### ⚠️ Breaking Changes
|
|
98
|
+
|
|
99
|
+
- **store:** ⚠️ Changing modules from the store is reserved to development ([#418](https://github.com/AntelopeJS/dms/pull/418))
|
|
100
|
+
- **dms-layout:** ⚠️ Remove the GitHub star button from the footer ([#428](https://github.com/AntelopeJS/dms/pull/428))
|
|
101
|
+
|
|
102
|
+
### ❤️ Contributors
|
|
103
|
+
|
|
104
|
+
- Antony Rizzitelli <rizzitelli.antony@pm.me>
|
|
105
|
+
- Glastis
|
|
106
|
+
- Alessandro Aloisio ([@alessaloisio](http://github.com/alessaloisio))
|
|
107
|
+
|
|
3
108
|
## v0.8.0
|
|
4
109
|
|
|
5
110
|
[compare changes](https://github.com/AntelopeJS/dms/compare/interface-v0.7.4...v0.8.0)
|
|
6
111
|
|
|
112
|
+
### Upgrade notes
|
|
113
|
+
|
|
114
|
+
- `KpiCard`: `showPreviousValue` defaults to `true`, so a card whose data carries `previousValue` prints it beside the change; set `false` to keep a card compact ([#352](https://github.com/AntelopeJS/dms/pull/352)).
|
|
115
|
+
- A `RelationType` / `CascaderRelationType` with `multiple: true` filters with `include` / `exclude` instead of `is` / `is_not`: a saved view or a link filtering it with `is:` lists nothing until saved again or rewritten as `include:` ([#363](https://github.com/AntelopeJS/dms/pull/363)).
|
|
116
|
+
- See [Migrate from 0.7 to 0.8](https://github.com/AntelopeJS/dms/blob/main/packages/dms/docs/02.building/16.migration-0-7-to-0-8.md) for the removed compatibility paths.
|
|
117
|
+
|
|
7
118
|
### 🚀 Enhancements
|
|
8
119
|
|
|
9
120
|
- **config:** Refuse a production start on public secrets or without the dashboard origin ([#401](https://github.com/AntelopeJS/dms/pull/401))
|
|
@@ -5,13 +5,20 @@ import type { FormContainerPageTexts } from "./table-view/options";
|
|
|
5
5
|
import type { AxeOrientation, EnumOption } from "./types";
|
|
6
6
|
import { FormBuilder, FormField, FormFieldOrGroup, FormFieldOrGroupSerialized, FormFunctions, FormProps, FormPropsSerialized, type SetFieldValueParams } from "./form-types";
|
|
7
7
|
export * from "./form-block-schema";
|
|
8
|
+
/** Options of {@link adaptFieldValidationSchema}. */
|
|
9
|
+
export interface FieldValidationOptions {
|
|
10
|
+
localized?: boolean;
|
|
11
|
+
required?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* The language a localized field falls back to: a value holding any
|
|
14
|
+
* language must hold this one, reported on `[fallbackLocale]`.
|
|
15
|
+
*/
|
|
16
|
+
fallbackLocale?: string;
|
|
17
|
+
}
|
|
8
18
|
/**
|
|
9
19
|
* Adapts a Zod schema to handle localization and optional/required state
|
|
10
20
|
*/
|
|
11
|
-
export declare function adaptFieldValidationSchema(baseSchema: z.ZodTypeAny, options:
|
|
12
|
-
localized?: boolean;
|
|
13
|
-
required?: boolean;
|
|
14
|
-
}): z.ZodTypeAny;
|
|
21
|
+
export declare function adaptFieldValidationSchema(baseSchema: z.ZodTypeAny, options: FieldValidationOptions): z.ZodTypeAny;
|
|
15
22
|
/** Whether a field is a box to tick: required, only `true` passes. */
|
|
16
23
|
export declare function isAcceptanceField(field: FormField): boolean;
|
|
17
24
|
export declare function buildFormSchema(fields: FormFieldOrGroup[]): z.ZodObject<Record<string, z.ZodTypeAny>>;
|
package/dist/base/form-schema.js
CHANGED
|
@@ -33,6 +33,24 @@ const form_block_schema_1 = require("./internal/form-block-schema");
|
|
|
33
33
|
const form_types_1 = require("./form-types");
|
|
34
34
|
const form_schema_1 = require("./internal/form-schema");
|
|
35
35
|
__exportStar(require("./form-block-schema"), exports);
|
|
36
|
+
const REQUIRED_MESSAGE = "$dms.field_errors.required";
|
|
37
|
+
function isFilledText(value) {
|
|
38
|
+
return typeof value === "string" ? value.trim() !== "" : value != null;
|
|
39
|
+
}
|
|
40
|
+
/** A localized value with some language filled must fill `fallbackLocale`. */
|
|
41
|
+
function withFallbackLocale(schema, fallbackLocale) {
|
|
42
|
+
return schema.superRefine((value, context) => {
|
|
43
|
+
const languages = value;
|
|
44
|
+
const isAnyFilled = Object.values(languages).some(isFilledText);
|
|
45
|
+
if (!isAnyFilled || isFilledText(languages[fallbackLocale]))
|
|
46
|
+
return;
|
|
47
|
+
context.addIssue({
|
|
48
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
49
|
+
message: REQUIRED_MESSAGE,
|
|
50
|
+
path: [fallbackLocale],
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
}
|
|
36
54
|
/**
|
|
37
55
|
* Adapts a Zod schema to handle localization and optional/required state
|
|
38
56
|
*/
|
|
@@ -40,6 +58,9 @@ function adaptFieldValidationSchema(baseSchema, options) {
|
|
|
40
58
|
let schema = baseSchema;
|
|
41
59
|
if (options.localized) {
|
|
42
60
|
schema = zod_1.z.record(zod_1.z.string(), schema);
|
|
61
|
+
if (options.fallbackLocale) {
|
|
62
|
+
schema = withFallbackLocale(schema, options.fallbackLocale);
|
|
63
|
+
}
|
|
43
64
|
}
|
|
44
65
|
if (!options.required) {
|
|
45
66
|
schema = schema.nullable().optional();
|
|
@@ -70,6 +91,7 @@ function addFieldToSchema(shape, field) {
|
|
|
70
91
|
shape[field.id] = adaptFieldValidationSchema(baseSchema, {
|
|
71
92
|
localized: field.localized,
|
|
72
93
|
required: field.required,
|
|
94
|
+
fallbackLocale: field.fallbackLocale,
|
|
73
95
|
});
|
|
74
96
|
}
|
|
75
97
|
function buildFormSchema(fields) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-schema.js","sourceRoot":"","sources":["../../src/base/form-schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form-schema.js","sourceRoot":"","sources":["../../src/base/form-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,6 +61,15 @@ export interface FormFieldReadonly {
|
|
|
61
61
|
badge?: FormFieldBadge;
|
|
62
62
|
link?: FormFieldLink;
|
|
63
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Holds while another field of the same form holds one of the values `in`
|
|
66
|
+
* lists (a select's or status's value, a boolean; `null` for an empty
|
|
67
|
+
* field), compared as is: `{ field: "stage", in: ["lost"] }`.
|
|
68
|
+
*/
|
|
69
|
+
export interface FieldCondition {
|
|
70
|
+
field: string;
|
|
71
|
+
in: readonly unknown[];
|
|
72
|
+
}
|
|
64
73
|
export interface FormField {
|
|
65
74
|
id: string;
|
|
66
75
|
label?: string;
|
|
@@ -93,6 +102,23 @@ export interface FormField {
|
|
|
93
102
|
*/
|
|
94
103
|
offersDefault?: boolean;
|
|
95
104
|
localized?: boolean;
|
|
105
|
+
/**
|
|
106
|
+
* The language a localized field falls back to (its `@Localized`
|
|
107
|
+
* `fallbackLocale`): a value in any language requires one in this one.
|
|
108
|
+
*/
|
|
109
|
+
fallbackLocale?: string;
|
|
110
|
+
/**
|
|
111
|
+
* Shown only while the condition holds, from the moment the form opens:
|
|
112
|
+
* hidden, the field is neither required nor sent. A table view's data
|
|
113
|
+
* routes hold to it as well (see `ColumnOptions.visibleWhen`).
|
|
114
|
+
*/
|
|
115
|
+
visibleWhen?: FieldCondition;
|
|
116
|
+
/**
|
|
117
|
+
* Shown read-only while the condition holds, from the moment the form
|
|
118
|
+
* opens: its value is not sent. A table view's data routes hold to it as
|
|
119
|
+
* well (see `ColumnOptions.disabledWhen`).
|
|
120
|
+
*/
|
|
121
|
+
disabledWhen?: FieldCondition;
|
|
96
122
|
}
|
|
97
123
|
export interface FormFieldSerialized extends Omit<FormField, "type" | "inputComponent"> {
|
|
98
124
|
component: ComponentInfoSerialized;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-types.js","sourceRoot":"","sources":["../../src/base/form-types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"form-types.js","sourceRoot":"","sources":["../../src/base/form-types.ts"],"names":[],"mappings":";;;AAsKA,oCAEC;AAED,wDAIC;AApKD,IAAiB,UAAU,CAa1B;AAbD,WAAiB,UAAU;IACZ,iBAAM,GAAG,0BAA0B,CAAC;IACpC,yBAAc,GAAG,iCAAiC,CAAC;IACnD,uBAAY,GAAG,+BAA+B,CAAC;IAC5D;;;;;;OAMG;IACU,uBAAY,GAAG,+BAA+B,CAAC;IAC/C,gBAAK,GAAG,yBAAyB,CAAC;AACjD,CAAC,EAbgB,UAAU,0BAAV,UAAU,QAa1B;AAED,IAAiB,aAAa,CAU7B;AAVD,WAAiB,aAAa;IACf,gCAAkB,GAAG,oCAAoC,CAAC;IAC1D,8BAAgB,GAAG,kCAAkC,CAAC;IACtD,gCAAkB,GAAG,oCAAoC,CAAC;IACvE;;;;OAIG;IACU,6BAAe,GAAG,iCAAiC,CAAC;AACnE,CAAC,EAVgB,aAAa,6BAAb,aAAa,QAU7B;AAmID,SAAgB,YAAY,CAAC,IAAsB;IACjD,OAAO,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,SAAgB,sBAAsB,CACpC,IAAgC;IAEhC,OAAO,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,2DAA2D;AAC9C,QAAA,eAAe,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;AAI7E,2EAA2E;AAC9D,QAAA,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAgCnE,+CAA+C;AAClC,QAAA,UAAU,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC"}
|
|
@@ -23,6 +23,9 @@ function serializeFormField(field) {
|
|
|
23
23
|
defaultValue: field.defaultValue,
|
|
24
24
|
offersDefault: field.offersDefault,
|
|
25
25
|
localized: field.localized,
|
|
26
|
+
visibleWhen: field.visibleWhen,
|
|
27
|
+
disabledWhen: field.disabledWhen,
|
|
28
|
+
fallbackLocale: field.fallbackLocale,
|
|
26
29
|
};
|
|
27
30
|
}
|
|
28
31
|
//# sourceMappingURL=form-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-schema.js","sourceRoot":"","sources":["../../../src/base/internal/form-schema.ts"],"names":[],"mappings":";;AAQA,
|
|
1
|
+
{"version":3,"file":"form-schema.js","sourceRoot":"","sources":["../../../src/base/internal/form-schema.ts"],"names":[],"mappings":";;AAQA,gDAqBC;AA7BD,6CAAmD;AAGnD;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,KAAgB;IACjD,MAAM,MAAM,GAAG,IAAA,oBAAa,EAAC,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;IAEtD,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,SAAS,EAAE,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE;QAC9D,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC;AACJ,CAAC"}
|
|
@@ -2,6 +2,7 @@ import type { ButtonPermission } from "../../component";
|
|
|
2
2
|
import type { ActionTargetSerialized } from "../types/action-target";
|
|
3
3
|
import type { CustomButtonAvailability, CustomButtonSerialized } from "../types/custom-button";
|
|
4
4
|
import type { DefaultLayoutOptions } from "../layouts";
|
|
5
|
+
import type { PageRecordStatus } from "../../page/internal/page-record";
|
|
5
6
|
/**
|
|
6
7
|
* A button of the page header as the layout serves it, right of the title.
|
|
7
8
|
* One the layout declares (`DefaultLayout({ headerActions })`) carries its
|
|
@@ -20,8 +21,6 @@ export interface PageHeaderButtonSerialized extends Omit<CustomButtonSerialized,
|
|
|
20
21
|
buttonId?: string;
|
|
21
22
|
/** Place among the header's buttons (`PageHeaderButton.order`). */
|
|
22
23
|
order?: number;
|
|
23
|
-
/** Acts on the page's record (`PageHeaderButton.requiresRecord`). */
|
|
24
|
-
requiresRecord?: boolean;
|
|
25
24
|
}
|
|
26
25
|
/**
|
|
27
26
|
* A header button as the layout holds it until a request is served: its
|
|
@@ -29,6 +28,8 @@ export interface PageHeaderButtonSerialized extends Omit<CustomButtonSerialized,
|
|
|
29
28
|
* @internal
|
|
30
29
|
*/
|
|
31
30
|
export interface PageHeaderButtonDeclared extends PageHeaderButtonSerialized {
|
|
31
|
+
/** Acts on the page's record (`PageHeaderButton.requiresRecord`). */
|
|
32
|
+
requiresRecord?: boolean;
|
|
32
33
|
permission?: ButtonPermission;
|
|
33
34
|
permissionId?: string;
|
|
34
35
|
availability?: CustomButtonAvailability;
|
|
@@ -41,11 +42,18 @@ export interface PageHeaderButtonDeclared extends PageHeaderButtonSerialized {
|
|
|
41
42
|
export interface DefaultLayoutSerializedOptions extends Omit<DefaultLayoutOptions, "headerActions"> {
|
|
42
43
|
headerActions?: PageHeaderButtonDeclared[];
|
|
43
44
|
/**
|
|
44
|
-
* The page query the header buttons
|
|
45
|
-
*
|
|
46
|
-
* buttons again when the page URL's query no longer
|
|
45
|
+
* The page query the header buttons were served for, set only when one of
|
|
46
|
+
* them declares an `availability` or the layout reads a `record`: the
|
|
47
|
+
* header asks for its buttons again when the page URL's query no longer
|
|
48
|
+
* matches it.
|
|
47
49
|
*/
|
|
48
50
|
headerActionsQuery?: Readonly<Record<string, string>>;
|
|
49
51
|
/** The route parameters (`:id`) of the page URL, likewise. */
|
|
50
52
|
headerActionsParams?: Readonly<Record<string, string>>;
|
|
53
|
+
/**
|
|
54
|
+
* How the layout's `record` was read for the page URL it was served for,
|
|
55
|
+
* set only when the layout reads one: the page leaves for its list once
|
|
56
|
+
* a record it showed is `missing`.
|
|
57
|
+
*/
|
|
58
|
+
recordStatus?: PageRecordStatus;
|
|
51
59
|
}
|
package/dist/base/layouts.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { ComponentInfo } from "../component";
|
|
1
|
+
import type { ComponentFilterContext, ComponentInfo } from "../component";
|
|
2
|
+
import type { MaybePromise } from "../types";
|
|
2
3
|
import type { CustomButton } from "./types/custom-button";
|
|
3
4
|
/** A button of the page header: a `CustomButton` that may say where it goes. */
|
|
4
5
|
export interface PageHeaderButton extends CustomButton {
|
|
@@ -13,23 +14,20 @@ export interface PageHeaderButton extends CustomButton {
|
|
|
13
14
|
order?: number;
|
|
14
15
|
/**
|
|
15
16
|
* The button acts on the record the page shows (the layout's `record`): it
|
|
16
|
-
* is
|
|
17
|
-
*
|
|
17
|
+
* is left out of a page whose record was not found. A target naming
|
|
18
|
+
* `{{record.X}}` implies it.
|
|
18
19
|
*/
|
|
19
20
|
requiresRecord?: boolean;
|
|
20
21
|
}
|
|
21
22
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
23
|
+
* Reads the record a page shows, each time its layout is served: the page
|
|
24
|
+
* URL names it (`context.params`, `context.query`), for the caller
|
|
25
|
+
* (`context.user`, `context.tenantId`). Answers `undefined` when there is
|
|
26
|
+
* none to show (not found, not the caller's).
|
|
27
|
+
*
|
|
28
|
+
* @example ({ params }) => GetModel(SiteModel).get(params?.id ?? "")
|
|
24
29
|
*/
|
|
25
|
-
export
|
|
26
|
-
/**
|
|
27
|
-
* URL answering the record, typically its controller's `get` route;
|
|
28
|
-
* `{{params.X}}` and `{{query.X}}` are filled in from the page URL.
|
|
29
|
-
* @example "/api/sites/get?id={{params.id}}"
|
|
30
|
-
*/
|
|
31
|
-
fetchUrl: string;
|
|
32
|
-
}
|
|
30
|
+
export type PageRecordLoader = (context: ComponentFilterContext) => MaybePromise<Record<string, unknown> | undefined>;
|
|
33
31
|
export interface DefaultLayoutOptions {
|
|
34
32
|
/**
|
|
35
33
|
* Content spans the whole panel. Defaults to `true`: dashboard pages are
|
|
@@ -59,11 +57,12 @@ export interface DefaultLayoutOptions {
|
|
|
59
57
|
*/
|
|
60
58
|
headerActions?: PageHeaderButton[];
|
|
61
59
|
/**
|
|
62
|
-
* The record the page shows,
|
|
63
|
-
* (`requiresRecord`, or a `{{record.X}}` in
|
|
64
|
-
*
|
|
60
|
+
* The record the page shows, read on the server with the layout: the
|
|
61
|
+
* header buttons acting on it (`requiresRecord`, or a `{{record.X}}` in
|
|
62
|
+
* their target) are left out without it, and every `availability` of the
|
|
63
|
+
* page reads it as `context.record`.
|
|
65
64
|
*/
|
|
66
|
-
record?:
|
|
65
|
+
record?: PageRecordLoader;
|
|
67
66
|
}
|
|
68
67
|
export declare function DefaultLayout(options?: DefaultLayoutOptions): ComponentInfo;
|
|
69
68
|
/**
|
package/dist/base/layouts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layouts.js","sourceRoot":"","sources":["../../src/base/layouts.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"layouts.js","sourceRoot":"","sources":["../../src/base/layouts.ts"],"names":[],"mappings":";;AA2GA,sCAKC;AAMD,wCAIC;AAQD,wCAIC;AAED,kCAKC;AA3ID,8DAAmE;AACnE,kEAAuE;AA2EvE,8DAA8D;AAC9D,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAE1C,SAAS,mBAAmB,CAC1B,MAAwB,EACxB,KAAa;IAEb,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACvE,MAAM,QAAQ,GAA6B;QACzC,GAAG,IAAI;QACP,EAAE,EAAE,EAAE,IAAI,GAAG,uBAAuB,GAAG,KAAK,EAAE;QAC9C,MAAM,EAAE,IAAA,qCAAqB,EAAC,MAAM,CAAC;KACtC,CAAC;IACF,IAAI,OAAO;QAAE,QAAQ,CAAC,OAAO,GAAG,IAAA,uCAAsB,EAAC,OAAO,CAAC,CAAC;IAChE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CACtB,aAAqB,EACrB,OAA6B;IAE7B,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC3C,MAAM,aAAa,GAAmC,IAAI,CAAC;IAC3D,IAAI,aAAa,EAAE,CAAC;QAClB,aAAa,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;AACnD,CAAC;AAED,SAAgB,aAAa,CAAC,OAA8B;IAC1D,OAAO,eAAe,CAAC,oBAAoB,EAAE;QAC3C,SAAS,EAAE,IAAI;QACf,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAC5B,OAAiD;IAEjD,OAAO,aAAa,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAC5B,OAAiD;IAEjD,OAAO,eAAe,CAAC,qBAAqB,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,SAAgB,WAAW;IACzB,OAAO;QACL,aAAa,EAAE,kBAAkB;QACjC,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { DataControllerCallback } from "@antelopejs/interface-data-api";
|
|
2
|
+
type WriteMode = "new" | "edit";
|
|
3
|
+
/**
|
|
4
|
+
* Applies the columns' conditions to the body of a `new` or `edit` before
|
|
5
|
+
* `baseRoute` writes it, read on the row as it will be stored (an edit's
|
|
6
|
+
* stored row under its body). The fields hidden or disabled leave the body,
|
|
7
|
+
* and an edit clears the value a hidden field stored: a business turned
|
|
8
|
+
* household keeps no VAT number. A disabled field keeps the one it holds.
|
|
9
|
+
* `@Mandatory` binds a field with `visibleWhen` while it shows: there, an
|
|
10
|
+
* edit must leave it filled, not only not clear it.
|
|
11
|
+
*
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export declare const withColumnConditions: (baseRoute: DataControllerCallback, mode: WriteMode) => DataControllerCallback;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// The data routes hold to the `visibleWhen` / `disabledWhen` of the columns,
|
|
3
|
+
// as the generated forms do: whichever client writes, a hidden or disabled
|
|
4
|
+
// field's value is ignored, and a hidden field is not mandatory.
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.withColumnConditions = void 0;
|
|
7
|
+
const interface_api_1 = require("@antelopejs/interface-api");
|
|
8
|
+
const interface_api_util_1 = require("@antelopejs/interface-api-util");
|
|
9
|
+
const interface_core_1 = require("@antelopejs/interface-core");
|
|
10
|
+
const components_1 = require("@antelopejs/interface-data-api/components");
|
|
11
|
+
const metadata_1 = require("@antelopejs/interface-data-api/metadata");
|
|
12
|
+
const data_functions_1 = require("../data-functions");
|
|
13
|
+
const options_1 = require("../options");
|
|
14
|
+
const meta_1 = require("./meta");
|
|
15
|
+
/** Whether `row` meets `condition`: a field it lacks counts as empty. */
|
|
16
|
+
const meetsFieldCondition = (condition, row) => condition.in.includes(row[condition.field] ?? null);
|
|
17
|
+
/** The columns whose form field `row` hides or disables. */
|
|
18
|
+
function inactiveColumns(columns, row) {
|
|
19
|
+
const entries = Object.entries(columns);
|
|
20
|
+
return {
|
|
21
|
+
hidden: entries
|
|
22
|
+
.filter(([, c]) => c.visibleWhen && !meetsFieldCondition(c.visibleWhen, row))
|
|
23
|
+
.map(([key]) => key),
|
|
24
|
+
disabled: entries
|
|
25
|
+
.filter(([, c]) => c.disabledWhen && meetsFieldCondition(c.disabledWhen, row))
|
|
26
|
+
.map(([key]) => key),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
const isEmptyValue = (value) => value === undefined ||
|
|
30
|
+
value === null ||
|
|
31
|
+
value === "" ||
|
|
32
|
+
(Array.isArray(value) && value.length === 0);
|
|
33
|
+
/**
|
|
34
|
+
* Applies the columns' conditions to the body of a `new` or `edit` before
|
|
35
|
+
* `baseRoute` writes it, read on the row as it will be stored (an edit's
|
|
36
|
+
* stored row under its body). The fields hidden or disabled leave the body,
|
|
37
|
+
* and an edit clears the value a hidden field stored: a business turned
|
|
38
|
+
* household keeps no VAT number. A disabled field keeps the one it holds.
|
|
39
|
+
* `@Mandatory` binds a field with `visibleWhen` while it shows: there, an
|
|
40
|
+
* edit must leave it filled, not only not clear it.
|
|
41
|
+
*
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
44
|
+
const withColumnConditions = (baseRoute, mode) => ({
|
|
45
|
+
func: async function (ctx, params, ...args) {
|
|
46
|
+
const tableMeta = (0, meta_1.getTableViewMetaFor)(this);
|
|
47
|
+
const { columns } = tableMeta;
|
|
48
|
+
const hasConditions = Object.values(columns).some((c) => c.visibleWhen || c.disabledWhen);
|
|
49
|
+
if (!hasConditions)
|
|
50
|
+
return baseRoute.func.call(this, ctx, params, ...args);
|
|
51
|
+
const body = components_1.Validation.ParseBody(args[0]);
|
|
52
|
+
let row = body;
|
|
53
|
+
let current;
|
|
54
|
+
if (mode === "edit") {
|
|
55
|
+
current = await (0, data_functions_1.fetchRowForGuard)(this, String(params.id), tableMeta.options.rowIdKey || options_1.DEFAULT_ROW_ID_FIELD);
|
|
56
|
+
(0, interface_api_util_1.assert)(current, 404, "Not Found");
|
|
57
|
+
row = { ...current, ...body };
|
|
58
|
+
}
|
|
59
|
+
const { hidden, disabled } = inactiveColumns(columns, row);
|
|
60
|
+
const written = { ...body };
|
|
61
|
+
for (const key of [...hidden, ...disabled])
|
|
62
|
+
delete written[key];
|
|
63
|
+
for (const key of hidden) {
|
|
64
|
+
if (current && !isEmptyValue(current[key]))
|
|
65
|
+
written[key] = null;
|
|
66
|
+
}
|
|
67
|
+
if (params.noMandatory) {
|
|
68
|
+
return baseRoute.func.call(this, ctx, params, written, ...args.slice(1));
|
|
69
|
+
}
|
|
70
|
+
const dataMeta = (0, interface_core_1.GetMetadata)(this.constructor, metadata_1.DataAPIMeta);
|
|
71
|
+
const conditional = Object.keys(columns).filter((key) => columns[key].visibleWhen);
|
|
72
|
+
// A disabled field is not mandatory, as in the form; the fields without
|
|
73
|
+
// a condition are checked as the data API would.
|
|
74
|
+
const exempt = new Set([...conditional, ...disabled]);
|
|
75
|
+
components_1.Validation.MandatoryFields(Object.assign(Object.create(dataMeta), {
|
|
76
|
+
fields: Object.fromEntries(Object.entries(dataMeta.fields).filter(([key]) => !exempt.has(key))),
|
|
77
|
+
}), written, mode);
|
|
78
|
+
const missing = conditional.filter((key) => dataMeta.fields[key]?.mandatory?.has(mode) &&
|
|
79
|
+
!hidden.includes(key) &&
|
|
80
|
+
!disabled.includes(key) &&
|
|
81
|
+
isEmptyValue(row[key]));
|
|
82
|
+
if (missing.length > 0) {
|
|
83
|
+
throw new interface_api_1.HTTPResult(400, {
|
|
84
|
+
code: components_1.Validation.MISSING_MANDATORY_FIELDS,
|
|
85
|
+
fields: missing,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
return baseRoute.func.call(this, ctx, { ...params, noMandatory: "true" }, written, ...args.slice(1));
|
|
89
|
+
},
|
|
90
|
+
args: baseRoute.args,
|
|
91
|
+
method: baseRoute.method,
|
|
92
|
+
});
|
|
93
|
+
exports.withColumnConditions = withColumnConditions;
|
|
94
|
+
//# sourceMappingURL=column-conditions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-conditions.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/column-conditions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { type ColumnOptions, TableViewMeta } from "../meta";
|
|
2
2
|
import { type FormContainerPages, type GroupedOptions, type KanbanOptions, type TableViewDisplayOption, type TableViewOptions, type TableViewQuickFilter, type TableViewTab, type TableViewViewsOptions } from "../options";
|
|
3
|
+
/**
|
|
4
|
+
* A column's `visibleWhen` and `disabledWhen` name another column of the
|
|
5
|
+
* controller and at least one value.
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export declare function validateColumnConditions(controllerName: string, meta: Pick<TableViewMeta, "columns">): void;
|
|
3
10
|
/**
|
|
4
11
|
* `pageSize` is a whole number of rows, from 1 up to {@link MAX_TABLE_PAGE_SIZE}.
|
|
5
12
|
*
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
//
|
|
6
6
|
// Split out of factory-helpers.ts.
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.validateColumnConditions = validateColumnConditions;
|
|
8
9
|
exports.validatePageSize = validatePageSize;
|
|
9
10
|
exports.assertKnownColumns = assertKnownColumns;
|
|
10
11
|
exports.warnIfQuickFiltersLackValues = warnIfQuickFiltersLackValues;
|
|
@@ -25,6 +26,26 @@ const logging_1 = require("@antelopejs/interface-core/logging");
|
|
|
25
26
|
const metadata_1 = require("@antelopejs/interface-data-api/metadata");
|
|
26
27
|
const data_types_1 = require("../../data-types");
|
|
27
28
|
const options_1 = require("../options");
|
|
29
|
+
/**
|
|
30
|
+
* A column's `visibleWhen` and `disabledWhen` name another column of the
|
|
31
|
+
* controller and at least one value.
|
|
32
|
+
*
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
function validateColumnConditions(controllerName, meta) {
|
|
36
|
+
for (const [key, column] of Object.entries(meta.columns)) {
|
|
37
|
+
for (const option of ["visibleWhen", "disabledWhen"]) {
|
|
38
|
+
const condition = column[option];
|
|
39
|
+
if (!condition)
|
|
40
|
+
continue;
|
|
41
|
+
const where = `${option} of column "${key}"`;
|
|
42
|
+
assertKnownColumns(controllerName, meta, where, [condition.field]);
|
|
43
|
+
if (condition.field === key || condition.in.length === 0) {
|
|
44
|
+
throw new Error(`TableView ${where} on ${controllerName} must name another column and at least one value`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
28
49
|
/**
|
|
29
50
|
* `pageSize` is a whole number of rows, from 1 up to {@link MAX_TABLE_PAGE_SIZE}.
|
|
30
51
|
*
|
|
@@ -379,6 +400,7 @@ function assertTabTargets(controllerName, tabs) {
|
|
|
379
400
|
*/
|
|
380
401
|
function validateTableViewOptions(controllerName, meta, options) {
|
|
381
402
|
validateKanbanOptions(controllerName, meta, options.kanban);
|
|
403
|
+
validateColumnConditions(controllerName, meta);
|
|
382
404
|
assertKnownColumns(controllerName, meta, "card fields", options.card?.fields ?? []);
|
|
383
405
|
assertKnownColumns(controllerName, meta, "columns.hidden", options.columns?.hidden ?? []);
|
|
384
406
|
validateGroupedOptions(controllerName, meta, options.grouped);
|