@cratis/scene.components 3.4.0 → 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.
Files changed (137) hide show
  1. package/README.md +51 -2
  2. package/bindings/ArcBoundComponents.tsx +40 -0
  3. package/bindings/BoundConstructor.ts +5 -5
  4. package/bindings/for_requireArcProxy/NativeProxies.ts +28 -0
  5. package/bindings/for_requireArcProxy/when_mounting_bound_adapters.tsx +71 -0
  6. package/bindings/for_requireArcProxy/when_previewing_without_arc.tsx +37 -0
  7. package/bindings/for_requireArcProxy/when_validating_a_proxy.ts +44 -0
  8. package/bindings/requireArcProxy.ts +24 -0
  9. package/cratisComponents.ts +2 -1
  10. package/cratisComponentsPackage.ts +2 -1
  11. package/data/SceneDataTable.tsx +1 -1
  12. package/data/SceneObservableDataTable.tsx +1 -1
  13. package/data/SceneSingleResult.tsx +29 -0
  14. package/data/SingleResultRuntime.tsx +89 -0
  15. package/data/SingleResultStatus.tsx +13 -0
  16. package/data/for_SceneDataTable/when_forwarding_query_arguments.tsx +4 -2
  17. package/data/for_SceneSingleResult/when_executing_a_native_query.tsx +290 -0
  18. package/data/for_SceneSingleResult/when_gating_the_lazy_runtime.tsx +60 -0
  19. package/data/index.ts +1 -0
  20. package/dialogs/SceneCommandDialog.tsx +1 -1
  21. package/dialogs/SceneStepperCommandDialog.tsx +1 -1
  22. package/dist/cjs/bindings/ArcBoundComponents.js +55 -0
  23. package/dist/cjs/bindings/ArcBoundComponents.js.map +1 -0
  24. package/dist/cjs/bindings/requireArcProxy.js +25 -0
  25. package/dist/cjs/bindings/requireArcProxy.js.map +1 -0
  26. package/dist/cjs/cratisComponents.js +2 -0
  27. package/dist/cjs/cratisComponents.js.map +1 -1
  28. package/dist/cjs/cratisComponentsPackage.js +2 -1
  29. package/dist/cjs/cratisComponentsPackage.js.map +1 -1
  30. package/dist/cjs/data/SceneDataTable.js +1 -1
  31. package/dist/cjs/data/SceneDataTable.js.map +1 -1
  32. package/dist/cjs/data/SceneObservableDataTable.js +1 -1
  33. package/dist/cjs/data/SceneObservableDataTable.js.map +1 -1
  34. package/dist/cjs/data/SceneSingleResult.js +41 -0
  35. package/dist/cjs/data/SceneSingleResult.js.map +1 -0
  36. package/dist/cjs/data/SingleResultRuntime.js +122 -0
  37. package/dist/cjs/data/SingleResultRuntime.js.map +1 -0
  38. package/dist/cjs/data/SingleResultStatus.js +23 -0
  39. package/dist/cjs/data/SingleResultStatus.js.map +1 -0
  40. package/dist/cjs/dialogs/SceneCommandDialog.js +1 -1
  41. package/dist/cjs/dialogs/SceneCommandDialog.js.map +1 -1
  42. package/dist/cjs/dialogs/SceneStepperCommandDialog.js +1 -1
  43. package/dist/cjs/dialogs/SceneStepperCommandDialog.js.map +1 -1
  44. package/dist/cjs/forms/fields/SceneRadioButtonField.js +4 -1
  45. package/dist/cjs/forms/fields/SceneRadioButtonField.js.map +1 -1
  46. package/dist/cjs/index.js +2 -0
  47. package/dist/cjs/index.js.map +1 -1
  48. package/dist/cjs/pages/SceneDataPage.js +1 -1
  49. package/dist/cjs/pages/SceneDataPage.js.map +1 -1
  50. package/dist/esm/bindings/ArcBoundComponents.d.ts +18 -0
  51. package/dist/esm/bindings/ArcBoundComponents.d.ts.map +1 -0
  52. package/dist/esm/bindings/ArcBoundComponents.js +49 -0
  53. package/dist/esm/bindings/ArcBoundComponents.js.map +1 -0
  54. package/dist/esm/bindings/for_requireArcProxy/NativeProxies.d.ts +25 -0
  55. package/dist/esm/bindings/for_requireArcProxy/NativeProxies.d.ts.map +1 -0
  56. package/dist/esm/bindings/for_requireArcProxy/NativeProxies.js +23 -0
  57. package/dist/esm/bindings/for_requireArcProxy/NativeProxies.js.map +1 -0
  58. package/dist/esm/bindings/for_requireArcProxy/when_mounting_bound_adapters.d.ts +2 -0
  59. package/dist/esm/bindings/for_requireArcProxy/when_mounting_bound_adapters.d.ts.map +1 -0
  60. package/dist/esm/bindings/for_requireArcProxy/when_mounting_bound_adapters.js +56 -0
  61. package/dist/esm/bindings/for_requireArcProxy/when_mounting_bound_adapters.js.map +1 -0
  62. package/dist/esm/bindings/for_requireArcProxy/when_previewing_without_arc.d.ts +2 -0
  63. package/dist/esm/bindings/for_requireArcProxy/when_previewing_without_arc.d.ts.map +1 -0
  64. package/dist/esm/bindings/for_requireArcProxy/when_previewing_without_arc.js +32 -0
  65. package/dist/esm/bindings/for_requireArcProxy/when_previewing_without_arc.js.map +1 -0
  66. package/dist/esm/bindings/for_requireArcProxy/when_validating_a_proxy.d.ts +2 -0
  67. package/dist/esm/bindings/for_requireArcProxy/when_validating_a_proxy.d.ts.map +1 -0
  68. package/dist/esm/bindings/for_requireArcProxy/when_validating_a_proxy.js +45 -0
  69. package/dist/esm/bindings/for_requireArcProxy/when_validating_a_proxy.js.map +1 -0
  70. package/dist/esm/bindings/requireArcProxy.d.ts +5 -0
  71. package/dist/esm/bindings/requireArcProxy.d.ts.map +1 -0
  72. package/dist/esm/bindings/requireArcProxy.js +23 -0
  73. package/dist/esm/bindings/requireArcProxy.js.map +1 -0
  74. package/dist/esm/cratisComponents.d.ts.map +1 -1
  75. package/dist/esm/cratisComponents.js +2 -0
  76. package/dist/esm/cratisComponents.js.map +1 -1
  77. package/dist/esm/cratisComponentsPackage.d.ts.map +1 -1
  78. package/dist/esm/cratisComponentsPackage.js +2 -1
  79. package/dist/esm/cratisComponentsPackage.js.map +1 -1
  80. package/dist/esm/data/SceneDataTable.js +1 -1
  81. package/dist/esm/data/SceneDataTable.js.map +1 -1
  82. package/dist/esm/data/SceneObservableDataTable.js +1 -1
  83. package/dist/esm/data/SceneObservableDataTable.js.map +1 -1
  84. package/dist/esm/data/SceneSingleResult.d.ts +3 -0
  85. package/dist/esm/data/SceneSingleResult.d.ts.map +1 -0
  86. package/dist/esm/data/SceneSingleResult.js +39 -0
  87. package/dist/esm/data/SceneSingleResult.js.map +1 -0
  88. package/dist/esm/data/SingleResultRuntime.d.ts +9 -0
  89. package/dist/esm/data/SingleResultRuntime.d.ts.map +1 -0
  90. package/dist/esm/data/SingleResultRuntime.js +118 -0
  91. package/dist/esm/data/SingleResultRuntime.js.map +1 -0
  92. package/dist/esm/data/SingleResultStatus.d.ts +7 -0
  93. package/dist/esm/data/SingleResultStatus.d.ts.map +1 -0
  94. package/dist/esm/data/SingleResultStatus.js +21 -0
  95. package/dist/esm/data/SingleResultStatus.js.map +1 -0
  96. package/dist/esm/data/for_SceneDataTable/when_forwarding_query_arguments.js +4 -4
  97. package/dist/esm/data/for_SceneDataTable/when_forwarding_query_arguments.js.map +1 -1
  98. package/dist/esm/data/for_SceneSingleResult/when_executing_a_native_query.d.ts +2 -0
  99. package/dist/esm/data/for_SceneSingleResult/when_executing_a_native_query.d.ts.map +1 -0
  100. package/dist/esm/data/for_SceneSingleResult/when_executing_a_native_query.js +255 -0
  101. package/dist/esm/data/for_SceneSingleResult/when_executing_a_native_query.js.map +1 -0
  102. package/dist/esm/data/for_SceneSingleResult/when_gating_the_lazy_runtime.d.ts +2 -0
  103. package/dist/esm/data/for_SceneSingleResult/when_gating_the_lazy_runtime.d.ts.map +1 -0
  104. package/dist/esm/data/for_SceneSingleResult/when_gating_the_lazy_runtime.js +54 -0
  105. package/dist/esm/data/for_SceneSingleResult/when_gating_the_lazy_runtime.js.map +1 -0
  106. package/dist/esm/data/index.d.ts +1 -0
  107. package/dist/esm/data/index.d.ts.map +1 -1
  108. package/dist/esm/data/index.js +1 -0
  109. package/dist/esm/data/index.js.map +1 -1
  110. package/dist/esm/dialogs/SceneCommandDialog.js +1 -1
  111. package/dist/esm/dialogs/SceneCommandDialog.js.map +1 -1
  112. package/dist/esm/dialogs/SceneStepperCommandDialog.js +1 -1
  113. package/dist/esm/dialogs/SceneStepperCommandDialog.js.map +1 -1
  114. package/dist/esm/for_cratisComponentsPackage/when_describing_single_result.d.ts +2 -0
  115. package/dist/esm/for_cratisComponentsPackage/when_describing_single_result.d.ts.map +1 -0
  116. package/dist/esm/for_cratisComponentsPackage/when_describing_single_result.js +16 -0
  117. package/dist/esm/for_cratisComponentsPackage/when_describing_single_result.js.map +1 -0
  118. package/dist/esm/forms/fields/SceneRadioButtonField.d.ts.map +1 -1
  119. package/dist/esm/forms/fields/SceneRadioButtonField.js +4 -1
  120. package/dist/esm/forms/fields/SceneRadioButtonField.js.map +1 -1
  121. package/dist/esm/forms/fields/for_SceneRadioButtonField/when_mapping_the_group_name.d.ts +2 -0
  122. package/dist/esm/forms/fields/for_SceneRadioButtonField/when_mapping_the_group_name.d.ts.map +1 -0
  123. package/dist/esm/forms/fields/for_SceneRadioButtonField/when_mapping_the_group_name.js +38 -0
  124. package/dist/esm/forms/fields/for_SceneRadioButtonField/when_mapping_the_group_name.js.map +1 -0
  125. package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.js +4 -0
  126. package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.js.map +1 -1
  127. package/dist/esm/index.js +1 -0
  128. package/dist/esm/index.js.map +1 -1
  129. package/dist/esm/pages/SceneDataPage.js +1 -1
  130. package/dist/esm/pages/SceneDataPage.js.map +1 -1
  131. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  132. package/for_cratisComponentsPackage/when_describing_single_result.ts +20 -0
  133. package/forms/fields/SceneRadioButtonField.tsx +4 -1
  134. package/forms/fields/for_SceneRadioButtonField/when_mapping_the_group_name.tsx +45 -0
  135. package/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.ts +6 -0
  136. package/package.json +19 -7
  137. package/pages/SceneDataPage.tsx +1 -1
@@ -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,7 @@
1
+ type State = 'idle' | 'loading' | 'notFound' | 'failure' | 'success';
2
+ export declare function SingleResultStatus({ state, value }: {
3
+ state: State;
4
+ value?: string;
5
+ }): import("react").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=SingleResultStatus.d.ts.map
@@ -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;;"}
@@ -2,10 +2,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { act, cleanup, render, screen } from '@testing-library/react';
3
3
  import { vi } from 'vitest';
4
4
  import { externalComponent } from '../../given';
5
- class InvoicesForProject {
6
- }
7
- class AnotherQuery {
8
- }
5
+ let InvoicesForProject;
6
+ let AnotherQuery;
9
7
  describe('when forwarding query arguments', () => {
10
8
  const suppliedId = 'project-with-an-explicit-id';
11
9
  const received = vi.fn();
@@ -20,6 +18,8 @@ describe('when forwarding query arguments', () => {
20
18
  return _jsx("div", { "data-testid": 'query-table' });
21
19
  },
22
20
  }));
21
+ ({ Snapshot: InvoicesForProject } = await import('../../bindings/for_requireArcProxy/NativeProxies'));
22
+ AnotherQuery = InvoicesForProject;
23
23
  bindings = await import('../../bindings');
24
24
  bindings.clearBindings();
25
25
  bindings.registerQuery('InvoicesForProject', InvoicesForProject);
@@ -1 +1 @@
1
- {"version":3,"file":"when_forwarding_query_arguments.js","sourceRoot":"","sources":["../../../../data/for_SceneDataTable/when_forwarding_query_arguments.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"when_forwarding_query_arguments.js","sourceRoot":"","sources":["../../../../data/for_SceneDataTable/when_forwarding_query_arguments.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=when_executing_a_native_query.d.ts.map
@@ -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":""}
@@ -0,0 +1,255 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { act, cleanup, render, screen, waitFor } from '@testing-library/react';
3
+ import { expect, vi } from 'vitest';
4
+ import { StrictMode } from 'react';
5
+ import { ArcContext } from '@cratis/arc.react';
6
+ import { QueryFor, QueryHttpMethod, QueryValidator } from '@cratis/arc/queries';
7
+ import { clearBindings, registerQuery } from '../../bindings';
8
+ import { externalComponent } from '../../given';
9
+ import { SceneSingleResult } from '../SceneSingleResult';
10
+ class ProjectName extends QueryFor {
11
+ route = '/projects/{projectId}/name';
12
+ parameterDescriptors = [];
13
+ requiredRequestParameters = ['projectId'];
14
+ defaultValue = undefined;
15
+ constructor() {
16
+ super(Object, false);
17
+ this.setHttpMethod(QueryHttpMethod.Get);
18
+ }
19
+ }
20
+ class ProjectNames extends QueryFor {
21
+ route = '/projects';
22
+ parameterDescriptors = [];
23
+ requiredRequestParameters = [];
24
+ defaultValue = [];
25
+ constructor() { super(Object, true); }
26
+ }
27
+ class ProjectArgumentsValidator extends QueryValidator {
28
+ static received;
29
+ constructor() {
30
+ super();
31
+ this.ruleFor(args => {
32
+ ProjectArgumentsValidator.received = args;
33
+ return args.projectId;
34
+ }).minLength(2);
35
+ }
36
+ }
37
+ class ValidatedProjectName extends ProjectName {
38
+ validation = new ProjectArgumentsValidator();
39
+ }
40
+ function envelope(data, overrides = {}) {
41
+ return {
42
+ data, isSuccess: true, isAuthorized: true, isValid: true, hasExceptions: false,
43
+ validationResults: [], exceptionMessages: [], exceptionStackTrace: '',
44
+ paging: { page: 0, size: 0, totalItems: 0, totalPages: 0 }, ...overrides,
45
+ };
46
+ }
47
+ function response(data, overrides = {}) {
48
+ return { ok: true, status: 200, json: async () => envelope(data, overrides) };
49
+ }
50
+ function deferred() {
51
+ let resolve;
52
+ let reject;
53
+ const promise = new Promise((yes, no) => { resolve = yes; reject = no; });
54
+ return { promise, resolve, reject };
55
+ }
56
+ describe('when executing an optional single result with native Arc 22.16.1', () => {
57
+ const headers = () => ({ 'x-host': 'one' });
58
+ const context = { microservice: 'projects', origin: 'https://example.test', apiBasePath: '/backend', httpHeadersCallback: headers };
59
+ const fetch = vi.fn();
60
+ function view(queryArguments = { projectId: 'A' }, arc = context, properties = {}) {
61
+ return _jsx(ArcContext.Provider, { value: arc, children: _jsx(SceneSingleResult, { element: externalComponent('Cratis.Components:singleResult', {
62
+ query: 'ProjectName', queryArguments, enabled: true, resultField: 'name', ...properties,
63
+ }), slots: {} }) });
64
+ }
65
+ beforeEach(() => {
66
+ clearBindings();
67
+ registerQuery('ProjectName', ProjectName);
68
+ registerQuery('ProjectNames', ProjectNames);
69
+ registerQuery('ValidatedProjectName', ValidatedProjectName);
70
+ fetch.mockReset();
71
+ vi.stubGlobal('fetch', fetch);
72
+ });
73
+ afterEach(() => {
74
+ cleanup();
75
+ clearBindings();
76
+ vi.unstubAllGlobals();
77
+ });
78
+ it('uses the native URL, arguments and context headers without changing the host object', async () => {
79
+ const args = Object.freeze({ projectId: 'AA', locale: 'en' });
80
+ fetch.mockResolvedValue(response({ name: '<b>Project A</b>' }));
81
+ await act(async () => { render(view(args, context, { query: 'ValidatedProjectName' })); });
82
+ expect(await screen.findByText('<b>Project A</b>')).not.toBeNull();
83
+ expect(document.querySelector('b')).toBeNull();
84
+ expect(fetch).toHaveBeenCalledTimes(1);
85
+ const [url, init] = fetch.mock.calls[0];
86
+ expect(String(url)).toBe('https://example.test/backend/projects/AA/name?locale=en');
87
+ expect(ProjectArgumentsValidator.received).toBe(args);
88
+ expect(new Headers(init?.headers).get('x-host')).toBe('one');
89
+ expect(new Headers(init?.headers).get('x-cratis-microservice')).toBe('projects');
90
+ expect(args).toEqual({ projectId: 'AA', locale: 'en' });
91
+ });
92
+ for (const value of [false, 0, '']) {
93
+ it(`renders scalar own-field ${JSON.stringify(value)} as present`, async () => {
94
+ fetch.mockResolvedValue(response({ name: value }));
95
+ await act(async () => { render(view()); });
96
+ await waitFor(() => expect(screen.getByRole('status').getAttribute('data-scene-single-result')).toBe('success'));
97
+ expect(screen.getByRole('status').textContent).toBe(String(value));
98
+ });
99
+ }
100
+ for (const data of [null, undefined]) {
101
+ it(`shows not found for successful ${String(data)}`, async () => {
102
+ fetch.mockResolvedValue(response(data));
103
+ await act(async () => { render(view()); });
104
+ expect(await screen.findByText('Not found')).not.toBeNull();
105
+ });
106
+ }
107
+ for (const failure of [{ isSuccess: false }, { isAuthorized: false }, { isValid: false }, { hasExceptions: true }]) {
108
+ it(`prioritizes failure over missing data: ${JSON.stringify(failure)}`, async () => {
109
+ fetch.mockResolvedValue(response(null, { ...failure, exceptionMessages: ['secret'], exceptionStackTrace: 'server stack' }));
110
+ await act(async () => { render(view()); });
111
+ expect(await screen.findByRole('alert')).toHaveProperty('textContent', 'Unable to load result');
112
+ expect(screen.queryByText('Not found')).toBeNull();
113
+ expect(document.body.textContent).not.toMatch(/secret|server stack/);
114
+ });
115
+ }
116
+ for (const args of [{}, { projectId: '' }, { projectId: null }, [], null, 'A', undefined]) {
117
+ it(`does not send invalid or missing arguments: ${JSON.stringify(args)}`, async () => {
118
+ await act(async () => { render(view(args, context, { queryArguments: args })); });
119
+ expect(await screen.findByRole('alert')).not.toBeNull();
120
+ expect(fetch).not.toHaveBeenCalled();
121
+ });
122
+ }
123
+ it('lets the native proxy validator reject arguments without HTTP', async () => {
124
+ await act(async () => { render(view({ projectId: 'A' }, context, { query: 'ValidatedProjectName' })); });
125
+ expect(await screen.findByRole('alert')).not.toBeNull();
126
+ expect(fetch).not.toHaveBeenCalled();
127
+ });
128
+ for (const enabled of [false, undefined, 'true']) {
129
+ it(`is idle unless explicitly enabled: ${String(enabled)}`, async () => {
130
+ await act(async () => { render(view({ projectId: 'A' }, context, { enabled })); });
131
+ expect(screen.getByText('Idle')).not.toBeNull();
132
+ expect(fetch).not.toHaveBeenCalled();
133
+ });
134
+ }
135
+ it('never chooses another query when the binding is missing', async () => {
136
+ await act(async () => { render(view({}, context, { query: 'Missing' })); });
137
+ expect(screen.getByText(/Unresolved query binding 'Missing'/)).not.toBeNull();
138
+ expect(fetch).not.toHaveBeenCalled();
139
+ });
140
+ it('aborts A and ignores reverse completion when the transport ignores abort', async () => {
141
+ const a = deferred();
142
+ const b = deferred();
143
+ fetch.mockReturnValueOnce(a.promise).mockReturnValueOnce(b.promise);
144
+ let mounted;
145
+ await act(async () => { mounted = render(view()); });
146
+ expect(screen.getByText('Loading')).not.toBeNull();
147
+ const signal = fetch.mock.calls[0][1]?.signal;
148
+ await act(async () => { mounted.rerender(view({ projectId: 'B' })); });
149
+ expect(signal?.aborted).toBe(true);
150
+ await act(async () => { b.resolve(response({ name: 'B' })); });
151
+ expect(screen.getByText('B')).not.toBeNull();
152
+ await act(async () => { a.resolve(response({ name: 'A' })); });
153
+ expect(screen.queryByText('A')).toBeNull();
154
+ expect(screen.getByText('B')).not.toBeNull();
155
+ });
156
+ it('hides a settled A immediately on B and aborts B on disposal', async () => {
157
+ const b = deferred();
158
+ fetch.mockResolvedValueOnce(response({ name: 'A' })).mockReturnValueOnce(b.promise);
159
+ let mounted;
160
+ await act(async () => { mounted = render(view()); });
161
+ expect(screen.getByText('A')).not.toBeNull();
162
+ await act(async () => { mounted.rerender(view({ projectId: 'B' })); });
163
+ expect(screen.queryByText('A')).toBeNull();
164
+ expect(screen.getByText('Loading')).not.toBeNull();
165
+ mounted.unmount();
166
+ expect(fetch.mock.calls[1][1]?.signal?.aborted).toBe(true);
167
+ await act(async () => { b.reject(new DOMException('Aborted', 'AbortError')); });
168
+ });
169
+ it('reexecutes for header-only context changes and ignores the old response', async () => {
170
+ const a = deferred();
171
+ const b = deferred();
172
+ const args = { projectId: 'A' };
173
+ fetch.mockReturnValueOnce(a.promise).mockReturnValueOnce(b.promise);
174
+ let mounted;
175
+ await act(async () => { mounted = render(view(args)); });
176
+ await act(async () => { mounted.rerender(view(args, { ...context, httpHeadersCallback: () => ({ 'x-host': 'two' }) })); });
177
+ expect(fetch.mock.calls[0][1]?.signal?.aborted).toBe(true);
178
+ expect(new Headers(fetch.mock.calls[1][1]?.headers).get('x-host')).toBe('two');
179
+ await act(async () => { b.resolve(response({ name: 'New context' })); a.resolve(response({ name: 'Old context' })); });
180
+ expect(screen.getByText('New context')).not.toBeNull();
181
+ expect(screen.queryByText('Old context')).toBeNull();
182
+ });
183
+ it('rejects enumerable proxies before HTTP rather than adapting them to a single model', async () => {
184
+ await act(async () => { render(view({}, context, { query: 'ProjectNames' })); });
185
+ expect(await screen.findByRole('alert')).not.toBeNull();
186
+ expect(fetch).not.toHaveBeenCalled();
187
+ });
188
+ it('handles StrictMode disposal without an unhandled abort promise', async () => {
189
+ const a = deferred();
190
+ const b = deferred();
191
+ fetch.mockReturnValueOnce(a.promise).mockReturnValueOnce(b.promise);
192
+ await act(async () => { render(_jsx(StrictMode, { children: view() })); });
193
+ expect(fetch).toHaveBeenCalledTimes(2);
194
+ expect(fetch.mock.calls[0][1]?.signal?.aborted).toBe(true);
195
+ await act(async () => {
196
+ a.reject(new DOMException('Aborted', 'AbortError'));
197
+ b.resolve(response({ name: 'Current generation' }));
198
+ });
199
+ expect(screen.getByText('Current generation')).not.toBeNull();
200
+ });
201
+ it('ignores successful completion after unmount even if HTTP ignores abort', async () => {
202
+ const pending = deferred();
203
+ fetch.mockReturnValueOnce(pending.promise);
204
+ let mounted;
205
+ await act(async () => { mounted = render(view()); });
206
+ mounted.unmount();
207
+ expect(fetch.mock.calls[0][1]?.signal?.aborted).toBe(true);
208
+ await act(async () => { pending.resolve(response({ name: 'Disposed' })); });
209
+ expect(screen.queryByText('Disposed')).toBeNull();
210
+ });
211
+ it('turns transport rejection and malformed envelopes into safe failure', async () => {
212
+ fetch.mockRejectedValueOnce(new Error('private network detail'));
213
+ let mounted;
214
+ await act(async () => { mounted = render(view()); });
215
+ expect(await screen.findByRole('alert')).toHaveProperty('textContent', 'Unable to load result');
216
+ fetch.mockResolvedValueOnce({ ok: false, status: 500, json: async () => ({}) });
217
+ await act(async () => { mounted.rerender(view({ projectId: 'B' })); });
218
+ expect(await screen.findByRole('alert')).toHaveProperty('textContent', 'Unable to load result');
219
+ expect(document.body.textContent).not.toContain('private network detail');
220
+ });
221
+ it('aborts and clears a pending request when disabled', async () => {
222
+ const pending = deferred();
223
+ fetch.mockReturnValueOnce(pending.promise);
224
+ let mounted;
225
+ await act(async () => { mounted = render(view()); });
226
+ await act(async () => { mounted.rerender(view({ projectId: 'A' }, context, { enabled: false })); });
227
+ expect(fetch.mock.calls[0][1]?.signal?.aborted).toBe(true);
228
+ await act(async () => { pending.resolve(response({ name: 'Obsolete' })); });
229
+ expect(screen.getByText('Idle')).not.toBeNull();
230
+ expect(screen.queryByText('Obsolete')).toBeNull();
231
+ });
232
+ for (const change of [{ origin: 'https://other.test' }, { apiBasePath: '/v2' }, { microservice: 'other' }, { queryVersion: 1 }]) {
233
+ it(`invalidates a settled result after context changes: ${JSON.stringify(change)}`, async () => {
234
+ const pending = deferred();
235
+ const args = { projectId: 'A' };
236
+ fetch.mockResolvedValueOnce(response({ name: 'Old' })).mockReturnValueOnce(pending.promise);
237
+ let mounted;
238
+ await act(async () => { mounted = render(view(args)); });
239
+ await act(async () => { mounted.rerender(view(args, { ...context, ...change })); });
240
+ expect(screen.queryByText('Old')).toBeNull();
241
+ expect(screen.getByText('Loading')).not.toBeNull();
242
+ expect(fetch).toHaveBeenCalledTimes(2);
243
+ await act(async () => { pending.resolve(response({ name: 'New' })); });
244
+ expect(screen.getByText('New')).not.toBeNull();
245
+ });
246
+ }
247
+ for (const data of [{ name: {} }, { name: [] }, {}, Object.create({ name: 'Inherited' }), [{ name: 'A' }]]) {
248
+ it(`rejects non-scalar or absent own fields: ${JSON.stringify(data)}`, async () => {
249
+ fetch.mockResolvedValue(response(data));
250
+ await act(async () => { render(view()); });
251
+ expect(await screen.findByRole('alert')).not.toBeNull();
252
+ });
253
+ }
254
+ });
255
+ //# sourceMappingURL=when_executing_a_native_query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"when_executing_a_native_query.js","sourceRoot":"","sources":["../../../../data/for_SceneSingleResult/when_executing_a_native_query.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,UAAU,EAAyB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAY,SAAQ,QAAmD;IAChE,KAAK,GAAG,4BAA4B,CAAC;IACrC,oBAAoB,GAAG,EAAE,CAAC;IAC1B,yBAAyB,GAAG,CAAC,WAAW,CAAC,CAAC;IACnD,YAAY,GAAG,SAAS,CAAC;IAEzB;QACI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;CACJ;AAED,MAAM,YAAa,SAAQ,QAAkB;IAChC,KAAK,GAAG,WAAW,CAAC;IACpB,oBAAoB,GAAG,EAAE,CAAC;IAC1B,yBAAyB,GAAG,EAAE,CAAC;IACxC,YAAY,GAAG,EAAE,CAAC;IAElB,gBAAgB,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;CACzC;AAED,MAAM,yBAA0B,SAAQ,cAAqC;IACzE,MAAM,CAAC,QAAQ,CAAU;IAEzB;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAChB,yBAAyB,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC1C,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;CACJ;AAED,MAAM,oBAAqB,SAAQ,WAAW;IACjC,UAAU,GAAG,IAAI,yBAAyB,EAAE,CAAC;CACzD;AAED,SAAS,QAAQ,CAAC,IAAa,EAAE,SAAS,GAA4B,EAAE;IACpE,OAAO;QACH,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK;QAC9E,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE;QACrE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,GAAG,SAAS;KAC3E,CAAC;AACN,CAAC;AAED,SAAS,QAAQ,CAAC,IAAa,EAAE,SAAS,GAA4B,EAAE;IACpE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,EAAc,CAAC;AAC9F,CAAC;AAED,SAAS,QAAQ;IACb,IAAI,OAAmC,CAAC;IACxC,IAAI,MAAiC,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAW,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACxC,CAAC;AAED,QAAQ,CAAC,kEAAkE,EAAE,GAAG,EAAE;IAC9E,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAqB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,sBAAsB,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC;IACtJ,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,EAA2B,CAAC;IAE/C,SAAS,IAAI,CAAC,cAAc,GAAY,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,OAAO,EAAE,UAAU,GAA4B,EAAE;QAC/G,OAAO,KAAC,UAAU,CAAC,QAAQ,IAAC,KAAK,EAAE,GAAG,YAClC,KAAC,iBAAiB,IAAC,OAAO,EAAE,iBAAiB,CAAC,gCAAgC,EAAE;oBAC5E,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,UAAU;iBAC1F,CAAC,EAAE,KAAK,EAAE,EAAE,GAAI,GACC,CAAC;IAC3B,CAAC;IAED,UAAU,CAAC,GAAG,EAAE;QACZ,aAAa,EAAE,CAAC;QAChB,aAAa,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAC1C,aAAa,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAC5C,aAAa,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;QAC5D,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,OAAO,EAAE,CAAC;QACV,aAAa,EAAE,CAAC;QAChB,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qFAAqF,EAAE,KAAK,IAAI,EAAE;QACjG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAChE,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,MAAM,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACnE,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACpF,MAAM,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjF,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACjC,EAAE,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;YAC1E,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACnD,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACjH,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;QACnC,EAAE,CAAC,kCAAkC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YAC5D,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAChE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACjH,EAAE,CAAC,0CAA0C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YAC/E,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,iBAAiB,EAAE,CAAC,QAAQ,CAAC,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;YAC5H,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;YAChG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;QACxF,EAAE,CAAC,+CAA+C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YACjF,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClF,MAAM,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACxD,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzG,MAAM,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,OAAO,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;QAC/C,EAAE,CAAC,sCAAsC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9E,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;QACrB,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,OAAmC,CAAC;QACxC,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAC9C,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7C,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;QACrB,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACpF,IAAI,OAAmC,CAAC;QACxC,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7C,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACnD,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;QAChC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,OAAmC,CAAC;QACxC,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3H,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/E,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvH,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;QACrB,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,CAAC,KAAC,UAAU,cAAE,IAAI,EAAE,GAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;YACjB,CAAC,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;YACpD,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC;QAC3B,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,OAAmC,CAAC;QACxC,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACjF,KAAK,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACjE,IAAI,OAAmC,CAAC;QACxC,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;QAChG,KAAK,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAc,CAAC,CAAC;QAC5F,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;QAChG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC;QAC3B,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,OAAmC,CAAC;QACxC,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9H,EAAE,CAAC,uDAAuD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YAC3F,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;YAChC,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5F,IAAI,OAAmC,CAAC;YACxC,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;QACzG,EAAE,CAAC,4CAA4C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YAC9E,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC5D,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=when_gating_the_lazy_runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"when_gating_the_lazy_runtime.d.ts","sourceRoot":"","sources":["../../../../data/for_SceneSingleResult/when_gating_the_lazy_runtime.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { act, cleanup, render, screen } from '@testing-library/react';
3
+ import { expect, vi } from 'vitest';
4
+ import { externalComponent } from '../../given';
5
+ class RegisteredQuery {
6
+ }
7
+ describe('when gating the single result lazy runtime', () => {
8
+ const loaded = vi.fn();
9
+ let SceneSingleResult;
10
+ let bindings;
11
+ beforeEach(async () => {
12
+ vi.resetModules();
13
+ loaded.mockClear();
14
+ vi.doMock('../SingleResultRuntime', () => {
15
+ loaded();
16
+ return { default: () => _jsx("span", { children: "Runtime mounted" }) };
17
+ });
18
+ bindings = await import('../../bindings');
19
+ bindings.clearBindings();
20
+ bindings.registerQuery('Registered', RegisteredQuery);
21
+ ({ SceneSingleResult } = await import('../SceneSingleResult'));
22
+ });
23
+ afterEach(() => {
24
+ cleanup();
25
+ bindings.clearBindings();
26
+ vi.doUnmock('../SingleResultRuntime');
27
+ vi.resetModules();
28
+ });
29
+ for (const properties of [
30
+ { query: 'Missing', enabled: true, queryArguments: {}, resultField: 'name' },
31
+ { query: 'Registered', queryArguments: {}, resultField: 'name' },
32
+ { query: 'Registered', enabled: true, queryArguments: [], resultField: 'name' },
33
+ { query: 'Registered', enabled: true, queryArguments: {}, resultField: '' },
34
+ ]) {
35
+ it(`does not import Arc-bound code for ${JSON.stringify(properties)}`, async () => {
36
+ await act(async () => {
37
+ render(_jsx(SceneSingleResult, { element: externalComponent('Cratis.Components:singleResult', properties), slots: {} }));
38
+ });
39
+ expect(loaded).not.toHaveBeenCalled();
40
+ expect(screen.queryByText('Runtime mounted')).toBeNull();
41
+ expect(document.body.textContent).toMatch(/Unresolved query binding|Idle|Unable to load result/);
42
+ });
43
+ }
44
+ it('loads only the explicitly bound and enabled view', async () => {
45
+ await act(async () => {
46
+ render(_jsx(SceneSingleResult, { element: externalComponent('Cratis.Components:singleResult', {
47
+ query: 'Registered', enabled: true, queryArguments: {}, resultField: 'name',
48
+ }), slots: {} }));
49
+ });
50
+ expect(await screen.findByText('Runtime mounted')).not.toBeNull();
51
+ expect(loaded).toHaveBeenCalledTimes(1);
52
+ });
53
+ });
54
+ //# sourceMappingURL=when_gating_the_lazy_runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"when_gating_the_lazy_runtime.js","sourceRoot":"","sources":["../../../../data/for_SceneSingleResult/when_gating_the_lazy_runtime.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export * from './SceneSingleResult';
1
2
  export * from './SceneDataTable';
2
3
  export * from './SceneObservableDataTable';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../data/index.ts"],"names":[],"mappings":"AAGA,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../data/index.ts"],"names":[],"mappings":"AAGA,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from './SceneSingleResult';
1
2
  export * from './SceneDataTable';
2
3
  export * from './SceneObservableDataTable';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../data/index.ts"],"names":[],"mappings":"AAGA,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../data/index.ts"],"names":[],"mappings":"AAGA,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC"}
@@ -7,7 +7,7 @@ import { ArcRuntimeBoundary } from '../bindings/ArcRuntimeBoundary.js';
7
7
  import { stringProperty, booleanProperty } from '../properties.js';
8
8
 
9
9
  const CommandDialog = /*#__PURE__*/ lazy(async ()=>({
10
- default: (await import('@cratis/components/CommandDialog')).CommandDialog
10
+ default: (await import('../bindings/ArcBoundComponents.js')).BoundCommandDialog
11
11
  }));
12
12
  /**
13
13
  * The `Cratis.Components:commandDialog` component - `CommandDialog` from `@cratis/components/CommandDialog`.