@panneau/core 4.0.73 → 4.0.75
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/contexts.d.ts +144 -77
- package/dist/contexts.js +113 -10
- package/dist/hooks.d.ts +68 -7
- package/dist/index.d.ts +233 -188
- package/dist/index.js +12 -8
- package/dist/utils.d.ts +55 -24
- package/dist/utils.js +3 -2
- package/package.json +2 -2
package/dist/contexts.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ElementType, ReactNode, ComponentType } from 'react';
|
|
3
|
+
import { MessageDescriptor } from 'react-intl';
|
|
3
4
|
export { RoutesContext, RoutesProvider, useRoutes, useUrlGenerator } from '@folklore/routes';
|
|
4
5
|
export { TrackingContext } from '@folklore/tracking';
|
|
5
6
|
|
|
@@ -10,7 +11,7 @@ declare class ComponentsManager {
|
|
|
10
11
|
addComponents(components: Record<string, ElementType>, namespace?: string | null): this;
|
|
11
12
|
merge(manager: ComponentsManager, namespace?: string | null): this;
|
|
12
13
|
addNamespace(namespace: string | null): this;
|
|
13
|
-
getComponent(name: string, namespace?: string | null): ElementType | null;
|
|
14
|
+
getComponent(name: string | ElementType, namespace?: string | null): ElementType | null;
|
|
14
15
|
getComponents(namespace?: string | null): Record<string, ElementType> | null;
|
|
15
16
|
hasComponent(name: string, namespace?: string | null): boolean;
|
|
16
17
|
}
|
|
@@ -20,20 +21,95 @@ interface Definition$1 {
|
|
|
20
21
|
component?: unknown;
|
|
21
22
|
[key: string]: unknown;
|
|
22
23
|
}
|
|
23
|
-
declare class DefinitionsManager {
|
|
24
|
-
definitions:
|
|
25
|
-
constructor(definitions?:
|
|
26
|
-
addDefinition(definition:
|
|
27
|
-
addDefinitions(definitions:
|
|
28
|
-
merge(manager: DefinitionsManager): this;
|
|
29
|
-
getDefinition(id: string | null):
|
|
30
|
-
getDefinitions():
|
|
24
|
+
declare class DefinitionsManager<T extends Definition$1 = Definition$1> {
|
|
25
|
+
definitions: T[];
|
|
26
|
+
constructor(definitions?: T[]);
|
|
27
|
+
addDefinition(definition: T | T[]): this;
|
|
28
|
+
addDefinitions(definitions: T[]): this;
|
|
29
|
+
merge(manager: DefinitionsManager<T>): this;
|
|
30
|
+
getDefinition(id: string | null): T | null;
|
|
31
|
+
getDefinitions(): T[];
|
|
31
32
|
hasDefinition(id: string): boolean;
|
|
32
33
|
getComponent(id: string): unknown;
|
|
33
34
|
getComponents(): Record<string, unknown>;
|
|
34
35
|
}
|
|
35
36
|
|
|
36
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Core UI Types
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Internationalization message definition
|
|
43
|
+
*/
|
|
44
|
+
type Message = MessageDescriptor;
|
|
45
|
+
/**
|
|
46
|
+
* Label can be either a message object or any React node
|
|
47
|
+
*/
|
|
48
|
+
type Label = Message | ReactNode;
|
|
49
|
+
/**
|
|
50
|
+
* Form control size
|
|
51
|
+
*/
|
|
52
|
+
type ControlSize = 'lg' | 'sm' | null;
|
|
53
|
+
/**
|
|
54
|
+
* Font definition
|
|
55
|
+
*/
|
|
56
|
+
interface Font {
|
|
57
|
+
name: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Generic definition
|
|
61
|
+
*/
|
|
62
|
+
interface Definition {
|
|
63
|
+
id: string;
|
|
64
|
+
component?: string | ElementType;
|
|
65
|
+
[key: string]: unknown;
|
|
66
|
+
}
|
|
67
|
+
interface RouteDefinition {
|
|
68
|
+
path?: string;
|
|
69
|
+
route?: string;
|
|
70
|
+
component: string | ElementType;
|
|
71
|
+
[key: string]: unknown;
|
|
72
|
+
}
|
|
73
|
+
interface PageDefinition {
|
|
74
|
+
component: string | ElementType;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Form Types
|
|
79
|
+
* TypeScript interfaces for form-related components
|
|
80
|
+
*/
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Field definition
|
|
84
|
+
*/
|
|
85
|
+
interface Field {
|
|
86
|
+
name?: string;
|
|
87
|
+
type?: string;
|
|
88
|
+
label?: Label;
|
|
89
|
+
component?: string;
|
|
90
|
+
size?: ControlSize;
|
|
91
|
+
[key: string]: unknown;
|
|
92
|
+
}
|
|
93
|
+
interface FieldDefinition extends Omit<Field, 'component'>, Definition {
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Form definition
|
|
97
|
+
*/
|
|
98
|
+
interface Form {
|
|
99
|
+
title?: ReactNode;
|
|
100
|
+
fields?: Field[];
|
|
101
|
+
method?: string | null;
|
|
102
|
+
action?: string | null;
|
|
103
|
+
submitButtonLabel?: Label | null;
|
|
104
|
+
[key: string]: unknown;
|
|
105
|
+
}
|
|
106
|
+
interface FormDefinition extends Form, Definition {
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
declare class FieldsManager extends DefinitionsManager<FieldDefinition> {
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
declare class FormsManager extends DefinitionsManager<FormDefinition> {
|
|
37
113
|
}
|
|
38
114
|
|
|
39
115
|
declare const MODALS_NAMESPACE = "modals";
|
|
@@ -131,39 +207,6 @@ interface ComponentsProviderProps {
|
|
|
131
207
|
}
|
|
132
208
|
declare function ComponentsProvider({ components, manager, namespace, children, }: ComponentsProviderProps): react.JSX.Element;
|
|
133
209
|
|
|
134
|
-
/**
|
|
135
|
-
* Core UI Types
|
|
136
|
-
*/
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* Font definition
|
|
140
|
-
*/
|
|
141
|
-
interface Font {
|
|
142
|
-
name: string;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Form Types
|
|
147
|
-
* TypeScript interfaces for form-related components
|
|
148
|
-
*/
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Field definition
|
|
152
|
-
*/
|
|
153
|
-
interface Field {
|
|
154
|
-
name?: string;
|
|
155
|
-
type?: string;
|
|
156
|
-
component?: string | ElementType;
|
|
157
|
-
label?: ReactNode;
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Form definition
|
|
161
|
-
*/
|
|
162
|
-
interface Form {
|
|
163
|
-
title: ReactNode;
|
|
164
|
-
fields?: Field[];
|
|
165
|
-
}
|
|
166
|
-
|
|
167
210
|
/**
|
|
168
211
|
* Resource Types
|
|
169
212
|
* TypeScript interfaces for resources, items, users, media, and other entities
|
|
@@ -193,7 +236,7 @@ interface Action {
|
|
|
193
236
|
target?: string;
|
|
194
237
|
onClick?: (() => void) | null;
|
|
195
238
|
endpoint?: string | null;
|
|
196
|
-
|
|
239
|
+
withoutConfirmation?: boolean;
|
|
197
240
|
[key: string]: unknown;
|
|
198
241
|
}
|
|
199
242
|
type ActionDefinition = string | Action;
|
|
@@ -219,15 +262,33 @@ interface ResourceIndex {
|
|
|
219
262
|
fields?: Field[];
|
|
220
263
|
[key: string]: unknown;
|
|
221
264
|
}
|
|
265
|
+
interface ResourcePages {
|
|
266
|
+
index?: PageDefinition;
|
|
267
|
+
show?: PageDefinition;
|
|
268
|
+
create?: PageDefinition;
|
|
269
|
+
edit?: PageDefinition;
|
|
270
|
+
delete?: PageDefinition;
|
|
271
|
+
duplicate?: PageDefinition;
|
|
272
|
+
[key: string]: PageDefinition | undefined;
|
|
273
|
+
}
|
|
274
|
+
interface ResourceForms {
|
|
275
|
+
default: FormDefinition | null;
|
|
276
|
+
create: FormDefinition | null;
|
|
277
|
+
edit: FormDefinition | null;
|
|
278
|
+
delete: FormDefinition | null;
|
|
279
|
+
modal: FormDefinition | null;
|
|
280
|
+
[key: string]: FormDefinition | null;
|
|
281
|
+
}
|
|
222
282
|
interface Resource {
|
|
223
283
|
id: string;
|
|
224
284
|
name: string;
|
|
225
285
|
intl?: ResourceIntl;
|
|
226
286
|
fields?: Field[];
|
|
227
287
|
index?: ResourceIndex;
|
|
228
|
-
forms?:
|
|
229
|
-
shows_in_navbar?: boolean;
|
|
288
|
+
forms?: ResourceForms;
|
|
230
289
|
settings?: Record<string, unknown>;
|
|
290
|
+
extraRoutes?: RouteDefinition[];
|
|
291
|
+
pages?: ResourcePages;
|
|
231
292
|
}
|
|
232
293
|
/**
|
|
233
294
|
* Filter definition
|
|
@@ -247,25 +308,18 @@ interface Filter {
|
|
|
247
308
|
* Panneau route configuration
|
|
248
309
|
*/
|
|
249
310
|
interface Routes {
|
|
250
|
-
'resources.index': string;
|
|
251
|
-
'resources.create': string;
|
|
252
|
-
'resources.store': string;
|
|
253
|
-
'resources.show': string;
|
|
254
|
-
'resources.edit': string;
|
|
255
|
-
'resources.update': string;
|
|
256
|
-
'resources.delete': string;
|
|
257
|
-
'resources.destroy': string;
|
|
258
|
-
'resources.duplicate': string;
|
|
259
|
-
'resources.clone': string;
|
|
260
|
-
'resources.restore': string;
|
|
261
|
-
[key: string]: string;
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* Page definition
|
|
265
|
-
*/
|
|
266
|
-
interface Page {
|
|
267
|
-
component: string;
|
|
268
|
-
[key: string]: unknown;
|
|
311
|
+
'resources.index': RouteDefinition | string;
|
|
312
|
+
'resources.create': RouteDefinition | string;
|
|
313
|
+
'resources.store': RouteDefinition | string;
|
|
314
|
+
'resources.show': RouteDefinition | string;
|
|
315
|
+
'resources.edit': RouteDefinition | string;
|
|
316
|
+
'resources.update': RouteDefinition | string;
|
|
317
|
+
'resources.delete': RouteDefinition | string;
|
|
318
|
+
'resources.destroy': RouteDefinition | string;
|
|
319
|
+
'resources.duplicate': RouteDefinition | string;
|
|
320
|
+
'resources.clone': RouteDefinition | string;
|
|
321
|
+
'resources.restore': RouteDefinition | string;
|
|
322
|
+
[key: string]: RouteDefinition | string;
|
|
269
323
|
}
|
|
270
324
|
interface PanneauTheme {
|
|
271
325
|
colorScheme?: string | null;
|
|
@@ -286,24 +340,26 @@ interface PanneauIntl {
|
|
|
286
340
|
messages?: Record<string, string>;
|
|
287
341
|
values?: PanneauIntlValues;
|
|
288
342
|
}
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
[key: string]: unknown;
|
|
343
|
+
interface PanneauPages extends ResourcePages {
|
|
344
|
+
home?: PageDefinition;
|
|
345
|
+
login?: PageDefinition;
|
|
346
|
+
account?: PageDefinition;
|
|
347
|
+
error?: PageDefinition;
|
|
295
348
|
}
|
|
296
349
|
/**
|
|
297
350
|
* Panneau definition (main configuration)
|
|
298
351
|
*/
|
|
299
|
-
interface PanneauDefinition
|
|
352
|
+
interface PanneauDefinition {
|
|
353
|
+
name?: string;
|
|
300
354
|
resources?: Resource[];
|
|
301
355
|
routes?: Routes;
|
|
302
|
-
pages?:
|
|
356
|
+
pages?: PanneauPages;
|
|
303
357
|
intl?: PanneauIntl;
|
|
304
358
|
theme?: PanneauTheme;
|
|
305
359
|
components?: PanneauComponents;
|
|
306
360
|
settings?: Record<string, unknown>;
|
|
361
|
+
forms?: FormDefinition[];
|
|
362
|
+
fields?: FieldDefinition[];
|
|
307
363
|
}
|
|
308
364
|
/**
|
|
309
365
|
* Tracking variables
|
|
@@ -320,10 +376,10 @@ declare function DefinitionProvider({ definition, children }: DefinitionProvider
|
|
|
320
376
|
|
|
321
377
|
declare const FieldsContext: react.Context<FieldsManager>;
|
|
322
378
|
declare function useFieldsManager(): FieldsManager | null;
|
|
323
|
-
declare function
|
|
324
|
-
declare function
|
|
379
|
+
declare function useFieldDefinition(id: string): FieldDefinition | null;
|
|
380
|
+
declare function useFieldDefinitions(): FieldDefinition[];
|
|
325
381
|
interface FieldsProviderProps {
|
|
326
|
-
fields?:
|
|
382
|
+
fields?: FieldDefinition[] | null;
|
|
327
383
|
manager?: FieldsManager | null;
|
|
328
384
|
children: ReactNode;
|
|
329
385
|
}
|
|
@@ -364,6 +420,17 @@ interface FormProviderProps {
|
|
|
364
420
|
}
|
|
365
421
|
declare function FormProvider({ value, setValue, children }: FormProviderProps): react.JSX.Element;
|
|
366
422
|
|
|
423
|
+
declare const FormsContext: react.Context<FormsManager>;
|
|
424
|
+
declare function useFormsManager(): FormsManager | null;
|
|
425
|
+
declare function useFormDefinition(id: string): FormDefinition | null;
|
|
426
|
+
declare function useFormDefinitions(): FormDefinition[];
|
|
427
|
+
interface FormsProviderProps {
|
|
428
|
+
forms?: FormDefinition[] | null;
|
|
429
|
+
manager?: FormsManager | null;
|
|
430
|
+
children: ReactNode;
|
|
431
|
+
}
|
|
432
|
+
declare function FormsProvider({ forms, manager, children }: FormsProviderProps): react.JSX.Element;
|
|
433
|
+
|
|
367
434
|
declare const GoogleApiClientContext: react.Context<any>;
|
|
368
435
|
declare function useGoogleApiClient(): any | null;
|
|
369
436
|
declare function withGoogleApiClient(WrappedComponent: ComponentType<any>): {
|
|
@@ -498,5 +565,5 @@ interface TrackingProviderProps {
|
|
|
498
565
|
}
|
|
499
566
|
declare function TrackingProvider({ variables, children }: TrackingProviderProps): react.JSX.Element;
|
|
500
567
|
|
|
501
|
-
export { ACTIONS_NAMESPACE, APP_NAMESPACE, BUTTONS_NAMESPACE, ComponentsContext, ComponentsProvider, DISPLAYS_NAMESPACE, DefinitionProvider, FIELDS_NAMESPACE, FILTERS_NAMESPACE, FORMS_NAMESPACE, FieldsContext, FieldsProvider, FontsContext, FontsProvider, FormProvider, GoogleApiClientContext, GoogleApiClientProvider, GoogleKeysContext, GoogleKeysProvider, GoogleMapsClientContext, GoogleMapsClientProvider, LISTS_NAMESPACE, LocalesContext, LocalesProvider, MODALS_NAMESPACE, ModalContext, ModalProvider, PAGES_NAMESPACE, PREVIEWS_NAMESPACE, PanelsContext, PanelsProvider, PanneauProvider, ResourceProvider, TrackingProvider, useActionComponent, useActionsComponents, useActionsComponentsManager, useAppComponent, useAppComponents, useAppComponentsManager, useButtonComponent, useButtonsComponents, useButtonsComponentsManager, useComponent, useComponents, useComponentsManager, useDefinition, useDefinitionContext, useDisplayComponent, useDisplaysComponents, useDisplaysComponentsManager,
|
|
568
|
+
export { ACTIONS_NAMESPACE, APP_NAMESPACE, BUTTONS_NAMESPACE, ComponentsContext, ComponentsProvider, DISPLAYS_NAMESPACE, DefinitionProvider, FIELDS_NAMESPACE, FILTERS_NAMESPACE, FORMS_NAMESPACE, FieldsContext, FieldsProvider, FontsContext, FontsProvider, FormProvider, FormsContext, FormsProvider, GoogleApiClientContext, GoogleApiClientProvider, GoogleKeysContext, GoogleKeysProvider, GoogleMapsClientContext, GoogleMapsClientProvider, LISTS_NAMESPACE, LocalesContext, LocalesProvider, MODALS_NAMESPACE, ModalContext, ModalProvider, PAGES_NAMESPACE, PREVIEWS_NAMESPACE, PanelsContext, PanelsProvider, PanneauProvider, ResourceProvider, TrackingProvider, useActionComponent, useActionsComponents, useActionsComponentsManager, useAppComponent, useAppComponents, useAppComponentsManager, useButtonComponent, useButtonsComponents, useButtonsComponentsManager, useComponent, useComponents, useComponentsManager, useDefinition, useDefinitionContext, useDisplayComponent, useDisplaysComponents, useDisplaysComponentsManager, useFieldComponent, useFieldDefinition, useFieldDefinitions, useFieldsComponents, useFieldsComponentsManager, useFieldsManager, useFilterComponent, useFiltersComponents, useFiltersComponentsManager, useFonts, useFormComponent, useFormContext, useFormDefinition, useFormDefinitions, useFormSetValue, useFormValue, useFormsComponents, useFormsComponentsManager, useFormsManager, useGoogleApiClient, useGoogleFonts, useGoogleKeys, useGoogleMapsClient, useListComponent, useListsComponents, useListsComponentsManager, useLocales, useLocalesContext, useModal, useModalComponent, useModalsComponents, useModalsComponentsManager, useOtherLocales, usePageComponent, usePagesComponents, usePagesComponentsManager, usePanels, usePanneau, usePanneauAuth, usePanneauColorScheme, usePanneauComponent, usePanneauComponents, usePanneauResource, usePanneauResources, usePanneauSettings, usePreviewComponent, usePreviewsComponents, usePreviewsComponentsManager, useResource, useRouteBack, useRoutePush, useTracking, withGoogleApiClient, withGoogleMapsClient, withPanels };
|
|
502
569
|
export type { ModalContextValue, ModalData };
|
package/dist/contexts.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { c } from 'react/compiler-runtime';
|
|
2
2
|
import isString from 'lodash-es/isString';
|
|
3
|
-
import { createContext, useContext,
|
|
4
|
-
import { ComponentsManager, FieldsManager, Tracking } from '@panneau/core';
|
|
3
|
+
import { createContext, useContext, use, useState, useEffect, useRef } from 'react';
|
|
4
|
+
import { ComponentsManager, FieldsManager, FormsManager, Tracking } from '@panneau/core';
|
|
5
5
|
import { jsx } from 'react/jsx-runtime';
|
|
6
6
|
import uniqBy from 'lodash-es/uniqBy';
|
|
7
7
|
import { getJSON } from '@folklore/fetch';
|
|
@@ -441,9 +441,9 @@ function DefinitionProvider(t0) {
|
|
|
441
441
|
|
|
442
442
|
const FieldsContext = /*#__PURE__*/createContext(null);
|
|
443
443
|
function useFieldsManager() {
|
|
444
|
-
return
|
|
444
|
+
return use(FieldsContext);
|
|
445
445
|
}
|
|
446
|
-
function
|
|
446
|
+
function useFieldDefinition(id) {
|
|
447
447
|
const $ = c(3);
|
|
448
448
|
const manager = useFieldsManager();
|
|
449
449
|
let t0;
|
|
@@ -457,7 +457,7 @@ function useField(id) {
|
|
|
457
457
|
}
|
|
458
458
|
return t0;
|
|
459
459
|
}
|
|
460
|
-
function
|
|
460
|
+
function useFieldDefinitions() {
|
|
461
461
|
const $ = c(2);
|
|
462
462
|
const manager = useFieldsManager();
|
|
463
463
|
let t0;
|
|
@@ -482,7 +482,7 @@ function FieldsProvider(t0) {
|
|
|
482
482
|
const previousManager = useFieldsManager() || null;
|
|
483
483
|
let t3;
|
|
484
484
|
if ($[0] !== fields || $[1] !== manager || $[2] !== previousManager) {
|
|
485
|
-
const newFields = uniqBy([...(fields || []), ...(manager !== null ? manager.getDefinitions() : []), ...(previousManager !== null ? previousManager.getDefinitions() : [])], _temp$
|
|
485
|
+
const newFields = uniqBy([...(fields || []), ...(manager !== null ? manager.getDefinitions() : []), ...(previousManager !== null ? previousManager.getDefinitions() : [])], _temp$2).reverse();
|
|
486
486
|
t3 = new FieldsManager(newFields);
|
|
487
487
|
$[0] = fields;
|
|
488
488
|
$[1] = manager;
|
|
@@ -535,7 +535,7 @@ function FieldsProvider(t0) {
|
|
|
535
535
|
}
|
|
536
536
|
return t6;
|
|
537
537
|
}
|
|
538
|
-
function _temp$
|
|
538
|
+
function _temp$2(t0) {
|
|
539
539
|
const {
|
|
540
540
|
id
|
|
541
541
|
} = t0;
|
|
@@ -622,7 +622,7 @@ function useGoogleFonts(t0) {
|
|
|
622
622
|
} = t6;
|
|
623
623
|
const items = t7 === undefined ? [] : t7;
|
|
624
624
|
if (!canceled) {
|
|
625
|
-
const newFonts = items.map(_temp);
|
|
625
|
+
const newFonts = items.map(_temp$1);
|
|
626
626
|
if (setFonts !== null) {
|
|
627
627
|
setFonts(newFonts);
|
|
628
628
|
} else {
|
|
@@ -648,7 +648,7 @@ function useGoogleFonts(t0) {
|
|
|
648
648
|
useEffect(t4, t5);
|
|
649
649
|
return googleFonts;
|
|
650
650
|
}
|
|
651
|
-
function _temp(it) {
|
|
651
|
+
function _temp$1(it) {
|
|
652
652
|
return {
|
|
653
653
|
type: "google",
|
|
654
654
|
name: it.family,
|
|
@@ -847,6 +847,109 @@ function FormProvider(t0) {
|
|
|
847
847
|
return t2;
|
|
848
848
|
}
|
|
849
849
|
|
|
850
|
+
const FormsContext = /*#__PURE__*/createContext(null);
|
|
851
|
+
function useFormsManager() {
|
|
852
|
+
return use(FormsContext);
|
|
853
|
+
}
|
|
854
|
+
function useFormDefinition(id) {
|
|
855
|
+
const $ = c(3);
|
|
856
|
+
const manager = useFormsManager();
|
|
857
|
+
let t0;
|
|
858
|
+
if ($[0] !== id || $[1] !== manager) {
|
|
859
|
+
t0 = manager.getDefinition(id);
|
|
860
|
+
$[0] = id;
|
|
861
|
+
$[1] = manager;
|
|
862
|
+
$[2] = t0;
|
|
863
|
+
} else {
|
|
864
|
+
t0 = $[2];
|
|
865
|
+
}
|
|
866
|
+
return t0;
|
|
867
|
+
}
|
|
868
|
+
function useFormDefinitions() {
|
|
869
|
+
const $ = c(2);
|
|
870
|
+
const manager = useFormsManager();
|
|
871
|
+
let t0;
|
|
872
|
+
if ($[0] !== manager) {
|
|
873
|
+
t0 = manager.getDefinitions();
|
|
874
|
+
$[0] = manager;
|
|
875
|
+
$[1] = t0;
|
|
876
|
+
} else {
|
|
877
|
+
t0 = $[1];
|
|
878
|
+
}
|
|
879
|
+
return t0;
|
|
880
|
+
}
|
|
881
|
+
function FormsProvider(t0) {
|
|
882
|
+
const $ = c(12);
|
|
883
|
+
const {
|
|
884
|
+
forms: t1,
|
|
885
|
+
manager: t2,
|
|
886
|
+
children
|
|
887
|
+
} = t0;
|
|
888
|
+
const forms = t1 === undefined ? null : t1;
|
|
889
|
+
const manager = t2 === undefined ? null : t2;
|
|
890
|
+
const previousManager = useFormsManager() || null;
|
|
891
|
+
let t3;
|
|
892
|
+
if ($[0] !== forms || $[1] !== manager || $[2] !== previousManager) {
|
|
893
|
+
const newForms = uniqBy([...(forms || []), ...(manager !== null ? manager.getDefinitions() : []), ...(previousManager !== null ? previousManager.getDefinitions() : [])], _temp).reverse();
|
|
894
|
+
t3 = new FormsManager(newForms);
|
|
895
|
+
$[0] = forms;
|
|
896
|
+
$[1] = manager;
|
|
897
|
+
$[2] = previousManager;
|
|
898
|
+
$[3] = t3;
|
|
899
|
+
} else {
|
|
900
|
+
t3 = $[3];
|
|
901
|
+
}
|
|
902
|
+
const finalManager = t3;
|
|
903
|
+
let t4;
|
|
904
|
+
if ($[4] !== finalManager) {
|
|
905
|
+
const newComponents = finalManager.getComponents();
|
|
906
|
+
t4 = Object.keys(newComponents).reduce((map, id_0) => {
|
|
907
|
+
const component = newComponents[id_0];
|
|
908
|
+
return isString(component) ? map : {
|
|
909
|
+
...map,
|
|
910
|
+
[id_0]: component
|
|
911
|
+
};
|
|
912
|
+
}, {});
|
|
913
|
+
$[4] = finalManager;
|
|
914
|
+
$[5] = t4;
|
|
915
|
+
} else {
|
|
916
|
+
t4 = $[5];
|
|
917
|
+
}
|
|
918
|
+
const components = t4;
|
|
919
|
+
let t5;
|
|
920
|
+
if ($[6] !== children || $[7] !== components) {
|
|
921
|
+
t5 = /*#__PURE__*/jsx(ComponentsProvider, {
|
|
922
|
+
namespace: FORMS_NAMESPACE,
|
|
923
|
+
components: components,
|
|
924
|
+
children: children
|
|
925
|
+
});
|
|
926
|
+
$[6] = children;
|
|
927
|
+
$[7] = components;
|
|
928
|
+
$[8] = t5;
|
|
929
|
+
} else {
|
|
930
|
+
t5 = $[8];
|
|
931
|
+
}
|
|
932
|
+
let t6;
|
|
933
|
+
if ($[9] !== finalManager || $[10] !== t5) {
|
|
934
|
+
t6 = /*#__PURE__*/jsx(FormsContext, {
|
|
935
|
+
value: finalManager,
|
|
936
|
+
children: t5
|
|
937
|
+
});
|
|
938
|
+
$[9] = finalManager;
|
|
939
|
+
$[10] = t5;
|
|
940
|
+
$[11] = t6;
|
|
941
|
+
} else {
|
|
942
|
+
t6 = $[11];
|
|
943
|
+
}
|
|
944
|
+
return t6;
|
|
945
|
+
}
|
|
946
|
+
function _temp(t0) {
|
|
947
|
+
const {
|
|
948
|
+
id
|
|
949
|
+
} = t0;
|
|
950
|
+
return id;
|
|
951
|
+
}
|
|
952
|
+
|
|
850
953
|
const GoogleApiClientContext = /*#__PURE__*/createContext(null);
|
|
851
954
|
function useGoogleApiClient() {
|
|
852
955
|
return useContext(GoogleApiClientContext);
|
|
@@ -1651,4 +1754,4 @@ function TrackingProvider(t0) {
|
|
|
1651
1754
|
return t3;
|
|
1652
1755
|
}
|
|
1653
1756
|
|
|
1654
|
-
export { ACTIONS_NAMESPACE, APP_NAMESPACE, BUTTONS_NAMESPACE, ComponentsContext, ComponentsProvider, DISPLAYS_NAMESPACE, DefinitionProvider, FIELDS_NAMESPACE, FILTERS_NAMESPACE, FORMS_NAMESPACE, FieldsContext, FieldsProvider, FontsContext, FontsProvider, FormProvider, GoogleApiClientContext, GoogleApiClientProvider, GoogleKeysContext, GoogleKeysProvider, GoogleMapsClientContext, GoogleMapsClientProvider, LISTS_NAMESPACE, LocalesContext, LocalesProvider, MODALS_NAMESPACE, ModalContext, ModalProvider, PAGES_NAMESPACE, PREVIEWS_NAMESPACE, PanelsContext, PanelsProvider, PanneauProvider, ResourceProvider, TrackingProvider, useActionComponent, useActionsComponents, useActionsComponentsManager, useAppComponent, useAppComponents, useAppComponentsManager, useButtonComponent, useButtonsComponents, useButtonsComponentsManager, useComponent, useComponents, useComponentsManager, useDefinition, useDefinitionContext, useDisplayComponent, useDisplaysComponents, useDisplaysComponentsManager,
|
|
1757
|
+
export { ACTIONS_NAMESPACE, APP_NAMESPACE, BUTTONS_NAMESPACE, ComponentsContext, ComponentsProvider, DISPLAYS_NAMESPACE, DefinitionProvider, FIELDS_NAMESPACE, FILTERS_NAMESPACE, FORMS_NAMESPACE, FieldsContext, FieldsProvider, FontsContext, FontsProvider, FormProvider, FormsContext, FormsProvider, GoogleApiClientContext, GoogleApiClientProvider, GoogleKeysContext, GoogleKeysProvider, GoogleMapsClientContext, GoogleMapsClientProvider, LISTS_NAMESPACE, LocalesContext, LocalesProvider, MODALS_NAMESPACE, ModalContext, ModalProvider, PAGES_NAMESPACE, PREVIEWS_NAMESPACE, PanelsContext, PanelsProvider, PanneauProvider, ResourceProvider, TrackingProvider, useActionComponent, useActionsComponents, useActionsComponentsManager, useAppComponent, useAppComponents, useAppComponentsManager, useButtonComponent, useButtonsComponents, useButtonsComponentsManager, useComponent, useComponents, useComponentsManager, useDefinition, useDefinitionContext, useDisplayComponent, useDisplaysComponents, useDisplaysComponentsManager, useFieldComponent, useFieldDefinition, useFieldDefinitions, useFieldsComponents, useFieldsComponentsManager, useFieldsManager, useFilterComponent, useFiltersComponents, useFiltersComponentsManager, useFonts, useFormComponent, useFormContext, useFormDefinition, useFormDefinitions, useFormSetValue, useFormValue, useFormsComponents, useFormsComponentsManager, useFormsManager, useGoogleApiClient, useGoogleFonts, useGoogleKeys, useGoogleMapsClient, useListComponent, useListsComponents, useListsComponentsManager, useLocales, useLocalesContext, useModal, useModalComponent, useModalsComponents, useModalsComponentsManager, useOtherLocales, usePageComponent, usePagesComponents, usePagesComponentsManager, usePanels, usePanneau, usePanneauAuth, usePanneauColorScheme, usePanneauComponent, usePanneauComponents, usePanneauResource, usePanneauResources, usePanneauSettings, usePreviewComponent, usePreviewsComponents, usePreviewsComponentsManager, useResource, useRouteBack, useRoutePush, useTracking, withGoogleApiClient, withGoogleMapsClient, withPanels };
|
package/dist/hooks.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Dayjs } from 'dayjs';
|
|
2
|
-
import {
|
|
2
|
+
import { ReactNode, ElementType, SubmitEvent, RefObject } from 'react';
|
|
3
|
+
import { MessageDescriptor } from 'react-intl';
|
|
3
4
|
|
|
4
5
|
interface UseAnimationFrameOptions {
|
|
5
6
|
disabled?: boolean;
|
|
@@ -20,6 +21,40 @@ declare function useFormattedTime({ format, showNow, timeGap, }?: UseFormattedTi
|
|
|
20
21
|
|
|
21
22
|
declare const useDocumentEvent: (event: string, callback: (...args: unknown[]) => void, enabled?: boolean) => void;
|
|
22
23
|
|
|
24
|
+
/**
|
|
25
|
+
* Core UI Types
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Internationalization message definition
|
|
30
|
+
*/
|
|
31
|
+
type Message = MessageDescriptor;
|
|
32
|
+
/**
|
|
33
|
+
* Label can be either a message object or any React node
|
|
34
|
+
*/
|
|
35
|
+
type Label = Message | ReactNode;
|
|
36
|
+
/**
|
|
37
|
+
* Form control size
|
|
38
|
+
*/
|
|
39
|
+
type ControlSize = 'lg' | 'sm' | null;
|
|
40
|
+
/**
|
|
41
|
+
* Generic definition
|
|
42
|
+
*/
|
|
43
|
+
interface Definition {
|
|
44
|
+
id: string;
|
|
45
|
+
component?: string | ElementType;
|
|
46
|
+
[key: string]: unknown;
|
|
47
|
+
}
|
|
48
|
+
interface RouteDefinition {
|
|
49
|
+
path?: string;
|
|
50
|
+
route?: string;
|
|
51
|
+
component: string | ElementType;
|
|
52
|
+
[key: string]: unknown;
|
|
53
|
+
}
|
|
54
|
+
interface PageDefinition {
|
|
55
|
+
component: string | ElementType;
|
|
56
|
+
}
|
|
57
|
+
|
|
23
58
|
/**
|
|
24
59
|
* Form Types
|
|
25
60
|
* TypeScript interfaces for form-related components
|
|
@@ -31,15 +66,23 @@ declare const useDocumentEvent: (event: string, callback: (...args: unknown[]) =
|
|
|
31
66
|
interface Field$1 {
|
|
32
67
|
name?: string;
|
|
33
68
|
type?: string;
|
|
34
|
-
|
|
35
|
-
|
|
69
|
+
label?: Label;
|
|
70
|
+
component?: string;
|
|
71
|
+
size?: ControlSize;
|
|
72
|
+
[key: string]: unknown;
|
|
36
73
|
}
|
|
37
74
|
/**
|
|
38
75
|
* Form definition
|
|
39
76
|
*/
|
|
40
77
|
interface Form {
|
|
41
|
-
title
|
|
78
|
+
title?: ReactNode;
|
|
42
79
|
fields?: Field$1[];
|
|
80
|
+
method?: string | null;
|
|
81
|
+
action?: string | null;
|
|
82
|
+
submitButtonLabel?: Label | null;
|
|
83
|
+
[key: string]: unknown;
|
|
84
|
+
}
|
|
85
|
+
interface FormDefinition extends Form, Definition {
|
|
43
86
|
}
|
|
44
87
|
|
|
45
88
|
/**
|
|
@@ -71,7 +114,7 @@ interface Action {
|
|
|
71
114
|
target?: string;
|
|
72
115
|
onClick?: (() => void) | null;
|
|
73
116
|
endpoint?: string | null;
|
|
74
|
-
|
|
117
|
+
withoutConfirmation?: boolean;
|
|
75
118
|
[key: string]: unknown;
|
|
76
119
|
}
|
|
77
120
|
type ActionDefinition = string | Action;
|
|
@@ -97,15 +140,33 @@ interface ResourceIndex {
|
|
|
97
140
|
fields?: Field$1[];
|
|
98
141
|
[key: string]: unknown;
|
|
99
142
|
}
|
|
143
|
+
interface ResourcePages {
|
|
144
|
+
index?: PageDefinition;
|
|
145
|
+
show?: PageDefinition;
|
|
146
|
+
create?: PageDefinition;
|
|
147
|
+
edit?: PageDefinition;
|
|
148
|
+
delete?: PageDefinition;
|
|
149
|
+
duplicate?: PageDefinition;
|
|
150
|
+
[key: string]: PageDefinition | undefined;
|
|
151
|
+
}
|
|
152
|
+
interface ResourceForms {
|
|
153
|
+
default: FormDefinition | null;
|
|
154
|
+
create: FormDefinition | null;
|
|
155
|
+
edit: FormDefinition | null;
|
|
156
|
+
delete: FormDefinition | null;
|
|
157
|
+
modal: FormDefinition | null;
|
|
158
|
+
[key: string]: FormDefinition | null;
|
|
159
|
+
}
|
|
100
160
|
interface Resource {
|
|
101
161
|
id: string;
|
|
102
162
|
name: string;
|
|
103
163
|
intl?: ResourceIntl;
|
|
104
164
|
fields?: Field$1[];
|
|
105
165
|
index?: ResourceIndex;
|
|
106
|
-
forms?:
|
|
107
|
-
shows_in_navbar?: boolean;
|
|
166
|
+
forms?: ResourceForms;
|
|
108
167
|
settings?: Record<string, unknown>;
|
|
168
|
+
extraRoutes?: RouteDefinition[];
|
|
169
|
+
pages?: ResourcePages;
|
|
109
170
|
}
|
|
110
171
|
/**
|
|
111
172
|
* Filter definition
|