@kurot/ui-runtime 0.1.0 → 0.2.1
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 +24 -4
- package/dist/kurot/runtime/applyRuntimeProperty.d.ts +8 -0
- package/dist/kurot/runtime/applyRuntimeProperty.d.ts.map +1 -0
- package/dist/kurot/runtime/applyRuntimeProperty.js +18 -0
- package/dist/kurot/runtime/applyRuntimeProperty.js.map +1 -0
- package/dist/kurot/runtime/builtins/applyComponentProperties.d.ts.map +1 -0
- package/dist/kurot/runtime/builtins/applyComponentProperties.js +114 -0
- package/dist/kurot/runtime/builtins/applyComponentProperties.js.map +1 -0
- package/dist/kurot/runtime/builtins/applyContainerProperties.d.ts +7 -0
- package/dist/kurot/runtime/builtins/applyContainerProperties.d.ts.map +1 -0
- package/dist/kurot/runtime/builtins/applyContainerProperties.js +51 -0
- package/dist/kurot/runtime/builtins/applyContainerProperties.js.map +1 -0
- package/dist/kurot/runtime/builtins/applyControlProperties.d.ts +7 -0
- package/dist/kurot/runtime/builtins/applyControlProperties.d.ts.map +1 -0
- package/dist/kurot/runtime/builtins/applyControlProperties.js +39 -0
- package/dist/kurot/runtime/builtins/applyControlProperties.js.map +1 -0
- package/dist/kurot/runtime/builtins/applyDisplayProperties.d.ts.map +1 -0
- package/dist/kurot/runtime/{applyDisplayProperties.js → builtins/applyDisplayProperties.js} +1 -1
- package/dist/kurot/runtime/builtins/applyDisplayProperties.js.map +1 -0
- package/dist/kurot/runtime/builtins/applyTextProperties.d.ts +7 -0
- package/dist/kurot/runtime/builtins/applyTextProperties.d.ts.map +1 -0
- package/dist/kurot/runtime/builtins/applyTextProperties.js +77 -0
- package/dist/kurot/runtime/builtins/applyTextProperties.js.map +1 -0
- package/dist/kurot/runtime/{componentFactories.d.ts → builtins/componentFactories.d.ts} +1 -1
- package/dist/kurot/runtime/builtins/componentFactories.d.ts.map +1 -0
- package/dist/kurot/runtime/{componentFactories.js → builtins/componentFactories.js} +1 -1
- package/dist/kurot/runtime/builtins/componentFactories.js.map +1 -0
- package/dist/kurot/runtime/createKurotUI.d.ts.map +1 -1
- package/dist/kurot/runtime/createKurotUI.js +28 -51
- package/dist/kurot/runtime/createKurotUI.js.map +1 -1
- package/dist/kurot/runtime/descriptors/createLayout.d.ts.map +1 -0
- package/dist/kurot/runtime/{createLayout.js → descriptors/createLayout.js} +1 -1
- package/dist/kurot/runtime/descriptors/createLayout.js.map +1 -0
- package/dist/kurot/runtime/descriptors/createRectangle.d.ts.map +1 -0
- package/dist/kurot/runtime/{createRectangle.js → descriptors/createRectangle.js} +1 -1
- package/dist/kurot/runtime/descriptors/createRectangle.js.map +1 -0
- package/dist/kurot/runtime/index.d.ts +1 -1
- package/dist/kurot/runtime/index.d.ts.map +1 -1
- package/dist/kurot/runtime/materializeAppearance.d.ts +8 -0
- package/dist/kurot/runtime/materializeAppearance.d.ts.map +1 -0
- package/dist/kurot/runtime/materializeAppearance.js +83 -0
- package/dist/kurot/runtime/materializeAppearance.js.map +1 -0
- package/dist/kurot/runtime/materializeComponentInstance.d.ts +8 -0
- package/dist/kurot/runtime/materializeComponentInstance.d.ts.map +1 -0
- package/dist/kurot/runtime/materializeComponentInstance.js +110 -0
- package/dist/kurot/runtime/materializeComponentInstance.js.map +1 -0
- package/dist/kurot/runtime/materializeNode.d.ts +20 -0
- package/dist/kurot/runtime/materializeNode.d.ts.map +1 -0
- package/dist/kurot/runtime/materializeNode.js +77 -0
- package/dist/kurot/runtime/materializeNode.js.map +1 -0
- package/dist/kurot/runtime/resolvePropertyValue.d.ts +7 -0
- package/dist/kurot/runtime/resolvePropertyValue.d.ts.map +1 -0
- package/dist/kurot/runtime/resolvePropertyValue.js +41 -0
- package/dist/kurot/runtime/resolvePropertyValue.js.map +1 -0
- package/dist/kurot/runtime/states/createReusableComponentStateController.d.ts +7 -0
- package/dist/kurot/runtime/states/createReusableComponentStateController.d.ts.map +1 -0
- package/dist/kurot/runtime/states/createReusableComponentStateController.js +86 -0
- package/dist/kurot/runtime/states/createReusableComponentStateController.js.map +1 -0
- package/dist/kurot/runtime/types.d.ts +65 -5
- package/dist/kurot/runtime/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/dist/kurot/runtime/applyComponentProperties.d.ts.map +0 -1
- package/dist/kurot/runtime/applyComponentProperties.js +0 -205
- package/dist/kurot/runtime/applyComponentProperties.js.map +0 -1
- package/dist/kurot/runtime/applyDisplayProperties.d.ts.map +0 -1
- package/dist/kurot/runtime/applyDisplayProperties.js.map +0 -1
- package/dist/kurot/runtime/componentFactories.d.ts.map +0 -1
- package/dist/kurot/runtime/componentFactories.js.map +0 -1
- package/dist/kurot/runtime/createLayout.d.ts.map +0 -1
- package/dist/kurot/runtime/createLayout.js.map +0 -1
- package/dist/kurot/runtime/createRectangle.d.ts.map +0 -1
- package/dist/kurot/runtime/createRectangle.js.map +0 -1
- /package/dist/kurot/runtime/{applyComponentProperties.d.ts → builtins/applyComponentProperties.d.ts} +0 -0
- /package/dist/kurot/runtime/{applyDisplayProperties.d.ts → builtins/applyDisplayProperties.d.ts} +0 -0
- /package/dist/kurot/runtime/{createLayout.d.ts → descriptors/createLayout.d.ts} +0 -0
- /package/dist/kurot/runtime/{createRectangle.d.ts → descriptors/createRectangle.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -7,21 +7,41 @@ document semantics into the component library.
|
|
|
7
7
|
```ts
|
|
8
8
|
import { createKurotUI } from '@kurot/ui-runtime';
|
|
9
9
|
|
|
10
|
-
const result = createKurotUI(document);
|
|
10
|
+
const result = createKurotUI(document, { assets });
|
|
11
11
|
stage.addChild(result.root);
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
The
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
The runtime supports `kui.Group`, `kui.Label`, `kui.Image`, `kui.Rect`, and
|
|
15
|
+
`kui.Button`, including their audited inherited properties, children, layout
|
|
16
|
+
descriptors, and nine-slice rectangles. Reusable component assets are expanded
|
|
17
|
+
with parameter bindings, variants, part overrides, and projected Slot content.
|
|
18
|
+
Appearance assets become native Kurot skins and states, including the selected
|
|
19
|
+
appearance variant.
|
|
20
|
+
|
|
21
|
+
Version 0.2 performs full-tree creation. It does not yet provide incremental
|
|
22
|
+
reconciliation, bindings, actions, or transitions.
|
|
17
23
|
|
|
18
24
|
The result also provides a stable node lookup for editor selection and event
|
|
19
25
|
wiring:
|
|
20
26
|
|
|
21
27
|
```ts
|
|
22
28
|
const startButton = result.instances.get('startButton');
|
|
29
|
+
const internalLabel = result.instances.get('startButton/label');
|
|
30
|
+
|
|
31
|
+
const state = result.stateControllers.get('startButton');
|
|
32
|
+
state?.setState('disabled');
|
|
33
|
+
state?.clearState();
|
|
23
34
|
```
|
|
24
35
|
|
|
36
|
+
Reusable-component state controllers apply Contract state overrides at runtime
|
|
37
|
+
and restore the exact pre-state values when cleared. Controllers are isolated
|
|
38
|
+
per component instance; an unknown state throws `KurotUIRuntimeError`.
|
|
39
|
+
|
|
40
|
+
Design tokens resolve from the supplied `UIAssetRegistry`. Resource references
|
|
41
|
+
use their registered key by default; applications can provide
|
|
42
|
+
`resolveResource(reference, definition)` to return the runtime value expected by
|
|
43
|
+
their resource system.
|
|
44
|
+
|
|
25
45
|
Project component types are added by extending a foundation
|
|
26
46
|
`UIComponentRegistry` and supplying a matching runtime adapter. Invalid
|
|
27
47
|
documents, unsupported values, and missing adapters throw
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DisplayObject } from '@kurot/core';
|
|
2
|
+
import type { UIPropertyValue } from '@kurot/ui-document';
|
|
3
|
+
import type { KurotUICreationContext } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Applies one resolved semantic property to an existing runtime object.
|
|
6
|
+
*/
|
|
7
|
+
export declare function applyRuntimeProperty(target: DisplayObject, type: string, name: string, value: UIPropertyValue, path: string, context: KurotUICreationContext): void;
|
|
8
|
+
//# sourceMappingURL=applyRuntimeProperty.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyRuntimeProperty.d.ts","sourceRoot":"","sources":["../../../src/kurot/runtime/applyRuntimeProperty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAK1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sBAAsB,GAC7B,IAAI,CAcN"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { applyComponentProperty } from './builtins/applyComponentProperties.js';
|
|
2
|
+
import { applyDisplayProperty } from './builtins/applyDisplayProperties.js';
|
|
3
|
+
import { KurotUIRuntimeError } from './KurotUIRuntimeError.js';
|
|
4
|
+
import { resolvePropertyValue } from './resolvePropertyValue.js';
|
|
5
|
+
/**
|
|
6
|
+
* Applies one resolved semantic property to an existing runtime object.
|
|
7
|
+
*/
|
|
8
|
+
export function applyRuntimeProperty(target, type, name, value, path, context) {
|
|
9
|
+
const resolved = resolvePropertyValue(value, path, context);
|
|
10
|
+
const adapter = context.adapters[type];
|
|
11
|
+
const handled = applyDisplayProperty(target, name, resolved, path) ||
|
|
12
|
+
applyComponentProperty(target, name, resolved, path) ||
|
|
13
|
+
adapter?.applyProperty?.(target, name, resolved, path) === true;
|
|
14
|
+
if (!handled) {
|
|
15
|
+
throw new KurotUIRuntimeError('invalid-property', `Runtime property "${name}" is not supported by ${type}.`, path);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=applyRuntimeProperty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyRuntimeProperty.js","sourceRoot":"","sources":["../../../src/kurot/runtime/applyRuntimeProperty.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE;;GAEG;AACH,MAAM,UAAU,oBAAoB,CACnC,MAAqB,EACrB,IAAY,EACZ,IAAY,EACZ,KAAsB,EACtB,IAAY,EACZ,OAA+B;IAE/B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,OAAO,GACZ,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;QAClD,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;QACpD,OAAO,EAAE,aAAa,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;IACjE,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,mBAAmB,CAC5B,kBAAkB,EAClB,qBAAqB,IAAI,yBAAyB,IAAI,GAAG,EACzD,IAAI,CACJ,CAAC;IACH,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyComponentProperties.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyComponentProperties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQ1D;;GAEG;AACH,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,GACV,OAAO,CAiBT"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { Component, Image, Rect } from '@kurot/ui';
|
|
2
|
+
import { createRectangle } from '../descriptors/createRectangle.js';
|
|
3
|
+
import { KurotUIRuntimeError } from '../KurotUIRuntimeError.js';
|
|
4
|
+
import { applyContainerProperty } from './applyContainerProperties.js';
|
|
5
|
+
import { applyControlProperty } from './applyControlProperties.js';
|
|
6
|
+
import { applyTextProperty } from './applyTextProperties.js';
|
|
7
|
+
/**
|
|
8
|
+
* Applies one property declared directly by a built-in Kurot UI component.
|
|
9
|
+
*/
|
|
10
|
+
export function applyComponentProperty(target, name, value, path) {
|
|
11
|
+
if (target instanceof Component && applySkinnableProperty(target, name, value, path)) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
if (applyContainerProperty(target, name, value, path)) {
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
if (applyTextProperty(target, name, value, path)) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
if (target instanceof Image && applyImageProperty(target, name, value, path)) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
if (target instanceof Rect && applyRectProperty(target, name, value, path)) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
return applyControlProperty(target, name, value, path);
|
|
27
|
+
}
|
|
28
|
+
function applySkinnableProperty(target, name, value, path) {
|
|
29
|
+
switch (name) {
|
|
30
|
+
case 'currentState':
|
|
31
|
+
target.currentState = requireString(value, path);
|
|
32
|
+
return true;
|
|
33
|
+
case 'enabled':
|
|
34
|
+
target.enabled = requireBoolean(value, path);
|
|
35
|
+
return true;
|
|
36
|
+
case 'hostComponentKey':
|
|
37
|
+
target.hostComponentKey = requireString(value, path);
|
|
38
|
+
return true;
|
|
39
|
+
case 'skinName':
|
|
40
|
+
target.skinName = requireString(value, path);
|
|
41
|
+
return true;
|
|
42
|
+
default:
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function applyImageProperty(target, name, value, path) {
|
|
47
|
+
switch (name) {
|
|
48
|
+
case 'fillMode':
|
|
49
|
+
target.fillMode = requireFillMode(value, path);
|
|
50
|
+
return true;
|
|
51
|
+
case 'scale9Grid':
|
|
52
|
+
target.scale9Grid = createRectangle(value, path);
|
|
53
|
+
return true;
|
|
54
|
+
case 'smoothing':
|
|
55
|
+
target.smoothing = requireBoolean(value, path);
|
|
56
|
+
return true;
|
|
57
|
+
case 'source':
|
|
58
|
+
target.source = requireString(value, path);
|
|
59
|
+
return true;
|
|
60
|
+
default:
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function applyRectProperty(target, name, value, path) {
|
|
65
|
+
switch (name) {
|
|
66
|
+
case 'ellipseHeight':
|
|
67
|
+
target.ellipseHeight = requireNumber(value, path);
|
|
68
|
+
return true;
|
|
69
|
+
case 'ellipseWidth':
|
|
70
|
+
target.ellipseWidth = requireNumber(value, path);
|
|
71
|
+
return true;
|
|
72
|
+
case 'fillAlpha':
|
|
73
|
+
target.fillAlpha = requireNumber(value, path);
|
|
74
|
+
return true;
|
|
75
|
+
case 'fillColor':
|
|
76
|
+
target.fillColor = requireNumber(value, path);
|
|
77
|
+
return true;
|
|
78
|
+
case 'strokeAlpha':
|
|
79
|
+
target.strokeAlpha = requireNumber(value, path);
|
|
80
|
+
return true;
|
|
81
|
+
case 'strokeColor':
|
|
82
|
+
target.strokeColor = requireNumber(value, path);
|
|
83
|
+
return true;
|
|
84
|
+
case 'strokeWeight':
|
|
85
|
+
target.strokeWeight = requireNumber(value, path);
|
|
86
|
+
return true;
|
|
87
|
+
default:
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function requireBoolean(value, path) {
|
|
92
|
+
if (typeof value === 'boolean')
|
|
93
|
+
return value;
|
|
94
|
+
throw invalidValue('boolean', path);
|
|
95
|
+
}
|
|
96
|
+
function requireNumber(value, path) {
|
|
97
|
+
if (typeof value === 'number' && Number.isFinite(value))
|
|
98
|
+
return value;
|
|
99
|
+
throw invalidValue('number', path);
|
|
100
|
+
}
|
|
101
|
+
function requireString(value, path) {
|
|
102
|
+
if (typeof value === 'string')
|
|
103
|
+
return value;
|
|
104
|
+
throw invalidValue('string', path);
|
|
105
|
+
}
|
|
106
|
+
function requireFillMode(value, path) {
|
|
107
|
+
if (value === 'clip' || value === 'repeat' || value === 'scale')
|
|
108
|
+
return value;
|
|
109
|
+
throw invalidValue('clip, repeat, or scale', path);
|
|
110
|
+
}
|
|
111
|
+
function invalidValue(type, path) {
|
|
112
|
+
return new KurotUIRuntimeError('invalid-property', `Runtime property must be ${type}.`, path);
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=applyComponentProperties.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyComponentProperties.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyComponentProperties.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DisplayObject } from '@kurot/core';
|
|
2
|
+
import type { UIPropertyValue } from '@kurot/ui-document';
|
|
3
|
+
/**
|
|
4
|
+
* Applies one property owned by a built-in container component.
|
|
5
|
+
*/
|
|
6
|
+
export declare function applyContainerProperty(target: DisplayObject, name: string, value: UIPropertyValue, path: string): boolean;
|
|
7
|
+
//# sourceMappingURL=applyContainerProperties.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyContainerProperties.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyContainerProperties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI1D;;GAEG;AACH,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,GACV,OAAO,CAwBT"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Group } from '@kurot/ui';
|
|
2
|
+
import { createLayout } from '../descriptors/createLayout.js';
|
|
3
|
+
import { KurotUIRuntimeError } from '../KurotUIRuntimeError.js';
|
|
4
|
+
/**
|
|
5
|
+
* Applies one property owned by a built-in container component.
|
|
6
|
+
*/
|
|
7
|
+
export function applyContainerProperty(target, name, value, path) {
|
|
8
|
+
if (!(target instanceof Group))
|
|
9
|
+
return false;
|
|
10
|
+
switch (name) {
|
|
11
|
+
case 'currentState':
|
|
12
|
+
target.currentState = requireString(value, path);
|
|
13
|
+
return true;
|
|
14
|
+
case 'layout':
|
|
15
|
+
target.layout = createLayout(value, path);
|
|
16
|
+
return true;
|
|
17
|
+
case 'scrollEnabled':
|
|
18
|
+
target.scrollEnabled = requireBoolean(value, path);
|
|
19
|
+
return true;
|
|
20
|
+
case 'scrollH':
|
|
21
|
+
target.scrollH = requireNumber(value, path);
|
|
22
|
+
return true;
|
|
23
|
+
case 'scrollV':
|
|
24
|
+
target.scrollV = requireNumber(value, path);
|
|
25
|
+
return true;
|
|
26
|
+
case 'touchThrough':
|
|
27
|
+
target.touchThrough = requireBoolean(value, path);
|
|
28
|
+
return true;
|
|
29
|
+
default:
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function requireBoolean(value, path) {
|
|
34
|
+
if (typeof value === 'boolean')
|
|
35
|
+
return value;
|
|
36
|
+
throw invalidValue('boolean', path);
|
|
37
|
+
}
|
|
38
|
+
function requireNumber(value, path) {
|
|
39
|
+
if (typeof value === 'number' && Number.isFinite(value))
|
|
40
|
+
return value;
|
|
41
|
+
throw invalidValue('number', path);
|
|
42
|
+
}
|
|
43
|
+
function requireString(value, path) {
|
|
44
|
+
if (typeof value === 'string')
|
|
45
|
+
return value;
|
|
46
|
+
throw invalidValue('string', path);
|
|
47
|
+
}
|
|
48
|
+
function invalidValue(type, path) {
|
|
49
|
+
return new KurotUIRuntimeError('invalid-property', `Runtime property must be ${type}.`, path);
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=applyContainerProperties.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyContainerProperties.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyContainerProperties.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACrC,MAAqB,EACrB,IAAY,EACZ,KAAsB,EACtB,IAAY;IAEZ,IAAI,CAAC,CAAC,MAAM,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,cAAc;YAClB,MAAM,CAAC,YAAY,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;QACb,KAAK,QAAQ;YACZ,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACb,KAAK,eAAe;YACnB,MAAM,CAAC,aAAa,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC;QACb,KAAK,SAAS;YACb,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACb,KAAK,SAAS;YACb,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACb,KAAK,cAAc;YAClB,MAAM,CAAC,YAAY,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QACb;YACC,OAAO,KAAK,CAAC;IACf,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CAAC,KAAsB,EAAE,IAAY;IAC3D,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,aAAa,CAAC,KAAsB,EAAE,IAAY;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtE,MAAM,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,aAAa,CAAC,KAAsB,EAAE,IAAY;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY;IAC/C,OAAO,IAAI,mBAAmB,CAC7B,kBAAkB,EAClB,4BAA4B,IAAI,GAAG,EACnC,IAAI,CACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DisplayObject } from '@kurot/core';
|
|
2
|
+
import type { UIPropertyValue } from '@kurot/ui-document';
|
|
3
|
+
/**
|
|
4
|
+
* Applies one property owned by a built-in interactive control.
|
|
5
|
+
*/
|
|
6
|
+
export declare function applyControlProperty(target: DisplayObject, name: string, value: UIPropertyValue, path: string): boolean;
|
|
7
|
+
//# sourceMappingURL=applyControlProperties.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyControlProperties.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyControlProperties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,GACV,OAAO,CAkBT"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Button } from '@kurot/ui';
|
|
2
|
+
import { KurotUIRuntimeError } from '../KurotUIRuntimeError.js';
|
|
3
|
+
/**
|
|
4
|
+
* Applies one property owned by a built-in interactive control.
|
|
5
|
+
*/
|
|
6
|
+
export function applyControlProperty(target, name, value, path) {
|
|
7
|
+
if (!(target instanceof Button))
|
|
8
|
+
return false;
|
|
9
|
+
switch (name) {
|
|
10
|
+
case 'icon':
|
|
11
|
+
target.icon = requireString(value, path);
|
|
12
|
+
return true;
|
|
13
|
+
case 'label':
|
|
14
|
+
target.label = requireString(value, path);
|
|
15
|
+
return true;
|
|
16
|
+
case 'selected':
|
|
17
|
+
target.selected = requireBoolean(value, path);
|
|
18
|
+
return true;
|
|
19
|
+
case 'toggle':
|
|
20
|
+
target.toggle = requireBoolean(value, path);
|
|
21
|
+
return true;
|
|
22
|
+
default:
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function requireBoolean(value, path) {
|
|
27
|
+
if (typeof value === 'boolean')
|
|
28
|
+
return value;
|
|
29
|
+
throw invalidValue('boolean', path);
|
|
30
|
+
}
|
|
31
|
+
function requireString(value, path) {
|
|
32
|
+
if (typeof value === 'string')
|
|
33
|
+
return value;
|
|
34
|
+
throw invalidValue('string', path);
|
|
35
|
+
}
|
|
36
|
+
function invalidValue(type, path) {
|
|
37
|
+
return new KurotUIRuntimeError('invalid-property', `Runtime property must be ${type}.`, path);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=applyControlProperties.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyControlProperties.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyControlProperties.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;GAEG;AACH,MAAM,UAAU,oBAAoB,CACnC,MAAqB,EACrB,IAAY,EACZ,KAAsB,EACtB,IAAY;IAEZ,IAAI,CAAC,CAAC,MAAM,YAAY,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,MAAM;YACV,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC;QACb,KAAK,OAAO;YACX,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACb,KAAK,UAAU;YACd,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC;QACb,KAAK,QAAQ;YACZ,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACb;YACC,OAAO,KAAK,CAAC;IACf,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CAAC,KAAsB,EAAE,IAAY;IAC3D,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,aAAa,CAAC,KAAsB,EAAE,IAAY;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY;IAC/C,OAAO,IAAI,mBAAmB,CAC7B,kBAAkB,EAClB,4BAA4B,IAAI,GAAG,EACnC,IAAI,CACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyDisplayProperties.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyDisplayProperties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA0B,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI1D;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,GACV,OAAO,CAiET"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DisplayObjectContainer } from '@kurot/core';
|
|
2
2
|
import { isUIComponent } from '@kurot/ui';
|
|
3
|
-
import { KurotUIRuntimeError } from '
|
|
3
|
+
import { KurotUIRuntimeError } from '../KurotUIRuntimeError.js';
|
|
4
4
|
/**
|
|
5
5
|
* Applies one inherited display or UI-layout property when recognized.
|
|
6
6
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyDisplayProperties.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyDisplayProperties.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DisplayObject } from '@kurot/core';
|
|
2
|
+
import type { UIPropertyValue } from '@kurot/ui-document';
|
|
3
|
+
/**
|
|
4
|
+
* Applies one property owned by a built-in text component.
|
|
5
|
+
*/
|
|
6
|
+
export declare function applyTextProperty(target: DisplayObject, name: string, value: UIPropertyValue, path: string): boolean;
|
|
7
|
+
//# sourceMappingURL=applyTextProperties.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyTextProperties.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyTextProperties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D;;GAEG;AACH,wBAAgB,iBAAiB,CAChC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,GACV,OAAO,CAmDT"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Label } from '@kurot/ui';
|
|
2
|
+
import { KurotUIRuntimeError } from '../KurotUIRuntimeError.js';
|
|
3
|
+
/**
|
|
4
|
+
* Applies one property owned by a built-in text component.
|
|
5
|
+
*/
|
|
6
|
+
export function applyTextProperty(target, name, value, path) {
|
|
7
|
+
if (!(target instanceof Label))
|
|
8
|
+
return false;
|
|
9
|
+
switch (name) {
|
|
10
|
+
case 'bold':
|
|
11
|
+
target.bold = requireBoolean(value, path);
|
|
12
|
+
return true;
|
|
13
|
+
case 'displayAsPassword':
|
|
14
|
+
target.displayAsPassword = requireBoolean(value, path);
|
|
15
|
+
return true;
|
|
16
|
+
case 'fontFamily':
|
|
17
|
+
target.fontFamily = requireString(value, path);
|
|
18
|
+
return true;
|
|
19
|
+
case 'italic':
|
|
20
|
+
target.italic = requireBoolean(value, path);
|
|
21
|
+
return true;
|
|
22
|
+
case 'lineSpacing':
|
|
23
|
+
target.lineSpacing = requireNumber(value, path);
|
|
24
|
+
return true;
|
|
25
|
+
case 'maxChars':
|
|
26
|
+
target.maxChars = requireNumber(value, path);
|
|
27
|
+
return true;
|
|
28
|
+
case 'multiline':
|
|
29
|
+
target.multiline = requireBoolean(value, path);
|
|
30
|
+
return true;
|
|
31
|
+
case 'size':
|
|
32
|
+
target.size = requireNumber(value, path);
|
|
33
|
+
return true;
|
|
34
|
+
case 'stroke':
|
|
35
|
+
target.stroke = requireNumber(value, path);
|
|
36
|
+
return true;
|
|
37
|
+
case 'strokeColor':
|
|
38
|
+
target.strokeColor = requireNumber(value, path);
|
|
39
|
+
return true;
|
|
40
|
+
case 'text':
|
|
41
|
+
target.text = requireString(value, path);
|
|
42
|
+
return true;
|
|
43
|
+
case 'textAlign':
|
|
44
|
+
target.textAlign = requireString(value, path);
|
|
45
|
+
return true;
|
|
46
|
+
case 'textColor':
|
|
47
|
+
target.textColor = requireNumber(value, path);
|
|
48
|
+
return true;
|
|
49
|
+
case 'verticalAlign':
|
|
50
|
+
target.verticalAlign = requireString(value, path);
|
|
51
|
+
return true;
|
|
52
|
+
case 'wordWrap':
|
|
53
|
+
target.wordWrap = requireBoolean(value, path);
|
|
54
|
+
return true;
|
|
55
|
+
default:
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function requireBoolean(value, path) {
|
|
60
|
+
if (typeof value === 'boolean')
|
|
61
|
+
return value;
|
|
62
|
+
throw invalidValue('boolean', path);
|
|
63
|
+
}
|
|
64
|
+
function requireNumber(value, path) {
|
|
65
|
+
if (typeof value === 'number' && Number.isFinite(value))
|
|
66
|
+
return value;
|
|
67
|
+
throw invalidValue('number', path);
|
|
68
|
+
}
|
|
69
|
+
function requireString(value, path) {
|
|
70
|
+
if (typeof value === 'string')
|
|
71
|
+
return value;
|
|
72
|
+
throw invalidValue('string', path);
|
|
73
|
+
}
|
|
74
|
+
function invalidValue(type, path) {
|
|
75
|
+
return new KurotUIRuntimeError('invalid-property', `Runtime property must be ${type}.`, path);
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=applyTextProperties.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyTextProperties.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyTextProperties.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DisplayObject } from '@kurot/core';
|
|
2
2
|
/**
|
|
3
|
-
* Returns the built-in factory for one canonical Kurot UI type.
|
|
3
|
+
* Returns the built-in factory for one canonical Kurot UI component type.
|
|
4
4
|
*/
|
|
5
5
|
export declare function getBuiltInFactory(type: string): (() => DisplayObject) | undefined;
|
|
6
6
|
//# sourceMappingURL=componentFactories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"componentFactories.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/componentFactories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAWjD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,aAAa,CAAC,GAAG,SAAS,CAEjF"}
|
|
@@ -7,7 +7,7 @@ const BUILT_IN_FACTORIES = {
|
|
|
7
7
|
'kui.Rect': () => new Rect(),
|
|
8
8
|
};
|
|
9
9
|
/**
|
|
10
|
-
* Returns the built-in factory for one canonical Kurot UI type.
|
|
10
|
+
* Returns the built-in factory for one canonical Kurot UI component type.
|
|
11
11
|
*/
|
|
12
12
|
export function getBuiltInFactory(type) {
|
|
13
13
|
return BUILT_IN_FACTORIES[type];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"componentFactories.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/componentFactories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE9D,MAAM,kBAAkB,GAAkD;IACzE,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,EAAE;IAChC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE;IAC9B,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE;IAC9B,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE;IAC9B,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC7C,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createKurotUI.d.ts","sourceRoot":"","sources":["../../../src/kurot/runtime/createKurotUI.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createKurotUI.d.ts","sourceRoot":"","sources":["../../../src/kurot/runtime/createKurotUI.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,KAAK,EACX,oBAAoB,EAEpB,qBAAqB,EACrB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAgB,aAAa,CAC5B,QAAQ,EAAE,UAAU,EACpB,OAAO,GAAE,oBAAyB,GAChC,qBAAqB,CAqCvB"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { createKurotUIFoundationRegistry, validateUIDocument, validateUIDocumentComponents, } from '@kurot/ui-document';
|
|
3
|
-
import { applyComponentProperty } from './applyComponentProperties.js';
|
|
4
|
-
import { applyDisplayProperty } from './applyDisplayProperties.js';
|
|
5
|
-
import { getBuiltInFactory } from './componentFactories.js';
|
|
1
|
+
import { createKurotUIFoundationRegistry, UIAssetRegistry, validateUIAssetRegistry, validateUIDocument, } from '@kurot/ui-document';
|
|
6
2
|
import { KurotUIRuntimeError } from './KurotUIRuntimeError.js';
|
|
3
|
+
import { materializeNode } from './materializeNode.js';
|
|
7
4
|
/**
|
|
8
5
|
* Validates and materializes a semantic UI document into Kurot display objects.
|
|
9
6
|
*/
|
|
@@ -12,61 +9,41 @@ export function createKurotUI(document, options = {}) {
|
|
|
12
9
|
if (documentDiagnostics.length > 0) {
|
|
13
10
|
throw new KurotUIRuntimeError('invalid-document', 'UIDocument failed structural validation.', '$', documentDiagnostics);
|
|
14
11
|
}
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
const components = options.registry ?? createKurotUIFoundationRegistry();
|
|
13
|
+
const assets = createRuntimeAssetRegistry(document, options.assets);
|
|
14
|
+
const diagnostics = validateUIAssetRegistry(assets, components);
|
|
15
|
+
if (diagnostics.length > 0) {
|
|
16
|
+
throw new KurotUIRuntimeError('invalid-document', 'UI asset registry failed project validation.', '$', diagnostics);
|
|
19
17
|
}
|
|
20
18
|
const context = {
|
|
21
19
|
adapters: options.adapters ?? {},
|
|
20
|
+
assets,
|
|
22
21
|
instances: new Map(),
|
|
22
|
+
resolveResource: options.resolveResource ?? (reference => reference.key),
|
|
23
|
+
stateControllers: new Map(),
|
|
24
|
+
types: new Map(),
|
|
23
25
|
};
|
|
24
|
-
const root =
|
|
25
|
-
return Object.freeze({
|
|
26
|
+
const root = materializeNode(document.root, '$.root', '', context);
|
|
27
|
+
return Object.freeze({
|
|
28
|
+
root,
|
|
29
|
+
instances: context.instances,
|
|
30
|
+
stateControllers: context.stateControllers,
|
|
31
|
+
});
|
|
26
32
|
}
|
|
27
|
-
function
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const value = node.properties[name];
|
|
33
|
-
const propertyPath = `${path}.properties.${name}`;
|
|
34
|
-
const handled = applyDisplayProperty(instance, name, value, propertyPath) ||
|
|
35
|
-
applyComponentProperty(instance, name, value, propertyPath) ||
|
|
36
|
-
adapter?.applyProperty?.(instance, name, value, propertyPath) === true;
|
|
37
|
-
if (!handled) {
|
|
38
|
-
throw new KurotUIRuntimeError('invalid-property', `Runtime property "${name}" is not supported by ${node.type}.`, propertyPath);
|
|
33
|
+
function createRuntimeAssetRegistry(document, source) {
|
|
34
|
+
const registry = new UIAssetRegistry();
|
|
35
|
+
for (const asset of source?.listAssets() ?? []) {
|
|
36
|
+
if (asset.id !== document.id) {
|
|
37
|
+
registry.registerAsset(asset);
|
|
39
38
|
}
|
|
40
39
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
appendChild(instance, child, node.type, childPath, adapter);
|
|
40
|
+
registry.registerAsset(document);
|
|
41
|
+
for (const resource of source?.listResources() ?? []) {
|
|
42
|
+
registry.registerResource(resource);
|
|
45
43
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
function createInstance(node, path, adapter) {
|
|
49
|
-
const factory = adapter?.create ?? getBuiltInFactory(node.type);
|
|
50
|
-
if (!factory) {
|
|
51
|
-
throw new KurotUIRuntimeError('unsupported-component', `No runtime adapter is registered for component type "${node.type}".`, `${path}.type`);
|
|
52
|
-
}
|
|
53
|
-
try {
|
|
54
|
-
return factory();
|
|
55
|
-
}
|
|
56
|
-
catch (error) {
|
|
57
|
-
const detail = error instanceof Error ? ` ${error.message}` : '';
|
|
58
|
-
throw new KurotUIRuntimeError('component-construction-failed', `Failed to construct component type "${node.type}".${detail}`, `${path}.type`);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
function appendChild(parent, child, parentType, path, adapter) {
|
|
62
|
-
if (adapter?.appendChild) {
|
|
63
|
-
adapter.appendChild(parent, child, path);
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
if (parent instanceof Group) {
|
|
67
|
-
parent.addChild(child);
|
|
68
|
-
return;
|
|
44
|
+
for (const token of source?.listTokens() ?? []) {
|
|
45
|
+
registry.registerToken(token);
|
|
69
46
|
}
|
|
70
|
-
|
|
47
|
+
return registry;
|
|
71
48
|
}
|
|
72
49
|
//# sourceMappingURL=createKurotUI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createKurotUI.js","sourceRoot":"","sources":["../../../src/kurot/runtime/createKurotUI.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createKurotUI.js","sourceRoot":"","sources":["../../../src/kurot/runtime/createKurotUI.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,+BAA+B,EAC/B,eAAe,EACf,uBAAuB,EACvB,kBAAkB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAOvD;;GAEG;AACH,MAAM,UAAU,aAAa,CAC5B,QAAoB,EACpB,UAAgC,EAAE;IAElC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,mBAAmB,CAC5B,kBAAkB,EAClB,0CAA0C,EAC1C,GAAG,EACH,mBAAmB,CACnB,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,IAAI,+BAA+B,EAAE,CAAC;IACzE,MAAM,MAAM,GAAG,0BAA0B,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAChE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,mBAAmB,CAC5B,kBAAkB,EAClB,8CAA8C,EAC9C,GAAG,EACH,WAAW,CACX,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAA2B;QACvC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;QAChC,MAAM;QACN,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;QACxE,gBAAgB,EAAE,IAAI,GAAG,EAAE;QAC3B,KAAK,EAAE,IAAI,GAAG,EAAE;KAChB,CAAC;IACF,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC,MAAM,CAAC;QACpB,IAAI;QACJ,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;KAC1C,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAClC,QAAoB,EACpB,MAAwB;IAExB,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC;YAC9B,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;IACD,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;QACtD,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;QAChD,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLayout.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/descriptors/createLayout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAGN,UAAU,EAIV,MAAM,WAAW,CAAC;AAGnB;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAmC7E"}
|