@fougere/admin 0.9.3-alpha.0 → 0.11.0-alpha.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/dist/{extensions.d.ts → AdminExtension.d.ts} +5 -14
- package/dist/AdminExtension.d.ts.map +1 -0
- package/dist/{extensions.js → AdminExtension.js} +3 -3
- package/dist/AdminExtension.js.map +1 -0
- package/dist/AdminFacetRegistry.d.ts +9 -0
- package/dist/AdminFacetRegistry.d.ts.map +1 -0
- package/dist/AdminFacetRegistry.js +2 -0
- package/dist/AdminFacetRegistry.js.map +1 -0
- package/dist/AdminFacets.d.ts +6 -0
- package/dist/AdminFacets.d.ts.map +1 -0
- package/dist/{facets.js → AdminFacets.js} +1 -1
- package/dist/AdminFacets.js.map +1 -0
- package/dist/AdminFieldExtension.d.ts +7 -0
- package/dist/AdminFieldExtension.d.ts.map +1 -0
- package/dist/AdminFieldExtension.js +2 -0
- package/dist/AdminFieldExtension.js.map +1 -0
- package/dist/AdminOperation.d.ts +9 -0
- package/dist/AdminOperation.d.ts.map +1 -0
- package/dist/AdminOperation.js +2 -0
- package/dist/AdminOperation.js.map +1 -0
- package/dist/AdminOperationExtension.d.ts +6 -0
- package/dist/AdminOperationExtension.d.ts.map +1 -0
- package/dist/AdminOperationExtension.js +2 -0
- package/dist/AdminOperationExtension.js.map +1 -0
- package/dist/{resources.d.ts → AdminResource.d.ts} +11 -17
- package/dist/AdminResource.d.ts.map +1 -0
- package/dist/{resources.js → AdminResource.js} +13 -14
- package/dist/AdminResource.js.map +1 -0
- package/dist/AdminRuntime.d.ts +11 -0
- package/dist/AdminRuntime.d.ts.map +1 -0
- package/dist/{runtime.js → AdminRuntime.js} +5 -6
- package/dist/AdminRuntime.js.map +1 -0
- package/dist/AdminRuntimeOptions.d.ts +8 -0
- package/dist/AdminRuntimeOptions.d.ts.map +1 -0
- package/dist/AdminRuntimeOptions.js +2 -0
- package/dist/AdminRuntimeOptions.js.map +1 -0
- package/dist/{topology.d.ts → Drawing.d.ts} +5 -46
- package/dist/Drawing.d.ts.map +1 -0
- package/dist/{topology.js → Drawing.js} +4 -5
- package/dist/Drawing.js.map +1 -0
- package/dist/EditorialFacet.d.ts +13 -0
- package/dist/EditorialFacet.d.ts.map +1 -0
- package/dist/EditorialFacet.js +2 -0
- package/dist/EditorialFacet.js.map +1 -0
- package/dist/FougereAdminProps.d.ts +17 -0
- package/dist/FougereAdminProps.d.ts.map +1 -0
- package/dist/FougereAdminProps.js +2 -0
- package/dist/FougereAdminProps.js.map +1 -0
- package/dist/FougereDashboardContextValue.d.ts +11 -0
- package/dist/FougereDashboardContextValue.d.ts.map +1 -0
- package/dist/FougereDashboardContextValue.js +2 -0
- package/dist/FougereDashboardContextValue.js.map +1 -0
- package/dist/FougereDashboardExtension.d.ts +13 -0
- package/dist/FougereDashboardExtension.d.ts.map +1 -0
- package/dist/FougereDashboardExtension.js +2 -0
- package/dist/FougereDashboardExtension.js.map +1 -0
- package/dist/FougereDashboardMetrics.d.ts +7 -0
- package/dist/FougereDashboardMetrics.d.ts.map +1 -0
- package/dist/FougereDashboardMetrics.js +2 -0
- package/dist/FougereDashboardMetrics.js.map +1 -0
- package/dist/FougereDashboardResource.d.ts +14 -0
- package/dist/FougereDashboardResource.d.ts.map +1 -0
- package/dist/FougereDashboardResource.js +2 -0
- package/dist/FougereDashboardResource.js.map +1 -0
- package/dist/FougereDashboardWidget.d.ts +11 -0
- package/dist/FougereDashboardWidget.d.ts.map +1 -0
- package/dist/FougereDashboardWidget.js +2 -0
- package/dist/FougereDashboardWidget.js.map +1 -0
- package/dist/FougereDashboardZone.d.ts +2 -0
- package/dist/FougereDashboardZone.d.ts.map +1 -0
- package/dist/FougereDashboardZone.js +2 -0
- package/dist/FougereDashboardZone.js.map +1 -0
- package/dist/{provider.d.ts → FougereDataProvider.d.ts} +2 -17
- package/dist/FougereDataProvider.d.ts.map +1 -0
- package/dist/{provider.js → FougereDataProvider.js} +2 -3
- package/dist/FougereDataProvider.js.map +1 -0
- package/dist/FougereResourceOptions.d.ts +16 -0
- package/dist/FougereResourceOptions.d.ts.map +1 -0
- package/dist/FougereResourceOptions.js +2 -0
- package/dist/FougereResourceOptions.js.map +1 -0
- package/dist/LoadedAdmin.d.ts +7 -0
- package/dist/LoadedAdmin.d.ts.map +1 -0
- package/dist/LoadedAdmin.js +2 -0
- package/dist/LoadedAdmin.js.map +1 -0
- package/dist/PlacedEdge.d.ts +17 -0
- package/dist/PlacedEdge.d.ts.map +1 -0
- package/dist/PlacedEdge.js +2 -0
- package/dist/PlacedEdge.js.map +1 -0
- package/dist/PlacedNode.d.ts +10 -0
- package/dist/PlacedNode.d.ts.map +1 -0
- package/dist/PlacedNode.js +2 -0
- package/dist/PlacedNode.js.map +1 -0
- package/dist/Point.d.ts +5 -0
- package/dist/Point.d.ts.map +1 -0
- package/dist/Point.js +2 -0
- package/dist/Point.js.map +1 -0
- package/dist/ProviderOptions.d.ts +10 -0
- package/dist/ProviderOptions.d.ts.map +1 -0
- package/dist/ProviderOptions.js +2 -0
- package/dist/ProviderOptions.js.map +1 -0
- package/dist/ReactAdminFieldContext.d.ts +10 -0
- package/dist/ReactAdminFieldContext.d.ts.map +1 -0
- package/dist/ReactAdminFieldContext.js +2 -0
- package/dist/ReactAdminFieldContext.js.map +1 -0
- package/dist/ReactAdminFieldRenderer.d.ts +4 -0
- package/dist/ReactAdminFieldRenderer.d.ts.map +1 -0
- package/dist/ReactAdminFieldRenderer.js +2 -0
- package/dist/ReactAdminFieldRenderer.js.map +1 -0
- package/dist/ReactAdminInputContext.d.ts +9 -0
- package/dist/ReactAdminInputContext.d.ts.map +1 -0
- package/dist/ReactAdminInputContext.js +2 -0
- package/dist/ReactAdminInputContext.js.map +1 -0
- package/dist/ReactAdminInputRenderer.d.ts +4 -0
- package/dist/ReactAdminInputRenderer.d.ts.map +1 -0
- package/dist/ReactAdminInputRenderer.js +2 -0
- package/dist/ReactAdminInputRenderer.js.map +1 -0
- package/dist/ReactAdminRenderers.d.ts +8 -0
- package/dist/ReactAdminRenderers.d.ts.map +1 -0
- package/dist/ReactAdminRenderers.js +2 -0
- package/dist/ReactAdminRenderers.js.map +1 -0
- package/dist/ReactAdminResourceComponents.d.ts +9 -0
- package/dist/ReactAdminResourceComponents.d.ts.map +1 -0
- package/dist/ReactAdminResourceComponents.js +2 -0
- package/dist/ReactAdminResourceComponents.js.map +1 -0
- package/dist/ResourceKey.d.ts +8 -0
- package/dist/ResourceKey.d.ts.map +1 -0
- package/dist/ResourceKey.js +2 -0
- package/dist/ResourceKey.js.map +1 -0
- package/dist/ResourceRenderOptions.d.ts +7 -0
- package/dist/ResourceRenderOptions.d.ts.map +1 -0
- package/dist/ResourceRenderOptions.js +2 -0
- package/dist/ResourceRenderOptions.js.map +1 -0
- package/dist/TopologyNode.d.ts +18 -0
- package/dist/TopologyNode.d.ts.map +1 -0
- package/dist/TopologyNode.js +2 -0
- package/dist/TopologyNode.js.map +1 -0
- package/dist/UsersFacet.d.ts +13 -0
- package/dist/UsersFacet.d.ts.map +1 -0
- package/dist/UsersFacet.js +2 -0
- package/dist/UsersFacet.js.map +1 -0
- package/dist/dashboard.d.ts +4 -61
- package/dist/dashboard.d.ts.map +1 -1
- package/dist/dashboard.js +9 -9
- package/dist/dashboard.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/react.d.ts +21 -65
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +7 -7
- package/dist/react.js.map +1 -1
- package/dist/theme.js +1 -1
- package/dist/topology-page.d.ts.map +1 -1
- package/dist/topology-page.js +3 -3
- package/dist/topology-page.js.map +1 -1
- package/package.json +6 -5
- package/src/{extensions.ts → AdminExtension.ts} +5 -16
- package/src/AdminFacetRegistry.ts +9 -0
- package/src/AdminFacets.ts +22 -0
- package/src/AdminFieldExtension.ts +6 -0
- package/src/AdminOperation.ts +9 -0
- package/src/AdminOperationExtension.ts +5 -0
- package/src/{resources.ts → AdminResource.ts} +18 -26
- package/src/{runtime.ts → AdminRuntime.ts} +6 -24
- package/src/AdminRuntimeOptions.ts +8 -0
- package/src/{topology.ts → Drawing.ts} +7 -60
- package/src/EditorialFacet.ts +12 -0
- package/src/FougereAdminProps.ts +17 -0
- package/src/FougereDashboardContextValue.ts +11 -0
- package/src/FougereDashboardExtension.ts +13 -0
- package/src/FougereDashboardMetrics.ts +6 -0
- package/src/FougereDashboardResource.ts +14 -0
- package/src/FougereDashboardWidget.ts +11 -0
- package/src/FougereDashboardZone.ts +1 -0
- package/src/{provider.ts → FougereDataProvider.ts} +3 -26
- package/src/FougereResourceOptions.ts +13 -0
- package/src/LoadedAdmin.ts +7 -0
- package/src/PlacedEdge.ts +17 -0
- package/src/PlacedNode.ts +10 -0
- package/src/Point.ts +4 -0
- package/src/ProviderOptions.ts +10 -0
- package/src/ReactAdminFieldContext.ts +10 -0
- package/src/ReactAdminFieldRenderer.ts +4 -0
- package/src/ReactAdminInputContext.ts +9 -0
- package/src/ReactAdminInputRenderer.ts +4 -0
- package/src/ReactAdminRenderers.ts +8 -0
- package/src/ReactAdminResourceComponents.ts +9 -0
- package/src/ResourceKey.ts +7 -0
- package/src/ResourceRenderOptions.ts +7 -0
- package/src/TopologyNode.ts +18 -0
- package/src/UsersFacet.ts +12 -0
- package/src/dashboard.tsx +19 -88
- package/src/index.ts +3 -9
- package/src/react.tsx +37 -80
- package/src/theme.tsx +1 -1
- package/src/topology-page.tsx +5 -3
- package/template/index.html +5 -0
- package/template/package.json +22 -0
- package/template/src/main.tsx +27 -0
- package/template/tsconfig.json +12 -0
- package/template/vite.config.ts +16 -0
- package/dist/extensions.d.ts.map +0 -1
- package/dist/extensions.js.map +0 -1
- package/dist/facets.d.ts +0 -36
- package/dist/facets.d.ts.map +0 -1
- package/dist/facets.js.map +0 -1
- package/dist/provider.d.ts.map +0 -1
- package/dist/provider.js.map +0 -1
- package/dist/resources.d.ts.map +0 -1
- package/dist/resources.js.map +0 -1
- package/dist/runtime.d.ts +0 -22
- package/dist/runtime.d.ts.map +0 -1
- package/dist/runtime.js.map +0 -1
- package/dist/topology.d.ts.map +0 -1
- package/dist/topology.js.map +0 -1
- package/src/facets.ts +0 -55
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type DeclaredEdge, type Edge, type FrondPlacement } from '@fougere/core/contract';
|
|
2
|
+
|
|
3
|
+
/** One frond as the page draws it: its placement, and the calls observed around it. */
|
|
4
|
+
export interface TopologyNode extends FrondPlacement {
|
|
5
|
+
/** Fronds this one called, with what it cost them. */
|
|
6
|
+
calls: Edge[];
|
|
7
|
+
/** Fronds that called this one. */
|
|
8
|
+
calledBy: Edge[];
|
|
9
|
+
/** Fronds its code reaches, whether or not a call has ever gone down the link. */
|
|
10
|
+
declaredCalls: DeclaredEdge[];
|
|
11
|
+
/** Where the config says to reach it, when it says so. */
|
|
12
|
+
at?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Declared in `remotes:` and never heard from. A different absence from an opaque remote,
|
|
15
|
+
* which answered and keeps its shape to itself: this one may simply be down.
|
|
16
|
+
*/
|
|
17
|
+
silent: boolean;
|
|
18
|
+
}
|
package/src/dashboard.tsx
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import type { FougereResourceOptions } from './FougereResourceOptions.js';
|
|
2
|
+
import type { FougereDashboardResource } from './FougereDashboardResource.js';
|
|
3
|
+
import type { FougereDashboardMetrics } from './FougereDashboardMetrics.js';
|
|
4
|
+
import type { FougereDashboardContextValue } from './FougereDashboardContextValue.js';
|
|
5
|
+
import type { FougereDashboardZone } from './FougereDashboardZone.js';
|
|
6
|
+
import type { FougereDashboardWidget } from './FougereDashboardWidget.js';
|
|
7
|
+
import type { FougereDashboardExtension } from './FougereDashboardExtension.js';
|
|
1
8
|
'use client';
|
|
2
9
|
|
|
3
10
|
import {
|
|
@@ -12,65 +19,11 @@ import {
|
|
|
12
19
|
Typography,
|
|
13
20
|
type SvgIconProps,
|
|
14
21
|
} from '@mui/material';
|
|
15
|
-
import {
|
|
16
|
-
|
|
17
|
-
useContext,
|
|
18
|
-
useEffect,
|
|
19
|
-
useMemo,
|
|
20
|
-
useState,
|
|
21
|
-
type ComponentType,
|
|
22
|
-
type ReactElement,
|
|
23
|
-
} from 'react';
|
|
24
|
-
import {
|
|
25
|
-
useDataProvider,
|
|
26
|
-
useLocaleState,
|
|
27
|
-
useRedirect,
|
|
28
|
-
useResourceDefinitions,
|
|
29
|
-
useTranslate,
|
|
30
|
-
Title,
|
|
31
|
-
type ResourceOptions,
|
|
32
|
-
} from 'react-admin';
|
|
33
|
-
import type { AdminFacets, EditorialFacet, UsersFacet } from './facets.js';
|
|
34
|
-
|
|
35
|
-
export interface FougereResourceOptions extends ResourceOptions {
|
|
36
|
-
primary: string;
|
|
37
|
-
facets: AdminFacets;
|
|
38
|
-
/** The frond that owns this door — the card groups by it, so the panel can too. */
|
|
39
|
-
frond?: string;
|
|
40
|
-
/** What the door answers, with each op's kind. `query` reads, `command` writes. */
|
|
41
|
-
operations?: readonly { name: string; kind: 'query' | 'command' }[];
|
|
42
|
-
/** How many columns the shape yields — a rough measure of an entity's width. */
|
|
43
|
-
fieldCount?: number;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export interface FougereDashboardResource {
|
|
47
|
-
name: string;
|
|
48
|
-
label: string;
|
|
49
|
-
primary: string;
|
|
50
|
-
facets: AdminFacets;
|
|
51
|
-
hasCreate: boolean;
|
|
52
|
-
hasEdit: boolean;
|
|
53
|
-
hasShow: boolean;
|
|
54
|
-
total: number;
|
|
55
|
-
rows: Record<string, unknown>[];
|
|
56
|
-
states: Record<string, number>;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export interface FougereDashboardMetrics {
|
|
60
|
-
content: number;
|
|
61
|
-
drafts: number;
|
|
62
|
-
published: number;
|
|
63
|
-
users: number;
|
|
64
|
-
}
|
|
22
|
+
import { createContext, useContext, useEffect, useMemo, useState, type ReactElement } from 'react';
|
|
23
|
+
import { useDataProvider, useLocaleState, useRedirect, useResourceDefinitions, useTranslate, Title } from 'react-admin';
|
|
65
24
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
resources: FougereDashboardResource[];
|
|
69
|
-
editorial: FougereDashboardResource[];
|
|
70
|
-
users: FougereDashboardResource[];
|
|
71
|
-
metrics: FougereDashboardMetrics;
|
|
72
|
-
navigate(view: 'list' | 'show' | 'edit' | 'create', resource: string, id?: string | number): void;
|
|
73
|
-
}
|
|
25
|
+
import type { EditorialFacet } from './EditorialFacet.js';
|
|
26
|
+
import type { UsersFacet } from './UsersFacet.js';
|
|
74
27
|
|
|
75
28
|
const DashboardContext = createContext<FougereDashboardContextValue | undefined>(undefined);
|
|
76
29
|
|
|
@@ -81,28 +34,6 @@ export function useFougereDashboard(): FougereDashboardContextValue {
|
|
|
81
34
|
return context;
|
|
82
35
|
}
|
|
83
36
|
|
|
84
|
-
export type FougereDashboardZone = 'hero' | 'metrics' | 'main';
|
|
85
|
-
|
|
86
|
-
export interface FougereDashboardWidget {
|
|
87
|
-
id: string;
|
|
88
|
-
zone: FougereDashboardZone;
|
|
89
|
-
/** Twelve-column width for `main`, four-column width for `metrics`. */
|
|
90
|
-
span: number;
|
|
91
|
-
component: ComponentType;
|
|
92
|
-
hidden?: boolean;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/** A delta over stable widget ids; a component on a new id contributes a new widget. */
|
|
96
|
-
export interface FougereDashboardExtension {
|
|
97
|
-
widget: string;
|
|
98
|
-
component?: ComponentType;
|
|
99
|
-
zone?: FougereDashboardZone;
|
|
100
|
-
span?: number;
|
|
101
|
-
hidden?: boolean;
|
|
102
|
-
before?: string;
|
|
103
|
-
after?: string;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
37
|
export function applyDashboardExtensions(
|
|
107
38
|
defaults: readonly FougereDashboardWidget[],
|
|
108
39
|
extensions: readonly FougereDashboardExtension[] = [],
|
|
@@ -388,7 +319,7 @@ function UsersWidget(): ReactElement {
|
|
|
388
319
|
* What the application IS, as opposed to what it holds.
|
|
389
320
|
*
|
|
390
321
|
* Every other widget counts rows; this one counts the shape that produced them —
|
|
391
|
-
* fronds,
|
|
322
|
+
* fronds, facades, operations split by kind, and how wide each entity is. All of it comes
|
|
392
323
|
* from the same card the menu was built from, so it costs no query at all.
|
|
393
324
|
*
|
|
394
325
|
* **Remotes are not in it, and the card is why.** `identityCardOf` maps `app.fronds`,
|
|
@@ -402,7 +333,7 @@ function StructureWidget(): ReactElement {
|
|
|
402
333
|
const definitions = useResourceDefinitions();
|
|
403
334
|
|
|
404
335
|
const structure = useMemo(() => {
|
|
405
|
-
const byFrond = new Map<string, {
|
|
336
|
+
const byFrond = new Map<string, { facades: number; queries: number; commands: number; fields: number }>();
|
|
406
337
|
let queries = 0;
|
|
407
338
|
let commands = 0;
|
|
408
339
|
let fields = 0;
|
|
@@ -414,9 +345,9 @@ function StructureWidget(): ReactElement {
|
|
|
414
345
|
const c = ops.length - q;
|
|
415
346
|
const width = options?.fieldCount ?? 0;
|
|
416
347
|
queries += q; commands += c; fields += width;
|
|
417
|
-
const held = byFrond.get(frond) ?? {
|
|
348
|
+
const held = byFrond.get(frond) ?? { facades: 0, queries: 0, commands: 0, fields: 0 };
|
|
418
349
|
byFrond.set(frond, {
|
|
419
|
-
|
|
350
|
+
facades: held.facades + 1,
|
|
420
351
|
queries: held.queries + q,
|
|
421
352
|
commands: held.commands + c,
|
|
422
353
|
fields: held.fields + width,
|
|
@@ -424,14 +355,14 @@ function StructureWidget(): ReactElement {
|
|
|
424
355
|
}
|
|
425
356
|
return {
|
|
426
357
|
fronds: [...byFrond.entries()].map(([name, counts]) => ({ name, ...counts })),
|
|
427
|
-
|
|
358
|
+
facades: Object.keys(definitions).length,
|
|
428
359
|
queries, commands, fields,
|
|
429
360
|
};
|
|
430
361
|
}, [definitions]);
|
|
431
362
|
|
|
432
363
|
const totals: [string, string, number][] = [
|
|
433
364
|
['structure.fronds', 'Fronds', structure.fronds.length],
|
|
434
|
-
['structure.
|
|
365
|
+
['structure.facades', 'Facades', structure.facades],
|
|
435
366
|
['structure.queries', 'Queries', structure.queries],
|
|
436
367
|
['structure.commands', 'Commands', structure.commands],
|
|
437
368
|
];
|
|
@@ -468,7 +399,7 @@ function StructureWidget(): ReactElement {
|
|
|
468
399
|
<Box sx={{ minWidth: 0 }}>
|
|
469
400
|
<Typography noWrap sx={{ fontWeight: 640 }}>{frond.name}</Typography>
|
|
470
401
|
<Typography variant="caption" color="text.secondary">
|
|
471
|
-
{t('structure.frondDoors', `${frond.
|
|
402
|
+
{t('structure.frondDoors', `${frond.facades} facades`, { smart_count: frond.facades })}
|
|
472
403
|
{' · '}
|
|
473
404
|
{t('structure.frondFields', `${frond.fields} fields`, { smart_count: frond.fields })}
|
|
474
405
|
</Typography>
|
|
@@ -495,7 +426,7 @@ function CollectionsWidget(): ReactElement {
|
|
|
495
426
|
const { loading, resources, navigate } = useFougereDashboard();
|
|
496
427
|
return (
|
|
497
428
|
<Card><CardContent sx={{ p: 2.5, '&:last-child': { pb: 2.5 } }}>
|
|
498
|
-
<Typography variant="h5">{t('collections.title', 'Collections')}</Typography><Typography variant="body2" color="text.secondary" sx={{ mt: .4, mb: 2 }}>{t('collections.subtitle', 'Every
|
|
429
|
+
<Typography variant="h5">{t('collections.title', 'Collections')}</Typography><Typography variant="body2" color="text.secondary" sx={{ mt: .4, mb: 2 }}>{t('collections.subtitle', 'Every facade the card announced')}</Typography>
|
|
499
430
|
<Box sx={{ display: 'grid', gridTemplateColumns: { xs: '1fr', sm: 'repeat(2,minmax(0,1fr))', lg: 'repeat(3,minmax(0,1fr))' }, gap: 1 }}>
|
|
500
431
|
{loading ? [1, 2, 3].map((key) => <Skeleton key={key} height={58} />) : resources.map((resource) => (
|
|
501
432
|
<Box key={resource.name} component="button" onClick={() => navigate('list', resource.name)} sx={{ appearance: 'none', width: '100%', display: 'flex', alignItems: 'center', gap: 1.5, p: 1.25, color: 'text.primary', bgcolor: 'transparent', border: 0, borderRadius: 2, textAlign: 'left', cursor: 'pointer', font: 'inherit', '&:hover': { bgcolor: 'action.hover' } }}>
|
package/src/index.ts
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
export {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
} from './extensions.js';
|
|
5
|
-
export {
|
|
6
|
-
type TopologyReport,
|
|
7
|
-
type FrondPlacement,
|
|
8
|
-
type Edge,
|
|
9
|
-
} from './topology.js';
|
|
1
|
+
export { defineAdminExtension, type AdminExtension } from './AdminExtension.js';
|
|
2
|
+
export { type FrondPlacement } from '@fougere/core';
|
|
3
|
+
export { type Edge, type TopologyReport } from '@fougere/core';
|
package/src/react.tsx
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
export type { ReactAdminFieldContext } from './ReactAdminFieldContext.js';
|
|
2
|
+
export type { ReactAdminInputContext } from './ReactAdminInputContext.js';
|
|
3
|
+
export type { ReactAdminFieldRenderer } from './ReactAdminFieldRenderer.js';
|
|
4
|
+
export type { ReactAdminInputRenderer } from './ReactAdminInputRenderer.js';
|
|
5
|
+
export type { ReactAdminRenderers } from './ReactAdminRenderers.js';
|
|
6
|
+
export type { ReactAdminResourceComponents } from './ReactAdminResourceComponents.js';
|
|
7
|
+
export type { ResourceRenderOptions } from './ResourceRenderOptions.js';
|
|
8
|
+
export type { FougereAdminProps } from './FougereAdminProps.js';
|
|
9
|
+
import type { ReactAdminRenderers } from './ReactAdminRenderers.js';
|
|
10
|
+
|
|
11
|
+
import type { ResourceRenderOptions } from './ResourceRenderOptions.js';
|
|
12
|
+
import type { FougereAdminProps } from './FougereAdminProps.js';
|
|
1
13
|
'use client';
|
|
2
14
|
/**
|
|
3
15
|
* The rendering half — a column becomes a field, a form field becomes an input.
|
|
@@ -16,24 +28,22 @@ import {
|
|
|
16
28
|
} from 'react-admin';
|
|
17
29
|
import { Route } from 'react-router-dom';
|
|
18
30
|
import { Box, Button, Card, CardContent, Dialog, DialogActions, DialogContent, DialogTitle, TextField as MuiTextField, Typography } from '@mui/material';
|
|
19
|
-
import { cloneElement, useMemo, useState, type ComponentProps, type
|
|
20
|
-
import { createAdminRuntime } from './
|
|
21
|
-
import type { AdminExtension } from './
|
|
22
|
-
import {
|
|
23
|
-
import
|
|
24
|
-
import type {
|
|
31
|
+
import { cloneElement, useMemo, useState, type ComponentProps, type ReactElement } from 'react';
|
|
32
|
+
import { createAdminRuntime } from './AdminRuntime.js';
|
|
33
|
+
import type { AdminExtension } from './AdminExtension.js';
|
|
34
|
+
import { type AdminOperation } from './AdminOperation.js';
|
|
35
|
+
import { actionsOf, type AdminResource } from './AdminResource.js';
|
|
36
|
+
import type { EditorialFacet } from './EditorialFacet.js';
|
|
37
|
+
import type { UsersFacet } from './UsersFacet.js';
|
|
38
|
+
|
|
25
39
|
import { formFieldsOf, type FormField, type TableColumn } from '@fougere/app/client';
|
|
26
40
|
import { Card as SchemaCard } from '@fougere/schema';
|
|
27
41
|
import { FougereLayout, fougereDarkTheme, fougereLightTheme } from './theme.js';
|
|
28
42
|
import { FougereTopology } from './topology-page.js';
|
|
29
43
|
export { FougereTopology, type FougereTopologyProps } from './topology-page.js';
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
FougereUsersIcon,
|
|
34
|
-
type FougereDashboardExtension,
|
|
35
|
-
type FougereResourceOptions,
|
|
36
|
-
} from './dashboard.js';
|
|
44
|
+
|
|
45
|
+
import { type FougereResourceOptions } from './FougereResourceOptions.js';
|
|
46
|
+
import { FougereContentIcon, FougereDashboard, FougereUsersIcon } from './dashboard.js';
|
|
37
47
|
|
|
38
48
|
export {
|
|
39
49
|
FougereAppBar,
|
|
@@ -42,21 +52,14 @@ export {
|
|
|
42
52
|
fougereDarkTheme,
|
|
43
53
|
fougereLightTheme,
|
|
44
54
|
} from './theme.js';
|
|
45
|
-
export {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
type FougereDashboardExtension,
|
|
54
|
-
type FougereDashboardMetrics,
|
|
55
|
-
type FougereDashboardResource,
|
|
56
|
-
type FougereDashboardWidget,
|
|
57
|
-
type FougereDashboardZone,
|
|
58
|
-
type FougereResourceOptions,
|
|
59
|
-
} from './dashboard.js';
|
|
55
|
+
export { type FougereDashboardContextValue } from './FougereDashboardContextValue.js';
|
|
56
|
+
export { type FougereDashboardExtension } from './FougereDashboardExtension.js';
|
|
57
|
+
export { type FougereDashboardMetrics } from './FougereDashboardMetrics.js';
|
|
58
|
+
export { type FougereDashboardResource } from './FougereDashboardResource.js';
|
|
59
|
+
export { type FougereDashboardWidget } from './FougereDashboardWidget.js';
|
|
60
|
+
export { type FougereDashboardZone } from './FougereDashboardZone.js';
|
|
61
|
+
export { type FougereResourceOptions } from './FougereResourceOptions.js';
|
|
62
|
+
export { FOUGERE_DASHBOARD_WIDGETS, FougereContentIcon, FougereDashboard, FougereUsersIcon, applyDashboardExtensions, useFougereDashboard } from './dashboard.js';
|
|
60
63
|
|
|
61
64
|
const FIELDS = {
|
|
62
65
|
text: TextField, number: NumberField, boolean: BooleanField, date: DateField,
|
|
@@ -143,41 +146,6 @@ function defaultInputFor(field: FormField, t: Translate): ReactElement {
|
|
|
143
146
|
);
|
|
144
147
|
}
|
|
145
148
|
|
|
146
|
-
export interface ReactAdminFieldContext {
|
|
147
|
-
resource: AdminResource;
|
|
148
|
-
column: TableColumn;
|
|
149
|
-
/** The maintained Fougere renderer. Call it to wrap rather than replace it. */
|
|
150
|
-
defaultRender(): ReactElement;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
export interface ReactAdminInputContext {
|
|
154
|
-
resource: AdminResource;
|
|
155
|
-
field: FormField;
|
|
156
|
-
defaultRender(): ReactElement;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
export type ReactAdminFieldRenderer = (context: ReactAdminFieldContext) => ReactElement;
|
|
160
|
-
export type ReactAdminInputRenderer = (context: ReactAdminInputContext) => ReactElement;
|
|
161
|
-
|
|
162
|
-
export interface ReactAdminRenderers {
|
|
163
|
-
/** Exact `resource.field` keys. Unmentioned and future fields keep the default renderer. */
|
|
164
|
-
fields?: Record<string, ReactAdminFieldRenderer>;
|
|
165
|
-
inputs?: Record<string, ReactAdminInputRenderer>;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
export interface ReactAdminResourceComponents {
|
|
169
|
-
list?: ComponentType;
|
|
170
|
-
show?: ComponentType;
|
|
171
|
-
edit?: ComponentType;
|
|
172
|
-
create?: ComponentType;
|
|
173
|
-
icon?: ComponentType;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
export interface ResourceRenderOptions {
|
|
177
|
-
renderers?: ReactAdminRenderers;
|
|
178
|
-
components?: ReactAdminResourceComponents;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
149
|
function fieldFor(resource: AdminResource, column: TableColumn, t: Translate, renderers?: ReactAdminRenderers): ReactElement {
|
|
182
150
|
const defaultRender = () => defaultFieldFor(column, t);
|
|
183
151
|
const renderer = renderers?.fields?.[`${resource.name}.${column.name}`];
|
|
@@ -202,7 +170,7 @@ function inputFor(resource: AdminResource, field: FormField, t: Translate, rende
|
|
|
202
170
|
* an article from the back-office.
|
|
203
171
|
*
|
|
204
172
|
* Three things are derived and none is declared per entity: WHICH ops (everything the
|
|
205
|
-
*
|
|
173
|
+
* facade serves beyond the five verbs), WHETHER it asks for input (`op.input` — then the
|
|
206
174
|
* dialog's form is `formFieldsOf` over the reconstructed schema, the same projection an
|
|
207
175
|
* ordinary form uses), and WHETHER it confirms (`op.confirm`, from an extension).
|
|
208
176
|
*/
|
|
@@ -286,7 +254,7 @@ function OperationButton({
|
|
|
286
254
|
);
|
|
287
255
|
}
|
|
288
256
|
|
|
289
|
-
/** Row-level actions: the verbs the
|
|
257
|
+
/** Row-level actions: the verbs the facade serves, then everything else it serves. */
|
|
290
258
|
function RowActions({ resource }: { resource: AdminResource }): ReactElement {
|
|
291
259
|
const actions = useMemo(() => actionsOf(resource.operations), [resource]);
|
|
292
260
|
return (
|
|
@@ -304,9 +272,9 @@ const listFor = (r: AdminResource, renderers?: ReactAdminRenderers) => function
|
|
|
304
272
|
const t = useTranslate();
|
|
305
273
|
return (
|
|
306
274
|
<List>
|
|
307
|
-
{/* `can.delete` had no reader, so a
|
|
275
|
+
{/* `can.delete` had no reader, so a facade serving no `delete` still showed the
|
|
308
276
|
selection checkboxes and the bulk Delete button — every one of them a 404. And
|
|
309
|
-
a
|
|
277
|
+
a facade serving `update` but not `findById` had an inert row. */}
|
|
310
278
|
<Datagrid
|
|
311
279
|
rowClick={r.can.show ? 'show' : r.can.edit ? 'edit' : false}
|
|
312
280
|
bulkActionButtons={r.can.delete ? undefined : false}
|
|
@@ -353,7 +321,7 @@ const createFor = (r: AdminResource, renderers?: ReactAdminRenderers) => functio
|
|
|
353
321
|
return <Create><SimpleForm>{r.fields.map((field) => inputFor(r, field, t, renderers))}</SimpleForm></Create>;
|
|
354
322
|
};
|
|
355
323
|
|
|
356
|
-
/** One
|
|
324
|
+
/** One facade, as the four pages the card says it serves. */
|
|
357
325
|
export function resourceFor(r: AdminResource, options: ResourceRenderOptions = {}): ReactElement {
|
|
358
326
|
const { renderers, components = {} } = options;
|
|
359
327
|
const resourceOptions: FougereResourceOptions = {
|
|
@@ -403,17 +371,6 @@ export function resourceFor(r: AdminResource, options: ResourceRenderOptions = {
|
|
|
403
371
|
*/
|
|
404
372
|
type BaseAdminProps = ComponentProps<typeof Admin>;
|
|
405
373
|
|
|
406
|
-
export type FougereAdminProps = Omit<BaseAdminProps, 'children' | 'dataProvider'> & {
|
|
407
|
-
endpoint?: string;
|
|
408
|
-
fetcher?: Fetcher;
|
|
409
|
-
extensions?: readonly AdminExtension[];
|
|
410
|
-
renderers?: ReactAdminRenderers;
|
|
411
|
-
/** Add, move, resize, replace or hide widgets without snapshotting the dashboard. */
|
|
412
|
-
dashboardExtensions?: readonly FougereDashboardExtension[];
|
|
413
|
-
/** Explicit page-level escape hatches, scoped to one resource and one view. */
|
|
414
|
-
resourceComponents?: Record<string, ReactAdminResourceComponents>;
|
|
415
|
-
};
|
|
416
|
-
|
|
417
374
|
const EMPTY_EXTENSIONS: readonly AdminExtension[] = [];
|
|
418
375
|
|
|
419
376
|
/**
|
|
@@ -498,7 +455,7 @@ export function FougereAdmin({
|
|
|
498
455
|
components: resourceComponents?.[resource.name],
|
|
499
456
|
})),
|
|
500
457
|
/*
|
|
501
|
-
* The one page that renders the APP rather than a
|
|
458
|
+
* The one page that renders the APP rather than a facade. It is not a resource —
|
|
502
459
|
* there is no row behind it — so it rides a route, and its data comes from
|
|
503
460
|
* `rpc.topology` rather than from the card.
|
|
504
461
|
*/
|
package/src/theme.tsx
CHANGED
|
@@ -501,7 +501,7 @@ const TopologyIcon = (props: SvgIconProps) => (
|
|
|
501
501
|
);
|
|
502
502
|
|
|
503
503
|
/**
|
|
504
|
-
* The derived menu, plus the one entry that is not a
|
|
504
|
+
* The derived menu, plus the one entry that is not a facade.
|
|
505
505
|
*
|
|
506
506
|
* `Menu.ResourceItems` keeps the resources the card produced — the menu stays derived, and
|
|
507
507
|
* this adds beside it rather than replacing it. The topology entry shows even when nothing
|
package/src/topology-page.tsx
CHANGED
|
@@ -18,7 +18,9 @@ import { Box, Card, CardContent, Chip, Skeleton, Typography, type Theme } from '
|
|
|
18
18
|
import { useEffect, useMemo, useState, type ReactElement } from 'react';
|
|
19
19
|
import { Title, useTranslate } from 'react-admin';
|
|
20
20
|
import { CALL_ENDPOINT, fetcher as browserFetcher, type Fetcher } from '@fougere/app/client';
|
|
21
|
-
import {
|
|
21
|
+
import { type Edge, type TopologyReport } from '@fougere/core';
|
|
22
|
+
import { fetchTopology, figureOf, isOpaque, layoutOf, nodesOf } from './Drawing.js';
|
|
23
|
+
import { type TopologyNode } from './TopologyNode.js';
|
|
22
24
|
|
|
23
25
|
/** What the page is: the report, the refusal that means "not observed", or a real failure. */
|
|
24
26
|
type State =
|
|
@@ -197,7 +199,7 @@ function Graph({ nodes, selected, onSelect }: {
|
|
|
197
199
|
<Typography variant="caption" color="text.secondary" sx={{ fontSize: 10.5 }}>
|
|
198
200
|
{isOpaque(node)
|
|
199
201
|
? label('topology.elsewhere', 'elsewhere')
|
|
200
|
-
: `${node.entities} · ${node.
|
|
202
|
+
: `${node.entities} · ${node.facades}`}
|
|
201
203
|
</Typography>
|
|
202
204
|
)}
|
|
203
205
|
{tone !== 'grey' && (
|
|
@@ -250,7 +252,7 @@ function FrondCard({ node }: { node: TopologyNode }): ReactElement {
|
|
|
250
252
|
: isOpaque(node)
|
|
251
253
|
? label('topology.opaque', 'Its shape is published by the process that owns it.')
|
|
252
254
|
: `${label('topology.entities', `${node.entities} entities`, { smart_count: node.entities })}`
|
|
253
|
-
+ ` · ${label('topology.
|
|
255
|
+
+ ` · ${label('topology.facades', `${node.facades} facades`, { smart_count: node.facades })}`}
|
|
254
256
|
</Typography>
|
|
255
257
|
{node.calls.map((edge) => <EdgeLine key={`out-${edge.to}`} edge={edge} direction="out" />)}
|
|
256
258
|
{node.calledBy.map((edge) => <EdgeLine key={`in-${edge.from}`} edge={edge} direction="in" />)}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "fougere-app",
|
|
3
|
+
"private": true,
|
|
4
|
+
"type": "module",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"dev": "vite",
|
|
7
|
+
"build": "vite build"
|
|
8
|
+
},
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"@fougere/admin": "latest",
|
|
11
|
+
"@fougere/app": "latest",
|
|
12
|
+
"react": "^19.0.0",
|
|
13
|
+
"react-admin": "^5.15.1",
|
|
14
|
+
"react-dom": "^19.0.0"
|
|
15
|
+
},
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"@types/react": "^19.0.0",
|
|
18
|
+
"@types/react-dom": "^19.0.0",
|
|
19
|
+
"@vitejs/plugin-react": "^5.0.0",
|
|
20
|
+
"vite": "^8.0.0"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The panel derives itself from the app it is pointed at.
|
|
3
|
+
*
|
|
4
|
+
* It asks `rpc.discover` on mount and builds the collections, their fields and the five CRUD
|
|
5
|
+
* operations from the identity card that comes back. Nothing below names an entity, a column
|
|
6
|
+
* or a form: add a frond to the app and its collection appears here on the next reload.
|
|
7
|
+
*/
|
|
8
|
+
import { StrictMode } from 'react';
|
|
9
|
+
import { createRoot } from 'react-dom/client';
|
|
10
|
+
import { FougereAdmin } from '@fougere/admin/react';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* No `endpoint`, so it stays `/_fougere/call` — a relative address the dev proxy in
|
|
14
|
+
* `vite.config.ts` forwards to the app next door.
|
|
15
|
+
*
|
|
16
|
+
* The integrated shape is the same component with nothing changed at all: mount it on a route
|
|
17
|
+
* of the app that serves the frond, and same-origin does the rest. Standalone against another
|
|
18
|
+
* host is one prop — `endpoint="https://shop.internal/_fougere/call"` — and the CORS that
|
|
19
|
+
* comes with crossing an origin.
|
|
20
|
+
*/
|
|
21
|
+
function App() {
|
|
22
|
+
return <FougereAdmin title="Admin" />;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
createRoot(document.getElementById('root')!).render(
|
|
26
|
+
<StrictMode><App /></StrictMode>,
|
|
27
|
+
);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { defineConfig } from 'vite';
|
|
2
|
+
import react from '@vitejs/plugin-react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* No `@fougere/vite` here: this app scans nothing and boots nothing. It is a reader of one
|
|
6
|
+
* endpoint, and the only thing it needs is a way to reach it without crossing an origin.
|
|
7
|
+
*
|
|
8
|
+
* Point the proxy at whichever app serves your frond. In production the two are usually
|
|
9
|
+
* behind one host, and this block goes away.
|
|
10
|
+
*/
|
|
11
|
+
export default defineConfig({
|
|
12
|
+
plugins: [react()],
|
|
13
|
+
server: {
|
|
14
|
+
proxy: { '/_fougere': 'http://localhost:3000' },
|
|
15
|
+
},
|
|
16
|
+
});
|
package/dist/extensions.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuC,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACtD;AAED,qEAAqE;AACrE,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,CAAC,SAAS,cAAc,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,CAEpF;AAsDD,+FAA+F;AAC/F,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,UAAU,GAAE,SAAS,cAAc,EAAO,GACzC,aAAa,EAAE,CAqBjB"}
|
package/dist/extensions.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"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"}
|
package/dist/facets.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/** A semantic notion a renderer can act on, DECLARED — never guessed. */
|
|
2
|
-
export interface EditorialFacet {
|
|
3
|
-
/** The field that carries the human-readable title. */
|
|
4
|
-
title: string;
|
|
5
|
-
/** The lifecycle vocabulary, grouped by meaning rather than by raw enum value. */
|
|
6
|
-
state?: {
|
|
7
|
-
field: string;
|
|
8
|
-
draft?: readonly string[];
|
|
9
|
-
published?: readonly string[];
|
|
10
|
-
};
|
|
11
|
-
createdAt?: string;
|
|
12
|
-
updatedAt?: string;
|
|
13
|
-
}
|
|
14
|
-
export interface UsersFacet {
|
|
15
|
-
name: string;
|
|
16
|
-
email?: string;
|
|
17
|
-
role?: string;
|
|
18
|
-
state?: {
|
|
19
|
-
field: string;
|
|
20
|
-
active?: readonly string[];
|
|
21
|
-
invited?: readonly string[];
|
|
22
|
-
suspended?: readonly string[];
|
|
23
|
-
};
|
|
24
|
-
createdAt?: string;
|
|
25
|
-
}
|
|
26
|
-
/** Open registry of the semantic projections renderers understand. */
|
|
27
|
-
export interface AdminFacetRegistry {
|
|
28
|
-
editorial: EditorialFacet;
|
|
29
|
-
users: UsersFacet;
|
|
30
|
-
[facet: string]: unknown;
|
|
31
|
-
}
|
|
32
|
-
export type AdminFacets = Partial<AdminFacetRegistry>;
|
|
33
|
-
export declare function defineAdminFacet<const Name extends string, const Value>(name: Name, value: Value): Record<Name, Value>;
|
|
34
|
-
/** Arrays replace; semantic objects merge recursively so small project deltas stay small. */
|
|
35
|
-
export declare function mergeAdminFacets(base: AdminFacets, patch: AdminFacets): AdminFacets;
|
|
36
|
-
//# sourceMappingURL=facets.d.ts.map
|
package/dist/facets.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"facets.d.ts","sourceRoot":"","sources":["../src/facets.ts"],"names":[],"mappings":"AACA,yEAAyE;AAEzE,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAC1B,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KAC/B,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAC5B,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KAC/B,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,sEAAsE;AACtE,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,cAAc,CAAC;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEtD,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,CAAC,KAAK,EACrE,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,GACX,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAErB;AAED,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,WAAW,CAQnF"}
|
package/dist/facets.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"facets.js","sourceRoot":"","sources":["../src/facets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAsC3C,MAAM,UAAU,gBAAgB,CAC9B,IAAU,EACV,KAAY;IAEZ,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAyB,CAAC;AAClD,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,gBAAgB,CAAC,IAAiB,EAAE,KAAkB;IACpE,MAAM,KAAK,GAAG,CAAC,IAAa,EAAE,KAAc,EAAW,EAAE;QACvD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACtD,MAAM,GAAG,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;QACjD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QACpF,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,EAAE,KAAK,CAAgB,CAAC;AAC3C,CAAC"}
|
package/dist/provider.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/provider.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/resources.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,YAAY,EAAc,MAAM,wBAAwB,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,iFAAiF;AACjF,MAAM,WAAW,cAAe,SAAQ,MAAM;IAC5C,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,sDAAsD;AACtD,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,MAAM,EAAE,WAAW,CAAC;IACpB,kEAAkE;IAClE,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,4EAA4E;IAC5E,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,+DAA+D;IAC/D,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B;;;OAGG;IACH,GAAG,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CACxF;AAOD;;;GAGG;AACH,eAAO,MAAM,QAAQ,YAAI,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAEpF,iGAAiG;AACjG,wBAAgB,SAAS,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,GAAG,cAAc,EAAE,CAEjF;AAED,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,UAAU,EAAE,SAAS,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CASxG;AAED,+CAA+C;AAC/C,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,EAAE,CA4B/D;AAED,kFAAkF;AAClF,wBAAgB,MAAM,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAE9E;AAED,yCAAyC;AACzC,wBAAsB,SAAS,CAC7B,QAAQ,SAAgB,EACxB,OAAO,GAAE,OAAwB,GAChC,OAAO,CAAC,YAAY,CAAC,CAOvB"}
|
package/dist/resources.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"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"}
|