@antelopejs/interface-dms 0.7.1 → 0.7.3
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 +86 -0
- package/README.md +70 -68
- package/dist/auth/db/models/sessions.model.d.ts +1 -0
- package/dist/auth/db/models/userExternalIdentities.model.d.ts +1 -0
- package/dist/auth/db/models/users.model.d.ts +1 -0
- package/dist/base/block-registry/index.d.ts +1 -0
- package/dist/base/block-registry/index.js +1 -0
- package/dist/base/block-registry/index.js.map +1 -1
- package/dist/base/block-registry/presentation.d.ts +21 -0
- package/dist/base/block-registry/presentation.js +108 -0
- package/dist/base/block-registry/presentation.js.map +1 -0
- package/dist/base/block-types.d.ts +1 -0
- package/dist/base/block-types.js +1 -0
- package/dist/base/block-types.js.map +1 -1
- package/dist/base/live-toggle.d.ts +2 -2
- package/dist/base/period-selector.d.ts +2 -2
- package/dist/base/placeholder.js +2 -2
- package/dist/base/placeholder.js.map +1 -1
- package/dist/base/table-view/schema.d.ts +4 -4
- package/dist/db/internal/exportJobs.model.d.ts +1 -0
- package/dist/db/internal/inviteResolutions.model.d.ts +1 -0
- package/dist/db/internal/tenantLifecycle.model.d.ts +1 -0
- package/dist/db/models/roles.model.d.ts +1 -0
- package/dist/db/models/tenantMembers.model.d.ts +1 -0
- package/dist/db/models/tenants.model.d.ts +1 -0
- package/dist/db/models/user_invites.model.d.ts +1 -0
- package/docs/.navigation.yml +2 -0
- package/docs/1.core/.navigation.yml +2 -0
- package/docs/1.core/1.introduction.md +169 -0
- package/docs/1.core/10.layout-banners.md +133 -0
- package/docs/1.core/2.pages-and-modules.md +649 -0
- package/docs/1.core/3.components.md +287 -0
- package/docs/1.core/4.permissions.md +279 -0
- package/docs/1.core/5.tenancy.md +358 -0
- package/docs/1.core/6.invites.md +239 -0
- package/docs/1.core/7.hooks.md +354 -0
- package/docs/1.core/8.realtime.md +147 -0
- package/docs/1.core/9.quick-actions.md +115 -0
- package/docs/2.auth/.navigation.yml +2 -0
- package/docs/2.auth/1.introduction.md +75 -0
- package/docs/2.auth/2.authentication.md +222 -0
- package/docs/2.auth/3.tokens-and-sessions.md +352 -0
- package/docs/2.auth/4.users.md +256 -0
- package/docs/2.auth/5.external-identities.md +122 -0
- package/docs/3.base/.navigation.yml +2 -0
- package/docs/3.base/1.introduction.md +202 -0
- package/docs/3.base/10.display-blocks.md +136 -0
- package/docs/3.base/2.types.md +402 -0
- package/docs/3.base/3.forms.md +349 -0
- package/docs/3.base/4.tables.md +608 -0
- package/docs/3.base/5.charts-and-widgets.md +466 -0
- package/docs/3.base/6.layout.md +437 -0
- package/docs/3.base/8.data-types.md +361 -0
- package/docs/3.base/9.helpers.md +414 -0
- package/docs/4.notifications/.navigation.yml +2 -0
- package/docs/4.notifications/1.introduction.md +81 -0
- package/docs/4.notifications/2.categories-and-subjects.md +214 -0
- package/docs/4.notifications/3.sending.md +285 -0
- package/docs/5.html-render/.navigation.yml +2 -0
- package/docs/5.html-render/1.introduction.md +386 -0
- package/docs/5.html-render/2.built-in-emails.md +157 -0
- package/docs/images/emails-admin-invite.png +0 -0
- package/docs/images/emails-change-notice.png +0 -0
- package/docs/images/emails-change-verification.png +0 -0
- package/docs/images/emails-digest-logo-dark.png +0 -0
- package/docs/images/emails-digest-logo-light.png +0 -0
- package/docs/images/emails-digest.png +0 -0
- package/docs/images/emails-export-partial.png +0 -0
- package/docs/images/emails-export-ready.png +0 -0
- package/docs/images/emails-reset-password.png +0 -0
- package/docs/images/emails-two-factor.png +0 -0
- package/docs/images/emails-user-validation.png +0 -0
- package/docs/index.md +109 -0
- package/docs/tsconfig.json +11 -0
- package/package.json +25 -18
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,91 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v0.7.3
|
|
4
|
+
|
|
5
|
+
[compare changes](https://github.com/AntelopeJS/dms/compare/interface-v0.7.2...v0.7.3)
|
|
6
|
+
|
|
7
|
+
### 🚀 Enhancements
|
|
8
|
+
|
|
9
|
+
- **preview:** Share simple options and document real outcomes ([#339](https://github.com/AntelopeJS/dms/pull/339))
|
|
10
|
+
|
|
11
|
+
### 🩹 Fixes
|
|
12
|
+
|
|
13
|
+
- **docs:** Use a sandbox-compatible temporary build database ([#326](https://github.com/AntelopeJS/dms/pull/326))
|
|
14
|
+
- Install DMS frontend with the root workspace ([#322](https://github.com/AntelopeJS/dms/pull/322))
|
|
15
|
+
- **modules:** Top-align card content and place readouts below descriptions ([#328](https://github.com/AntelopeJS/dms/pull/328))
|
|
16
|
+
- **modules:** Reuse registered names in the store ([#330](https://github.com/AntelopeJS/dms/pull/330))
|
|
17
|
+
- **playground:** Use the workspace CLI and compatible core interface ([#331](https://github.com/AntelopeJS/dms/pull/331))
|
|
18
|
+
|
|
19
|
+
### 📖 Documentation
|
|
20
|
+
|
|
21
|
+
- Create the DMS demo through the CLI in quickstart ([#327](https://github.com/AntelopeJS/dms/pull/327))
|
|
22
|
+
|
|
23
|
+
### 🏡 Chore
|
|
24
|
+
|
|
25
|
+
- **release:** @antelopejs/dms v0.9.3 ([1aaf5404](https://github.com/AntelopeJS/dms/commit/1aaf5404))
|
|
26
|
+
- **docs:** Capture temporary MongoDB startup diagnostics ([#325](https://github.com/AntelopeJS/dms/pull/325))
|
|
27
|
+
- **playground:** Refresh compatible dependencies ([#329](https://github.com/AntelopeJS/dms/pull/329))
|
|
28
|
+
|
|
29
|
+
### ❤️ Contributors
|
|
30
|
+
|
|
31
|
+
- Antony Rizzitelli <rizzitelli.antony@pm.me>
|
|
32
|
+
|
|
33
|
+
## v0.7.2
|
|
34
|
+
|
|
35
|
+
[compare changes](https://github.com/AntelopeJS/dms/compare/interface-v0.7.1...v0.7.2)
|
|
36
|
+
|
|
37
|
+
### 🚀 Enhancements
|
|
38
|
+
|
|
39
|
+
- **preview:** Live block preview page, block catalog and screenshots for the docs ([#280](https://github.com/AntelopeJS/dms/pull/280))
|
|
40
|
+
|
|
41
|
+
### 🔥 Performance
|
|
42
|
+
|
|
43
|
+
- **layout:** Bundle the Geist fonts and preload only the text face ([#311](https://github.com/AntelopeJS/dms/pull/311))
|
|
44
|
+
- **table:** Drag with SortableJS through useSortable instead of vuedraggable ([#312](https://github.com/AntelopeJS/dms/pull/312))
|
|
45
|
+
- **table-view:** Share a source read between the list and a counter asking the same ([#313](https://github.com/AntelopeJS/dms/pull/313))
|
|
46
|
+
|
|
47
|
+
### 🩹 Fixes
|
|
48
|
+
|
|
49
|
+
- **deps:** Move to @antelopejs/core 1.15.2, @antelopejs/interface-core 0.2.3 and @antelopejs/interface-dms 0.7.1 ([#303](https://github.com/AntelopeJS/dms/pull/303))
|
|
50
|
+
- **docs:** Regenerate the block catalog for dms 0.9.2 ([#315](https://github.com/AntelopeJS/dms/pull/315))
|
|
51
|
+
- **form:** Leave a failed record read's toast to the browser ([#304](https://github.com/AntelopeJS/dms/pull/304))
|
|
52
|
+
- **page:** Leave a page's layout out of the components its preload looks up ([#306](https://github.com/AntelopeJS/dms/pull/306))
|
|
53
|
+
- **settings:** Suggest the reader's time zone in a server-rendered region page ([#308](https://github.com/AntelopeJS/dms/pull/308))
|
|
54
|
+
- **frontend:** Set the async data scope before any module's plugin reads ([#305](https://github.com/AntelopeJS/dms/pull/305))
|
|
55
|
+
- **blocks:** Have refreshPageBlocks() wait for the charts and tables it refreshes ([#307](https://github.com/AntelopeJS/dms/pull/307))
|
|
56
|
+
|
|
57
|
+
### 📖 Documentation
|
|
58
|
+
|
|
59
|
+
- **dms:** Restructure docs with per-block pages, live previews and an AI section ([#277](https://github.com/AntelopeJS/dms/pull/277))
|
|
60
|
+
- Remove the DMS 0.9 upgrade page ([#316](https://github.com/AntelopeJS/dms/pull/316))
|
|
61
|
+
- **dms:** Document running the DMS inside AdonisJS ([#318](https://github.com/AntelopeJS/dms/pull/318))
|
|
62
|
+
- Make the DMS 0.9 upgrade notes accurate and complete ([#310](https://github.com/AntelopeJS/dms/pull/310))
|
|
63
|
+
- Streamline agent guidance ([#317](https://github.com/AntelopeJS/dms/pull/317))
|
|
64
|
+
- Colocate the DMS consumer reference with its interface ([#320](https://github.com/AntelopeJS/dms/pull/320))
|
|
65
|
+
- Make dense guide sections easier to scan ([#321](https://github.com/AntelopeJS/dms/pull/321))
|
|
66
|
+
|
|
67
|
+
### 📦 Build
|
|
68
|
+
|
|
69
|
+
- **dms:** Leave tests and tooling out of the published package ([#314](https://github.com/AntelopeJS/dms/pull/314))
|
|
70
|
+
|
|
71
|
+
### 🏡 Chore
|
|
72
|
+
|
|
73
|
+
- **release:** @antelopejs/dms v0.9.2 ([beb09f9d](https://github.com/AntelopeJS/dms/commit/beb09f9d))
|
|
74
|
+
- **release:** Propagate published dependency floors ([#323](https://github.com/AntelopeJS/dms/pull/323))
|
|
75
|
+
|
|
76
|
+
### ✅ Tests
|
|
77
|
+
|
|
78
|
+
- **live:** Hold the page's data refresh while paused, not a user's ([#309](https://github.com/AntelopeJS/dms/pull/309))
|
|
79
|
+
|
|
80
|
+
### 🤖 CI
|
|
81
|
+
|
|
82
|
+
- **docs:** Build and verify the hosted preview playground ([#319](https://github.com/AntelopeJS/dms/pull/319))
|
|
83
|
+
|
|
84
|
+
### ❤️ Contributors
|
|
85
|
+
|
|
86
|
+
- Antony Rizzitelli <rizzitelli.antony@pm.me>
|
|
87
|
+
- Alessandro Aloisio
|
|
88
|
+
|
|
3
89
|
## v0.7.1
|
|
4
90
|
|
|
5
91
|
[compare changes](https://github.com/AntelopeJS/dms/compare/interface-v0.7.0...v0.7.1)
|
package/README.md
CHANGED
|
@@ -1,76 +1,78 @@
|
|
|
1
|
-
# `@antelopejs/interface-dms`
|
|
2
|
-
|
|
3
1
|
<div align="center">
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
|
|
3
|
+
# @antelopejs/interface-dms
|
|
4
|
+
|
|
5
|
+
<a href="https://www.npmjs.com/package/@antelopejs/interface-dms"><img alt="npm" src="https://img.shields.io/npm/v/@antelopejs/interface-dms?style=for-the-badge&labelColor=000000&color=000000"></a>
|
|
6
|
+
<a href="./LICENSE"><img alt="License" src="https://img.shields.io/npm/l/@antelopejs/interface-dms?style=for-the-badge&labelColor=000000&color=000000"></a>
|
|
7
|
+
<a href="https://discord.gg/sjK28QHrA7"><img alt="Discord" src="https://img.shields.io/badge/Discord-18181B?logo=discord&style=for-the-badge&color=000000"></a>
|
|
8
|
+
<a href="https://dms.antelopejs.com/docs/interfaces"><img alt="Documentation" src="https://img.shields.io/badge/Docs-18181B?style=for-the-badge&color=000000"></a>
|
|
9
|
+
|
|
10
|
+
The public contracts of the AntelopeJS DMS: pages and components, permissions and tenancy, authentication, notifications and HTML rendering.
|
|
11
|
+
|
|
6
12
|
</div>
|
|
7
13
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
14
|
+
## What it does
|
|
15
|
+
|
|
16
|
+
- Declares pages, categories, modules and page extensions (`/page`), and the blocks they carry: forms, tables, charts and layouts (`/base`).
|
|
17
|
+
- Registers permissions, guards routes, and scopes data to a tenant (`/permissions`, `/guards`, `/tenant-scoped-model`…).
|
|
18
|
+
- Authenticates requests and manages users, sessions and external identities (`/auth`).
|
|
19
|
+
- Declares notification categories and sends notifications (`/notifications`), and renders HTML templates server-side (`/html-render`).
|
|
20
|
+
- Lets a module compile against the contract rather than against the implementation, [`@antelopejs/dms`](https://www.npmjs.com/package/@antelopejs/dms).
|
|
21
|
+
|
|
22
|
+
## Install
|
|
23
|
+
|
|
24
|
+
Add the interface to the module that extends the DMS:
|
|
12
25
|
|
|
13
26
|
```bash
|
|
14
27
|
pnpm add @antelopejs/interface-dms
|
|
15
28
|
```
|
|
16
29
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
`@antelopejs/
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
and `RegisterCategory` resolve their argument through `RegistrationIdentity`
|
|
67
|
-
(`page/internal/registry`) for that reason; anything else keyed on a value
|
|
68
|
-
that crossed the boundary has to do the same. The same trap catches structural comparisons:
|
|
69
|
-
`isDeepStrictEqual` and `assert.deepStrictEqual` both refuse two views that hold
|
|
70
|
-
equal values, so compare plain data, field by field or after a JSON round trip.
|
|
71
|
-
|
|
72
|
-
## Releasing
|
|
73
|
-
|
|
74
|
-
Release this package before releasing a `@antelopejs/dms` version that needs it,
|
|
75
|
-
and upgrade it first on the consumer side. It has its own workflow
|
|
76
|
-
(`Release DMS interface`); releasing the runtime never releases it.
|
|
30
|
+
Depend on it with a wide range, such as `>=0.7.0 <1.0.0`, and never bundle or vendor it: the host and every module must resolve the same installed copy, since the package holds live registries. `@antelopejs/core` fails at startup with `Incompatible interface package resolution` when a module resolves another copy.
|
|
31
|
+
|
|
32
|
+
## Quick start
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
import { PageController, RegisterPage, pagesCategory } from "@antelopejs/interface-dms/page";
|
|
36
|
+
import { KpiCard } from "@antelopejs/interface-dms/base/kpi-card";
|
|
37
|
+
|
|
38
|
+
@RegisterPage()
|
|
39
|
+
export class SalesPage extends PageController("sales", {
|
|
40
|
+
displayName: "Sales",
|
|
41
|
+
icon: "i-ph-chart-line",
|
|
42
|
+
category: pagesCategory,
|
|
43
|
+
}) {
|
|
44
|
+
static revenue = KpiCard({ title: "Revenue", fetchUrl: "/api/sales/revenue" });
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
| Import | What it holds |
|
|
49
|
+
| --- | --- |
|
|
50
|
+
| `@antelopejs/interface-dms` | the core surface: pages, permissions, tenancy, hooks |
|
|
51
|
+
| `@antelopejs/interface-dms/<module>` | one module of it: `/page`, `/permissions`, `/hooks`, `/db`… |
|
|
52
|
+
| `@antelopejs/interface-dms/auth` | authentication: users, sessions, external identities |
|
|
53
|
+
| `@antelopejs/interface-dms/base` | the component library: forms, tables, charts, layouts |
|
|
54
|
+
| `@antelopejs/interface-dms/notifications` | notification categories, subjects and delivery |
|
|
55
|
+
| `@antelopejs/interface-dms/html-render` | server-side HTML templates |
|
|
56
|
+
|
|
57
|
+
## Compatibility
|
|
58
|
+
|
|
59
|
+
| `@antelopejs/interface-dms` | `@antelopejs/dms` (implementation) |
|
|
60
|
+
| --- | --- |
|
|
61
|
+
| 0.7 | 0.9 |
|
|
62
|
+
| 0.6 | 0.8 |
|
|
63
|
+
|
|
64
|
+
## Documentation
|
|
65
|
+
|
|
66
|
+
- [The DMS interface](./docs/index.md): the canonical consumer reference, shipped with this package and published at [docs/interfaces](https://dms.antelopejs.com/docs/interfaces)
|
|
67
|
+
- [Core](./docs/1.core/1.introduction.md), [Auth](./docs/2.auth/1.introduction.md), [Base](./docs/3.base/1.introduction.md), [Notifications](./docs/4.notifications/1.introduction.md), [HTML Render](./docs/5.html-render/1.introduction.md)
|
|
68
|
+
- [Pages and components](https://dms.antelopejs.com/docs/building/pages-and-components): the task-by-task guide
|
|
69
|
+
|
|
70
|
+
An importable file is not necessarily a supported API. Paths under `internal/`, symbols tagged `@internal`, and `internal` namespaces are implementation wiring, even when the wildcard export makes them reachable. Use the public declarations and contracts documented here.
|
|
71
|
+
|
|
72
|
+
## Contributing
|
|
73
|
+
|
|
74
|
+
This package lives in the [`AntelopeJS/dms`](https://github.com/AntelopeJS/dms) pnpm workspace, next to the runtime that implements it. Read [CONTRIBUTING.md](https://github.com/AntelopeJS/dms/blob/main/CONTRIBUTING.md), the [repository README](https://github.com/AntelopeJS/dms#contributing) and [AGENTS.md](https://github.com/AntelopeJS/dms/blob/main/AGENTS.md), which covers what is public and what is internal. Release this package (**Release DMS interface**) before a `@antelopejs/dms` version that needs it.
|
|
75
|
+
|
|
76
|
+
## License
|
|
77
|
+
|
|
78
|
+
[Apache-2.0](./LICENSE)
|
|
@@ -20,6 +20,7 @@ declare const SessionModel_base: {
|
|
|
20
20
|
delete(id: string): Promise<number>;
|
|
21
21
|
};
|
|
22
22
|
readonly schemaName: string;
|
|
23
|
+
readonly tableClass: import("@antelopejs/interface-database-decorators").Constructible<Session>;
|
|
23
24
|
fromPlainData(obj: any): Session;
|
|
24
25
|
fromDatabase(obj: any): Session | undefined;
|
|
25
26
|
toDatabase(obj: any): Record<string, any>;
|
|
@@ -17,6 +17,7 @@ declare const UserExternalIdentityModel_base: {
|
|
|
17
17
|
delete(id: string): Promise<number>;
|
|
18
18
|
};
|
|
19
19
|
readonly schemaName: string;
|
|
20
|
+
readonly tableClass: import("@antelopejs/interface-database-decorators").Constructible<UserExternalIdentity>;
|
|
20
21
|
fromPlainData(obj: any): UserExternalIdentity;
|
|
21
22
|
fromDatabase(obj: any): UserExternalIdentity | undefined;
|
|
22
23
|
toDatabase(obj: any): Record<string, any>;
|
|
@@ -20,6 +20,7 @@ declare const UserModel_base: {
|
|
|
20
20
|
delete(id: string): Promise<number>;
|
|
21
21
|
};
|
|
22
22
|
readonly schemaName: string;
|
|
23
|
+
readonly tableClass: import("@antelopejs/interface-database-decorators").Constructible<User>;
|
|
23
24
|
fromPlainData(obj: any): User;
|
|
24
25
|
fromDatabase(obj: any): User | undefined;
|
|
25
26
|
toDatabase(obj: any): Record<string, any>;
|
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./helpers"), exports);
|
|
18
|
+
__exportStar(require("./presentation"), exports);
|
|
18
19
|
__exportStar(require("./registry"), exports);
|
|
19
20
|
__exportStar(require("./types"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/base/block-registry/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,6CAA2B;AAC3B,0CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/base/block-registry/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,iDAA+B;AAC/B,6CAA2B;AAC3B,0CAAwB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { BlockOptionUi, BlockTypeDescriptor } from "./types";
|
|
2
|
+
/** The hints needed to decide whether an editor offers an option in simple mode. */
|
|
3
|
+
export interface SimpleBlockOption {
|
|
4
|
+
ui?: Pick<BlockOptionUi, "hidden" | "advanced" | "derivedFrom"> & {
|
|
5
|
+
group?: string;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
/** Shared simple-mode policy; data binding remains available in the builder. */
|
|
9
|
+
export declare function IsSimpleBlockOption(option: SimpleBlockOption): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Dotted paths a standalone preview can edit without replacing data or opaque
|
|
12
|
+
* values. Objects are descended into, never offered as JSON. Only enum arrays
|
|
13
|
+
* in presentation/behavior groups and closed-key scalar records are editable
|
|
14
|
+
* collections; rows, slots and other structural collections remain fixed.
|
|
15
|
+
* Scalar unions have typed controls; a rich union with an explicit scalar
|
|
16
|
+
* widget (e.g. translated text or chart color) offers that scalar only.
|
|
17
|
+
*
|
|
18
|
+
* Fixed factory options exclude their entire top-level subtree. The returned
|
|
19
|
+
* paths reference `config`; consumers must not keep another copy of the schema.
|
|
20
|
+
*/
|
|
21
|
+
export declare function BlockPresentationPaths(descriptor: Pick<BlockTypeDescriptor, "config" | "fixedOptions">): string[];
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IsSimpleBlockOption = IsSimpleBlockOption;
|
|
4
|
+
exports.BlockPresentationPaths = BlockPresentationPaths;
|
|
5
|
+
/** Shared simple-mode policy; data binding remains available in the builder. */
|
|
6
|
+
function IsSimpleBlockOption(option) {
|
|
7
|
+
const ui = option.ui;
|
|
8
|
+
return (!ui?.hidden && !ui?.advanced && !ui?.derivedFrom && ui?.group !== "advanced");
|
|
9
|
+
}
|
|
10
|
+
const PRESENTATION_WIDGETS = new Set([
|
|
11
|
+
"text",
|
|
12
|
+
"textarea",
|
|
13
|
+
"number",
|
|
14
|
+
"range",
|
|
15
|
+
"switch",
|
|
16
|
+
"select",
|
|
17
|
+
"segmented",
|
|
18
|
+
"icon",
|
|
19
|
+
"color",
|
|
20
|
+
"url",
|
|
21
|
+
]);
|
|
22
|
+
function isPresentation(option) {
|
|
23
|
+
return (IsSimpleBlockOption(option) &&
|
|
24
|
+
option.ui?.group !== "data" &&
|
|
25
|
+
!option.truncated &&
|
|
26
|
+
(!option.ui?.widget || PRESENTATION_WIDGETS.has(option.ui.widget)));
|
|
27
|
+
}
|
|
28
|
+
// A scalar widget can replace a union's structured value, so a restricted
|
|
29
|
+
// descendant in any branch forbids offering that parent too.
|
|
30
|
+
function hasRestrictedHints(option) {
|
|
31
|
+
if (!IsSimpleBlockOption(option) ||
|
|
32
|
+
option.ui?.group === "data" ||
|
|
33
|
+
(option.ui?.widget && !PRESENTATION_WIDGETS.has(option.ui.widget)))
|
|
34
|
+
return true;
|
|
35
|
+
const children = [
|
|
36
|
+
...Object.values(option.properties ?? {}),
|
|
37
|
+
...[option.items, option.values, option.keys].filter((child) => !!child),
|
|
38
|
+
...(option.oneOf ?? []),
|
|
39
|
+
...(option.allOf ?? []),
|
|
40
|
+
...(option.prefixItems ?? []),
|
|
41
|
+
];
|
|
42
|
+
return children.some(hasRestrictedHints);
|
|
43
|
+
}
|
|
44
|
+
function isScalar(option) {
|
|
45
|
+
if (option.truncated || option.allOf || option.prefixItems)
|
|
46
|
+
return false;
|
|
47
|
+
return (["string", "number", "boolean"].includes(option.type) ||
|
|
48
|
+
(option.type === "union" &&
|
|
49
|
+
!!option.oneOf?.length &&
|
|
50
|
+
option.oneOf.every(isScalar)));
|
|
51
|
+
}
|
|
52
|
+
function hasValueEditor(option) {
|
|
53
|
+
if (hasRestrictedHints(option))
|
|
54
|
+
return false;
|
|
55
|
+
if (isScalar(option))
|
|
56
|
+
return true;
|
|
57
|
+
if (option.type === "array") {
|
|
58
|
+
// Content collections can carry demonstration rows even when enum-valued.
|
|
59
|
+
return (["appearance", "behavior", "layout", "features"].includes(option.ui?.group ?? "") &&
|
|
60
|
+
!!option.items?.enum?.length &&
|
|
61
|
+
isScalar(option.items));
|
|
62
|
+
}
|
|
63
|
+
if (option.type === "record") {
|
|
64
|
+
return (!!option.keys?.enum?.length && !!option.values && isScalar(option.values));
|
|
65
|
+
}
|
|
66
|
+
// Rich text and palettes can still use the scalar widget their schema declares.
|
|
67
|
+
return (option.type === "union" &&
|
|
68
|
+
!!option.ui?.widget &&
|
|
69
|
+
!!option.oneOf?.some(isScalar));
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Dotted paths a standalone preview can edit without replacing data or opaque
|
|
73
|
+
* values. Objects are descended into, never offered as JSON. Only enum arrays
|
|
74
|
+
* in presentation/behavior groups and closed-key scalar records are editable
|
|
75
|
+
* collections; rows, slots and other structural collections remain fixed.
|
|
76
|
+
* Scalar unions have typed controls; a rich union with an explicit scalar
|
|
77
|
+
* widget (e.g. translated text or chart color) offers that scalar only.
|
|
78
|
+
*
|
|
79
|
+
* Fixed factory options exclude their entire top-level subtree. The returned
|
|
80
|
+
* paths reference `config`; consumers must not keep another copy of the schema.
|
|
81
|
+
*/
|
|
82
|
+
function BlockPresentationPaths(descriptor) {
|
|
83
|
+
const paths = [];
|
|
84
|
+
const walk = (config, prefix) => {
|
|
85
|
+
for (const [key, option] of Object.entries(config)) {
|
|
86
|
+
// Dots and prototype keys cannot be represented safely by path editors.
|
|
87
|
+
if (key.includes(".") ||
|
|
88
|
+
["__proto__", "constructor", "prototype"].includes(key))
|
|
89
|
+
continue;
|
|
90
|
+
if (!prefix && Object.hasOwn(descriptor.fixedOptions ?? {}, key))
|
|
91
|
+
continue;
|
|
92
|
+
if (!isPresentation(option))
|
|
93
|
+
continue;
|
|
94
|
+
const path = prefix ? `${prefix}.${key}` : key;
|
|
95
|
+
if (option.allOf || option.prefixItems)
|
|
96
|
+
continue;
|
|
97
|
+
if (option.type === "object" && option.properties) {
|
|
98
|
+
walk(option.properties, path);
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if (hasValueEditor(option))
|
|
102
|
+
paths.push(path);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
walk(descriptor.config, "");
|
|
106
|
+
return paths;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=presentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presentation.js","sourceRoot":"","sources":["../../../src/base/block-registry/presentation.ts"],"names":[],"mappings":";;AAcA,kDAKC;AA4FD,wDA6BC;AA/HD,gFAAgF;AAChF,SAAgB,mBAAmB,CAAC,MAAyB;IAC3D,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;IACrB,OAAO,CACL,CAAC,EAAE,EAAE,MAAM,IAAI,CAAC,EAAE,EAAE,QAAQ,IAAI,CAAC,EAAE,EAAE,WAAW,IAAI,EAAE,EAAE,KAAK,KAAK,UAAU,CAC7E,CAAC;AACJ,CAAC;AAED,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,MAAM;IACN,UAAU;IACV,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,MAAM;IACN,OAAO;IACP,KAAK;CACN,CAAC,CAAC;AAEH,SAAS,cAAc,CAAC,MAAyB;IAC/C,OAAO,CACL,mBAAmB,CAAC,MAAM,CAAC;QAC3B,MAAM,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM;QAC3B,CAAC,MAAM,CAAC,SAAS;QACjB,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CACnE,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,6DAA6D;AAC7D,SAAS,kBAAkB,CAAC,MAAyB;IACnD,IACE,CAAC,mBAAmB,CAAC,MAAM,CAAC;QAC5B,MAAM,CAAC,EAAE,EAAE,KAAK,KAAK,MAAM;QAC3B,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAElE,OAAO,IAAI,CAAC;IACd,MAAM,QAAQ,GAAG;QACf,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;QACzC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAClD,CAAC,KAAK,EAA8B,EAAE,CAAC,CAAC,CAAC,KAAK,CAC/C;QACD,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QACvB,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QACvB,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;KAC9B,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,QAAQ,CAAC,MAAyB;IACzC,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IACzE,OAAO,CACL,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QACrD,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;YACtB,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM;YACtB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAChC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,MAAyB;IAC/C,IAAI,kBAAkB,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,0EAA0E;QAC1E,OAAO,CACL,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CACvD,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,CACvB;YACD,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM;YAC5B,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CACvB,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,CACL,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAC1E,CAAC;IACJ,CAAC;IACD,gFAAgF;IAChF,OAAO,CACL,MAAM,CAAC,IAAI,KAAK,OAAO;QACvB,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM;QACnB,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,sBAAsB,CACpC,UAAgE;IAEhE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,CACX,MAAyC,EACzC,MAAc,EACR,EAAE;QACR,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,wEAAwE;YACxE,IACE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACjB,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAEvD,SAAS;YACX,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,IAAI,EAAE,EAAE,GAAG,CAAC;gBAC9D,SAAS;YACX,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;gBAAE,SAAS;YACtC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/C,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW;gBAAE,SAAS;YACjD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBAClD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAC9B,SAAS;YACX,CAAC;YACD,IAAI,cAAc,CAAC,MAAM,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5B,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/base/block-types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-types.js","sourceRoot":"","sources":["../../src/base/block-types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;GAWG;AACH,2BAAyB;AACzB,oBAAkB;AAClB,kBAAgB;AAChB,oCAAkC;AAClC,wBAAsB;AACtB,wBAAsB;AACtB,yBAAuB;AACvB,+BAA6B;AAC7B,kBAAgB;AAChB,mBAAiB;AACjB,4BAA0B;AAC1B,sBAAoB;AACpB,mBAAiB;AACjB,2BAAyB;AACzB,6BAA2B;AAC3B,yBAAuB;AACvB,kCAAgC;AAChC,qBAAmB;AACnB,mBAAiB;AACjB,wBAAsB;AACtB,iBAAe;AACf,+BAA6B;AAC7B,2BAAyB;AAEzB,2EAA2E;AAC3E,6DAA6D;AAC7D,iDAA+B;AAC/B,2DAAyC;AACzC,4DAA0C;AAC1C,yDAAuC"}
|
|
1
|
+
{"version":3,"file":"block-types.js","sourceRoot":"","sources":["../../src/base/block-types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;GAWG;AACH,2BAAyB;AACzB,oBAAkB;AAClB,kBAAgB;AAChB,oCAAkC;AAClC,wBAAsB;AACtB,wBAAsB;AACtB,yBAAuB;AACvB,+BAA6B;AAC7B,kBAAgB;AAChB,mBAAiB;AACjB,4BAA0B;AAC1B,sBAAoB;AACpB,yBAAuB;AACvB,mBAAiB;AACjB,2BAAyB;AACzB,6BAA2B;AAC3B,yBAAuB;AACvB,kCAAgC;AAChC,qBAAmB;AACnB,mBAAiB;AACjB,wBAAsB;AACtB,iBAAe;AACf,+BAA6B;AAC7B,2BAAyB;AAEzB,2EAA2E;AAC3E,6DAA6D;AAC7D,iDAA+B;AAC/B,2DAAyC;AACzC,4DAA0C;AAC1C,yDAAuC"}
|
|
@@ -58,11 +58,11 @@ export declare const LiveToggleSchema: z.ZodObject<{
|
|
|
58
58
|
}, "strip", z.ZodTypeAny, {
|
|
59
59
|
variant?: "segmented" | "pill" | undefined;
|
|
60
60
|
align?: "left" | "right" | "center" | undefined;
|
|
61
|
-
missedLabel?: string | undefined;
|
|
62
61
|
showUpdatedAt?: boolean | undefined;
|
|
62
|
+
missedLabel?: string | undefined;
|
|
63
63
|
}, {
|
|
64
64
|
variant?: "segmented" | "pill" | undefined;
|
|
65
65
|
align?: "left" | "right" | "center" | undefined;
|
|
66
|
-
missedLabel?: string | undefined;
|
|
67
66
|
showUpdatedAt?: boolean | undefined;
|
|
67
|
+
missedLabel?: string | undefined;
|
|
68
68
|
}>;
|
|
@@ -141,13 +141,13 @@ export declare const PeriodSelectorSchema: z.ZodObject<{
|
|
|
141
141
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
|
|
142
142
|
variant?: "default" | "segmented" | undefined;
|
|
143
143
|
rememberKey?: string | undefined;
|
|
144
|
+
align?: "left" | "right" | "center" | undefined;
|
|
144
145
|
defaultPreset?: "custom" | "all" | "last-hour" | "last-24h" | "today" | "yesterday" | "last-7-days" | "last-30-days" | "last-90-days" | "this-month" | "last-month" | "this-quarter" | "last-quarter" | "ytd" | "last-year" | undefined;
|
|
145
146
|
defaultComparison?: "custom" | "none" | "previous-period" | "previous-year" | undefined;
|
|
146
147
|
presets?: ("custom" | "all" | "last-hour" | "last-24h" | "today" | "yesterday" | "last-7-days" | "last-30-days" | "last-90-days" | "this-month" | "last-month" | "this-quarter" | "last-quarter" | "ytd" | "last-year")[] | undefined;
|
|
147
148
|
comparisons?: ("custom" | "none" | "previous-period" | "previous-year")[] | undefined;
|
|
148
149
|
presetLabels?: Partial<Record<"custom" | "all" | "last-hour" | "last-24h" | "today" | "yesterday" | "last-7-days" | "last-30-days" | "last-90-days" | "this-month" | "last-month" | "this-quarter" | "last-quarter" | "ytd" | "last-year", string>> | undefined;
|
|
149
150
|
comparisonLabels?: Partial<Record<"custom" | "none" | "previous-period" | "previous-year", string>> | undefined;
|
|
150
|
-
align?: "left" | "right" | "center" | undefined;
|
|
151
151
|
showRangeLabel?: boolean | undefined;
|
|
152
152
|
rangeLabel?: "relative" | "absolute" | undefined;
|
|
153
153
|
comparisonControl?: "hidden" | "menu" | "toggle" | undefined;
|
|
@@ -157,13 +157,13 @@ export declare const PeriodSelectorSchema: z.ZodObject<{
|
|
|
157
157
|
id?: string | undefined;
|
|
158
158
|
variant?: "default" | "segmented" | undefined;
|
|
159
159
|
rememberKey?: string | undefined;
|
|
160
|
+
align?: "left" | "right" | "center" | undefined;
|
|
160
161
|
defaultPreset?: "custom" | "all" | "last-hour" | "last-24h" | "today" | "yesterday" | "last-7-days" | "last-30-days" | "last-90-days" | "this-month" | "last-month" | "this-quarter" | "last-quarter" | "ytd" | "last-year" | undefined;
|
|
161
162
|
defaultComparison?: "custom" | "none" | "previous-period" | "previous-year" | undefined;
|
|
162
163
|
presets?: ("custom" | "all" | "last-hour" | "last-24h" | "today" | "yesterday" | "last-7-days" | "last-30-days" | "last-90-days" | "this-month" | "last-month" | "this-quarter" | "last-quarter" | "ytd" | "last-year")[] | undefined;
|
|
163
164
|
comparisons?: ("custom" | "none" | "previous-period" | "previous-year")[] | undefined;
|
|
164
165
|
presetLabels?: Partial<Record<"custom" | "all" | "last-hour" | "last-24h" | "today" | "yesterday" | "last-7-days" | "last-30-days" | "last-90-days" | "this-month" | "last-month" | "this-quarter" | "last-quarter" | "ytd" | "last-year", string>> | undefined;
|
|
165
166
|
comparisonLabels?: Partial<Record<"custom" | "none" | "previous-period" | "previous-year", string>> | undefined;
|
|
166
|
-
align?: "left" | "right" | "center" | undefined;
|
|
167
167
|
showRangeLabel?: boolean | undefined;
|
|
168
168
|
rangeLabel?: "relative" | "absolute" | undefined;
|
|
169
169
|
comparisonControl?: "hidden" | "menu" | "toggle" | undefined;
|
package/dist/base/placeholder.js
CHANGED
|
@@ -15,11 +15,11 @@ exports.PlaceholderSchema = zod_1.z.object({
|
|
|
15
15
|
height: (0, block_registry_1.ui)(zod_1.z
|
|
16
16
|
.string()
|
|
17
17
|
.optional()
|
|
18
|
-
.describe("How tall the box is, such as 200px; left empty, it fills its place."), { label: "Height", group: "appearance" }),
|
|
18
|
+
.describe("How tall the box is, such as 200px; left empty, it fills its place."), { label: "Height", group: "appearance", advanced: true }),
|
|
19
19
|
width: (0, block_registry_1.ui)(zod_1.z
|
|
20
20
|
.string()
|
|
21
21
|
.optional()
|
|
22
|
-
.describe("How wide the box is, such as 300px; left empty, it fills its column."), { label: "Width", group: "appearance" }),
|
|
22
|
+
.describe("How wide the box is, such as 300px; left empty, it fills its column."), { label: "Width", group: "appearance", advanced: true }),
|
|
23
23
|
});
|
|
24
24
|
/**
|
|
25
25
|
* Placeholder - Development Placeholder Component
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"placeholder.js","sourceRoot":"","sources":["../../src/base/placeholder.ts"],"names":[],"mappings":";;;AAiEA,kCASC;AA1ED,4CAAgD;AAChD,6BAAwB;AACxB,qDAA+E;AAE/E,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;AAwBrD,yCAAyC;AAC5B,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE;QACtE,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,SAAS;KACjB,CAAC;IACF,MAAM,EAAE,IAAA,mBAAE,EACR,OAAC;SACE,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qEAAqE,CACtE,EACH,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"placeholder.js","sourceRoot":"","sources":["../../src/base/placeholder.ts"],"names":[],"mappings":";;;AAiEA,kCASC;AA1ED,4CAAgD;AAChD,6BAAwB;AACxB,qDAA+E;AAE/E,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;AAwBrD,yCAAyC;AAC5B,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE;QACtE,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,SAAS;KACjB,CAAC;IACF,MAAM,EAAE,IAAA,mBAAE,EACR,OAAC;SACE,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qEAAqE,CACtE,EACH,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CACzD;IACD,KAAK,EAAE,IAAA,mBAAE,EACP,OAAC;SACE,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,sEAAsE,CACvE,EACH,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CACxD;CACF,CAA+C,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,SAAgB,WAAW,CACzB,OAA4B;IAE5B,OAAO,IAAI,4BAAgB,CAAqB,0BAA0B,CAAC;SACxE,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;SACvB,IAAI,CAAC;QACJ,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,gBAAgB;KACvB,CAAC,CAAC;AACP,CAAC;AAED,IAAA,kCAAiB,EAAC;IAChB,IAAI,EAAE,aAAa;IACnB,aAAa,EAAE,0BAA0B;IACzC,MAAM,EAAE,yBAAiB;IACzB,IAAI,EAAE;QACJ,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,kDAAkD;QAC/D,KAAK,EAAE,QAAQ;KAChB;CACF,CAAC,CAAC"}
|
|
@@ -839,17 +839,17 @@ export declare const TableViewSchema: z.ZodObject<{
|
|
|
839
839
|
whileSorted: z.ZodOptional<z.ZodBoolean>;
|
|
840
840
|
missedLabel: z.ZodOptional<z.ZodString>;
|
|
841
841
|
}, "strip", z.ZodTypeAny, {
|
|
842
|
+
missedLabel?: string | undefined;
|
|
842
843
|
whileRowOpen?: boolean | undefined;
|
|
843
844
|
whileScrolled?: boolean | undefined;
|
|
844
845
|
whileSearching?: boolean | undefined;
|
|
845
846
|
whileSorted?: boolean | undefined;
|
|
846
|
-
missedLabel?: string | undefined;
|
|
847
847
|
}, {
|
|
848
|
+
missedLabel?: string | undefined;
|
|
848
849
|
whileRowOpen?: boolean | undefined;
|
|
849
850
|
whileScrolled?: boolean | undefined;
|
|
850
851
|
whileSearching?: boolean | undefined;
|
|
851
852
|
whileSorted?: boolean | undefined;
|
|
852
|
-
missedLabel?: string | undefined;
|
|
853
853
|
}>]>>;
|
|
854
854
|
kanban: z.ZodOptional<z.ZodObject<{
|
|
855
855
|
groupByField: z.ZodString;
|
|
@@ -1137,11 +1137,11 @@ export declare const TableViewSchema: z.ZodObject<{
|
|
|
1137
1137
|
strictRuleValidation?: boolean | undefined;
|
|
1138
1138
|
realtimeTopic?: string | string[] | undefined;
|
|
1139
1139
|
liveHold?: boolean | {
|
|
1140
|
+
missedLabel?: string | undefined;
|
|
1140
1141
|
whileRowOpen?: boolean | undefined;
|
|
1141
1142
|
whileScrolled?: boolean | undefined;
|
|
1142
1143
|
whileSearching?: boolean | undefined;
|
|
1143
1144
|
whileSorted?: boolean | undefined;
|
|
1144
|
-
missedLabel?: string | undefined;
|
|
1145
1145
|
} | undefined;
|
|
1146
1146
|
defaultDisplay?: string | undefined;
|
|
1147
1147
|
guards?: TableViewGuards<Record<string, unknown>> | undefined;
|
|
@@ -1352,11 +1352,11 @@ export declare const TableViewSchema: z.ZodObject<{
|
|
|
1352
1352
|
realtime?: boolean | undefined;
|
|
1353
1353
|
realtimeTopic?: string | string[] | undefined;
|
|
1354
1354
|
liveHold?: boolean | {
|
|
1355
|
+
missedLabel?: string | undefined;
|
|
1355
1356
|
whileRowOpen?: boolean | undefined;
|
|
1356
1357
|
whileScrolled?: boolean | undefined;
|
|
1357
1358
|
whileSearching?: boolean | undefined;
|
|
1358
1359
|
whileSorted?: boolean | undefined;
|
|
1359
|
-
missedLabel?: string | undefined;
|
|
1360
1360
|
} | undefined;
|
|
1361
1361
|
defaultDisplay?: string | undefined;
|
|
1362
1362
|
guards?: TableViewGuards<Record<string, unknown>> | undefined;
|
|
@@ -24,6 +24,7 @@ declare const ExportJobModel_base: {
|
|
|
24
24
|
delete(id: string): Promise<number>;
|
|
25
25
|
};
|
|
26
26
|
readonly schemaName: string;
|
|
27
|
+
readonly tableClass: import("@antelopejs/interface-database-decorators").Constructible<ExportJob>;
|
|
27
28
|
fromPlainData(obj: any): ExportJob;
|
|
28
29
|
fromDatabase(obj: any): ExportJob | undefined;
|
|
29
30
|
toDatabase(obj: any): Record<string, any>;
|
|
@@ -13,6 +13,7 @@ declare const InviteResolutionsModel_base: {
|
|
|
13
13
|
delete(id: string): Promise<number>;
|
|
14
14
|
};
|
|
15
15
|
readonly schemaName: string;
|
|
16
|
+
readonly tableClass: import("@antelopejs/interface-database-decorators").Constructible<InviteResolution>;
|
|
16
17
|
fromPlainData(obj: any): InviteResolution;
|
|
17
18
|
fromDatabase(obj: any): InviteResolution | undefined;
|
|
18
19
|
toDatabase(obj: any): Record<string, any>;
|
|
@@ -12,6 +12,7 @@ declare const TenantLifecycleModel_base: {
|
|
|
12
12
|
delete(id: string): Promise<number>;
|
|
13
13
|
};
|
|
14
14
|
readonly schemaName: string;
|
|
15
|
+
readonly tableClass: import("@antelopejs/interface-database-decorators").Constructible<TenantLifecycle>;
|
|
15
16
|
fromPlainData(obj: any): TenantLifecycle;
|
|
16
17
|
fromDatabase(obj: any): TenantLifecycle | undefined;
|
|
17
18
|
toDatabase(obj: any): Record<string, any>;
|
|
@@ -12,6 +12,7 @@ declare const RoleModel_base: {
|
|
|
12
12
|
delete(id: string): Promise<number>;
|
|
13
13
|
};
|
|
14
14
|
readonly schemaName: string;
|
|
15
|
+
readonly tableClass: import("@antelopejs/interface-database-decorators").Constructible<Role>;
|
|
15
16
|
fromPlainData(obj: any): Role;
|
|
16
17
|
fromDatabase(obj: any): Role | undefined;
|
|
17
18
|
toDatabase(obj: any): Record<string, any>;
|
|
@@ -12,6 +12,7 @@ declare const TenantMemberModel_base: {
|
|
|
12
12
|
delete(id: string): Promise<number>;
|
|
13
13
|
};
|
|
14
14
|
readonly schemaName: string;
|
|
15
|
+
readonly tableClass: import("@antelopejs/interface-database-decorators").Constructible<TenantMember>;
|
|
15
16
|
fromPlainData(obj: any): TenantMember;
|
|
16
17
|
fromDatabase(obj: any): TenantMember | undefined;
|
|
17
18
|
toDatabase(obj: any): Record<string, any>;
|