@jsonforms/core 3.0.0-beta.4 → 3.0.0-beta.5
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/docs/assets/js/search.json +1 -1
- package/docs/enums/ruleeffect.html +4 -4
- package/docs/globals.html +149 -29
- package/docs/index.html +25 -4
- package/docs/interfaces/andcondition.html +2 -2
- package/docs/interfaces/categorization.html +24 -16
- package/docs/interfaces/category.html +24 -16
- package/docs/interfaces/composablecondition.html +2 -2
- package/docs/interfaces/condition.html +1 -1
- package/docs/interfaces/controlelement.html +21 -16
- package/docs/interfaces/grouplayout.html +24 -12
- package/docs/interfaces/horizontallayout.html +4 -4
- package/docs/interfaces/internationalizable.html +1 -10
- package/docs/interfaces/labeldescription.html +2 -2
- package/docs/interfaces/labeled.html +182 -0
- package/docs/interfaces/labelelement.html +4 -4
- package/docs/interfaces/lableable.html +184 -0
- package/docs/interfaces/layout.html +4 -4
- package/docs/interfaces/leafcondition.html +9 -8
- package/docs/interfaces/orcondition.html +2 -2
- package/docs/interfaces/rule.html +2 -2
- package/docs/interfaces/schemabasedcondition.html +9 -8
- package/docs/interfaces/scopable.html +3 -9
- package/docs/interfaces/scoped.html +183 -0
- package/docs/interfaces/uischemaelement.html +3 -3
- package/docs/interfaces/verticallayout.html +4 -4
- package/lib/jsonforms-core.cjs.js +33 -16
- package/lib/jsonforms-core.cjs.js.map +1 -1
- package/lib/jsonforms-core.esm.js +23 -20
- package/lib/jsonforms-core.esm.js.map +1 -1
- package/lib/models/uischema.d.ts +34 -26
- package/lib/util/runtime.d.ts +1 -2
- package/lib/util/util.d.ts +6 -6
- package/package.json +2 -2
- package/src/models/uischema.ts +49 -26
- package/src/testers/testers.ts +9 -12
- package/src/util/path.ts +9 -5
- package/src/util/runtime.ts +1 -1
- package/src/util/util.ts +8 -8
- package/stats.html +1 -1
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html class="default no-js">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
6
|
+
<title>Scoped | JSON Forms Core</title>
|
|
7
|
+
<meta name="description" content="Documentation for JSON Forms Core">
|
|
8
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
9
|
+
<link rel="stylesheet" href="../assets/css/main.css">
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<header>
|
|
13
|
+
<div class="tsd-page-toolbar">
|
|
14
|
+
<div class="container">
|
|
15
|
+
<div class="table-wrap">
|
|
16
|
+
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
|
|
17
|
+
<div class="field">
|
|
18
|
+
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
|
|
19
|
+
<input id="tsd-search-field" type="text" />
|
|
20
|
+
</div>
|
|
21
|
+
<ul class="results">
|
|
22
|
+
<li class="state loading">Preparing search index...</li>
|
|
23
|
+
<li class="state failure">The search index is not available</li>
|
|
24
|
+
</ul>
|
|
25
|
+
<a href="../index.html" class="title">JSON Forms Core</a>
|
|
26
|
+
</div>
|
|
27
|
+
<div class="table-cell" id="tsd-widgets">
|
|
28
|
+
<div id="tsd-filter">
|
|
29
|
+
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
|
|
30
|
+
<div class="tsd-filter-group">
|
|
31
|
+
<div class="tsd-select" id="tsd-filter-visibility">
|
|
32
|
+
<span class="tsd-select-label">All</span>
|
|
33
|
+
<ul class="tsd-select-list">
|
|
34
|
+
<li data-value="public">Public</li>
|
|
35
|
+
<li data-value="protected">Public/Protected</li>
|
|
36
|
+
<li data-value="private" class="selected">All</li>
|
|
37
|
+
</ul>
|
|
38
|
+
</div>
|
|
39
|
+
<input type="checkbox" id="tsd-filter-inherited" checked />
|
|
40
|
+
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
|
|
41
|
+
<input type="checkbox" id="tsd-filter-only-exported" />
|
|
42
|
+
<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="tsd-page-title">
|
|
51
|
+
<div class="container">
|
|
52
|
+
<ul class="tsd-breadcrumb">
|
|
53
|
+
<li>
|
|
54
|
+
<a href="../globals.html">Globals</a>
|
|
55
|
+
</li>
|
|
56
|
+
<li>
|
|
57
|
+
<a href="scoped.html">Scoped</a>
|
|
58
|
+
</li>
|
|
59
|
+
</ul>
|
|
60
|
+
<h1>Interface Scoped</h1>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
</header>
|
|
64
|
+
<div class="container container-main">
|
|
65
|
+
<div class="row">
|
|
66
|
+
<div class="col-8 col-content">
|
|
67
|
+
<section class="tsd-panel tsd-comment">
|
|
68
|
+
<div class="tsd-comment tsd-typography">
|
|
69
|
+
<div class="lead">
|
|
70
|
+
<p>Interface for describing an UI schema element that is referencing
|
|
71
|
+
a subschema. The value of the scope must be a JSON Pointer.</p>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
</section>
|
|
75
|
+
<section class="tsd-panel tsd-hierarchy">
|
|
76
|
+
<h3>Hierarchy</h3>
|
|
77
|
+
<ul class="tsd-hierarchy">
|
|
78
|
+
<li>
|
|
79
|
+
<a href="scopable.html" class="tsd-signature-type">Scopable</a>
|
|
80
|
+
<ul class="tsd-hierarchy">
|
|
81
|
+
<li>
|
|
82
|
+
<span class="target">Scoped</span>
|
|
83
|
+
<ul class="tsd-hierarchy">
|
|
84
|
+
<li>
|
|
85
|
+
<a href="leafcondition.html" class="tsd-signature-type">LeafCondition</a>
|
|
86
|
+
</li>
|
|
87
|
+
<li>
|
|
88
|
+
<a href="schemabasedcondition.html" class="tsd-signature-type">SchemaBasedCondition</a>
|
|
89
|
+
</li>
|
|
90
|
+
<li>
|
|
91
|
+
<a href="controlelement.html" class="tsd-signature-type">ControlElement</a>
|
|
92
|
+
</li>
|
|
93
|
+
</ul>
|
|
94
|
+
</li>
|
|
95
|
+
</ul>
|
|
96
|
+
</li>
|
|
97
|
+
</ul>
|
|
98
|
+
</section>
|
|
99
|
+
<section class="tsd-panel-group tsd-index-group">
|
|
100
|
+
<h2>Index</h2>
|
|
101
|
+
<section class="tsd-panel tsd-index-panel">
|
|
102
|
+
<div class="tsd-index-content">
|
|
103
|
+
<section class="tsd-index-section ">
|
|
104
|
+
<h3>Properties</h3>
|
|
105
|
+
<ul class="tsd-index-list">
|
|
106
|
+
<li class="tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite"><a href="scoped.html#scope" class="tsd-kind-icon">scope</a></li>
|
|
107
|
+
</ul>
|
|
108
|
+
</section>
|
|
109
|
+
</div>
|
|
110
|
+
</section>
|
|
111
|
+
</section>
|
|
112
|
+
<section class="tsd-panel-group tsd-member-group ">
|
|
113
|
+
<h2>Properties</h2>
|
|
114
|
+
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
|
|
115
|
+
<a name="scope" class="tsd-anchor"></a>
|
|
116
|
+
<h3>scope</h3>
|
|
117
|
+
<div class="tsd-signature tsd-kind-icon">scope<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
|
|
118
|
+
<aside class="tsd-sources">
|
|
119
|
+
<p>Overrides <a href="scopable.html">Scopable</a>.<a href="scopable.html#scope">scope</a></p>
|
|
120
|
+
<ul>
|
|
121
|
+
<li>Defined in packages/core/src/models/uischema.ts:47</li>
|
|
122
|
+
</ul>
|
|
123
|
+
</aside>
|
|
124
|
+
<div class="tsd-comment tsd-typography">
|
|
125
|
+
<div class="lead">
|
|
126
|
+
<p>The scope that determines to which part this element should be bound to.</p>
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
</section>
|
|
130
|
+
</section>
|
|
131
|
+
</div>
|
|
132
|
+
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
|
|
133
|
+
<nav class="tsd-navigation primary">
|
|
134
|
+
<ul>
|
|
135
|
+
<li class="globals ">
|
|
136
|
+
<a href="../globals.html"><em>Globals</em></a>
|
|
137
|
+
</li>
|
|
138
|
+
</ul>
|
|
139
|
+
</nav>
|
|
140
|
+
<nav class="tsd-navigation secondary menu-sticky">
|
|
141
|
+
<ul class="before-current">
|
|
142
|
+
</ul>
|
|
143
|
+
<ul class="current">
|
|
144
|
+
<li class="current tsd-kind-interface">
|
|
145
|
+
<a href="scoped.html" class="tsd-kind-icon">Scoped</a>
|
|
146
|
+
<ul>
|
|
147
|
+
<li class=" tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite">
|
|
148
|
+
<a href="scoped.html#scope" class="tsd-kind-icon">scope</a>
|
|
149
|
+
</li>
|
|
150
|
+
</ul>
|
|
151
|
+
</li>
|
|
152
|
+
</ul>
|
|
153
|
+
<ul class="after-current">
|
|
154
|
+
</ul>
|
|
155
|
+
</nav>
|
|
156
|
+
</div>
|
|
157
|
+
</div>
|
|
158
|
+
</div>
|
|
159
|
+
<footer class="with-border-bottom">
|
|
160
|
+
<div class="container">
|
|
161
|
+
<h2>Legend</h2>
|
|
162
|
+
<div class="tsd-legend-group">
|
|
163
|
+
<ul class="tsd-legend">
|
|
164
|
+
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
|
|
165
|
+
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
|
|
166
|
+
</ul>
|
|
167
|
+
<ul class="tsd-legend">
|
|
168
|
+
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
|
|
169
|
+
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
|
|
170
|
+
</ul>
|
|
171
|
+
<ul class="tsd-legend">
|
|
172
|
+
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li>
|
|
173
|
+
</ul>
|
|
174
|
+
</div>
|
|
175
|
+
</div>
|
|
176
|
+
</footer>
|
|
177
|
+
<div class="container tsd-generator">
|
|
178
|
+
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
|
|
179
|
+
</div>
|
|
180
|
+
<div class="overlay"></div>
|
|
181
|
+
<script src="../assets/js/main.js"></script>
|
|
182
|
+
</body>
|
|
183
|
+
</html>
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
<div class="tsd-signature tsd-kind-icon">options<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{}</span></div>
|
|
117
117
|
<aside class="tsd-sources">
|
|
118
118
|
<ul>
|
|
119
|
-
<li>Defined in packages/core/src/models/uischema.ts:
|
|
119
|
+
<li>Defined in packages/core/src/models/uischema.ts:178</li>
|
|
120
120
|
</ul>
|
|
121
121
|
</aside>
|
|
122
122
|
<div class="tsd-comment tsd-typography">
|
|
@@ -139,7 +139,7 @@
|
|
|
139
139
|
<div class="tsd-signature tsd-kind-icon">rule<span class="tsd-signature-symbol">:</span> <a href="rule.html" class="tsd-signature-type">Rule</a></div>
|
|
140
140
|
<aside class="tsd-sources">
|
|
141
141
|
<ul>
|
|
142
|
-
<li>Defined in packages/core/src/models/uischema.ts:
|
|
142
|
+
<li>Defined in packages/core/src/models/uischema.ts:173</li>
|
|
143
143
|
</ul>
|
|
144
144
|
</aside>
|
|
145
145
|
<div class="tsd-comment tsd-typography">
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
<div class="tsd-signature tsd-kind-icon">type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
|
|
155
155
|
<aside class="tsd-sources">
|
|
156
156
|
<ul>
|
|
157
|
-
<li>Defined in packages/core/src/models/uischema.ts:
|
|
157
|
+
<li>Defined in packages/core/src/models/uischema.ts:168</li>
|
|
158
158
|
</ul>
|
|
159
159
|
</aside>
|
|
160
160
|
<div class="tsd-comment tsd-typography">
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
<aside class="tsd-sources">
|
|
110
110
|
<p>Inherited from <a href="layout.html">Layout</a>.<a href="layout.html#elements">elements</a></p>
|
|
111
111
|
<ul>
|
|
112
|
-
<li>Defined in packages/core/src/models/uischema.ts:
|
|
112
|
+
<li>Defined in packages/core/src/models/uischema.ts:189</li>
|
|
113
113
|
</ul>
|
|
114
114
|
</aside>
|
|
115
115
|
<div class="tsd-comment tsd-typography">
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
<aside class="tsd-sources">
|
|
126
126
|
<p>Inherited from <a href="uischemaelement.html">UISchemaElement</a>.<a href="uischemaelement.html#options">options</a></p>
|
|
127
127
|
<ul>
|
|
128
|
-
<li>Defined in packages/core/src/models/uischema.ts:
|
|
128
|
+
<li>Defined in packages/core/src/models/uischema.ts:178</li>
|
|
129
129
|
</ul>
|
|
130
130
|
</aside>
|
|
131
131
|
<div class="tsd-comment tsd-typography">
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
<aside class="tsd-sources">
|
|
150
150
|
<p>Inherited from <a href="uischemaelement.html">UISchemaElement</a>.<a href="uischemaelement.html#rule">rule</a></p>
|
|
151
151
|
<ul>
|
|
152
|
-
<li>Defined in packages/core/src/models/uischema.ts:
|
|
152
|
+
<li>Defined in packages/core/src/models/uischema.ts:173</li>
|
|
153
153
|
</ul>
|
|
154
154
|
</aside>
|
|
155
155
|
<div class="tsd-comment tsd-typography">
|
|
@@ -165,7 +165,7 @@
|
|
|
165
165
|
<aside class="tsd-sources">
|
|
166
166
|
<p>Overrides <a href="uischemaelement.html">UISchemaElement</a>.<a href="uischemaelement.html#type">type</a></p>
|
|
167
167
|
<ul>
|
|
168
|
-
<li>Defined in packages/core/src/models/uischema.ts:
|
|
168
|
+
<li>Defined in packages/core/src/models/uischema.ts:196</li>
|
|
169
169
|
</ul>
|
|
170
170
|
</aside>
|
|
171
171
|
</section>
|
|
@@ -337,6 +337,18 @@ var isGroup = function (layout) {
|
|
|
337
337
|
var isLayout = function (uischema) {
|
|
338
338
|
return uischema.elements !== undefined;
|
|
339
339
|
};
|
|
340
|
+
var isScopable = function (obj) {
|
|
341
|
+
return obj && typeof obj === 'object';
|
|
342
|
+
};
|
|
343
|
+
var isScoped = function (obj) {
|
|
344
|
+
return isScopable(obj) && typeof obj.scope === 'string';
|
|
345
|
+
};
|
|
346
|
+
var isLabelable = function (obj) {
|
|
347
|
+
return obj && typeof obj === 'object';
|
|
348
|
+
};
|
|
349
|
+
var isLabeled = function (obj) {
|
|
350
|
+
return isLabelable(obj) && ['string', 'object'].includes(typeof obj.label);
|
|
351
|
+
};
|
|
340
352
|
|
|
341
353
|
var move = function (array, index, delta) {
|
|
342
354
|
var newIndex = index + delta;
|
|
@@ -946,10 +958,7 @@ var isObjectArrayWithNesting = function (uischema, schema, rootSchema) {
|
|
|
946
958
|
}
|
|
947
959
|
var schemaPath = uischema.scope;
|
|
948
960
|
var resolvedSchema = resolveSchema(schema, schemaPath, rootSchema !== null && rootSchema !== void 0 ? rootSchema : schema);
|
|
949
|
-
var
|
|
950
|
-
object: 2,
|
|
951
|
-
array: 1
|
|
952
|
-
};
|
|
961
|
+
var objectDepth = 0;
|
|
953
962
|
if (resolvedSchema !== undefined && resolvedSchema.items !== undefined) {
|
|
954
963
|
if (traverse(resolvedSchema.items, function (val) {
|
|
955
964
|
if (val === schema) {
|
|
@@ -958,15 +967,16 @@ var isObjectArrayWithNesting = function (uischema, schema, rootSchema) {
|
|
|
958
967
|
if (val.$ref !== undefined) {
|
|
959
968
|
return false;
|
|
960
969
|
}
|
|
961
|
-
if (
|
|
962
|
-
|
|
970
|
+
if (hasType(val, 'object')) {
|
|
971
|
+
objectDepth++;
|
|
972
|
+
if (objectDepth === 2) {
|
|
973
|
+
return true;
|
|
974
|
+
}
|
|
963
975
|
}
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
return false;
|
|
976
|
+
if (hasType(val, 'array')) {
|
|
977
|
+
return true;
|
|
967
978
|
}
|
|
968
|
-
|
|
969
|
-
return wantedNestingByType[val.type] === 0;
|
|
979
|
+
return false;
|
|
970
980
|
}, rootSchema)) {
|
|
971
981
|
return true;
|
|
972
982
|
}
|
|
@@ -1181,11 +1191,14 @@ var toDataPath = function (schemaPath) {
|
|
|
1181
1191
|
return toDataPathSegments(schemaPath).join('.');
|
|
1182
1192
|
};
|
|
1183
1193
|
var composeWithUi = function (scopableUi, path) {
|
|
1194
|
+
if (!isScoped(scopableUi)) {
|
|
1195
|
+
return path !== null && path !== void 0 ? path : '';
|
|
1196
|
+
}
|
|
1184
1197
|
var segments = toDataPathSegments(scopableUi.scope);
|
|
1185
|
-
if (isEmpty__default["default"](segments)
|
|
1186
|
-
return '';
|
|
1198
|
+
if (isEmpty__default["default"](segments)) {
|
|
1199
|
+
return path !== null && path !== void 0 ? path : '';
|
|
1187
1200
|
}
|
|
1188
|
-
return
|
|
1201
|
+
return compose(path, segments.join('.'));
|
|
1189
1202
|
};
|
|
1190
1203
|
var encode = function (segment) { return segment === null || segment === void 0 ? void 0 : segment.replace(/~/g, '~0').replace(/\//g, '~1'); };
|
|
1191
1204
|
var decode = function (pointerSegment) { return pointerSegment === null || pointerSegment === void 0 ? void 0 : pointerSegment.replace(/~1/g, '/').replace(/~0/, '~'); };
|
|
@@ -1440,12 +1453,12 @@ var Resolve = {
|
|
|
1440
1453
|
schema: resolveSchema,
|
|
1441
1454
|
data: resolveData
|
|
1442
1455
|
};
|
|
1443
|
-
var
|
|
1456
|
+
var fromScoped = function (scopable) {
|
|
1444
1457
|
return toDataPathSegments(scopable.scope).join('.');
|
|
1445
1458
|
};
|
|
1446
1459
|
var Paths = {
|
|
1447
1460
|
compose: compose,
|
|
1448
|
-
|
|
1461
|
+
fromScoped: fromScoped
|
|
1449
1462
|
};
|
|
1450
1463
|
var Runtime = {
|
|
1451
1464
|
isEnabled: function (uischema, data, ajv) {
|
|
@@ -2379,6 +2392,8 @@ exports.isGroup = isGroup;
|
|
|
2379
2392
|
exports.isInherentlyEnabled = isInherentlyEnabled;
|
|
2380
2393
|
exports.isIntegerControl = isIntegerControl;
|
|
2381
2394
|
exports.isInternationalized = isInternationalized;
|
|
2395
|
+
exports.isLabelable = isLabelable;
|
|
2396
|
+
exports.isLabeled = isLabeled;
|
|
2382
2397
|
exports.isLayout = isLayout;
|
|
2383
2398
|
exports.isMultiLineControl = isMultiLineControl;
|
|
2384
2399
|
exports.isNumberControl = isNumberControl;
|
|
@@ -2391,6 +2406,8 @@ exports.isOneOfControl = isOneOfControl;
|
|
|
2391
2406
|
exports.isOneOfEnumControl = isOneOfEnumControl;
|
|
2392
2407
|
exports.isPrimitiveArrayControl = isPrimitiveArrayControl;
|
|
2393
2408
|
exports.isRangeControl = isRangeControl;
|
|
2409
|
+
exports.isScopable = isScopable;
|
|
2410
|
+
exports.isScoped = isScoped;
|
|
2394
2411
|
exports.isStringControl = isStringControl;
|
|
2395
2412
|
exports.isTimeControl = isTimeControl;
|
|
2396
2413
|
exports.isVisible = isVisible;
|