Skip to content

Commit

Permalink
build v2.0.5
Browse files Browse the repository at this point in the history
  • Loading branch information
JamiLu committed Jun 4, 2023
1 parent 4b7860d commit a6b9cc6
Show file tree
Hide file tree
Showing 5 changed files with 62 additions and 27 deletions.
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ Links

Download
-----
- [https://github.com/JamiLu/RME/releases/download/v2.0.4/rme.js](https://github.com/JamiLu/RME/releases/download/v2.0.4/rme.js)
- [https://github.com/JamiLu/RME/releases/download/v2.0.4/rme.es5.js](https://github.com/JamiLu/RME/releases/download/v2.0.4/rme.es5.js)
- [https://github.com/JamiLu/RME/releases/download/v2.0.4/rme.es5.min.js](https://github.com/JamiLu/RME/releases/download/v2.0.4/rme.es5.min.js)
- [https://github.com/JamiLu/RME/releases/download/v2.0.5/rme.js](https://github.com/JamiLu/RME/releases/download/v2.0.5/rme.js)
- [https://github.com/JamiLu/RME/releases/download/v2.0.5/rme.es5.js](https://github.com/JamiLu/RME/releases/download/v2.0.5/rme.es5.js)
- [https://github.com/JamiLu/RME/releases/download/v2.0.5/rme.es5.min.js](https://github.com/JamiLu/RME/releases/download/v2.0.5/rme.es5.min.js)

NPM
---
Expand Down Expand Up @@ -51,7 +51,7 @@ Basics

Download a script file and place it to a project folder or simply use a github online url as follows.

`<script src="https://github.com/JamiLu/RME/releases/download/v2.0.4/rme.es5.min.js"></script>`
`<script src="https://github.com/JamiLu/RME/releases/download/v2.0.5/rme.es5.min.js"></script>`

__Or use NPM__

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "rme.js",
"version": "2.0.4",
"version": "2.0.5",
"description": "Functional JavaScript library for HTML 5 web sites.",
"main": "./src/index.js",
"keywords": [
Expand Down
42 changes: 31 additions & 11 deletions rme-build-current/rme.es5.js
Original file line number Diff line number Diff line change
Expand Up @@ -1326,7 +1326,7 @@ var RMEAppComponent = /*#__PURE__*/function () {

_createClass(RMEAppComponent, [{
key: "render",
value: function render(props, parent) {
value: function render(props, parent, componentLiteral) {
var _this4 = this;

var _this$store = _slicedToArray(this.store, 2),
Expand Down Expand Up @@ -1360,7 +1360,7 @@ var RMEAppComponent = /*#__PURE__*/function () {

if (this.shouldUpdate) {
result = this.renderHook(nextProps, ops);
result = RMETemplateResolver.isTemplate(result) ? RMETemplateResolver.resolve(result, parent, this.appName, this.parentContext) : result;
result = RMETemplateResolver.isTemplate(result) ? RMETemplateResolver.resolve(result, parent, this.appName, this.parentContext, componentLiteral) : result;
} else {
result = this.prevResult;
}
Expand Down Expand Up @@ -1466,17 +1466,17 @@ var RMEComponentManagerV2 = function () {
}
}, {
key: "getComponent",
value: function getComponent(name, props, parent) {
var parentContext = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
var appName = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : '';
value: function getComponent(name, props, parent, componentLiteral) {
var parentContext = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : '';
var appName = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : '';
var component = this.componentInstanceMap[appName + name + parentContext];

if (!component) {
component = new RMEAppComponent(this.componentFunctionMap[name], appName, parentContext);
this.componentInstanceMap[appName + name + parentContext] = component;
}

return component.render(props, parent);
return component.render(props, parent, componentLiteral);
}
}]);

Expand Down Expand Up @@ -5805,6 +5805,8 @@ var RMETemplateResolver = function () {
* @param {object} template
* @param {Elem} Elem
* @param {string} appName
* @param {string} context
* @param {string} componentLiteral
* @returns Elem instance element tree.
*/

Expand All @@ -5814,12 +5816,19 @@ var RMETemplateResolver = function () {
value: function setTemplateAndResolve(template, parent) {
var appName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
var context = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
var componentLiteral = arguments.length > 4 ? arguments[4] : undefined;
this.template = template;
this.appName = appName;
this.context = context;

if (parent) {
this.root = parent;

if (componentLiteral) {
var key = Object.keys(this.template).shift();
this.template = _defineProperty({}, "".concat(key).concat(componentLiteral), this.template[key]);
}

this.resolveNextParent(this.template, this.root, 1);
} else {
this.resolveRootAndTemplate();
Expand Down Expand Up @@ -5964,19 +5973,28 @@ var RMETemplateResolver = function () {
var name = Template.getElementName(key);

if (RMEComponentManagerV2.hasComponent(name)) {
var component = RMEComponentManagerV2.getComponent(name, this.resolveComponentLiteralVal(val), parent, "".concat(parentContext).concat(round).concat(invoked), this.appName);
var component = RMEComponentManagerV2.getComponent(name, this.resolveComponentLiteralVal(val), parent, this.cutComponentLiteral(name, key), "".concat(parentContext).concat(round).concat(invoked), this.appName);

if (RMETemplateFragmentHelper.isFragment(component) && Util.notEmpty(component)) {
this.resolveNextParent(RMETemplateFragmentHelper.resolveFragmentValue(component, val), parent, round);
} else if (Util.notEmpty(component)) {
this.resolveElement(key, component);
}
} else {
var child = Template.resolveStringNumber(this.resolveElement(key, val), val);
parent.append(child);
this.resolveNextParent(val, child, round, parentContext);
}
}
/**
* Cuts of the Component name and returns literal params if present.
* @param {string} key Component key
* @returns Literal params match array if params are found
*/

}, {
key: "cutComponentLiteral",
value: function cutComponentLiteral(name, key) {
return key.match("[^".concat(name, "].*"));
}
/**
* Resolves component literal values and converts it to a properties object that the component understands.
* The given parameter is returned as is if the parameter is not a string nor a number literal.
Expand Down Expand Up @@ -6363,13 +6381,15 @@ var RMETemplateResolver = function () {
* @param {object} template - JSON notation template object
* @param {Elem} Elem - Elem object (optional)
* @param {string} appName - App instance name (optional)
* @param {string} context - Component position
* @param {string} componentLiteral - Component literal attributes
* @returns Element tree of Elem instance objects.
*/

}, {
key: "resolve",
value: function resolve(template, parent, appName, context) {
return Template.create().setTemplateAndResolve(template, parent, appName, context);
value: function resolve(template, parent, appName, context, componentLiteral) {
return Template.create().setTemplateAndResolve(template, parent, appName, context, componentLiteral);
}
/**
* Method will apply the properties given to the element. Old properties are overridden.
Expand Down
2 changes: 1 addition & 1 deletion rme-build-current/rme.es5.min.js

Large diffs are not rendered by default.

35 changes: 25 additions & 10 deletions rme-build-current/rme.js
Original file line number Diff line number Diff line change
Expand Up @@ -1058,7 +1058,7 @@ class RMEAppComponent {
this.prevResult;
}

render(props, parent) {
render(props, parent, componentLiteral) {
const [getState, setState] = this.store;

const nextProps = {
Expand Down Expand Up @@ -1091,7 +1091,7 @@ class RMEAppComponent {

if (this.shouldUpdate) {
result = this.renderHook(nextProps, ops);
result = RMETemplateResolver.isTemplate(result) ? RMETemplateResolver.resolve(result, parent, this.appName, this.parentContext) : result;
result = RMETemplateResolver.isTemplate(result) ? RMETemplateResolver.resolve(result, parent, this.appName, this.parentContext, componentLiteral) : result;
} else {
result = this.prevResult;
}
Expand Down Expand Up @@ -1161,14 +1161,14 @@ const RMEComponentManagerV2 = (function() {
}
}

getComponent(name, props, parent, parentContext = '', appName = '') {
getComponent(name, props, parent, componentLiteral, parentContext = '', appName = '') {
let component = this.componentInstanceMap[appName + name + parentContext];
if (!component) {
component = new RMEAppComponent(this.componentFunctionMap[name], appName, parentContext);
this.componentInstanceMap[appName + name + parentContext] = component;
}

return component.render(props, parent);
return component.render(props, parent, componentLiteral);
}

}
Expand Down Expand Up @@ -4683,14 +4683,20 @@ const RMETemplateResolver = (function() {
* @param {object} template
* @param {Elem} Elem
* @param {string} appName
* @param {string} context
* @param {string} componentLiteral
* @returns Elem instance element tree.
*/
setTemplateAndResolve(template, parent, appName = '', context = '') {
setTemplateAndResolve(template, parent, appName = '', context = '', componentLiteral) {
this.template = template;
this.appName = appName;
this.context = context;
if (parent) {
this.root = parent;
if (componentLiteral) {
const key = Object.keys(this.template).shift();
this.template = { [`${key}${componentLiteral}`]: this.template[key] };
}
this.resolveNextParent(this.template, this.root, 1);
} else {
this.resolveRootAndTemplate();
Expand Down Expand Up @@ -4793,11 +4799,9 @@ const RMETemplateResolver = (function() {
resolveChild(key, val, parent, round, invoked, parentContext = '') {
const name = Template.getElementName(key);
if (RMEComponentManagerV2.hasComponent(name)) {
const component = RMEComponentManagerV2.getComponent(name, this.resolveComponentLiteralVal(val), parent, `${parentContext}${round}${invoked}`, this.appName);
const component = RMEComponentManagerV2.getComponent(name, this.resolveComponentLiteralVal(val), parent, this.cutComponentLiteral(name, key), `${parentContext}${round}${invoked}`, this.appName);
if (RMETemplateFragmentHelper.isFragment(component) && Util.notEmpty(component)) {
this.resolveNextParent(RMETemplateFragmentHelper.resolveFragmentValue(component, val), parent, round);
} else if (Util.notEmpty(component)) {
this.resolveElement(key, component);
}
} else {
const child = Template.resolveStringNumber(this.resolveElement(key, val), val);
Expand All @@ -4806,6 +4810,15 @@ const RMETemplateResolver = (function() {
}
}

/**
* Cuts of the Component name and returns literal params if present.
* @param {string} key Component key
* @returns Literal params match array if params are found
*/
cutComponentLiteral(name, key) {
return key.match(`[^${name}].*`);
}

/**
* Resolves component literal values and converts it to a properties object that the component understands.
* The given parameter is returned as is if the parameter is not a string nor a number literal.
Expand Down Expand Up @@ -5133,10 +5146,12 @@ const RMETemplateResolver = (function() {
* @param {object} template - JSON notation template object
* @param {Elem} Elem - Elem object (optional)
* @param {string} appName - App instance name (optional)
* @param {string} context - Component position
* @param {string} componentLiteral - Component literal attributes
* @returns Element tree of Elem instance objects.
*/
static resolve(template, parent, appName, context) {
return Template.create().setTemplateAndResolve(template, parent, appName, context);
static resolve(template, parent, appName, context, componentLiteral) {
return Template.create().setTemplateAndResolve(template, parent, appName, context, componentLiteral);
}

/**
Expand Down

0 comments on commit a6b9cc6

Please sign in to comment.