@webiny/app 6.4.5 → 6.6.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/config/RouterConfig.d.ts +1 -3
- package/core/Plugins.d.ts +2 -1
- package/{plugins/NetworkErrorLinkPlugin → errors/overlay}/ErrorOverlay.js +9 -15
- package/errors/overlay/ErrorOverlay.js.map +1 -0
- package/errors/overlay/GqlErrorOverlay.js.map +1 -0
- package/{plugins/NetworkErrorLinkPlugin → errors/overlay}/LocalAwsLambdaTimeoutMessage.js +3 -6
- package/errors/overlay/LocalAwsLambdaTimeoutMessage.js.map +1 -0
- package/errors/overlay/StyledComponents.d.ts +7 -0
- package/errors/overlay/StyledComponents.js +10 -0
- package/errors/overlay/StyledComponents.js.map +1 -0
- package/errors/overlay/Typography.js.map +1 -0
- package/errors/overlay/assets/close_24px.js.map +1 -0
- package/{plugins/NetworkErrorLinkPlugin → errors/overlay}/createErrorOverlay.js +2 -2
- package/errors/overlay/createErrorOverlay.js.map +1 -0
- package/features/router/HistoryRouterGateway.d.ts +3 -0
- package/features/router/HistoryRouterGateway.js +12 -0
- package/features/router/HistoryRouterGateway.js.map +1 -1
- package/features/router/Route.d.ts +1 -1
- package/features/router/RouterPresenter.d.ts +2 -0
- package/features/router/RouterPresenter.js +10 -0
- package/features/router/RouterPresenter.js.map +1 -1
- package/features/router/RouterRepository.d.ts +2 -0
- package/features/router/RouterRepository.js +8 -2
- package/features/router/RouterRepository.js.map +1 -1
- package/features/router/abstractions.d.ts +9 -0
- package/features/router/abstractions.js.map +1 -1
- package/index.d.ts +0 -3
- package/index.js +0 -3
- package/package.json +9 -22
- package/plugins/image.d.ts +1 -1
- package/presentation/router/components/RouteParamsSync.d.ts +22 -0
- package/presentation/router/components/RouteParamsSync.js +53 -0
- package/presentation/router/components/RouteParamsSync.js.map +1 -0
- package/presentation/router/hooks/useRoute.d.ts +1 -0
- package/presentation/router/hooks/useRoute.js +2 -1
- package/presentation/router/hooks/useRoute.js.map +1 -1
- package/presentation/router/hooks/useRouter.d.ts +1 -0
- package/presentation/router/hooks/useRouter.js +1 -0
- package/presentation/router/hooks/useRouter.js.map +1 -1
- package/presentation/router/index.d.ts +2 -0
- package/presentation/router/index.js +1 -0
- package/types.d.ts +0 -21
- package/apollo-client/InMemoryCache.d.ts +0 -8
- package/apollo-client/InMemoryCache.js +0 -18
- package/apollo-client/InMemoryCache.js.map +0 -1
- package/apollo-client/IntrospectionFragmentMatcher.d.ts +0 -11
- package/apollo-client/IntrospectionFragmentMatcher.js +0 -33
- package/apollo-client/IntrospectionFragmentMatcher.js.map +0 -1
- package/hooks/useAutocomplete/index.d.ts +0 -1
- package/hooks/useAutocomplete/index.js +0 -1
- package/hooks/useAutocomplete/useAutocomplete.d.ts +0 -11
- package/hooks/useAutocomplete/useAutocomplete.js +0 -17
- package/hooks/useAutocomplete/useAutocomplete.js.map +0 -1
- package/hooks/useDataList/functions/getData.d.ts +0 -2
- package/hooks/useDataList/functions/getData.js +0 -5
- package/hooks/useDataList/functions/getData.js.map +0 -1
- package/hooks/useDataList/functions/getError.d.ts +0 -2
- package/hooks/useDataList/functions/getError.js +0 -5
- package/hooks/useDataList/functions/getError.js.map +0 -1
- package/hooks/useDataList/functions/getMeta.d.ts +0 -2
- package/hooks/useDataList/functions/getMeta.js +0 -5
- package/hooks/useDataList/functions/getMeta.js.map +0 -1
- package/hooks/useDataList/functions/index.d.ts +0 -3
- package/hooks/useDataList/functions/index.js +0 -3
- package/hooks/useDataList/functions/searchDataByKey.d.ts +0 -2
- package/hooks/useDataList/functions/searchDataByKey.js +0 -13
- package/hooks/useDataList/functions/searchDataByKey.js.map +0 -1
- package/hooks/useDataList/index.d.ts +0 -1
- package/hooks/useDataList/index.js +0 -1
- package/hooks/useDataList/useDataList.d.ts +0 -35
- package/hooks/useDataList/useDataList.js +0 -142
- package/hooks/useDataList/useDataList.js.map +0 -1
- package/hooks/useDataList/utils/index.d.ts +0 -1
- package/hooks/useDataList/utils/index.js +0 -1
- package/hooks/useDataList/utils/prepareLoadListParams.d.ts +0 -10
- package/hooks/useDataList/utils/prepareLoadListParams.js +0 -29
- package/hooks/useDataList/utils/prepareLoadListParams.js.map +0 -1
- package/plugins/AddQuerySelectionPlugin.d.ts +0 -22
- package/plugins/AddQuerySelectionPlugin.js +0 -47
- package/plugins/AddQuerySelectionPlugin.js.map +0 -1
- package/plugins/ApolloCacheObjectIdPlugin.d.ts +0 -15
- package/plugins/ApolloCacheObjectIdPlugin.js +0 -17
- package/plugins/ApolloCacheObjectIdPlugin.js.map +0 -1
- package/plugins/ApolloDynamicLink.d.ts +0 -7
- package/plugins/ApolloDynamicLink.js +0 -29
- package/plugins/ApolloDynamicLink.js.map +0 -1
- package/plugins/ApolloLinkPlugin.d.ts +0 -13
- package/plugins/ApolloLinkPlugin.js +0 -23
- package/plugins/ApolloLinkPlugin.js.map +0 -1
- package/plugins/ConsoleLinkPlugin.d.ts +0 -8
- package/plugins/ConsoleLinkPlugin.js +0 -24
- package/plugins/ConsoleLinkPlugin.js.map +0 -1
- package/plugins/NetworkErrorLinkPlugin/ErrorOverlay.js.map +0 -1
- package/plugins/NetworkErrorLinkPlugin/GqlErrorOverlay.js.map +0 -1
- package/plugins/NetworkErrorLinkPlugin/LocalAwsLambdaTimeoutMessage.js.map +0 -1
- package/plugins/NetworkErrorLinkPlugin/StyledComponents.d.ts +0 -8
- package/plugins/NetworkErrorLinkPlugin/StyledComponents.js +0 -69
- package/plugins/NetworkErrorLinkPlugin/StyledComponents.js.map +0 -1
- package/plugins/NetworkErrorLinkPlugin/Typography.js.map +0 -1
- package/plugins/NetworkErrorLinkPlugin/assets/close_24px.js.map +0 -1
- package/plugins/NetworkErrorLinkPlugin/createErrorOverlay.js.map +0 -1
- package/plugins/NetworkErrorLinkPlugin.d.ts +0 -10
- package/plugins/NetworkErrorLinkPlugin.js +0 -53
- package/plugins/NetworkErrorLinkPlugin.js.map +0 -1
- package/plugins/OmitTypenameLinkPlugin.d.ts +0 -8
- package/plugins/OmitTypenameLinkPlugin.js +0 -16
- package/plugins/OmitTypenameLinkPlugin.js.map +0 -1
- package/plugins/TenantHeaderLinkPlugin.d.ts +0 -10
- package/plugins/TenantHeaderLinkPlugin.js +0 -28
- package/plugins/TenantHeaderLinkPlugin.js.map +0 -1
- /package/{plugins/NetworkErrorLinkPlugin → errors/overlay}/ErrorOverlay.d.ts +0 -0
- /package/{plugins/NetworkErrorLinkPlugin → errors/overlay}/GqlErrorOverlay.d.ts +0 -0
- /package/{plugins/NetworkErrorLinkPlugin → errors/overlay}/GqlErrorOverlay.js +0 -0
- /package/{plugins/NetworkErrorLinkPlugin → errors/overlay}/LocalAwsLambdaTimeoutMessage.d.ts +0 -0
- /package/{plugins/NetworkErrorLinkPlugin → errors/overlay}/Typography.d.ts +0 -0
- /package/{plugins/NetworkErrorLinkPlugin → errors/overlay}/Typography.js +0 -0
- /package/{plugins/NetworkErrorLinkPlugin → errors/overlay}/assets/close_24px.js +0 -0
- /package/{plugins/NetworkErrorLinkPlugin → errors/overlay}/assets/close_24px.svg +0 -0
- /package/{plugins/NetworkErrorLinkPlugin → errors/overlay}/createErrorOverlay.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presentation/router/components/RouteParamsSync.js","sources":["../../../../src/presentation/router/components/RouteParamsSync.tsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { reaction } from \"mobx\";\nimport type { Route, RouteParamsDefinition } from \"~/features/router/Route.js\";\nimport { useRoute } from \"~/presentation/router/hooks/useRoute.js\";\nimport { useLocalStorage } from \"~/presentation/localStorage/useLocalStorage.js\";\n\nexport interface RouteParamFieldConfig<T> {\n param: string;\n read: () => T | undefined;\n write: (value: T | undefined) => void;\n storageKey?: string;\n}\n\nexport interface RouteParamField {\n param: string;\n read: () => unknown;\n write: (value: unknown) => void;\n storageKey?: string;\n}\n\nexport interface RouteParamFieldBuilder {\n create<T>(config: RouteParamFieldConfig<T>): RouteParamField;\n}\n\nconst fieldBuilder: RouteParamFieldBuilder = {\n create<T>(config: RouteParamFieldConfig<T>): RouteParamField {\n return config as RouteParamField;\n }\n};\n\ninterface RouteParamsSyncProps<TParams extends RouteParamsDefinition | undefined> {\n route: Route<TParams>;\n fields: (builder: RouteParamFieldBuilder) => RouteParamField[];\n}\n\nexport function RouteParamsSync<TParams extends RouteParamsDefinition | undefined>({\n route: routeDefinition,\n fields: buildFields\n}: RouteParamsSyncProps<TParams>) {\n const localStorage = useLocalStorage();\n const { route, setRouteParams, replaceRouteParams } = useRoute(routeDefinition);\n const syncingFromUrl = useRef(false);\n const fields = buildFields(fieldBuilder);\n\n // URL → State: apply route params to presenter state on browser navigation.\n useEffect(\n () => {\n syncingFromUrl.current = true;\n\n for (const field of fields) {\n const urlValue = (route.params as Record<string, unknown>)[field.param];\n field.write(urlValue);\n }\n\n queueMicrotask(() => {\n syncingFromUrl.current = false;\n });\n },\n fields.map(f => (route.params as Record<string, unknown>)[f.param])\n );\n\n // State → URL: when MobX observable values change, update route params.\n useEffect(() => {\n return reaction(\n () => {\n const values: Record<string, unknown> = {};\n for (const field of fields) {\n values[field.param] = field.read();\n }\n return values;\n },\n values => {\n for (const field of fields) {\n if (field.storageKey) {\n const val = values[field.param];\n if (val !== undefined && val !== null && val !== \"\") {\n localStorage.set(field.storageKey, val);\n } else {\n localStorage.remove(field.storageKey);\n }\n }\n }\n\n const update = syncingFromUrl.current ? replaceRouteParams : setRouteParams;\n\n update((params: Record<string, unknown>) => {\n const next = { ...params };\n for (const field of fields) {\n next[field.param] = values[field.param];\n }\n return next;\n });\n },\n {\n equals: (a, b) => {\n for (const field of fields) {\n if (a[field.param] !== b[field.param]) {\n return false;\n }\n }\n return true;\n }\n }\n );\n }, []);\n\n return null;\n}\n"],"names":["fieldBuilder","config","RouteParamsSync","routeDefinition","buildFields","localStorage","useLocalStorage","route","setRouteParams","replaceRouteParams","useRoute","syncingFromUrl","useRef","fields","useEffect","field","urlValue","queueMicrotask","f","reaction","values","val","update","params","next","a","b"],"mappings":";;;;AAwBA,MAAMA,eAAuC;IACzC,QAAUC,MAAgC;QACtC,OAAOA;IACX;AACJ;AAOO,SAASC,gBAAmE,EAC/E,OAAOC,eAAe,EACtB,QAAQC,WAAW,EACS;IAC5B,MAAMC,eAAeC;IACrB,MAAM,EAAEC,KAAK,EAAEC,cAAc,EAAEC,kBAAkB,EAAE,GAAGC,SAASP;IAC/D,MAAMQ,iBAAiBC,OAAO;IAC9B,MAAMC,SAAST,YAAYJ;IAG3Bc,UACI;QACIH,eAAe,OAAO,GAAG;QAEzB,KAAK,MAAMI,SAASF,OAAQ;YACxB,MAAMG,WAAYT,MAAM,MAAkC,CAACQ,MAAM,KAAK,CAAC;YACvEA,MAAM,KAAK,CAACC;QAChB;QAEAC,eAAe;YACXN,eAAe,OAAO,GAAG;QAC7B;IACJ,GACAE,OAAO,GAAG,CAACK,CAAAA,IAAMX,MAAM,MAAkC,CAACW,EAAE,KAAK,CAAC;IAItEJ,UAAU,IACCK,SACH;YACI,MAAMC,SAAkC,CAAC;YACzC,KAAK,MAAML,SAASF,OAChBO,MAAM,CAACL,MAAM,KAAK,CAAC,GAAGA,MAAM,IAAI;YAEpC,OAAOK;QACX,GACAA,CAAAA;YACI,KAAK,MAAML,SAASF,OAChB,IAAIE,MAAM,UAAU,EAAE;gBAClB,MAAMM,MAAMD,MAAM,CAACL,MAAM,KAAK,CAAC;gBAC/B,IAAIM,QAAAA,OAAqCA,AAAQ,OAARA,KACrChB,aAAa,GAAG,CAACU,MAAM,UAAU,EAAEM;qBAEnChB,aAAa,MAAM,CAACU,MAAM,UAAU;YAE5C;YAGJ,MAAMO,SAASX,eAAe,OAAO,GAAGF,qBAAqBD;YAE7Dc,OAAO,CAACC;gBACJ,MAAMC,OAAO;oBAAE,GAAGD,MAAM;gBAAC;gBACzB,KAAK,MAAMR,SAASF,OAChBW,IAAI,CAACT,MAAM,KAAK,CAAC,GAAGK,MAAM,CAACL,MAAM,KAAK,CAAC;gBAE3C,OAAOS;YACX;QACJ,GACA;YACI,QAAQ,CAACC,GAAGC;gBACR,KAAK,MAAMX,SAASF,OAChB,IAAIY,CAAC,CAACV,MAAM,KAAK,CAAC,KAAKW,CAAC,CAACX,MAAM,KAAK,CAAC,EACjC,OAAO;gBAGf,OAAO;YACX;QACJ,IAEL,EAAE;IAEL,OAAO;AACX"}
|
|
@@ -3,4 +3,5 @@ import { MatchedRoute } from "../../../features/router/abstractions.js";
|
|
|
3
3
|
export declare function useRoute<TParams extends RouteParamsDefinition | undefined = undefined>(route?: Route<TParams>): {
|
|
4
4
|
route: MatchedRoute<TParams extends RouteParamsDefinition ? RouteParamsInfer<TParams> : undefined>;
|
|
5
5
|
setRouteParams: <T extends Record<string, any>>(cb: (params: T) => T) => void;
|
|
6
|
+
replaceRouteParams: <T extends Record<string, any>>(cb: (params: T) => T) => void;
|
|
6
7
|
};
|
|
@@ -14,7 +14,8 @@ function useRoute(route) {
|
|
|
14
14
|
}, []);
|
|
15
15
|
return {
|
|
16
16
|
route: currentRoute,
|
|
17
|
-
setRouteParams: presenter.setRouteParams.bind(presenter)
|
|
17
|
+
setRouteParams: presenter.setRouteParams.bind(presenter),
|
|
18
|
+
replaceRouteParams: presenter.replaceRouteParams.bind(presenter)
|
|
18
19
|
};
|
|
19
20
|
}
|
|
20
21
|
export { useRoute };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentation/router/hooks/useRoute.js","sources":["../../../../src/presentation/router/hooks/useRoute.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { autorun } from \"mobx\";\nimport type { Route, RouteParamsDefinition, RouteParamsInfer } from \"~/features/router/Route.js\";\nimport { MatchedRoute } from \"~/features/router/abstractions.js\";\nimport { RouterFeature } from \"~/features/router/feature.js\";\nimport { useFeature } from \"~/shared/di/useFeature.js\";\n\nexport function useRoute<TParams extends RouteParamsDefinition | undefined = undefined>(\n // oxlint-disable-next-line typescript/no-unused-vars\n route?: Route<TParams>\n) {\n const { presenter } = useFeature(RouterFeature);\n const [currentRoute, setCurrentRoute] = useState<MatchedRoute | undefined>(\n presenter.vm.currentRoute\n );\n\n useEffect(() => {\n autorun(() => {\n const route = presenter.vm.currentRoute;\n\n if (!route) {\n return;\n }\n\n setCurrentRoute(route);\n });\n }, []);\n\n // TODO: add validation (the requested route must match the current route)\n\n return {\n route: currentRoute as MatchedRoute<\n TParams extends RouteParamsDefinition ? RouteParamsInfer<TParams> : undefined\n >,\n setRouteParams: presenter.setRouteParams.bind(presenter)\n };\n}\n"],"names":["useRoute","route","presenter","useFeature","RouterFeature","currentRoute","setCurrentRoute","useState","useEffect","autorun"],"mappings":";;;;AAOO,SAASA,SAEZC,KAAsB;IAEtB,MAAM,EAAEC,SAAS,EAAE,GAAGC,WAAWC;IACjC,MAAM,CAACC,cAAcC,gBAAgB,GAAGC,SACpCL,UAAU,EAAE,CAAC,YAAY;IAG7BM,UAAU;QACNC,QAAQ;YACJ,MAAMR,QAAQC,UAAU,EAAE,CAAC,YAAY;YAEvC,IAAI,CAACD,OACD;YAGJK,gBAAgBL;QACpB;IACJ,GAAG,EAAE;IAIL,OAAO;QACH,OAAOI;QAGP,gBAAgBH,UAAU,cAAc,CAAC,IAAI,CAACA;
|
|
1
|
+
{"version":3,"file":"presentation/router/hooks/useRoute.js","sources":["../../../../src/presentation/router/hooks/useRoute.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { autorun } from \"mobx\";\nimport type { Route, RouteParamsDefinition, RouteParamsInfer } from \"~/features/router/Route.js\";\nimport { MatchedRoute } from \"~/features/router/abstractions.js\";\nimport { RouterFeature } from \"~/features/router/feature.js\";\nimport { useFeature } from \"~/shared/di/useFeature.js\";\n\nexport function useRoute<TParams extends RouteParamsDefinition | undefined = undefined>(\n // oxlint-disable-next-line typescript/no-unused-vars\n route?: Route<TParams>\n) {\n const { presenter } = useFeature(RouterFeature);\n const [currentRoute, setCurrentRoute] = useState<MatchedRoute | undefined>(\n presenter.vm.currentRoute\n );\n\n useEffect(() => {\n autorun(() => {\n const route = presenter.vm.currentRoute;\n\n if (!route) {\n return;\n }\n\n setCurrentRoute(route);\n });\n }, []);\n\n // TODO: add validation (the requested route must match the current route)\n\n return {\n route: currentRoute as MatchedRoute<\n TParams extends RouteParamsDefinition ? RouteParamsInfer<TParams> : undefined\n >,\n setRouteParams: presenter.setRouteParams.bind(presenter),\n replaceRouteParams: presenter.replaceRouteParams.bind(presenter)\n };\n}\n"],"names":["useRoute","route","presenter","useFeature","RouterFeature","currentRoute","setCurrentRoute","useState","useEffect","autorun"],"mappings":";;;;AAOO,SAASA,SAEZC,KAAsB;IAEtB,MAAM,EAAEC,SAAS,EAAE,GAAGC,WAAWC;IACjC,MAAM,CAACC,cAAcC,gBAAgB,GAAGC,SACpCL,UAAU,EAAE,CAAC,YAAY;IAG7BM,UAAU;QACNC,QAAQ;YACJ,MAAMR,QAAQC,UAAU,EAAE,CAAC,YAAY;YAEvC,IAAI,CAACD,OACD;YAGJK,gBAAgBL;QACpB;IACJ,GAAG,EAAE;IAIL,OAAO;QACH,OAAOI;QAGP,gBAAgBH,UAAU,cAAc,CAAC,IAAI,CAACA;QAC9C,oBAAoBA,UAAU,kBAAkB,CAAC,IAAI,CAACA;IAC1D;AACJ"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ReactRoute } from "../../../presentation/router/index.js";
|
|
2
2
|
export declare const useRouter: () => {
|
|
3
3
|
goToRoute: <TParams extends import("../../../features/router/Route").RouteParamsDefinition | undefined>(route: import("../../..").Route<TParams>, ...args: import("../../../features/router/abstractions").RouteParamsArgs<TParams>) => void;
|
|
4
|
+
goBack: () => void;
|
|
4
5
|
getLink: <TParams extends import("../../../features/router/Route").RouteParamsDefinition | undefined>(route: import("../../..").Route<TParams>, ...args: import("../../../features/router/abstractions").RouteParamsArgs<TParams>) => string;
|
|
5
6
|
addTransitionGuard: (config: import("../../../features/router").RouteTransitionGuardConfig) => import("../../../features/router").GuardDisposer;
|
|
6
7
|
isTransitionBlocked: () => boolean;
|
|
@@ -8,6 +8,7 @@ const useRouter = ()=>{
|
|
|
8
8
|
const registry = container.resolve(RouteElementRegistry);
|
|
9
9
|
return {
|
|
10
10
|
goToRoute: presenter.goToRoute.bind(presenter),
|
|
11
|
+
goBack: presenter.goBack.bind(presenter),
|
|
11
12
|
getLink: presenter.getLink.bind(presenter),
|
|
12
13
|
addTransitionGuard: presenter.addTransitionGuard.bind(presenter),
|
|
13
14
|
isTransitionBlocked: presenter.isTransitionBlocked.bind(presenter),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentation/router/hooks/useRouter.js","sources":["../../../../src/presentation/router/hooks/useRouter.ts"],"sourcesContent":["import { type ReactRoute, RouteElementRegistry } from \"~/presentation/router/index.js\";\nimport { RouterFeature } from \"~/features/router/feature.js\";\nimport { useFeature } from \"~/shared/di/useFeature.js\";\nimport { useContainer } from \"~/shared/di/DiContainerProvider.js\";\n\nexport const useRouter = () => {\n const { presenter } = useFeature(RouterFeature);\n const container = useContainer();\n const registry = container.resolve(RouteElementRegistry);\n\n return {\n goToRoute: presenter.goToRoute.bind(presenter),\n getLink: presenter.getLink.bind(presenter),\n addTransitionGuard: presenter.addTransitionGuard.bind(presenter),\n isTransitionBlocked: presenter.isTransitionBlocked.bind(presenter),\n unblockTransition: presenter.unblockTransition.bind(presenter),\n confirmTransition: presenter.confirmTransition.bind(presenter),\n cancelTransition: presenter.cancelTransition.bind(presenter),\n setRoutes: (routes: ReactRoute[]) => {\n const cleanRoutes = [];\n\n for (const route of routes) {\n cleanRoutes.push(route.route);\n registry.register(route.route.name, route.element);\n }\n\n presenter.bootstrap(cleanRoutes);\n }\n };\n};\n"],"names":["useRouter","presenter","useFeature","RouterFeature","container","useContainer","registry","RouteElementRegistry","routes","cleanRoutes","route"],"mappings":";;;;AAKO,MAAMA,YAAY;IACrB,MAAM,EAAEC,SAAS,EAAE,GAAGC,WAAWC;IACjC,MAAMC,YAAYC;IAClB,MAAMC,WAAWF,UAAU,OAAO,CAACG;IAEnC,OAAO;QACH,WAAWN,UAAU,SAAS,CAAC,IAAI,CAACA;QACpC,SAASA,UAAU,OAAO,CAAC,IAAI,CAACA;QAChC,oBAAoBA,UAAU,kBAAkB,CAAC,IAAI,CAACA;QACtD,qBAAqBA,UAAU,mBAAmB,CAAC,IAAI,CAACA;QACxD,mBAAmBA,UAAU,iBAAiB,CAAC,IAAI,CAACA;QACpD,mBAAmBA,UAAU,iBAAiB,CAAC,IAAI,CAACA;QACpD,kBAAkBA,UAAU,gBAAgB,CAAC,IAAI,CAACA;QAClD,WAAW,CAACO;YACR,MAAMC,cAAc,EAAE;YAEtB,KAAK,MAAMC,SAASF,OAAQ;gBACxBC,YAAY,IAAI,CAACC,MAAM,KAAK;gBAC5BJ,SAAS,QAAQ,CAACI,MAAM,KAAK,CAAC,IAAI,EAAEA,MAAM,OAAO;YACrD;YAEAT,UAAU,SAAS,CAACQ;QACxB;IACJ;AACJ"}
|
|
1
|
+
{"version":3,"file":"presentation/router/hooks/useRouter.js","sources":["../../../../src/presentation/router/hooks/useRouter.ts"],"sourcesContent":["import { type ReactRoute, RouteElementRegistry } from \"~/presentation/router/index.js\";\nimport { RouterFeature } from \"~/features/router/feature.js\";\nimport { useFeature } from \"~/shared/di/useFeature.js\";\nimport { useContainer } from \"~/shared/di/DiContainerProvider.js\";\n\nexport const useRouter = () => {\n const { presenter } = useFeature(RouterFeature);\n const container = useContainer();\n const registry = container.resolve(RouteElementRegistry);\n\n return {\n goToRoute: presenter.goToRoute.bind(presenter),\n goBack: presenter.goBack.bind(presenter),\n getLink: presenter.getLink.bind(presenter),\n addTransitionGuard: presenter.addTransitionGuard.bind(presenter),\n isTransitionBlocked: presenter.isTransitionBlocked.bind(presenter),\n unblockTransition: presenter.unblockTransition.bind(presenter),\n confirmTransition: presenter.confirmTransition.bind(presenter),\n cancelTransition: presenter.cancelTransition.bind(presenter),\n setRoutes: (routes: ReactRoute[]) => {\n const cleanRoutes = [];\n\n for (const route of routes) {\n cleanRoutes.push(route.route);\n registry.register(route.route.name, route.element);\n }\n\n presenter.bootstrap(cleanRoutes);\n }\n };\n};\n"],"names":["useRouter","presenter","useFeature","RouterFeature","container","useContainer","registry","RouteElementRegistry","routes","cleanRoutes","route"],"mappings":";;;;AAKO,MAAMA,YAAY;IACrB,MAAM,EAAEC,SAAS,EAAE,GAAGC,WAAWC;IACjC,MAAMC,YAAYC;IAClB,MAAMC,WAAWF,UAAU,OAAO,CAACG;IAEnC,OAAO;QACH,WAAWN,UAAU,SAAS,CAAC,IAAI,CAACA;QACpC,QAAQA,UAAU,MAAM,CAAC,IAAI,CAACA;QAC9B,SAASA,UAAU,OAAO,CAAC,IAAI,CAACA;QAChC,oBAAoBA,UAAU,kBAAkB,CAAC,IAAI,CAACA;QACtD,qBAAqBA,UAAU,mBAAmB,CAAC,IAAI,CAACA;QACxD,mBAAmBA,UAAU,iBAAiB,CAAC,IAAI,CAACA;QACpD,mBAAmBA,UAAU,iBAAiB,CAAC,IAAI,CAACA;QACpD,kBAAkBA,UAAU,gBAAgB,CAAC,IAAI,CAACA;QAClD,WAAW,CAACO;YACR,MAAMC,cAAc,EAAE;YAEtB,KAAK,MAAMC,SAASF,OAAQ;gBACxBC,YAAY,IAAI,CAACC,MAAM,KAAK;gBAC5BJ,SAAS,QAAQ,CAACI,MAAM,KAAK,CAAC,IAAI,EAAEA,MAAM,OAAO;YACrD;YAEAT,UAAU,SAAS,CAACQ;QACxB;IACJ;AACJ"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { useRouter } from "./hooks/useRouter.js";
|
|
2
2
|
export { useRoute } from "./hooks/useRoute.js";
|
|
3
|
+
export { RouteParamsSync } from "./components/RouteParamsSync.js";
|
|
4
|
+
export type { RouteParamField, RouteParamFieldBuilder, RouteParamFieldConfig } from "./components/RouteParamsSync.js";
|
|
3
5
|
export { RouteElementRegistry } from "./abstractions.js";
|
|
4
6
|
export type { ReactRoute } from "./types.js";
|
package/types.d.ts
CHANGED
|
@@ -1,34 +1,13 @@
|
|
|
1
1
|
import type * as React from "react";
|
|
2
2
|
import type { CSSProperties } from "react";
|
|
3
3
|
import { Plugin } from "@webiny/plugins/types.js";
|
|
4
|
-
import type { ApolloClient } from "apollo-client";
|
|
5
4
|
export type GenericRecordKey = string | number | symbol;
|
|
6
5
|
export type GenericRecord<K extends GenericRecordKey = GenericRecordKey, V = any> = Record<K, V>;
|
|
7
6
|
export type NonEmptyArray<T> = [T, ...T[]];
|
|
8
|
-
export type UploadOptions = {
|
|
9
|
-
apolloClient: ApolloClient<object>;
|
|
10
|
-
onProgress?: (params: {
|
|
11
|
-
sent: number;
|
|
12
|
-
total: number;
|
|
13
|
-
percentage: number;
|
|
14
|
-
}) => void;
|
|
15
|
-
};
|
|
16
7
|
export type UiStatePlugin = Plugin & {
|
|
17
8
|
type: "ui-state";
|
|
18
9
|
render(): React.ReactElement;
|
|
19
10
|
};
|
|
20
|
-
export interface UploadedFile {
|
|
21
|
-
id: string;
|
|
22
|
-
name: string;
|
|
23
|
-
type: string;
|
|
24
|
-
size: number;
|
|
25
|
-
key: string;
|
|
26
|
-
}
|
|
27
|
-
export type FileUploaderPlugin = Plugin & {
|
|
28
|
-
type: "file-uploader";
|
|
29
|
-
name: "file-uploader";
|
|
30
|
-
upload(file: File, options: UploadOptions): Promise<UploadedFile>;
|
|
31
|
-
};
|
|
32
11
|
export type { Plugin };
|
|
33
12
|
export interface ImageProps {
|
|
34
13
|
src: string;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { InMemoryCacheConfig } from "apollo-cache-inmemory";
|
|
2
|
-
import { InMemoryCache as BaseInMemoryCache } from "apollo-cache-inmemory";
|
|
3
|
-
import type { DocumentNode } from "graphql";
|
|
4
|
-
export declare class InMemoryCache extends BaseInMemoryCache {
|
|
5
|
-
private readonly transformPlugins;
|
|
6
|
-
constructor(config?: InMemoryCacheConfig);
|
|
7
|
-
transformDocument(document: DocumentNode): DocumentNode;
|
|
8
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { InMemoryCache } from "apollo-cache-inmemory";
|
|
2
|
-
import { plugins } from "@webiny/plugins";
|
|
3
|
-
import { AddQuerySelectionPlugin } from "../plugins/AddQuerySelectionPlugin.js";
|
|
4
|
-
import { ApolloLinkPlugin } from "../plugins/ApolloLinkPlugin.js";
|
|
5
|
-
class InMemoryCache_InMemoryCache extends InMemoryCache {
|
|
6
|
-
constructor(config){
|
|
7
|
-
super(config);
|
|
8
|
-
this.transformPlugins = plugins.byType(ApolloLinkPlugin.type).filter((pl)=>pl instanceof AddQuerySelectionPlugin);
|
|
9
|
-
}
|
|
10
|
-
transformDocument(document) {
|
|
11
|
-
const operationName = document.definitions[0].name.value;
|
|
12
|
-
for (const pl of this.transformPlugins)pl.addSelectionToQuery(operationName, document);
|
|
13
|
-
return super.transformDocument(document);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
export { InMemoryCache_InMemoryCache as InMemoryCache };
|
|
17
|
-
|
|
18
|
-
//# sourceMappingURL=InMemoryCache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"apollo-client/InMemoryCache.js","sources":["../../src/apollo-client/InMemoryCache.ts"],"sourcesContent":["import type { InMemoryCacheConfig } from \"apollo-cache-inmemory\";\nimport { InMemoryCache as BaseInMemoryCache } from \"apollo-cache-inmemory\";\nimport type { DocumentNode } from \"graphql\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AddQuerySelectionPlugin } from \"../plugins/AddQuerySelectionPlugin.js\";\nimport { ApolloLinkPlugin } from \"../plugins/ApolloLinkPlugin.js\";\n\nexport class InMemoryCache extends BaseInMemoryCache {\n private readonly transformPlugins: AddQuerySelectionPlugin[];\n\n constructor(config?: InMemoryCacheConfig) {\n super(config);\n\n this.transformPlugins = plugins\n .byType<AddQuerySelectionPlugin>(ApolloLinkPlugin.type)\n .filter(pl => pl instanceof AddQuerySelectionPlugin);\n }\n\n public override transformDocument(document: DocumentNode): DocumentNode {\n // @ts-expect-error\n const operationName = document.definitions[0].name.value;\n\n for (const pl of this.transformPlugins) {\n pl.addSelectionToQuery(operationName, document);\n }\n\n return super.transformDocument(document);\n }\n}\n"],"names":["InMemoryCache","BaseInMemoryCache","config","plugins","ApolloLinkPlugin","pl","AddQuerySelectionPlugin","document","operationName"],"mappings":";;;;AAOO,MAAMA,oCAAsBC;IAG/B,YAAYC,MAA4B,CAAE;QACtC,KAAK,CAACA;QAEN,IAAI,CAAC,gBAAgB,GAAGC,QAAAA,MACb,CAA0BC,iBAAiB,IAAI,EACrD,MAAM,CAACC,CAAAA,KAAMA,cAAcC;IACpC;IAEgB,kBAAkBC,QAAsB,EAAgB;QAEpE,MAAMC,gBAAgBD,SAAS,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK;QAExD,KAAK,MAAMF,MAAM,IAAI,CAAC,gBAAgB,CAClCA,GAAG,mBAAmB,CAACG,eAAeD;QAG1C,OAAO,KAAK,CAAC,kBAAkBA;IACnC;AACJ"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { IdValue } from "apollo-utilities";
|
|
2
|
-
import type { ReadStoreContext, FragmentMatcherInterface, IntrospectionResultData } from "apollo-cache-inmemory";
|
|
3
|
-
export declare class IntrospectionFragmentMatcher implements FragmentMatcherInterface {
|
|
4
|
-
private readonly isReady;
|
|
5
|
-
private readonly possibleTypesMap;
|
|
6
|
-
constructor(options?: {
|
|
7
|
-
introspectionQueryResultData?: IntrospectionResultData;
|
|
8
|
-
});
|
|
9
|
-
match(idValue: IdValue, typeCondition: string, context: ReadStoreContext): boolean;
|
|
10
|
-
private parseIntrospectionResult;
|
|
11
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { invariant } from "ts-invariant";
|
|
2
|
-
class IntrospectionFragmentMatcher {
|
|
3
|
-
constructor(options){
|
|
4
|
-
this.possibleTypesMap = {};
|
|
5
|
-
if (options && options.introspectionQueryResultData) {
|
|
6
|
-
this.possibleTypesMap = this.parseIntrospectionResult(options.introspectionQueryResultData);
|
|
7
|
-
this.isReady = true;
|
|
8
|
-
} else this.isReady = false;
|
|
9
|
-
this.match = this.match.bind(this);
|
|
10
|
-
}
|
|
11
|
-
match(idValue, typeCondition, context) {
|
|
12
|
-
invariant(this.isReady, "FragmentMatcher.match() was called before FragmentMatcher.init()");
|
|
13
|
-
const obj = context.store.get(idValue.id);
|
|
14
|
-
const isRootQuery = "ROOT_QUERY" === idValue.id;
|
|
15
|
-
if (!obj) return isRootQuery;
|
|
16
|
-
const { __typename = isRootQuery && "Query" } = obj;
|
|
17
|
-
invariant(__typename, `Cannot match fragment because __typename property is missing: ${JSON.stringify(obj)}`);
|
|
18
|
-
if (__typename === typeCondition) return true;
|
|
19
|
-
const implementingTypes = this.possibleTypesMap[typeCondition];
|
|
20
|
-
if (__typename && implementingTypes && implementingTypes.indexOf(__typename) > -1) return true;
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
parseIntrospectionResult(introspectionResultData) {
|
|
24
|
-
const typeMap = {};
|
|
25
|
-
introspectionResultData.__schema.types.forEach((type)=>{
|
|
26
|
-
if ("UNION" === type.kind || "INTERFACE" === type.kind) typeMap[type.name] = type.possibleTypes.map((implementingType)=>implementingType.name);
|
|
27
|
-
});
|
|
28
|
-
return typeMap;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
export { IntrospectionFragmentMatcher };
|
|
32
|
-
|
|
33
|
-
//# sourceMappingURL=IntrospectionFragmentMatcher.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"apollo-client/IntrospectionFragmentMatcher.js","sources":["../../src/apollo-client/IntrospectionFragmentMatcher.ts"],"sourcesContent":["import type { IdValue } from \"apollo-utilities\";\nimport { invariant } from \"ts-invariant\";\n\nimport type {\n ReadStoreContext,\n FragmentMatcherInterface,\n PossibleTypesMap,\n IntrospectionResultData\n} from \"apollo-cache-inmemory\";\n\nexport class IntrospectionFragmentMatcher implements FragmentMatcherInterface {\n private readonly isReady: boolean;\n private readonly possibleTypesMap: PossibleTypesMap = {};\n\n constructor(options?: { introspectionQueryResultData?: IntrospectionResultData }) {\n if (options && options.introspectionQueryResultData) {\n this.possibleTypesMap = this.parseIntrospectionResult(\n options.introspectionQueryResultData\n );\n this.isReady = true;\n } else {\n this.isReady = false;\n }\n\n this.match = this.match.bind(this);\n }\n\n public match(idValue: IdValue, typeCondition: string, context: ReadStoreContext) {\n invariant(this.isReady, \"FragmentMatcher.match() was called before FragmentMatcher.init()\");\n\n const obj = context.store.get(idValue.id);\n const isRootQuery = idValue.id === \"ROOT_QUERY\";\n\n if (!obj) {\n // https://github.com/apollographql/apollo-client/pull/4620\n return isRootQuery;\n }\n\n const { __typename = isRootQuery && \"Query\" } = obj;\n\n invariant(\n __typename,\n `Cannot match fragment because __typename property is missing: ${JSON.stringify(obj)}`\n );\n\n if (__typename === typeCondition) {\n return true;\n }\n\n const implementingTypes = this.possibleTypesMap[typeCondition];\n if (__typename && implementingTypes && implementingTypes.indexOf(__typename) > -1) {\n return true;\n }\n\n return false;\n }\n\n private parseIntrospectionResult(\n introspectionResultData: IntrospectionResultData\n ): PossibleTypesMap {\n const typeMap: PossibleTypesMap = {};\n introspectionResultData.__schema.types.forEach(type => {\n if (type.kind === \"UNION\" || type.kind === \"INTERFACE\") {\n typeMap[type.name] = type.possibleTypes.map(\n implementingType => implementingType.name\n );\n }\n });\n return typeMap;\n }\n}\n"],"names":["IntrospectionFragmentMatcher","options","idValue","typeCondition","context","invariant","obj","isRootQuery","__typename","JSON","implementingTypes","introspectionResultData","typeMap","type","implementingType"],"mappings":";AAUO,MAAMA;IAIT,YAAYC,OAAoE,CAAE;aAFjE,gBAAgB,GAAqB,CAAC;QAGnD,IAAIA,WAAWA,QAAQ,4BAA4B,EAAE;YACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CACjDA,QAAQ,4BAA4B;YAExC,IAAI,CAAC,OAAO,GAAG;QACnB,OACI,IAAI,CAAC,OAAO,GAAG;QAGnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;IACrC;IAEO,MAAMC,OAAgB,EAAEC,aAAqB,EAAEC,OAAyB,EAAE;QAC7EC,UAAU,IAAI,CAAC,OAAO,EAAE;QAExB,MAAMC,MAAMF,QAAQ,KAAK,CAAC,GAAG,CAACF,QAAQ,EAAE;QACxC,MAAMK,cAAcL,AAAe,iBAAfA,QAAQ,EAAE;QAE9B,IAAI,CAACI,KAED,OAAOC;QAGX,MAAM,EAAEC,aAAaD,eAAe,OAAO,EAAE,GAAGD;QAEhDD,UACIG,YACA,CAAC,8DAA8D,EAAEC,KAAK,SAAS,CAACH,MAAM;QAG1F,IAAIE,eAAeL,eACf,OAAO;QAGX,MAAMO,oBAAoB,IAAI,CAAC,gBAAgB,CAACP,cAAc;QAC9D,IAAIK,cAAcE,qBAAqBA,kBAAkB,OAAO,CAACF,cAAc,IAC3E,OAAO;QAGX,OAAO;IACX;IAEQ,yBACJG,uBAAgD,EAChC;QAChB,MAAMC,UAA4B,CAAC;QACnCD,wBAAwB,QAAQ,CAAC,KAAK,CAAC,OAAO,CAACE,CAAAA;YAC3C,IAAIA,AAAc,YAAdA,KAAK,IAAI,IAAgBA,AAAc,gBAAdA,KAAK,IAAI,EAClCD,OAAO,CAACC,KAAK,IAAI,CAAC,GAAGA,KAAK,aAAa,CAAC,GAAG,CACvCC,CAAAA,mBAAoBA,iBAAiB,IAAI;QAGrD;QACA,OAAOF;IACX;AACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useAutocomplete } from "./useAutocomplete.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useAutocomplete } from "./useAutocomplete.js";
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { DocumentNode } from "graphql";
|
|
2
|
-
interface UseAutocompleteHook {
|
|
3
|
-
options: any[];
|
|
4
|
-
onInput(value: string): void;
|
|
5
|
-
}
|
|
6
|
-
interface Props {
|
|
7
|
-
query: DocumentNode;
|
|
8
|
-
search?: string | ((value: string) => string);
|
|
9
|
-
}
|
|
10
|
-
export declare const useAutocomplete: (props: Props) => UseAutocompleteHook;
|
|
11
|
-
export {};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { useDataList } from "../useDataList/index.js";
|
|
2
|
-
import debounce from "lodash/debounce.js";
|
|
3
|
-
const useAutocomplete = (props)=>{
|
|
4
|
-
const dataList = useDataList(props);
|
|
5
|
-
return {
|
|
6
|
-
options: dataList.data || [],
|
|
7
|
-
onInput: debounce((query)=>{
|
|
8
|
-
if (!query) return;
|
|
9
|
-
let search = props.search || query;
|
|
10
|
-
if ("function" == typeof search) search = search(query);
|
|
11
|
-
dataList.setSearch(search);
|
|
12
|
-
}, 250)
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
export { useAutocomplete };
|
|
16
|
-
|
|
17
|
-
//# sourceMappingURL=useAutocomplete.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks/useAutocomplete/useAutocomplete.js","sources":["../../../src/hooks/useAutocomplete/useAutocomplete.ts"],"sourcesContent":["import { useDataList } from \"../useDataList/index.js\";\nimport debounce from \"lodash/debounce.js\";\nimport type { DocumentNode } from \"graphql\";\n\ninterface UseAutocompleteHook {\n options: any[];\n onInput(value: string): void;\n}\n\ninterface Props {\n query: DocumentNode;\n search?: string | ((value: string) => string);\n}\n\nexport const useAutocomplete = (props: Props): UseAutocompleteHook => {\n const dataList = useDataList(props);\n\n return {\n options: dataList.data || [],\n onInput: debounce(query => {\n if (!query) {\n return;\n }\n\n let search = props.search || query;\n if (typeof search === \"function\") {\n search = search(query);\n }\n\n dataList.setSearch(search);\n }, 250)\n };\n};\n"],"names":["useAutocomplete","props","dataList","useDataList","debounce","query","search"],"mappings":";;AAcO,MAAMA,kBAAkB,CAACC;IAC5B,MAAMC,WAAWC,YAAYF;IAE7B,OAAO;QACH,SAASC,SAAS,IAAI,IAAI,EAAE;QAC5B,SAASE,SAASC,CAAAA;YACd,IAAI,CAACA,OACD;YAGJ,IAAIC,SAASL,MAAM,MAAM,IAAII;YAC7B,IAAI,AAAkB,cAAlB,OAAOC,QACPA,SAASA,OAAOD;YAGpBH,SAAS,SAAS,CAACI;QACvB,GAAG;IACP;AACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks/useDataList/functions/getData.js","sources":["../../../../src/hooks/useDataList/functions/getData.ts"],"sourcesContent":["import searchDataByKey from \"./searchDataByKey.js\";\n\nexport default (response: Record<string, string>) => searchDataByKey(\"data\", response);\n"],"names":["response","searchDataByKey"],"mappings":";AAEA,gBAAgB,CAAAA,WAAqCC,gBAAgB,QAAQD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks/useDataList/functions/getError.js","sources":["../../../../src/hooks/useDataList/functions/getError.ts"],"sourcesContent":["import searchDataByKey from \"./searchDataByKey.js\";\n\nexport default (response: Record<string, string>) => searchDataByKey(\"error\", response);\n"],"names":["response","searchDataByKey"],"mappings":";AAEA,iBAAgB,CAAAA,WAAqCC,gBAAgB,SAASD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks/useDataList/functions/getMeta.js","sources":["../../../../src/hooks/useDataList/functions/getMeta.ts"],"sourcesContent":["import searchDataByKey from \"./searchDataByKey.js\";\n\nexport default (response: Record<string, string>) => searchDataByKey(\"meta\", response);\n"],"names":["response","searchDataByKey"],"mappings":";AAEA,gBAAgB,CAAAA,WAAqCC,gBAAgB,QAAQD"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
const searchDataByKey = (searchKey, object)=>{
|
|
2
|
-
if (!object || "object" != typeof object) return null;
|
|
3
|
-
if (object[searchKey]) return object[searchKey];
|
|
4
|
-
for(const key in object){
|
|
5
|
-
const value = searchDataByKey(searchKey, object[key]);
|
|
6
|
-
if (value) return value;
|
|
7
|
-
}
|
|
8
|
-
return null;
|
|
9
|
-
};
|
|
10
|
-
const functions_searchDataByKey = searchDataByKey;
|
|
11
|
-
export default functions_searchDataByKey;
|
|
12
|
-
|
|
13
|
-
//# sourceMappingURL=searchDataByKey.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks/useDataList/functions/searchDataByKey.js","sources":["../../../../src/hooks/useDataList/functions/searchDataByKey.ts"],"sourcesContent":["const searchDataByKey = (searchKey: string, object: Record<string, any>): string | null => {\n if (!object || typeof object !== \"object\") {\n return null;\n }\n\n if (object[searchKey]) {\n return object[searchKey];\n }\n\n for (const key in object) {\n const value = searchDataByKey(searchKey, object[key]);\n if (value) {\n return value;\n }\n }\n\n return null;\n};\n\nexport default searchDataByKey;\n"],"names":["searchDataByKey","searchKey","object","key","value"],"mappings":"AAAA,MAAMA,kBAAkB,CAACC,WAAmBC;IACxC,IAAI,CAACA,UAAU,AAAkB,YAAlB,OAAOA,QAClB,OAAO;IAGX,IAAIA,MAAM,CAACD,UAAU,EACjB,OAAOC,MAAM,CAACD,UAAU;IAG5B,IAAK,MAAME,OAAOD,OAAQ;QACtB,MAAME,QAAQJ,gBAAgBC,WAAWC,MAAM,CAACC,IAAI;QACpD,IAAIC,OACA,OAAOA;IAEf;IAEA,OAAO;AACX;AAEA,kCAAeJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useDataList } from "./useDataList.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useDataList } from "./useDataList.js";
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { DocumentNode } from "graphql";
|
|
2
|
-
import type { ApolloClient } from "apollo-client";
|
|
3
|
-
export interface UseDataListParams {
|
|
4
|
-
variables?: ((params: UseDataListParams) => any) | object;
|
|
5
|
-
client?: ApolloClient<any>;
|
|
6
|
-
query: DocumentNode;
|
|
7
|
-
getData?: (data: any) => any;
|
|
8
|
-
getMeta?: (data: any) => any;
|
|
9
|
-
getError?: (data: any) => any;
|
|
10
|
-
}
|
|
11
|
-
export interface DataListProps {
|
|
12
|
-
__loadParams: any;
|
|
13
|
-
refresh: (params?: any) => void;
|
|
14
|
-
data: any[];
|
|
15
|
-
meta: any;
|
|
16
|
-
error: any;
|
|
17
|
-
loading: boolean;
|
|
18
|
-
isSelected: (item: any) => boolean;
|
|
19
|
-
select: (item: any) => void;
|
|
20
|
-
isMultiSelected: (item: any) => boolean;
|
|
21
|
-
isNoneMultiSelected: () => boolean;
|
|
22
|
-
isAllMultiSelected: () => boolean;
|
|
23
|
-
multiSelectAll: (value: boolean) => void;
|
|
24
|
-
getMultiSelected: () => any[];
|
|
25
|
-
setSearch: (search: any) => void;
|
|
26
|
-
setWhere: (where: any) => void;
|
|
27
|
-
setSorters: (sort: any) => void;
|
|
28
|
-
setPerPage: (perPage: number) => void;
|
|
29
|
-
setPreviousPage: (cursor: string) => void;
|
|
30
|
-
setNextPage: (cursor: string) => void;
|
|
31
|
-
multiSelect: (items: string | string[], value?: boolean) => void;
|
|
32
|
-
init: () => void;
|
|
33
|
-
}
|
|
34
|
-
declare const useDataList: (params: UseDataListParams) => DataListProps;
|
|
35
|
-
export { useDataList };
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
-
import { useQuery } from "@apollo/react-hooks";
|
|
3
|
-
import get from "lodash/get.js";
|
|
4
|
-
import isEqual from "lodash/isEqual.js";
|
|
5
|
-
import { prepareLoadListParams } from "./utils/index.js";
|
|
6
|
-
import { getData, getError, getMeta } from "./functions/index.js";
|
|
7
|
-
const useDataList = (params)=>{
|
|
8
|
-
const [multiSelectedItems, multiSelect] = useState([]);
|
|
9
|
-
const getQueryOptions = useCallback(()=>{
|
|
10
|
-
let variables = params.variables;
|
|
11
|
-
if ("function" == typeof variables) variables = variables(params);
|
|
12
|
-
return {
|
|
13
|
-
client: params.client,
|
|
14
|
-
variables: {
|
|
15
|
-
...variables,
|
|
16
|
-
...prepareLoadListParams()
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
}, []);
|
|
20
|
-
const queryData = useQuery(params.query, getQueryOptions());
|
|
21
|
-
const prevLoadParamsRef = useRef({});
|
|
22
|
-
const dataListProps = {
|
|
23
|
-
data: get(params, "getData", getData)(queryData.data),
|
|
24
|
-
meta: get(params, "getMeta", getMeta)(queryData.data),
|
|
25
|
-
error: get(params, "getError", getError)(queryData.data),
|
|
26
|
-
loading: queryData.loading,
|
|
27
|
-
init () {
|
|
28
|
-
this.refresh();
|
|
29
|
-
},
|
|
30
|
-
refresh (params = null) {
|
|
31
|
-
multiSelect([]);
|
|
32
|
-
if (!params) return void queryData.refetch(dataListProps.__loadParams);
|
|
33
|
-
queryData.refetch(params);
|
|
34
|
-
},
|
|
35
|
-
setPerPage (perPage) {
|
|
36
|
-
const preparedParams = {
|
|
37
|
-
...dataListProps.__loadParams,
|
|
38
|
-
limit: parseInt("" + perPage),
|
|
39
|
-
after: void 0,
|
|
40
|
-
before: void 0
|
|
41
|
-
};
|
|
42
|
-
this.refresh(preparedParams);
|
|
43
|
-
},
|
|
44
|
-
setNextPage (cursor) {
|
|
45
|
-
const preparedParams = {
|
|
46
|
-
...dataListProps.__loadParams,
|
|
47
|
-
after: cursor,
|
|
48
|
-
before: void 0
|
|
49
|
-
};
|
|
50
|
-
this.refresh(preparedParams);
|
|
51
|
-
},
|
|
52
|
-
setPreviousPage (cursor) {
|
|
53
|
-
const preparedParams = {
|
|
54
|
-
...dataListProps.__loadParams,
|
|
55
|
-
after: void 0,
|
|
56
|
-
before: cursor
|
|
57
|
-
};
|
|
58
|
-
this.refresh(preparedParams);
|
|
59
|
-
},
|
|
60
|
-
setSearch (search) {
|
|
61
|
-
const preparedParams = {
|
|
62
|
-
...dataListProps.__loadParams,
|
|
63
|
-
search,
|
|
64
|
-
after: void 0,
|
|
65
|
-
before: void 0
|
|
66
|
-
};
|
|
67
|
-
this.refresh(preparedParams);
|
|
68
|
-
},
|
|
69
|
-
setWhere (where) {
|
|
70
|
-
const preparedParams = {
|
|
71
|
-
...dataListProps.__loadParams,
|
|
72
|
-
where,
|
|
73
|
-
after: void 0,
|
|
74
|
-
before: void 0
|
|
75
|
-
};
|
|
76
|
-
this.refresh(preparedParams);
|
|
77
|
-
},
|
|
78
|
-
setSorters (sort) {
|
|
79
|
-
const preparedParams = {
|
|
80
|
-
...dataListProps.__loadParams,
|
|
81
|
-
sort,
|
|
82
|
-
after: void 0,
|
|
83
|
-
before: void 0
|
|
84
|
-
};
|
|
85
|
-
this.refresh(preparedParams);
|
|
86
|
-
},
|
|
87
|
-
multiSelect (items, value) {
|
|
88
|
-
if (!Array.isArray(items)) items = [
|
|
89
|
-
items
|
|
90
|
-
];
|
|
91
|
-
const returnItems = [
|
|
92
|
-
...multiSelectedItems
|
|
93
|
-
];
|
|
94
|
-
items.forEach((item)=>{
|
|
95
|
-
if (void 0 === value) returnItems.includes(item) ? returnItems.splice(returnItems.indexOf(item), 1) : returnItems.push(item);
|
|
96
|
-
else if (true === value) returnItems.includes(item) || returnItems.push(item);
|
|
97
|
-
else returnItems.includes(item) && returnItems.splice(returnItems.indexOf(item), 1);
|
|
98
|
-
});
|
|
99
|
-
multiSelect(returnItems);
|
|
100
|
-
},
|
|
101
|
-
isSelected (item) {
|
|
102
|
-
const query = new URLSearchParams(location.search);
|
|
103
|
-
return query.get("id") === item.id;
|
|
104
|
-
},
|
|
105
|
-
select (item) {
|
|
106
|
-
const query = new URLSearchParams(location.search);
|
|
107
|
-
query.set("id", item.id);
|
|
108
|
-
},
|
|
109
|
-
isMultiSelected (item) {
|
|
110
|
-
if (!Array.isArray(multiSelectedItems)) return false;
|
|
111
|
-
return multiSelectedItems.includes(item);
|
|
112
|
-
},
|
|
113
|
-
isNoneMultiSelected () {
|
|
114
|
-
return 0 === multiSelectedItems.length;
|
|
115
|
-
},
|
|
116
|
-
getMultiSelected () {
|
|
117
|
-
return multiSelectedItems;
|
|
118
|
-
},
|
|
119
|
-
multiSelectAll (value) {
|
|
120
|
-
const { data } = dataListProps;
|
|
121
|
-
if (Array.isArray(data)) dataListProps.multiSelect(data, value);
|
|
122
|
-
else dataListProps.multiSelect([], value);
|
|
123
|
-
},
|
|
124
|
-
isAllMultiSelected () {
|
|
125
|
-
const { data } = dataListProps;
|
|
126
|
-
return Array.isArray(data) && multiSelectedItems.length === data.length;
|
|
127
|
-
},
|
|
128
|
-
__loadParams: prepareLoadListParams(location)
|
|
129
|
-
};
|
|
130
|
-
useEffect(()=>{
|
|
131
|
-
const params = {
|
|
132
|
-
prev: prevLoadParamsRef.current,
|
|
133
|
-
current: dataListProps.__loadParams
|
|
134
|
-
};
|
|
135
|
-
if (!isEqual(params.prev, params.current)) dataListProps.init();
|
|
136
|
-
prevLoadParamsRef.current = params.current;
|
|
137
|
-
});
|
|
138
|
-
return dataListProps;
|
|
139
|
-
};
|
|
140
|
-
export { useDataList };
|
|
141
|
-
|
|
142
|
-
//# sourceMappingURL=useDataList.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks/useDataList/useDataList.js","sources":["../../../src/hooks/useDataList/useDataList.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useQuery } from \"@apollo/react-hooks\";\nimport get from \"lodash/get.js\";\nimport isEqual from \"lodash/isEqual.js\";\nimport { prepareLoadListParams } from \"./utils/index.js\";\nimport { getData, getError, getMeta } from \"./functions/index.js\";\n\nimport type { DocumentNode } from \"graphql\";\nimport type { ApolloClient } from \"apollo-client\";\n\nexport interface UseDataListParams {\n variables?: ((params: UseDataListParams) => any) | object;\n client?: ApolloClient<any>;\n query: DocumentNode;\n getData?: (data: any) => any;\n getMeta?: (data: any) => any;\n getError?: (data: any) => any;\n}\n\nexport interface DataListProps {\n __loadParams: any;\n refresh: (params?: any) => void;\n data: any[];\n meta: any;\n error: any;\n loading: boolean;\n isSelected: (item: any) => boolean;\n select: (item: any) => void;\n isMultiSelected: (item: any) => boolean;\n isNoneMultiSelected: () => boolean;\n isAllMultiSelected: () => boolean;\n multiSelectAll: (value: boolean) => void;\n getMultiSelected: () => any[];\n setSearch: (search: any) => void;\n setWhere: (where: any) => void;\n setSorters: (sort: any) => void;\n setPerPage: (perPage: number) => void;\n setPreviousPage: (cursor: string) => void;\n setNextPage: (cursor: string) => void;\n multiSelect: (items: string | string[], value?: boolean) => void;\n init: () => void;\n}\n\nconst useDataList = (params: UseDataListParams) => {\n const [multiSelectedItems, multiSelect] = useState<string[]>([]);\n\n const getQueryOptions = useCallback(() => {\n let variables = params.variables;\n if (typeof variables === \"function\") {\n variables = variables(params);\n }\n\n return {\n client: params.client,\n variables: {\n ...variables,\n ...prepareLoadListParams()\n }\n };\n }, []);\n\n const queryData = useQuery(params.query, getQueryOptions());\n const prevLoadParamsRef = useRef({});\n\n const dataListProps: DataListProps = {\n data: get(params, \"getData\", getData)(queryData.data),\n meta: get(params, \"getMeta\", getMeta)(queryData.data),\n error: get(params, \"getError\", getError)(queryData.data),\n\n loading: queryData.loading,\n init() {\n this.refresh();\n },\n refresh(params = null): void {\n // Refresh multi select first.\n multiSelect([]);\n\n if (!params) {\n queryData.refetch(dataListProps.__loadParams);\n return;\n }\n\n queryData.refetch(params);\n },\n setPerPage(perPage: number): void {\n const preparedParams = {\n ...dataListProps.__loadParams,\n limit: parseInt(\"\" + perPage),\n after: undefined,\n before: undefined\n };\n this.refresh(preparedParams);\n },\n setNextPage(cursor: string): void {\n const preparedParams = {\n ...dataListProps.__loadParams,\n after: cursor,\n before: undefined\n };\n this.refresh(preparedParams);\n },\n setPreviousPage(cursor: string): void {\n const preparedParams = {\n ...dataListProps.__loadParams,\n after: undefined,\n before: cursor\n };\n this.refresh(preparedParams);\n },\n setSearch(search): void {\n const preparedParams = {\n ...dataListProps.__loadParams,\n search,\n after: undefined,\n before: undefined\n };\n this.refresh(preparedParams);\n },\n setWhere(where): void {\n const preparedParams = {\n ...dataListProps.__loadParams,\n where,\n after: undefined,\n before: undefined\n };\n this.refresh(preparedParams);\n },\n setSorters(sort): void {\n const preparedParams = {\n ...dataListProps.__loadParams,\n sort,\n after: undefined,\n before: undefined\n };\n this.refresh(preparedParams);\n },\n multiSelect(items, value): void {\n if (!Array.isArray(items)) {\n items = [items];\n }\n\n const returnItems = [...multiSelectedItems];\n\n items.forEach(item => {\n if (value === undefined) {\n returnItems.includes(item)\n ? returnItems.splice(returnItems.indexOf(item), 1)\n : returnItems.push(item);\n } else {\n if (value === true) {\n !returnItems.includes(item) && returnItems.push(item);\n } else {\n returnItems.includes(item) &&\n returnItems.splice(returnItems.indexOf(item), 1);\n }\n }\n });\n\n multiSelect(returnItems);\n },\n isSelected(item) {\n const query = new URLSearchParams(location.search);\n return query.get(\"id\") === item.id;\n },\n select(item) {\n const query = new URLSearchParams(location.search);\n query.set(\"id\", item.id);\n },\n isMultiSelected(item) {\n if (!Array.isArray(multiSelectedItems)) {\n return false;\n }\n\n return multiSelectedItems.includes(item);\n },\n isNoneMultiSelected() {\n return multiSelectedItems.length === 0;\n },\n getMultiSelected() {\n return multiSelectedItems;\n },\n multiSelectAll(value: boolean): void {\n const { data } = dataListProps;\n if (Array.isArray(data)) {\n dataListProps.multiSelect(data, value);\n } else {\n dataListProps.multiSelect([], value);\n }\n },\n isAllMultiSelected(): boolean {\n const { data } = dataListProps;\n\n return Array.isArray(data) && multiSelectedItems.length === data.length;\n },\n\n __loadParams: prepareLoadListParams(location)\n };\n\n useEffect(() => {\n const params = {\n prev: prevLoadParamsRef.current,\n current: dataListProps.__loadParams\n };\n\n if (!isEqual(params.prev, params.current)) {\n dataListProps.init();\n }\n\n prevLoadParamsRef.current = params.current;\n });\n\n return dataListProps;\n};\n\nexport { useDataList };\n"],"names":["useDataList","params","multiSelectedItems","multiSelect","useState","getQueryOptions","useCallback","variables","prepareLoadListParams","queryData","useQuery","prevLoadParamsRef","useRef","dataListProps","get","getData","getMeta","getError","perPage","preparedParams","parseInt","undefined","cursor","search","where","sort","items","value","Array","returnItems","item","query","URLSearchParams","location","data","useEffect","isEqual"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default as prepareLoadListParams } from "./prepareLoadListParams.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default as prepareLoadListParams } from "./prepareLoadListParams.js";
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
const keys = [
|
|
2
|
-
"sort",
|
|
3
|
-
"where",
|
|
4
|
-
"search"
|
|
5
|
-
];
|
|
6
|
-
const prepareLoadListParams = (location)=>{
|
|
7
|
-
const params = {};
|
|
8
|
-
if (!location) return params;
|
|
9
|
-
const query = new URLSearchParams(location.search);
|
|
10
|
-
const after = query.get("after");
|
|
11
|
-
const before = query.get("before");
|
|
12
|
-
const limit = query.get("limit");
|
|
13
|
-
if (after) params.after = after;
|
|
14
|
-
if (before) params.before = before;
|
|
15
|
-
if (limit) params.limit = parseInt(limit);
|
|
16
|
-
keys.forEach((key)=>{
|
|
17
|
-
const value = query.get(key);
|
|
18
|
-
if ("string" != typeof value) return;
|
|
19
|
-
try {
|
|
20
|
-
params[key] = JSON.parse(value);
|
|
21
|
-
} catch {
|
|
22
|
-
params[key] = value;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
return params;
|
|
26
|
-
};
|
|
27
|
-
export default prepareLoadListParams;
|
|
28
|
-
|
|
29
|
-
//# sourceMappingURL=prepareLoadListParams.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks/useDataList/utils/prepareLoadListParams.js","sources":["../../../../src/hooks/useDataList/utils/prepareLoadListParams.ts"],"sourcesContent":["interface Params {\n after?: string;\n before?: string;\n limit?: number;\n sort?: string;\n where?: Record<string, any>;\n search?: string;\n}\n\nconst keys: (keyof Params)[] = [\"sort\", \"where\", \"search\"];\n\nexport default (location?: Location): Params => {\n const params: Params = {};\n if (!location) {\n return params;\n }\n\n const query = new URLSearchParams(location.search);\n\n const after = query.get(\"after\");\n const before = query.get(\"before\");\n const limit = query.get(\"limit\");\n\n if (after) {\n params.after = after;\n }\n\n if (before) {\n params.before = before;\n }\n\n if (limit) {\n params.limit = parseInt(limit);\n }\n\n keys.forEach(key => {\n const value = query.get(key);\n if (typeof value !== \"string\") {\n return;\n }\n try {\n params[key] = JSON.parse(value);\n } catch {\n /**\n * If we can't parse the value, it means it's a string.\n */\n // @ts-expect-error\n params[key] = value;\n }\n });\n return params;\n};\n"],"names":["keys","location","params","query","URLSearchParams","after","before","limit","parseInt","key","value","JSON"],"mappings":"AASA,MAAMA,OAAyB;IAAC;IAAQ;IAAS;CAAS;AAE1D,8BAAgB,CAAAC;IACZ,MAAMC,SAAiB,CAAC;IACxB,IAAI,CAACD,UACD,OAAOC;IAGX,MAAMC,QAAQ,IAAIC,gBAAgBH,SAAS,MAAM;IAEjD,MAAMI,QAAQF,MAAM,GAAG,CAAC;IACxB,MAAMG,SAASH,MAAM,GAAG,CAAC;IACzB,MAAMI,QAAQJ,MAAM,GAAG,CAAC;IAExB,IAAIE,OACAH,OAAO,KAAK,GAAGG;IAGnB,IAAIC,QACAJ,OAAO,MAAM,GAAGI;IAGpB,IAAIC,OACAL,OAAO,KAAK,GAAGM,SAASD;IAG5BP,KAAK,OAAO,CAACS,CAAAA;QACT,MAAMC,QAAQP,MAAM,GAAG,CAACM;QACxB,IAAI,AAAiB,YAAjB,OAAOC,OACP;QAEJ,IAAI;YACAR,MAAM,CAACO,IAAI,GAAGE,KAAK,KAAK,CAACD;QAC7B,EAAE,OAAM;YAKJR,MAAM,CAACO,IAAI,GAAGC;QAClB;IACJ;IACA,OAAOR;AACX"}
|