@cratis/scene.components 3.4.0 → 3.6.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 +87 -3
- package/bindings/ArcBoundComponents.tsx +40 -0
- package/bindings/BoundConstructor.ts +5 -5
- package/bindings/bindingRegistry.ts +52 -4
- package/bindings/for_bindingRegistry/when_registering_query_identities.ts +81 -0
- package/bindings/for_requireArcProxy/NativeProxies.ts +28 -0
- package/bindings/for_requireArcProxy/when_mounting_bound_adapters.tsx +73 -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 +4 -1
- package/cratisComponentsPackage.ts +3 -1
- package/data/SceneDataTable.tsx +1 -1
- package/data/SceneObservableDataTable.tsx +1 -1
- package/data/SceneSingleResult.tsx +29 -0
- package/data/SingleResultRuntime.tsx +103 -0
- package/data/SingleResultStatus.tsx +13 -0
- package/data/for_SceneDataTable/when_forwarding_query_arguments.tsx +23 -2
- 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/bindingRegistry.js +52 -4
- package/dist/cjs/bindings/bindingRegistry.js.map +1 -1
- package/dist/cjs/bindings/requireArcProxy.js +25 -0
- package/dist/cjs/bindings/requireArcProxy.js.map +1 -0
- package/dist/cjs/cratisComponents.js +4 -0
- package/dist/cjs/cratisComponents.js.map +1 -1
- package/dist/cjs/cratisComponentsPackage.js +3 -1
- package/dist/cjs/cratisComponentsPackage.js.map +1 -1
- package/dist/cjs/data/SceneDataTable.js +1 -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 +137 -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/SceneQueryInputForm.js +141 -0
- package/dist/cjs/forms/SceneQueryInputForm.js.map +1 -0
- package/dist/cjs/forms/fields/SceneRadioButtonField.js +4 -1
- package/dist/cjs/forms/fields/SceneRadioButtonField.js.map +1 -1
- package/dist/cjs/forms/queryInputs.js +50 -0
- package/dist/cjs/forms/queryInputs.js.map +1 -0
- package/dist/cjs/index.js +8 -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/bindingRegistry.d.ts +4 -0
- package/dist/esm/bindings/bindingRegistry.d.ts.map +1 -1
- package/dist/esm/bindings/bindingRegistry.js +49 -5
- package/dist/esm/bindings/bindingRegistry.js.map +1 -1
- package/dist/esm/bindings/for_bindingRegistry/when_registering_query_identities.d.ts +2 -0
- package/dist/esm/bindings/for_bindingRegistry/when_registering_query_identities.d.ts.map +1 -0
- package/dist/esm/bindings/for_bindingRegistry/when_registering_query_identities.js +73 -0
- package/dist/esm/bindings/for_bindingRegistry/when_registering_query_identities.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 +4 -0
- package/dist/esm/cratisComponents.js.map +1 -1
- package/dist/esm/cratisComponentsPackage.d.ts.map +1 -1
- package/dist/esm/cratisComponentsPackage.js +3 -1
- package/dist/esm/cratisComponentsPackage.js.map +1 -1
- package/dist/esm/data/SceneDataTable.js +1 -1
- 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 +10 -0
- package/dist/esm/data/SingleResultRuntime.d.ts.map +1 -0
- package/dist/esm/data/SingleResultRuntime.js +133 -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.js +21 -4
- package/dist/esm/data/for_SceneDataTable/when_forwarding_query_arguments.js.map +1 -1
- 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_input_form.d.ts +2 -0
- package/dist/esm/for_cratisComponentsPackage/when_describing_query_input_form.d.ts.map +1 -0
- package/dist/esm/for_cratisComponentsPackage/when_describing_query_input_form.js +14 -0
- package/dist/esm/for_cratisComponentsPackage/when_describing_query_input_form.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/SceneQueryInputForm.d.ts +3 -0
- package/dist/esm/forms/SceneQueryInputForm.d.ts.map +1 -0
- package/dist/esm/forms/SceneQueryInputForm.js +139 -0
- package/dist/esm/forms/SceneQueryInputForm.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/forms/for_SceneQueryInputForm/ProjectLookup.d.ts +26 -0
- package/dist/esm/forms/for_SceneQueryInputForm/ProjectLookup.d.ts.map +1 -0
- package/dist/esm/forms/for_SceneQueryInputForm/ProjectLookup.js +44 -0
- package/dist/esm/forms/for_SceneQueryInputForm/ProjectLookup.js.map +1 -0
- package/dist/esm/forms/for_SceneQueryInputForm/when_submitting_generated_guid_parameters.d.ts +2 -0
- package/dist/esm/forms/for_SceneQueryInputForm/when_submitting_generated_guid_parameters.d.ts.map +1 -0
- package/dist/esm/forms/for_SceneQueryInputForm/when_submitting_generated_guid_parameters.js +175 -0
- package/dist/esm/forms/for_SceneQueryInputForm/when_submitting_generated_guid_parameters.js.map +1 -0
- package/dist/esm/forms/for_SceneQueryInputForm/when_submitting_native_queries.d.ts +2 -0
- package/dist/esm/forms/for_SceneQueryInputForm/when_submitting_native_queries.d.ts.map +1 -0
- package/dist/esm/forms/for_SceneQueryInputForm/when_submitting_native_queries.js +413 -0
- package/dist/esm/forms/for_SceneQueryInputForm/when_submitting_native_queries.js.map +1 -0
- package/dist/esm/forms/index.d.ts +2 -0
- package/dist/esm/forms/index.d.ts.map +1 -1
- package/dist/esm/forms/index.js +1 -0
- package/dist/esm/forms/index.js.map +1 -1
- package/dist/esm/forms/queryInputs.d.ts +10 -0
- package/dist/esm/forms/queryInputs.d.ts.map +1 -0
- package/dist/esm/forms/queryInputs.js +47 -0
- package/dist/esm/forms/queryInputs.js.map +1 -0
- package/dist/esm/index.js +3 -1
- 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_input_form.ts +17 -0
- package/for_cratisComponentsPackage/when_describing_single_result.ts +20 -0
- package/forms/SceneQueryInputForm.tsx +79 -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/forms/for_SceneQueryInputForm/ProjectLookup.ts +54 -0
- package/forms/for_SceneQueryInputForm/when_submitting_generated_guid_parameters.tsx +188 -0
- package/forms/for_SceneQueryInputForm/when_submitting_native_queries.tsx +423 -0
- package/forms/index.ts +2 -0
- package/forms/queryInputs.ts +50 -0
- package/package.json +23 -7
- package/pages/SceneDataPage.tsx +1 -1
|
@@ -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":"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"}
|
|
@@ -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":";AAGA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,eAAe;CAAG;AAExB,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;IACxD,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IACvB,IAAI,iBAA0E,CAAC;IAC/E,IAAI,QAAyC,CAAC;IAE9C,UAAU,CAAC,KAAK,IAAI,EAAE;QAClB,EAAE,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,EAAE,CAAC,MAAM,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACrC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,6CAA4B,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,QAAQ,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC1C,QAAQ,CAAC,aAAa,EAAE,CAAC;QACzB,QAAQ,CAAC,aAAa,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QACtD,CAAC,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,OAAO,EAAE,CAAC;QACV,QAAQ,CAAC,aAAa,EAAE,CAAC;QACzB,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;QACtC,EAAE,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,UAAU,IAAI;QACrB,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;QAC5E,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;QAChE,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;QAC/E,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;KAC9E,EAAE,CAAC;QACA,EAAE,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YAC9E,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;gBACjB,MAAM,CAAC,KAAC,iBAAiB,IAAC,OAAO,EAAE,iBAAiB,CAAC,gCAAgC,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,GAAI,CAAC,CAAC;YACvH,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC;QACrG,CAAC,CAAC,CAAC;IACP,CAAC;IAED,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;YACjB,MAAM,CAAC,KAAC,iBAAiB,IAAC,OAAO,EAAE,iBAAiB,CAAC,gCAAgC,EAAE;oBACnF,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM;iBAC9E,CAAC,EAAE,KAAK,EAAE,EAAE,GAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClE,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
package/dist/esm/data/index.d.ts
CHANGED
|
@@ -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"}
|
package/dist/esm/data/index.js
CHANGED
|
@@ -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('
|
|
10
|
+
default: (await import('../bindings/ArcBoundComponents.js')).BoundCommandDialog
|
|
11
11
|
}));
|
|
12
12
|
/**
|
|
13
13
|
* The `Cratis.Components:commandDialog` component - `CommandDialog` from `@cratis/components/CommandDialog`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneCommandDialog.js","sources":["../../../dialogs/SceneCommandDialog.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, stringProperty } from '../properties';\n\nconst CommandDialog = lazy(async () => ({ default: (await import('
|
|
1
|
+
{"version":3,"file":"SceneCommandDialog.js","sources":["../../../dialogs/SceneCommandDialog.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, stringProperty } from '../properties';\n\nconst CommandDialog = lazy(async () => ({ default: (await import('../bindings/ArcBoundComponents')).BoundCommandDialog }));\n\n/**\n * The `Cratis.Components:commandDialog` component - `CommandDialog` from `@cratis/components/CommandDialog`.\n *\n * A dialog whose confirm button *is* the command's execution: it binds the form to the command, submits\n * on confirm, feeds the backend's validation results back onto the fields, and only closes when the\n * command succeeded. That last part is the reason to use it rather than composing `dialog` with\n * `commandForm` - a hand-composed pair has no way to keep the dialog open on a rejected command without\n * reimplementing the protocol.\n *\n * The `command` property names an Arc command proxy; the fields go in the `content` slot.\n *\n * `dismissable` and `closeAriaLabel` are here rather than on `dialog` alone because `CommandDialog`\n * forwards both to the dialog it wraps, and in `@cratis/components` 3.0.0 that forwarding actually\n * happens - 2.x accepted the two props and dropped them on the floor. `dismissable` matters more on a\n * command dialog than anywhere else: it decides whether a half-filled form can be abandoned with\n * `Escape` or a backdrop click, which is a decision about the command, not about the chrome.\n *\n * The `resizable` property this adapter used to carry is gone. It is still declared upstream so call\n * sites compile, but PrimeReact 11's headless dialog has no resize handle and nothing reads the prop.\n */\nexport function SceneCommandDialog({ element, slots }: RegisteredComponentProps) {\n const { name, target } = resolveElementBinding(element, BindingKind.Command);\n if (!target) return <MissingBinding element={element} kind={BindingKind.Command} name={name} />;\n\n return (\n <ArcRuntimeBoundary>\n <CommandDialog\n title={stringProperty(element.properties, 'title') ?? ''}\n command={target}\n visible={booleanProperty(element.properties, 'visible') ?? true}\n width={stringProperty(element.properties, 'width')}\n dismissable={booleanProperty(element.properties, 'dismissable')}\n okLabel={stringProperty(element.properties, 'okLabel')}\n cancelLabel={stringProperty(element.properties, 'cancelLabel')}\n closeAriaLabel={stringProperty(element.properties, 'closeAriaLabel')}\n className={stringProperty(element.properties, 'className')}\n >\n {slots.content}\n </CommandDialog>\n </ArcRuntimeBoundary>\n );\n}\n"],"names":["CommandDialog","lazy","default","BoundCommandDialog","SceneCommandDialog","element","slots","name","target","resolveElementBinding","BindingKind","Command","_jsx","MissingBinding","kind","ArcRuntimeBoundary","title","stringProperty","properties","command","visible","booleanProperty","width","dismissable","okLabel","cancelLabel","closeAriaLabel","className","content"],"mappings":";;;;;;;;AAQA,MAAMA,aAAAA,iBAAgBC,IAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,mCAAA,CAAgC,EAAGC;KAAmB,CAAA,CAAA;AAEvH;;;;;;;;;;;;;;;;;;;AAmBC,IACM,SAASC,kBAAAA,CAAmB,EAAEC,OAAO,EAAEC,KAAK,EAA4B,EAAA;IAC3E,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAE,GAAGC,qBAAAA,CAAsBJ,OAAAA,EAASK,WAAAA,CAAYC,OAAO,CAAA;IAC3E,IAAI,CAACH,MAAAA,EAAQ,qBAAOI,GAAA,CAACC,cAAAA,EAAAA;QAAeR,OAAAA,EAASA,OAAAA;AAASS,QAAAA,IAAAA,EAAMJ,YAAYC,OAAO;QAAEJ,IAAAA,EAAMA;;AAEvF,IAAA,qBACIK,GAAA,CAACG,kBAAAA,EAAAA;AACG,QAAA,QAAA,gBAAAH,GAAA,CAACZ,aAAAA,EAAAA;AACGgB,YAAAA,KAAAA,EAAOC,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,OAAA,CAAA,IAAY,EAAA;YACtDC,OAAAA,EAASX,MAAAA;AACTY,YAAAA,OAAAA,EAASC,eAAAA,CAAgBhB,OAAAA,CAAQa,UAAU,EAAE,SAAA,CAAA,IAAc,IAAA;YAC3DI,KAAAA,EAAOL,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,OAAA,CAAA;YAC1CK,WAAAA,EAAaF,eAAAA,CAAgBhB,OAAAA,CAAQa,UAAU,EAAE,aAAA,CAAA;YACjDM,OAAAA,EAASP,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,SAAA,CAAA;YAC5CO,WAAAA,EAAaR,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,aAAA,CAAA;YAChDQ,cAAAA,EAAgBT,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,gBAAA,CAAA;YACnDS,SAAAA,EAAWV,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,WAAA,CAAA;AAE7CZ,YAAAA,QAAAA,EAAAA,KAAAA,CAAMsB;;;AAIvB;;"}
|
|
@@ -7,7 +7,7 @@ import { ArcRuntimeBoundary } from '../bindings/ArcRuntimeBoundary.js';
|
|
|
7
7
|
import { stringProperty, booleanProperty, unionProperty } from '../properties.js';
|
|
8
8
|
|
|
9
9
|
const StepperCommandDialog = /*#__PURE__*/ lazy(async ()=>({
|
|
10
|
-
default: (await import('
|
|
10
|
+
default: (await import('../bindings/ArcBoundComponents.js')).BoundStepperCommandDialog
|
|
11
11
|
}));
|
|
12
12
|
/** Whether the step headers run across the top or down the side. */ const orientations = [
|
|
13
13
|
'horizontal',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneStepperCommandDialog.js","sources":["../../../dialogs/SceneStepperCommandDialog.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, stringProperty, unionProperty } from '../properties';\n\nconst StepperCommandDialog = lazy(async () => ({\n default: (await import('
|
|
1
|
+
{"version":3,"file":"SceneStepperCommandDialog.js","sources":["../../../dialogs/SceneStepperCommandDialog.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, stringProperty, unionProperty } from '../properties';\n\nconst StepperCommandDialog = lazy(async () => ({\n default: (await import('../bindings/ArcBoundComponents')).BoundStepperCommandDialog,\n}));\n\n/** Whether the step headers run across the top or down the side. */\nconst orientations = ['horizontal', 'vertical'] as const;\n\n/**\n * The `Cratis.Components:stepperCommandDialog` component - `StepperCommandDialog` from\n * `@cratis/components/CommandDialog`.\n *\n * `commandDialog` split across steps, for a command with more fields than fit one screen. It stays a\n * single command: the steps partition the *fields*, not the intent, and nothing is submitted until the\n * last step - so a half-finished wizard leaves no trace, which is exactly what a command should do.\n *\n * `linear` decides whether a step can be skipped ahead of the one before it. The step panels go in the\n * `content` slot.\n */\nexport function SceneStepperCommandDialog({ element, slots }: RegisteredComponentProps) {\n const { name, target } = resolveElementBinding(element, BindingKind.Command);\n if (!target) return <MissingBinding element={element} kind={BindingKind.Command} name={name} />;\n\n return (\n <ArcRuntimeBoundary>\n <StepperCommandDialog\n title={stringProperty(element.properties, 'title') ?? ''}\n command={target}\n visible={booleanProperty(element.properties, 'visible') ?? true}\n width={stringProperty(element.properties, 'width')}\n linear={booleanProperty(element.properties, 'linear')}\n orientation={unionProperty(element.properties, 'orientation', orientations)}\n okLabel={stringProperty(element.properties, 'okLabel')}\n nextLabel={stringProperty(element.properties, 'nextLabel')}\n previousLabel={stringProperty(element.properties, 'previousLabel')}\n showCancel={booleanProperty(element.properties, 'showCancel')}\n cancelLabel={stringProperty(element.properties, 'cancelLabel')}\n >\n {slots.content}\n </StepperCommandDialog>\n </ArcRuntimeBoundary>\n );\n}\n"],"names":["StepperCommandDialog","lazy","default","BoundStepperCommandDialog","orientations","SceneStepperCommandDialog","element","slots","name","target","resolveElementBinding","BindingKind","Command","_jsx","MissingBinding","kind","ArcRuntimeBoundary","title","stringProperty","properties","command","visible","booleanProperty","width","linear","orientation","unionProperty","okLabel","nextLabel","previousLabel","showCancel","cancelLabel","content"],"mappings":";;;;;;;;AAQA,MAAMA,oBAAAA,iBAAuBC,IAAAA,CAAK,WAAa;AAC3CC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,mCAAA,CAAgC,EAAGC;KAC9D,CAAA,CAAA;AAEA,qEACA,MAAMC,YAAAA,GAAe;AAAC,IAAA,YAAA;AAAc,IAAA;AAAW,CAAA;AAE/C;;;;;;;;;;AAUC,IACM,SAASC,yBAAAA,CAA0B,EAAEC,OAAO,EAAEC,KAAK,EAA4B,EAAA;IAClF,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAE,GAAGC,qBAAAA,CAAsBJ,OAAAA,EAASK,WAAAA,CAAYC,OAAO,CAAA;IAC3E,IAAI,CAACH,MAAAA,EAAQ,qBAAOI,GAAA,CAACC,cAAAA,EAAAA;QAAeR,OAAAA,EAASA,OAAAA;AAASS,QAAAA,IAAAA,EAAMJ,YAAYC,OAAO;QAAEJ,IAAAA,EAAMA;;AAEvF,IAAA,qBACIK,GAAA,CAACG,kBAAAA,EAAAA;AACG,QAAA,QAAA,gBAAAH,GAAA,CAACb,oBAAAA,EAAAA;AACGiB,YAAAA,KAAAA,EAAOC,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,OAAA,CAAA,IAAY,EAAA;YACtDC,OAAAA,EAASX,MAAAA;AACTY,YAAAA,OAAAA,EAASC,eAAAA,CAAgBhB,OAAAA,CAAQa,UAAU,EAAE,SAAA,CAAA,IAAc,IAAA;YAC3DI,KAAAA,EAAOL,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,OAAA,CAAA;YAC1CK,MAAAA,EAAQF,eAAAA,CAAgBhB,OAAAA,CAAQa,UAAU,EAAE,QAAA,CAAA;AAC5CM,YAAAA,WAAAA,EAAaC,aAAAA,CAAcpB,OAAAA,CAAQa,UAAU,EAAE,aAAA,EAAef,YAAAA,CAAAA;YAC9DuB,OAAAA,EAAST,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,SAAA,CAAA;YAC5CS,SAAAA,EAAWV,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,WAAA,CAAA;YAC9CU,aAAAA,EAAeX,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,eAAA,CAAA;YAClDW,UAAAA,EAAYR,eAAAA,CAAgBhB,OAAAA,CAAQa,UAAU,EAAE,YAAA,CAAA;YAChDY,WAAAA,EAAab,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,aAAA,CAAA;AAE/CZ,YAAAA,QAAAA,EAAAA,KAAAA,CAAMyB;;;AAIvB;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_describing_query_input_form.d.ts","sourceRoot":"","sources":["../../../for_cratisComponentsPackage/when_describing_query_input_form.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { expect } from 'vitest';
|
|
2
|
+
import { SceneQueryInputForm, cratisComponents, cratisComponentsPackageManifest, registerQueryIdentity, resolveExactQuery } from '../index';
|
|
3
|
+
describe('when describing the query input form public API', () => {
|
|
4
|
+
it('exports and registers the component advertised by the manifest', () => {
|
|
5
|
+
expect(cratisComponentsPackageManifest.components).toContain('queryInputForm');
|
|
6
|
+
expect(cratisComponents['Cratis.Components:queryInputForm']).toBe(SceneQueryInputForm);
|
|
7
|
+
expect(cratisComponentsPackageManifest.description).toContain('commits explicit string inputs on submit');
|
|
8
|
+
expect(registerQueryIdentity).toBeTypeOf('function');
|
|
9
|
+
expect(resolveExactQuery).toBeTypeOf('function');
|
|
10
|
+
const input = { parameter: 'projectId', type: 'string', label: 'Project identifier' };
|
|
11
|
+
expect(input.type).toBe('string');
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=when_describing_query_input_form.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_describing_query_input_form.js","sourceRoot":"","sources":["../../../for_cratisComponentsPackage/when_describing_query_input_form.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,+BAA+B,EAAE,qBAAqB,EAAE,iBAAiB,EAAmB,MAAM,UAAU,CAAC;AAE7J,QAAQ,CAAC,iDAAiD,EAAE,GAAG,EAAE;IAC7D,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACtE,MAAM,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC/E,MAAM,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACvF,MAAM,CAAC,+BAA+B,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,0CAA0C,CAAC,CAAC;QAC1G,MAAM,CAAC,qBAAqB,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,KAAK,GAAe,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;QAClG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_describing_single_result.d.ts","sourceRoot":"","sources":["../../../for_cratisComponentsPackage/when_describing_single_result.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { expect } from 'vitest';
|
|
2
|
+
import { componentRegistryKey } from '@cratis/scene.react';
|
|
3
|
+
import { cratisComponents, cratisComponentsPackageName } from '../cratisComponents';
|
|
4
|
+
import { cratisComponentsPackageManifest } from '../cratisComponentsPackage';
|
|
5
|
+
import { SceneSingleResult } from '../data/SceneSingleResult';
|
|
6
|
+
describe('when describing the single result view', () => {
|
|
7
|
+
it('registers the same component advertised by the manifest', () => {
|
|
8
|
+
expect(cratisComponentsPackageManifest.components).toContain('singleResult');
|
|
9
|
+
expect(cratisComponents[componentRegistryKey(cratisComponentsPackageName, 'singleResult')]).toBe(SceneSingleResult);
|
|
10
|
+
});
|
|
11
|
+
it('describes an explicitly enabled read-only own-field capability', () => {
|
|
12
|
+
expect(cratisComponentsPackageManifest.description).toContain('read-only scalar own resultField');
|
|
13
|
+
expect(cratisComponentsPackageManifest.description).toContain('enabled: true');
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=when_describing_single_result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_describing_single_result.js","sourceRoot":"","sources":["../../../for_cratisComponentsPackage/when_describing_single_result.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;IACpD,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QAC/D,MAAM,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC7E,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,2BAA2B,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACxH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACtE,MAAM,CAAC,+BAA+B,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;QAClG,MAAM,CAAC,+BAA+B,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneQueryInputForm.d.ts","sourceRoot":"","sources":["../../../forms/SceneQueryInputForm.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAS/D,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,EAAE,wBAAwB,+BAgBxE"}
|