@cratis/scene.components 3.3.1 → 3.5.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/README.md +51 -2
- package/bindings/ArcBoundComponents.tsx +40 -0
- package/bindings/BoundConstructor.ts +5 -5
- package/bindings/for_requireArcProxy/NativeProxies.ts +28 -0
- package/bindings/for_requireArcProxy/when_mounting_bound_adapters.tsx +71 -0
- package/bindings/for_requireArcProxy/when_previewing_without_arc.tsx +37 -0
- package/bindings/for_requireArcProxy/when_validating_a_proxy.ts +44 -0
- package/bindings/requireArcProxy.ts +24 -0
- package/cratisComponents.ts +2 -1
- package/cratisComponentsPackage.ts +2 -1
- package/data/SceneDataTable.tsx +12 -2
- package/data/SceneObservableDataTable.tsx +1 -1
- package/data/SceneSingleResult.tsx +29 -0
- package/data/SingleResultRuntime.tsx +89 -0
- package/data/SingleResultStatus.tsx +13 -0
- package/data/for_SceneDataTable/when_forwarding_query_arguments.tsx +104 -0
- package/data/for_SceneSingleResult/when_executing_a_native_query.tsx +290 -0
- package/data/for_SceneSingleResult/when_gating_the_lazy_runtime.tsx +60 -0
- package/data/index.ts +1 -0
- package/dialogs/SceneCommandDialog.tsx +1 -1
- package/dialogs/SceneStepperCommandDialog.tsx +1 -1
- package/dist/cjs/bindings/ArcBoundComponents.js +55 -0
- package/dist/cjs/bindings/ArcBoundComponents.js.map +1 -0
- package/dist/cjs/bindings/requireArcProxy.js +25 -0
- package/dist/cjs/bindings/requireArcProxy.js.map +1 -0
- package/dist/cjs/cratisComponents.js +2 -0
- package/dist/cjs/cratisComponents.js.map +1 -1
- package/dist/cjs/cratisComponentsPackage.js +2 -1
- package/dist/cjs/cratisComponentsPackage.js.map +1 -1
- package/dist/cjs/data/SceneDataTable.js +15 -1
- package/dist/cjs/data/SceneDataTable.js.map +1 -1
- package/dist/cjs/data/SceneObservableDataTable.js +1 -1
- package/dist/cjs/data/SceneObservableDataTable.js.map +1 -1
- package/dist/cjs/data/SceneSingleResult.js +41 -0
- package/dist/cjs/data/SceneSingleResult.js.map +1 -0
- package/dist/cjs/data/SingleResultRuntime.js +122 -0
- package/dist/cjs/data/SingleResultRuntime.js.map +1 -0
- package/dist/cjs/data/SingleResultStatus.js +23 -0
- package/dist/cjs/data/SingleResultStatus.js.map +1 -0
- package/dist/cjs/dialogs/SceneCommandDialog.js +1 -1
- package/dist/cjs/dialogs/SceneCommandDialog.js.map +1 -1
- package/dist/cjs/dialogs/SceneStepperCommandDialog.js +1 -1
- package/dist/cjs/dialogs/SceneStepperCommandDialog.js.map +1 -1
- package/dist/cjs/forms/fields/SceneRadioButtonField.js +4 -1
- package/dist/cjs/forms/fields/SceneRadioButtonField.js.map +1 -1
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/pages/SceneDataPage.js +1 -1
- package/dist/cjs/pages/SceneDataPage.js.map +1 -1
- package/dist/esm/bindings/ArcBoundComponents.d.ts +18 -0
- package/dist/esm/bindings/ArcBoundComponents.d.ts.map +1 -0
- package/dist/esm/bindings/ArcBoundComponents.js +49 -0
- package/dist/esm/bindings/ArcBoundComponents.js.map +1 -0
- package/dist/esm/bindings/for_requireArcProxy/NativeProxies.d.ts +25 -0
- package/dist/esm/bindings/for_requireArcProxy/NativeProxies.d.ts.map +1 -0
- package/dist/esm/bindings/for_requireArcProxy/NativeProxies.js +23 -0
- package/dist/esm/bindings/for_requireArcProxy/NativeProxies.js.map +1 -0
- package/dist/esm/bindings/for_requireArcProxy/when_mounting_bound_adapters.d.ts +2 -0
- package/dist/esm/bindings/for_requireArcProxy/when_mounting_bound_adapters.d.ts.map +1 -0
- package/dist/esm/bindings/for_requireArcProxy/when_mounting_bound_adapters.js +56 -0
- package/dist/esm/bindings/for_requireArcProxy/when_mounting_bound_adapters.js.map +1 -0
- package/dist/esm/bindings/for_requireArcProxy/when_previewing_without_arc.d.ts +2 -0
- package/dist/esm/bindings/for_requireArcProxy/when_previewing_without_arc.d.ts.map +1 -0
- package/dist/esm/bindings/for_requireArcProxy/when_previewing_without_arc.js +32 -0
- package/dist/esm/bindings/for_requireArcProxy/when_previewing_without_arc.js.map +1 -0
- package/dist/esm/bindings/for_requireArcProxy/when_validating_a_proxy.d.ts +2 -0
- package/dist/esm/bindings/for_requireArcProxy/when_validating_a_proxy.d.ts.map +1 -0
- package/dist/esm/bindings/for_requireArcProxy/when_validating_a_proxy.js +45 -0
- package/dist/esm/bindings/for_requireArcProxy/when_validating_a_proxy.js.map +1 -0
- package/dist/esm/bindings/requireArcProxy.d.ts +5 -0
- package/dist/esm/bindings/requireArcProxy.d.ts.map +1 -0
- package/dist/esm/bindings/requireArcProxy.js +23 -0
- package/dist/esm/bindings/requireArcProxy.js.map +1 -0
- package/dist/esm/cratisComponents.d.ts.map +1 -1
- package/dist/esm/cratisComponents.js +2 -0
- package/dist/esm/cratisComponents.js.map +1 -1
- package/dist/esm/cratisComponentsPackage.d.ts.map +1 -1
- package/dist/esm/cratisComponentsPackage.js +2 -1
- package/dist/esm/cratisComponentsPackage.js.map +1 -1
- package/dist/esm/data/SceneDataTable.d.ts.map +1 -1
- package/dist/esm/data/SceneDataTable.js +16 -2
- package/dist/esm/data/SceneDataTable.js.map +1 -1
- package/dist/esm/data/SceneObservableDataTable.js +1 -1
- package/dist/esm/data/SceneObservableDataTable.js.map +1 -1
- package/dist/esm/data/SceneSingleResult.d.ts +3 -0
- package/dist/esm/data/SceneSingleResult.d.ts.map +1 -0
- package/dist/esm/data/SceneSingleResult.js +39 -0
- package/dist/esm/data/SceneSingleResult.js.map +1 -0
- package/dist/esm/data/SingleResultRuntime.d.ts +9 -0
- package/dist/esm/data/SingleResultRuntime.d.ts.map +1 -0
- package/dist/esm/data/SingleResultRuntime.js +118 -0
- package/dist/esm/data/SingleResultRuntime.js.map +1 -0
- package/dist/esm/data/SingleResultStatus.d.ts +7 -0
- package/dist/esm/data/SingleResultStatus.d.ts.map +1 -0
- package/dist/esm/data/SingleResultStatus.js +21 -0
- package/dist/esm/data/SingleResultStatus.js.map +1 -0
- package/dist/esm/data/for_SceneDataTable/when_forwarding_query_arguments.d.ts +2 -0
- package/dist/esm/data/for_SceneDataTable/when_forwarding_query_arguments.d.ts.map +1 -0
- package/dist/esm/data/for_SceneDataTable/when_forwarding_query_arguments.js +90 -0
- package/dist/esm/data/for_SceneDataTable/when_forwarding_query_arguments.js.map +1 -0
- package/dist/esm/data/for_SceneSingleResult/when_executing_a_native_query.d.ts +2 -0
- package/dist/esm/data/for_SceneSingleResult/when_executing_a_native_query.d.ts.map +1 -0
- package/dist/esm/data/for_SceneSingleResult/when_executing_a_native_query.js +255 -0
- package/dist/esm/data/for_SceneSingleResult/when_executing_a_native_query.js.map +1 -0
- package/dist/esm/data/for_SceneSingleResult/when_gating_the_lazy_runtime.d.ts +2 -0
- package/dist/esm/data/for_SceneSingleResult/when_gating_the_lazy_runtime.d.ts.map +1 -0
- package/dist/esm/data/for_SceneSingleResult/when_gating_the_lazy_runtime.js +54 -0
- package/dist/esm/data/for_SceneSingleResult/when_gating_the_lazy_runtime.js.map +1 -0
- package/dist/esm/data/index.d.ts +1 -0
- package/dist/esm/data/index.d.ts.map +1 -1
- package/dist/esm/data/index.js +1 -0
- package/dist/esm/data/index.js.map +1 -1
- package/dist/esm/dialogs/SceneCommandDialog.js +1 -1
- package/dist/esm/dialogs/SceneCommandDialog.js.map +1 -1
- package/dist/esm/dialogs/SceneStepperCommandDialog.js +1 -1
- package/dist/esm/dialogs/SceneStepperCommandDialog.js.map +1 -1
- package/dist/esm/for_cratisComponentsPackage/when_describing_query_arguments.d.ts +2 -0
- package/dist/esm/for_cratisComponentsPackage/when_describing_query_arguments.d.ts.map +1 -0
- package/dist/esm/for_cratisComponentsPackage/when_describing_query_arguments.js +11 -0
- package/dist/esm/for_cratisComponentsPackage/when_describing_query_arguments.js.map +1 -0
- package/dist/esm/for_cratisComponentsPackage/when_describing_single_result.d.ts +2 -0
- package/dist/esm/for_cratisComponentsPackage/when_describing_single_result.d.ts.map +1 -0
- package/dist/esm/for_cratisComponentsPackage/when_describing_single_result.js +16 -0
- package/dist/esm/for_cratisComponentsPackage/when_describing_single_result.js.map +1 -0
- package/dist/esm/forms/fields/SceneRadioButtonField.d.ts.map +1 -1
- package/dist/esm/forms/fields/SceneRadioButtonField.js +4 -1
- package/dist/esm/forms/fields/SceneRadioButtonField.js.map +1 -1
- package/dist/esm/forms/fields/for_SceneRadioButtonField/when_mapping_the_group_name.d.ts +2 -0
- package/dist/esm/forms/fields/for_SceneRadioButtonField/when_mapping_the_group_name.d.ts.map +1 -0
- package/dist/esm/forms/fields/for_SceneRadioButtonField/when_mapping_the_group_name.js +38 -0
- package/dist/esm/forms/fields/for_SceneRadioButtonField/when_mapping_the_group_name.js.map +1 -0
- package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.js +4 -0
- package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/pages/SceneDataPage.js +1 -1
- package/dist/esm/pages/SceneDataPage.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/for_cratisComponentsPackage/when_describing_query_arguments.ts +15 -0
- package/for_cratisComponentsPackage/when_describing_single_result.ts +20 -0
- package/forms/fields/SceneRadioButtonField.tsx +4 -1
- package/forms/fields/for_SceneRadioButtonField/when_mapping_the_group_name.tsx +45 -0
- package/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.ts +6 -0
- package/package.json +20 -8
- package/pages/SceneDataPage.tsx +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneDataTable.js","sources":["../../../data/SceneDataTable.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { lazy } from 'react';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { ArcRuntimeBoundary, BindingKind, MissingBinding, resolveElementBinding } from '../bindings';\nimport { stringArrayProperty, stringProperty } from '../properties';\n\nconst DataTableForQuery = lazy(async () => ({ default: (await import('
|
|
1
|
+
{"version":3,"file":"SceneDataTable.js","sources":["../../../data/SceneDataTable.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { lazy } from 'react';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { ArcRuntimeBoundary, BindingKind, MissingBinding, resolveElementBinding } from '../bindings';\nimport { objectProperty, stringArrayProperty, stringProperty } from '../properties';\nimport { Placeholder } from '../bindings/Placeholder';\n\nconst DataTableForQuery = lazy(async () => ({ default: (await import('../bindings/ArcBoundComponents')).BoundDataTable }));\n\n/**\n * The `Cratis.Components:dataTable` component, also registered as `table` - `DataTableForQuery` from\n * `@cratis/components/DataTables`.\n *\n * Registering it under the bare name `table` as well is override priority working as designed: a profile\n * listing `core`, `PrimeReact` and `Cratis.Components` in that order resolves `table` here and records\n * the other two as shadowed. That is the right outcome, because this is a strictly better `table` for a\n * Cratis application - it performs the query, pages against the server, and wires filtering and sorting\n * back into it, where PrimeReact's `DataTable` is handed rows and knows nothing about where they came from.\n *\n * The `query` property names an Arc query proxy; the columns come from the `content` slot.\n * Optional `queryArguments` is an explicit object forwarded unchanged to that proxy. Invalid values\n * render a placeholder rather than accidentally executing a query without its arguments. This remains\n * a collection table; forwarding arguments does not make optional single-result queries compatible.\n *\n * There is deliberately no `clientFiltering` property. `@cratis/components` 3.0.0 still accepts the prop\n * so existing call sites compile, but it no longer does anything - filtering is always applied to the\n * loaded page. Exposing a screen property that reads as a choice and silently is not would be worse than\n * not offering it, so a screen that set it now gets a property-not-recognized signal rather than a\n * setting that quietly stopped mattering.\n */\nexport function SceneDataTable({ element, slots }: RegisteredComponentProps) {\n const { name, target } = resolveElementBinding(element, BindingKind.Query);\n if (!target) return <MissingBinding element={element} kind={BindingKind.Query} name={name} />;\n\n const queryArguments = objectProperty(element.properties, 'queryArguments');\n if (element.properties.queryArguments !== undefined && queryArguments === undefined) {\n return <Placeholder element={element} problem='Invalid queryArguments: expected an object' />;\n }\n\n return (\n <ArcRuntimeBoundary>\n <DataTableForQuery\n query={target}\n {...(queryArguments === undefined ? {} : { queryArguments })}\n emptyMessage={stringProperty(element.properties, 'emptyMessage') ?? ''}\n dataKey={stringProperty(element.properties, 'dataKey')}\n globalFilterFields={stringArrayProperty(element.properties, 'globalFilterFields')}\n className={stringProperty(element.properties, 'className')}\n >\n {slots.content}\n </DataTableForQuery>\n </ArcRuntimeBoundary>\n );\n}\n"],"names":["DataTableForQuery","lazy","default","BoundDataTable","SceneDataTable","element","slots","name","target","resolveElementBinding","BindingKind","Query","_jsx","MissingBinding","kind","queryArguments","objectProperty","properties","undefined","Placeholder","problem","ArcRuntimeBoundary","query","emptyMessage","stringProperty","dataKey","globalFilterFields","stringArrayProperty","className","content"],"mappings":";;;;;;;;;AASA,MAAMA,iBAAAA,iBAAoBC,IAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,mCAAA,CAAgC,EAAGC;KAAe,CAAA,CAAA;AAEvH;;;;;;;;;;;;;;;;;;;;AAoBC,IACM,SAASC,cAAAA,CAAe,EAAEC,OAAO,EAAEC,KAAK,EAA4B,EAAA;IACvE,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAE,GAAGC,qBAAAA,CAAsBJ,OAAAA,EAASK,WAAAA,CAAYC,KAAK,CAAA;IACzE,IAAI,CAACH,MAAAA,EAAQ,qBAAOI,GAAA,CAACC,cAAAA,EAAAA;QAAeR,OAAAA,EAASA,OAAAA;AAASS,QAAAA,IAAAA,EAAMJ,YAAYC,KAAK;QAAEJ,IAAAA,EAAMA;;AAErF,IAAA,MAAMQ,cAAAA,GAAiBC,cAAAA,CAAeX,OAAAA,CAAQY,UAAU,EAAE,gBAAA,CAAA;AAC1D,IAAA,IAAIZ,QAAQY,UAAU,CAACF,cAAc,KAAKG,SAAAA,IAAaH,mBAAmBG,SAAAA,EAAW;AACjF,QAAA,qBAAON,GAAA,CAACO,WAAAA,EAAAA;YAAYd,OAAAA,EAASA,OAAAA;YAASe,OAAAA,EAAQ;;AAClD,IAAA;AAEA,IAAA,qBACIR,GAAA,CAACS,kBAAAA,EAAAA;AACG,QAAA,QAAA,gBAAAT,GAAA,CAACZ,iBAAAA,EAAAA;YACGsB,KAAAA,EAAOd,MAAAA;YACN,GAAIO,cAAAA,KAAmBG,SAAAA,GAAY,EAAC,GAAI;AAAEH,gBAAAA;aAAgB;AAC3DQ,YAAAA,YAAAA,EAAcC,cAAAA,CAAenB,OAAAA,CAAQY,UAAU,EAAE,cAAA,CAAA,IAAmB,EAAA;YACpEQ,OAAAA,EAASD,cAAAA,CAAenB,OAAAA,CAAQY,UAAU,EAAE,SAAA,CAAA;YAC5CS,kBAAAA,EAAoBC,mBAAAA,CAAoBtB,OAAAA,CAAQY,UAAU,EAAE,oBAAA,CAAA;YAC5DW,SAAAA,EAAWJ,cAAAA,CAAenB,OAAAA,CAAQY,UAAU,EAAE,WAAA,CAAA;AAE7CX,YAAAA,QAAAA,EAAAA,KAAAA,CAAMuB;;;AAIvB;;"}
|
|
@@ -7,7 +7,7 @@ import { ArcRuntimeBoundary } from '../bindings/ArcRuntimeBoundary.js';
|
|
|
7
7
|
import { stringProperty, stringArrayProperty } from '../properties.js';
|
|
8
8
|
|
|
9
9
|
const DataTableForObservableQuery = /*#__PURE__*/ lazy(async ()=>({
|
|
10
|
-
default: (await import('
|
|
10
|
+
default: (await import('../bindings/ArcBoundComponents.js')).BoundObservableDataTable
|
|
11
11
|
}));
|
|
12
12
|
/**
|
|
13
13
|
* The `Cratis.Components:observableDataTable` component - `DataTableForObservableQuery` from
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneObservableDataTable.js","sources":["../../../data/SceneObservableDataTable.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { lazy } from 'react';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { ArcRuntimeBoundary, BindingKind, MissingBinding, resolveElementBinding } from '../bindings';\nimport { stringArrayProperty, stringProperty } from '../properties';\n\nconst DataTableForObservableQuery = lazy(async () => ({\n default: (await import('
|
|
1
|
+
{"version":3,"file":"SceneObservableDataTable.js","sources":["../../../data/SceneObservableDataTable.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { lazy } from 'react';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { ArcRuntimeBoundary, BindingKind, MissingBinding, resolveElementBinding } from '../bindings';\nimport { stringArrayProperty, stringProperty } from '../properties';\n\nconst DataTableForObservableQuery = lazy(async () => ({\n default: (await import('../bindings/ArcBoundComponents')).BoundObservableDataTable,\n}));\n\n/**\n * The `Cratis.Components:observableDataTable` component - `DataTableForObservableQuery` from\n * `@cratis/components/DataTables`.\n *\n * A separate name rather than a flag on `dataTable`, because the distinction is in the *proxy* a host\n * registers, not in how the table is configured: an observable query opens a WebSocket subscription and\n * re-renders when the server's read model changes, and a plain query does not. A screen that names an\n * observable query here is stating that its data is live, which is a design decision worth being able to\n * read off the screen.\n *\n * As with `dataTable`, no `clientFiltering` property is exposed: `@cratis/components` 3.0.0 keeps the\n * prop for source compatibility but ignores it, and a screen property that cannot change anything is\n * worse than an absent one.\n */\nexport function SceneObservableDataTable({ element, slots }: RegisteredComponentProps) {\n const { name, target } = resolveElementBinding(element, BindingKind.Query);\n if (!target) return <MissingBinding element={element} kind={BindingKind.Query} name={name} />;\n\n return (\n <ArcRuntimeBoundary>\n <DataTableForObservableQuery\n query={target}\n emptyMessage={stringProperty(element.properties, 'emptyMessage') ?? ''}\n dataKey={stringProperty(element.properties, 'dataKey')}\n globalFilterFields={stringArrayProperty(element.properties, 'globalFilterFields')}\n className={stringProperty(element.properties, 'className')}\n >\n {slots.content}\n </DataTableForObservableQuery>\n </ArcRuntimeBoundary>\n );\n}\n"],"names":["DataTableForObservableQuery","lazy","default","BoundObservableDataTable","SceneObservableDataTable","element","slots","name","target","resolveElementBinding","BindingKind","Query","_jsx","MissingBinding","kind","ArcRuntimeBoundary","query","emptyMessage","stringProperty","properties","dataKey","globalFilterFields","stringArrayProperty","className","content"],"mappings":";;;;;;;;AAQA,MAAMA,2BAAAA,iBAA8BC,IAAAA,CAAK,WAAa;AAClDC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,mCAAA,CAAgC,EAAGC;KAC9D,CAAA,CAAA;AAEA;;;;;;;;;;;;;AAaC,IACM,SAASC,wBAAAA,CAAyB,EAAEC,OAAO,EAAEC,KAAK,EAA4B,EAAA;IACjF,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAE,GAAGC,qBAAAA,CAAsBJ,OAAAA,EAASK,WAAAA,CAAYC,KAAK,CAAA;IACzE,IAAI,CAACH,MAAAA,EAAQ,qBAAOI,GAAA,CAACC,cAAAA,EAAAA;QAAeR,OAAAA,EAASA,OAAAA;AAASS,QAAAA,IAAAA,EAAMJ,YAAYC,KAAK;QAAEJ,IAAAA,EAAMA;;AAErF,IAAA,qBACIK,GAAA,CAACG,kBAAAA,EAAAA;AACG,QAAA,QAAA,gBAAAH,GAAA,CAACZ,2BAAAA,EAAAA;YACGgB,KAAAA,EAAOR,MAAAA;AACPS,YAAAA,YAAAA,EAAcC,cAAAA,CAAeb,OAAAA,CAAQc,UAAU,EAAE,cAAA,CAAA,IAAmB,EAAA;YACpEC,OAAAA,EAASF,cAAAA,CAAeb,OAAAA,CAAQc,UAAU,EAAE,SAAA,CAAA;YAC5CE,kBAAAA,EAAoBC,mBAAAA,CAAoBjB,OAAAA,CAAQc,UAAU,EAAE,oBAAA,CAAA;YAC5DI,SAAAA,EAAWL,cAAAA,CAAeb,OAAAA,CAAQc,UAAU,EAAE,WAAA,CAAA;AAE7Cb,YAAAA,QAAAA,EAAAA,KAAAA,CAAMkB;;;AAIvB;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneSingleResult.d.ts","sourceRoot":"","sources":["../../../data/SceneSingleResult.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAQ/D,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,wBAAwB,+BAgBtE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { lazy } from 'react';
|
|
3
|
+
import { BindingKind } from '../bindings/BindingKind.js';
|
|
4
|
+
import { resolveElementBinding } from '../bindings/resolveElementBinding.js';
|
|
5
|
+
import { MissingBinding } from '../bindings/MissingBinding.js';
|
|
6
|
+
import { ArcRuntimeBoundary } from '../bindings/ArcRuntimeBoundary.js';
|
|
7
|
+
import { booleanProperty, objectProperty, stringProperty } from '../properties.js';
|
|
8
|
+
import { SingleResultStatus } from './SingleResultStatus.js';
|
|
9
|
+
|
|
10
|
+
const SingleResultRuntime = /*#__PURE__*/ lazy(()=>import('./SingleResultRuntime.js'));
|
|
11
|
+
/** Read-only scalar field of an optional single model; the host owns and commits the input. */ function SceneSingleResult({ element }) {
|
|
12
|
+
const { name, target } = resolveElementBinding(element, BindingKind.Query);
|
|
13
|
+
if (!target) return /*#__PURE__*/ jsx(MissingBinding, {
|
|
14
|
+
element: element,
|
|
15
|
+
kind: BindingKind.Query,
|
|
16
|
+
name: name
|
|
17
|
+
});
|
|
18
|
+
// Nothing, including loading Arc, happens until the host explicitly commits its input.
|
|
19
|
+
if (!element.isEnabled || booleanProperty(element.properties, 'enabled') !== true) {
|
|
20
|
+
return /*#__PURE__*/ jsx(SingleResultStatus, {
|
|
21
|
+
state: "idle"
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
const queryArguments = objectProperty(element.properties, 'queryArguments');
|
|
25
|
+
const resultField = stringProperty(element.properties, 'resultField');
|
|
26
|
+
if (!queryArguments || !resultField) return /*#__PURE__*/ jsx(SingleResultStatus, {
|
|
27
|
+
state: "failure"
|
|
28
|
+
});
|
|
29
|
+
return /*#__PURE__*/ jsx(ArcRuntimeBoundary, {
|
|
30
|
+
children: /*#__PURE__*/ jsx(SingleResultRuntime, {
|
|
31
|
+
query: target,
|
|
32
|
+
queryArguments: queryArguments,
|
|
33
|
+
resultField: resultField
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { SceneSingleResult };
|
|
39
|
+
//# sourceMappingURL=SceneSingleResult.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneSingleResult.js","sources":["../../../data/SceneSingleResult.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { lazy } from 'react';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { ArcRuntimeBoundary, BindingKind, MissingBinding, resolveElementBinding } from '../bindings';\nimport { booleanProperty, objectProperty, stringProperty } from '../properties';\nimport { SingleResultStatus } from './SingleResultStatus';\n\nconst SingleResultRuntime = lazy(() => import('./SingleResultRuntime'));\n\n/** Read-only scalar field of an optional single model; the host owns and commits the input. */\nexport function SceneSingleResult({ element }: RegisteredComponentProps) {\n const { name, target } = resolveElementBinding(element, BindingKind.Query);\n if (!target) return <MissingBinding element={element} kind={BindingKind.Query} name={name} />;\n\n // Nothing, including loading Arc, happens until the host explicitly commits its input.\n if (!element.isEnabled || booleanProperty(element.properties, 'enabled') !== true) {\n return <SingleResultStatus state='idle' />;\n }\n\n const queryArguments = objectProperty(element.properties, 'queryArguments');\n const resultField = stringProperty(element.properties, 'resultField');\n if (!queryArguments || !resultField) return <SingleResultStatus state='failure' />;\n\n return <ArcRuntimeBoundary>\n <SingleResultRuntime query={target} queryArguments={queryArguments} resultField={resultField} />\n </ArcRuntimeBoundary>;\n}\n"],"names":["SingleResultRuntime","lazy","SceneSingleResult","element","name","target","resolveElementBinding","BindingKind","Query","_jsx","MissingBinding","kind","isEnabled","booleanProperty","properties","SingleResultStatus","state","queryArguments","objectProperty","resultField","stringProperty","ArcRuntimeBoundary","query"],"mappings":";;;;;;;;;AASA,MAAMA,mBAAAA,iBAAsBC,IAAAA,CAAK,IAAM,OAAO,0BAAA,CAAA,CAAA;AAE9C,gGACO,SAASC,iBAAAA,CAAkB,EAAEC,OAAO,EAA4B,EAAA;IACnE,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAE,GAAGC,qBAAAA,CAAsBH,OAAAA,EAASI,WAAAA,CAAYC,KAAK,CAAA;IACzE,IAAI,CAACH,MAAAA,EAAQ,qBAAOI,GAAA,CAACC,cAAAA,EAAAA;QAAeP,OAAAA,EAASA,OAAAA;AAASQ,QAAAA,IAAAA,EAAMJ,YAAYC,KAAK;QAAEJ,IAAAA,EAAMA;;;IAGrF,IAAI,CAACD,QAAQS,SAAS,IAAIC,gBAAgBV,OAAAA,CAAQW,UAAU,EAAE,SAAA,CAAA,KAAe,IAAA,EAAM;AAC/E,QAAA,qBAAOL,GAAA,CAACM,kBAAAA,EAAAA;YAAmBC,KAAAA,EAAM;;AACrC,IAAA;AAEA,IAAA,MAAMC,cAAAA,GAAiBC,cAAAA,CAAef,OAAAA,CAAQW,UAAU,EAAE,gBAAA,CAAA;AAC1D,IAAA,MAAMK,WAAAA,GAAcC,cAAAA,CAAejB,OAAAA,CAAQW,UAAU,EAAE,aAAA,CAAA;AACvD,IAAA,IAAI,CAACG,cAAAA,IAAkB,CAACE,WAAAA,EAAa,qBAAOV,GAAA,CAACM,kBAAAA,EAAAA;QAAmBC,KAAAA,EAAM;;AAEtE,IAAA,qBAAOP,GAAA,CAACY,kBAAAA,EAAAA;AACJ,QAAA,QAAA,gBAAAZ,GAAA,CAACT,mBAAAA,EAAAA;YAAoBsB,KAAAA,EAAOjB,MAAAA;YAAQY,cAAAA,EAAgBA,cAAAA;YAAgBE,WAAAA,EAAaA;;;AAEzF;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BoundConstructor } from '../bindings/BoundConstructor';
|
|
2
|
+
interface Props {
|
|
3
|
+
query: BoundConstructor;
|
|
4
|
+
queryArguments: Record<string, unknown>;
|
|
5
|
+
resultField: string;
|
|
6
|
+
}
|
|
7
|
+
export default function SingleResultRuntime({ query, queryArguments, resultField }: Props): import("react").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=SingleResultRuntime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SingleResultRuntime.d.ts","sourceRoot":"","sources":["../../../data/SingleResultRuntime.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGrE,UAAU,KAAK;IACX,KAAK,EAAE,gBAAgB,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;CACvB;AAQD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,KAAK,+BAmExF"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useContext, useMemo, useState, useEffect } from 'react';
|
|
3
|
+
import { ArcContext } from '@cratis/arc.react';
|
|
4
|
+
import { SingleResultStatus } from './SingleResultStatus.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Private execution owner. Arc owns validation, routing, HTTP and deserialization; this component
|
|
8
|
+
* owns only request lifetime and presentation. No shared cache can hand B the result belonging to A.
|
|
9
|
+
*/ function SingleResultRuntime({ query, queryArguments, resultField }) {
|
|
10
|
+
const arc = useContext(ArcContext);
|
|
11
|
+
const { microservice, apiBasePath, origin, httpHeadersCallback, queryVersion } = arc;
|
|
12
|
+
// Identity is deliberate: hosts replace immutable committed arguments rather than mutating them.
|
|
13
|
+
const request = useMemo(()=>({
|
|
14
|
+
query,
|
|
15
|
+
queryArguments,
|
|
16
|
+
resultField,
|
|
17
|
+
microservice,
|
|
18
|
+
apiBasePath,
|
|
19
|
+
origin,
|
|
20
|
+
httpHeadersCallback,
|
|
21
|
+
queryVersion
|
|
22
|
+
}), [
|
|
23
|
+
query,
|
|
24
|
+
queryArguments,
|
|
25
|
+
resultField,
|
|
26
|
+
microservice,
|
|
27
|
+
apiBasePath,
|
|
28
|
+
origin,
|
|
29
|
+
httpHeadersCallback,
|
|
30
|
+
queryVersion
|
|
31
|
+
]);
|
|
32
|
+
const [settled, setSettled] = useState();
|
|
33
|
+
useEffect(()=>{
|
|
34
|
+
// Each effect setup is a generation, including StrictMode's setup/cleanup/setup replay.
|
|
35
|
+
let current = true;
|
|
36
|
+
let instance;
|
|
37
|
+
const publish = (outcome)=>{
|
|
38
|
+
if (current) setSettled({
|
|
39
|
+
request,
|
|
40
|
+
outcome
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
const execute = async ()=>{
|
|
44
|
+
try {
|
|
45
|
+
// The registry intentionally stores constructors without an eager Arc dependency.
|
|
46
|
+
instance = new request.query();
|
|
47
|
+
if (instance.enumerable !== false) {
|
|
48
|
+
publish({
|
|
49
|
+
state: 'failure'
|
|
50
|
+
});
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
instance.setMicroservice(request.microservice);
|
|
54
|
+
instance.setApiBasePath(request.apiBasePath ?? '');
|
|
55
|
+
instance.setOrigin(request.origin ?? '');
|
|
56
|
+
instance.setHttpHeadersCallback(request.httpHeadersCallback ?? (()=>({})));
|
|
57
|
+
// Native perform validates required arguments and proxy rules before HTTP. No copying,
|
|
58
|
+
// defaults, business validation, route construction or array wrapping happens here.
|
|
59
|
+
const result = await instance.perform(request.queryArguments);
|
|
60
|
+
if (!current) return;
|
|
61
|
+
if (result.isSuccess !== true || result.isAuthorized !== true || result.isValid !== true || result.hasExceptions !== false || result.isReady === false) {
|
|
62
|
+
publish({
|
|
63
|
+
state: 'failure'
|
|
64
|
+
});
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (result.data === null || result.data === undefined) {
|
|
68
|
+
publish({
|
|
69
|
+
state: 'notFound'
|
|
70
|
+
});
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (typeof result.data !== 'object' || Array.isArray(result.data)) {
|
|
74
|
+
publish({
|
|
75
|
+
state: 'failure'
|
|
76
|
+
});
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
// Only one own data field, never a path, inherited member, getter or expression.
|
|
80
|
+
const descriptor = Object.getOwnPropertyDescriptor(result.data, request.resultField);
|
|
81
|
+
const value = descriptor && 'value' in descriptor ? descriptor.value : undefined;
|
|
82
|
+
if (typeof value === 'string' || typeof value === 'boolean' || typeof value === 'number' && Number.isFinite(value)) {
|
|
83
|
+
publish({
|
|
84
|
+
state: 'success',
|
|
85
|
+
value: String(value)
|
|
86
|
+
});
|
|
87
|
+
} else {
|
|
88
|
+
publish({
|
|
89
|
+
state: 'failure'
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
} catch {
|
|
93
|
+
// Includes native AbortError rejections. Disposed generations cannot publish or leak
|
|
94
|
+
// an unhandled promise, even when the HTTP boundary ignores cancellation.
|
|
95
|
+
publish({
|
|
96
|
+
state: 'failure'
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
void execute();
|
|
101
|
+
return ()=>{
|
|
102
|
+
current = false;
|
|
103
|
+
instance?.abortController?.abort();
|
|
104
|
+
};
|
|
105
|
+
}, [
|
|
106
|
+
request
|
|
107
|
+
]);
|
|
108
|
+
// Mask old data during the render that changes inputs, before effect cleanup/setup runs.
|
|
109
|
+
if (settled?.request !== request) return /*#__PURE__*/ jsx(SingleResultStatus, {
|
|
110
|
+
state: "loading"
|
|
111
|
+
});
|
|
112
|
+
return /*#__PURE__*/ jsx(SingleResultStatus, {
|
|
113
|
+
...settled.outcome
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export { SingleResultRuntime as default };
|
|
118
|
+
//# sourceMappingURL=SingleResultRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SingleResultRuntime.js","sources":["../../../data/SingleResultRuntime.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useContext, useEffect, useMemo, useState } from 'react';\nimport { ArcContext } from '@cratis/arc.react';\nimport type { QueryFor } from '@cratis/arc/queries';\nimport type { BoundConstructor } from '../bindings/BoundConstructor';\nimport { SingleResultStatus } from './SingleResultStatus';\n\ninterface Props {\n query: BoundConstructor;\n queryArguments: Record<string, unknown>;\n resultField: string;\n}\n\ntype Outcome = { state: 'failure' | 'notFound' } | { state: 'success'; value: string };\n\n/**\n * Private execution owner. Arc owns validation, routing, HTTP and deserialization; this component\n * owns only request lifetime and presentation. No shared cache can hand B the result belonging to A.\n */\nexport default function SingleResultRuntime({ query, queryArguments, resultField }: Props) {\n const arc = useContext(ArcContext);\n const { microservice, apiBasePath, origin, httpHeadersCallback, queryVersion } = arc;\n // Identity is deliberate: hosts replace immutable committed arguments rather than mutating them.\n const request = useMemo(() => ({ query, queryArguments, resultField, microservice, apiBasePath, origin, httpHeadersCallback, queryVersion }),\n [query, queryArguments, resultField, microservice, apiBasePath, origin, httpHeadersCallback, queryVersion]);\n const [settled, setSettled] = useState<{ request: typeof request; outcome: Outcome }>();\n\n useEffect(() => {\n // Each effect setup is a generation, including StrictMode's setup/cleanup/setup replay.\n let current = true;\n let instance: QueryFor<unknown, Record<string, unknown>> | undefined;\n const publish = (outcome: Outcome) => {\n if (current) setSettled({ request, outcome });\n };\n const execute = async () => {\n try {\n // The registry intentionally stores constructors without an eager Arc dependency.\n instance = new request.query() as QueryFor<unknown, Record<string, unknown>>;\n if (instance.enumerable !== false) {\n publish({ state: 'failure' });\n return;\n }\n instance.setMicroservice(request.microservice);\n instance.setApiBasePath(request.apiBasePath ?? '');\n instance.setOrigin(request.origin ?? '');\n instance.setHttpHeadersCallback(request.httpHeadersCallback ?? (() => ({})));\n // Native perform validates required arguments and proxy rules before HTTP. No copying,\n // defaults, business validation, route construction or array wrapping happens here.\n const result = await instance.perform(request.queryArguments);\n if (!current) return;\n if (result.isSuccess !== true || result.isAuthorized !== true || result.isValid !== true || result.hasExceptions !== false || result.isReady === false) {\n publish({ state: 'failure' });\n return;\n }\n if (result.data === null || result.data === undefined) {\n publish({ state: 'notFound' });\n return;\n }\n if (typeof result.data !== 'object' || Array.isArray(result.data)) {\n publish({ state: 'failure' });\n return;\n }\n // Only one own data field, never a path, inherited member, getter or expression.\n const descriptor = Object.getOwnPropertyDescriptor(result.data, request.resultField);\n const value: unknown = descriptor && 'value' in descriptor ? descriptor.value : undefined;\n if (typeof value === 'string' || typeof value === 'boolean' || (typeof value === 'number' && Number.isFinite(value))) {\n publish({ state: 'success', value: String(value) });\n } else {\n publish({ state: 'failure' });\n }\n } catch {\n // Includes native AbortError rejections. Disposed generations cannot publish or leak\n // an unhandled promise, even when the HTTP boundary ignores cancellation.\n publish({ state: 'failure' });\n }\n };\n void execute();\n return () => {\n current = false;\n instance?.abortController?.abort();\n };\n }, [request]);\n\n // Mask old data during the render that changes inputs, before effect cleanup/setup runs.\n if (settled?.request !== request) return <SingleResultStatus state='loading' />;\n return <SingleResultStatus {...settled.outcome} />;\n}\n"],"names":["SingleResultRuntime","query","queryArguments","resultField","arc","useContext","ArcContext","microservice","apiBasePath","origin","httpHeadersCallback","queryVersion","request","useMemo","settled","setSettled","useState","useEffect","current","instance","publish","outcome","execute","enumerable","state","setMicroservice","setApiBasePath","setOrigin","setHttpHeadersCallback","result","perform","isSuccess","isAuthorized","isValid","hasExceptions","isReady","data","undefined","Array","isArray","descriptor","Object","getOwnPropertyDescriptor","value","Number","isFinite","String","abortController","abort","_jsx","SingleResultStatus"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SingleResultStatus.d.ts","sourceRoot":"","sources":["../../../data/SingleResultStatus.tsx"],"names":[],"mappings":"AAGA,KAAK,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAKrE,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,+BAIpF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
4
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
5
|
+
const messages = {
|
|
6
|
+
idle: 'Idle',
|
|
7
|
+
loading: 'Loading',
|
|
8
|
+
notFound: 'Not found',
|
|
9
|
+
failure: 'Unable to load result',
|
|
10
|
+
success: ''
|
|
11
|
+
};
|
|
12
|
+
/** Internal shared presentation; never exposes query exception messages or server stack traces. */ function SingleResultStatus({ state, value }) {
|
|
13
|
+
return /*#__PURE__*/ jsx("span", {
|
|
14
|
+
role: state === 'failure' ? 'alert' : 'status',
|
|
15
|
+
"data-scene-single-result": state,
|
|
16
|
+
children: state === 'success' ? value : messages[state]
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { SingleResultStatus };
|
|
21
|
+
//# sourceMappingURL=SingleResultStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SingleResultStatus.js","sources":["../../../data/SingleResultStatus.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\ntype State = 'idle' | 'loading' | 'notFound' | 'failure' | 'success';\n\nconst messages = { idle: 'Idle', loading: 'Loading', notFound: 'Not found', failure: 'Unable to load result', success: '' };\n\n/** Internal shared presentation; never exposes query exception messages or server stack traces. */\nexport function SingleResultStatus({ state, value }: { state: State; value?: string }) {\n return <span role={state === 'failure' ? 'alert' : 'status'} data-scene-single-result={state}>\n {state === 'success' ? value : messages[state]}\n </span>;\n}\n"],"names":["messages","idle","loading","notFound","failure","success","SingleResultStatus","state","value","_jsx","span","role","data-scene-single-result"],"mappings":";;AAAA;AACA;AAIA,MAAMA,QAAAA,GAAW;IAAEC,IAAAA,EAAM,MAAA;IAAQC,OAAAA,EAAS,SAAA;IAAWC,QAAAA,EAAU,WAAA;IAAaC,OAAAA,EAAS,uBAAA;IAAyBC,OAAAA,EAAS;AAAG,CAAA;AAE1H,oGACO,SAASC,kBAAAA,CAAmB,EAAEC,KAAK,EAAEC,KAAK,EAAoC,EAAA;AACjF,IAAA,qBAAOC,GAAA,CAACC,MAAAA,EAAAA;QAAKC,IAAAA,EAAMJ,KAAAA,KAAU,YAAY,OAAA,GAAU,QAAA;QAAUK,0BAAAA,EAA0BL,KAAAA;AAClFA,QAAAA,QAAAA,EAAAA,KAAAA,KAAU,SAAA,GAAYC,KAAAA,GAAQR,QAAQ,CAACO,KAAAA;;AAEhD;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_forwarding_query_arguments.d.ts","sourceRoot":"","sources":["../../../../data/for_SceneDataTable/when_forwarding_query_arguments.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { act, cleanup, render, screen } from '@testing-library/react';
|
|
3
|
+
import { vi } from 'vitest';
|
|
4
|
+
import { externalComponent } from '../../given';
|
|
5
|
+
let InvoicesForProject;
|
|
6
|
+
let AnotherQuery;
|
|
7
|
+
describe('when forwarding query arguments', () => {
|
|
8
|
+
const suppliedId = 'project-with-an-explicit-id';
|
|
9
|
+
const received = vi.fn();
|
|
10
|
+
let SceneDataTable;
|
|
11
|
+
let bindings;
|
|
12
|
+
beforeEach(async () => {
|
|
13
|
+
vi.resetModules();
|
|
14
|
+
received.mockClear();
|
|
15
|
+
vi.doMock('@cratis/components/DataTables', () => ({
|
|
16
|
+
DataTableForQuery: (properties) => {
|
|
17
|
+
received(properties);
|
|
18
|
+
return _jsx("div", { "data-testid": 'query-table' });
|
|
19
|
+
},
|
|
20
|
+
}));
|
|
21
|
+
({ Snapshot: InvoicesForProject } = await import('../../bindings/for_requireArcProxy/NativeProxies'));
|
|
22
|
+
AnotherQuery = InvoicesForProject;
|
|
23
|
+
bindings = await import('../../bindings');
|
|
24
|
+
bindings.clearBindings();
|
|
25
|
+
bindings.registerQuery('InvoicesForProject', InvoicesForProject);
|
|
26
|
+
bindings.registerQuery('AnotherQuery', AnotherQuery);
|
|
27
|
+
({ SceneDataTable } = await import('../SceneDataTable'));
|
|
28
|
+
});
|
|
29
|
+
afterEach(() => {
|
|
30
|
+
cleanup();
|
|
31
|
+
bindings.clearBindings();
|
|
32
|
+
vi.doUnmock('@cratis/components/DataTables');
|
|
33
|
+
vi.resetModules();
|
|
34
|
+
});
|
|
35
|
+
async function renderTable(properties) {
|
|
36
|
+
const element = externalComponent('Cratis.Components:dataTable', properties);
|
|
37
|
+
await act(async () => {
|
|
38
|
+
render(_jsx(SceneDataTable, { element: element, slots: {} }));
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
it('should pass the exact registered constructor and explicit projectId object through the runtime boundary', async () => {
|
|
42
|
+
const queryArguments = { projectId: suppliedId };
|
|
43
|
+
await renderTable({ query: 'InvoicesForProject', queryArguments });
|
|
44
|
+
await screen.findByTestId('query-table');
|
|
45
|
+
const properties = received.mock.lastCall[0];
|
|
46
|
+
(properties.query === InvoicesForProject).should.equal(true);
|
|
47
|
+
(properties.queryArguments === queryArguments).should.equal(true);
|
|
48
|
+
properties.should.have.property('queryArguments').that.deep.equals({ projectId: suppliedId });
|
|
49
|
+
});
|
|
50
|
+
it('should preserve all supplied keys and values without normalization or defaults', async () => {
|
|
51
|
+
const queryArguments = { projectId: suppliedId, ProjectID: 'distinct', limit: 0, enabled: false, optional: null, filter: { names: ['one'] } };
|
|
52
|
+
await renderTable({ query: 'InvoicesForProject', queryArguments });
|
|
53
|
+
await screen.findByTestId('query-table');
|
|
54
|
+
(received.mock.lastCall[0].queryArguments === queryArguments).should.equal(true);
|
|
55
|
+
});
|
|
56
|
+
it('should leave omitted arguments absent from the underlying component props', async () => {
|
|
57
|
+
await renderTable({ query: 'InvoicesForProject' });
|
|
58
|
+
await screen.findByTestId('query-table');
|
|
59
|
+
Object.prototype.hasOwnProperty.call(received.mock.lastCall[0], 'queryArguments').should.equal(false);
|
|
60
|
+
(received.mock.lastCall[0].query === InvoicesForProject).should.equal(true);
|
|
61
|
+
});
|
|
62
|
+
it('should treat undefined arguments as omitted like the existing property readers', async () => {
|
|
63
|
+
await renderTable({ query: 'InvoicesForProject', queryArguments: undefined });
|
|
64
|
+
await screen.findByTestId('query-table');
|
|
65
|
+
Object.prototype.hasOwnProperty.call(received.mock.lastCall[0], 'queryArguments').should.equal(false);
|
|
66
|
+
});
|
|
67
|
+
it('should pass an explicitly empty argument object unchanged', async () => {
|
|
68
|
+
const queryArguments = {};
|
|
69
|
+
await renderTable({ query: 'InvoicesForProject', queryArguments });
|
|
70
|
+
await screen.findByTestId('query-table');
|
|
71
|
+
(received.mock.lastCall[0].queryArguments === queryArguments).should.equal(true);
|
|
72
|
+
});
|
|
73
|
+
for (const queryArguments of [[], ['project'], 'project', '{"projectId":"project"}', 42, false, null]) {
|
|
74
|
+
it(`should visibly reject ${JSON.stringify(queryArguments)} without mounting a query table`, async () => {
|
|
75
|
+
await renderTable({ query: 'InvoicesForProject', queryArguments });
|
|
76
|
+
(screen.getByText("Invalid queryArguments: expected an object on Cratis.Components:dataTable") !== null).should.equal(true);
|
|
77
|
+
received.mock.calls.should.have.lengthOf(0);
|
|
78
|
+
(screen.queryByTestId('query-table') === null).should.equal(true);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
for (const queryArguments of [{ projectId: suppliedId }, null, []]) {
|
|
82
|
+
it(`should retain MissingBinding precedence and never choose another registered query with ${JSON.stringify(queryArguments)}`, async () => {
|
|
83
|
+
await renderTable({ query: 'UnregisteredQuery', queryArguments });
|
|
84
|
+
(screen.getByText("Unresolved query binding 'UnregisteredQuery' on Cratis.Components:dataTable") !== null).should.equal(true);
|
|
85
|
+
received.mock.calls.should.have.lengthOf(0);
|
|
86
|
+
(screen.queryByText(/Invalid queryArguments/) === null).should.equal(true);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
//# sourceMappingURL=when_forwarding_query_arguments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_forwarding_query_arguments.js","sourceRoot":"","sources":["../../../../data/for_SceneDataTable/when_forwarding_query_arguments.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,IAAI,kBAA8F,CAAC;AACnG,IAAI,YAAuC,CAAC;AAG5C,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC7C,MAAM,UAAU,GAAG,6BAA6B,CAAC;IACjD,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAiD,CAAC;IACxE,IAAI,cAAiE,CAAC;IACtE,IAAI,QAAyC,CAAC;IAE9C,UAAU,CAAC,KAAK,IAAI,EAAE;QAClB,EAAE,CAAC,YAAY,EAAE,CAAC;QAClB,QAAQ,CAAC,SAAS,EAAE,CAAC;QACrB,EAAE,CAAC,MAAM,CAAC,+BAA+B,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9C,iBAAiB,EAAE,CAAC,UAAmC,EAAE,EAAE;gBACvD,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACrB,OAAO,6BAAiB,aAAa,GAAG,CAAC;YAC7C,CAAC;SACJ,CAAC,CAAC,CAAC;QACJ,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,kDAAkD,CAAC,CAAC,CAAC;QACtG,YAAY,GAAG,kBAAkB,CAAC;QAClC,QAAQ,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC1C,QAAQ,CAAC,aAAa,EAAE,CAAC;QACzB,QAAQ,CAAC,aAAa,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;QACjE,QAAQ,CAAC,aAAa,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QACrD,CAAC,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,OAAO,EAAE,CAAC;QACV,QAAQ,CAAC,aAAa,EAAE,CAAC;QACzB,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;QAC7C,EAAE,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,KAAK,UAAU,WAAW,CAAC,UAAmC;QAC1D,MAAM,OAAO,GAAG,iBAAiB,CAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC;QAC7E,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;YACjB,MAAM,CAAC,KAAC,cAAc,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAI,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACP,CAAC;IAED,EAAE,CAAC,yGAAyG,EAAE,KAAK,IAAI,EAAE;QACrH,MAAM,cAAc,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QACjD,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAC,CAAC;QACnE,MAAM,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAS,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,UAAU,CAAC,KAAK,KAAK,kBAAkB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC,UAAU,CAAC,cAAc,KAAK,cAAc,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,cAAc,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QAC9I,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAC,CAAC;QACnE,MAAM,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAS,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,cAAc,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;QACnD,MAAM,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAS,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,kBAAkB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9E,MAAM,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAC,CAAC;QACnE,MAAM,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAS,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,cAAc,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,cAAc,IAAI,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,yBAAyB,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QACpG,EAAE,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YACpG,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAC,CAAC;YACnE,CAAC,MAAM,CAAC,SAAS,CAAC,2EAA2E,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5H,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,MAAM,cAAc,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QACjE,EAAE,CAAC,0FAA0F,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YACtI,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC,CAAC;YAClE,CAAC,MAAM,CAAC,SAAS,CAAC,6EAA6E,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9H,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC,MAAM,CAAC,WAAW,CAAC,wBAAwB,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_executing_a_native_query.d.ts","sourceRoot":"","sources":["../../../../data/for_SceneSingleResult/when_executing_a_native_query.tsx"],"names":[],"mappings":""}
|