@dark-engine/platform-browser
Advanced tools
Comparing version
{ | ||
"name": "@dark-engine/platform-browser", | ||
"version": "0.9.3", | ||
"version": "0.9.4", | ||
"description": "Dark is lightweight (10 Kb gzipped) component-and-hook-based UI rendering engine for javascript apps without dependencies and written in Typescript 💫", | ||
@@ -5,0 +5,0 @@ "author": "AlexPlex", |
@@ -64,24 +64,59 @@ import { | ||
svg: true, | ||
animate: true, | ||
animateMotion: true, | ||
animateTransform: true, | ||
circle: true, | ||
clipPath: true, | ||
defs: true, | ||
desc: true, | ||
ellipse: true, | ||
feBlend: true, | ||
feColorMatrix: true, | ||
feComponentTransfer: true, | ||
feComposite: true, | ||
feConvolveMatrix: true, | ||
feDiffuseLighting: true, | ||
feDisplacementMap: true, | ||
feDistantLight: true, | ||
feDropShadow: true, | ||
feFlood: true, | ||
feFuncA: true, | ||
feFuncB: true, | ||
feFuncG: true, | ||
feFuncR: true, | ||
feGaussianBlur: true, | ||
feImage: true, | ||
feMerge: true, | ||
feMergeNode: true, | ||
feMorphology: true, | ||
feOffset: true, | ||
fePointLight: true, | ||
feSpecularLighting: true, | ||
feSpotLight: true, | ||
feTile: true, | ||
feTurbulence: true, | ||
filter: true, | ||
foreignObject: true, | ||
g: true, | ||
text: true, | ||
tspan: true, | ||
textPath: true, | ||
image: true, | ||
line: true, | ||
linearGradient: true, | ||
marker: true, | ||
mask: true, | ||
metadata: true, | ||
mpath: true, | ||
path: true, | ||
pattern: true, | ||
polygon: true, | ||
polyline: true, | ||
line: true, | ||
radialGradient: true, | ||
rect: true, | ||
stop: true, | ||
switch: true, | ||
symbol: true, | ||
text: true, | ||
textPath: true, | ||
tspan: true, | ||
use: true, | ||
image: true, | ||
symbol: true, | ||
defs: true, | ||
linearGradient: true, | ||
radialGradient: true, | ||
stop: true, | ||
clipPath: true, | ||
pattern: true, | ||
mask: true, | ||
marker: true, | ||
view: true, | ||
}; | ||
@@ -161,2 +196,3 @@ | ||
}); | ||
!stopAttrsMap[attrName] && element.setAttribute(attrName, nextAttrValue); | ||
@@ -163,0 +199,0 @@ } |
@@ -0,1 +1,2 @@ | ||
/* eslint-disable @typescript-eslint/no-namespace */ | ||
export { render } from './render'; | ||
@@ -7,1 +8,11 @@ export { createRoot } from './create-root'; | ||
export type { SyntheticEvent } from './events'; | ||
export const version = process.env.VERSION; | ||
declare global { | ||
namespace JSX { | ||
interface IntrinsicElements { | ||
[elemName: string]: Record<string, any>; | ||
} | ||
} | ||
} |
@@ -32,6 +32,6 @@ (function webpackUniversalModuleDefinition(root, factory) { | ||
return { | ||
render: function (element) { return (0,_render__WEBPACK_IMPORTED_MODULE_1__.render)(element, container); }, | ||
unmount: function () { | ||
var rootId = _render__WEBPACK_IMPORTED_MODULE_1__.roots.get(container); | ||
(0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.unmountRoot)(rootId, function () { | ||
render: (element) => (0,_render__WEBPACK_IMPORTED_MODULE_1__.render)(element, container), | ||
unmount: () => { | ||
const rootId = _render__WEBPACK_IMPORTED_MODULE_1__.roots.get(container); | ||
(0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.unmountRoot)(rootId, () => { | ||
_render__WEBPACK_IMPORTED_MODULE_1__.roots["delete"](container); | ||
@@ -81,55 +81,17 @@ container.innerHTML = ''; | ||
/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../events */ "./src/events/index.ts"); | ||
var __values = (undefined && undefined.__values) || function(o) { | ||
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; | ||
if (m) return m.call(o); | ||
if (o && typeof o.length === "number") return { | ||
next: function () { | ||
if (o && i >= o.length) o = void 0; | ||
return { value: o && o[i++], done: !o }; | ||
} | ||
}; | ||
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); | ||
}; | ||
var __read = (undefined && undefined.__read) || function (o, n) { | ||
var m = typeof Symbol === "function" && o[Symbol.iterator]; | ||
if (!m) return o; | ||
var i = m.call(o), r, ar = [], e; | ||
try { | ||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); | ||
} | ||
catch (error) { e = { error: error }; } | ||
finally { | ||
try { | ||
if (r && !r.done && (m = i["return"])) m.call(i); | ||
} | ||
finally { if (e) throw e.error; } | ||
} | ||
return ar; | ||
}; | ||
var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) { | ||
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { | ||
if (ar || !(i in from)) { | ||
if (!ar) ar = Array.prototype.slice.call(from, 0, i); | ||
ar[i] = from[i]; | ||
} | ||
} | ||
return to.concat(ar || Array.prototype.slice.call(from)); | ||
}; | ||
var _a; | ||
var attrBlackListMap = (_a = {}, | ||
_a[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.ATTR_KEY] = true, | ||
_a[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.ATTR_REF] = true, | ||
_a.void = true, | ||
_a); | ||
var fragmentsMap = new Map(); | ||
var trackUpdate = null; | ||
const attrBlackListMap = { | ||
[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.ATTR_KEY]: true, | ||
[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.ATTR_REF]: true, | ||
void: true, | ||
}; | ||
let fragmentsMap = new Map(); | ||
let trackUpdate = null; | ||
function createNativeElement(vNode) { | ||
var _a; | ||
var map = (_a = {}, | ||
_a[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.NodeType.TAG] = function (vNode) { | ||
var tagNode = vNode; | ||
var node = detectIsSvgElement(tagNode.name) | ||
const map = { | ||
[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.NodeType.TAG]: (vNode) => { | ||
const tagNode = vNode; | ||
const node = detectIsSvgElement(tagNode.name) | ||
? document.createElementNS('http://www.w3.org/2000/svg', tagNode.name) | ||
@@ -139,40 +101,75 @@ : document.createElement(tagNode.name); | ||
}, | ||
_a[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.NodeType.TEXT] = function (vNode) { | ||
var textNode = vNode; | ||
var node = document.createTextNode(textNode.value); | ||
[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.NodeType.TEXT]: (vNode) => { | ||
const textNode = vNode; | ||
const node = document.createTextNode(textNode.value); | ||
return node; | ||
}, | ||
_a[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.NodeType.COMMENT] = function (vNode) { | ||
var commentNode = vNode; | ||
var node = document.createComment(commentNode.value); | ||
[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.NodeType.COMMENT]: (vNode) => { | ||
const commentNode = vNode; | ||
const node = document.createComment(commentNode.value); | ||
return node; | ||
}, | ||
_a); | ||
}; | ||
return map[vNode.type](vNode); | ||
} | ||
function detectIsSvgElement(tagName) { | ||
var tagMap = { | ||
const tagMap = { | ||
svg: true, | ||
animate: true, | ||
animateMotion: true, | ||
animateTransform: true, | ||
circle: true, | ||
clipPath: true, | ||
defs: true, | ||
desc: true, | ||
ellipse: true, | ||
feBlend: true, | ||
feColorMatrix: true, | ||
feComponentTransfer: true, | ||
feComposite: true, | ||
feConvolveMatrix: true, | ||
feDiffuseLighting: true, | ||
feDisplacementMap: true, | ||
feDistantLight: true, | ||
feDropShadow: true, | ||
feFlood: true, | ||
feFuncA: true, | ||
feFuncB: true, | ||
feFuncG: true, | ||
feFuncR: true, | ||
feGaussianBlur: true, | ||
feImage: true, | ||
feMerge: true, | ||
feMergeNode: true, | ||
feMorphology: true, | ||
feOffset: true, | ||
fePointLight: true, | ||
feSpecularLighting: true, | ||
feSpotLight: true, | ||
feTile: true, | ||
feTurbulence: true, | ||
filter: true, | ||
foreignObject: true, | ||
g: true, | ||
text: true, | ||
tspan: true, | ||
textPath: true, | ||
image: true, | ||
line: true, | ||
linearGradient: true, | ||
marker: true, | ||
mask: true, | ||
metadata: true, | ||
mpath: true, | ||
path: true, | ||
pattern: true, | ||
polygon: true, | ||
polyline: true, | ||
line: true, | ||
radialGradient: true, | ||
rect: true, | ||
stop: true, | ||
switch: true, | ||
symbol: true, | ||
text: true, | ||
textPath: true, | ||
tspan: true, | ||
use: true, | ||
image: true, | ||
symbol: true, | ||
defs: true, | ||
linearGradient: true, | ||
radialGradient: true, | ||
stop: true, | ||
clipPath: true, | ||
pattern: true, | ||
mask: true, | ||
marker: true, | ||
view: true, | ||
}; | ||
@@ -190,102 +187,80 @@ return Boolean(tagMap[tagName]); | ||
function addAttributes(element, vNode) { | ||
var e_1, _a; | ||
if (!(0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.detectIsTagVirtualNode)(vNode)) | ||
return; | ||
var attrNames = Object.keys(vNode.attrs); | ||
try { | ||
for (var attrNames_1 = __values(attrNames), attrNames_1_1 = attrNames_1.next(); !attrNames_1_1.done; attrNames_1_1 = attrNames_1.next()) { | ||
var attrName = attrNames_1_1.value; | ||
var attrValue = vNode.attrs[attrName]; | ||
if (attrName === _dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.ATTR_REF) { | ||
applyRef(attrValue, element); | ||
continue; | ||
} | ||
if ((0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.detectIsFunction)(attrValue)) { | ||
if ((0,_events__WEBPACK_IMPORTED_MODULE_2__.detectIsEvent)(attrName)) { | ||
(0,_events__WEBPACK_IMPORTED_MODULE_2__.delegateEvent)({ | ||
target: element, | ||
handler: attrValue, | ||
eventName: (0,_events__WEBPACK_IMPORTED_MODULE_2__.getEventName)(attrName), | ||
}); | ||
} | ||
} | ||
else if (!(0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.detectIsUndefined)(attrValue) && !attrBlackListMap[attrName]) { | ||
var stopAttrsMap = upgradeInputAttributes({ | ||
tagName: vNode.name, | ||
value: attrValue, | ||
attrName: attrName, | ||
element: element, | ||
const attrNames = Object.keys(vNode.attrs); | ||
for (const attrName of attrNames) { | ||
const attrValue = vNode.attrs[attrName]; | ||
if (attrName === _dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.ATTR_REF) { | ||
applyRef(attrValue, element); | ||
continue; | ||
} | ||
if ((0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.detectIsFunction)(attrValue)) { | ||
if ((0,_events__WEBPACK_IMPORTED_MODULE_2__.detectIsEvent)(attrName)) { | ||
(0,_events__WEBPACK_IMPORTED_MODULE_2__.delegateEvent)({ | ||
target: element, | ||
handler: attrValue, | ||
eventName: (0,_events__WEBPACK_IMPORTED_MODULE_2__.getEventName)(attrName), | ||
}); | ||
!stopAttrsMap[attrName] && element.setAttribute(attrName, attrValue); | ||
} | ||
} | ||
} | ||
catch (e_1_1) { e_1 = { error: e_1_1 }; } | ||
finally { | ||
try { | ||
if (attrNames_1_1 && !attrNames_1_1.done && (_a = attrNames_1.return)) _a.call(attrNames_1); | ||
else if (!(0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.detectIsUndefined)(attrValue) && !attrBlackListMap[attrName]) { | ||
const stopAttrsMap = upgradeInputAttributes({ | ||
tagName: vNode.name, | ||
value: attrValue, | ||
attrName, | ||
element, | ||
}); | ||
!stopAttrsMap[attrName] && element.setAttribute(attrName, attrValue); | ||
} | ||
finally { if (e_1) throw e_1.error; } | ||
} | ||
} | ||
function updateAttributes(element, vNode, nextVNode) { | ||
var e_2, _a; | ||
var attrNames = new Set(__spreadArray(__spreadArray([], __read(Object.keys(vNode.attrs)), false), __read(Object.keys(nextVNode.attrs)), false)); | ||
try { | ||
for (var attrNames_2 = __values(attrNames), attrNames_2_1 = attrNames_2.next(); !attrNames_2_1.done; attrNames_2_1 = attrNames_2.next()) { | ||
var attrName = attrNames_2_1.value; | ||
var prevAttrValue = vNode.attrs[attrName]; | ||
var nextAttrValue = nextVNode.attrs[attrName]; | ||
if (attrName === _dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.ATTR_REF) { | ||
applyRef(prevAttrValue, element); | ||
continue; | ||
} | ||
if (!(0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.detectIsUndefined)(nextAttrValue)) { | ||
if ((0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.detectIsFunction)(prevAttrValue)) { | ||
if ((0,_events__WEBPACK_IMPORTED_MODULE_2__.detectIsEvent)(attrName) && prevAttrValue !== nextAttrValue) { | ||
(0,_events__WEBPACK_IMPORTED_MODULE_2__.delegateEvent)({ | ||
target: element, | ||
handler: nextAttrValue, | ||
eventName: (0,_events__WEBPACK_IMPORTED_MODULE_2__.getEventName)(attrName), | ||
}); | ||
} | ||
} | ||
else if (!attrBlackListMap[attrName] && prevAttrValue !== nextAttrValue) { | ||
var stopAttrsMap = upgradeInputAttributes({ | ||
tagName: nextVNode.name, | ||
value: nextAttrValue, | ||
attrName: attrName, | ||
element: element, | ||
const attrNames = new Set([...Object.keys(vNode.attrs), ...Object.keys(nextVNode.attrs)]); | ||
for (const attrName of attrNames) { | ||
const prevAttrValue = vNode.attrs[attrName]; | ||
const nextAttrValue = nextVNode.attrs[attrName]; | ||
if (attrName === _dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.ATTR_REF) { | ||
applyRef(prevAttrValue, element); | ||
continue; | ||
} | ||
if (!(0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.detectIsUndefined)(nextAttrValue)) { | ||
if ((0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.detectIsFunction)(prevAttrValue)) { | ||
if ((0,_events__WEBPACK_IMPORTED_MODULE_2__.detectIsEvent)(attrName) && prevAttrValue !== nextAttrValue) { | ||
(0,_events__WEBPACK_IMPORTED_MODULE_2__.delegateEvent)({ | ||
target: element, | ||
handler: nextAttrValue, | ||
eventName: (0,_events__WEBPACK_IMPORTED_MODULE_2__.getEventName)(attrName), | ||
}); | ||
!stopAttrsMap[attrName] && element.setAttribute(attrName, nextAttrValue); | ||
} | ||
} | ||
else { | ||
element.removeAttribute(attrName); | ||
else if (!attrBlackListMap[attrName] && prevAttrValue !== nextAttrValue) { | ||
const stopAttrsMap = upgradeInputAttributes({ | ||
tagName: nextVNode.name, | ||
value: nextAttrValue, | ||
attrName, | ||
element, | ||
}); | ||
!stopAttrsMap[attrName] && element.setAttribute(attrName, nextAttrValue); | ||
} | ||
} | ||
} | ||
catch (e_2_1) { e_2 = { error: e_2_1 }; } | ||
finally { | ||
try { | ||
if (attrNames_2_1 && !attrNames_2_1.done && (_a = attrNames_2.return)) _a.call(attrNames_2); | ||
else { | ||
element.removeAttribute(attrName); | ||
} | ||
finally { if (e_2) throw e_2.error; } | ||
} | ||
} | ||
var INPUT_STOP_ATTRS_MAP = { | ||
const INPUT_STOP_ATTRS_MAP = { | ||
value: true, | ||
checked: true, | ||
}; | ||
var TEXTAREA_STOP_ATTRS_MAP = { | ||
const TEXTAREA_STOP_ATTRS_MAP = { | ||
value: true, | ||
}; | ||
var OPTIONS_STOP_ATTRS_MAP = { | ||
const OPTIONS_STOP_ATTRS_MAP = { | ||
selected: true, | ||
}; | ||
var DEFAULT_STOP_ATTRS_MAP = {}; | ||
const DEFAULT_STOP_ATTRS_MAP = {}; | ||
function upgradeInputAttributes(options) { | ||
var tagName = options.tagName, element = options.element, attrName = options.attrName, value = options.value; | ||
var map = { | ||
input: function () { | ||
const { tagName, element, attrName, value } = options; | ||
const map = { | ||
input: () => { | ||
if (INPUT_STOP_ATTRS_MAP[attrName]) { | ||
@@ -296,3 +271,3 @@ element[attrName] = value; | ||
}, | ||
textarea: function () { | ||
textarea: () => { | ||
if (TEXTAREA_STOP_ATTRS_MAP[attrName]) { | ||
@@ -303,3 +278,3 @@ element[attrName] = value; | ||
}, | ||
option: function () { | ||
option: () => { | ||
if (OPTIONS_STOP_ATTRS_MAP[attrName]) { | ||
@@ -314,3 +289,3 @@ element[attrName] = value; | ||
function getParentFiberWithNativeElement(fiber) { | ||
var nextFiber = fiber; | ||
let nextFiber = fiber; | ||
while (nextFiber) { | ||
@@ -327,7 +302,6 @@ nextFiber = nextFiber.parent; | ||
function getNodeOnTheRight(fiber, parentElement) { | ||
var node = null; | ||
let node = null; | ||
(0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.walkFiber)({ | ||
fiber: fiber, | ||
onLoop: function (_a) { | ||
var nextFiber = _a.nextFiber, stop = _a.stop, resetIsDeepWalking = _a.resetIsDeepWalking; | ||
fiber, | ||
onLoop: ({ nextFiber, stop, resetIsDeepWalking }) => { | ||
if (nextFiber.nativeElement && nextFiber.nativeElement.parentElement === parentElement) { | ||
@@ -345,6 +319,5 @@ node = nextFiber.nativeElement; | ||
function getChildIndex(fiber, parentNativeElement) { | ||
var _a; | ||
var nextFiber = fiber; | ||
let nextFiber = fiber; | ||
while (nextFiber) { | ||
if (((_a = nextFiber === null || nextFiber === void 0 ? void 0 : nextFiber.parent) === null || _a === void 0 ? void 0 : _a.nativeElement) === parentNativeElement) { | ||
if (nextFiber?.parent?.nativeElement === parentNativeElement) { | ||
return nextFiber.idx; | ||
@@ -357,14 +330,14 @@ } | ||
function commitCreation(fiber) { | ||
var parentFiber = getParentFiberWithNativeElement(fiber); | ||
var parentNativeElement = parentFiber.nativeElement; | ||
var childNodes = parentNativeElement.childNodes; | ||
var append = function () { | ||
var fragment = (fragmentsMap.get(parentNativeElement) || | ||
const parentFiber = getParentFiberWithNativeElement(fiber); | ||
const parentNativeElement = parentFiber.nativeElement; | ||
const childNodes = parentNativeElement.childNodes; | ||
const append = () => { | ||
const { fragment } = fragmentsMap.get(parentNativeElement) || | ||
{ | ||
fragment: document.createDocumentFragment(), | ||
callback: function () { }, | ||
}).fragment; | ||
callback: () => { }, | ||
}; | ||
fragmentsMap.set(parentNativeElement, { | ||
fragment: fragment, | ||
callback: function () { | ||
fragment, | ||
callback: () => { | ||
parentNativeElement.appendChild(fragment); | ||
@@ -376,3 +349,3 @@ }, | ||
}; | ||
var insert = function () { | ||
const insert = () => { | ||
parentNativeElement.insertBefore(fiber.nativeElement, getNodeOnTheRight(fiber, parentNativeElement)); | ||
@@ -400,7 +373,6 @@ fiber.markMountedToHost(); | ||
function commitDeletion(fiber) { | ||
var parentFiber = getParentFiberWithNativeElement(fiber); | ||
const parentFiber = getParentFiberWithNativeElement(fiber); | ||
(0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.walkFiber)({ | ||
fiber: fiber, | ||
onLoop: function (_a) { | ||
var nextFiber = _a.nextFiber, isReturn = _a.isReturn, resetIsDeepWalking = _a.resetIsDeepWalking, stop = _a.stop; | ||
fiber, | ||
onLoop: ({ nextFiber, isReturn, resetIsDeepWalking, stop }) => { | ||
if (nextFiber === fiber.nextSibling || nextFiber === fiber.parent) { | ||
@@ -417,5 +389,4 @@ return stop(); | ||
function applyCommit(fiber) { | ||
var _a; | ||
var map = (_a = {}, | ||
_a[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.EffectTag.CREATE] = function () { | ||
const map = { | ||
[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.EffectTag.CREATE]: () => { | ||
if (fiber.nativeElement === null) | ||
@@ -426,3 +397,3 @@ return; | ||
}, | ||
_a[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.EffectTag.UPDATE] = function () { | ||
[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.EffectTag.UPDATE]: () => { | ||
if (fiber.nativeElement === null || | ||
@@ -436,22 +407,11 @@ !(0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.detectIsVirtualNode)(fiber.alternate.instance) || | ||
}, | ||
_a[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.EffectTag.DELETE] = function () { return commitDeletion(fiber); }, | ||
_a[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.EffectTag.SKIP] = function () { }, | ||
_a); | ||
[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.EffectTag.DELETE]: () => commitDeletion(fiber), | ||
[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.EffectTag.SKIP]: () => { }, | ||
}; | ||
map[fiber.effectTag](); | ||
} | ||
function finishCommitWork() { | ||
var e_3, _a; | ||
try { | ||
for (var _b = __values(fragmentsMap.values()), _c = _b.next(); !_c.done; _c = _b.next()) { | ||
var callback = _c.value.callback; | ||
callback(); | ||
} | ||
for (const { callback } of fragmentsMap.values()) { | ||
callback(); | ||
} | ||
catch (e_3_1) { e_3 = { error: e_3_1 }; } | ||
finally { | ||
try { | ||
if (_c && !_c.done && (_a = _b.return)) _a.call(_b); | ||
} | ||
finally { if (e_3) throw e_3.error; } | ||
} | ||
fragmentsMap = new Map(); | ||
@@ -516,8 +476,8 @@ } | ||
var SyntheticEvent = /** @class */ (function () { | ||
function SyntheticEvent(options) { | ||
this.type = ''; | ||
this.sourceEvent = null; | ||
this.target = null; | ||
this.propagation = true; | ||
class SyntheticEvent { | ||
type = ''; | ||
sourceEvent = null; | ||
target = null; | ||
propagation = true; | ||
constructor(options) { | ||
this.type = options.sourceEvent.type; | ||
@@ -527,27 +487,26 @@ this.sourceEvent = options.sourceEvent; | ||
} | ||
SyntheticEvent.prototype.stopPropagation = function () { | ||
stopPropagation() { | ||
this.propagation = false; | ||
this.sourceEvent.stopPropagation(); | ||
}; | ||
SyntheticEvent.prototype.preventDefault = function () { | ||
} | ||
preventDefault() { | ||
this.sourceEvent.preventDefault(); | ||
}; | ||
SyntheticEvent.prototype.getPropagation = function () { | ||
} | ||
getPropagation() { | ||
return this.propagation; | ||
}; | ||
return SyntheticEvent; | ||
}()); | ||
} | ||
} | ||
function delegateEvent(options) { | ||
var target = options.target, eventName = options.eventName, handler = options.handler; | ||
var eventsMap = _dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.eventsStore.get(); | ||
var handlerMap = eventsMap.get(eventName); | ||
const { target, eventName, handler } = options; | ||
const eventsMap = _dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.eventsStore.get(); | ||
const handlerMap = eventsMap.get(eventName); | ||
if (!handlerMap) { | ||
var rootHandler_1 = function (event) { | ||
var fireEvent = eventsMap.get(eventName).get(event.target); | ||
var target = event.target; | ||
var syntheticEvent = null; | ||
const rootHandler = (event) => { | ||
const fireEvent = eventsMap.get(eventName).get(event.target); | ||
const target = event.target; | ||
let syntheticEvent = null; | ||
if ((0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.detectIsFunction)(fireEvent)) { | ||
syntheticEvent = new SyntheticEvent({ | ||
sourceEvent: event, | ||
target: target, | ||
target, | ||
}); | ||
@@ -561,4 +520,4 @@ fireEvent(syntheticEvent); | ||
eventsMap.set(eventName, new WeakMap([[target, handler]])); | ||
document.addEventListener(eventName, rootHandler_1, true); | ||
_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.eventsStore.addUnsubscriber(function () { return document.removeEventListener(eventName, rootHandler_1, true); }); | ||
document.addEventListener(eventName, rootHandler, true); | ||
_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.eventsStore.addUnsubscriber(() => document.removeEventListener(eventName, rootHandler, true)); | ||
} | ||
@@ -569,4 +528,4 @@ else { | ||
} | ||
var detectIsEvent = function (attrName) { return attrName.startsWith('on'); }; | ||
var getEventName = function (attrName) { return attrName.slice(2, attrName.length).toLowerCase(); }; | ||
const detectIsEvent = (attrName) => attrName.startsWith('on'); | ||
const getEventName = (attrName) => attrName.slice(2, attrName.length).toLowerCase(); | ||
@@ -630,35 +589,18 @@ | ||
/* harmony import */ var _dark_engine_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__); | ||
var __rest = (undefined && undefined.__rest) || function (s, e) { | ||
var t = {}; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) | ||
t[p] = s[p]; | ||
if (s != null && typeof Object.getOwnPropertySymbols === "function") | ||
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { | ||
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) | ||
t[p[i]] = s[p[i]]; | ||
} | ||
return t; | ||
}; | ||
var $$portal = Symbol('portal'); | ||
const $$portal = Symbol('portal'); | ||
function createPortal(slot, container) { | ||
var _a; | ||
if (!(container instanceof Element)) { | ||
throw new Error("[Dark]: createPortal receives only Element as container!"); | ||
throw new Error(`[Dark]: createPortal receives only Element as container!`); | ||
} | ||
return Portal((_a = {}, _a[$$portal] = container, _a.slot = slot, _a)); | ||
return Portal({ [$$portal]: container, slot }); | ||
} | ||
var Portal = (0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.createComponent)(function (_a) { | ||
var slot = _a.slot, rest = __rest(_a, ["slot"]); | ||
(0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () { return (rest[$$portal].innerHTML = ''); }, []); | ||
const Portal = (0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.createComponent)(({ slot, ...rest }) => { | ||
(0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => (rest[$$portal].innerHTML = ''), []); | ||
return slot; | ||
}, { token: $$portal }); | ||
var detectIsPortal = function (factory) { | ||
return (0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.detectIsComponentFactory)(factory) && factory.token === $$portal; | ||
}; | ||
var getPortalContainer = function (factory) { | ||
return detectIsPortal(factory) ? factory.props[$$portal] : null; | ||
}; | ||
const detectIsPortal = (factory) => (0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.detectIsComponentFactory)(factory) && factory.token === $$portal; | ||
const getPortalContainer = (factory) => detectIsPortal(factory) ? factory.props[$$portal] : null; | ||
function unmountPortal(fiber) { | ||
var container = getPortalContainer(fiber.instance); | ||
const container = getPortalContainer(fiber.instance); | ||
if (container) { | ||
@@ -718,9 +660,9 @@ container.innerHTML = ''; | ||
_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.platform.unmountPortal = _portal__WEBPACK_IMPORTED_MODULE_2__.unmountPortal; | ||
var roots = new Map(); | ||
const roots = new Map(); | ||
function render(element, container) { | ||
if (!(container instanceof Element)) { | ||
throw new Error("[Dark]: render receives only Element as container!"); | ||
throw new Error(`[Dark]: render receives only Element as container!`); | ||
} | ||
var isMounted = !(0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.detectIsUndefined)(roots.get(container)); | ||
var rootId = null; | ||
const isMounted = !(0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.detectIsUndefined)(roots.get(container)); | ||
let rootId = null; | ||
if (!isMounted) { | ||
@@ -734,6 +676,6 @@ rootId = roots.size; | ||
} | ||
var callback = function () { | ||
const callback = () => { | ||
_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.rootStore.set(rootId); // important order! | ||
var currentRoot = _dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.currentRootStore.get(); | ||
var fiber = new _dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.Fiber({ | ||
const currentRoot = _dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.currentRootStore.get(); | ||
const fiber = new _dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.Fiber({ | ||
nativeElement: container, | ||
@@ -789,20 +731,4 @@ instance: new _dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.TagVirtualNode({ | ||
/* harmony import */ var _dark_engine_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__); | ||
var __read = (undefined && undefined.__read) || function (o, n) { | ||
var m = typeof Symbol === "function" && o[Symbol.iterator]; | ||
if (!m) return o; | ||
var i = m.call(o), r, ar = [], e; | ||
try { | ||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); | ||
} | ||
catch (error) { e = { error: error }; } | ||
finally { | ||
try { | ||
if (r && !r.done && (m = i["return"])) m.call(i); | ||
} | ||
finally { if (e) throw e.error; } | ||
} | ||
return ar; | ||
}; | ||
var queueByPriority = { | ||
const queueByPriority = { | ||
hight: [], | ||
@@ -813,9 +739,16 @@ normal: [], | ||
}; | ||
var YEILD_INTERVAL = 10; | ||
var scheduledCallback = null; | ||
var deadline = 0; | ||
var isMessageLoopRunning = false; | ||
var currentTask = null; | ||
var Task = /** @class */ (function () { | ||
function Task(options) { | ||
const YEILD_INTERVAL = 10; | ||
let scheduledCallback = null; | ||
let deadline = 0; | ||
let isMessageLoopRunning = false; | ||
let currentTask = null; | ||
class Task { | ||
static nextTaskId = 0; | ||
id; | ||
time; | ||
timeoutMs; | ||
priority; | ||
forceSync; | ||
callback; | ||
constructor(options) { | ||
this.id = ++Task.nextTaskId; | ||
@@ -828,15 +761,12 @@ this.time = options.time; | ||
} | ||
Task.nextTaskId = 0; | ||
return Task; | ||
}()); | ||
var shouldYeildToHost = function () { return (0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.getTime)() >= deadline; }; | ||
} | ||
const shouldYeildToHost = () => (0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.getTime)() >= deadline; | ||
function scheduleCallback(callback, options) { | ||
var _a; | ||
var _b = options || {}, _c = _b.priority, priority = _c === void 0 ? _dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.TaskPriority.NORMAL : _c, _d = _b.timeoutMs, timeoutMs = _d === void 0 ? 0 : _d, _e = _b.forceSync, forceSync = _e === void 0 ? false : _e; | ||
var task = new Task({ time: (0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.getTime)(), timeoutMs: timeoutMs, priority: priority, forceSync: forceSync, callback: callback }); | ||
var map = (_a = {}, | ||
_a[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.TaskPriority.HIGH] = function () { return queueByPriority.hight.push(task); }, | ||
_a[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.TaskPriority.NORMAL] = function () { return queueByPriority.normal.push(task); }, | ||
_a[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.TaskPriority.LOW] = function () { return (task.timeoutMs > 0 ? queueByPriority.low2.push(task) : queueByPriority.low1.push(task)); }, | ||
_a); | ||
const { priority = _dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.TaskPriority.NORMAL, timeoutMs = 0, forceSync = false } = options || {}; | ||
const task = new Task({ time: (0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.getTime)(), timeoutMs, priority, forceSync, callback }); | ||
const map = { | ||
[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.TaskPriority.HIGH]: () => queueByPriority.hight.push(task), | ||
[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.TaskPriority.NORMAL]: () => queueByPriority.normal.push(task), | ||
[_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.TaskPriority.LOW]: () => (task.timeoutMs > 0 ? queueByPriority.low2.push(task) : queueByPriority.low1.push(task)), | ||
}; | ||
map[task.priority](); | ||
@@ -859,3 +789,3 @@ executeTasks(); | ||
function executeTasks() { | ||
var isBusy = Boolean(_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.wipRootStore.get()); | ||
const isBusy = Boolean(_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.wipRootStore.get()); | ||
if (!isBusy) { | ||
@@ -865,7 +795,7 @@ checkOverdueTasks() || | ||
pick(queueByPriority.normal) || | ||
requestIdleCallback(function () { return pick(queueByPriority.low1) || pick(queueByPriority.low2); }); | ||
requestIdleCallback(() => pick(queueByPriority.low1) || pick(queueByPriority.low2)); | ||
} | ||
} | ||
function checkOverdueTasks() { | ||
var _a = __read(queueByPriority.low2, 1), task = _a[0]; | ||
const [task] = queueByPriority.low2; | ||
if (task && (0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.getTime)() - task.time > task.timeoutMs) { | ||
@@ -881,3 +811,3 @@ pick(queueByPriority.low2); | ||
try { | ||
var hasMoreWork = scheduledCallback(); | ||
const hasMoreWork = scheduledCallback(); | ||
if (!hasMoreWork) { | ||
@@ -917,4 +847,4 @@ currentTask = null; | ||
} | ||
var channel = null; | ||
var port = null; | ||
let channel = null; | ||
let port = null; | ||
function setup() { | ||
@@ -960,36 +890,7 @@ if (false) {} | ||
/* harmony import */ var _dark_engine_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__); | ||
var __read = (undefined && undefined.__read) || function (o, n) { | ||
var m = typeof Symbol === "function" && o[Symbol.iterator]; | ||
if (!m) return o; | ||
var i = m.call(o), r, ar = [], e; | ||
try { | ||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); | ||
} | ||
catch (error) { e = { error: error }; } | ||
finally { | ||
try { | ||
if (r && !r.done && (m = i["return"])) m.call(i); | ||
} | ||
finally { if (e) throw e.error; } | ||
} | ||
return ar; | ||
}; | ||
var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) { | ||
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { | ||
if (ar || !(i in from)) { | ||
if (!ar) ar = Array.prototype.slice.call(from, 0, i); | ||
ar[i] = from[i]; | ||
} | ||
} | ||
return to.concat(ar || Array.prototype.slice.call(from)); | ||
}; | ||
function styled(strings) { | ||
var args = []; | ||
for (var _i = 1; _i < arguments.length; _i++) { | ||
args[_i - 1] = arguments[_i]; | ||
} | ||
var style = (0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () { | ||
function styled(strings, ...args) { | ||
const style = (0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => { | ||
return strings | ||
.map(function (x, idx) { return x + (!(0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.detectIsUndefined)(args[idx]) ? args[idx] : ''); }) | ||
.map((x, idx) => x + (!(0,_dark_engine_core__WEBPACK_IMPORTED_MODULE_0__.detectIsUndefined)(args[idx]) ? args[idx] : '')) | ||
.join('') | ||
@@ -999,3 +900,3 @@ .replace(/;\s*/gm, ';') | ||
.trim(); | ||
}, __spreadArray([strings], __read(args), false)); | ||
}, [strings, ...args]); | ||
return style; | ||
@@ -1101,3 +1002,4 @@ } | ||
/* harmony export */ "setTrackUpdate": () => (/* reexport safe */ _dom__WEBPACK_IMPORTED_MODULE_4__.setTrackUpdate), | ||
/* harmony export */ "useStyle": () => (/* reexport safe */ _use_style__WEBPACK_IMPORTED_MODULE_3__.useStyle) | ||
/* harmony export */ "useStyle": () => (/* reexport safe */ _use_style__WEBPACK_IMPORTED_MODULE_3__.useStyle), | ||
/* harmony export */ "version": () => (/* binding */ version) | ||
/* harmony export */ }); | ||
@@ -1109,2 +1011,3 @@ /* harmony import */ var _render__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./render */ "./src/render/index.ts"); | ||
/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dom */ "./src/dom/index.ts"); | ||
/* eslint-disable @typescript-eslint/no-namespace */ | ||
@@ -1115,2 +1018,3 @@ | ||
const version = "0.9.4"; | ||
@@ -1117,0 +1021,0 @@ })(); |
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@dark-engine/core")):"function"==typeof define&&define.amd?define("DarkPlatformBrowser",["@dark-engine/core"],t):"object"==typeof exports?exports.DarkPlatformBrowser=t(require("@dark-engine/core")):e.DarkPlatformBrowser=t(e.DarkCore)}(self,(e=>(()=>{"use strict";var t={317:t=>{t.exports=e}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var a=n[e]={exports:{}};return t[e](a,a.exports,r),a.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{r.r(o),r.d(o,{createPortal:()=>n,createRoot:()=>U,render:()=>H,setTrackUpdate:()=>M,useStyle:()=>_});var e=r(317),t=Symbol("portal");function n(e,n){var r;if(!(n instanceof Element))throw new Error("[Dark]: createPortal receives only Element as container!");return a(((r={})[t]=n,r.slot=e,r))}var a=(0,e.createComponent)((function(n){var r=n.slot,o=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(n,["slot"]);return(0,e.useMemo)((function(){return o[t].innerHTML=""}),[]),r}),{token:t}),i=function(n){return(0,e.detectIsComponentFactory)(n)&&n.token===t},l=function(e){return i(e)?e.props[t]:null},u=function(){function e(e){this.type="",this.sourceEvent=null,this.target=null,this.propagation=!0,this.type=e.sourceEvent.type,this.sourceEvent=e.sourceEvent,this.target=e.target}return e.prototype.stopPropagation=function(){this.propagation=!1,this.sourceEvent.stopPropagation()},e.prototype.preventDefault=function(){this.sourceEvent.preventDefault()},e.prototype.getPropagation=function(){return this.propagation},e}();function c(t){var n=t.target,r=t.eventName,o=t.handler,a=e.eventsStore.get(),i=a.get(r);if(i)i.set(n,o);else{var l=function(t){var n=a.get(r).get(t.target),o=t.target,i=null;(0,e.detectIsFunction)(n)&&n(i=new u({sourceEvent:t,target:o})),(i?i.getPropagation():o.parentElement)&&o.parentElement.dispatchEvent(new t.constructor(t.type,t))};a.set(r,new WeakMap([[n,o]])),document.addEventListener(r,l,!0),e.eventsStore.addUnsubscriber((function(){return document.removeEventListener(r,l,!0)}))}}var f,s=function(e){return e.startsWith("on")},p=function(e){return e.slice(2,e.length).toLowerCase()},m=function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},v=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,a=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=a.next()).done;)i.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(o)throw o.error}}return i},d=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},y=((f={})[e.ATTR_KEY]=!0,f[e.ATTR_REF]=!0,f.void=!0,f),g=new Map,h=null;function E(t,n){(0,e.detectIsFunction)(t)?t(n):(0,e.detectIsMutableRef)(t)&&(t.current=n)}var b={value:!0,checked:!0},T={value:!0},w={selected:!0},k={};function S(e){var t=e.tagName,n=e.element,r=e.attrName,o=e.value,a={input:function(){return b[r]&&(n[r]=o),b},textarea:function(){return T[r]&&(n[r]=o),T},option:function(){return w[r]&&(n[r]=o),w}};return a[t]?a[t]():k}function x(e){for(var t=e;t;)if(t=t.parent,i(t.instance)&&(t.nativeElement=l(t.instance)),t.nativeElement)return t;return t}function M(e){h=e}var N={hight:[],normal:[],low1:[],low2:[]},P=null,I=0,O=!1,A=null,R=function(){function e(t){this.id=++e.nextTaskId,this.time=t.time,this.timeoutMs=t.timeoutMs,this.priority=t.priority,this.forceSync=t.forceSync,this.callback=t.callback}return e.nextTaskId=0,e}();function C(t){return!!t.length&&((A=t.shift()).callback(),A.forceSync?function(e){for(;e(););L(),A=null}(e.workLoop):(n=e.workLoop,P=n,O||(O=!0,F.postMessage(null))),!0);var n}function L(){var t;Boolean(e.wipRootStore.get())||(t=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,a=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=a.next()).done;)i.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(o)throw o.error}}return i}(N.low2,1)[0])&&(0,e.getTime)()-t.time>t.timeoutMs&&(C(N.low2),1)||C(N.hight)||C(N.normal)||requestIdleCallback((function(){return C(N.low1)||C(N.low2)}))}var j=null,F=null;j=new MessageChannel,F=j.port2,j.port1.onmessage=function(){if(P){I=(0,e.getTime)()+10;try{P()?F.postMessage(null):(A=null,O=!1,P=null,L())}catch(e){throw F.postMessage(null),e}}else O=!1},e.platform.createNativeElement=function(t){var n,r=((n={})[e.NodeType.TAG]=function(e){var t,n=e;return t=n.name,Boolean({svg:!0,circle:!0,ellipse:!0,g:!0,text:!0,tspan:!0,textPath:!0,path:!0,polygon:!0,polyline:!0,line:!0,rect:!0,use:!0,image:!0,symbol:!0,defs:!0,linearGradient:!0,radialGradient:!0,stop:!0,clipPath:!0,pattern:!0,mask:!0,marker:!0}[t])?document.createElementNS("http://www.w3.org/2000/svg",n.name):document.createElement(n.name)},n[e.NodeType.TEXT]=function(e){var t=e;return document.createTextNode(t.value)},n[e.NodeType.COMMENT]=function(e){var t=e;return document.createComment(t.value)},n);return r[t.type](t)},e.platform.requestAnimationFrame=requestAnimationFrame.bind(void 0),e.platform.scheduleCallback=function(t,n){var r,o=n||{},a=o.priority,i=void 0===a?e.TaskPriority.NORMAL:a,l=o.timeoutMs,u=void 0===l?0:l,c=o.forceSync,f=void 0!==c&&c,s=new R({time:(0,e.getTime)(),timeoutMs:u,priority:i,forceSync:f,callback:t});((r={})[e.TaskPriority.HIGH]=function(){return N.hight.push(s)},r[e.TaskPriority.NORMAL]=function(){return N.normal.push(s)},r[e.TaskPriority.LOW]=function(){return s.timeoutMs>0?N.low2.push(s):N.low1.push(s)},r)[s.priority](),L()},e.platform.shouldYeildToHost=function(){return(0,e.getTime)()>=I},e.platform.applyCommit=function(t){var n,r=((n={})[e.EffectTag.CREATE]=function(){null!==t.nativeElement&&(h&&h(t.nativeElement),function(t){var n,r=x(t).nativeElement,o=r.childNodes;0===o.length||function(e,t){for(var n,r=e;r;){if((null===(n=null==r?void 0:r.parent)||void 0===n?void 0:n.nativeElement)===t)return r.idx;r=r.parent}return-1}(t,r)>o.length-1?(n=(g.get(r)||{fragment:document.createDocumentFragment(),callback:function(){}}).fragment,g.set(r,{fragment:n,callback:function(){r.appendChild(n)}}),n.appendChild(t.nativeElement),t.markMountedToHost()):(r.insertBefore(t.nativeElement,function(t,n){var r=null;return(0,e.walkFiber)({fiber:t,onLoop:function(e){var t=e.nextFiber,o=e.stop,a=e.resetIsDeepWalking;return t.nativeElement&&t.nativeElement.parentElement===n?(r=t.nativeElement,o()):t.mountedToHost?void 0:a()}}),r}(t,r)),t.markMountedToHost()),function(t,n){var r,o;if((0,e.detectIsTagVirtualNode)(n)){var a=Object.keys(n.attrs);try{for(var i=m(a),l=i.next();!l.done;l=i.next()){var u=l.value,f=n.attrs[u];u!==e.ATTR_REF?(0,e.detectIsFunction)(f)?s(u)&&c({target:t,handler:f,eventName:p(u)}):(0,e.detectIsUndefined)(f)||y[u]||!S({tagName:n.name,value:f,attrName:u,element:t})[u]&&t.setAttribute(u,f):E(f,t)}}catch(e){r={error:e}}finally{try{l&&!l.done&&(o=i.return)&&o.call(i)}finally{if(r)throw r.error}}}}(t.nativeElement,t.instance)}(t))},n[e.EffectTag.UPDATE]=function(){var n,r,o;null!==t.nativeElement&&(0,e.detectIsVirtualNode)(t.alternate.instance)&&(0,e.detectIsVirtualNode)(t.instance)&&(h&&h(t.nativeElement),n=t.nativeElement,r=t.alternate.instance,o=t.instance,(0,e.detectIsTextVirtualNode)(r)&&(0,e.detectIsTextVirtualNode)(o)&&r.value!==o.value?n.textContent=o.value:(0,e.detectIsTagVirtualNode)(r)&&(0,e.detectIsTagVirtualNode)(o)&&function(t,n,r){var o,a,i=new Set(d(d([],v(Object.keys(n.attrs)),!1),v(Object.keys(r.attrs)),!1));try{for(var l=m(i),u=l.next();!u.done;u=l.next()){var f=u.value,g=n.attrs[f],h=r.attrs[f];f!==e.ATTR_REF?(0,e.detectIsUndefined)(h)?t.removeAttribute(f):(0,e.detectIsFunction)(g)?s(f)&&g!==h&&c({target:t,handler:h,eventName:p(f)}):y[f]||g===h||!S({tagName:r.name,value:h,attrName:f,element:t})[f]&&t.setAttribute(f,h):E(g,t)}}catch(e){o={error:e}}finally{try{u&&!u.done&&(a=l.return)&&a.call(l)}finally{if(o)throw o.error}}}(n,r,o))},n[e.EffectTag.DELETE]=function(){return function(t){var n=x(t);(0,e.walkFiber)({fiber:t,onLoop:function(e){var r=e.nextFiber,o=e.isReturn,a=e.resetIsDeepWalking,l=e.stop;return r===t.nextSibling||r===t.parent?l():!o&&r.nativeElement?(!i(r.instance)&&n.nativeElement.removeChild(r.nativeElement),a()):void 0}})}(t)},n[e.EffectTag.SKIP]=function(){},n);r[t.effectTag]()},e.platform.finishCommitWork=function(){var e,t;try{for(var n=m(g.values()),r=n.next();!r.done;r=n.next())(0,r.value.callback)()}catch(t){e={error:t}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}g=new Map},e.platform.detectIsPortal=i,e.platform.unmountPortal=function(e){var t=l(e.instance);t&&(t.innerHTML="")};var D=new Map;function H(t,n){if(!(n instanceof Element))throw new Error("[Dark]: render receives only Element as container!");var r=!(0,e.detectIsUndefined)(D.get(n)),o=null;r?o=D.get(n):(o=D.size,D.set(n,o),n.innerHTML=""),e.platform.scheduleCallback((function(){e.rootStore.set(o);var a=e.currentRootStore.get(),i=new e.Fiber({nativeElement:n,instance:new e.TagVirtualNode({name:e.ROOT,children:(0,e.flatten)([t||(0,e.createEmptyVirtualNode)()])}),alternate:a,effectTag:r?e.EffectTag.UPDATE:e.EffectTag.CREATE});a&&(a.alternate=null),e.fiberMountStore.reset(),e.wipRootStore.set(i),e.nextUnitOfWorkStore.set(i)}),{priority:e.TaskPriority.NORMAL,forceSync:e.isLayoutEffectsZone.get()})}function U(t){return{render:function(e){return H(e,t)},unmount:function(){var n=D.get(t);(0,e.unmountRoot)(n,(function(){D.delete(t),t.innerHTML=""}))}}}var V=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,a=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=a.next()).done;)i.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(o)throw o.error}}return i},W=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))};function B(t){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];var o=(0,e.useMemo)((function(){return t.map((function(t,r){return t+((0,e.detectIsUndefined)(n[r])?"":n[r])})).join("").replace(/;\s*/gm,";").replace(/:\s*/gm,":").trim()}),W([t],V(n),!1));return o}function _(e){return e(B)}})(),o})())); | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@dark-engine/core")):"function"==typeof define&&define.amd?define("DarkPlatformBrowser",["@dark-engine/core"],t):"object"==typeof exports?exports.DarkPlatformBrowser=t(require("@dark-engine/core")):e.DarkPlatformBrowser=t(e.DarkCore)}(self,(e=>(()=>{"use strict";var t={317:t=>{t.exports=e}},n={};function o(e){var r=n[e];if(void 0!==r)return r.exports;var a=n[e]={exports:{}};return t[e](a,a.exports,o),a.exports}o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return(()=>{o.r(r),o.d(r,{createPortal:()=>n,createRoot:()=>D,render:()=>A,setTrackUpdate:()=>b,useStyle:()=>j,version:()=>H});var e=o(317);const t=Symbol("portal");function n(e,n){if(!(n instanceof Element))throw new Error("[Dark]: createPortal receives only Element as container!");return a({[t]:n,slot:e})}const a=(0,e.createComponent)((({slot:n,...o})=>((0,e.useMemo)((()=>o[t].innerHTML=""),[]),n)),{token:t}),i=n=>(0,e.detectIsComponentFactory)(n)&&n.token===t,l=e=>i(e)?e.props[t]:null;class s{type="";sourceEvent=null;target=null;propagation=!0;constructor(e){this.type=e.sourceEvent.type,this.sourceEvent=e.sourceEvent,this.target=e.target}stopPropagation(){this.propagation=!1,this.sourceEvent.stopPropagation()}preventDefault(){this.sourceEvent.preventDefault()}getPropagation(){return this.propagation}}function c(t){const{target:n,eventName:o,handler:r}=t,a=e.eventsStore.get(),i=a.get(o);if(i)i.set(n,r);else{const t=t=>{const n=a.get(o).get(t.target),r=t.target;let i=null;(0,e.detectIsFunction)(n)&&(i=new s({sourceEvent:t,target:r}),n(i)),(i?i.getPropagation():r.parentElement)&&r.parentElement.dispatchEvent(new t.constructor(t.type,t))};a.set(o,new WeakMap([[n,r]])),document.addEventListener(o,t,!0),e.eventsStore.addUnsubscriber((()=>document.removeEventListener(o,t,!0)))}}const u=e=>e.startsWith("on"),f=e=>e.slice(2,e.length).toLowerCase(),m={[e.ATTR_KEY]:!0,[e.ATTR_REF]:!0,void:!0};let p=new Map,d=null;function g(t,n){(0,e.detectIsFunction)(t)?t(n):(0,e.detectIsMutableRef)(t)&&(t.current=n)}const v={value:!0,checked:!0},E={value:!0},h={selected:!0},T={};function y(e){const{tagName:t,element:n,attrName:o,value:r}=e,a={input:()=>(v[o]&&(n[o]=r),v),textarea:()=>(E[o]&&(n[o]=r),E),option:()=>(h[o]&&(n[o]=r),h)};return a[t]?a[t]():T}function k(e){let t=e;for(;t;)if(t=t.parent,i(t.instance)&&(t.nativeElement=l(t.instance)),t.nativeElement)return t;return t}function b(e){d=e}const w={hight:[],normal:[],low1:[],low2:[]};let M=null,N=0,S=!1,I=null;class P{static nextTaskId=0;id;time;timeoutMs;priority;forceSync;callback;constructor(e){this.id=++P.nextTaskId,this.time=e.time,this.timeoutMs=e.timeoutMs,this.priority=e.priority,this.forceSync=e.forceSync,this.callback=e.callback}}function x(t){return!!t.length&&(I=t.shift(),I.callback(),I.forceSync?function(e){for(;e(););C(),I=null}(e.workLoop):(n=e.workLoop,M=n,S||(S=!0,F.postMessage(null))),!0);var n}function C(){Boolean(e.wipRootStore.get())||function(){const[t]=w.low2;return!!(t&&(0,e.getTime)()-t.time>t.timeoutMs)&&(x(w.low2),!0)}()||x(w.hight)||x(w.normal)||requestIdleCallback((()=>x(w.low1)||x(w.low2)))}let L=null,F=null;L=new MessageChannel,F=L.port2,L.port1.onmessage=function(){if(M){N=(0,e.getTime)()+10;try{M()?F.postMessage(null):(I=null,S=!1,M=null,C())}catch(e){throw F.postMessage(null),e}}else S=!1},e.platform.createNativeElement=function(t){const n={[e.NodeType.TAG]:e=>{const t=e;var n;return n=t.name,Boolean({svg:!0,animate:!0,animateMotion:!0,animateTransform:!0,circle:!0,clipPath:!0,defs:!0,desc:!0,ellipse:!0,feBlend:!0,feColorMatrix:!0,feComponentTransfer:!0,feComposite:!0,feConvolveMatrix:!0,feDiffuseLighting:!0,feDisplacementMap:!0,feDistantLight:!0,feDropShadow:!0,feFlood:!0,feFuncA:!0,feFuncB:!0,feFuncG:!0,feFuncR:!0,feGaussianBlur:!0,feImage:!0,feMerge:!0,feMergeNode:!0,feMorphology:!0,feOffset:!0,fePointLight:!0,feSpecularLighting:!0,feSpotLight:!0,feTile:!0,feTurbulence:!0,filter:!0,foreignObject:!0,g:!0,image:!0,line:!0,linearGradient:!0,marker:!0,mask:!0,metadata:!0,mpath:!0,path:!0,pattern:!0,polygon:!0,polyline:!0,radialGradient:!0,rect:!0,stop:!0,switch:!0,symbol:!0,text:!0,textPath:!0,tspan:!0,use:!0,view:!0}[n])?document.createElementNS("http://www.w3.org/2000/svg",t.name):document.createElement(t.name)},[e.NodeType.TEXT]:e=>{const t=e;return document.createTextNode(t.value)},[e.NodeType.COMMENT]:e=>{const t=e;return document.createComment(t.value)}};return n[t.type](t)},e.platform.requestAnimationFrame=requestAnimationFrame.bind(void 0),e.platform.scheduleCallback=function(t,n){const{priority:o=e.TaskPriority.NORMAL,timeoutMs:r=0,forceSync:a=!1}=n||{},i=new P({time:(0,e.getTime)(),timeoutMs:r,priority:o,forceSync:a,callback:t});({[e.TaskPriority.HIGH]:()=>w.hight.push(i),[e.TaskPriority.NORMAL]:()=>w.normal.push(i),[e.TaskPriority.LOW]:()=>i.timeoutMs>0?w.low2.push(i):w.low1.push(i)})[i.priority](),C()},e.platform.shouldYeildToHost=()=>(0,e.getTime)()>=N,e.platform.applyCommit=function(t){const n={[e.EffectTag.CREATE]:()=>{null!==t.nativeElement&&(d&&d(t.nativeElement),function(t){const n=k(t).nativeElement,o=n.childNodes;0===o.length||function(e,t){let n=e;for(;n;){if(n?.parent?.nativeElement===t)return n.idx;n=n.parent}return-1}(t,n)>o.length-1?(()=>{const{fragment:e}=p.get(n)||{fragment:document.createDocumentFragment(),callback:()=>{}};p.set(n,{fragment:e,callback:()=>{n.appendChild(e)}}),e.appendChild(t.nativeElement),t.markMountedToHost()})():(n.insertBefore(t.nativeElement,function(t,n){let o=null;return(0,e.walkFiber)({fiber:t,onLoop:({nextFiber:e,stop:t,resetIsDeepWalking:r})=>e.nativeElement&&e.nativeElement.parentElement===n?(o=e.nativeElement,t()):e.mountedToHost?void 0:r()}),o}(t,n)),t.markMountedToHost()),function(t,n){if(!(0,e.detectIsTagVirtualNode)(n))return;const o=Object.keys(n.attrs);for(const r of o){const o=n.attrs[r];r!==e.ATTR_REF?(0,e.detectIsFunction)(o)?u(r)&&c({target:t,handler:o,eventName:f(r)}):(0,e.detectIsUndefined)(o)||m[r]||!y({tagName:n.name,value:o,attrName:r,element:t})[r]&&t.setAttribute(r,o):g(o,t)}}(t.nativeElement,t.instance)}(t))},[e.EffectTag.UPDATE]:()=>{var n,o,r;null!==t.nativeElement&&(0,e.detectIsVirtualNode)(t.alternate.instance)&&(0,e.detectIsVirtualNode)(t.instance)&&(d&&d(t.nativeElement),n=t.nativeElement,o=t.alternate.instance,r=t.instance,(0,e.detectIsTextVirtualNode)(o)&&(0,e.detectIsTextVirtualNode)(r)&&o.value!==r.value?n.textContent=r.value:(0,e.detectIsTagVirtualNode)(o)&&(0,e.detectIsTagVirtualNode)(r)&&function(t,n,o){const r=new Set([...Object.keys(n.attrs),...Object.keys(o.attrs)]);for(const a of r){const r=n.attrs[a],i=o.attrs[a];a!==e.ATTR_REF?(0,e.detectIsUndefined)(i)?t.removeAttribute(a):(0,e.detectIsFunction)(r)?u(a)&&r!==i&&c({target:t,handler:i,eventName:f(a)}):m[a]||r===i||!y({tagName:o.name,value:i,attrName:a,element:t})[a]&&t.setAttribute(a,i):g(r,t)}}(n,o,r))},[e.EffectTag.DELETE]:()=>function(t){const n=k(t);(0,e.walkFiber)({fiber:t,onLoop:({nextFiber:e,isReturn:o,resetIsDeepWalking:r,stop:a})=>e===t.nextSibling||e===t.parent?a():!o&&e.nativeElement?(!i(e.instance)&&n.nativeElement.removeChild(e.nativeElement),r()):void 0})}(t),[e.EffectTag.SKIP]:()=>{}};n[t.effectTag]()},e.platform.finishCommitWork=function(){for(const{callback:e}of p.values())e();p=new Map},e.platform.detectIsPortal=i,e.platform.unmountPortal=function(e){const t=l(e.instance);t&&(t.innerHTML="")};const R=new Map;function A(t,n){if(!(n instanceof Element))throw new Error("[Dark]: render receives only Element as container!");const o=!(0,e.detectIsUndefined)(R.get(n));let r=null;o?r=R.get(n):(r=R.size,R.set(n,r),n.innerHTML=""),e.platform.scheduleCallback((()=>{e.rootStore.set(r);const a=e.currentRootStore.get(),i=new e.Fiber({nativeElement:n,instance:new e.TagVirtualNode({name:e.ROOT,children:(0,e.flatten)([t||(0,e.createEmptyVirtualNode)()])}),alternate:a,effectTag:o?e.EffectTag.UPDATE:e.EffectTag.CREATE});a&&(a.alternate=null),e.fiberMountStore.reset(),e.wipRootStore.set(i),e.nextUnitOfWorkStore.set(i)}),{priority:e.TaskPriority.NORMAL,forceSync:e.isLayoutEffectsZone.get()})}function D(t){return{render:e=>A(e,t),unmount:()=>{const n=R.get(t);(0,e.unmountRoot)(n,(()=>{R.delete(t),t.innerHTML=""}))}}}function O(t,...n){return(0,e.useMemo)((()=>t.map(((t,o)=>t+((0,e.detectIsUndefined)(n[o])?"":n[o]))).join("").replace(/;\s*/gm,";").replace(/:\s*/gm,":").trim()),[t,...n])}function j(e){return e(O)}const H="0.9.4"})(),r})())); | ||
//# sourceMappingURL=dark-platform-browser.production.min.js.map |
const path = require('path'); | ||
const webpack = require('webpack'); | ||
const package = require('./package.json'); | ||
const { alias } = require('../../webpack.alias'); | ||
@@ -44,2 +45,3 @@ | ||
'process.env.NODE_ENV': env.production ? JSON.stringify('production') : JSON.stringify('development'), | ||
'process.env.VERSION': JSON.stringify(package.version), | ||
}), | ||
@@ -46,0 +48,0 @@ ], |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
183165
-1.32%2281
-2.52%