@metaobjectsdev/codegen-ts-tanstack 0.24.5 → 1.0.0-rc.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/dist/tanstack-grid-hook.d.ts +28 -2
- package/dist/tanstack-grid-hook.d.ts.map +1 -1
- package/dist/tanstack-grid-hook.js +34 -17
- package/dist/tanstack-grid-hook.js.map +1 -1
- package/dist/tanstack-grid.d.ts +27 -3
- package/dist/tanstack-grid.d.ts.map +1 -1
- package/dist/tanstack-grid.js +19 -11
- package/dist/tanstack-grid.js.map +1 -1
- package/dist/tanstack-query.d.ts +6 -2
- package/dist/tanstack-query.d.ts.map +1 -1
- package/dist/tanstack-query.js +22 -9
- package/dist/tanstack-query.js.map +1 -1
- package/dist/templates/columns-file.d.ts.map +1 -1
- package/dist/templates/columns-file.js +40 -9
- package/dist/templates/columns-file.js.map +1 -1
- package/dist/templates/grid-hook-file.js +1 -1
- package/dist/templates/grid-hook-file.js.map +1 -1
- package/dist/templates/hooks-file.js +16 -16
- package/dist/templates/hooks-file.js.map +1 -1
- package/package.json +4 -3
- package/src/reference/grid-hook.ts +59 -19
- package/src/reference/grid.ts +37 -13
- package/src/reference/hooks.ts +28 -9
- package/src/tanstack-grid-hook.ts +56 -18
- package/src/tanstack-grid.ts +36 -11
- package/src/tanstack-query.ts +27 -10
- package/src/templates/columns-file.ts +39 -6
- package/src/templates/grid-hook-file.ts +1 -1
- package/src/templates/hooks-file.ts +16 -16
|
@@ -2,14 +2,40 @@ import type { MetaObject } from "@metaobjectsdev/metadata";
|
|
|
2
2
|
import { type GeneratorFactory } from "@metaobjectsdev/codegen-ts";
|
|
3
3
|
export interface TanstackGridHookOpts {
|
|
4
4
|
filter?: (entity: MetaObject) => boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Opt a TPH subtype IN to its own per-subtype grid. Default `() => false`: a
|
|
7
|
+
* discriminator base emits ONE polymorphic grid and its subtypes emit none, which is
|
|
8
|
+
* the single-source-of-truth arrangement almost every TPH model wants.
|
|
9
|
+
*
|
|
10
|
+
* This is an OPTION rather than a `filter` clause because it WIDENS. A `filter` is
|
|
11
|
+
* ANDed with the built-in gates, so it can only ever narrow — an opt-in is not
|
|
12
|
+
* expressible through it. (It is not a metadata attribute either: `@emitGrid` was
|
|
13
|
+
* never registered vocabulary, so authoring it failed `meta verify`.)
|
|
14
|
+
*
|
|
15
|
+
* Pass the SAME predicate to `tanstackGrid()` and `tanstackGridHook()`. If they
|
|
16
|
+
* disagree you reproduce #287 exactly: the hook emits a `<Sub>.grid.ts` whose sibling
|
|
17
|
+
* `<Sub>.columns.tsx` is never emitted — a dangling `use<Sub>DefaultGrid()`, and an
|
|
18
|
+
* outright TS2307 when the inherited layout carries an `@filter` preset, since the hook
|
|
19
|
+
* then imports `<sub>DefaultFilter` from the missing columns module.
|
|
20
|
+
*/
|
|
21
|
+
tphSubtypeGrids?: (entity: MetaObject) => boolean;
|
|
5
22
|
target?: string;
|
|
6
23
|
}
|
|
7
24
|
/**
|
|
8
25
|
* Per-entity generator that emits <Entity>.grid.ts — one
|
|
9
26
|
* use<Entity><Grid>Grid() hook per layout[dataGrid] declared on the entity.
|
|
10
27
|
*
|
|
11
|
-
* Per-entity opt-
|
|
12
|
-
*
|
|
28
|
+
* Per-entity opt-IN: presence of at least one dataGrid layout on the object
|
|
29
|
+
* (mirrors tanstackGrid).
|
|
30
|
+
*
|
|
31
|
+
* A TPH subtype additionally needs `tphSubtypeGrids` — pass the SAME predicate to
|
|
32
|
+
* tanstackGrid(), or this generator emits a `<Sub>.grid.ts` with no `<Sub>.columns.tsx`
|
|
33
|
+
* beside it.
|
|
34
|
+
*
|
|
35
|
+
* Decide per generator what you consume: wire only the generators whose output you
|
|
36
|
+
* actually import, and narrow this one with its `filter` option. There is no `@emit*`
|
|
37
|
+
* metadata attribute — those were never registered vocabulary, so `meta verify` rejects
|
|
38
|
+
* them (ERR_UNKNOWN_ATTR).
|
|
13
39
|
*/
|
|
14
40
|
export declare const tanstackGridHook: GeneratorFactory<TanstackGridHookOpts | void>;
|
|
15
41
|
//# sourceMappingURL=tanstack-grid-hook.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tanstack-grid-hook.d.ts","sourceRoot":"","sources":["../src/tanstack-grid-hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAA6B,KAAK,gBAAgB,EAExD,MAAM,4BAA4B,CAAC;AAIpC,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED
|
|
1
|
+
{"version":3,"file":"tanstack-grid-hook.d.ts","sourceRoot":"","sources":["../src/tanstack-grid-hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAA6B,KAAK,gBAAgB,EAExD,MAAM,4BAA4B,CAAC;AAIpC,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB,EAsExB,gBAAgB,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC"}
|
|
@@ -1,33 +1,43 @@
|
|
|
1
|
-
import { perEntity, formatTs, entityOutputPath, entityMetaFileName, renderEntityMetaFile, servesReadApi, isTphSubtype,
|
|
1
|
+
import { perEntity, formatTs, entityOutputPath, entityMetaFileName, renderEntityMetaFile, servesReadApi, isTphSubtype, withClientDirective, namesRef, namesConstArg, } from "@metaobjectsdev/codegen-ts";
|
|
2
2
|
import { hasDataGridLayout, warnMissingDataGridLayout } from "./data-grid-gate.js";
|
|
3
3
|
import { renderGridHookFile } from "./templates/grid-hook-file.js";
|
|
4
4
|
/**
|
|
5
5
|
* Per-entity generator that emits <Entity>.grid.ts — one
|
|
6
6
|
* use<Entity><Grid>Grid() hook per layout[dataGrid] declared on the entity.
|
|
7
7
|
*
|
|
8
|
-
* Per-entity opt-
|
|
9
|
-
*
|
|
8
|
+
* Per-entity opt-IN: presence of at least one dataGrid layout on the object
|
|
9
|
+
* (mirrors tanstackGrid).
|
|
10
|
+
*
|
|
11
|
+
* A TPH subtype additionally needs `tphSubtypeGrids` — pass the SAME predicate to
|
|
12
|
+
* tanstackGrid(), or this generator emits a `<Sub>.grid.ts` with no `<Sub>.columns.tsx`
|
|
13
|
+
* beside it.
|
|
14
|
+
*
|
|
15
|
+
* Decide per generator what you consume: wire only the generators whose output you
|
|
16
|
+
* actually import, and narrow this one with its `filter` option. There is no `@emit*`
|
|
17
|
+
* metadata attribute — those were never registered vocabulary, so `meta verify` rejects
|
|
18
|
+
* them (ERR_UNKNOWN_ATTR).
|
|
10
19
|
*/
|
|
11
20
|
export const tanstackGridHook = function tanstackGridHook(opts) {
|
|
12
21
|
const userFilter = opts?.filter ?? (() => true);
|
|
22
|
+
// Default OFF — byte-identical to the behaviour every project that never declared a
|
|
23
|
+
// per-subtype grid already had.
|
|
24
|
+
const tphSubtypeGrids = opts?.tphSubtypeGrids ?? (() => false);
|
|
13
25
|
// Every gate EXCEPT the dataGrid-layout opt-in: the framework instance-artifact
|
|
14
|
-
// guard (skips abstract types)
|
|
15
|
-
//
|
|
16
|
-
// alone held back (#287).
|
|
26
|
+
// guard (skips abstract types) and the user filter. Split out so the discoverability
|
|
27
|
+
// note can name exactly the entities the LAYOUT gate alone held back (#287).
|
|
17
28
|
//
|
|
18
|
-
// The TPH clause must MATCH tanstackGrid's exactly
|
|
29
|
+
// The TPH clause must MATCH tanstackGrid's exactly, which means the SAME
|
|
30
|
+
// `tphSubtypeGrids` predicate must be passed to both. A TPH subtype inherits its base's
|
|
19
31
|
// dataGrid layout via extends, so `hasDataGridLayout` is true for it — but tanstackGrid
|
|
20
|
-
// deliberately emits no per-subtype columns
|
|
21
|
-
// polymorphic grid is the single source of truth).
|
|
22
|
-
// subtype
|
|
23
|
-
// a dangling `use<Sub>DefaultGrid()` with nothing to pair it with, and an
|
|
24
|
-
// TS2307 when the inherited layout carries an `@filter` preset (the hook then
|
|
25
|
-
// `<sub>DefaultFilter` from the missing columns module).
|
|
32
|
+
// deliberately emits no per-subtype columns unless `tphSubtypeGrids` opts it in (the
|
|
33
|
+
// base's polymorphic grid is the single source of truth). Where the two predicates
|
|
34
|
+
// disagree, a TPH subtype gets a `<Sub>.grid.ts` whose sibling `<Sub>.columns.tsx` is
|
|
35
|
+
// never emitted: a dangling `use<Sub>DefaultGrid()` with nothing to pair it with, and an
|
|
36
|
+
// outright TS2307 when the inherited layout carries an `@filter` preset (the hook then
|
|
37
|
+
// imports `<sub>DefaultFilter` from the missing columns module).
|
|
26
38
|
const passesOtherGates = (e) => servesReadApi(e)
|
|
27
|
-
// ADR-0039: resolving — a concrete entity may inherit its @emit* opt-out flag via extends.
|
|
28
|
-
&& e.attr(CODEGEN_ATTR_EMIT_TANSTACK) !== false
|
|
29
39
|
&& userFilter(e)
|
|
30
|
-
&& (!isTphSubtype(e) || e
|
|
40
|
+
&& (!isTphSubtype(e) || tphSubtypeGrids(e));
|
|
31
41
|
const emit = perEntity(async (entity, ctx) => {
|
|
32
42
|
if (!ctx.renderContext) {
|
|
33
43
|
throw new Error("tanstack-grid-hook: renderContext is required (provided by runGen)");
|
|
@@ -37,9 +47,16 @@ export const tanstackGridHook = function tanstackGridHook(opts) {
|
|
|
37
47
|
// the entity generator is scaffold-and-own (ADR-0034), so it cannot be changed
|
|
38
48
|
// from the package. Emissions are byte-identical between generators, which the
|
|
39
49
|
// runner collapses (#266).
|
|
50
|
+
//
|
|
51
|
+
// §A6/§B2 — same `namesRef` pair every other §A6 site builds, scoped to THIS
|
|
52
|
+
// generator's own render context (see tanstack-query.ts's matching comment for why
|
|
53
|
+
// `.meta.ts` needs its own target-scoped check rather than reusing the entity
|
|
54
|
+
// module's).
|
|
55
|
+
const rc = ctx.renderContext;
|
|
56
|
+
const metaNames = namesRef(entity, rc);
|
|
40
57
|
return [{
|
|
41
58
|
path: entityOutputPath(ctx.renderContext.outputLayout, entity.package, entityMetaFileName(entity.name)),
|
|
42
|
-
content: await formatTs(renderEntityMetaFile(entity, ctx.renderContext.apiPrefix)),
|
|
59
|
+
content: await formatTs(renderEntityMetaFile(entity, ctx.renderContext.apiPrefix, namesConstArg(metaNames))),
|
|
43
60
|
}, {
|
|
44
61
|
path: entityOutputPath(ctx.renderContext.outputLayout, entity.package, `${entity.name}.grid.ts`),
|
|
45
62
|
content: withClientDirective(await formatTs(renderGridHookFile(entity, ctx.renderContext)), ctx.renderContext.clientDirective),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tanstack-grid-hook.js","sourceRoot":"","sources":["../src/tanstack-grid-hook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAyC,QAAQ,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,aAAa,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"tanstack-grid-hook.js","sourceRoot":"","sources":["../src/tanstack-grid-hook.ts"],"names":[],"mappings":"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"}
|
package/dist/tanstack-grid.d.ts
CHANGED
|
@@ -2,12 +2,36 @@ import type { MetaObject } from "@metaobjectsdev/metadata";
|
|
|
2
2
|
import { type GeneratorFactory } from "@metaobjectsdev/codegen-ts";
|
|
3
3
|
export interface TanstackGridOpts {
|
|
4
4
|
filter?: (entity: MetaObject) => boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Opt a TPH subtype IN to its own per-subtype grid. Default `() => false`: a
|
|
7
|
+
* discriminator base emits ONE polymorphic grid and its subtypes emit none, which is
|
|
8
|
+
* the single-source-of-truth arrangement almost every TPH model wants.
|
|
9
|
+
*
|
|
10
|
+
* This is an OPTION rather than a `filter` clause because it WIDENS. A `filter` is
|
|
11
|
+
* ANDed with the built-in gates, so it can only ever narrow — an opt-in is not
|
|
12
|
+
* expressible through it. (It is not a metadata attribute either: `@emitGrid` was
|
|
13
|
+
* never registered vocabulary, so authoring it failed `meta verify`.)
|
|
14
|
+
*
|
|
15
|
+
* Pass the SAME predicate to `tanstackGrid()` and `tanstackGridHook()`. If they
|
|
16
|
+
* disagree you reproduce #287 exactly: the hook emits a `<Sub>.grid.ts` whose sibling
|
|
17
|
+
* `<Sub>.columns.tsx` is never emitted — a dangling `use<Sub>DefaultGrid()`, and an
|
|
18
|
+
* outright TS2307 when the inherited layout carries an `@filter` preset, since the hook
|
|
19
|
+
* then imports `<sub>DefaultFilter` from the missing columns module.
|
|
20
|
+
*/
|
|
21
|
+
tphSubtypeGrids?: (entity: MetaObject) => boolean;
|
|
5
22
|
target?: string;
|
|
6
23
|
}
|
|
7
24
|
/**
|
|
8
|
-
* Per-entity opt-
|
|
9
|
-
*
|
|
10
|
-
*
|
|
25
|
+
* Per-entity opt-IN: presence of at least one `dataGrid` layout on the object. If that
|
|
26
|
+
* passes and the user-supplied filter passes, the generator emits.
|
|
27
|
+
*
|
|
28
|
+
* A TPH subtype additionally needs `tphSubtypeGrids` — pass the SAME predicate to
|
|
29
|
+
* tanstackGridHook(), or the emitted `<Sub>.grid.ts` has no `<Sub>.columns.tsx`.
|
|
30
|
+
*
|
|
31
|
+
* Decide per generator what you consume: wire only the generators whose output you
|
|
32
|
+
* actually import, and narrow this one with its `filter` option. There is no `@emit*`
|
|
33
|
+
* metadata attribute — those were never registered vocabulary, so `meta verify` rejects
|
|
34
|
+
* them (ERR_UNKNOWN_ATTR).
|
|
11
35
|
*/
|
|
12
36
|
export declare const tanstackGrid: GeneratorFactory<TanstackGridOpts | void>;
|
|
13
37
|
//# sourceMappingURL=tanstack-grid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tanstack-grid.d.ts","sourceRoot":"","sources":["../src/tanstack-grid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAA6B,KAAK,gBAAgB,EAExD,MAAM,4BAA4B,CAAC;AAIpC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED
|
|
1
|
+
{"version":3,"file":"tanstack-grid.d.ts","sourceRoot":"","sources":["../src/tanstack-grid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAA6B,KAAK,gBAAgB,EAExD,MAAM,4BAA4B,CAAC;AAIpC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,EAyCpB,gBAAgB,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC"}
|
package/dist/tanstack-grid.js
CHANGED
|
@@ -1,26 +1,34 @@
|
|
|
1
|
-
import { perEntity, formatTs, entityOutputPath, servesReadApi, isTphSubtype,
|
|
1
|
+
import { perEntity, formatTs, entityOutputPath, servesReadApi, isTphSubtype, withClientDirective, } from "@metaobjectsdev/codegen-ts";
|
|
2
2
|
import { hasDataGridLayout, warnMissingDataGridLayout } from "./data-grid-gate.js";
|
|
3
3
|
import { renderColumnsFile } from "./templates/columns-file.js";
|
|
4
4
|
/**
|
|
5
|
-
* Per-entity opt-
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Per-entity opt-IN: presence of at least one `dataGrid` layout on the object. If that
|
|
6
|
+
* passes and the user-supplied filter passes, the generator emits.
|
|
7
|
+
*
|
|
8
|
+
* A TPH subtype additionally needs `tphSubtypeGrids` — pass the SAME predicate to
|
|
9
|
+
* tanstackGridHook(), or the emitted `<Sub>.grid.ts` has no `<Sub>.columns.tsx`.
|
|
10
|
+
*
|
|
11
|
+
* Decide per generator what you consume: wire only the generators whose output you
|
|
12
|
+
* actually import, and narrow this one with its `filter` option. There is no `@emit*`
|
|
13
|
+
* metadata attribute — those were never registered vocabulary, so `meta verify` rejects
|
|
14
|
+
* them (ERR_UNKNOWN_ATTR).
|
|
8
15
|
*/
|
|
9
16
|
export const tanstackGrid = function tanstackGrid(opts) {
|
|
10
17
|
const userFilter = opts?.filter ?? (() => true);
|
|
18
|
+
// Default OFF — byte-identical to the behaviour every project that never declared a
|
|
19
|
+
// per-subtype grid already had.
|
|
20
|
+
const tphSubtypeGrids = opts?.tphSubtypeGrids ?? (() => false);
|
|
11
21
|
// Every gate EXCEPT the dataGrid-layout opt-in: the framework instance-artifact
|
|
12
|
-
// guard (skips abstract types)
|
|
22
|
+
// guard (skips abstract types) and the user filter.
|
|
13
23
|
// FR-017 Tier 3: a TPH discriminator base emits ONE polymorphic grid. Its
|
|
14
24
|
// subtypes inherit the base's dataGrid layout via extends, but per-subtype grids
|
|
15
|
-
// are opt-IN only
|
|
16
|
-
// single source of truth.
|
|
25
|
+
// are opt-IN only, via the `tphSubtypeGrids` option — otherwise the polymorphic
|
|
26
|
+
// grid is the single source of truth. Pass the SAME predicate to tanstackGridHook().
|
|
17
27
|
// Split out so the discoverability note can name exactly the entities the LAYOUT
|
|
18
|
-
// gate alone held back (#287) — an
|
|
28
|
+
// gate alone held back (#287) — an abstract type is not a surprise.
|
|
19
29
|
const passesOtherGates = (e) => servesReadApi(e)
|
|
20
|
-
// ADR-0039: resolving — a concrete entity may inherit its @emit* opt-out flag via extends.
|
|
21
|
-
&& e.attr(CODEGEN_ATTR_EMIT_TANSTACK) !== false
|
|
22
30
|
&& userFilter(e)
|
|
23
|
-
&& (!isTphSubtype(e) || e
|
|
31
|
+
&& (!isTphSubtype(e) || tphSubtypeGrids(e));
|
|
24
32
|
const emit = perEntity(async (entity, ctx) => {
|
|
25
33
|
if (!ctx.renderContext) {
|
|
26
34
|
throw new Error("tanstack-grid: renderContext is required (provided by runGen)");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tanstack-grid.js","sourceRoot":"","sources":["../src/tanstack-grid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAyC,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"tanstack-grid.js","sourceRoot":"","sources":["../src/tanstack-grid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAyC,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAChH,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAwBhE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,YAAY,CAAC,IAAuB;IACvE,MAAM,UAAU,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChD,oFAAoF;IACpF,gCAAgC;IAChC,MAAM,eAAe,GAAG,IAAI,EAAE,eAAe,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IAC/D,gFAAgF;IAChF,oDAAoD;IACpD,0EAA0E;IAC1E,iFAAiF;IACjF,gFAAgF;IAChF,qFAAqF;IACrF,iFAAiF;IACjF,oEAAoE;IACpE,MAAM,gBAAgB,GAAG,CAAC,CAAa,EAAW,EAAE,CAClD,aAAa,CAAC,CAAC,CAAC;WACb,UAAU,CAAC,CAAC,CAAC;WACb,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,MAAkB,EAAE,GAAG,EAAE,EAAE;QACvD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QACD,OAAO;YACL,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,cAAc,CAAC;YACpG,OAAO,EAAE,mBAAmB,CAC1B,MAAM,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,EAC5D,GAAG,CAAC,aAAa,CAAC,eAAe,CAClC;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC;QACtE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACtB,yBAAyB,CAAC,GAAG,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;YACzE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;KACF,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAA8C,CAAC"}
|
package/dist/tanstack-query.d.ts
CHANGED
|
@@ -8,8 +8,12 @@ export interface TanstackQueryOpts {
|
|
|
8
8
|
* Per-entity generator that emits <Entity>.hooks.ts — a query-key factory
|
|
9
9
|
* plus 2 query hooks and 3 mutation hooks backed by useEntityFetcher().
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
11
|
+
* If the user supplies their own filter, it AND-composes with the built-in gates.
|
|
12
|
+
*
|
|
13
|
+
* Decide per generator what you consume: wire only the generators whose output you
|
|
14
|
+
* actually import, and narrow this one with its `filter` option. There is no `@emit*`
|
|
15
|
+
* metadata attribute — those were never registered vocabulary, so `meta verify` rejects
|
|
16
|
+
* them (ERR_UNKNOWN_ATTR).
|
|
13
17
|
*/
|
|
14
18
|
export declare const tanstackQuery: GeneratorFactory<TanstackQueryOpts | void>;
|
|
15
19
|
//# sourceMappingURL=tanstack-query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tanstack-query.d.ts","sourceRoot":"","sources":["../src/tanstack-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAA6B,KAAK,gBAAgB,EAExD,MAAM,4BAA4B,CAAC;AAGpC,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED
|
|
1
|
+
{"version":3,"file":"tanstack-query.d.ts","sourceRoot":"","sources":["../src/tanstack-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAA6B,KAAK,gBAAgB,EAExD,MAAM,4BAA4B,CAAC;AAGpC,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,EAuDrB,gBAAgB,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC"}
|
package/dist/tanstack-query.js
CHANGED
|
@@ -1,24 +1,27 @@
|
|
|
1
|
-
import { perEntity, formatTs, entityOutputPath, entityMetaFileName, renderEntityMetaFile, servesReadApi, isTphSubtype,
|
|
1
|
+
import { perEntity, formatTs, entityOutputPath, entityMetaFileName, renderEntityMetaFile, servesReadApi, isTphSubtype, withClientDirective, namesRef, namesConstArg, } from "@metaobjectsdev/codegen-ts";
|
|
2
2
|
import { renderHooksFile } from "./templates/hooks-file.js";
|
|
3
3
|
/**
|
|
4
4
|
* Per-entity generator that emits <Entity>.hooks.ts — a query-key factory
|
|
5
5
|
* plus 2 query hooks and 3 mutation hooks backed by useEntityFetcher().
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* If the user supplies their own filter, it AND-composes with the built-in gates.
|
|
8
|
+
*
|
|
9
|
+
* Decide per generator what you consume: wire only the generators whose output you
|
|
10
|
+
* actually import, and narrow this one with its `filter` option. There is no `@emit*`
|
|
11
|
+
* metadata attribute — those were never registered vocabulary, so `meta verify` rejects
|
|
12
|
+
* them (ERR_UNKNOWN_ATTR).
|
|
9
13
|
*/
|
|
10
14
|
export const tanstackQuery = function tanstackQuery(opts) {
|
|
11
15
|
const userFilter = opts?.filter ?? (() => true);
|
|
12
16
|
const generator = {
|
|
13
17
|
name: "tanstack-query",
|
|
14
18
|
// AND-composes the framework instance-artifact guard (skips abstract types —
|
|
15
|
-
// they contribute shape via inheritance only and have no instance to query)
|
|
16
|
-
//
|
|
17
|
-
//
|
|
19
|
+
// they contribute shape via inheritance only and have no instance to query)
|
|
20
|
+
// with the optional user filter. Projections still pass here and get read-only
|
|
21
|
+
// hooks via renderHooksFile's isProjection branch.
|
|
18
22
|
// FR-017 Tier 3: TPH subtypes get no standalone hooks file — their per-subtype
|
|
19
23
|
// hooks live in the discriminator base's hooks file (polymorphic + per-subtype).
|
|
20
|
-
|
|
21
|
-
filter: (e) => servesReadApi(e) && e.attr(CODEGEN_ATTR_EMIT_TANSTACK) !== false && !isTphSubtype(e) && userFilter(e),
|
|
24
|
+
filter: (e) => servesReadApi(e) && !isTphSubtype(e) && userFilter(e),
|
|
22
25
|
generate: perEntity(async (entity, ctx) => {
|
|
23
26
|
if (!ctx.renderContext) {
|
|
24
27
|
throw new Error("tanstack-query: renderContext is required (provided by runGen)");
|
|
@@ -27,9 +30,19 @@ export const tanstackQuery = function tanstackQuery(opts) {
|
|
|
27
30
|
// generator: the entity generator is scaffold-and-own (ADR-0034), so it cannot
|
|
28
31
|
// be changed from the package. Emissions are byte-identical between generators,
|
|
29
32
|
// which the runner collapses (#266).
|
|
33
|
+
//
|
|
34
|
+
// §A6/§B2 — same `namesRef` pair every other §A6 site builds, scoped to THIS
|
|
35
|
+
// generator's own render context: `.meta.ts` is a UI-generator artifact that can
|
|
36
|
+
// sit on a DIFFERENT target from `namesFile()` (unlike the entity module, which
|
|
37
|
+
// shares a target with names by construction — see names-file.ts).
|
|
38
|
+
// `ctx.renderContext.includeNames` is already computed per-target by the runner,
|
|
39
|
+
// so it is false here whenever the names artifact does not land in THIS
|
|
40
|
+
// generator's own target — no separate check needed.
|
|
41
|
+
const rc = ctx.renderContext;
|
|
42
|
+
const metaNames = namesRef(entity, rc);
|
|
30
43
|
const metaFile = {
|
|
31
44
|
path: entityOutputPath(ctx.renderContext.outputLayout, entity.package, entityMetaFileName(entity.name)),
|
|
32
|
-
content: await formatTs(renderEntityMetaFile(entity, ctx.renderContext.apiPrefix)),
|
|
45
|
+
content: await formatTs(renderEntityMetaFile(entity, ctx.renderContext.apiPrefix, namesConstArg(metaNames))),
|
|
33
46
|
};
|
|
34
47
|
return [metaFile, {
|
|
35
48
|
path: entityOutputPath(ctx.renderContext.outputLayout, entity.package, `${entity.name}.hooks.ts`),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tanstack-query.js","sourceRoot":"","sources":["../src/tanstack-query.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAyC,QAAQ,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,aAAa,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"tanstack-query.js","sourceRoot":"","sources":["../src/tanstack-query.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAyC,QAAQ,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,aAAa,EAAE,YAAY,EAC1J,mBAAmB,EAAE,QAAQ,EAAE,aAAa,GAC7C,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAO5D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,aAAa,CAAC,IAAwB;IAC1E,MAAM,UAAU,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,gBAAgB;QACtB,6EAA6E;QAC7E,4EAA4E;QAC5E,+EAA+E;QAC/E,mDAAmD;QACnD,+EAA+E;QAC/E,iFAAiF;QACjF,MAAM,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;QAChF,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;YACJ,CAAC,CAAM,0EAA0E;YACjF,yEAAyE;YACzE,+EAA+E;YAC/E,gFAAgF;YAChF,qCAAqC;YACrC,EAAE;YACF,6EAA6E;YAC7E,iFAAiF;YACjF,gFAAgF;YAChF,mEAAmE;YACnE,iFAAiF;YACjF,wEAAwE;YACxE,qDAAqD;YACrD,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC;YAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG;gBACf,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,EACnE,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAClC,OAAO,EAAE,MAAM,QAAQ,CAAC,oBAAoB,CAC1C,MAAM,EACN,GAAG,CAAC,aAAa,CAAC,SAAS,EAC3B,aAAa,CAAC,SAAS,CAAC,CACzB,CAAC;aACH,CAAC;YACF,OAAO,CAAC,QAAQ,EAAE;oBAChB,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,WAAW,CAAC;oBACjG,4EAA4E;oBAC5E,0EAA0E;oBAC1E,OAAO,EAAE,mBAAmB,CAC1B,MAAM,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,EAC1D,GAAG,CAAC,aAAa,CAAC,eAAe,CAClC;iBACF,CAAC,CAAC;QACL,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAA+C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns-file.d.ts","sourceRoot":"","sources":["../../src/templates/columns-file.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"columns-file.d.ts","sourceRoot":"","sources":["../../src/templates/columns-file.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,0BAA0B,CAAC;AAYtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AA4KhE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CAkFhF"}
|
|
@@ -1,22 +1,34 @@
|
|
|
1
1
|
import { code, imp, joinCode } from "ts-poet";
|
|
2
|
-
import { LAYOUT_SUBTYPE_DATA_GRID, LAYOUT_DATA_GRID_ATTR_PAGE_SIZE, LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_FIELD, LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_ORDER, LAYOUT_DATA_GRID_ATTR_FILTERABLE, LAYOUT_DATA_GRID_ATTR_FILTER, LAYOUT_DATA_GRID_ATTR_COLUMNS, OBJECT_ATTR_DISCRIMINATOR, } from "@metaobjectsdev/metadata";
|
|
3
|
-
import { GENERATED_HEADER, entityModuleSpecifier, isTphDiscriminatorBase, collectTphSubtypeFields, } from "@metaobjectsdev/codegen-ts";
|
|
2
|
+
import { LAYOUT_SUBTYPE_DATA_GRID, LAYOUT_DATA_GRID_ATTR_PAGE_SIZE, LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_FIELD, LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_ORDER, LAYOUT_DATA_GRID_ATTR_FILTERABLE, LAYOUT_DATA_GRID_ATTR_FILTER, LAYOUT_DATA_GRID_ATTR_COLUMNS, OBJECT_ATTR_DISCRIMINATOR, VIEW_SUBTYPE_HIDDEN, } from "@metaobjectsdev/metadata";
|
|
3
|
+
import { GENERATED_HEADER, entityModuleSpecifier, isTphDiscriminatorBase, collectTphSubtypeFields, isSortableField, viewForContext, VIEW_CONTEXT_GRID, } from "@metaobjectsdev/codegen-ts";
|
|
4
4
|
function humanize(s) {
|
|
5
5
|
return s
|
|
6
6
|
.replace(/([a-z])([A-Z])/g, "$1 $2")
|
|
7
7
|
.replace(/^./, (c) => c.toUpperCase());
|
|
8
8
|
}
|
|
9
9
|
function fieldViewKind(field) {
|
|
10
|
+
// #356: the view declared for the GRID, never whichever view came first — a
|
|
11
|
+
// field declaring a form control and a grid cell must render both.
|
|
10
12
|
// ADR-0039: resolving — a field's view may be inherited via extends.
|
|
11
|
-
const view = field
|
|
13
|
+
const view = viewForContext(field, VIEW_CONTEXT_GRID);
|
|
12
14
|
return view?.subType ?? "text";
|
|
13
15
|
}
|
|
14
16
|
function fieldLabel(field) {
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
// #353 — this read `@label`, which NO provider registers, so the override branch was
|
|
18
|
+
// unreachable: authoring it fails the strict load `meta verify` runs (ERR_UNKNOWN_ATTR)
|
|
19
|
+
// and every header fell back to humanize(). `title` is already a registered common attr
|
|
20
|
+
// on every node and already means "a noun phrase", so nothing was registered for this
|
|
21
|
+
// — ADR-0037 step 0: the vocabulary existed, only the read was wrong.
|
|
22
|
+
// View first, then the field itself: a view-level title is the more specific override
|
|
23
|
+
// (this rendering of the field); a field-level one names the field wherever it appears.
|
|
24
|
+
// ADR-0039: resolving — a field's view (and its @title) may be inherited via extends.
|
|
25
|
+
// #356: the GRID's own view — a form control's @title must not retitle a column.
|
|
26
|
+
const viewTitle = viewForContext(field, VIEW_CONTEXT_GRID)?.attr("title");
|
|
27
|
+
if (typeof viewTitle === "string" && viewTitle.length > 0)
|
|
28
|
+
return viewTitle;
|
|
29
|
+
const fieldTitle = field.attr("title");
|
|
30
|
+
if (typeof fieldTitle === "string" && fieldTitle.length > 0)
|
|
31
|
+
return fieldTitle;
|
|
20
32
|
return humanize(field.name);
|
|
21
33
|
}
|
|
22
34
|
/**
|
|
@@ -57,10 +69,29 @@ function extractGrids(entity, tph) {
|
|
|
57
69
|
const field = fieldsByName.get(name);
|
|
58
70
|
if (!field)
|
|
59
71
|
return []; // columns ref that doesn't exist on entity; defensive skip
|
|
72
|
+
const viewKind = fieldViewKind(field);
|
|
73
|
+
// #355 — `view.hidden` is registered as "Not rendered; carried but not shown", and
|
|
74
|
+
// the generated FORM has always honoured that (an <input type="hidden">). The grid
|
|
75
|
+
// did not: no renderer is keyed `hidden`, so EntityGrid's `if (!renderer) return col`
|
|
76
|
+
// fell through to TanStack's default cell and PRINTED the value — the opposite of
|
|
77
|
+
// what the subtype says. Emitting a blank cell would not fix it either: the column
|
|
78
|
+
// would still hold a header and a sort target, so the value would be hidden while
|
|
79
|
+
// the column was not. The column is dropped instead, which is what "not rendered"
|
|
80
|
+
// means. This applies even when @columns names the field: a declaration that the
|
|
81
|
+
// field is a column and a declaration that it is not rendered contradict each other,
|
|
82
|
+
// and the one about RENDERING is the specific answer to the question a grid asks.
|
|
83
|
+
if (viewKind === VIEW_SUBTYPE_HIDDEN)
|
|
84
|
+
return [];
|
|
60
85
|
const spec = {
|
|
61
86
|
id: name,
|
|
62
87
|
header: fieldLabel(field),
|
|
63
|
-
viewKind
|
|
88
|
+
viewKind,
|
|
89
|
+
// #352 — ALWAYS emitted, never left absent. EntityGrid gates on
|
|
90
|
+
// `meta?.sortable !== false`, so an omitted flag reads as "offer it" and the
|
|
91
|
+
// header renders clickable for a field the server's SortAllowlist rejects
|
|
92
|
+
// (400 `sort.unknown_field`). isSortableField is the SAME predicate that builds
|
|
93
|
+
// that allowlist — imported (#354), never reimplemented, so the two cannot drift.
|
|
94
|
+
sortable: isSortableField(field),
|
|
64
95
|
};
|
|
65
96
|
// FR-017: the discriminator column renders as a subtype badge.
|
|
66
97
|
if (tph && name === tph.discField)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns-file.js","sourceRoot":"","sources":["../../src/templates/columns-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAC;AAEzD,OAAO,EACL,wBAAwB,EACxB,+BAA+B,EAC/B,wCAAwC,EACxC,wCAAwC,EACxC,gCAAgC,EAChC,4BAA4B,EAC5B,6BAA6B,EAC7B,yBAAyB,
|
|
1
|
+
{"version":3,"file":"columns-file.js","sourceRoot":"","sources":["../../src/templates/columns-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -108,7 +108,7 @@ export function ${hookName}() {
|
|
|
108
108
|
const query = ${useQuerySym}<{ rows: ${entityName}Row[]; total: number }>({
|
|
109
109
|
queryKey: [${JSON.stringify(lcEntity)}, "grid", ${JSON.stringify(grid.name)}, qs],
|
|
110
110
|
queryFn: () => fetcher<{ rows: ${entityName}Row[]; total: number }>(
|
|
111
|
-
\`\${${entityName}.$
|
|
111
|
+
\`\${${entityName}.$path}?\${qs}\`,
|
|
112
112
|
),
|
|
113
113
|
});
|
|
114
114
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid-hook-file.js","sourceRoot":"","sources":["../../src/templates/grid-hook-file.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yDAAyD;AACzD,wEAAwE;AACxE,2EAA2E;AAC3E,EAAE;AACF,yEAAyE;AACzE,gBAAgB;AAChB,6CAA6C;AAC7C,6FAA6F;AAE7F,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAC;AAEzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAGpE;;;kFAGkF;AAClF,SAAS,YAAY,CAAC,YAAoB;IACxC,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;QACjC,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;QACxC,CAAC,CAAC,GAAG,YAAY,OAAO,CAAC;AAC7B,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAUvG,SAAS,YAAY,CAAC,MAAkB;IACtC,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAkB,EAAE,CAAC;QACjD,IAAI,CAAC,CAAC,OAAO,KAAK,wBAAwB;YAAE,SAAS;QACrD,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS;YACzB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE;YAC1B,eAAe,EAAE,CAAC,CAAC,MAAM,KAAK,SAAS;YACvC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,gBAAgB,EAAE,CAAC,CAAC,gBAA8C;SACnE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAkB,EAAE,GAAkB;IACvE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IAC/B,MAAM,QAAQ,GAAK,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAQ,YAAY,CAAC,MAAM,CAAC,CAAC;IAExC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,yEAAyE;IACzE,8CAA8C;IAC9C,MAAM,YAAY,GAAG,qBAAqB,CACxC,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,kBAAkB,EACtB,MAAM,CAAC,OAAO,EACd,UAAU,EACV,GAAG,CAAC,QAAQ,CACb,CAAC;IAEF,uDAAuD;IACvD,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAI,GAAG,CAAC,eAAe,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAS,GAAG,CAAC,sCAAsC,CAAC,CAAC;IAC1E,MAAM,kBAAkB,GAAM,GAAG,CAAC,yCAAyC,CAAC,CAAC;IAC7E,MAAM,qBAAqB,GAAG,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAChF,MAAM,mBAAmB,GAAG,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC7E,MAAM,gBAAgB,GAAM,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAE7E,MAAM,aAAa,GAAS,IAAI,CAAA;WACvB,UAAU,WAAW,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBAC1D,UAAU,OAAO,UAAU,cAAc,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;CACpF,CAAC;IAEA,oDAAoD;IACpD,MAAM,mBAAmB,GAAa,KAAK;SACxC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAExD,0EAA0E;IAC1E,uDAAuD;IACvD,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,UAAU,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9G,MAAM,sBAAsB,GAC1B,mBAAmB,CAAC,MAAM,GAAG,CAAC;QAC5B,CAAC,CAAC,IAAI,CAAA,YAAY,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK;QAC7F,CAAC,CAAC,IAAI,CAAA,EAAE,CAAC;IAEb,MAAM,QAAQ,GAAW,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1C,MAAM,GAAG,GAAQ,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,UAAU,GAAG,GAAG,MAAM,CAAC;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAE5E,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB;YAC1C,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,KAAK,MAAM,CAAC,KAAK;YACjH,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,iBAAiB,GAAG,6BAA6B,IAAI,CAAC,QAAQ,IAAI,CAAC;QAEzE,OAAO,IAAI,CAAA;kBACG,QAAQ;8CACoB,WAAW,IAAI,eAAe,KAAK,cAAc;8CACjD,WAAW,IAAI,kBAAkB,KAAK,iBAAiB;8CACvD,WAAW,IAAI,qBAAqB;8CACpC,WAAW;;oBAErC,mBAAmB;;eAExB,UAAU;iDACwB,WAAW,CAAC,CAAC,CAAC,QAAQ,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI;;;;;;;;aAQhF,gBAAgB;;;;;;;;;;kBAUX,WAAW,YAAY,UAAU;iBAClC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;qCAC1C,UAAU;aAClC,UAAU
|
|
1
|
+
{"version":3,"file":"grid-hook-file.js","sourceRoot":"","sources":["../../src/templates/grid-hook-file.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yDAAyD;AACzD,wEAAwE;AACxE,2EAA2E;AAC3E,EAAE;AACF,yEAAyE;AACzE,gBAAgB;AAChB,6CAA6C;AAC7C,6FAA6F;AAE7F,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAC;AAEzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAGpE;;;kFAGkF;AAClF,SAAS,YAAY,CAAC,YAAoB;IACxC,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;QACjC,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;QACxC,CAAC,CAAC,GAAG,YAAY,OAAO,CAAC;AAC7B,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAUvG,SAAS,YAAY,CAAC,MAAkB;IACtC,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAkB,EAAE,CAAC;QACjD,IAAI,CAAC,CAAC,OAAO,KAAK,wBAAwB;YAAE,SAAS;QACrD,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS;YACzB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE;YAC1B,eAAe,EAAE,CAAC,CAAC,MAAM,KAAK,SAAS;YACvC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,gBAAgB,EAAE,CAAC,CAAC,gBAA8C;SACnE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAkB,EAAE,GAAkB;IACvE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IAC/B,MAAM,QAAQ,GAAK,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAQ,YAAY,CAAC,MAAM,CAAC,CAAC;IAExC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,yEAAyE;IACzE,8CAA8C;IAC9C,MAAM,YAAY,GAAG,qBAAqB,CACxC,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,kBAAkB,EACtB,MAAM,CAAC,OAAO,EACd,UAAU,EACV,GAAG,CAAC,QAAQ,CACb,CAAC;IAEF,uDAAuD;IACvD,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAI,GAAG,CAAC,eAAe,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAS,GAAG,CAAC,sCAAsC,CAAC,CAAC;IAC1E,MAAM,kBAAkB,GAAM,GAAG,CAAC,yCAAyC,CAAC,CAAC;IAC7E,MAAM,qBAAqB,GAAG,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAChF,MAAM,mBAAmB,GAAG,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC7E,MAAM,gBAAgB,GAAM,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAE7E,MAAM,aAAa,GAAS,IAAI,CAAA;WACvB,UAAU,WAAW,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBAC1D,UAAU,OAAO,UAAU,cAAc,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;CACpF,CAAC;IAEA,oDAAoD;IACpD,MAAM,mBAAmB,GAAa,KAAK;SACxC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAExD,0EAA0E;IAC1E,uDAAuD;IACvD,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,UAAU,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9G,MAAM,sBAAsB,GAC1B,mBAAmB,CAAC,MAAM,GAAG,CAAC;QAC5B,CAAC,CAAC,IAAI,CAAA,YAAY,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK;QAC7F,CAAC,CAAC,IAAI,CAAA,EAAE,CAAC;IAEb,MAAM,QAAQ,GAAW,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1C,MAAM,GAAG,GAAQ,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,UAAU,GAAG,GAAG,MAAM,CAAC;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAE5E,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB;YAC1C,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,KAAK,MAAM,CAAC,KAAK;YACjH,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,iBAAiB,GAAG,6BAA6B,IAAI,CAAC,QAAQ,IAAI,CAAC;QAEzE,OAAO,IAAI,CAAA;kBACG,QAAQ;8CACoB,WAAW,IAAI,eAAe,KAAK,cAAc;8CACjD,WAAW,IAAI,kBAAkB,KAAK,iBAAiB;8CACvD,WAAW,IAAI,qBAAqB;8CACpC,WAAW;;oBAErC,mBAAmB;;eAExB,UAAU;iDACwB,WAAW,CAAC,CAAC,CAAC,QAAQ,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI;;;;;;;;aAQhF,gBAAgB;;;;;;;;;;kBAUX,WAAW,YAAY,UAAU;iBAClC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;qCAC1C,UAAU;aAClC,UAAU;;;;;;;;;;;;;;;;;CAiBtB,CAAC;IACA,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GACV,MAAM,gBAAgB,4BAA4B;QAClD,uBAAuB,UAAU,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC;IAE1D,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,OAAO,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,GAAG,sBAAsB,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACjG,CAAC"}
|