@mittwald/flow-react-components 0.2.0-alpha.1003 → 0.2.0-alpha.1005
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/AGENTS.md +21 -2
- package/CHANGELOG.md +12 -0
- package/MIGRATION.md +41 -0
- package/PATTERNS.md +21 -1
- package/dist/assets/doc-properties.json +2111 -966
- package/dist/css/all-layered.css +1 -1
- package/dist/js/default.mjs +2 -0
- package/dist/js/default.mjs.map +1 -1
- package/dist/js/flr-universal.mjs +1 -0
- package/dist/js/flr-universal.mjs.map +1 -1
- package/dist/js/packages/components/src/components/ComponentDefaultsProvider/ComponentDefaultsProvider.mjs +40 -0
- package/dist/js/packages/components/src/components/ComponentDefaultsProvider/ComponentDefaultsProvider.mjs.map +1 -0
- package/dist/js/packages/components/src/components/ComponentDefaultsProvider/defaults.mjs +13 -0
- package/dist/js/packages/components/src/components/ComponentDefaultsProvider/defaults.mjs.map +1 -0
- package/dist/js/packages/components/src/components/ComponentDefaultsProvider/deprecatedFlags.mjs +34 -0
- package/dist/js/packages/components/src/components/ComponentDefaultsProvider/deprecatedFlags.mjs.map +1 -0
- package/dist/js/packages/components/src/components/List/model/loading/IncrementalLoader.mjs +4 -2
- package/dist/js/packages/components/src/components/List/model/loading/IncrementalLoader.mjs.map +1 -1
- package/dist/js/packages/components/src/flags.mjs +18 -4
- package/dist/js/packages/components/src/flags.mjs.map +1 -1
- package/dist/js/packages/components/src/integrations/react-hook-form/components/Form/Form.mjs +7 -5
- package/dist/js/packages/components/src/integrations/react-hook-form/components/Form/Form.mjs.map +1 -1
- package/dist/js/packages/components/src/status/component-status.json.mjs +1 -0
- package/dist/js/packages/components/src/status/component-status.json.mjs.map +1 -1
- package/dist/types/components/ComponentDefaultsProvider/ComponentDefaultsProvider.d.ts +24 -0
- package/dist/types/components/ComponentDefaultsProvider/ComponentDefaultsProvider.d.ts.map +1 -0
- package/dist/types/components/ComponentDefaultsProvider/ComponentDefaultsProvider.test.d.ts +2 -0
- package/dist/types/components/ComponentDefaultsProvider/ComponentDefaultsProvider.test.d.ts.map +1 -0
- package/dist/types/components/ComponentDefaultsProvider/defaults.d.ts +37 -0
- package/dist/types/components/ComponentDefaultsProvider/defaults.d.ts.map +1 -0
- package/dist/types/components/ComponentDefaultsProvider/deprecatedFlags.d.ts +8 -0
- package/dist/types/components/ComponentDefaultsProvider/deprecatedFlags.d.ts.map +1 -0
- package/dist/types/components/ComponentDefaultsProvider/index.d.ts +4 -0
- package/dist/types/components/ComponentDefaultsProvider/index.d.ts.map +1 -0
- package/dist/types/components/List/model/loading/IncrementalLoader.d.ts.map +1 -1
- package/dist/types/components/List/model/loading/types.d.ts +8 -0
- package/dist/types/components/List/model/loading/types.d.ts.map +1 -1
- package/dist/types/components/public.d.ts +1 -0
- package/dist/types/components/public.d.ts.map +1 -1
- package/dist/types/flags.d.ts +23 -2
- package/dist/types/flags.d.ts.map +1 -1
- package/dist/types/integrations/react-hook-form/components/Form/Form.d.ts.map +1 -1
- package/dist/types/status/component-status.json.d.ts +4 -0
- package/dist/types/tests/layered/CodeEditor.browser.test.d.ts +2 -0
- package/dist/types/tests/layered/CodeEditor.browser.test.d.ts.map +1 -0
- package/dist/types/tests/layered/Icon.browser.test.d.ts +2 -0
- package/dist/types/tests/layered/Icon.browser.test.d.ts.map +1 -0
- package/dist/types/tests/layered/ImageCropper.browser.test.d.ts +2 -0
- package/dist/types/tests/layered/ImageCropper.browser.test.d.ts.map +1 -0
- package/package.json +13 -11
package/dist/js/default.mjs
CHANGED
|
@@ -34,6 +34,8 @@ export { CodeEditor } from './packages/components/src/components/CodeEditor/Code
|
|
|
34
34
|
export { Color } from './packages/components/src/components/Color/Color.mjs';
|
|
35
35
|
export { ColumnLayout } from './packages/components/src/components/ColumnLayout/ColumnLayout.mjs';
|
|
36
36
|
export { ComboBox } from './packages/components/src/components/ComboBox/ComboBox.mjs';
|
|
37
|
+
export { ComponentDefaultsContext, ComponentDefaultsProvider, useComponentDefaults } from './packages/components/src/components/ComponentDefaultsProvider/ComponentDefaultsProvider.mjs';
|
|
38
|
+
export { builtInComponentDefaults } from './packages/components/src/components/ComponentDefaultsProvider/defaults.mjs';
|
|
37
39
|
export { Content } from './packages/components/src/components/Content/Content.mjs';
|
|
38
40
|
export { ContextMenu } from './packages/components/src/components/ContextMenu/ContextMenu.mjs';
|
|
39
41
|
export { MenuItem } from './packages/components/src/components/MenuItem/MenuItem.mjs';
|
package/dist/js/default.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"default.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -136,6 +136,7 @@ export { Action } from './packages/components/src/components/Action/Action.mjs';
|
|
|
136
136
|
export { ActionBatch } from './packages/components/src/components/Action/ActionBatch.mjs';
|
|
137
137
|
import './packages/components/src/components/Activity/Activity.mjs';
|
|
138
138
|
export { BrowserOnly } from './packages/components/src/components/BrowserOnly/BrowserOnly.mjs';
|
|
139
|
+
import './packages/components/src/components/ComponentDefaultsProvider/ComponentDefaultsProvider.mjs';
|
|
139
140
|
export { CountryOptions } from './packages/components/src/components/CountryOptions/CountryOptions.mjs';
|
|
140
141
|
export { DeprecationWarningProvider } from './packages/components/src/components/DeprecationWarningProvider/DeprecationWarningProvider.mjs';
|
|
141
142
|
import '@mittwald/flow-icons';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flr-universal.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"flr-universal.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
/* */
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
import { builtInComponentDefaults } from './defaults.mjs';
|
|
5
|
+
import { useDeprecatedFlagDefaults } from './deprecatedFlags.mjs';
|
|
6
|
+
import { createContext, useContext, useMemo } from 'react';
|
|
7
|
+
|
|
8
|
+
const ComponentDefaultsContext = createContext(
|
|
9
|
+
{}
|
|
10
|
+
);
|
|
11
|
+
const mergeDefaults = (base, override) => {
|
|
12
|
+
const merged = { ...base };
|
|
13
|
+
for (const component of Object.keys(override)) {
|
|
14
|
+
Object.assign(merged, {
|
|
15
|
+
[component]: { ...base[component], ...override[component] }
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return merged;
|
|
19
|
+
};
|
|
20
|
+
const ComponentDefaultsProvider = (props) => {
|
|
21
|
+
const { defaults, children } = props;
|
|
22
|
+
const inheritedDefaults = useContext(ComponentDefaultsContext);
|
|
23
|
+
const value = useMemo(
|
|
24
|
+
() => mergeDefaults(inheritedDefaults, defaults),
|
|
25
|
+
[inheritedDefaults, defaults]
|
|
26
|
+
);
|
|
27
|
+
return /* @__PURE__ */ jsx(ComponentDefaultsContext.Provider, { value, children });
|
|
28
|
+
};
|
|
29
|
+
const useComponentDefaults = (component) => {
|
|
30
|
+
const fromContext = useContext(ComponentDefaultsContext)[component];
|
|
31
|
+
const fromDeprecatedFlags = useDeprecatedFlagDefaults(component);
|
|
32
|
+
return {
|
|
33
|
+
...builtInComponentDefaults[component],
|
|
34
|
+
...fromDeprecatedFlags,
|
|
35
|
+
...fromContext
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export { ComponentDefaultsContext, ComponentDefaultsProvider, useComponentDefaults };
|
|
40
|
+
//# sourceMappingURL=ComponentDefaultsProvider.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComponentDefaultsProvider.mjs","sources":["../../../../../../../src/components/ComponentDefaultsProvider/ComponentDefaultsProvider.tsx"],"sourcesContent":["import {\n builtInComponentDefaults,\n type ComponentDefaults,\n type ComponentWithDefaults,\n type PartialComponentDefaults,\n} from \"@/components/ComponentDefaultsProvider/defaults\";\nimport { useDeprecatedFlagDefaults } from \"@/components/ComponentDefaultsProvider/deprecatedFlags\";\nimport {\n createContext,\n type FC,\n type PropsWithChildren,\n useContext,\n useMemo,\n} from \"react\";\n\nexport const ComponentDefaultsContext = createContext<PartialComponentDefaults>(\n {},\n);\n\nexport interface ComponentDefaultsProviderProps extends PropsWithChildren {\n /**\n * Defaults per component. Every setting that is not given keeps the default\n * of a surrounding ComponentDefaultsProvider, or its built-in default.\n */\n defaults: PartialComponentDefaults;\n}\n\nconst mergeDefaults = (\n base: PartialComponentDefaults,\n override: PartialComponentDefaults,\n): PartialComponentDefaults => {\n const merged: PartialComponentDefaults = { ...base };\n\n for (const component of Object.keys(override) as ComponentWithDefaults[]) {\n Object.assign(merged, {\n [component]: { ...base[component], ...override[component] },\n });\n }\n\n return merged;\n};\n\n/**\n * Defines the default behavior of components for the whole application – or,\n * nested, for a part of it.\n *\n * @flowStatus new\n */\nexport const ComponentDefaultsProvider: FC<ComponentDefaultsProviderProps> = (\n props,\n) => {\n const { defaults, children } = props;\n const inheritedDefaults = useContext(ComponentDefaultsContext);\n\n const value = useMemo(\n () => mergeDefaults(inheritedDefaults, defaults),\n [inheritedDefaults, defaults],\n );\n\n return (\n <ComponentDefaultsContext.Provider value={value}>\n {children}\n </ComponentDefaultsContext.Provider>\n );\n};\n\n/**\n * The defaults that apply to a component: built-in defaults, overridden by the\n * deprecated `flags` object, overridden by the ComponentDefaultsProvider.\n */\nexport const useComponentDefaults = <C extends ComponentWithDefaults>(\n component: C,\n): ComponentDefaults[C] => {\n const fromContext = useContext(ComponentDefaultsContext)[component];\n const fromDeprecatedFlags = useDeprecatedFlagDefaults(component);\n\n return {\n ...builtInComponentDefaults[component],\n ...fromDeprecatedFlags,\n ...fromContext,\n };\n};\n\nexport default ComponentDefaultsProvider;\n"],"names":[],"mappings":";;;;;AAeO,MAAM,wBAAA,GAA2B,aAAA;AAAA,EACtC;AACF;AAUA,MAAM,aAAA,GAAgB,CACpB,IAAA,EACA,QAAA,KAC6B;AAC7B,EAAA,MAAM,MAAA,GAAmC,EAAE,GAAG,IAAA,EAAK;AAEnD,EAAA,KAAA,MAAW,SAAA,IAAa,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA,EAA8B;AACxE,IAAA,MAAA,CAAO,OAAO,MAAA,EAAQ;AAAA,MACpB,CAAC,SAAS,GAAG,EAAE,GAAG,IAAA,CAAK,SAAS,CAAA,EAAG,GAAG,QAAA,CAAS,SAAS,CAAA;AAAE,KAC3D,CAAA;AAAA,EACH;AAEA,EAAA,OAAO,MAAA;AACT,CAAA;AAQO,MAAM,yBAAA,GAAgE,CAC3E,KAAA,KACG;AACH,EAAA,MAAM,EAAE,QAAA,EAAU,QAAA,EAAS,GAAI,KAAA;AAC/B,EAAA,MAAM,iBAAA,GAAoB,WAAW,wBAAwB,CAAA;AAE7D,EAAA,MAAM,KAAA,GAAQ,OAAA;AAAA,IACZ,MAAM,aAAA,CAAc,iBAAA,EAAmB,QAAQ,CAAA;AAAA,IAC/C,CAAC,mBAAmB,QAAQ;AAAA,GAC9B;AAEA,EAAA,uBACE,GAAA,CAAC,wBAAA,CAAyB,QAAA,EAAzB,EAAkC,OAChC,QAAA,EACH,CAAA;AAEJ;AAMO,MAAM,oBAAA,GAAuB,CAClC,SAAA,KACyB;AACzB,EAAA,MAAM,WAAA,GAAc,UAAA,CAAW,wBAAwB,CAAA,CAAE,SAAS,CAAA;AAClE,EAAA,MAAM,mBAAA,GAAsB,0BAA0B,SAAS,CAAA;AAE/D,EAAA,OAAO;AAAA,IACL,GAAG,yBAAyB,SAAS,CAAA;AAAA,IACrC,GAAG,mBAAA;AAAA,IACH,GAAG;AAAA,GACL;AACF;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
/* */
|
|
3
|
+
const builtInComponentDefaults = {
|
|
4
|
+
List: {
|
|
5
|
+
disableInitialSuspenseBoundary: false
|
|
6
|
+
},
|
|
7
|
+
Form: {
|
|
8
|
+
confirmModalCloseOnUnsavedChanges: true
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { builtInComponentDefaults };
|
|
13
|
+
//# sourceMappingURL=defaults.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.mjs","sources":["../../../../../../../src/components/ComponentDefaultsProvider/defaults.ts"],"sourcesContent":["/**\n * Behavior of components that an application can define once, globally, instead\n * of repeating it at every usage. Every setting has a built-in default and\n * stays overridable at the component itself.\n */\nexport interface ComponentDefaults {\n List: {\n /**\n * Whether a `List` renders no own Suspense boundary while it initially\n * loads. Suspending is then handed over to the closest Suspense boundary\n * above the List, so the List appears with loaded data instead of showing\n * its loading view (skeleton) first.\n *\n * Overridable per List through the `disableInitialSuspenseBoundary`\n * property of its data source.\n *\n * @default false\n */\n disableInitialSuspenseBoundary: boolean;\n };\n Form: {\n /**\n * Whether closing a `Modal` that contains a `Form` with unsaved changes\n * must be confirmed. Applies as long as the Form is _dirty_ – after a\n * successful submit or a `form.reset()` it is not.\n *\n * @default true\n */\n confirmModalCloseOnUnsavedChanges: boolean;\n };\n}\n\nexport type ComponentWithDefaults = keyof ComponentDefaults;\n\nexport type PartialComponentDefaults = {\n [C in ComponentWithDefaults]?: Partial<ComponentDefaults[C]>;\n};\n\nexport const builtInComponentDefaults: ComponentDefaults = {\n List: {\n disableInitialSuspenseBoundary: false,\n },\n Form: {\n confirmModalCloseOnUnsavedChanges: true,\n },\n};\n"],"names":[],"mappings":"AAsCO,MAAM,wBAAA,GAA8C;AAAA,EACzD,IAAA,EAAM;AAAA,IACJ,8BAAA,EAAgC;AAAA,GAClC;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,iCAAA,EAAmC;AAAA;AAEvC;;;;"}
|
package/dist/js/packages/components/src/components/ComponentDefaultsProvider/deprecatedFlags.mjs
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
/* */
|
|
3
|
+
import { useWarnDeprecation } from '../DeprecationWarningProvider/DeprecationWarningProvider.mjs';
|
|
4
|
+
import { flagIsAssigned, flags } from '../../flags.mjs';
|
|
5
|
+
|
|
6
|
+
const deprecatedFlagBridges = [
|
|
7
|
+
{
|
|
8
|
+
flag: "requireCloseModalConfirmationOnUnsavedChanges",
|
|
9
|
+
component: "Form",
|
|
10
|
+
setting: "confirmModalCloseOnUnsavedChanges",
|
|
11
|
+
message: "The 'requireCloseModalConfirmationOnUnsavedChanges' flag is deprecated and will be removed in a future release. Confirming the close of a Modal that contains a Form with unsaved changes is the default now ('Form.confirmModalCloseOnUnsavedChanges: true'). Use the 'defaults' property of the ComponentDefaultsProvider to change it."
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
flag: "disableInitialListSuspenseBoundaries",
|
|
15
|
+
component: "List",
|
|
16
|
+
setting: "disableInitialSuspenseBoundary",
|
|
17
|
+
message: "The 'disableInitialListSuspenseBoundaries' flag is deprecated and will be removed in a future release. Its default is unchanged ('List.disableInitialSuspenseBoundary: false'). Use the 'defaults' property of the ComponentDefaultsProvider to change it."
|
|
18
|
+
}
|
|
19
|
+
];
|
|
20
|
+
const useDeprecatedFlagDefaults = (component) => {
|
|
21
|
+
const warnDeprecation = useWarnDeprecation();
|
|
22
|
+
const fromFlags = {};
|
|
23
|
+
for (const bridge of deprecatedFlagBridges) {
|
|
24
|
+
if (bridge.component !== component || !flagIsAssigned(bridge.flag)) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
warnDeprecation(bridge.message);
|
|
28
|
+
fromFlags[bridge.setting] = flags[bridge.flag];
|
|
29
|
+
}
|
|
30
|
+
return fromFlags;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export { useDeprecatedFlagDefaults };
|
|
34
|
+
//# sourceMappingURL=deprecatedFlags.mjs.map
|
package/dist/js/packages/components/src/components/ComponentDefaultsProvider/deprecatedFlags.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deprecatedFlags.mjs","sources":["../../../../../../../src/components/ComponentDefaultsProvider/deprecatedFlags.ts"],"sourcesContent":["import { useWarnDeprecation } from \"@/components/DeprecationWarningProvider\";\nimport type {\n ComponentDefaults,\n ComponentWithDefaults,\n} from \"@/components/ComponentDefaultsProvider/defaults\";\nimport { flagIsAssigned, flags, type FlagName } from \"@/flags\";\n\ninterface DeprecatedFlagBridge {\n flag: FlagName;\n component: ComponentWithDefaults;\n setting: string;\n message: string;\n}\n\n/**\n * The global `flags` object is superseded by the ComponentDefaultsProvider. A\n * flag an application still assigns keeps working – it acts as the application\n * wide default below the provider – and warns about its replacement.\n */\nconst deprecatedFlagBridges: DeprecatedFlagBridge[] = [\n {\n flag: \"requireCloseModalConfirmationOnUnsavedChanges\",\n component: \"Form\",\n setting: \"confirmModalCloseOnUnsavedChanges\",\n message:\n \"The 'requireCloseModalConfirmationOnUnsavedChanges' flag is deprecated and will be removed in a future release. Confirming the close of a Modal that contains a Form with unsaved changes is the default now ('Form.confirmModalCloseOnUnsavedChanges: true'). Use the 'defaults' property of the ComponentDefaultsProvider to change it.\",\n },\n {\n flag: \"disableInitialListSuspenseBoundaries\",\n component: \"List\",\n setting: \"disableInitialSuspenseBoundary\",\n message:\n \"The 'disableInitialListSuspenseBoundaries' flag is deprecated and will be removed in a future release. Its default is unchanged ('List.disableInitialSuspenseBoundary: false'). Use the 'defaults' property of the ComponentDefaultsProvider to change it.\",\n },\n];\n\n/**\n * Defaults an application still contributes through the deprecated `flags`\n * object. Ranks below the ComponentDefaultsProvider and above the built-in\n * defaults.\n */\nexport const useDeprecatedFlagDefaults = <C extends ComponentWithDefaults>(\n component: C,\n): Partial<ComponentDefaults[C]> => {\n const warnDeprecation = useWarnDeprecation();\n const fromFlags: Record<string, boolean> = {};\n\n for (const bridge of deprecatedFlagBridges) {\n if (bridge.component !== component || !flagIsAssigned(bridge.flag)) {\n continue;\n }\n\n warnDeprecation(bridge.message);\n fromFlags[bridge.setting] = flags[bridge.flag];\n }\n\n return fromFlags as Partial<ComponentDefaults[C]>;\n};\n"],"names":[],"mappings":";;;AAmBA,MAAM,qBAAA,GAAgD;AAAA,EACpD;AAAA,IACE,IAAA,EAAM,+CAAA;AAAA,IACN,SAAA,EAAW,MAAA;AAAA,IACX,OAAA,EAAS,mCAAA;AAAA,IACT,OAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,IAAA,EAAM,sCAAA;AAAA,IACN,SAAA,EAAW,MAAA;AAAA,IACX,OAAA,EAAS,gCAAA;AAAA,IACT,OAAA,EACE;AAAA;AAEN,CAAA;AAOO,MAAM,yBAAA,GAA4B,CACvC,SAAA,KACkC;AAClC,EAAA,MAAM,kBAAkB,kBAAA,EAAmB;AAC3C,EAAA,MAAM,YAAqC,EAAC;AAE5C,EAAA,KAAA,MAAW,UAAU,qBAAA,EAAuB;AAC1C,IAAA,IAAI,OAAO,SAAA,KAAc,SAAA,IAAa,CAAC,cAAA,CAAe,MAAA,CAAO,IAAI,CAAA,EAAG;AAClE,MAAA;AAAA,IACF;AAEA,IAAA,eAAA,CAAgB,OAAO,OAAO,CAAA;AAC9B,IAAA,SAAA,CAAU,MAAA,CAAO,OAAO,CAAA,GAAI,KAAA,CAAM,OAAO,IAAI,CAAA;AAAA,EAC/C;AAEA,EAAA,OAAO,SAAA;AACT;;;;"}
|
|
@@ -5,10 +5,9 @@ import { useMemo, useEffect } from 'react';
|
|
|
5
5
|
import { times } from 'remeda';
|
|
6
6
|
import { IncrementalLoaderState } from './IncrementalLoaderState.mjs';
|
|
7
7
|
import { hash } from 'object-code';
|
|
8
|
-
import {
|
|
8
|
+
import { useComponentDefaults } from '../../../ComponentDefaultsProvider/ComponentDefaultsProvider.mjs';
|
|
9
9
|
|
|
10
10
|
const emptyData = [];
|
|
11
|
-
const disableInitialSuspenseBoundaryDefault = flags.disableInitialListSuspenseBoundaries ?? false;
|
|
12
11
|
class IncrementalLoader {
|
|
13
12
|
list;
|
|
14
13
|
dataSource;
|
|
@@ -21,6 +20,9 @@ class IncrementalLoader {
|
|
|
21
20
|
constructor(list, shape = {}) {
|
|
22
21
|
const { source } = shape;
|
|
23
22
|
this.dataSource = source ?? { staticData: emptyData };
|
|
23
|
+
const {
|
|
24
|
+
disableInitialSuspenseBoundary: disableInitialSuspenseBoundaryDefault
|
|
25
|
+
} = useComponentDefaults("List");
|
|
24
26
|
this.disableInitialSuspenseBoundary = "disableInitialSuspenseBoundary" in this.dataSource ? this.dataSource.disableInitialSuspenseBoundary ?? disableInitialSuspenseBoundaryDefault : disableInitialSuspenseBoundaryDefault;
|
|
25
27
|
const manualPagination = "manualPagination" in this.dataSource ? this.dataSource.manualPagination : void 0;
|
|
26
28
|
const manualFiltering = "manualFiltering" in this.dataSource ? this.dataSource.manualFiltering : void 0;
|
package/dist/js/packages/components/src/components/List/model/loading/IncrementalLoader.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IncrementalLoader.mjs","sources":["../../../../../../../../../src/components/List/model/loading/IncrementalLoader.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport type {\n DataLoaderOptions,\n DataLoaderResult,\n DataSource,\n IncrementalLoaderShape,\n LoaderInvocationHook,\n} from \"@/components/List/model/loading/types\";\nimport type { AsyncResource } from \"@mittwald/react-use-promise\";\nimport { getAsyncResource, usePromise } from \"@mittwald/react-use-promise\";\nimport { useEffect } from \"react\";\nimport { times } from \"remeda\";\nimport { IncrementalLoaderState } from \"@/components/List/model/loading/IncrementalLoaderState\";\nimport { hash } from \"object-code\";\nimport type { PropertyName } from \"@/components/List/model/types\";\nimport { useMemo } from \"react\";\nimport { flags } from \"@/flags\";\n\nconst emptyData: never[] = [];\n\nconst disableInitialSuspenseBoundaryDefault =\n flags.disableInitialListSuspenseBoundaries ?? false;\n\nexport class IncrementalLoader<T> {\n private readonly list: List<T>;\n private readonly dataSource: DataSource<T>;\n public readonly manualSorting: boolean;\n public readonly manualFiltering: boolean;\n public readonly manualPagination: boolean;\n public readonly disableInitialSuspenseBoundary: boolean;\n public readonly loaderState: IncrementalLoaderState<T>;\n public readonly staticDataProperties: PropertyName<T>[] = [];\n\n private constructor(list: List<T>, shape: IncrementalLoaderShape<T> = {}) {\n const { source } = shape;\n\n this.dataSource = source ?? { staticData: emptyData };\n\n this.disableInitialSuspenseBoundary =\n \"disableInitialSuspenseBoundary\" in this.dataSource\n ? (this.dataSource.disableInitialSuspenseBoundary ??\n disableInitialSuspenseBoundaryDefault)\n : disableInitialSuspenseBoundaryDefault;\n\n const manualPagination =\n \"manualPagination\" in this.dataSource\n ? this.dataSource.manualPagination\n : undefined;\n\n const manualFiltering =\n \"manualFiltering\" in this.dataSource\n ? this.dataSource.manualFiltering\n : undefined;\n\n const manualSorting =\n \"manualSorting\" in this.dataSource\n ? this.dataSource.manualSorting\n : undefined;\n\n this.list = list;\n this.loaderState = IncrementalLoaderState.useNew<T>(list);\n\n this.manualPagination = manualPagination ?? false;\n this.manualFiltering = manualFiltering ?? this.manualPagination;\n this.manualSorting = manualSorting ?? this.manualPagination;\n this.list.filters.forEach((f) => f.onFilterUpdated(() => this.reset()));\n this.list.search?.onUpdated(() => this.reset());\n\n this.initStaticDataProperties();\n }\n\n public static useNew<T>(\n list: List<T>,\n shape: IncrementalLoaderShape<T> = {},\n ): IncrementalLoader<T> {\n return new IncrementalLoader(list, shape);\n }\n\n private initStaticDataProperties() {\n const addPropertiesOfDataEntry = (data: unknown) => {\n if (typeof data !== \"object\" || data === null) {\n return;\n }\n\n (Object.keys(data) as PropertyName<T>[])\n .filter((p) => !this.staticDataProperties.includes(p))\n .forEach((p) => {\n this.staticDataProperties.push(p);\n });\n };\n\n if (\"staticData\" in this.dataSource) {\n this.dataSource.staticData\n // collect properties from just the first 100 items\n .slice(0, 100)\n .forEach(addPropertiesOfDataEntry);\n }\n }\n\n private reset(): void {\n this.loaderState.reset();\n }\n\n public useIsLoading(): boolean {\n return this.loaderState.useIsLoading();\n }\n\n public useIsInitiallyLoading(): boolean {\n return this.loaderState.useIsInitiallyLoading();\n }\n\n public useIsLoadingMore(): boolean {\n return this.loaderState.useIsLoadingMore();\n }\n\n public useData(): T[] {\n return this.loaderState.useMergedData();\n }\n\n private getUseData(): (options: DataLoaderOptions<T>) => DataLoaderResult<T> {\n const dataSource = this.dataSource;\n\n return (options: DataLoaderOptions<T>) => {\n if (\"staticData\" in dataSource) {\n return useMemo(\n () => ({\n data: dataSource.staticData,\n itemTotalCount: dataSource.staticData.length,\n }),\n [dataSource.staticData],\n );\n }\n\n if (\"useData\" in dataSource) {\n return dataSource.useData(options);\n }\n\n if (\"asyncLoader\" in dataSource) {\n const asyncLoader = dataSource.asyncLoader;\n const dependencies = dataSource.dependencies;\n const loaderId = dependencies\n ? hash(dependencies).toString()\n : undefined;\n\n return usePromise(asyncLoader, [options], {\n loaderId,\n });\n }\n\n if (\"asyncResourceFactory\" in dataSource) {\n return dataSource.asyncResourceFactory(options).use();\n }\n\n return useMemo(\n () => ({\n data: [],\n itemTotalCount: 0,\n }),\n [],\n );\n };\n }\n\n public getLoaderInvocationHooks(): LoaderInvocationHook[] {\n const batchesCount = times(this.list.batches.getBatchIndex() + 1, (i) => i);\n const useData = this.getUseData();\n\n return batchesCount.map((batchIndex) => ({\n useLoadBatch: () => {\n const loaderOptions = this.getDataLoaderOptions(batchIndex);\n const loaderResult = useData(loaderOptions);\n const { data, itemTotalCount, metadata } = loaderResult;\n\n useEffect(() => {\n this.loaderState.setDataBatch(batchIndex, data);\n\n if (itemTotalCount !== undefined) {\n this.list.batches.updateItemTotalCount(itemTotalCount);\n }\n\n this.loaderState.setMetadata(metadata);\n\n this.loaderState.setBatchLoadingState(batchIndex, \"loaded\");\n }, [loaderResult]);\n },\n\n useRenderSuspense: () => {\n useEffect(() => {\n this.loaderState.setBatchLoadingState(batchIndex, \"loading\");\n }, [batchIndex]);\n },\n }));\n }\n\n private getDataLoaderOptions(batchIndex: number): DataLoaderOptions<T> {\n return {\n pagination: this.manualPagination\n ? {\n limit: this.list.batches.batchSize,\n offset: this.list.batches.batchSize * batchIndex,\n }\n : undefined,\n\n sorting: this.manualSorting\n ? (Object.fromEntries(\n this.list.sorting\n .filter((s) => s.isSorted())\n .map((s) => [s.property, s.direction]),\n ) as DataLoaderOptions<T>[\"sorting\"])\n : undefined,\n\n filtering: this.manualFiltering\n ? (Object.fromEntries(\n this.list.filters\n .filter((f) => f.getValue() !== null)\n .map((f) => [\n f.property,\n {\n mode: f.mode,\n values: f.getArrayValue().map((v) => v.value),\n },\n ]),\n ) as DataLoaderOptions<T>[\"filtering\"])\n : undefined,\n\n searchString: this.manualFiltering\n ? this.list.reactTable.searchString\n : undefined,\n };\n }\n\n private getBatchDataAsyncResource(\n batchIndex: number,\n ): AsyncResource<DataLoaderResult<T>> {\n const dataSource = this.dataSource;\n const loaderOptions = this.getDataLoaderOptions(batchIndex);\n\n if (\"staticData\" in dataSource) {\n return getAsyncResource(\n async (staticData) => ({\n data: staticData as T[],\n itemTotalCount: staticData.length,\n }),\n [dataSource.staticData],\n );\n }\n\n if (\"asyncLoader\" in dataSource) {\n const asyncLoader = dataSource.asyncLoader;\n const dependencies = dataSource.dependencies;\n const loaderId = dependencies ? hash(dependencies).toString() : undefined;\n return getAsyncResource(asyncLoader, [loaderOptions], {\n loaderId,\n });\n }\n\n if (\"asyncResourceFactory\" in dataSource) {\n const asyncResourceFactory = dataSource.asyncResourceFactory;\n return asyncResourceFactory(loaderOptions);\n }\n\n throw new Error(\"Unknown data source\");\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IncrementalLoader.mjs","sources":["../../../../../../../../../src/components/List/model/loading/IncrementalLoader.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport type {\n DataLoaderOptions,\n DataLoaderResult,\n DataSource,\n IncrementalLoaderShape,\n LoaderInvocationHook,\n} from \"@/components/List/model/loading/types\";\nimport type { AsyncResource } from \"@mittwald/react-use-promise\";\nimport { getAsyncResource, usePromise } from \"@mittwald/react-use-promise\";\nimport { useEffect } from \"react\";\nimport { times } from \"remeda\";\nimport { IncrementalLoaderState } from \"@/components/List/model/loading/IncrementalLoaderState\";\nimport { hash } from \"object-code\";\nimport type { PropertyName } from \"@/components/List/model/types\";\nimport { useMemo } from \"react\";\nimport { useComponentDefaults } from \"@/components/ComponentDefaultsProvider\";\n\nconst emptyData: never[] = [];\n\nexport class IncrementalLoader<T> {\n private readonly list: List<T>;\n private readonly dataSource: DataSource<T>;\n public readonly manualSorting: boolean;\n public readonly manualFiltering: boolean;\n public readonly manualPagination: boolean;\n public readonly disableInitialSuspenseBoundary: boolean;\n public readonly loaderState: IncrementalLoaderState<T>;\n public readonly staticDataProperties: PropertyName<T>[] = [];\n\n private constructor(list: List<T>, shape: IncrementalLoaderShape<T> = {}) {\n const { source } = shape;\n\n this.dataSource = source ?? { staticData: emptyData };\n\n const {\n disableInitialSuspenseBoundary: disableInitialSuspenseBoundaryDefault,\n } = useComponentDefaults(\"List\");\n\n this.disableInitialSuspenseBoundary =\n \"disableInitialSuspenseBoundary\" in this.dataSource\n ? (this.dataSource.disableInitialSuspenseBoundary ??\n disableInitialSuspenseBoundaryDefault)\n : disableInitialSuspenseBoundaryDefault;\n\n const manualPagination =\n \"manualPagination\" in this.dataSource\n ? this.dataSource.manualPagination\n : undefined;\n\n const manualFiltering =\n \"manualFiltering\" in this.dataSource\n ? this.dataSource.manualFiltering\n : undefined;\n\n const manualSorting =\n \"manualSorting\" in this.dataSource\n ? this.dataSource.manualSorting\n : undefined;\n\n this.list = list;\n this.loaderState = IncrementalLoaderState.useNew<T>(list);\n\n this.manualPagination = manualPagination ?? false;\n this.manualFiltering = manualFiltering ?? this.manualPagination;\n this.manualSorting = manualSorting ?? this.manualPagination;\n this.list.filters.forEach((f) => f.onFilterUpdated(() => this.reset()));\n this.list.search?.onUpdated(() => this.reset());\n\n this.initStaticDataProperties();\n }\n\n public static useNew<T>(\n list: List<T>,\n shape: IncrementalLoaderShape<T> = {},\n ): IncrementalLoader<T> {\n return new IncrementalLoader(list, shape);\n }\n\n private initStaticDataProperties() {\n const addPropertiesOfDataEntry = (data: unknown) => {\n if (typeof data !== \"object\" || data === null) {\n return;\n }\n\n (Object.keys(data) as PropertyName<T>[])\n .filter((p) => !this.staticDataProperties.includes(p))\n .forEach((p) => {\n this.staticDataProperties.push(p);\n });\n };\n\n if (\"staticData\" in this.dataSource) {\n this.dataSource.staticData\n // collect properties from just the first 100 items\n .slice(0, 100)\n .forEach(addPropertiesOfDataEntry);\n }\n }\n\n private reset(): void {\n this.loaderState.reset();\n }\n\n public useIsLoading(): boolean {\n return this.loaderState.useIsLoading();\n }\n\n public useIsInitiallyLoading(): boolean {\n return this.loaderState.useIsInitiallyLoading();\n }\n\n public useIsLoadingMore(): boolean {\n return this.loaderState.useIsLoadingMore();\n }\n\n public useData(): T[] {\n return this.loaderState.useMergedData();\n }\n\n private getUseData(): (options: DataLoaderOptions<T>) => DataLoaderResult<T> {\n const dataSource = this.dataSource;\n\n return (options: DataLoaderOptions<T>) => {\n if (\"staticData\" in dataSource) {\n return useMemo(\n () => ({\n data: dataSource.staticData,\n itemTotalCount: dataSource.staticData.length,\n }),\n [dataSource.staticData],\n );\n }\n\n if (\"useData\" in dataSource) {\n return dataSource.useData(options);\n }\n\n if (\"asyncLoader\" in dataSource) {\n const asyncLoader = dataSource.asyncLoader;\n const dependencies = dataSource.dependencies;\n const loaderId = dependencies\n ? hash(dependencies).toString()\n : undefined;\n\n return usePromise(asyncLoader, [options], {\n loaderId,\n });\n }\n\n if (\"asyncResourceFactory\" in dataSource) {\n return dataSource.asyncResourceFactory(options).use();\n }\n\n return useMemo(\n () => ({\n data: [],\n itemTotalCount: 0,\n }),\n [],\n );\n };\n }\n\n public getLoaderInvocationHooks(): LoaderInvocationHook[] {\n const batchesCount = times(this.list.batches.getBatchIndex() + 1, (i) => i);\n const useData = this.getUseData();\n\n return batchesCount.map((batchIndex) => ({\n useLoadBatch: () => {\n const loaderOptions = this.getDataLoaderOptions(batchIndex);\n const loaderResult = useData(loaderOptions);\n const { data, itemTotalCount, metadata } = loaderResult;\n\n useEffect(() => {\n this.loaderState.setDataBatch(batchIndex, data);\n\n if (itemTotalCount !== undefined) {\n this.list.batches.updateItemTotalCount(itemTotalCount);\n }\n\n this.loaderState.setMetadata(metadata);\n\n this.loaderState.setBatchLoadingState(batchIndex, \"loaded\");\n }, [loaderResult]);\n },\n\n useRenderSuspense: () => {\n useEffect(() => {\n this.loaderState.setBatchLoadingState(batchIndex, \"loading\");\n }, [batchIndex]);\n },\n }));\n }\n\n private getDataLoaderOptions(batchIndex: number): DataLoaderOptions<T> {\n return {\n pagination: this.manualPagination\n ? {\n limit: this.list.batches.batchSize,\n offset: this.list.batches.batchSize * batchIndex,\n }\n : undefined,\n\n sorting: this.manualSorting\n ? (Object.fromEntries(\n this.list.sorting\n .filter((s) => s.isSorted())\n .map((s) => [s.property, s.direction]),\n ) as DataLoaderOptions<T>[\"sorting\"])\n : undefined,\n\n filtering: this.manualFiltering\n ? (Object.fromEntries(\n this.list.filters\n .filter((f) => f.getValue() !== null)\n .map((f) => [\n f.property,\n {\n mode: f.mode,\n values: f.getArrayValue().map((v) => v.value),\n },\n ]),\n ) as DataLoaderOptions<T>[\"filtering\"])\n : undefined,\n\n searchString: this.manualFiltering\n ? this.list.reactTable.searchString\n : undefined,\n };\n }\n\n private getBatchDataAsyncResource(\n batchIndex: number,\n ): AsyncResource<DataLoaderResult<T>> {\n const dataSource = this.dataSource;\n const loaderOptions = this.getDataLoaderOptions(batchIndex);\n\n if (\"staticData\" in dataSource) {\n return getAsyncResource(\n async (staticData) => ({\n data: staticData as T[],\n itemTotalCount: staticData.length,\n }),\n [dataSource.staticData],\n );\n }\n\n if (\"asyncLoader\" in dataSource) {\n const asyncLoader = dataSource.asyncLoader;\n const dependencies = dataSource.dependencies;\n const loaderId = dependencies ? hash(dependencies).toString() : undefined;\n return getAsyncResource(asyncLoader, [loaderOptions], {\n loaderId,\n });\n }\n\n if (\"asyncResourceFactory\" in dataSource) {\n const asyncResourceFactory = dataSource.asyncResourceFactory;\n return asyncResourceFactory(loaderOptions);\n }\n\n throw new Error(\"Unknown data source\");\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
"use client"
|
|
2
2
|
/* */
|
|
3
|
-
const
|
|
4
|
-
requireCloseModalConfirmationOnUnsavedChanges:
|
|
3
|
+
const flagDefaults = {
|
|
4
|
+
requireCloseModalConfirmationOnUnsavedChanges: true,
|
|
5
5
|
disableInitialListSuspenseBoundaries: false
|
|
6
6
|
};
|
|
7
|
-
|
|
7
|
+
const flagValues = { ...flagDefaults };
|
|
8
|
+
const assignedFlags = /* @__PURE__ */ new Set();
|
|
9
|
+
const flags = {};
|
|
10
|
+
const defineFlag = (name) => {
|
|
11
|
+
Object.defineProperty(flags, name, {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: () => flagValues[name],
|
|
14
|
+
set: (value) => {
|
|
15
|
+
assignedFlags.add(name);
|
|
16
|
+
flagValues[name] = value;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
Object.keys(flagDefaults).forEach(defineFlag);
|
|
21
|
+
const flagIsAssigned = (name) => assignedFlags.has(name);
|
|
8
22
|
|
|
9
|
-
export { flags };
|
|
23
|
+
export { flagIsAssigned, flags };
|
|
10
24
|
//# sourceMappingURL=flags.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flags.mjs","sources":["../../../../../src/flags.ts"],"sourcesContent":["export
|
|
1
|
+
{"version":3,"file":"flags.mjs","sources":["../../../../../src/flags.ts"],"sourcesContent":["export interface Flags {\n /**\n * @deprecated Closing a `Modal` that contains a `Form` with unsaved changes\n * must be confirmed by default now\n * (`Form.confirmModalCloseOnUnsavedChanges: true`). Use the `defaults`\n * property of the `ComponentDefaultsProvider` instead – assigning this flag\n * still works, but it will be removed in a future release.\n */\n requireCloseModalConfirmationOnUnsavedChanges: boolean;\n /**\n * @deprecated Its default is unchanged (`List.disableInitialSuspenseBoundary:\n * false`). Use the `defaults` property of the `ComponentDefaultsProvider`\n * instead – assigning this flag still works, but it will be removed in a\n * future release.\n */\n disableInitialListSuspenseBoundaries: boolean;\n}\n\nexport type FlagName = keyof Flags;\n\n/**\n * Fallback values of the flags. Only used when an application neither assigns\n * the flag nor provides a `ComponentDefaultsProvider`; the built-in defaults of\n * the affected components are the single source of truth for them.\n */\nconst flagDefaults: Flags = {\n requireCloseModalConfirmationOnUnsavedChanges: true,\n disableInitialListSuspenseBoundaries: false,\n};\n\nconst flagValues: Flags = { ...flagDefaults };\n\n/**\n * Flags an application has assigned itself. Only these contribute a default\n * (and a deprecation warning) – a flag left alone is not a deprecated usage.\n */\nconst assignedFlags = new Set<FlagName>();\n\n/**\n * Behavior toggles of the component library.\n *\n * @deprecated Use the `defaults` property of the `ComponentDefaultsProvider`\n * instead.\n */\nexport const flags: Flags = {} as Flags;\n\nconst defineFlag = (name: FlagName): void => {\n Object.defineProperty(flags, name, {\n enumerable: true,\n get: () => flagValues[name],\n set: (value: boolean) => {\n assignedFlags.add(name);\n flagValues[name] = value;\n },\n });\n};\n\n(Object.keys(flagDefaults) as FlagName[]).forEach(defineFlag);\n\n/** @internal */\nexport const flagIsAssigned = (name: FlagName): boolean =>\n assignedFlags.has(name);\n\nexport const resetFlags = () => {\n Object.assign(flagValues, flagDefaults);\n assignedFlags.clear();\n};\n"],"names":[],"mappings":"AAyBA,MAAM,YAAA,GAAsB;AAAA,EAC1B,6CAAA,EAA+C,IAAA;AAAA,EAC/C,oCAAA,EAAsC;AACxC,CAAA;AAEA,MAAM,UAAA,GAAoB,EAAE,GAAG,YAAA,EAAa;AAM5C,MAAM,aAAA,uBAAoB,GAAA,EAAc;AAQjC,MAAM,QAAe;AAE5B,MAAM,UAAA,GAAa,CAAC,IAAA,KAAyB;AAC3C,EAAA,MAAA,CAAO,cAAA,CAAe,OAAO,IAAA,EAAM;AAAA,IACjC,UAAA,EAAY,IAAA;AAAA,IACZ,GAAA,EAAK,MAAM,UAAA,CAAW,IAAI,CAAA;AAAA,IAC1B,GAAA,EAAK,CAAC,KAAA,KAAmB;AACvB,MAAA,aAAA,CAAc,IAAI,IAAI,CAAA;AACtB,MAAA,UAAA,CAAW,IAAI,CAAA,GAAI,KAAA;AAAA,IACrB;AAAA,GACD,CAAA;AACH,CAAA;AAEC,MAAA,CAAO,IAAA,CAAK,YAAY,CAAA,CAAiB,OAAA,CAAQ,UAAU,CAAA;AAGrD,MAAM,cAAA,GAAiB,CAAC,IAAA,KAC7B,aAAA,CAAc,IAAI,IAAI;;;;"}
|
package/dist/js/packages/components/src/integrations/react-hook-form/components/Form/Form.mjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/* */
|
|
3
3
|
import { jsx } from 'react/jsx-runtime';
|
|
4
4
|
import { FormContextProvider } from '../FormContextProvider/FormContextProvider.mjs';
|
|
5
|
-
import {
|
|
5
|
+
import { useComponentDefaults } from '../../../../components/ComponentDefaultsProvider/ComponentDefaultsProvider.mjs';
|
|
6
6
|
import { useId, useMemo, useRef } from 'react';
|
|
7
7
|
import { FormProvider } from 'react-hook-form';
|
|
8
8
|
import { useFormRootErrorController } from '../FormRootError/useFormRootErrorController.mjs';
|
|
@@ -35,12 +35,14 @@ function Form(props) {
|
|
|
35
35
|
const defaultSubmitController = useFormSubmitController();
|
|
36
36
|
const submitController = submitControllerFromProps ? submitControllerFromProps.submit.extend(defaultSubmitController) : defaultSubmitController;
|
|
37
37
|
const autoResetOptions = typeof autoReset === "boolean" ? { onAfterModalClose: autoReset } : autoReset;
|
|
38
|
+
const { confirmModalCloseOnUnsavedChanges } = useComponentDefaults("Form");
|
|
38
39
|
const modalController = useModalController();
|
|
39
40
|
modalController.useUpdateOptions({
|
|
40
|
-
//
|
|
41
|
-
//
|
|
42
|
-
//
|
|
43
|
-
|
|
41
|
+
// A dirty Form contributes one close confirmation source to the surrounding
|
|
42
|
+
// Modal; sources are combined, so a clean Form does not overrule a
|
|
43
|
+
// `<Modal confirmOnClose>`. The Modal renders the confirmation dialog.
|
|
44
|
+
// An application that switched the default off contributes nothing at all.
|
|
45
|
+
confirmOnClose: confirmModalCloseOnUnsavedChanges ? isDirty : void 0
|
|
44
46
|
});
|
|
45
47
|
modalController.useOnClosed(() => {
|
|
46
48
|
if (autoResetOptions?.onAfterModalClose) {
|
package/dist/js/packages/components/src/integrations/react-hook-form/components/Form/Form.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.mjs","sources":["../../../../../../../../../src/integrations/react-hook-form/components/Form/Form.tsx"],"sourcesContent":["import { FormContextProvider } from \"@/integrations/react-hook-form/components/FormContextProvider/FormContextProvider\";\nimport {
|
|
1
|
+
{"version":3,"file":"Form.mjs","sources":["../../../../../../../../../src/integrations/react-hook-form/components/Form/Form.tsx"],"sourcesContent":["import { FormContextProvider } from \"@/integrations/react-hook-form/components/FormContextProvider/FormContextProvider\";\nimport { useComponentDefaults } from \"@/components/ComponentDefaultsProvider\";\nimport { useModalController } from \"@/lib/controller\";\nimport {\n type BaseSyntheticEvent,\n type ComponentProps,\n type FC,\n type PropsWithChildren,\n type Ref,\n type SubmitEventHandler,\n useId,\n useMemo,\n useRef,\n} from \"react\";\nimport type {\n FieldValues,\n Path,\n SubmitHandler,\n UseFormReturn,\n} from \"react-hook-form\";\nimport { FormProvider as RhfFormContextProvider } from \"react-hook-form\";\nimport { useFormRootErrorController } from \"../FormRootError/useFormRootErrorController\";\nimport { FormRootError } from \"../../lib/FormRootError\";\nimport { useFormSettings } from \"../FormSettingsProvider/FormSettingsProvider\";\nimport {\n useFormSubmitController,\n type WithFormSubmitControllerProps,\n} from \"@/integrations/react-hook-form/components/Form/hooks/useFormSubmitController\";\nimport { useHotkeySubmit } from \"@/integrations/react-hook-form/components/Form/hooks/useHotkeySubmit\";\n\nexport type FormOnSubmitHandler<F extends FieldValues> = SubmitHandler<F>;\n\nexport type AfterFormSubmitCallback = (...unknownArgs: unknown[]) => unknown;\n\nexport interface FormAutoResetOptions {\n onAfterModalClose?: boolean;\n}\n\ntype FormComponentType = FC<\n PropsWithChildren<{\n id: string;\n onSubmit?: SubmitEventHandler | FormOnSubmitHandler<never>;\n ref?: Ref<HTMLFormElement>;\n }>\n>;\n\nexport interface FormProps<F extends FieldValues>\n extends\n Omit<ComponentProps<\"form\">, \"onSubmit\">,\n PropsWithChildren,\n WithFormSubmitControllerProps {\n form: UseFormReturn<F>;\n onSubmit: FormOnSubmitHandler<F>;\n formComponent?: FC<Omit<FormComponentType, \"ref\">>;\n isReadOnly?: boolean;\n autoReset?: FormAutoResetOptions | boolean;\n}\n\nconst DefaultFormComponent: FormComponentType = (p) => <form {...p} />;\n\nexport function Form<F extends FieldValues>(props: FormProps<F>) {\n const {\n form,\n children,\n onSubmit: onSubmitProp,\n formComponent = DefaultFormComponent,\n isReadOnly,\n ref,\n id: idProp,\n autoReset = true,\n submitController: submitControllerFromProps,\n ...formProps\n } = props;\n\n const newFormId = useId();\n const formId = idProp ?? newFormId;\n const FormComponent = useMemo(() => formComponent, [formId]);\n const afterSubmitCallback = useRef<AfterFormSubmitCallback>(undefined);\n const { isDirty } = form.formState;\n const rootErrorController = useFormRootErrorController();\n\n const defaultSubmitController = useFormSubmitController();\n const submitController = submitControllerFromProps\n ? submitControllerFromProps.submit.extend(defaultSubmitController)\n : defaultSubmitController;\n\n const autoResetOptions =\n typeof autoReset === \"boolean\"\n ? { onAfterModalClose: autoReset }\n : autoReset;\n\n const { confirmModalCloseOnUnsavedChanges } = useComponentDefaults(\"Form\");\n\n const modalController = useModalController();\n modalController.useUpdateOptions({\n // A dirty Form contributes one close confirmation source to the surrounding\n // Modal; sources are combined, so a clean Form does not overrule a\n // `<Modal confirmOnClose>`. The Modal renders the confirmation dialog.\n // An application that switched the default off contributes nothing at all.\n confirmOnClose: confirmModalCloseOnUnsavedChanges ? isDirty : undefined,\n });\n modalController.useOnClosed(() => {\n if (autoResetOptions?.onAfterModalClose) {\n form.reset();\n }\n });\n\n const { submitInterceptor } = useFormSettings();\n const onSubmit = submitInterceptor\n ? (values: F) => submitInterceptor<F>(onSubmitProp, values, { form })\n : onSubmitProp;\n\n const handleSubmitResult = (result: unknown) => {\n if (typeof result === \"function\") {\n afterSubmitCallback.current = result as AfterFormSubmitCallback;\n }\n const rootError = form.getFieldState(\"root\" as Path<F>)?.error;\n if (rootError && !rootErrorController.errorComponentMounted) {\n throw new FormRootError(rootError);\n }\n };\n\n const handleSubmit = (e?: BaseSyntheticEvent | F) => {\n const formEvent =\n e && \"nativeEvent\" in e ? (e as BaseSyntheticEvent) : undefined;\n formEvent?.stopPropagation();\n\n return form.handleSubmit((values, event) => {\n modalController.confirmClose();\n\n const submitResult = onSubmit(values, event);\n if (submitResult instanceof Promise) {\n return submitResult.then(handleSubmitResult);\n }\n handleSubmitResult(submitResult);\n })(formEvent);\n };\n submitController.submit.set(handleSubmit);\n\n const onAfterSuccessFeedback = () => {\n afterSubmitCallback.current?.();\n };\n\n const refWithHotkeySubmit = useHotkeySubmit({\n ref,\n submitController,\n });\n\n return (\n <RhfFormContextProvider {...form}>\n <FormContextProvider\n form={form as UseFormReturn}\n isReadOnly={isReadOnly}\n id={formId}\n onAfterSuccessFeedback={onAfterSuccessFeedback}\n rootErrorController={rootErrorController}\n >\n <FormComponent\n {...formProps}\n ref={refWithHotkeySubmit}\n id={formId}\n onSubmit={handleSubmit}\n >\n {children}\n </FormComponent>\n </FormContextProvider>\n </RhfFormContextProvider>\n );\n}\n\nexport default Form;\n"],"names":["RhfFormContextProvider"],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@ const componentStatus = {
|
|
|
30
30
|
"@mittwald/flow-react-components#Color": {"level":"stable","isNew":false},
|
|
31
31
|
"@mittwald/flow-react-components#ColumnLayout": {"level":"stable","isNew":false},
|
|
32
32
|
"@mittwald/flow-react-components#ComboBox": {"level":"stable","isNew":false},
|
|
33
|
+
"@mittwald/flow-react-components#ComponentDefaultsProvider": {"level":"stable","isNew":true},
|
|
33
34
|
"@mittwald/flow-react-components#ComponentPropsContextProvider": {"level":"stable","isNew":false},
|
|
34
35
|
"@mittwald/flow-react-components#Content": {"level":"stable","isNew":false},
|
|
35
36
|
"@mittwald/flow-react-components#ContextMenu": {"level":"stable","isNew":false},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-status.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"component-status.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ComponentDefaults, ComponentWithDefaults, PartialComponentDefaults } from './defaults';
|
|
2
|
+
import { FC, PropsWithChildren } from 'react';
|
|
3
|
+
export declare const ComponentDefaultsContext: import('react').Context<PartialComponentDefaults>;
|
|
4
|
+
export interface ComponentDefaultsProviderProps extends PropsWithChildren {
|
|
5
|
+
/**
|
|
6
|
+
* Defaults per component. Every setting that is not given keeps the default
|
|
7
|
+
* of a surrounding ComponentDefaultsProvider, or its built-in default.
|
|
8
|
+
*/
|
|
9
|
+
defaults: PartialComponentDefaults;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Defines the default behavior of components for the whole application – or,
|
|
13
|
+
* nested, for a part of it.
|
|
14
|
+
*
|
|
15
|
+
* @flowStatus new
|
|
16
|
+
*/
|
|
17
|
+
export declare const ComponentDefaultsProvider: FC<ComponentDefaultsProviderProps>;
|
|
18
|
+
/**
|
|
19
|
+
* The defaults that apply to a component: built-in defaults, overridden by the
|
|
20
|
+
* deprecated `flags` object, overridden by the ComponentDefaultsProvider.
|
|
21
|
+
*/
|
|
22
|
+
export declare const useComponentDefaults: <C extends ComponentWithDefaults>(component: C) => ComponentDefaults[C];
|
|
23
|
+
export default ComponentDefaultsProvider;
|
|
24
|
+
//# sourceMappingURL=ComponentDefaultsProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComponentDefaultsProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/ComponentDefaultsProvider/ComponentDefaultsProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC9B,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EAEL,KAAK,EAAE,EACP,KAAK,iBAAiB,EAGvB,MAAM,OAAO,CAAC;AAEf,eAAO,MAAM,wBAAwB,mDAEpC,CAAC;AAEF,MAAM,WAAW,8BAA+B,SAAQ,iBAAiB;IACvE;;;OAGG;IACH,QAAQ,EAAE,wBAAwB,CAAC;CACpC;AAiBD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC,8BAA8B,CAgBxE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,qBAAqB,EAClE,WAAW,CAAC,KACX,iBAAiB,CAAC,CAAC,CASrB,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
|
package/dist/types/components/ComponentDefaultsProvider/ComponentDefaultsProvider.test.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComponentDefaultsProvider.test.d.ts","sourceRoot":"","sources":["../../../../src/components/ComponentDefaultsProvider/ComponentDefaultsProvider.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Behavior of components that an application can define once, globally, instead
|
|
3
|
+
* of repeating it at every usage. Every setting has a built-in default and
|
|
4
|
+
* stays overridable at the component itself.
|
|
5
|
+
*/
|
|
6
|
+
export interface ComponentDefaults {
|
|
7
|
+
List: {
|
|
8
|
+
/**
|
|
9
|
+
* Whether a `List` renders no own Suspense boundary while it initially
|
|
10
|
+
* loads. Suspending is then handed over to the closest Suspense boundary
|
|
11
|
+
* above the List, so the List appears with loaded data instead of showing
|
|
12
|
+
* its loading view (skeleton) first.
|
|
13
|
+
*
|
|
14
|
+
* Overridable per List through the `disableInitialSuspenseBoundary`
|
|
15
|
+
* property of its data source.
|
|
16
|
+
*
|
|
17
|
+
* @default false
|
|
18
|
+
*/
|
|
19
|
+
disableInitialSuspenseBoundary: boolean;
|
|
20
|
+
};
|
|
21
|
+
Form: {
|
|
22
|
+
/**
|
|
23
|
+
* Whether closing a `Modal` that contains a `Form` with unsaved changes
|
|
24
|
+
* must be confirmed. Applies as long as the Form is _dirty_ – after a
|
|
25
|
+
* successful submit or a `form.reset()` it is not.
|
|
26
|
+
*
|
|
27
|
+
* @default true
|
|
28
|
+
*/
|
|
29
|
+
confirmModalCloseOnUnsavedChanges: boolean;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export type ComponentWithDefaults = keyof ComponentDefaults;
|
|
33
|
+
export type PartialComponentDefaults = {
|
|
34
|
+
[C in ComponentWithDefaults]?: Partial<ComponentDefaults[C]>;
|
|
35
|
+
};
|
|
36
|
+
export declare const builtInComponentDefaults: ComponentDefaults;
|
|
37
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../../src/components/ComponentDefaultsProvider/defaults.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE;QACJ;;;;;;;;;;WAUG;QACH,8BAA8B,EAAE,OAAO,CAAC;KACzC,CAAC;IACF,IAAI,EAAE;QACJ;;;;;;WAMG;QACH,iCAAiC,EAAE,OAAO,CAAC;KAC5C,CAAC;CACH;AAED,MAAM,MAAM,qBAAqB,GAAG,MAAM,iBAAiB,CAAC;AAE5D,MAAM,MAAM,wBAAwB,GAAG;KACpC,CAAC,IAAI,qBAAqB,CAAC,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;CAC7D,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,iBAOtC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ComponentDefaults, ComponentWithDefaults } from './defaults';
|
|
2
|
+
/**
|
|
3
|
+
* Defaults an application still contributes through the deprecated `flags`
|
|
4
|
+
* object. Ranks below the ComponentDefaultsProvider and above the built-in
|
|
5
|
+
* defaults.
|
|
6
|
+
*/
|
|
7
|
+
export declare const useDeprecatedFlagDefaults: <C extends ComponentWithDefaults>(component: C) => Partial<ComponentDefaults[C]>;
|
|
8
|
+
//# sourceMappingURL=deprecatedFlags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deprecatedFlags.d.ts","sourceRoot":"","sources":["../../../../src/components/ComponentDefaultsProvider/deprecatedFlags.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,iDAAiD,CAAC;AAgCzD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,qBAAqB,EACvE,WAAW,CAAC,KACX,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAc9B,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { ComponentDefaultsContext, ComponentDefaultsProvider, type ComponentDefaultsProviderProps, useComponentDefaults, } from './ComponentDefaultsProvider';
|
|
2
|
+
export { builtInComponentDefaults, type ComponentDefaults, type ComponentWithDefaults, type PartialComponentDefaults, } from './defaults';
|
|
3
|
+
export { default } from './ComponentDefaultsProvider';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ComponentDefaultsProvider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,8BAA8B,EACnC,oBAAoB,GACrB,MAAM,kEAAkE,CAAC;AAE1E,OAAO,EACL,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,GAC9B,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,kEAAkE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IncrementalLoader.d.ts","sourceRoot":"","sources":["../../../../../../src/components/List/model/loading/IncrementalLoader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,KAAK,EAIV,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,uCAAuC,CAAC;AAK/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wDAAwD,CAAC;AAEhG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"IncrementalLoader.d.ts","sourceRoot":"","sources":["../../../../../../src/components/List/model/loading/IncrementalLoader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,KAAK,EAIV,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,uCAAuC,CAAC;AAK/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wDAAwD,CAAC;AAEhG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAMlE,qBAAa,iBAAiB,CAAC,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,SAAgB,aAAa,EAAE,OAAO,CAAC;IACvC,SAAgB,eAAe,EAAE,OAAO,CAAC;IACzC,SAAgB,gBAAgB,EAAE,OAAO,CAAC;IAC1C,SAAgB,8BAA8B,EAAE,OAAO,CAAC;IACxD,SAAgB,WAAW,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACvD,SAAgB,oBAAoB,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAM;IAE7D,OAAO;WA0CO,MAAM,CAAC,CAAC,EACpB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EACb,KAAK,GAAE,sBAAsB,CAAC,CAAC,CAAM,GACpC,iBAAiB,CAAC,CAAC,CAAC;IAIvB,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,KAAK;IAIN,YAAY,IAAI,OAAO;IAIvB,qBAAqB,IAAI,OAAO;IAIhC,gBAAgB,IAAI,OAAO;IAI3B,OAAO,IAAI,CAAC,EAAE;IAIrB,OAAO,CAAC,UAAU;IA4CX,wBAAwB,IAAI,oBAAoB,EAAE;IA+BzD,OAAO,CAAC,oBAAoB;IAqC5B,OAAO,CAAC,yBAAyB;CAgClC"}
|
|
@@ -33,6 +33,14 @@ interface DynamicLoaderShape {
|
|
|
33
33
|
manualPagination?: boolean;
|
|
34
34
|
}
|
|
35
35
|
interface SuspenseLoaderShape {
|
|
36
|
+
/**
|
|
37
|
+
* Whether the List renders no own Suspense boundary while it initially loads.
|
|
38
|
+
* Suspending is then handed over to the closest Suspense boundary above the
|
|
39
|
+
* List, so the List appears with loaded data instead of showing its loading
|
|
40
|
+
* view (skeleton) first.
|
|
41
|
+
*
|
|
42
|
+
* @default false
|
|
43
|
+
*/
|
|
36
44
|
disableInitialSuspenseBoundary?: boolean;
|
|
37
45
|
}
|
|
38
46
|
export interface StaticDataLoaderShape<T> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/List/model/loading/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/List/model/loading/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ export * from './CodeEditor';
|
|
|
28
28
|
export * from './Color';
|
|
29
29
|
export * from './ColumnLayout';
|
|
30
30
|
export * from './ComboBox';
|
|
31
|
+
export * from './ComponentDefaultsProvider';
|
|
31
32
|
export * from './ComponentPropsContextProvider';
|
|
32
33
|
export * from './Content';
|
|
33
34
|
export * from './ContextMenu';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/components/public.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/components/public.ts"],"names":[],"mappings":"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"}
|
package/dist/types/flags.d.ts
CHANGED
|
@@ -1,6 +1,27 @@
|
|
|
1
|
-
export
|
|
1
|
+
export interface Flags {
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Closing a `Modal` that contains a `Form` with unsaved changes
|
|
4
|
+
* must be confirmed by default now
|
|
5
|
+
* (`Form.confirmModalCloseOnUnsavedChanges: true`). Use the `defaults`
|
|
6
|
+
* property of the `ComponentDefaultsProvider` instead – assigning this flag
|
|
7
|
+
* still works, but it will be removed in a future release.
|
|
8
|
+
*/
|
|
2
9
|
requireCloseModalConfirmationOnUnsavedChanges: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated Its default is unchanged (`List.disableInitialSuspenseBoundary:
|
|
12
|
+
* false`). Use the `defaults` property of the `ComponentDefaultsProvider`
|
|
13
|
+
* instead – assigning this flag still works, but it will be removed in a
|
|
14
|
+
* future release.
|
|
15
|
+
*/
|
|
3
16
|
disableInitialListSuspenseBoundaries: boolean;
|
|
4
|
-
}
|
|
17
|
+
}
|
|
18
|
+
export type FlagName = keyof Flags;
|
|
19
|
+
/**
|
|
20
|
+
* Behavior toggles of the component library.
|
|
21
|
+
*
|
|
22
|
+
* @deprecated Use the `defaults` property of the `ComponentDefaultsProvider`
|
|
23
|
+
* instead.
|
|
24
|
+
*/
|
|
25
|
+
export declare const flags: Flags;
|
|
5
26
|
export declare const resetFlags: () => void;
|
|
6
27
|
//# sourceMappingURL=flags.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../src/flags.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../src/flags.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB;;;;;;OAMG;IACH,6CAA6C,EAAE,OAAO,CAAC;IACvD;;;;;OAKG;IACH,oCAAoC,EAAE,OAAO,CAAC;CAC/C;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC;AAoBnC;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,KAAmB,CAAC;AAmBxC,eAAO,MAAM,UAAU,YAGtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/react-hook-form/components/Form/Form.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,EAAE,EACP,KAAK,iBAAiB,EACtB,KAAK,GAAG,EACR,KAAK,kBAAkB,EAIxB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EACV,WAAW,EAEX,aAAa,EACb,aAAa,EACd,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,8EAA8E,CAAC;AAGtF,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,WAAW,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;AAE1E,MAAM,MAAM,uBAAuB,GAAG,CAAC,GAAG,WAAW,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAE7E,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,KAAK,iBAAiB,GAAG,EAAE,CACzB,iBAAiB,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,kBAAkB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC3D,GAAG,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;CAC5B,CAAC,CACH,CAAC;AAEF,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,WAAW,CAC9C,SACE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,EACxC,iBAAiB,EACjB,6BAA6B;IAC/B,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACvB,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;IACnD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC;CAC5C;AAID,wBAAgB,IAAI,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,+
|
|
1
|
+
{"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/react-hook-form/components/Form/Form.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,EAAE,EACP,KAAK,iBAAiB,EACtB,KAAK,GAAG,EACR,KAAK,kBAAkB,EAIxB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EACV,WAAW,EAEX,aAAa,EACb,aAAa,EACd,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,8EAA8E,CAAC;AAGtF,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,WAAW,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;AAE1E,MAAM,MAAM,uBAAuB,GAAG,CAAC,GAAG,WAAW,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAE7E,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,KAAK,iBAAiB,GAAG,EAAE,CACzB,iBAAiB,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,kBAAkB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC3D,GAAG,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;CAC5B,CAAC,CACH,CAAC;AAEF,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,WAAW,CAC9C,SACE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,EACxC,iBAAiB,EACjB,6BAA6B;IAC/B,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACvB,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;IACnD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC;CAC5C;AAID,wBAAgB,IAAI,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,+BA4G9D;AAED,eAAe,IAAI,CAAC"}
|