@chasemoskal/magical
Version:
web toolkit for lit apps
76 lines • 5.39 kB
JavaScript
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
import { render } from "lit";
import { directive } from "lit/directive.js";
import { AsyncDirective } from "lit/async-directive.js";
import { makeUseObjectForView } from "./view/make-use-object-for-view.js";
import { createShadowDomWithStyles } from "./view/create-shadow-dom-with-styles.js";
export const view = ({ styles, shadow = false }, sauce) => {
var _ViewDirective_instances, _ViewDirective_mostRecentProps, _ViewDirective_stateMap, _ViewDirective_setupMap, _ViewDirective_stateIndex, _ViewDirective_setupIndex, _ViewDirective_renderCount, _ViewDirective_use, _ViewDirective_root, _ViewDirective_renderIntoShadowOrNot;
class ViewDirective extends AsyncDirective {
constructor() {
super(...arguments);
_ViewDirective_instances.add(this);
_ViewDirective_mostRecentProps.set(this, []);
_ViewDirective_stateMap.set(this, new Map());
_ViewDirective_setupMap.set(this, new Map());
_ViewDirective_stateIndex.set(this, 0);
_ViewDirective_setupIndex.set(this, 0);
_ViewDirective_renderCount.set(this, 0);
_ViewDirective_use.set(this, makeUseObjectForView({
stateMap: __classPrivateFieldGet(this, _ViewDirective_stateMap, "f"),
setupMap: __classPrivateFieldGet(this, _ViewDirective_setupMap, "f"),
pullStateIndex: () => { var _a, _b; return __classPrivateFieldSet(this, _ViewDirective_stateIndex, (_b = __classPrivateFieldGet(this, _ViewDirective_stateIndex, "f"), _a = _b++, _b), "f"), _a; },
pullSetupIndex: () => { var _a, _b; return __classPrivateFieldSet(this, _ViewDirective_setupIndex, (_b = __classPrivateFieldGet(this, _ViewDirective_setupIndex, "f"), _a = _b++, _b), "f"), _a; },
getRenderCount: () => __classPrivateFieldGet(this, _ViewDirective_renderCount, "f"),
render: () => {
this.setValue(__classPrivateFieldGet(this, _ViewDirective_instances, "m", _ViewDirective_renderIntoShadowOrNot).call(this));
},
}));
_ViewDirective_root.set(this, shadow
? createShadowDomWithStyles(styles)
: undefined);
}
update(part, props) {
__classPrivateFieldSet(this, _ViewDirective_mostRecentProps, props, "f");
return __classPrivateFieldGet(this, _ViewDirective_instances, "m", _ViewDirective_renderIntoShadowOrNot).call(this);
}
disconnected() {
super.disconnected();
__classPrivateFieldSet(this, _ViewDirective_renderCount, 0, "f");
for (const dispose of __classPrivateFieldGet(this, _ViewDirective_setupMap, "f").values())
dispose();
__classPrivateFieldGet(this, _ViewDirective_setupMap, "f").clear();
}
render() {
__classPrivateFieldSet(this, _ViewDirective_stateIndex, 0, "f");
__classPrivateFieldSet(this, _ViewDirective_setupIndex, 0, "f");
const renderer = sauce(__classPrivateFieldGet(this, _ViewDirective_use, "f"));
return renderer(...__classPrivateFieldGet(this, _ViewDirective_mostRecentProps, "f"));
}
}
_ViewDirective_mostRecentProps = new WeakMap(), _ViewDirective_stateMap = new WeakMap(), _ViewDirective_setupMap = new WeakMap(), _ViewDirective_stateIndex = new WeakMap(), _ViewDirective_setupIndex = new WeakMap(), _ViewDirective_renderCount = new WeakMap(), _ViewDirective_use = new WeakMap(), _ViewDirective_root = new WeakMap(), _ViewDirective_instances = new WeakSet(), _ViewDirective_renderIntoShadowOrNot = function _ViewDirective_renderIntoShadowOrNot() {
let result;
if (__classPrivateFieldGet(this, _ViewDirective_root, "f")) {
render(this.render(), __classPrivateFieldGet(this, _ViewDirective_root, "f").shadow);
result = __classPrivateFieldGet(this, _ViewDirective_root, "f").element;
}
else {
result = this.render();
}
__classPrivateFieldSet(this, _ViewDirective_renderCount, __classPrivateFieldGet(this, _ViewDirective_renderCount, "f") + 1, "f");
return result;
};
const viewDirective = directive(ViewDirective);
return viewDirective;
};
//# sourceMappingURL=view.js.map