@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,525 @@
|
|
|
1
|
+
import { handleClass, handleStyle } from '../../nodes/rendering_helpers.js';
|
|
2
|
+
import { createRenderSession, linkAurumDomNodeChildren, registerAurumDomNode, registerAurumRenderBinding } from '@aurumjs/rendering';
|
|
3
|
+
import { AurumElement, renderInternal } from '../dom_runtime.js';
|
|
4
|
+
import { AURUM_DEVTOOLS_DEBUG_BUILD_ENABLED, DataSource } from '@aurumjs/streams';
|
|
5
|
+
import { writeTo } from '@aurumjs/streams';
|
|
6
|
+
import { queueRenderUpdate, renderBatchState } from '../render_batch.js';
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export const defaultEvents = {
|
|
11
|
+
drag: 'onDrag',
|
|
12
|
+
dragstart: 'onDragStart',
|
|
13
|
+
dragend: 'onDragEnd',
|
|
14
|
+
dragexit: 'onDragExit',
|
|
15
|
+
dragover: 'onDragOver',
|
|
16
|
+
dragenter: 'onDragEnter',
|
|
17
|
+
dragleave: 'onDragLeave',
|
|
18
|
+
drop: 'onDrop',
|
|
19
|
+
blur: 'onBlur',
|
|
20
|
+
focus: 'onFocus',
|
|
21
|
+
click: 'onClick',
|
|
22
|
+
dblclick: 'onDblClick',
|
|
23
|
+
// Standard DOM-style aliases retained alongside Aurum's historical names.
|
|
24
|
+
doubleclick: 'onDoubleClick',
|
|
25
|
+
keydown: 'onKeyDown',
|
|
26
|
+
keypress: 'onKeyPress',
|
|
27
|
+
keyup: 'onKeyUp',
|
|
28
|
+
contextmenu: 'onContextMenu',
|
|
29
|
+
mousedown: 'onMouseDown',
|
|
30
|
+
mouseup: 'onMouseUp',
|
|
31
|
+
mousemove: 'onMouseMove',
|
|
32
|
+
mouseenter: 'onMouseEnter',
|
|
33
|
+
mouseleave: 'onMouseLeave',
|
|
34
|
+
mousewheel: 'onMouseWheel',
|
|
35
|
+
wheel: 'onWheel',
|
|
36
|
+
load: 'onLoad',
|
|
37
|
+
error: 'onError',
|
|
38
|
+
transitionend: 'onTransitionEnd',
|
|
39
|
+
transitionstart: 'onTransitionStart',
|
|
40
|
+
transitionrun: 'onTransitionRun',
|
|
41
|
+
transitioncancel: 'onTransitionCancel',
|
|
42
|
+
animationend: 'onAnimationEnd',
|
|
43
|
+
animationstart: 'onAnimationStart',
|
|
44
|
+
animationiteration: 'onAnimationIteration',
|
|
45
|
+
animationcancel: 'onAnimationCancel',
|
|
46
|
+
auxclick: 'onAuxClick',
|
|
47
|
+
beforeinput: 'onBeforeInput',
|
|
48
|
+
beforematch: 'onBeforeMatch',
|
|
49
|
+
compositionend: 'onCompositionEnd',
|
|
50
|
+
compositionstart: 'onCompositionStart',
|
|
51
|
+
compositionupdate: 'onCompositionUpdate',
|
|
52
|
+
contentvisibilityautostatechange: 'onContentVisibilityAutoStateChange',
|
|
53
|
+
copy: 'onCopy',
|
|
54
|
+
cut: 'onCut',
|
|
55
|
+
paste: 'onPaste',
|
|
56
|
+
focusin: 'onFocusIn',
|
|
57
|
+
focusout: 'onFocusOut',
|
|
58
|
+
fullscreenchange: 'onFullscreenChange',
|
|
59
|
+
fullscreenerror: 'onFullscreenError',
|
|
60
|
+
gotpointercapture: 'onGotPointerCapture',
|
|
61
|
+
lostpointercapture: 'onLostPointerCapture',
|
|
62
|
+
pointercancel: 'onPointerCancel',
|
|
63
|
+
pointerdown: 'onPointerDown',
|
|
64
|
+
pointerenter: 'onPointerEnter',
|
|
65
|
+
pointerleave: 'onPointerLeave',
|
|
66
|
+
pointermove: 'onPointerMove',
|
|
67
|
+
pointerout: 'onPointerOut',
|
|
68
|
+
pointerover: 'onPointerOver',
|
|
69
|
+
pointerup: 'onPointerUp',
|
|
70
|
+
scroll: 'onScroll',
|
|
71
|
+
scrollend: 'onScrollEnd',
|
|
72
|
+
securitypolicyviolation: 'onSecurityPolicyViolation',
|
|
73
|
+
touchcancel: 'onTouchCancel',
|
|
74
|
+
touchend: 'onTouchEnd',
|
|
75
|
+
touchmove: 'onTouchMove',
|
|
76
|
+
touchstart: 'onTouchStart',
|
|
77
|
+
attach: 'onAttach',
|
|
78
|
+
detach: 'onDetach'
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* @internal
|
|
82
|
+
*/
|
|
83
|
+
export const defaultAttributes = [
|
|
84
|
+
'id',
|
|
85
|
+
'name',
|
|
86
|
+
'draggable',
|
|
87
|
+
'tabIndex',
|
|
88
|
+
'role',
|
|
89
|
+
'contenteditable',
|
|
90
|
+
'accesskey',
|
|
91
|
+
'autocapitalize',
|
|
92
|
+
'autofocus',
|
|
93
|
+
'dir',
|
|
94
|
+
'enterkeyhint',
|
|
95
|
+
'hidden',
|
|
96
|
+
'inert',
|
|
97
|
+
'inputmode',
|
|
98
|
+
'is',
|
|
99
|
+
'itemid',
|
|
100
|
+
'itemprop',
|
|
101
|
+
'itemref',
|
|
102
|
+
'itemscope',
|
|
103
|
+
'itemtype',
|
|
104
|
+
'lang',
|
|
105
|
+
'nonce',
|
|
106
|
+
'part',
|
|
107
|
+
'popover',
|
|
108
|
+
'spellcheck',
|
|
109
|
+
'translate',
|
|
110
|
+
'slot',
|
|
111
|
+
'title',
|
|
112
|
+
'ariaAtomic',
|
|
113
|
+
'ariaAutoComplete',
|
|
114
|
+
'ariaBrailleLabel',
|
|
115
|
+
'ariaBrailleRoleDescription',
|
|
116
|
+
'ariaBusy',
|
|
117
|
+
'ariaChecked',
|
|
118
|
+
'ariaColCount',
|
|
119
|
+
'ariaColIndex',
|
|
120
|
+
'ariaColIndexText',
|
|
121
|
+
'ariaColSpan',
|
|
122
|
+
'ariaControlsElements',
|
|
123
|
+
'ariaCurrent',
|
|
124
|
+
'ariaDescribedByElements',
|
|
125
|
+
'ariaDescription',
|
|
126
|
+
'ariaDetailsElements',
|
|
127
|
+
'ariaDisabled',
|
|
128
|
+
'ariaErrorMessageElements',
|
|
129
|
+
'ariaExpanded',
|
|
130
|
+
'ariaFlowToElements',
|
|
131
|
+
'ariaHasPopup',
|
|
132
|
+
'ariaHidden',
|
|
133
|
+
'ariaInvalid',
|
|
134
|
+
'ariaKeyShortcuts',
|
|
135
|
+
'ariaLabel',
|
|
136
|
+
'ariaLabelledByElements',
|
|
137
|
+
'ariaLevel',
|
|
138
|
+
'ariaLive',
|
|
139
|
+
'ariaModal',
|
|
140
|
+
'ariaMultiLine',
|
|
141
|
+
'ariaMultiSelectable',
|
|
142
|
+
'ariaOrientation',
|
|
143
|
+
'ariaOwnsElements',
|
|
144
|
+
'ariaPlaceholder',
|
|
145
|
+
'ariaPosInSet',
|
|
146
|
+
'ariaPressed',
|
|
147
|
+
'ariaReadOnly',
|
|
148
|
+
'ariaRelevant',
|
|
149
|
+
'ariaRequired',
|
|
150
|
+
'ariaRoleDescription',
|
|
151
|
+
'ariaRowCount',
|
|
152
|
+
'ariaRowIndex',
|
|
153
|
+
'ariaRowIndexText',
|
|
154
|
+
'ariaRowSpan',
|
|
155
|
+
'ariaSelected',
|
|
156
|
+
'ariaSetSize',
|
|
157
|
+
'ariaSort',
|
|
158
|
+
'ariaValueMax',
|
|
159
|
+
'ariaValueMin',
|
|
160
|
+
'ariaValueNow',
|
|
161
|
+
'ariaValueText'
|
|
162
|
+
];
|
|
163
|
+
export function DomNodeCreator(nodeName, extraAttributes, extraEvents, extraLogic, svg = false, bindAllValidAttributes = false) {
|
|
164
|
+
const acceptedAttributes = new Set([...defaultAttributes, ...(extraAttributes !== null && extraAttributes !== void 0 ? extraAttributes : [])].map(normalizeAttributeName));
|
|
165
|
+
const eventByProp = createEventMap(extraEvents);
|
|
166
|
+
return function (props, children, api) {
|
|
167
|
+
let node;
|
|
168
|
+
if (svg) {
|
|
169
|
+
node = document.createElementNS('http://www.w3.org/2000/svg', nodeName);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
node = document.createElement(nodeName);
|
|
173
|
+
}
|
|
174
|
+
if (AURUM_DEVTOOLS_DEBUG_BUILD_ENABLED)
|
|
175
|
+
registerAurumDomNode(node, api.cancellationToken, api.renderSession);
|
|
176
|
+
if (props) {
|
|
177
|
+
processHTMLNodeInternal(node, props, () => api.cancellationToken, acceptedAttributes, eventByProp, api.renderSession, bindAllValidAttributes);
|
|
178
|
+
}
|
|
179
|
+
//@ts-ignore
|
|
180
|
+
const renderedChildren = renderInternal(children, api.renderSession);
|
|
181
|
+
const childNodes = Array.isArray(renderedChildren) ? renderedChildren : renderedChildren ? [renderedChildren] : [];
|
|
182
|
+
connectChildren(node, childNodes);
|
|
183
|
+
if (AURUM_DEVTOOLS_DEBUG_BUILD_ENABLED) {
|
|
184
|
+
linkAurumDomNodeChildren(node, childNodes.filter((child) => child instanceof HTMLElement || child instanceof SVGElement), api.cancellationToken);
|
|
185
|
+
}
|
|
186
|
+
if (props) {
|
|
187
|
+
if (props.onAttach) {
|
|
188
|
+
api.onAttach(() => props.onAttach(node));
|
|
189
|
+
}
|
|
190
|
+
if (props.onDetach) {
|
|
191
|
+
api.onDetach(() => {
|
|
192
|
+
if (node.isConnected) {
|
|
193
|
+
node.parentElement.removeChild(node);
|
|
194
|
+
}
|
|
195
|
+
props.onDetach(node);
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
extraLogic === null || extraLogic === void 0 ? void 0 : extraLogic(node, props, api.cancellationToken);
|
|
200
|
+
return node;
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
/** Creates an intrinsic HTML host factory for tags without a specialized Aurum node implementation. */
|
|
204
|
+
export function createGenericIntrinsicFactory(nodeName) {
|
|
205
|
+
return DomNodeCreator(nodeName, undefined, undefined, undefined, false, true);
|
|
206
|
+
}
|
|
207
|
+
function connectChildren(target, children) {
|
|
208
|
+
if (children === undefined || children === null || children.length === 0) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
for (const child of children) {
|
|
212
|
+
if (!child) {
|
|
213
|
+
continue;
|
|
214
|
+
}
|
|
215
|
+
if (child instanceof Text || child instanceof HTMLElement || child instanceof SVGElement) {
|
|
216
|
+
target.appendChild(child);
|
|
217
|
+
}
|
|
218
|
+
else if (child instanceof AurumElement) {
|
|
219
|
+
child.attachToDom(target, target.childNodes.length);
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
if (typeof child === 'function') {
|
|
223
|
+
throw new Error(`Unexpected child type passed to DOM Node: function. Did you mean to use a component? To use a component use JSX syntax such as <MyComponent/> it works even with function references. <props.myReference/>`);
|
|
224
|
+
}
|
|
225
|
+
throw new Error(`Unexpected child type passed to DOM Node: ${children}. If this is a valid child type make sure you don't have 2 copies of Aurum loaded`);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
export function processHTMLNode(node, props, cleanUp, extraAttributes, extraEvents, renderSession, bindAllValidAttributes = false) {
|
|
230
|
+
processHTMLNodeInternal(node, props, () => cleanUp, new Set([...defaultAttributes, ...(extraAttributes !== null && extraAttributes !== void 0 ? extraAttributes : [])].map(normalizeAttributeName)), createEventMap(extraEvents), renderSession, bindAllValidAttributes);
|
|
231
|
+
}
|
|
232
|
+
function processHTMLNodeInternal(node, props, getCleanUp, acceptedAttributes, eventByProp, renderSession, bindAllValidAttributes = false) {
|
|
233
|
+
let boundAttributes;
|
|
234
|
+
for (const key of Object.keys(props)) {
|
|
235
|
+
const value = props[key];
|
|
236
|
+
if (value === undefined)
|
|
237
|
+
continue;
|
|
238
|
+
if (key === 'dangerouslySetInnerHTML') {
|
|
239
|
+
node.innerHTML = value.__html;
|
|
240
|
+
continue;
|
|
241
|
+
}
|
|
242
|
+
const eventName = eventByProp.get(key);
|
|
243
|
+
if (eventName !== undefined) {
|
|
244
|
+
if (value)
|
|
245
|
+
node.addEventListener(eventName === 'doubleclick' ? 'dblclick' : eventName, (event) => writeTo(value, event));
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
248
|
+
if (reservedIntrinsicProps.has(key) || typeof value === 'function')
|
|
249
|
+
continue;
|
|
250
|
+
const attributeName = normalizeAttributeName(key);
|
|
251
|
+
if (boundAttributes !== undefined && boundAttributes.has(attributeName))
|
|
252
|
+
continue;
|
|
253
|
+
if (acceptedAttributes.has(attributeName) || key.includes('-') || (bindAllValidAttributes && isValidGenericHTMLAttribute(node, key, value))) {
|
|
254
|
+
assignSourceToDOM(node, value, attributeName, getCleanUp, renderSession);
|
|
255
|
+
(boundAttributes !== null && boundAttributes !== void 0 ? boundAttributes : (boundAttributes = new Set())).add(attributeName);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
bindStyle(node, props.style, getCleanUp, renderSession);
|
|
259
|
+
bindClass(node, props.class, getCleanUp, renderSession);
|
|
260
|
+
}
|
|
261
|
+
function createEventMap(extraEvents) {
|
|
262
|
+
const result = new Map();
|
|
263
|
+
for (const eventName of Object.keys(defaultEvents))
|
|
264
|
+
result.set(defaultEvents[eventName], eventName);
|
|
265
|
+
if (extraEvents) {
|
|
266
|
+
for (const eventName of Object.keys(extraEvents))
|
|
267
|
+
result.set(extraEvents[eventName], eventName);
|
|
268
|
+
}
|
|
269
|
+
return result;
|
|
270
|
+
}
|
|
271
|
+
export function createEventHandlers(node, events, props) {
|
|
272
|
+
for (const key in events) {
|
|
273
|
+
if (props[events[key]]) {
|
|
274
|
+
//@ts-ignore
|
|
275
|
+
node.addEventListener(key === 'doubleclick' ? 'dblclick' : key, (e) => writeTo(props[events[key]], e));
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
const attributeAliases = Object.assign(Object.create(null), {
|
|
280
|
+
accessKey: 'accesskey',
|
|
281
|
+
acceptCharset: 'accept-charset',
|
|
282
|
+
autoComplete: 'autocomplete',
|
|
283
|
+
autoFocus: 'autofocus',
|
|
284
|
+
colSpan: 'colspan',
|
|
285
|
+
contentEditable: 'contenteditable',
|
|
286
|
+
crossOrigin: 'crossorigin',
|
|
287
|
+
dateTime: 'datetime',
|
|
288
|
+
formAction: 'formaction',
|
|
289
|
+
formEncType: 'formenctype',
|
|
290
|
+
formMethod: 'formmethod',
|
|
291
|
+
formNoValidate: 'formnovalidate',
|
|
292
|
+
formTarget: 'formtarget',
|
|
293
|
+
htmlFor: 'for',
|
|
294
|
+
maxLength: 'maxlength',
|
|
295
|
+
minLength: 'minlength',
|
|
296
|
+
noValidate: 'novalidate',
|
|
297
|
+
readOnly: 'readonly',
|
|
298
|
+
referrerPolicy: 'referrerpolicy',
|
|
299
|
+
rowSpan: 'rowspan',
|
|
300
|
+
spellCheck: 'spellcheck',
|
|
301
|
+
srcSet: 'srcset',
|
|
302
|
+
tabIndex: 'tabindex',
|
|
303
|
+
useMap: 'usemap',
|
|
304
|
+
autoPlay: 'autoplay',
|
|
305
|
+
strokeWidth: 'stroke-width',
|
|
306
|
+
strokeLinecap: 'stroke-linecap',
|
|
307
|
+
strokeLinejoin: 'stroke-linejoin'
|
|
308
|
+
});
|
|
309
|
+
const propertyNamesByAttribute = {
|
|
310
|
+
'accept-charset': 'acceptCharset',
|
|
311
|
+
accesskey: 'accessKey',
|
|
312
|
+
autocomplete: 'autocomplete',
|
|
313
|
+
autofocus: 'autofocus',
|
|
314
|
+
checked: 'checked',
|
|
315
|
+
colspan: 'colSpan',
|
|
316
|
+
contenteditable: 'contentEditable',
|
|
317
|
+
crossorigin: 'crossOrigin',
|
|
318
|
+
datetime: 'dateTime',
|
|
319
|
+
disabled: 'disabled',
|
|
320
|
+
for: 'htmlFor',
|
|
321
|
+
formnovalidate: 'formNoValidate',
|
|
322
|
+
maxlength: 'maxLength',
|
|
323
|
+
minlength: 'minLength',
|
|
324
|
+
multiple: 'multiple',
|
|
325
|
+
muted: 'muted',
|
|
326
|
+
novalidate: 'noValidate',
|
|
327
|
+
open: 'open',
|
|
328
|
+
readonly: 'readOnly',
|
|
329
|
+
referrerpolicy: 'referrerPolicy',
|
|
330
|
+
required: 'required',
|
|
331
|
+
rowspan: 'rowSpan',
|
|
332
|
+
selected: 'selected',
|
|
333
|
+
selectedindex: 'selectedIndex',
|
|
334
|
+
spellcheck: 'spellcheck',
|
|
335
|
+
tabindex: 'tabIndex',
|
|
336
|
+
usemap: 'useMap',
|
|
337
|
+
value: 'value'
|
|
338
|
+
};
|
|
339
|
+
const propertyBoundAttributes = new Set([
|
|
340
|
+
'checked',
|
|
341
|
+
'disabled',
|
|
342
|
+
'multiple',
|
|
343
|
+
'muted',
|
|
344
|
+
'open',
|
|
345
|
+
'readonly',
|
|
346
|
+
'required',
|
|
347
|
+
'selected',
|
|
348
|
+
'selectedindex',
|
|
349
|
+
'spellcheck',
|
|
350
|
+
'value'
|
|
351
|
+
]);
|
|
352
|
+
const reservedIntrinsicProps = new Set(['children', 'class', 'className', 'decorate', 'style', 'onAttach', 'onDetach']);
|
|
353
|
+
function normalizeAttributeName(key) {
|
|
354
|
+
const alias = attributeAliases[key];
|
|
355
|
+
if (alias !== undefined)
|
|
356
|
+
return alias;
|
|
357
|
+
if (key.length > 4 && key.startsWith('aria')) {
|
|
358
|
+
const fifthCharacter = key.charCodeAt(4);
|
|
359
|
+
if (fifthCharacter >= 65 && fifthCharacter <= 90) {
|
|
360
|
+
return key
|
|
361
|
+
.replace(/^aria/, 'aria-')
|
|
362
|
+
.replace(/([A-Z])/g, '-$1')
|
|
363
|
+
.toLowerCase()
|
|
364
|
+
.replace('aria--', 'aria-');
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
return key;
|
|
368
|
+
}
|
|
369
|
+
function propertyNameForAttribute(attributeName) {
|
|
370
|
+
var _a;
|
|
371
|
+
return (_a = propertyNamesByAttribute[attributeName.toLowerCase()]) !== null && _a !== void 0 ? _a : attributeName;
|
|
372
|
+
}
|
|
373
|
+
function isValidGenericHTMLAttribute(node, key, value) {
|
|
374
|
+
if (reservedIntrinsicProps.has(key) || key.startsWith('on') || typeof value === 'function')
|
|
375
|
+
return false;
|
|
376
|
+
const attributeName = normalizeAttributeName(key);
|
|
377
|
+
if (attributeName.startsWith('aria-') || attributeName.startsWith('data-'))
|
|
378
|
+
return true;
|
|
379
|
+
return propertyNameForAttribute(attributeName) in node;
|
|
380
|
+
}
|
|
381
|
+
function bindClass(node, value, getCleanUp, renderSession) {
|
|
382
|
+
if (!value)
|
|
383
|
+
return;
|
|
384
|
+
if (typeof value === 'string') {
|
|
385
|
+
node.setAttribute('class', value);
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
388
|
+
if (value instanceof DataSource) {
|
|
389
|
+
const cleanUp = getCleanUp();
|
|
390
|
+
registerAurumRenderBinding(value, node, 'class', cleanUp, renderSession);
|
|
391
|
+
const normalize = (next) => (Array.isArray(next) ? next.filter(Boolean).join(' ') : String(next !== null && next !== void 0 ? next : ''));
|
|
392
|
+
const updateClass = (next) => {
|
|
393
|
+
if (cleanUp.isCancelled)
|
|
394
|
+
return;
|
|
395
|
+
node.setAttribute('class', normalize(next));
|
|
396
|
+
};
|
|
397
|
+
let previousValue = normalize(value.value);
|
|
398
|
+
node.setAttribute('class', previousValue);
|
|
399
|
+
value.listen((next) => {
|
|
400
|
+
const normalized = normalize(next);
|
|
401
|
+
if (normalized === previousValue)
|
|
402
|
+
return;
|
|
403
|
+
previousValue = normalized;
|
|
404
|
+
if (renderBatchState.active)
|
|
405
|
+
queueRenderUpdate(updateClass, updateClass, normalized);
|
|
406
|
+
else
|
|
407
|
+
updateClass(normalized);
|
|
408
|
+
}, cleanUp);
|
|
409
|
+
return;
|
|
410
|
+
}
|
|
411
|
+
const cleanUp = getCleanUp();
|
|
412
|
+
const result = handleClass(value, cleanUp);
|
|
413
|
+
if (result instanceof DataSource) {
|
|
414
|
+
registerAurumRenderBinding(result, node, 'class', cleanUp, renderSession);
|
|
415
|
+
const updateClass = (next) => {
|
|
416
|
+
if (cleanUp.isCancelled)
|
|
417
|
+
return;
|
|
418
|
+
node.setAttribute('class', next);
|
|
419
|
+
};
|
|
420
|
+
result.listenAndRepeat((next) => {
|
|
421
|
+
if (renderBatchState.active)
|
|
422
|
+
queueRenderUpdate(updateClass, updateClass, next);
|
|
423
|
+
else
|
|
424
|
+
updateClass(next);
|
|
425
|
+
}, cleanUp);
|
|
426
|
+
}
|
|
427
|
+
else {
|
|
428
|
+
node.setAttribute('class', result);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
function bindStyle(node, value, getCleanUp, renderSession) {
|
|
432
|
+
if (!value)
|
|
433
|
+
return;
|
|
434
|
+
if (typeof value === 'string') {
|
|
435
|
+
node.setAttribute('style', value);
|
|
436
|
+
return;
|
|
437
|
+
}
|
|
438
|
+
const cleanUp = getCleanUp();
|
|
439
|
+
const result = handleStyle(value, cleanUp);
|
|
440
|
+
if (result instanceof DataSource) {
|
|
441
|
+
registerAurumRenderBinding(result, node, 'style', cleanUp, renderSession);
|
|
442
|
+
const updateStyle = (next) => {
|
|
443
|
+
if (cleanUp.isCancelled)
|
|
444
|
+
return;
|
|
445
|
+
node.setAttribute('style', next);
|
|
446
|
+
};
|
|
447
|
+
result.listenAndRepeat((next) => {
|
|
448
|
+
if (renderBatchState.active)
|
|
449
|
+
queueRenderUpdate(updateStyle, updateStyle, next);
|
|
450
|
+
else
|
|
451
|
+
updateStyle(next);
|
|
452
|
+
}, cleanUp);
|
|
453
|
+
}
|
|
454
|
+
else {
|
|
455
|
+
node.setAttribute('style', result);
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Renders Aurum content synchronously in line. In case no lifecycle sync object is provided you have to manually call fireOnAttach and dispose at the appropriate times to ensure proper lifecycle handling such as attach and detach events
|
|
460
|
+
* @param content Content to render
|
|
461
|
+
* @param syncLifecycle Optional lifecycle sync object. If provided the lifecycle of the rendered content will be synchronized with the provided lifecycle (meaning attach and detach events will be fired when the lifecycle fires them)
|
|
462
|
+
*/
|
|
463
|
+
export function aurumToHTML(content, syncLifecycle) {
|
|
464
|
+
const rs = createRenderSession();
|
|
465
|
+
const renderedContent = renderInternal(content, rs);
|
|
466
|
+
if (syncLifecycle) {
|
|
467
|
+
syncLifecycle.onAttach(() => rs.attachCalls.forEach((c) => c()));
|
|
468
|
+
syncLifecycle.onDetach(() => rs.sessionToken.cancel());
|
|
469
|
+
}
|
|
470
|
+
return {
|
|
471
|
+
content: renderedContent,
|
|
472
|
+
fireOnAttach: () => rs.attachCalls.forEach((c) => c()),
|
|
473
|
+
dispose: () => rs.sessionToken.cancel()
|
|
474
|
+
};
|
|
475
|
+
}
|
|
476
|
+
function assignSourceToDOM(node, data, attributeName, getCleanUp, renderSession) {
|
|
477
|
+
const propertyName = propertyNameForAttribute(attributeName);
|
|
478
|
+
const bindAsProperty = propertyBoundAttributes.has(attributeName.toLowerCase()) && propertyName in node;
|
|
479
|
+
const assign = (value) => {
|
|
480
|
+
if (bindAsProperty) {
|
|
481
|
+
node[propertyName] = value;
|
|
482
|
+
}
|
|
483
|
+
else if (typeof value === 'boolean') {
|
|
484
|
+
if (value)
|
|
485
|
+
node.setAttribute(attributeName, '');
|
|
486
|
+
else
|
|
487
|
+
node.removeAttribute(attributeName);
|
|
488
|
+
}
|
|
489
|
+
else {
|
|
490
|
+
node.setAttribute(attributeName, value.toString());
|
|
491
|
+
}
|
|
492
|
+
};
|
|
493
|
+
if (typeof data === 'string' || typeof data === 'number') {
|
|
494
|
+
assign(data);
|
|
495
|
+
}
|
|
496
|
+
else if (typeof data === 'boolean') {
|
|
497
|
+
assign(data);
|
|
498
|
+
}
|
|
499
|
+
else if (data instanceof DataSource) {
|
|
500
|
+
const cleanUp = getCleanUp();
|
|
501
|
+
registerAurumRenderBinding(data, node, `${bindAsProperty ? 'property' : 'attribute'}:${attributeName}`, cleanUp, renderSession);
|
|
502
|
+
if (typeof data.value === 'string' || typeof data.value === 'number' || typeof data.value === 'boolean')
|
|
503
|
+
assign(data.value);
|
|
504
|
+
const updateAttribute = (v) => {
|
|
505
|
+
if (cleanUp.isCancelled)
|
|
506
|
+
return;
|
|
507
|
+
if (typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean')
|
|
508
|
+
assign(v);
|
|
509
|
+
};
|
|
510
|
+
let previousValue = data.value;
|
|
511
|
+
data.listen((v) => {
|
|
512
|
+
if (v === previousValue || (Number.isNaN(v) && Number.isNaN(previousValue)))
|
|
513
|
+
return;
|
|
514
|
+
previousValue = v;
|
|
515
|
+
if (renderBatchState.active)
|
|
516
|
+
queueRenderUpdate(updateAttribute, updateAttribute, v);
|
|
517
|
+
else
|
|
518
|
+
updateAttribute(v);
|
|
519
|
+
}, cleanUp);
|
|
520
|
+
}
|
|
521
|
+
else {
|
|
522
|
+
throw new Error('Attributes only support types boolean, string, number and data sources');
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
//# sourceMappingURL=dom_adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom_adapter.js","sourceRoot":"","sources":["../../../../src/rendering/renderers/dom_adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string_adapter.d.ts","sourceRoot":"","sources":["../../../../src/rendering/renderers/string_adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,UAAU,EAGb,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAGjE,wBAAsB,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzG"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { createAPI, createRenderSession, isAurumDevtoolsDebugBuild, traceAurumComponentRender } from '@aurumjs/rendering';
|
|
2
|
+
import { ArrayDataSource, DataSource } from '@aurumjs/streams';
|
|
3
|
+
import { camelCaseToKebabCase } from '@aurumjs/streams';
|
|
4
|
+
import { getValueOf } from '@aurumjs/streams';
|
|
5
|
+
import { isAurumStyleClass } from '@aurumjs/streams';
|
|
6
|
+
export async function aurumToString(content, config = {}) {
|
|
7
|
+
return aurumToStringItem(content, config);
|
|
8
|
+
}
|
|
9
|
+
async function aurumToStringItem(content, config, parentSession) {
|
|
10
|
+
if (content === undefined || content === null || typeof content === 'boolean') {
|
|
11
|
+
return '';
|
|
12
|
+
}
|
|
13
|
+
if (Array.isArray(content)) {
|
|
14
|
+
const result = [];
|
|
15
|
+
for (const item of content) {
|
|
16
|
+
result.push(await aurumToStringItem(item, config, parentSession));
|
|
17
|
+
}
|
|
18
|
+
return result.join('');
|
|
19
|
+
}
|
|
20
|
+
if (content instanceof Promise) {
|
|
21
|
+
return aurumToStringItem((await content), config, parentSession);
|
|
22
|
+
}
|
|
23
|
+
if (['number', 'string', 'bigint'].includes(typeof content)) {
|
|
24
|
+
return content.toString();
|
|
25
|
+
}
|
|
26
|
+
else if (content instanceof DataSource) {
|
|
27
|
+
return aurumToStringItem(content.value, config, parentSession);
|
|
28
|
+
}
|
|
29
|
+
else if (content instanceof ArrayDataSource) {
|
|
30
|
+
return aurumToStringItem(content.getData(), config, parentSession);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
const item = content;
|
|
34
|
+
if (!item.isIntrinsic) {
|
|
35
|
+
const session = createRenderSession(parentSession);
|
|
36
|
+
try {
|
|
37
|
+
return await traceAurumComponentRender(item, session, () => {
|
|
38
|
+
const output = item.factory(item.props, item.children, createAPI(session));
|
|
39
|
+
const outputScope = isAurumDevtoolsDebugBuild() ? createRenderSession(session) : session;
|
|
40
|
+
if (outputScope !== session)
|
|
41
|
+
session.sessionToken.addCancellable(outputScope.sessionToken);
|
|
42
|
+
return aurumToStringItem(output, config, outputScope);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
finally {
|
|
46
|
+
session.sessionToken.cancel();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (config.tagBlacklist && config.tagBlacklist.includes(item.name)) {
|
|
50
|
+
return '';
|
|
51
|
+
}
|
|
52
|
+
if (config.tagWhitelist && !config.tagWhitelist.includes(item.name)) {
|
|
53
|
+
return '';
|
|
54
|
+
}
|
|
55
|
+
let propString = ' ';
|
|
56
|
+
let children = '';
|
|
57
|
+
if (item.children) {
|
|
58
|
+
children = await aurumToStringItem(item.children, config, parentSession);
|
|
59
|
+
}
|
|
60
|
+
for (const prop in item.props) {
|
|
61
|
+
if (config.attributeBlacklist && config.attributeBlacklist.includes(prop)) {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
if (config.attributeWhitelist && !config.attributeWhitelist.includes(prop)) {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (item.props[prop] != undefined) {
|
|
68
|
+
if (prop === 'style' && typeof item.props[prop] === 'object') {
|
|
69
|
+
propString = handleObjectStyle(propString, prop, item);
|
|
70
|
+
}
|
|
71
|
+
else if (prop === 'class' && typeof item.props[prop] === 'object') {
|
|
72
|
+
propString = handleObjectClass(propString, prop, item);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
propString += `${prop}="${item.props[prop].toString()}" `;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return `<${item.name}${propString.trimEnd()}>${children}</${item.name}>`;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// classes can be map like objects that map a class name to a boolean or boolean data source and the class only applies if the value is true
|
|
83
|
+
function handleObjectClass(propString, prop, item) {
|
|
84
|
+
return `${propString}${prop}="${resolveClass(item.props[prop])}" `;
|
|
85
|
+
}
|
|
86
|
+
function resolveClass(value) {
|
|
87
|
+
if (typeof value === 'string') {
|
|
88
|
+
return value;
|
|
89
|
+
}
|
|
90
|
+
if (isAurumStyleClass(value)) {
|
|
91
|
+
return value.className;
|
|
92
|
+
}
|
|
93
|
+
if (value instanceof DataSource) {
|
|
94
|
+
return resolveClass(value.value);
|
|
95
|
+
}
|
|
96
|
+
if (Array.isArray(value)) {
|
|
97
|
+
return value.map(resolveClass).filter(Boolean).join(' ');
|
|
98
|
+
}
|
|
99
|
+
if (typeof value === 'object' && value !== null) {
|
|
100
|
+
return Object.keys(value)
|
|
101
|
+
.filter((key) => getValueOf(value[key]))
|
|
102
|
+
.join(' ');
|
|
103
|
+
}
|
|
104
|
+
return '';
|
|
105
|
+
}
|
|
106
|
+
function handleObjectStyle(propString, prop, item) {
|
|
107
|
+
propString += `${prop}="${Object.keys(item.props[prop])
|
|
108
|
+
.map((key) => `${camelCaseToKebabCase(key)}:${getValueOf(item.props[prop][key])}`)
|
|
109
|
+
.join(';')};" `;
|
|
110
|
+
return propString;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=string_adapter.js.map
|