@shamar/core 0.3.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -58
- package/dist/actions.d.ts +2 -0
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +8 -0
- package/dist/actions.js.map +1 -1
- package/dist/form.d.ts +2 -0
- package/dist/form.d.ts.map +1 -1
- package/dist/form.js +20 -0
- package/dist/form.js.map +1 -1
- package/dist/infolist.d.ts +5 -0
- package/dist/infolist.d.ts.map +1 -1
- package/dist/infolist.js +24 -0
- package/dist/infolist.js.map +1 -1
- package/dist/page-content.d.ts +9 -8
- package/dist/page-content.d.ts.map +1 -1
- package/dist/page-content.js +15 -8
- package/dist/page-content.js.map +1 -1
- package/dist/page.d.ts +16 -9
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +34 -17
- package/dist/page.js.map +1 -1
- package/dist/panel.d.ts +11 -1
- package/dist/panel.d.ts.map +1 -1
- package/dist/panel.js +17 -1
- package/dist/panel.js.map +1 -1
- package/dist/resource.d.ts +16 -10
- package/dist/resource.d.ts.map +1 -1
- package/dist/resource.js +42 -25
- package/dist/resource.js.map +1 -1
- package/dist/table.d.ts +2 -0
- package/dist/table.d.ts.map +1 -1
- package/dist/table.js +16 -0
- package/dist/table.js.map +1 -1
- package/dist/types.d.ts +19 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/page-content.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { acceptForm, FormBuilder } from './form.js';
|
|
2
|
+
import { acceptInfolist, InfolistBuilder } from './infolist.js';
|
|
3
|
+
import { acceptTable, TableBuilder } from './table.js';
|
|
4
4
|
export class PageSectionDefinition {
|
|
5
5
|
meta;
|
|
6
6
|
handlers;
|
|
@@ -10,13 +10,22 @@ export class PageSectionDefinition {
|
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
function resolveFormSchema(value) {
|
|
13
|
-
|
|
13
|
+
if (typeof value !== 'function')
|
|
14
|
+
return value;
|
|
15
|
+
const builder = new FormBuilder();
|
|
16
|
+
return acceptForm(value(builder), builder);
|
|
14
17
|
}
|
|
15
18
|
function resolveTableSchema(value) {
|
|
16
|
-
|
|
19
|
+
if (typeof value !== 'function')
|
|
20
|
+
return value;
|
|
21
|
+
const builder = new TableBuilder();
|
|
22
|
+
return acceptTable(value(builder), builder);
|
|
17
23
|
}
|
|
18
24
|
function resolveInfolistSchema(value) {
|
|
19
|
-
|
|
25
|
+
if (typeof value !== 'function')
|
|
26
|
+
return value;
|
|
27
|
+
const builder = new InfolistBuilder();
|
|
28
|
+
return acceptInfolist(value(builder)) ?? { entries: [], sections: [], schema: [] };
|
|
20
29
|
}
|
|
21
30
|
function buildTableListResource(sectionKey, options, tableSchema) {
|
|
22
31
|
const searchableFields = tableSchema.columns
|
|
@@ -123,6 +132,4 @@ export function pageContent(fn) {
|
|
|
123
132
|
fn(builder);
|
|
124
133
|
return builder.build();
|
|
125
134
|
}
|
|
126
|
-
/** Convenience re-exports for section builders. */
|
|
127
|
-
export { form, table, infolist };
|
|
128
135
|
//# sourceMappingURL=page-content.js.map
|
package/dist/page-content.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-content.js","sourceRoot":"","sources":["../src/page-content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"page-content.js","sourceRoot":"","sources":["../src/page-content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAqEvD,MAAM,OAAO,qBAAqB;IAErB;IACA;IAFX,YACW,IAAqB,EACrB,QAA6B;QAD7B,SAAI,GAAJ,IAAI,CAAiB;QACrB,aAAQ,GAAR,QAAQ,CAAqB;IACrC,CAAC;CACL;AA0CD,SAAS,iBAAiB,CACxB,KAAqC;IAErC,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAuC;IAEvC,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IACnC,OAAO,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAA6C;IAE7C,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;IACtC,OAAO,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACrF,CAAC;AAED,SAAS,sBAAsB,CAC7B,UAAkB,EAClB,OAAgC,EAChC,WAAwB;IAExB,MAAM,gBAAgB,GAAG,WAAW,CAAC,OAAO;SACzC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;SACrC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEhC,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,gBAAgB,IAAI,UAAU;QAC5C,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,UAAU;QAClC,aAAa,EAAE,OAAO,CAAC,KAAK,IAAI,UAAU;QAC1C,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,MAAM;QACpD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC9C,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACnD,mBAAmB,EAAE,KAAK;QAC1B,OAAO,EAAE,EAAE;QACX,gBAAgB,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAChD,WAAW,EAAE,WAAW,CAAC,WAAW;QACpC,cAAc,EAAE,WAAW,CAAC,cAAc;QAC1C,cAAc,EAAE,WAAW,CAAC,cAAc;QAC1C,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,UAAkB,EAClB,OAAmC,EACnC,MAAsB;IAEtB,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,UAAU;QAClC,aAAa,EAAE,OAAO,CAAC,KAAK,IAAI,UAAU;QAC1C,KAAK,EAAE,YAAY;QACnB,gBAAgB,EAAE,IAAI;QACtB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC9C,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,MAAM;QAChB,mBAAmB,EAAE,IAAI;QACzB,OAAO,EAAE,EAAE;QACX,gBAAgB,EAAE,EAAE;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,kBAAkB;IACZ,QAAQ,GAA4B,EAAE,CAAC;IAExD,IAAI,CAAC,GAAW,EAAE,OAA+B;QAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,IAAI,qBAAqB,CACvB;YACE,GAAG;YACH,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,EACD,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CACjC,CACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,GAAW,EAAE,OAA+B;QAC/C,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,IAAI,qBAAqB,CACvB;YACE,GAAG;YACH,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,EACD;YACE,IAAI,EAAE;gBACJ,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB;SACF,CACF,CACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,OAAgC;QACjD,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,IAAI,qBAAqB,CACvB;YACE,GAAG;YACH,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO;YACb,YAAY,EAAE,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC;YAC/D,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,EACD;YACE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;SAC5D,CACF,CACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,GAAW,EAAE,OAAmC;QACvD,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,IAAI,qBAAqB,CACvB;YACE,GAAG;YACH,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,UAAU;YAChB,gBAAgB,EAAE,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC;SAC9D,EACD;YACE,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;SACrC,CACF,CACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAAyC;IACnE,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACzC,EAAE,CAAC,OAAO,CAAC,CAAC;IACZ,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC"}
|
package/dist/page.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { ActionBuilder } from './actions.js';
|
|
2
|
+
import { FormBuilder } from './form.js';
|
|
3
|
+
import { InfolistBuilder } from './infolist.js';
|
|
4
|
+
import { TableBuilder } from './table.js';
|
|
4
5
|
import type { PageSectionDefinition, PageSectionMeta } from './page-content.js';
|
|
5
|
-
import type { ActionConfig, FieldConfig, FormSchema, ResourceMeta, ResourceModel, ShamarUser } from './types.js';
|
|
6
|
+
import type { ActionConfig, FieldConfig, FormSchema, InfolistSchema, ResourceMeta, ResourceModel, ShamarUser, TableSchema } from './types.js';
|
|
6
7
|
export type PageKind = 'custom' | 'form' | 'list' | 'composite';
|
|
7
8
|
/** Minimal request context passed into page lifecycle hooks. */
|
|
8
9
|
export interface PageRequestContext {
|
|
@@ -64,7 +65,7 @@ export declare abstract class Page {
|
|
|
64
65
|
static view?: string;
|
|
65
66
|
static contentMaxWidth?: string;
|
|
66
67
|
static canAccess(_user: ShamarUser | null | undefined): boolean;
|
|
67
|
-
static headerActions(): ActionConfig[];
|
|
68
|
+
static headerActions(_actions: ActionBuilder): ActionBuilder | ActionConfig[];
|
|
68
69
|
/**
|
|
69
70
|
* Extra locals for the page view (merged after fill for form pages).
|
|
70
71
|
*/
|
|
@@ -81,7 +82,13 @@ export declare abstract class Page {
|
|
|
81
82
|
* Filament-style settings / form page — mount/fill data, save on POST.
|
|
82
83
|
*/
|
|
83
84
|
export declare abstract class FormPage extends Page {
|
|
84
|
-
static form():
|
|
85
|
+
static form(form: FormBuilder): FormBuilder | FormSchema;
|
|
86
|
+
/**
|
|
87
|
+
* Whether the signed-in user may submit / mutate this form.
|
|
88
|
+
* When false, the Save control is hidden and fields render read-only.
|
|
89
|
+
* Defaults to true; override for settings / restricted pages.
|
|
90
|
+
*/
|
|
91
|
+
static canSave(_user: ShamarUser | null | undefined): boolean;
|
|
85
92
|
/**
|
|
86
93
|
* Initial form state. Defaults to `{}`; override to load a singleton / settings row.
|
|
87
94
|
*/
|
|
@@ -112,13 +119,13 @@ export declare abstract class ListPage extends Page {
|
|
|
112
119
|
field?: string;
|
|
113
120
|
};
|
|
114
121
|
static defaultPerPage?: number;
|
|
115
|
-
static table():
|
|
122
|
+
static table(table: TableBuilder): TableBuilder | TableSchema;
|
|
116
123
|
/**
|
|
117
124
|
* Optional show/infolist for row clicks (`GET /:slug/:id`).
|
|
118
125
|
* Defaults to entries derived from {@link table} columns.
|
|
119
126
|
*/
|
|
120
|
-
static infolist():
|
|
121
|
-
static listActions(): ActionConfig[];
|
|
127
|
+
static infolist(_infolist: InfolistBuilder): InfolistBuilder | InfolistSchema | undefined;
|
|
128
|
+
static listActions(_actions: ActionBuilder): ActionBuilder | ActionConfig[];
|
|
122
129
|
static configure(): PageMeta;
|
|
123
130
|
}
|
|
124
131
|
export type PageClass = typeof Page;
|
package/dist/page.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.ts"],"names":[],"mappings":"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"}
|
package/dist/page.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { acceptActions, ActionBuilder } from './actions.js';
|
|
2
|
+
import { acceptForm, FormBuilder } from './form.js';
|
|
3
|
+
import { acceptInfolist, columnsToInfolistSchema, InfolistBuilder } from './infolist.js';
|
|
4
|
+
import { acceptTable, TableBuilder } from './table.js';
|
|
5
|
+
function headerActionList(page) {
|
|
6
|
+
const builder = new ActionBuilder();
|
|
7
|
+
return acceptActions(page.headerActions(builder), builder);
|
|
8
|
+
}
|
|
4
9
|
/**
|
|
5
10
|
* Filament-style panel page — custom view, declarative sections, or header actions.
|
|
6
11
|
* Use {@link FormPage} or {@link ListPage} for a single form or table shortcut.
|
|
@@ -19,7 +24,7 @@ export class Page {
|
|
|
19
24
|
static canAccess(_user) {
|
|
20
25
|
return true;
|
|
21
26
|
}
|
|
22
|
-
static headerActions() {
|
|
27
|
+
static headerActions(_actions) {
|
|
23
28
|
return [];
|
|
24
29
|
}
|
|
25
30
|
/**
|
|
@@ -62,7 +67,7 @@ export class Page {
|
|
|
62
67
|
icon: this.icon,
|
|
63
68
|
view: this.view ?? 'shamar::page-sections',
|
|
64
69
|
contentMaxWidth: this.contentMaxWidth,
|
|
65
|
-
actions: this
|
|
70
|
+
actions: headerActionList(this),
|
|
66
71
|
sections,
|
|
67
72
|
};
|
|
68
73
|
}
|
|
@@ -77,7 +82,7 @@ export class Page {
|
|
|
77
82
|
icon: this.icon,
|
|
78
83
|
view: this.view,
|
|
79
84
|
contentMaxWidth: this.contentMaxWidth,
|
|
80
|
-
actions: this
|
|
85
|
+
actions: headerActionList(this),
|
|
81
86
|
};
|
|
82
87
|
}
|
|
83
88
|
}
|
|
@@ -85,8 +90,16 @@ export class Page {
|
|
|
85
90
|
* Filament-style settings / form page — mount/fill data, save on POST.
|
|
86
91
|
*/
|
|
87
92
|
export class FormPage extends Page {
|
|
88
|
-
static form() {
|
|
89
|
-
return form
|
|
93
|
+
static form(form) {
|
|
94
|
+
return form;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Whether the signed-in user may submit / mutate this form.
|
|
98
|
+
* When false, the Save control is hidden and fields render read-only.
|
|
99
|
+
* Defaults to true; override for settings / restricted pages.
|
|
100
|
+
*/
|
|
101
|
+
static canSave(_user) {
|
|
102
|
+
return true;
|
|
90
103
|
}
|
|
91
104
|
/**
|
|
92
105
|
* Initial form state. Defaults to `{}`; override to load a singleton / settings row.
|
|
@@ -101,7 +114,8 @@ export class FormPage extends Page {
|
|
|
101
114
|
return undefined;
|
|
102
115
|
}
|
|
103
116
|
static configure() {
|
|
104
|
-
const
|
|
117
|
+
const formBuilder = new FormBuilder();
|
|
118
|
+
const formSchema = acceptForm(this.form(formBuilder), formBuilder);
|
|
105
119
|
return {
|
|
106
120
|
...super.configure(),
|
|
107
121
|
kind: 'form',
|
|
@@ -129,24 +143,27 @@ export class ListPage extends Page {
|
|
|
129
143
|
static recordTitleField = 'name';
|
|
130
144
|
static softDelete;
|
|
131
145
|
static defaultPerPage;
|
|
132
|
-
static table() {
|
|
133
|
-
return table
|
|
146
|
+
static table(table) {
|
|
147
|
+
return table;
|
|
134
148
|
}
|
|
135
149
|
/**
|
|
136
150
|
* Optional show/infolist for row clicks (`GET /:slug/:id`).
|
|
137
151
|
* Defaults to entries derived from {@link table} columns.
|
|
138
152
|
*/
|
|
139
|
-
static infolist() {
|
|
153
|
+
static infolist(_infolist) {
|
|
140
154
|
return undefined;
|
|
141
155
|
}
|
|
142
|
-
static listActions() {
|
|
156
|
+
static listActions(_actions) {
|
|
143
157
|
// Read-only list by default — no create/edit/delete chrome.
|
|
144
158
|
return [];
|
|
145
159
|
}
|
|
146
160
|
static configure() {
|
|
147
|
-
const
|
|
148
|
-
const
|
|
149
|
-
const
|
|
161
|
+
const tableBuilder = new TableBuilder();
|
|
162
|
+
const tableSchema = acceptTable(this.table(tableBuilder), tableBuilder);
|
|
163
|
+
const actionBuilder = new ActionBuilder();
|
|
164
|
+
const actionList = acceptActions(this.listActions(actionBuilder), actionBuilder);
|
|
165
|
+
const infolistBuilder = new InfolistBuilder();
|
|
166
|
+
const explicitInfolist = acceptInfolist(this.infolist(infolistBuilder));
|
|
150
167
|
const infolistSchema = explicitInfolist ?? columnsToInfolistSchema(tableSchema.columns);
|
|
151
168
|
const searchableFields = tableSchema.columns
|
|
152
169
|
.filter((column) => column.searchable)
|
|
@@ -180,7 +197,7 @@ export class ListPage extends Page {
|
|
|
180
197
|
...super.configure(),
|
|
181
198
|
kind: 'list',
|
|
182
199
|
defaultPerPage: this.defaultPerPage,
|
|
183
|
-
actions: [...this
|
|
200
|
+
actions: [...headerActionList(this), ...actionList.filter((a) => a.placement === 'header')],
|
|
184
201
|
view: this.view ?? 'shamar::page-list',
|
|
185
202
|
listResource,
|
|
186
203
|
};
|
package/dist/page.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.js","sourceRoot":"","sources":["../src/page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"page.js","sourceRoot":"","sources":["../src/page.ts"],"names":[],"mappings":"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"}
|
package/dist/panel.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type { Resource } from './resource.js';
|
|
|
6
6
|
* Filament-style panel builder.
|
|
7
7
|
*
|
|
8
8
|
* @example
|
|
9
|
-
* panel('admin').path('/admin').discoverResources('app/
|
|
9
|
+
* panel('admin').path('/admin').discoverResources('app/panels/admin/resources')
|
|
10
10
|
*/
|
|
11
11
|
export declare class PanelBuilder {
|
|
12
12
|
private config;
|
|
@@ -75,6 +75,16 @@ export declare class PanelBuilder {
|
|
|
75
75
|
* @example panel('admin').dashboardPage(AdminDashboard)
|
|
76
76
|
*/
|
|
77
77
|
dashboardPage(pageClass: typeof DashboardPage): this;
|
|
78
|
+
/**
|
|
79
|
+
* Extra links in the user avatar dropdown (other panels, docs, marketing site).
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* panel('admin').userMenuLinks([
|
|
83
|
+
* { label: 'App panel', href: '/app' },
|
|
84
|
+
* { label: 'shamar.dev', href: 'https://shamar.dev', external: true },
|
|
85
|
+
* ])
|
|
86
|
+
*/
|
|
87
|
+
userMenuLinks(links: NonNullable<PanelConfig['userMenuLinks']>): this;
|
|
78
88
|
build(): PanelConfig;
|
|
79
89
|
}
|
|
80
90
|
export declare function panel(id: string): PanelBuilder;
|
package/dist/panel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAc;gBAEhB,EAAE,EAAE,MAAM;IAStB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAKpC;;;;;;;OAOG;IACH,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAKtC,0CAA0C;IAC1C,aAAa,IAAI,IAAI;IAIrB,0CAA0C;IAC1C,aAAa,IAAI,IAAI;IAIrB,0CAA0C;IAC1C,gBAAgB,IAAI,IAAI;IAIxB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAK1B,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,GAAG,IAAI;IAK7C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,GAAG,IAAI;IAKrC,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKpC;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKhC;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKpC;;;;;OAKG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKnC;;;OAGG;IACH,sBAAsB,CAAC,KAAK,UAAO,GAAG,IAAI;IAK1C;;;;OAIG;IACH,aAAa,CAAC,SAAS,EAAE,OAAO,aAAa,GAAG,IAAI;IAKpD,KAAK,IAAI,WAAW;
|
|
1
|
+
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAc;gBAEhB,EAAE,EAAE,MAAM;IAStB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAKpC;;;;;;;OAOG;IACH,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAKtC,0CAA0C;IAC1C,aAAa,IAAI,IAAI;IAIrB,0CAA0C;IAC1C,aAAa,IAAI,IAAI;IAIrB,0CAA0C;IAC1C,gBAAgB,IAAI,IAAI;IAIxB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAK1B,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,GAAG,IAAI;IAK7C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,GAAG,IAAI;IAKrC,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKpC;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKhC;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKpC;;;;;OAKG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKnC;;;OAGG;IACH,sBAAsB,CAAC,KAAK,UAAO,GAAG,IAAI;IAK1C;;;;OAIG;IACH,aAAa,CAAC,SAAS,EAAE,OAAO,aAAa,GAAG,IAAI;IAKpD;;;;;;;;OAQG;IACH,aAAa,CACX,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,GAC/C,IAAI;IAKP,KAAK,IAAI,WAAW;CAUrB;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAE9C"}
|
package/dist/panel.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Filament-style panel builder.
|
|
3
3
|
*
|
|
4
4
|
* @example
|
|
5
|
-
* panel('admin').path('/admin').discoverResources('app/
|
|
5
|
+
* panel('admin').path('/admin').discoverResources('app/panels/admin/resources')
|
|
6
6
|
*/
|
|
7
7
|
export class PanelBuilder {
|
|
8
8
|
config;
|
|
@@ -120,11 +120,27 @@ export class PanelBuilder {
|
|
|
120
120
|
this.config.dashboardPage = pageClass;
|
|
121
121
|
return this;
|
|
122
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Extra links in the user avatar dropdown (other panels, docs, marketing site).
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* panel('admin').userMenuLinks([
|
|
128
|
+
* { label: 'App panel', href: '/app' },
|
|
129
|
+
* { label: 'shamar.dev', href: 'https://shamar.dev', external: true },
|
|
130
|
+
* ])
|
|
131
|
+
*/
|
|
132
|
+
userMenuLinks(links) {
|
|
133
|
+
this.config.userMenuLinks = [...links];
|
|
134
|
+
return this;
|
|
135
|
+
}
|
|
123
136
|
build() {
|
|
124
137
|
return {
|
|
125
138
|
...this.config,
|
|
126
139
|
resources: [...this.config.resources],
|
|
127
140
|
pages: [...(this.config.pages ?? [])],
|
|
141
|
+
userMenuLinks: this.config.userMenuLinks
|
|
142
|
+
? [...this.config.userMenuLinks]
|
|
143
|
+
: undefined,
|
|
128
144
|
};
|
|
129
145
|
}
|
|
130
146
|
}
|
package/dist/panel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel.js","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"panel.js","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":"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"}
|
package/dist/resource.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { ActionBuilder } from './actions.js';
|
|
2
|
+
import { FormBuilder } from './form.js';
|
|
3
|
+
import { InfolistBuilder } from './infolist.js';
|
|
4
4
|
import type { PolicyClass } from './policy-types.js';
|
|
5
|
-
import {
|
|
6
|
-
import type { DataAdapter, ResourceMeta, ResourceModel, ShamarUser } from './types.js';
|
|
5
|
+
import { TableBuilder } from './table.js';
|
|
6
|
+
import type { ActionConfig, DataAdapter, FormSchema, InfolistSchema, ResourceMeta, ResourceModel, ShamarUser, TableSchema } from './types.js';
|
|
7
7
|
/** Result of {@link Resource.prepareCreate} before adapter.create. */
|
|
8
8
|
export interface PrepareCreateResult {
|
|
9
9
|
data: Record<string, unknown>;
|
|
@@ -66,16 +66,22 @@ export declare abstract class Resource {
|
|
|
66
66
|
static defaultPerPage?: number;
|
|
67
67
|
/** Optional record-level policy (Loom / Laravel style). */
|
|
68
68
|
static policy?: PolicyClass;
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
/**
|
|
70
|
+
* Create/edit fields. Chain on the builder Filament passes in:
|
|
71
|
+
* `return form.schema([...])`.
|
|
72
|
+
*/
|
|
73
|
+
static form(form: FormBuilder): FormBuilder | FormSchema;
|
|
74
|
+
/** List columns. `return table.schema([...]).defaultSort('name')`. */
|
|
75
|
+
static table(table: TableBuilder): TableBuilder | TableSchema;
|
|
71
76
|
/**
|
|
72
77
|
* Detail/infolist schema. When not overridden, derived from form fields.
|
|
73
78
|
* Alias: `detail()`.
|
|
74
79
|
*/
|
|
75
|
-
static infolist():
|
|
80
|
+
static infolist(_infolist: InfolistBuilder): InfolistBuilder | InfolistSchema | undefined;
|
|
76
81
|
/** Alias for `infolist()` (Filament naming). */
|
|
77
|
-
static detail():
|
|
78
|
-
|
|
82
|
+
static detail(infolist: InfolistBuilder): InfolistBuilder | InfolistSchema | undefined;
|
|
83
|
+
/** Header, row, and bulk actions. Call methods on `actions`, then return it. */
|
|
84
|
+
static resourceActions(_actions: ActionBuilder): ActionBuilder | ActionConfig[];
|
|
79
85
|
/**
|
|
80
86
|
* Extra abilities beyond CRUD (`viewAny` / `view` / `create` / `edit` / `delete`).
|
|
81
87
|
* Seeded as `{slug}:{ability}` unless the name already contains `:`.
|
package/dist/resource.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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"}
|
package/dist/resource.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { defaultActions } from './actions.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { acceptActions, ActionBuilder, defaultActions } from './actions.js';
|
|
2
|
+
import { acceptForm, FormBuilder } from './form.js';
|
|
3
|
+
import { acceptInfolist, formSchemaToInfolistSchema, InfolistBuilder } from './infolist.js';
|
|
4
4
|
import { userHasPermission, normalizeCustomPermissions } from './permissions.js';
|
|
5
|
-
import {
|
|
5
|
+
import { acceptTable, TableBuilder } from './table.js';
|
|
6
6
|
/**
|
|
7
7
|
* Base resource class — Filament `Resource` equivalent.
|
|
8
8
|
*
|
|
@@ -40,24 +40,30 @@ export class Resource {
|
|
|
40
40
|
static defaultPerPage;
|
|
41
41
|
/** Optional record-level policy (Loom / Laravel style). */
|
|
42
42
|
static policy;
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
/**
|
|
44
|
+
* Create/edit fields. Chain on the builder Filament passes in:
|
|
45
|
+
* `return form.schema([...])`.
|
|
46
|
+
*/
|
|
47
|
+
static form(form) {
|
|
48
|
+
return form;
|
|
45
49
|
}
|
|
46
|
-
|
|
47
|
-
|
|
50
|
+
/** List columns. `return table.schema([...]).defaultSort('name')`. */
|
|
51
|
+
static table(table) {
|
|
52
|
+
return table;
|
|
48
53
|
}
|
|
49
54
|
/**
|
|
50
55
|
* Detail/infolist schema. When not overridden, derived from form fields.
|
|
51
56
|
* Alias: `detail()`.
|
|
52
57
|
*/
|
|
53
|
-
static infolist() {
|
|
58
|
+
static infolist(_infolist) {
|
|
54
59
|
return undefined;
|
|
55
60
|
}
|
|
56
61
|
/** Alias for `infolist()` (Filament naming). */
|
|
57
|
-
static detail() {
|
|
58
|
-
return this.infolist();
|
|
62
|
+
static detail(infolist) {
|
|
63
|
+
return this.infolist(infolist);
|
|
59
64
|
}
|
|
60
|
-
|
|
65
|
+
/** Header, row, and bulk actions. Call methods on `actions`, then return it. */
|
|
66
|
+
static resourceActions(_actions) {
|
|
61
67
|
return defaultActions();
|
|
62
68
|
}
|
|
63
69
|
/**
|
|
@@ -111,10 +117,18 @@ export class Resource {
|
|
|
111
117
|
return userHasPermission(user, this.slug, 'delete');
|
|
112
118
|
}
|
|
113
119
|
static configure() {
|
|
114
|
-
const
|
|
115
|
-
const
|
|
116
|
-
const
|
|
117
|
-
const
|
|
120
|
+
const formBuilder = new FormBuilder();
|
|
121
|
+
const formSchema = acceptForm(this.form(formBuilder), formBuilder);
|
|
122
|
+
const tableBuilder = new TableBuilder();
|
|
123
|
+
const tableSchema = acceptTable(this.table(tableBuilder), tableBuilder);
|
|
124
|
+
const actionBuilder = new ActionBuilder();
|
|
125
|
+
const actionList = acceptActions(this.resourceActions(actionBuilder), actionBuilder);
|
|
126
|
+
const infolistBuilder = new InfolistBuilder();
|
|
127
|
+
let explicitInfolist = acceptInfolist(this.infolist(infolistBuilder));
|
|
128
|
+
if (!explicitInfolist) {
|
|
129
|
+
const detailBuilder = new InfolistBuilder();
|
|
130
|
+
explicitInfolist = acceptInfolist(this.detail(detailBuilder));
|
|
131
|
+
}
|
|
118
132
|
const hasExplicitInfolist = explicitInfolist !== undefined;
|
|
119
133
|
const infolistSchema = explicitInfolist ?? formSchemaToInfolistSchema(formSchema);
|
|
120
134
|
const searchableFields = [
|
|
@@ -167,20 +181,23 @@ export function extendResource(Base, overrides) {
|
|
|
167
181
|
static model = overrides.model ?? Base.model;
|
|
168
182
|
static connection = overrides.connection ?? Base.connection;
|
|
169
183
|
static navigationGroup = overrides.navigationGroup ?? Base.navigationGroup;
|
|
170
|
-
static form() {
|
|
184
|
+
static form(form) {
|
|
171
185
|
if (!overrides.form)
|
|
172
|
-
return Base.form();
|
|
173
|
-
|
|
186
|
+
return Base.form(form);
|
|
187
|
+
overrides.form(form);
|
|
188
|
+
return form;
|
|
174
189
|
}
|
|
175
|
-
static table() {
|
|
190
|
+
static table(table) {
|
|
176
191
|
if (!overrides.table)
|
|
177
|
-
return Base.table();
|
|
178
|
-
|
|
192
|
+
return Base.table(table);
|
|
193
|
+
overrides.table(table);
|
|
194
|
+
return table;
|
|
179
195
|
}
|
|
180
|
-
static infolist() {
|
|
196
|
+
static infolist(infolist) {
|
|
181
197
|
if (!overrides.infolist)
|
|
182
|
-
return Base.infolist();
|
|
183
|
-
|
|
198
|
+
return Base.infolist(infolist);
|
|
199
|
+
overrides.infolist(infolist);
|
|
200
|
+
return infolist;
|
|
184
201
|
}
|
|
185
202
|
};
|
|
186
203
|
}
|
package/dist/resource.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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"}
|
package/dist/table.d.ts
CHANGED
|
@@ -67,5 +67,7 @@ export declare class TableBuilder {
|
|
|
67
67
|
build(): TableSchema;
|
|
68
68
|
}
|
|
69
69
|
export declare function table(callback: (builder: TableBuilder) => void): TableSchema;
|
|
70
|
+
/** `static table(table: TableBuilder)` returns the builder or a built schema. */
|
|
71
|
+
export declare function acceptTable(result: TableBuilder | TableSchema | void, builder: TableBuilder): TableSchema;
|
|
70
72
|
export declare function columnTypeLabel(type: FieldType): string;
|
|
71
73
|
//# sourceMappingURL=table.d.ts.map
|
package/dist/table.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,UAAU,EACV,aAAa,EACb,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnE;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAe;IAE7B,OAAO;IAIP,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAIrC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B,UAAU,CAAC,KAAK,UAAO,GAAG,IAAI;IAK9B,QAAQ,CAAC,KAAK,UAAO,GAAG,IAAI;IAK5B,wCAAwC;IACxC,UAAU,CAAC,KAAK,UAAO,GAAG,IAAI;IAK9B,qDAAqD;IACrD,SAAS,CAAC,KAAK,UAAO,GAAG,IAAI;IAK7B,OAAO,IAAI,IAAI;IAMf,MAAM,IAAI,IAAI;IAMd,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,IAAI;IAMZ,QAAQ,IAAI,IAAI;IAMhB;;;;OAIG;IACH,QAAQ,CACN,aAAa,GAAE,aAAqB,EACpC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,GACtC,IAAI;IAUP,KAAK,IAAI,IAAI;IAKb,EAAE,IAAI,IAAI;IAKV,0CAA0C;IAC1C,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAKjC,UAAU,IAAI,IAAI;IAIlB,WAAW,IAAI,IAAI;IAInB,QAAQ,IAAI,IAAI;IAIhB,YAAY,IAAI,IAAI;IAIpB,0BAA0B;IAC1B,SAAS,IAAI,IAAI;IAIjB,2BAA2B;IAC3B,UAAU,IAAI,IAAI;IAIlB,uCAAuC;IACvC,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAKjD,oBAAoB,IAAI,IAAI;IAI5B,qBAAqB,IAAI,IAAI;IAI7B,kBAAkB,IAAI,IAAI;IAI1B,gBAAgB;IAChB,KAAK,IAAI,YAAY;CAGtB;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,IAAI,CAAC,CAA8C;IAC3D,OAAO,CAAC,OAAO,CAAC,CAAe;IAC/B,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI;IAKhC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,aAAsB,GAAG,IAAI;IAKnE;;;OAGG;IACH,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IAK3C,6EAA6E;IAC7E,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKnC,KAAK,IAAI,WAAW;CAQrB;AAED,wBAAgB,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,GAAG,WAAW,CAI5E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAEvD"}
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,UAAU,EACV,aAAa,EACb,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnE;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAe;IAE7B,OAAO;IAIP,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAIrC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B,UAAU,CAAC,KAAK,UAAO,GAAG,IAAI;IAK9B,QAAQ,CAAC,KAAK,UAAO,GAAG,IAAI;IAK5B,wCAAwC;IACxC,UAAU,CAAC,KAAK,UAAO,GAAG,IAAI;IAK9B,qDAAqD;IACrD,SAAS,CAAC,KAAK,UAAO,GAAG,IAAI;IAK7B,OAAO,IAAI,IAAI;IAMf,MAAM,IAAI,IAAI;IAMd,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,IAAI;IAMZ,QAAQ,IAAI,IAAI;IAMhB;;;;OAIG;IACH,QAAQ,CACN,aAAa,GAAE,aAAqB,EACpC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,GACtC,IAAI;IAUP,KAAK,IAAI,IAAI;IAKb,EAAE,IAAI,IAAI;IAKV,0CAA0C;IAC1C,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAKjC,UAAU,IAAI,IAAI;IAIlB,WAAW,IAAI,IAAI;IAInB,QAAQ,IAAI,IAAI;IAIhB,YAAY,IAAI,IAAI;IAIpB,0BAA0B;IAC1B,SAAS,IAAI,IAAI;IAIjB,2BAA2B;IAC3B,UAAU,IAAI,IAAI;IAIlB,uCAAuC;IACvC,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAKjD,oBAAoB,IAAI,IAAI;IAI5B,qBAAqB,IAAI,IAAI;IAI7B,kBAAkB,IAAI,IAAI;IAI1B,gBAAgB;IAChB,KAAK,IAAI,YAAY;CAGtB;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,IAAI,CAAC,CAA8C;IAC3D,OAAO,CAAC,OAAO,CAAC,CAAe;IAC/B,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI;IAKhC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,aAAsB,GAAG,IAAI;IAKnE;;;OAGG;IACH,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IAK3C,6EAA6E;IAC7E,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKnC,KAAK,IAAI,WAAW;CAQrB;AAED,wBAAgB,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,GAAG,WAAW,CAI5E;AAED,iFAAiF;AACjF,wBAAgB,WAAW,CACzB,MAAM,EAAE,YAAY,GAAG,WAAW,GAAG,IAAI,EACzC,OAAO,EAAE,YAAY,GACpB,WAAW,CAIb;AAcD,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAEvD"}
|
package/dist/table.js
CHANGED
|
@@ -166,6 +166,22 @@ export function table(callback) {
|
|
|
166
166
|
callback(builder);
|
|
167
167
|
return builder.build();
|
|
168
168
|
}
|
|
169
|
+
/** `static table(table: TableBuilder)` returns the builder or a built schema. */
|
|
170
|
+
export function acceptTable(result, builder) {
|
|
171
|
+
if (isTableBuilder(result))
|
|
172
|
+
return result.build();
|
|
173
|
+
if (isTableSchema(result))
|
|
174
|
+
return result;
|
|
175
|
+
return builder.build();
|
|
176
|
+
}
|
|
177
|
+
function isTableBuilder(value) {
|
|
178
|
+
return (!!value &&
|
|
179
|
+
typeof value.build === 'function' &&
|
|
180
|
+
typeof value.schema === 'function');
|
|
181
|
+
}
|
|
182
|
+
function isTableSchema(value) {
|
|
183
|
+
return !!value && Array.isArray(value.columns);
|
|
184
|
+
}
|
|
169
185
|
export function columnTypeLabel(type) {
|
|
170
186
|
return type;
|
|
171
187
|
}
|