@aurumjs/html 0.10.12
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/LICENSE +21 -0
- package/README.md +152 -0
- package/package.json +52 -0
- package/prebuilt/esnext/builtin_components/portal.d.ts +9 -0
- package/prebuilt/esnext/builtin_components/portal.d.ts.map +1 -0
- package/prebuilt/esnext/builtin_components/portal.js +40 -0
- package/prebuilt/esnext/builtin_components/portal.js.map +1 -0
- package/prebuilt/esnext/builtin_components/router_link.d.ts +21 -0
- package/prebuilt/esnext/builtin_components/router_link.d.ts.map +1 -0
- package/prebuilt/esnext/builtin_components/router_link.js +54 -0
- package/prebuilt/esnext/builtin_components/router_link.js.map +1 -0
- package/prebuilt/esnext/index.d.ts +18 -0
- package/prebuilt/esnext/index.d.ts.map +1 -0
- package/prebuilt/esnext/index.js +18 -0
- package/prebuilt/esnext/index.js.map +1 -0
- package/prebuilt/esnext/jsx-dev-runtime.d.ts +2 -0
- package/prebuilt/esnext/jsx-dev-runtime.d.ts.map +1 -0
- package/prebuilt/esnext/jsx-dev-runtime.js +2 -0
- package/prebuilt/esnext/jsx-dev-runtime.js.map +1 -0
- package/prebuilt/esnext/jsx-runtime.d.ts +28 -0
- package/prebuilt/esnext/jsx-runtime.d.ts.map +1 -0
- package/prebuilt/esnext/jsx-runtime.js +26 -0
- package/prebuilt/esnext/jsx-runtime.js.map +1 -0
- package/prebuilt/esnext/nodes/input.d.ts +41 -0
- package/prebuilt/esnext/nodes/input.d.ts.map +1 -0
- package/prebuilt/esnext/nodes/input.js +92 -0
- package/prebuilt/esnext/nodes/input.js.map +1 -0
- package/prebuilt/esnext/nodes/rendering_helpers.d.ts +8 -0
- package/prebuilt/esnext/nodes/rendering_helpers.d.ts.map +1 -0
- package/prebuilt/esnext/nodes/rendering_helpers.js +173 -0
- package/prebuilt/esnext/nodes/rendering_helpers.js.map +1 -0
- package/prebuilt/esnext/nodes/select.d.ts +17 -0
- package/prebuilt/esnext/nodes/select.d.ts.map +1 -0
- package/prebuilt/esnext/nodes/select.js +95 -0
- package/prebuilt/esnext/nodes/select.js.map +1 -0
- package/prebuilt/esnext/nodes/simple_dom_nodes.d.ts +866 -0
- package/prebuilt/esnext/nodes/simple_dom_nodes.d.ts.map +1 -0
- package/prebuilt/esnext/nodes/simple_dom_nodes.js +531 -0
- package/prebuilt/esnext/nodes/simple_dom_nodes.js.map +1 -0
- package/prebuilt/esnext/nodes/textarea.d.ts +34 -0
- package/prebuilt/esnext/nodes/textarea.d.ts.map +1 -0
- package/prebuilt/esnext/nodes/textarea.js +61 -0
- package/prebuilt/esnext/nodes/textarea.js.map +1 -0
- package/prebuilt/esnext/rendering/dom_runtime.d.ts +91 -0
- package/prebuilt/esnext/rendering/dom_runtime.d.ts.map +1 -0
- package/prebuilt/esnext/rendering/dom_runtime.js +970 -0
- package/prebuilt/esnext/rendering/dom_runtime.js.map +1 -0
- package/prebuilt/esnext/rendering/render_batch.d.ts +15 -0
- package/prebuilt/esnext/rendering/render_batch.d.ts.map +1 -0
- package/prebuilt/esnext/rendering/render_batch.js +73 -0
- package/prebuilt/esnext/rendering/render_batch.js.map +1 -0
- package/prebuilt/esnext/rendering/renderers/dom_adapter.d.ts +199 -0
- package/prebuilt/esnext/rendering/renderers/dom_adapter.d.ts.map +1 -0
- package/prebuilt/esnext/rendering/renderers/dom_adapter.js +525 -0
- package/prebuilt/esnext/rendering/renderers/dom_adapter.js.map +1 -0
- package/prebuilt/esnext/rendering/renderers/string_adapter.d.ts +4 -0
- package/prebuilt/esnext/rendering/renderers/string_adapter.d.ts.map +1 -0
- package/prebuilt/esnext/rendering/renderers/string_adapter.js +112 -0
- package/prebuilt/esnext/rendering/renderers/string_adapter.js.map +1 -0
- package/prebuilt/esnext/rendering/renderers/vdom_adapter.d.ts +11 -0
- package/prebuilt/esnext/rendering/renderers/vdom_adapter.d.ts.map +1 -0
- package/prebuilt/esnext/rendering/renderers/vdom_adapter.js +23 -0
- package/prebuilt/esnext/rendering/renderers/vdom_adapter.js.map +1 -0
- package/prebuilt/esnext/utilities/aurum.d.ts +155 -0
- package/prebuilt/esnext/utilities/aurum.d.ts.map +1 -0
- package/prebuilt/esnext/utilities/aurum.js +282 -0
- package/prebuilt/esnext/utilities/aurum.js.map +1 -0
- package/prebuilt/esnext/utilities/sanitize.d.ts +25 -0
- package/prebuilt/esnext/utilities/sanitize.d.ts.map +1 -0
- package/prebuilt/esnext/utilities/sanitize.js +191 -0
- package/prebuilt/esnext/utilities/sanitize.js.map +1 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { DomNodeCreator } from '../rendering/renderers/dom_adapter.js';
|
|
2
|
+
import { queueRenderUpdate, renderBatchState } from '../rendering/render_batch.js';
|
|
3
|
+
import { isDataWriter } from './rendering_helpers.js';
|
|
4
|
+
/**
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
const inputEvents = { input: 'onInput', change: 'onChange' };
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
const inputProps = [
|
|
12
|
+
'placeholder',
|
|
13
|
+
'readonly',
|
|
14
|
+
'disabled',
|
|
15
|
+
'accept',
|
|
16
|
+
'alt',
|
|
17
|
+
'autocomplete',
|
|
18
|
+
'autofocus',
|
|
19
|
+
'formAction',
|
|
20
|
+
'formEnctype',
|
|
21
|
+
'formMethod',
|
|
22
|
+
'formNoValidate',
|
|
23
|
+
'formTarget',
|
|
24
|
+
'max',
|
|
25
|
+
'maxLength',
|
|
26
|
+
'min',
|
|
27
|
+
'minLength',
|
|
28
|
+
'pattern',
|
|
29
|
+
'multiple',
|
|
30
|
+
'required',
|
|
31
|
+
'type',
|
|
32
|
+
'step',
|
|
33
|
+
'list'
|
|
34
|
+
];
|
|
35
|
+
/**
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
38
|
+
export const Input = DomNodeCreator('input', inputProps, inputEvents, (node, props, cleanUp) => {
|
|
39
|
+
const input = node;
|
|
40
|
+
if ((props === null || props === void 0 ? void 0 : props.defaultValue) !== undefined)
|
|
41
|
+
input.defaultValue = String(props.defaultValue);
|
|
42
|
+
if ((props === null || props === void 0 ? void 0 : props.value) !== undefined) {
|
|
43
|
+
if (typeof props.value !== 'string' && typeof props.value !== 'number') {
|
|
44
|
+
const value = props.value;
|
|
45
|
+
const updateValue = (v) => {
|
|
46
|
+
if (cleanUp.isCancelled)
|
|
47
|
+
return;
|
|
48
|
+
input.value = v == null ? '' : String(v);
|
|
49
|
+
};
|
|
50
|
+
value.listenAndRepeat((v) => {
|
|
51
|
+
if (renderBatchState.active)
|
|
52
|
+
queueRenderUpdate(updateValue, updateValue, v);
|
|
53
|
+
else
|
|
54
|
+
updateValue(v);
|
|
55
|
+
}, cleanUp);
|
|
56
|
+
if (isDataWriter(value)) {
|
|
57
|
+
cleanUp.registerDomEvent(input, 'input', () => {
|
|
58
|
+
const nextValue = typeof value.value === 'number' ? input.valueAsNumber : input.value;
|
|
59
|
+
value.write(nextValue);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
input.value = String(props.value);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if ((props === null || props === void 0 ? void 0 : props.checked) !== undefined) {
|
|
68
|
+
if (typeof props.checked !== 'boolean') {
|
|
69
|
+
const checked = props.checked;
|
|
70
|
+
const updateChecked = (v) => {
|
|
71
|
+
if (cleanUp.isCancelled)
|
|
72
|
+
return;
|
|
73
|
+
input.checked = v !== null && v !== void 0 ? v : false;
|
|
74
|
+
};
|
|
75
|
+
checked.listenAndRepeat((v) => {
|
|
76
|
+
if (renderBatchState.active)
|
|
77
|
+
queueRenderUpdate(updateChecked, updateChecked, v);
|
|
78
|
+
else
|
|
79
|
+
updateChecked(v);
|
|
80
|
+
}, cleanUp);
|
|
81
|
+
if (isDataWriter(checked)) {
|
|
82
|
+
cleanUp.registerDomEvent(input, 'change', () => {
|
|
83
|
+
checked.write(input.checked);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
input.checked = props.checked;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
//# sourceMappingURL=input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/nodes/input.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ReadOnlyDataSource } from '@aurumjs/streams';
|
|
2
|
+
import { CancellationToken } from '@aurumjs/streams';
|
|
3
|
+
import { ClassType, StyleType } from '@aurumjs/streams';
|
|
4
|
+
import { Data, DataWriter } from '@aurumjs/streams';
|
|
5
|
+
export declare function isDataWriter<T>(source: ReadOnlyDataSource<T>): source is ReadOnlyDataSource<T> & DataWriter<T>;
|
|
6
|
+
export declare function handleClass(data: ClassType, cleanUp: CancellationToken): Data<string>;
|
|
7
|
+
export declare function handleStyle(data: StyleType, cleanUp: CancellationToken): Data<string>;
|
|
8
|
+
//# sourceMappingURL=rendering_helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rendering_helpers.d.ts","sourceRoot":"","sources":["../../../src/nodes/rendering_helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAElG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAU,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGpD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAE9G;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,CAiDrF;AAsBD,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,CAmDrF"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { ArrayDataSource, DataSource, MapDataSource } from '@aurumjs/streams';
|
|
2
|
+
import { dsMap, dsUnique } from '@aurumjs/streams';
|
|
3
|
+
import { aurumClassName, camelCaseToKebabCase } from '@aurumjs/streams';
|
|
4
|
+
import { isAurumStyleClass } from '@aurumjs/streams';
|
|
5
|
+
export function isDataWriter(source) {
|
|
6
|
+
return typeof source.write === 'function';
|
|
7
|
+
}
|
|
8
|
+
export function handleClass(data, cleanUp) {
|
|
9
|
+
if (typeof data === 'string') {
|
|
10
|
+
return data;
|
|
11
|
+
}
|
|
12
|
+
else if (isAurumStyleClass(data)) {
|
|
13
|
+
return data.attach(cleanUp);
|
|
14
|
+
}
|
|
15
|
+
else if (data instanceof DataSource) {
|
|
16
|
+
return data
|
|
17
|
+
.transform(dsUnique(), dsMap((v) => {
|
|
18
|
+
if (Array.isArray(v)) {
|
|
19
|
+
return v.join(' ');
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
return v;
|
|
23
|
+
}
|
|
24
|
+
}), cleanUp)
|
|
25
|
+
.withInitial(data.value);
|
|
26
|
+
}
|
|
27
|
+
else if (data instanceof ArrayDataSource) {
|
|
28
|
+
return data.reduce((p, c) => `${p} ${c}`, '', cleanUp);
|
|
29
|
+
}
|
|
30
|
+
else if (data instanceof MapDataSource || (typeof data === 'object' && !Array.isArray(data))) {
|
|
31
|
+
const result = aurumClassName(data, cleanUp);
|
|
32
|
+
return handleClass(result, cleanUp);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
let hasReactiveValue = false;
|
|
36
|
+
for (const i of data) {
|
|
37
|
+
if (i instanceof DataSource) {
|
|
38
|
+
hasReactiveValue = true;
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// Fully static class lists need no reactive machinery.
|
|
43
|
+
if (!hasReactiveValue) {
|
|
44
|
+
return buildClass(data, cleanUp);
|
|
45
|
+
}
|
|
46
|
+
const result = new DataSource(buildClass(data, cleanUp));
|
|
47
|
+
for (const i of data) {
|
|
48
|
+
if (i instanceof DataSource) {
|
|
49
|
+
i.transform(dsUnique(), cleanUp).listen((v) => {
|
|
50
|
+
result.update(buildClass(data, cleanUp));
|
|
51
|
+
}, cleanUp);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function buildClass(data, cleanUp) {
|
|
58
|
+
return data.reduce((p, c) => {
|
|
59
|
+
if (c == null) {
|
|
60
|
+
return p;
|
|
61
|
+
}
|
|
62
|
+
if (typeof c === 'string') {
|
|
63
|
+
return `${p} ${c}`;
|
|
64
|
+
}
|
|
65
|
+
else if (isAurumStyleClass(c)) {
|
|
66
|
+
return `${p} ${c.attach(cleanUp)}`;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
if (c.value) {
|
|
70
|
+
return `${p} ${c.value}`;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
return p;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}, '');
|
|
77
|
+
}
|
|
78
|
+
export function handleStyle(data, cleanUp) {
|
|
79
|
+
if (typeof data === 'string') {
|
|
80
|
+
return data;
|
|
81
|
+
}
|
|
82
|
+
else if (data instanceof DataSource) {
|
|
83
|
+
return data.transform(dsUnique(), dsMap((value) => (typeof value === 'string' ? value : serializeStyleSnapshot(value))), cleanUp);
|
|
84
|
+
}
|
|
85
|
+
else if (data instanceof MapDataSource) {
|
|
86
|
+
return data.toEntriesArrayDataSource(cleanUp).reduce((p, c) => {
|
|
87
|
+
if (c[1] === undefined || c[1] === null) {
|
|
88
|
+
return p;
|
|
89
|
+
}
|
|
90
|
+
return `${p}${camelCaseToKebabCase(c[0])}:${transformStyle(c[0], c[1])};`;
|
|
91
|
+
}, '', cleanUp);
|
|
92
|
+
}
|
|
93
|
+
else if (typeof data === 'object' && !Array.isArray(data)) {
|
|
94
|
+
const styles = data;
|
|
95
|
+
let hasReactiveValue = false;
|
|
96
|
+
for (const i in styles) {
|
|
97
|
+
if (styles[i] instanceof DataSource) {
|
|
98
|
+
hasReactiveValue = true;
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Fully static style objects are the most common case and need no reactive machinery.
|
|
103
|
+
if (!hasReactiveValue) {
|
|
104
|
+
return serializeStyleSnapshot(styles);
|
|
105
|
+
}
|
|
106
|
+
const result = new DataSource(serializeStyleSnapshot(styles));
|
|
107
|
+
for (const i in styles) {
|
|
108
|
+
const value = styles[i];
|
|
109
|
+
if (value instanceof DataSource) {
|
|
110
|
+
value.listen(() => {
|
|
111
|
+
const serialized = serializeStyleSnapshot(styles);
|
|
112
|
+
if (serialized !== result.value) {
|
|
113
|
+
result.update(serialized);
|
|
114
|
+
}
|
|
115
|
+
}, cleanUp);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
return '';
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function serializeStyleSnapshot(styles) {
|
|
125
|
+
let result = '';
|
|
126
|
+
for (const key in styles) {
|
|
127
|
+
const raw = styles[key];
|
|
128
|
+
const value = raw instanceof DataSource ? raw.value : raw;
|
|
129
|
+
if (value !== undefined && value !== null) {
|
|
130
|
+
result += `${camelCaseToKebabCase(key)}:${transformStyle(key, value)};`;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return result;
|
|
134
|
+
}
|
|
135
|
+
const stylesWithUnits = new Set([
|
|
136
|
+
'width',
|
|
137
|
+
'height',
|
|
138
|
+
'top',
|
|
139
|
+
'right',
|
|
140
|
+
'bottom',
|
|
141
|
+
'left',
|
|
142
|
+
'minWidth',
|
|
143
|
+
'minHeight',
|
|
144
|
+
'maxWidth',
|
|
145
|
+
'maxHeight',
|
|
146
|
+
'margin',
|
|
147
|
+
'marginTop',
|
|
148
|
+
'marginRight',
|
|
149
|
+
'marginBottom',
|
|
150
|
+
'marginLeft',
|
|
151
|
+
'padding',
|
|
152
|
+
'paddingLeft',
|
|
153
|
+
'paddingRight',
|
|
154
|
+
'paddingTop',
|
|
155
|
+
'paddingBottom',
|
|
156
|
+
'borderTopWidth',
|
|
157
|
+
'borderRightWidth',
|
|
158
|
+
'borderBottomWidth',
|
|
159
|
+
'borderLeftWidth',
|
|
160
|
+
'fontSize',
|
|
161
|
+
'gap',
|
|
162
|
+
'gridRowGap',
|
|
163
|
+
'gridColumnGap',
|
|
164
|
+
'borderRadius',
|
|
165
|
+
'borderWidth'
|
|
166
|
+
]);
|
|
167
|
+
function transformStyle(key, value) {
|
|
168
|
+
if (typeof value === 'number' && value !== 0 && stylesWithUnits.has(key)) {
|
|
169
|
+
return value + 'px';
|
|
170
|
+
}
|
|
171
|
+
return value.toString();
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=rendering_helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rendering_helpers.js","sourceRoot":"","sources":["../../../src/nodes/rendering_helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DOMEvent, HTMLNodeProps } from '../rendering/renderers/dom_adapter.js';
|
|
2
|
+
import { AttributeValue, DataDrain, ReadOnlyDataSource } from '@aurumjs/streams';
|
|
3
|
+
export interface SelectProps extends HTMLNodeProps<HTMLSelectElement> {
|
|
4
|
+
value?: ReadOnlyDataSource<string> | ReadOnlyDataSource<number> | string | number;
|
|
5
|
+
defaultValue?: string | number;
|
|
6
|
+
disabled?: AttributeValue;
|
|
7
|
+
size?: AttributeValue;
|
|
8
|
+
multiple?: AttributeValue;
|
|
9
|
+
required?: AttributeValue;
|
|
10
|
+
selectedIndex?: ReadOnlyDataSource<number> | number;
|
|
11
|
+
onChange?: DataDrain<DOMEvent<Event, HTMLSelectElement>>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export declare const Select: (props: SelectProps, children: import("@aurumjs/rendering").Renderable[], api: import("@aurumjs/rendering").AurumComponentAPI) => HTMLElement;
|
|
17
|
+
//# sourceMappingURL=select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/nodes/select.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAkB,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAIjF,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,iBAAiB,CAAC;IACjE,KAAK,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC;IAClF,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,aAAa,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACpD,QAAQ,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;CAC5D;AAOD;;GAEG;AACH,eAAO,MAAM,MAAM,+IAoFlB,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { DomNodeCreator } from '../rendering/renderers/dom_adapter.js';
|
|
2
|
+
import { queueRenderUpdate, renderBatchState } from '../rendering/render_batch.js';
|
|
3
|
+
import { isDataWriter } from './rendering_helpers.js';
|
|
4
|
+
/**
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
const selectEvents = { change: 'onChange' };
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export const Select = DomNodeCreator('select', ['size', 'multiple', 'required'], selectEvents, (node, props, cleanUp) => {
|
|
12
|
+
const select = node;
|
|
13
|
+
if ((props === null || props === void 0 ? void 0 : props.defaultValue) !== undefined)
|
|
14
|
+
select.value = String(props.defaultValue);
|
|
15
|
+
if ((props === null || props === void 0 ? void 0 : props.value) !== undefined || (props === null || props === void 0 ? void 0 : props.selectedIndex) !== undefined) {
|
|
16
|
+
// In case props.value is a data source we need to reapply the value when the children change because the children may be unstable/be removed and re-added which would falsify the state.
|
|
17
|
+
if (props.value !== undefined && typeof props.value !== 'string' && typeof props.value !== 'number') {
|
|
18
|
+
const value = props.value;
|
|
19
|
+
const mo = new MutationObserver(() => {
|
|
20
|
+
select.value = String(value.value);
|
|
21
|
+
});
|
|
22
|
+
mo.observe(select, {
|
|
23
|
+
childList: true
|
|
24
|
+
});
|
|
25
|
+
cleanUp.addCancellable(() => {
|
|
26
|
+
mo.disconnect();
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
if ((props === null || props === void 0 ? void 0 : props.selectedIndex) !== undefined && typeof props.selectedIndex !== 'number') {
|
|
30
|
+
const selectedIndex = props.selectedIndex;
|
|
31
|
+
const mo = new MutationObserver(() => {
|
|
32
|
+
select.selectedIndex = selectedIndex.value;
|
|
33
|
+
});
|
|
34
|
+
mo.observe(select, {
|
|
35
|
+
childList: true
|
|
36
|
+
});
|
|
37
|
+
cleanUp.addCancellable(() => {
|
|
38
|
+
mo.disconnect();
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
if ((props === null || props === void 0 ? void 0 : props.value) !== undefined && typeof props.value !== 'string' && typeof props.value !== 'number') {
|
|
42
|
+
const value = props.value;
|
|
43
|
+
const updateValue = (v) => {
|
|
44
|
+
if (cleanUp.isCancelled)
|
|
45
|
+
return;
|
|
46
|
+
select.value = String(v);
|
|
47
|
+
};
|
|
48
|
+
value.listenAndRepeat((v) => {
|
|
49
|
+
if (renderBatchState.active)
|
|
50
|
+
queueRenderUpdate(updateValue, updateValue, v);
|
|
51
|
+
else
|
|
52
|
+
updateValue(v);
|
|
53
|
+
}, cleanUp);
|
|
54
|
+
if (isDataWriter(value)) {
|
|
55
|
+
cleanUp.registerDomEvent(select, 'change', () => {
|
|
56
|
+
if (typeof value.value === 'number') {
|
|
57
|
+
value.write(Number(select.value));
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
value.write(select.value);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
select.value = props.value === undefined ? '' : String(props.value);
|
|
67
|
+
}
|
|
68
|
+
if ((props === null || props === void 0 ? void 0 : props.selectedIndex) !== undefined) {
|
|
69
|
+
if (typeof props.selectedIndex !== 'number') {
|
|
70
|
+
const selectedIndex = props.selectedIndex;
|
|
71
|
+
const updateSelectedIndex = (v) => {
|
|
72
|
+
if (cleanUp.isCancelled)
|
|
73
|
+
return;
|
|
74
|
+
select.selectedIndex = v;
|
|
75
|
+
};
|
|
76
|
+
selectedIndex.listenAndRepeat((v) => {
|
|
77
|
+
if (renderBatchState.active) {
|
|
78
|
+
queueRenderUpdate(updateSelectedIndex, updateSelectedIndex, v);
|
|
79
|
+
}
|
|
80
|
+
else
|
|
81
|
+
updateSelectedIndex(v);
|
|
82
|
+
}, cleanUp);
|
|
83
|
+
if (isDataWriter(selectedIndex)) {
|
|
84
|
+
cleanUp.registerDomEvent(select, 'change', () => {
|
|
85
|
+
selectedIndex.write(select.selectedIndex);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
select.selectedIndex = props.selectedIndex;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
//# sourceMappingURL=select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/nodes/select.ts"],"names":[],"mappings":"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"}
|