Skip to content

Commit

Permalink
0.0.5
Browse files Browse the repository at this point in the history
  • Loading branch information
bahrus committed Jun 4, 2023
1 parent ce1d00f commit 3c0e3e4
Show file tree
Hide file tree
Showing 22 changed files with 286 additions and 301 deletions.
91 changes: 13 additions & 78 deletions be-derived.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,81 +5,19 @@ export class BeDerived extends BE {
static get beConfig() {
return {
parse: true,
primaryProp: 'camelConfig',
primaryPropReq: true,
parseAndCamelize: true,
camelizeOptions: {
doSets: true,
simpleSets: ['Affect', 'Survey', 'Target'],
booleans: ['Itemize'],
}
};
}
async camelToCanonical(self) {
const { camelConfig, enhancedElement } = self;
let { affect, target, survey, Derive, itemize } = camelConfig;
affect = affect || 'previousElementSibling';
survey = survey || affect;
const canonicalConfig = {
affect,
itemize: !!itemize,
survey,
target,
};
if (Derive !== undefined) {
const { toCanonical } = await import('./derive.js');
canonicalConfig.deriveRules = await toCanonical(Derive); //await derive(Derive, realmToSurvey, derivedVals);
}
if (enhancedElement instanceof HTMLTemplateElement) {
const { toCanonical } = await import('./xslt.js');
canonicalConfig.xsltProcessor = toCanonical(enhancedElement);
}
return { canonicalConfig };
async attach(enhancedElement, enhancementInfo) {
super.attach(enhancedElement, enhancementInfo);
const { childrenParsed } = await import('be-a-beacon/childrenParsed.js');
await childrenParsed(enhancedElement);
const { getItemScopeObject } = await import('be-linked/getItemScopeObject.js');
this.derivedObject = await getItemScopeObject(enhancedElement);
this.resolved = true;
}
async onCanonical(self) {
const { enhancedElement, canonicalConfig } = self;
const { survey, affect, itemize, target, deriveRules, xsltProcessor } = canonicalConfig;
const { findRealm } = await import('trans-render/lib/findRealm.js');
const realmToSurvey = await findRealm(enhancedElement, survey);
if (!(realmToSurvey instanceof Element))
throw 'bD.404';
let affected = await findRealm(enhancedElement, affect);
let split;
if (target !== undefined) {
// const {beSplit} = await import('be-enhanced/cpu.js');
// split = await beSplit(target);
const { getVal } = await import('trans-render/lib/getVal.js');
const dotTarget = target[0] === '.' ? target : '.' + target;
affected = await getVal({ host: affected }, dotTarget);
}
const derivedVals = {};
if (itemize) {
const { itemize: doItemize } = await import('./itemize.js');
doItemize(realmToSurvey, derivedVals);
}
if (deriveRules !== undefined) {
const { derive } = await import('./derive.js');
derive(deriveRules, realmToSurvey, derivedVals);
}
if (enhancedElement instanceof HTMLTemplateElement) {
if (xsltProcessor !== undefined) {
const { xslt } = await import('./xslt.js');
xslt(xsltProcessor, realmToSurvey, derivedVals);
}
}
else if (enhancedElement instanceof HTMLScriptElement && enhancedElement.noModule) {
const { script } = await import('./script.js');
await script(enhancedElement, realmToSurvey, derivedVals);
}
Object.assign(affected, derivedVals);
// if(split !== undefined){
// const {setProp} = await import('trans-render/lib/setProp.js');
// await setProp(affected, split.path, derivedVals);
// }else{
// }
return {
resolved: true
};
logToConsole(self) {
const { derivedObject } = self;
console.log({ derivedObject });
}
}
const tagName = 'be-derived';
Expand All @@ -90,17 +28,14 @@ const xe = new XE({
tagName,
propDefaults: {
...propDefaults,
log: false,
},
propInfo: {
...propInfo
},
actions: {
camelToCanonical: {
ifAllOf: ['camelConfig'],
ifNoneOf: ['canonicalConfig']
},
onCanonical: {
ifAllOf: ['canonicalConfig']
logToConsole: {
ifAllOf: ['resolved', 'log']
}
}
},
Expand Down
112 changes: 20 additions & 92 deletions be-derived.ts
Original file line number Diff line number Diff line change
@@ -1,98 +1,29 @@
import {BE, propDefaults, propInfo} from 'be-enhanced/BE.js';
import {BEConfig, BeSplitOutput} from 'be-enhanced/types';
import {BEConfig, BeSplitOutput, EnhancementInfo} from 'be-enhanced/types';
import {XE} from 'xtal-element/XE.js';
import {JSONValue} from 'trans-render/lib/types';
import {Actions, AllProps, AP, PAP, ProPAP, ProPOA, POA, CamelConfig, CanonicalConfig} from './types';
import {Actions, AllProps, AP, PAP, ProPAP, ProPOA, POA} from './v2/types';
import {register} from 'be-hive/register.js';
import { JSONObject } from 'trans-render/lib/types';

export class BeDerived extends BE<AP, Actions, HTMLTemplateElement | HTMLScriptElement> implements Actions{
static override get beConfig(){
export class BeDerived extends BE<AP, Actions> implements Actions{
static override get beConfig(): BEConfig<any> {
return {
parse: true,
primaryProp: 'camelConfig',
cache: new Map<string, JSONValue>(),
primaryPropReq: true,
parseAndCamelize: true,
camelizeOptions: {
doSets: true,
simpleSets: ['Affect', 'Survey', 'Target'],
booleans: ['Itemize'],
}
} as BEConfig<CamelConfig>
}

async camelToCanonical(self: this): ProPAP {
const {camelConfig, enhancedElement} = self;
let {affect, target, survey, Derive, itemize} = camelConfig!;
affect = affect || 'previousElementSibling';
survey = survey || affect;
const canonicalConfig: CanonicalConfig = {
affect,
itemize: !!itemize,
survey,
target,

};


if(Derive !== undefined){
const {toCanonical} = await import('./derive.js');
canonicalConfig.deriveRules = await toCanonical(Derive); //await derive(Derive, realmToSurvey, derivedVals);
}

if(enhancedElement instanceof HTMLTemplateElement){
const {toCanonical} = await import('./xslt.js');
canonicalConfig.xsltProcessor = toCanonical(enhancedElement);
}

return {canonicalConfig};
}

async onCanonical(self: this): ProPAP {
const {enhancedElement, canonicalConfig} = self;
const {survey, affect, itemize, target, deriveRules, xsltProcessor} = canonicalConfig!;
const {findRealm} = await import('trans-render/lib/findRealm.js');
const realmToSurvey = await findRealm(enhancedElement, survey);
if(!(realmToSurvey instanceof Element)) throw 'bD.404';
let affected = await findRealm(enhancedElement, affect);
let split: BeSplitOutput | undefined;

if(target !== undefined){
// const {beSplit} = await import('be-enhanced/cpu.js');
// split = await beSplit(target);
const {getVal} = await import('trans-render/lib/getVal.js');
const dotTarget = target[0] === '.' ? target : '.' + target;
affected = await getVal({host: affected}, dotTarget);
}
const derivedVals = {} as any;
if(itemize){
const {itemize: doItemize} = await import('./itemize.js');
doItemize(realmToSurvey, derivedVals);
}
if(deriveRules !== undefined){
const {derive} = await import('./derive.js');
derive(deriveRules, realmToSurvey, derivedVals);
}
if(enhancedElement instanceof HTMLTemplateElement){
if(xsltProcessor !== undefined){
const {xslt} = await import('./xslt.js');
xslt(xsltProcessor, realmToSurvey, derivedVals);
}
}else if(enhancedElement instanceof HTMLScriptElement && enhancedElement.noModule){
const {script} = await import('./script.js');
await script(enhancedElement, realmToSurvey, derivedVals);
}
Object.assign(affected as any, derivedVals);
// if(split !== undefined){
// const {setProp} = await import('trans-render/lib/setProp.js');
// await setProp(affected, split.path, derivedVals);
override async attach(enhancedElement: Element, enhancementInfo: EnhancementInfo): Promise<void> {
super.attach(enhancedElement, enhancementInfo);
const {childrenParsed} = await import('be-a-beacon/childrenParsed.js');
await childrenParsed(enhancedElement);
const {getItemScopeObject} = await import('be-linked/getItemScopeObject.js');
this.derivedObject = await getItemScopeObject(enhancedElement);
this.resolved = true;
}

// }else{

// }
return {
resolved: true
} as PAP;
logToConsole(self: this): void {
const {derivedObject} = self;
console.log({derivedObject});
}
}

Expand All @@ -107,17 +38,14 @@ const xe = new XE<AP, Actions>({
tagName,
propDefaults: {
...propDefaults,
log: false,
},
propInfo:{
...propInfo
},
actions: {
camelToCanonical:{
ifAllOf: ['camelConfig'],
ifNoneOf: ['canonicalConfig']
},
onCanonical: {
ifAllOf: ['canonicalConfig']
actions:{
logToConsole: {
ifAllOf: ['resolved', 'log']
}
}
},
Expand Down
16 changes: 8 additions & 8 deletions v2/demo/dev.html → demo/dev.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@
<script type=importmap>
{
"imports": {
"be-a-beacon/": "../../node_modules/be-a-beacon/",
"be-enhanced/": "../../node_modules/be-enhanced/",
"be-hive/": "../../node_modules/be-hive/",
"be-intl/": "../../node_modules/be-intl/",
"be-linked/": "../../node_modules/be-linked/",
"be-propagating/": "../../node_modules/be-propagating/",
"trans-render/": "../../node_modules/trans-render/",
"xtal-element/": "../../node_modules/xtal-element/"
"be-a-beacon/": "../node_modules/be-a-beacon/",
"be-enhanced/": "../node_modules/be-enhanced/",
"be-hive/": "../node_modules/be-hive/",
"be-intl/": "../node_modules/be-intl/",
"be-linked/": "../node_modules/be-linked/",
"be-propagating/": "../node_modules/be-propagating/",
"trans-render/": "../node_modules/trans-render/",
"xtal-element/": "../node_modules/xtal-element/"
}
}
</script>
Expand Down
File renamed without changes.
109 changes: 109 additions & 0 deletions legacy/be-derived.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
import { BE, propDefaults, propInfo } from 'be-enhanced/BE.js';
import { XE } from 'xtal-element/XE.js';
import { register } from 'be-hive/register.js';
export class BeDerived extends BE {
static get beConfig() {
return {
parse: true,
primaryProp: 'camelConfig',
primaryPropReq: true,
parseAndCamelize: true,
camelizeOptions: {
doSets: true,
simpleSets: ['Affect', 'Survey', 'Target'],
booleans: ['Itemize'],
}
};
}
async camelToCanonical(self) {
const { camelConfig, enhancedElement } = self;
let { affect, target, survey, Derive, itemize } = camelConfig;
affect = affect || 'previousElementSibling';
survey = survey || affect;
const canonicalConfig = {
affect,
itemize: !!itemize,
survey,
target,
};
if (Derive !== undefined) {
const { toCanonical } = await import('./derive.js');
canonicalConfig.deriveRules = await toCanonical(Derive); //await derive(Derive, realmToSurvey, derivedVals);
}
if (enhancedElement instanceof HTMLTemplateElement) {
const { toCanonical } = await import('./xslt.js');
canonicalConfig.xsltProcessor = toCanonical(enhancedElement);
}
return { canonicalConfig };
}
async onCanonical(self) {
const { enhancedElement, canonicalConfig } = self;
const { survey, affect, itemize, target, deriveRules, xsltProcessor } = canonicalConfig;
const { findRealm } = await import('trans-render/lib/findRealm.js');
const realmToSurvey = await findRealm(enhancedElement, survey);
if (!(realmToSurvey instanceof Element))
throw 'bD.404';
let affected = await findRealm(enhancedElement, affect);
let split;
if (target !== undefined) {
// const {beSplit} = await import('be-enhanced/cpu.js');
// split = await beSplit(target);
const { getVal } = await import('trans-render/lib/getVal.js');
const dotTarget = target[0] === '.' ? target : '.' + target;
affected = await getVal({ host: affected }, dotTarget);
}
const derivedVals = {};
if (itemize) {
const { itemize: doItemize } = await import('./itemize.js');
doItemize(realmToSurvey, derivedVals);
}
if (deriveRules !== undefined) {
const { derive } = await import('./derive.js');
derive(deriveRules, realmToSurvey, derivedVals);
}
if (enhancedElement instanceof HTMLTemplateElement) {
if (xsltProcessor !== undefined) {
const { xslt } = await import('./xslt.js');
xslt(xsltProcessor, realmToSurvey, derivedVals);
}
}
else if (enhancedElement instanceof HTMLScriptElement && enhancedElement.noModule) {
const { script } = await import('./script.js');
await script(enhancedElement, realmToSurvey, derivedVals);
}
Object.assign(affected, derivedVals);
// if(split !== undefined){
// const {setProp} = await import('trans-render/lib/setProp.js');
// await setProp(affected, split.path, derivedVals);
// }else{
// }
return {
resolved: true
};
}
}
const tagName = 'be-derived';
const ifWantsToBe = 'derived';
const upgrade = '*';
const xe = new XE({
config: {
tagName,
propDefaults: {
...propDefaults,
},
propInfo: {
...propInfo
},
actions: {
camelToCanonical: {
ifAllOf: ['camelConfig'],
ifNoneOf: ['canonicalConfig']
},
onCanonical: {
ifAllOf: ['canonicalConfig']
}
}
},
superclass: BeDerived
});
register(ifWantsToBe, upgrade, tagName);
Loading

0 comments on commit 3c0e3e4

Please sign in to comment.