mirror of
https://github.com/jaandrle/deka-dom-el
synced 2025-04-02 04:05:52 +02:00
⚡ Replaces defined with name/host
This commit is contained in:
parent
3301a6600c
commit
992370b4e3
36
dist/esm-with-signals.js
vendored
36
dist/esm-with-signals.js
vendored
@ -41,19 +41,6 @@ function observedAttributes(instance, observedAttribute2) {
|
|||||||
function kebabToCamel(name) {
|
function kebabToCamel(name) {
|
||||||
return name.replace(/-./g, (x) => x[1].toUpperCase());
|
return name.replace(/-./g, (x) => x[1].toUpperCase());
|
||||||
}
|
}
|
||||||
var Defined = class extends Error {
|
|
||||||
constructor() {
|
|
||||||
super();
|
|
||||||
const [curr, ...rest] = this.stack.split("\n");
|
|
||||||
const curr_file = curr.slice(curr.indexOf("@"), curr.indexOf(".js:") + 4);
|
|
||||||
const curr_lib = curr_file.includes("src/helpers.js") ? "src/" : curr_file;
|
|
||||||
this.stack = rest.find((l) => !l.includes(curr_lib)) || curr;
|
|
||||||
}
|
|
||||||
get compact() {
|
|
||||||
const { stack } = this;
|
|
||||||
return stack.slice(0, stack.indexOf("@") + 1) + "\u2026" + stack.slice(stack.lastIndexOf("/"));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// src/dom-lib/common.js
|
// src/dom-lib/common.js
|
||||||
var enviroment = {
|
var enviroment = {
|
||||||
@ -303,7 +290,7 @@ var store_abort = /* @__PURE__ */ new WeakMap();
|
|||||||
var scope = {
|
var scope = {
|
||||||
/**
|
/**
|
||||||
* Gets the current scope
|
* Gets the current scope
|
||||||
* @returns {Object} Current scope context
|
* @returns {typeof scopes[number]} Current scope context
|
||||||
*/
|
*/
|
||||||
get current() {
|
get current() {
|
||||||
return scopes[scopes.length - 1];
|
return scopes[scopes.length - 1];
|
||||||
@ -652,7 +639,7 @@ function wrapMethod(obj, method, apply) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// src/memo.js
|
// src/memo.js
|
||||||
var memoMark = "__dde_memo";
|
var memoMark = "__dde_memo_of";
|
||||||
var memo_scope = [];
|
var memo_scope = [];
|
||||||
function memo(key, generator) {
|
function memo(key, generator) {
|
||||||
if (!memo_scope.length) return generator(key);
|
if (!memo_scope.length) return generator(key);
|
||||||
@ -661,11 +648,11 @@ function memo(key, generator) {
|
|||||||
return after(k, hasOwn(cache, k) ? cache[k] : generator(key));
|
return after(k, hasOwn(cache, k) ? cache[k] : generator(key));
|
||||||
}
|
}
|
||||||
memo.isScope = function(obj) {
|
memo.isScope = function(obj) {
|
||||||
return obj[memoMark];
|
return Boolean(obj[memoMark]);
|
||||||
};
|
};
|
||||||
memo.scope = function memoScope(fun, { signal: signal2, onlyLast } = {}) {
|
memo.scope = function memoScopeCreate(fun, { signal: signal2, onlyLast } = {}) {
|
||||||
let cache = oCreate();
|
let cache = oCreate();
|
||||||
function memoScope2(...args) {
|
function memoScope(...args) {
|
||||||
if (signal2 && signal2.aborted)
|
if (signal2 && signal2.aborted)
|
||||||
return fun.apply(this, args);
|
return fun.apply(this, args);
|
||||||
let cache_local = onlyLast ? cache : oCreate();
|
let cache_local = onlyLast ? cache : oCreate();
|
||||||
@ -680,10 +667,10 @@ memo.scope = function memoScope(fun, { signal: signal2, onlyLast } = {}) {
|
|||||||
cache = cache_local;
|
cache = cache_local;
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
memoScope2[memoMark] = true;
|
memoScope[memoMark] = fun;
|
||||||
memoScope2.clear = () => cache = oCreate();
|
memoScope.clear = () => cache = oCreate();
|
||||||
if (signal2) signal2.addEventListener("abort", memoScope2.clear);
|
if (signal2) signal2.addEventListener("abort", memoScope.clear);
|
||||||
return memoScope2;
|
return memoScope;
|
||||||
};
|
};
|
||||||
|
|
||||||
// src/signals-lib/helpers.js
|
// src/signals-lib/helpers.js
|
||||||
@ -801,11 +788,11 @@ signal.clear = function(...signals2) {
|
|||||||
var key_reactive = "__dde_reactive";
|
var key_reactive = "__dde_reactive";
|
||||||
signal.el = function(s, map) {
|
signal.el = function(s, map) {
|
||||||
map = memo.isScope(map) ? map : memo.scope(map, { onlyLast: true });
|
map = memo.isScope(map) ? map : memo.scope(map, { onlyLast: true });
|
||||||
const mark_start = createElement.mark({ type: "reactive", source: new Defined().compact }, true);
|
const { current } = scope, { scope: sc } = current;
|
||||||
|
const mark_start = createElement.mark({ type: "reactive", component: sc && sc.name || "" }, true);
|
||||||
const mark_end = mark_start.end;
|
const mark_end = mark_start.end;
|
||||||
const out = enviroment.D.createDocumentFragment();
|
const out = enviroment.D.createDocumentFragment();
|
||||||
out.append(mark_start, mark_end);
|
out.append(mark_start, mark_end);
|
||||||
const { current } = scope;
|
|
||||||
const reRenderReactiveElement = (v) => {
|
const reRenderReactiveElement = (v) => {
|
||||||
if (!mark_start.parentNode || !mark_end.parentNode)
|
if (!mark_start.parentNode || !mark_end.parentNode)
|
||||||
return removeSignalListener(s, reRenderReactiveElement);
|
return removeSignalListener(s, reRenderReactiveElement);
|
||||||
@ -949,7 +936,6 @@ function toSignal(s, value, actions, readonly = false) {
|
|||||||
onclear,
|
onclear,
|
||||||
host,
|
host,
|
||||||
listeners: /* @__PURE__ */ new Set(),
|
listeners: /* @__PURE__ */ new Set(),
|
||||||
defined: new Defined().stack,
|
|
||||||
readonly
|
readonly
|
||||||
}),
|
}),
|
||||||
enumerable: false,
|
enumerable: false,
|
||||||
|
7
dist/esm-with-signals.min.js
vendored
7
dist/esm-with-signals.min.js
vendored
File diff suppressed because one or more lines are too long
18
dist/esm.js
vendored
18
dist/esm.js
vendored
@ -274,7 +274,7 @@ var store_abort = /* @__PURE__ */ new WeakMap();
|
|||||||
var scope = {
|
var scope = {
|
||||||
/**
|
/**
|
||||||
* Gets the current scope
|
* Gets the current scope
|
||||||
* @returns {Object} Current scope context
|
* @returns {typeof scopes[number]} Current scope context
|
||||||
*/
|
*/
|
||||||
get current() {
|
get current() {
|
||||||
return scopes[scopes.length - 1];
|
return scopes[scopes.length - 1];
|
||||||
@ -623,7 +623,7 @@ function wrapMethod(obj, method, apply) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// src/memo.js
|
// src/memo.js
|
||||||
var memoMark = "__dde_memo";
|
var memoMark = "__dde_memo_of";
|
||||||
var memo_scope = [];
|
var memo_scope = [];
|
||||||
function memo(key, generator) {
|
function memo(key, generator) {
|
||||||
if (!memo_scope.length) return generator(key);
|
if (!memo_scope.length) return generator(key);
|
||||||
@ -632,11 +632,11 @@ function memo(key, generator) {
|
|||||||
return after(k, hasOwn(cache, k) ? cache[k] : generator(key));
|
return after(k, hasOwn(cache, k) ? cache[k] : generator(key));
|
||||||
}
|
}
|
||||||
memo.isScope = function(obj) {
|
memo.isScope = function(obj) {
|
||||||
return obj[memoMark];
|
return Boolean(obj[memoMark]);
|
||||||
};
|
};
|
||||||
memo.scope = function memoScope(fun, { signal, onlyLast } = {}) {
|
memo.scope = function memoScopeCreate(fun, { signal, onlyLast } = {}) {
|
||||||
let cache = oCreate();
|
let cache = oCreate();
|
||||||
function memoScope2(...args) {
|
function memoScope(...args) {
|
||||||
if (signal && signal.aborted)
|
if (signal && signal.aborted)
|
||||||
return fun.apply(this, args);
|
return fun.apply(this, args);
|
||||||
let cache_local = onlyLast ? cache : oCreate();
|
let cache_local = onlyLast ? cache : oCreate();
|
||||||
@ -651,10 +651,10 @@ memo.scope = function memoScope(fun, { signal, onlyLast } = {}) {
|
|||||||
cache = cache_local;
|
cache = cache_local;
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
memoScope2[memoMark] = true;
|
memoScope[memoMark] = fun;
|
||||||
memoScope2.clear = () => cache = oCreate();
|
memoScope.clear = () => cache = oCreate();
|
||||||
if (signal) signal.addEventListener("abort", memoScope2.clear);
|
if (signal) signal.addEventListener("abort", memoScope.clear);
|
||||||
return memoScope2;
|
return memoScope;
|
||||||
};
|
};
|
||||||
export {
|
export {
|
||||||
assign,
|
assign,
|
||||||
|
2
dist/esm.min.js
vendored
2
dist/esm.min.js
vendored
File diff suppressed because one or more lines are too long
36
dist/iife-with-signals.js
vendored
36
dist/iife-with-signals.js
vendored
@ -86,19 +86,6 @@ var DDE = (() => {
|
|||||||
function kebabToCamel(name) {
|
function kebabToCamel(name) {
|
||||||
return name.replace(/-./g, (x) => x[1].toUpperCase());
|
return name.replace(/-./g, (x) => x[1].toUpperCase());
|
||||||
}
|
}
|
||||||
var Defined = class extends Error {
|
|
||||||
constructor() {
|
|
||||||
super();
|
|
||||||
const [curr, ...rest] = this.stack.split("\n");
|
|
||||||
const curr_file = curr.slice(curr.indexOf("@"), curr.indexOf(".js:") + 4);
|
|
||||||
const curr_lib = curr_file.includes("src/helpers.js") ? "src/" : curr_file;
|
|
||||||
this.stack = rest.find((l) => !l.includes(curr_lib)) || curr;
|
|
||||||
}
|
|
||||||
get compact() {
|
|
||||||
const { stack } = this;
|
|
||||||
return stack.slice(0, stack.indexOf("@") + 1) + "\u2026" + stack.slice(stack.lastIndexOf("/"));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// src/dom-lib/common.js
|
// src/dom-lib/common.js
|
||||||
var enviroment = {
|
var enviroment = {
|
||||||
@ -348,7 +335,7 @@ var DDE = (() => {
|
|||||||
var scope = {
|
var scope = {
|
||||||
/**
|
/**
|
||||||
* Gets the current scope
|
* Gets the current scope
|
||||||
* @returns {Object} Current scope context
|
* @returns {typeof scopes[number]} Current scope context
|
||||||
*/
|
*/
|
||||||
get current() {
|
get current() {
|
||||||
return scopes[scopes.length - 1];
|
return scopes[scopes.length - 1];
|
||||||
@ -697,7 +684,7 @@ var DDE = (() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// src/memo.js
|
// src/memo.js
|
||||||
var memoMark = "__dde_memo";
|
var memoMark = "__dde_memo_of";
|
||||||
var memo_scope = [];
|
var memo_scope = [];
|
||||||
function memo(key, generator) {
|
function memo(key, generator) {
|
||||||
if (!memo_scope.length) return generator(key);
|
if (!memo_scope.length) return generator(key);
|
||||||
@ -706,11 +693,11 @@ var DDE = (() => {
|
|||||||
return after(k, hasOwn(cache, k) ? cache[k] : generator(key));
|
return after(k, hasOwn(cache, k) ? cache[k] : generator(key));
|
||||||
}
|
}
|
||||||
memo.isScope = function(obj) {
|
memo.isScope = function(obj) {
|
||||||
return obj[memoMark];
|
return Boolean(obj[memoMark]);
|
||||||
};
|
};
|
||||||
memo.scope = function memoScope(fun, { signal: signal2, onlyLast } = {}) {
|
memo.scope = function memoScopeCreate(fun, { signal: signal2, onlyLast } = {}) {
|
||||||
let cache = oCreate();
|
let cache = oCreate();
|
||||||
function memoScope2(...args) {
|
function memoScope(...args) {
|
||||||
if (signal2 && signal2.aborted)
|
if (signal2 && signal2.aborted)
|
||||||
return fun.apply(this, args);
|
return fun.apply(this, args);
|
||||||
let cache_local = onlyLast ? cache : oCreate();
|
let cache_local = onlyLast ? cache : oCreate();
|
||||||
@ -725,10 +712,10 @@ var DDE = (() => {
|
|||||||
cache = cache_local;
|
cache = cache_local;
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
memoScope2[memoMark] = true;
|
memoScope[memoMark] = fun;
|
||||||
memoScope2.clear = () => cache = oCreate();
|
memoScope.clear = () => cache = oCreate();
|
||||||
if (signal2) signal2.addEventListener("abort", memoScope2.clear);
|
if (signal2) signal2.addEventListener("abort", memoScope.clear);
|
||||||
return memoScope2;
|
return memoScope;
|
||||||
};
|
};
|
||||||
|
|
||||||
// src/signals-lib/helpers.js
|
// src/signals-lib/helpers.js
|
||||||
@ -846,11 +833,11 @@ var DDE = (() => {
|
|||||||
var key_reactive = "__dde_reactive";
|
var key_reactive = "__dde_reactive";
|
||||||
signal.el = function(s, map) {
|
signal.el = function(s, map) {
|
||||||
map = memo.isScope(map) ? map : memo.scope(map, { onlyLast: true });
|
map = memo.isScope(map) ? map : memo.scope(map, { onlyLast: true });
|
||||||
const mark_start = createElement.mark({ type: "reactive", source: new Defined().compact }, true);
|
const { current } = scope, { scope: sc } = current;
|
||||||
|
const mark_start = createElement.mark({ type: "reactive", component: sc && sc.name || "" }, true);
|
||||||
const mark_end = mark_start.end;
|
const mark_end = mark_start.end;
|
||||||
const out = enviroment.D.createDocumentFragment();
|
const out = enviroment.D.createDocumentFragment();
|
||||||
out.append(mark_start, mark_end);
|
out.append(mark_start, mark_end);
|
||||||
const { current } = scope;
|
|
||||||
const reRenderReactiveElement = (v) => {
|
const reRenderReactiveElement = (v) => {
|
||||||
if (!mark_start.parentNode || !mark_end.parentNode)
|
if (!mark_start.parentNode || !mark_end.parentNode)
|
||||||
return removeSignalListener(s, reRenderReactiveElement);
|
return removeSignalListener(s, reRenderReactiveElement);
|
||||||
@ -994,7 +981,6 @@ var DDE = (() => {
|
|||||||
onclear,
|
onclear,
|
||||||
host,
|
host,
|
||||||
listeners: /* @__PURE__ */ new Set(),
|
listeners: /* @__PURE__ */ new Set(),
|
||||||
defined: new Defined().stack,
|
|
||||||
readonly
|
readonly
|
||||||
}),
|
}),
|
||||||
enumerable: false,
|
enumerable: false,
|
||||||
|
7
dist/iife-with-signals.min.js
vendored
7
dist/iife-with-signals.min.js
vendored
File diff suppressed because one or more lines are too long
18
dist/iife.js
vendored
18
dist/iife.js
vendored
@ -316,7 +316,7 @@ var DDE = (() => {
|
|||||||
var scope = {
|
var scope = {
|
||||||
/**
|
/**
|
||||||
* Gets the current scope
|
* Gets the current scope
|
||||||
* @returns {Object} Current scope context
|
* @returns {typeof scopes[number]} Current scope context
|
||||||
*/
|
*/
|
||||||
get current() {
|
get current() {
|
||||||
return scopes[scopes.length - 1];
|
return scopes[scopes.length - 1];
|
||||||
@ -665,7 +665,7 @@ var DDE = (() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// src/memo.js
|
// src/memo.js
|
||||||
var memoMark = "__dde_memo";
|
var memoMark = "__dde_memo_of";
|
||||||
var memo_scope = [];
|
var memo_scope = [];
|
||||||
function memo(key, generator) {
|
function memo(key, generator) {
|
||||||
if (!memo_scope.length) return generator(key);
|
if (!memo_scope.length) return generator(key);
|
||||||
@ -674,11 +674,11 @@ var DDE = (() => {
|
|||||||
return after(k, hasOwn(cache, k) ? cache[k] : generator(key));
|
return after(k, hasOwn(cache, k) ? cache[k] : generator(key));
|
||||||
}
|
}
|
||||||
memo.isScope = function(obj) {
|
memo.isScope = function(obj) {
|
||||||
return obj[memoMark];
|
return Boolean(obj[memoMark]);
|
||||||
};
|
};
|
||||||
memo.scope = function memoScope(fun, { signal, onlyLast } = {}) {
|
memo.scope = function memoScopeCreate(fun, { signal, onlyLast } = {}) {
|
||||||
let cache = oCreate();
|
let cache = oCreate();
|
||||||
function memoScope2(...args) {
|
function memoScope(...args) {
|
||||||
if (signal && signal.aborted)
|
if (signal && signal.aborted)
|
||||||
return fun.apply(this, args);
|
return fun.apply(this, args);
|
||||||
let cache_local = onlyLast ? cache : oCreate();
|
let cache_local = onlyLast ? cache : oCreate();
|
||||||
@ -693,10 +693,10 @@ var DDE = (() => {
|
|||||||
cache = cache_local;
|
cache = cache_local;
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
memoScope2[memoMark] = true;
|
memoScope[memoMark] = fun;
|
||||||
memoScope2.clear = () => cache = oCreate();
|
memoScope.clear = () => cache = oCreate();
|
||||||
if (signal) signal.addEventListener("abort", memoScope2.clear);
|
if (signal) signal.addEventListener("abort", memoScope.clear);
|
||||||
return memoScope2;
|
return memoScope;
|
||||||
};
|
};
|
||||||
return __toCommonJS(index_exports);
|
return __toCommonJS(index_exports);
|
||||||
})();
|
})();
|
||||||
|
2
dist/iife.min.js
vendored
2
dist/iife.min.js
vendored
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
|||||||
// Example of reactive element marker
|
// Example of reactive element marker
|
||||||
<!--<dde:mark type="reactive" source="...">-->
|
<!--<dde:mark type="reactive" component="<component-name>">-->
|
||||||
<!-- content that updates when signal changes -->
|
<!-- content that updates when signal changes -->
|
||||||
<!--</dde:mark>-->
|
<!--</dde:mark>-->
|
||||||
|
@ -81,7 +81,6 @@ export function page({ pkg, info }){
|
|||||||
el("li", t`actions: Custom actions that can be performed on the signal`),
|
el("li", t`actions: Custom actions that can be performed on the signal`),
|
||||||
el("li", t`onclear: Functions to run when the signal is cleared`),
|
el("li", t`onclear: Functions to run when the signal is cleared`),
|
||||||
el("li", t`host: Reference to the host element/scope in which the signal was created`),
|
el("li", t`host: Reference to the host element/scope in which the signal was created`),
|
||||||
el("li", t`defined: Stack trace information for debugging`),
|
|
||||||
el("li", t`readonly: Boolean flag indicating if the signal is read-only`)
|
el("li", t`readonly: Boolean flag indicating if the signal is read-only`)
|
||||||
),
|
),
|
||||||
el("p").append(T`
|
el("p").append(T`
|
||||||
|
@ -19,7 +19,7 @@ const store_abort= new WeakMap();
|
|||||||
export const scope= {
|
export const scope= {
|
||||||
/**
|
/**
|
||||||
* Gets the current scope
|
* Gets the current scope
|
||||||
* @returns {Object} Current scope context
|
* @returns {typeof scopes[number]} Current scope context
|
||||||
*/
|
*/
|
||||||
get current(){ return scopes[scopes.length-1]; },
|
get current(){ return scopes[scopes.length-1]; },
|
||||||
|
|
||||||
|
@ -68,21 +68,3 @@ export function observedAttributes(instance, observedAttribute){
|
|||||||
* @returns {string} The camelCase string
|
* @returns {string} The camelCase string
|
||||||
*/
|
*/
|
||||||
function kebabToCamel(name){ return name.replace(/-./g, x=> x[1].toUpperCase()); }
|
function kebabToCamel(name){ return name.replace(/-./g, x=> x[1].toUpperCase()); }
|
||||||
|
|
||||||
/**
|
|
||||||
* Error class for definition tracking
|
|
||||||
* Shows the correct stack trace for debugging (signal) creation
|
|
||||||
*/
|
|
||||||
export class Defined extends Error{
|
|
||||||
constructor(){
|
|
||||||
super();
|
|
||||||
const [ curr, ...rest ]= this.stack.split("\n");
|
|
||||||
const curr_file= curr.slice(curr.indexOf("@"), curr.indexOf(".js:")+4);
|
|
||||||
const curr_lib= curr_file.includes("src/helpers.js") ? "src/" : curr_file;
|
|
||||||
this.stack= rest.find(l=> !l.includes(curr_lib)) || curr;
|
|
||||||
}
|
|
||||||
get compact(){
|
|
||||||
const { stack }= this;
|
|
||||||
return stack.slice(0, stack.indexOf("@")+1)+"…"+stack.slice(stack.lastIndexOf("/"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { hasOwn, oCreate } from "./helpers.js";
|
import { hasOwn, oCreate } from "./helpers.js";
|
||||||
const memoMark= "__dde_memo";
|
const memoMark= "__dde_memo_of";
|
||||||
const memo_scope= [];
|
const memo_scope= [];
|
||||||
/**
|
/**
|
||||||
* ```js
|
* ```js
|
||||||
@ -20,14 +20,14 @@ export function memo(key, generator){
|
|||||||
const [ { cache, after } ]= memo_scope;
|
const [ { cache, after } ]= memo_scope;
|
||||||
return after(k, hasOwn(cache, k) ? cache[k] : generator(key));
|
return after(k, hasOwn(cache, k) ? cache[k] : generator(key));
|
||||||
}
|
}
|
||||||
memo.isScope= function(obj){ return obj[memoMark]; };
|
memo.isScope= function(obj){ return Boolean(obj[memoMark]); };
|
||||||
/**
|
/**
|
||||||
* @param {Function} fun
|
* @param {Function} fun
|
||||||
* @param {Object} [options={}]
|
* @param {Object} [options={}]
|
||||||
* @param {AbortSignal} options.signal
|
* @param {AbortSignal} options.signal
|
||||||
* @param {boolean} [options.onlyLast=false]
|
* @param {boolean} [options.onlyLast=false]
|
||||||
* */
|
* */
|
||||||
memo.scope= function memoScope(fun, { signal, onlyLast }= {}){
|
memo.scope= function memoScopeCreate(fun, { signal, onlyLast }= {}){
|
||||||
let cache= oCreate();
|
let cache= oCreate();
|
||||||
function memoScope(...args){
|
function memoScope(...args){
|
||||||
if(signal && signal.aborted)
|
if(signal && signal.aborted)
|
||||||
@ -43,7 +43,7 @@ memo.scope= function memoScope(fun, { signal, onlyLast }= {}){
|
|||||||
cache= cache_local;
|
cache= cache_local;
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
memoScope[memoMark]= true;
|
memoScope[memoMark]= fun;
|
||||||
memoScope.clear= ()=> cache= oCreate();
|
memoScope.clear= ()=> cache= oCreate();
|
||||||
if(signal) signal.addEventListener("abort", memoScope.clear);
|
if(signal) signal.addEventListener("abort", memoScope.clear);
|
||||||
return memoScope;
|
return memoScope;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { queueSignalWrite, mark } from "./helpers.js";
|
import { queueSignalWrite, mark } from "./helpers.js";
|
||||||
export { mark };
|
export { mark };
|
||||||
import { hasOwn, Defined, oCreate, oAssign } from "../helpers.js";
|
import { hasOwn, oCreate, oAssign } from "../helpers.js";
|
||||||
|
|
||||||
const Signal = oCreate(null, {
|
const Signal = oCreate(null, {
|
||||||
get: { value(){ return read(this); } },
|
get: { value(){ return read(this); } },
|
||||||
@ -174,11 +174,11 @@ import { memo } from "../memo.js";
|
|||||||
*/
|
*/
|
||||||
signal.el= function(s, map){
|
signal.el= function(s, map){
|
||||||
map= memo.isScope(map) ? map : memo.scope(map, { onlyLast: true });
|
map= memo.isScope(map) ? map : memo.scope(map, { onlyLast: true });
|
||||||
const mark_start= el.mark({ type: "reactive", source: new Defined().compact }, true);
|
const { current }= scope, { scope: sc }= current;
|
||||||
|
const mark_start= el.mark({ type: "reactive", component: sc && sc.name || "" }, true);
|
||||||
const mark_end= mark_start.end;
|
const mark_end= mark_start.end;
|
||||||
const out= env.D.createDocumentFragment();
|
const out= env.D.createDocumentFragment();
|
||||||
out.append(mark_start, mark_end);
|
out.append(mark_start, mark_end);
|
||||||
const { current }= scope;
|
|
||||||
const reRenderReactiveElement= v=> {
|
const reRenderReactiveElement= v=> {
|
||||||
if(!mark_start.parentNode || !mark_end.parentNode) // === `isConnected` or wasn’t yet rendered
|
if(!mark_start.parentNode || !mark_end.parentNode) // === `isConnected` or wasn’t yet rendered
|
||||||
return removeSignalListener(s, reRenderReactiveElement);
|
return removeSignalListener(s, reRenderReactiveElement);
|
||||||
@ -386,7 +386,6 @@ function toSignal(s, value, actions, readonly= false){
|
|||||||
value: oAssign(oCreate(protoSigal), {
|
value: oAssign(oCreate(protoSigal), {
|
||||||
value, actions, onclear, host,
|
value, actions, onclear, host,
|
||||||
listeners: new Set(),
|
listeners: new Set(),
|
||||||
defined: new Defined().stack,
|
|
||||||
readonly
|
readonly
|
||||||
}),
|
}),
|
||||||
enumerable: false,
|
enumerable: false,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user