coralite 0.29.0 → 0.29.2
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coralite.d.ts","sourceRoot":"","sources":["../../lib/coralite.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"coralite.d.ts","sourceRoot":"","sources":["../../lib/coralite.js"],"names":[],"mappings":"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"}
|
package/dist/lib/index.js
CHANGED
|
@@ -9392,9 +9392,9 @@ ScriptManager.prototype.use = async function(plugin) {
|
|
|
9392
9392
|
ScriptManager.prototype.getHelpersContent = function() {
|
|
9393
9393
|
let helpers = "";
|
|
9394
9394
|
for (const key of Object.keys(this.helpers)) {
|
|
9395
|
-
helpers += `"${key}": (() => {
|
|
9395
|
+
helpers += `"${key}": (async () => {
|
|
9396
9396
|
const phase1 = ${this.helpers[key]};
|
|
9397
|
-
const phase2 = phase1({});
|
|
9397
|
+
const phase2 = await phase1({});
|
|
9398
9398
|
return (localContext) => phase2(localContext);
|
|
9399
9399
|
})(),`;
|
|
9400
9400
|
}
|
|
@@ -9407,9 +9407,9 @@ ScriptManager.prototype.addHelper = async function(name, method) {
|
|
|
9407
9407
|
ScriptManager.prototype.getHelpers = function() {
|
|
9408
9408
|
let helpers = "";
|
|
9409
9409
|
for (const key of Object.keys(this.helpers)) {
|
|
9410
|
-
helpers += `"${key}": (() => {
|
|
9410
|
+
helpers += `"${key}": (async () => {
|
|
9411
9411
|
const phase1 = ${this.helpers[key]};
|
|
9412
|
-
const phase2 = phase1({});
|
|
9412
|
+
const phase2 = await phase1({});
|
|
9413
9413
|
return (localContext) => phase2(localContext);
|
|
9414
9414
|
})(),`;
|
|
9415
9415
|
}
|
|
@@ -9450,10 +9450,11 @@ ScriptManager.prototype.compileAllInstances = async function(instances, mode) {
|
|
|
9450
9450
|
${helperParts}
|
|
9451
9451
|
};
|
|
9452
9452
|
`);
|
|
9453
|
-
entryCodeParts.push(`const getHelpers = (context) => {
|
|
9453
|
+
entryCodeParts.push(`const getHelpers = async (context) => {
|
|
9454
9454
|
const helpers = {}
|
|
9455
9455
|
for (const [key, helper] of Object.entries(coraliteComponentScriptHelpers)) {
|
|
9456
|
-
|
|
9456
|
+
const resolvedHelper = await helper
|
|
9457
|
+
helpers[key] = resolvedHelper(context)
|
|
9457
9458
|
}
|
|
9458
9459
|
return helpers
|
|
9459
9460
|
}
|
|
@@ -9533,7 +9534,16 @@ ScriptManager.prototype.compileAllInstances = async function(instances, mode) {
|
|
|
9533
9534
|
entryCodeParts.push("const coraliteComponentDefaults = {\n");
|
|
9534
9535
|
for (const key of processedComponentKeys) {
|
|
9535
9536
|
if (this.sharedFunctions[key] && this.sharedFunctions[key].defaultValues) {
|
|
9536
|
-
entryCodeParts.push(` "${key}":
|
|
9537
|
+
entryCodeParts.push(` "${key}": (() => {
|
|
9538
|
+
`);
|
|
9539
|
+
entryCodeParts.push(` const defaults = ${serialize(this.sharedFunctions[key].defaultValues)};
|
|
9540
|
+
`);
|
|
9541
|
+
entryCodeParts.push(` return defaults;
|
|
9542
|
+
`);
|
|
9543
|
+
entryCodeParts.push(` })(),
|
|
9544
|
+
`);
|
|
9545
|
+
} else {
|
|
9546
|
+
entryCodeParts.push(` "${key}": {},
|
|
9537
9547
|
`);
|
|
9538
9548
|
}
|
|
9539
9549
|
}
|
|
@@ -9554,25 +9564,80 @@ class CoraliteElement extends HTMLElement {
|
|
|
9554
9564
|
|
|
9555
9565
|
const defaults = coraliteComponentDefaults[componentId] || {};
|
|
9556
9566
|
this.values = { ...defaults };
|
|
9567
|
+
this._isRendering = false;
|
|
9568
|
+
this._observer = null;
|
|
9557
9569
|
|
|
9558
9570
|
this.attachShadow({ mode: 'open' });
|
|
9559
9571
|
}
|
|
9560
9572
|
|
|
9561
|
-
|
|
9562
|
-
|
|
9563
|
-
|
|
9564
|
-
|
|
9565
|
-
|
|
9573
|
+
_replaceTokens(template) {
|
|
9574
|
+
return template.replace(/\\{\\{\\s*([\\w.]+)\\s*\\}\\}/g, (match, token) => {
|
|
9575
|
+
let value = this.values;
|
|
9576
|
+
const properties = token.split('.');
|
|
9577
|
+
for (const prop of properties) {
|
|
9578
|
+
if (value && typeof value === 'object') {
|
|
9579
|
+
value = value[prop];
|
|
9580
|
+
} else {
|
|
9581
|
+
value = undefined;
|
|
9582
|
+
break;
|
|
9583
|
+
}
|
|
9584
|
+
}
|
|
9585
|
+
|
|
9586
|
+
if (typeof value === 'function') {
|
|
9587
|
+
value = value(this.values);
|
|
9588
|
+
}
|
|
9589
|
+
|
|
9590
|
+
return value != null ? value : '';
|
|
9591
|
+
});
|
|
9592
|
+
}
|
|
9593
|
+
|
|
9594
|
+
_render() {
|
|
9595
|
+
if (this._isRendering) return;
|
|
9596
|
+
this._isRendering = true;
|
|
9597
|
+
|
|
9598
|
+
Promise.resolve().then(() => {
|
|
9599
|
+
this._isRendering = false;
|
|
9600
|
+
const template = coraliteComponentTemplates[this.componentId] || '';
|
|
9601
|
+
const styles = coraliteComponentStyles[this.componentId];
|
|
9602
|
+
|
|
9566
9603
|
let content = '';
|
|
9567
9604
|
if (styles) {
|
|
9568
9605
|
content += \`<style>\${styles}</style>\`;
|
|
9569
9606
|
}
|
|
9570
|
-
content += template;
|
|
9571
|
-
|
|
9607
|
+
content += this._replaceTokens(template);
|
|
9608
|
+
|
|
9609
|
+
this.shadowRoot.innerHTML = content;
|
|
9610
|
+
});
|
|
9611
|
+
}
|
|
9612
|
+
|
|
9613
|
+
connectedCallback() {
|
|
9614
|
+
this._instanceId = crypto.randomUUID();
|
|
9615
|
+
|
|
9616
|
+
// Initial sync of attributes to values
|
|
9617
|
+
for (let i = 0; i < this.attributes.length; i++) {
|
|
9618
|
+
const attr = this.attributes[i];
|
|
9619
|
+
// Convert kebab-case to camelCase
|
|
9620
|
+
const camelName = attr.name.replace(/-([a-z])/g, (g) => g[1].toUpperCase());
|
|
9621
|
+
this.values[camelName] = attr.value;
|
|
9622
|
+
if (camelName !== attr.name) {
|
|
9623
|
+
this.values[attr.name] = attr.value;
|
|
9624
|
+
}
|
|
9572
9625
|
}
|
|
9573
9626
|
|
|
9627
|
+
// Initial render synchronously so it's ready for the script
|
|
9628
|
+
const template = coraliteComponentTemplates[this.componentId] || '';
|
|
9629
|
+
const styles = coraliteComponentStyles[this.componentId];
|
|
9630
|
+
|
|
9631
|
+
let content = '';
|
|
9632
|
+
if (styles) {
|
|
9633
|
+
content += \`<style>\${styles}</style>\`;
|
|
9634
|
+
}
|
|
9635
|
+
content += this._replaceTokens(template);
|
|
9636
|
+
|
|
9637
|
+
this.shadowRoot.innerHTML = content;
|
|
9638
|
+
|
|
9574
9639
|
const localContext = {
|
|
9575
|
-
instanceId:
|
|
9640
|
+
instanceId: this._instanceId,
|
|
9576
9641
|
componentId: this.componentId,
|
|
9577
9642
|
values: this.values,
|
|
9578
9643
|
root: this.shadowRoot,
|
|
@@ -9590,15 +9655,48 @@ class CoraliteElement extends HTMLElement {
|
|
|
9590
9655
|
this.values[\`ref_\${refName}\`] = dynamicId;
|
|
9591
9656
|
}
|
|
9592
9657
|
|
|
9593
|
-
|
|
9594
|
-
|
|
9595
|
-
|
|
9596
|
-
|
|
9597
|
-
|
|
9658
|
+
;(async () => {
|
|
9659
|
+
const helpers = await getHelpers(localContext);
|
|
9660
|
+
localContext.helpers = helpers;
|
|
9661
|
+
|
|
9662
|
+
const imports = coraliteComponentImports[this.componentId] || {};
|
|
9663
|
+
localContext.imports = imports;
|
|
9664
|
+
|
|
9665
|
+
const userScript = coraliteComponentFunctions[this.componentId];
|
|
9666
|
+
if (userScript) {
|
|
9667
|
+
userScript(localContext);
|
|
9668
|
+
}
|
|
9669
|
+
})();
|
|
9598
9670
|
|
|
9599
|
-
|
|
9600
|
-
|
|
9601
|
-
|
|
9671
|
+
this._observer = new MutationObserver((mutations) => {
|
|
9672
|
+
let shouldRender = false;
|
|
9673
|
+
for (const mutation of mutations) {
|
|
9674
|
+
if (mutation.type === 'attributes') {
|
|
9675
|
+
const attrName = mutation.attributeName;
|
|
9676
|
+
const camelName = attrName.replace(/-([a-z])/g, (g) => g[1].toUpperCase());
|
|
9677
|
+
const newValue = this.getAttribute(attrName);
|
|
9678
|
+
|
|
9679
|
+
if (this.values[camelName] !== newValue) {
|
|
9680
|
+
this.values[camelName] = newValue;
|
|
9681
|
+
if (camelName !== attrName) {
|
|
9682
|
+
this.values[attrName] = newValue;
|
|
9683
|
+
}
|
|
9684
|
+
shouldRender = true;
|
|
9685
|
+
}
|
|
9686
|
+
}
|
|
9687
|
+
}
|
|
9688
|
+
if (shouldRender) {
|
|
9689
|
+
this._render();
|
|
9690
|
+
}
|
|
9691
|
+
});
|
|
9692
|
+
|
|
9693
|
+
this._observer.observe(this, { attributes: true });
|
|
9694
|
+
}
|
|
9695
|
+
|
|
9696
|
+
disconnectedCallback() {
|
|
9697
|
+
if (this._observer) {
|
|
9698
|
+
this._observer.disconnect();
|
|
9699
|
+
this._observer = null;
|
|
9602
9700
|
}
|
|
9603
9701
|
}
|
|
9604
9702
|
}
|
|
@@ -9629,7 +9727,7 @@ for (const componentId of Object.keys(coraliteComponentTemplates)) {
|
|
|
9629
9727
|
entryCodeParts.push("context.imports = imports;\n");
|
|
9630
9728
|
entryCodeParts.push("const setupValues = await globalSetupValuesPromise;\n");
|
|
9631
9729
|
entryCodeParts.push("context.values = { ...context.values, ...setupValues };\n");
|
|
9632
|
-
entryCodeParts.push("const helpers = getHelpers(context);\n");
|
|
9730
|
+
entryCodeParts.push("const helpers = await getHelpers(context);\n");
|
|
9633
9731
|
entryCodeParts.push("context.helpers = helpers;\n");
|
|
9634
9732
|
entryCodeParts.push(`
|
|
9635
9733
|
// Instance: ${instanceId}
|
|
@@ -9798,13 +9896,14 @@ for (const componentId of Object.keys(coraliteComponentTemplates)) {
|
|
|
9798
9896
|
for (const key in module.helpers) {
|
|
9799
9897
|
if (Object.hasOwn(module.helpers, key)) {
|
|
9800
9898
|
const fn = normalizeFunction(module.helpers[key]);
|
|
9801
|
-
contents += ` "${key}": (() => {
|
|
9899
|
+
contents += ` "${key}": (async () => {
|
|
9802
9900
|
const globalContext = {
|
|
9803
9901
|
imports: pluginImports,
|
|
9804
9902
|
config: pluginConfig
|
|
9805
9903
|
};
|
|
9806
9904
|
const fn = ${fn};
|
|
9807
|
-
|
|
9905
|
+
const phase2 = await fn(globalContext);
|
|
9906
|
+
return (localContext) => phase2(localContext);
|
|
9808
9907
|
})(),
|
|
9809
9908
|
`;
|
|
9810
9909
|
}
|
|
@@ -11167,10 +11266,34 @@ Coralite.prototype.createComponentElement = async function({
|
|
|
11167
11266
|
scriptResult.__script__.content = "export default function(){}";
|
|
11168
11267
|
}
|
|
11169
11268
|
const stylesHTML = module.styles && module.styles.length ? module.styles.join("\n") : "";
|
|
11269
|
+
const templateHTML = this.transform(module.template.children);
|
|
11270
|
+
const componentTokens = {};
|
|
11271
|
+
for (let i = 0; i < module.values.attributes.length; i++) {
|
|
11272
|
+
const item = module.values.attributes[i];
|
|
11273
|
+
for (let j = 0; j < item.tokens.length; j++) {
|
|
11274
|
+
componentTokens[item.tokens[j].name] = true;
|
|
11275
|
+
}
|
|
11276
|
+
}
|
|
11277
|
+
for (let i = 0; i < module.values.textNodes.length; i++) {
|
|
11278
|
+
const item = module.values.textNodes[i];
|
|
11279
|
+
for (let j = 0; j < item.tokens.length; j++) {
|
|
11280
|
+
componentTokens[item.tokens[j].name] = true;
|
|
11281
|
+
}
|
|
11282
|
+
}
|
|
11283
|
+
const componentDefaultValues = scriptResult.__script__.defaultValues || {};
|
|
11284
|
+
if (values) {
|
|
11285
|
+
for (const token of Object.keys(componentTokens)) {
|
|
11286
|
+
if (typeof values[token] === "function") {
|
|
11287
|
+
componentDefaultValues[token] = values[token];
|
|
11288
|
+
}
|
|
11289
|
+
}
|
|
11290
|
+
}
|
|
11170
11291
|
this._scriptManager.registerComponent({
|
|
11171
11292
|
id: module.id,
|
|
11172
11293
|
script: scriptResult.__script__,
|
|
11173
11294
|
filePath: moduleComponent.path.pathname,
|
|
11295
|
+
template: templateHTML,
|
|
11296
|
+
defaultValues: componentDefaultValues,
|
|
11174
11297
|
styles: stylesHTML
|
|
11175
11298
|
});
|
|
11176
11299
|
if (scriptResult.__script__ && scriptResult.__script__.components) {
|