Comparing version 0.1.5 to 0.1.6
130
dominic.js
@@ -56,2 +56,15 @@ (function(root, factory) { | ||
} | ||
var assign3 = function (dest) { | ||
dest = dest || {} | ||
for (var i = 1; i < arguments.length; i++) { | ||
var src = arguments[i] | ||
var keys = Object.keys(arguments[i]) | ||
for (var j = 0; j < keys.length; j++) { | ||
var key = keys[j] | ||
if (!dest.hasOwnProperty(key)) | ||
dest[key] = src[key] | ||
} | ||
} | ||
return dest | ||
} | ||
var toSelector = function (dom) { | ||
@@ -276,3 +289,3 @@ var id = dom.id ? '#' + dom.id : '' | ||
var setChildren = function (root, obj, realRoot) { | ||
var setChildren = function (root, obj, realRoot, injectOpts) { | ||
'use strict' | ||
@@ -284,33 +297,39 @@ if (!isObj(obj)) return; | ||
} | ||
else if (Array.isArray(obj)) { | ||
for (var i = 0; i < obj.length; i++) | ||
setChildren(root, obj[i], realRoot) | ||
} | ||
else if (typeof obj === 'function') { | ||
var c = obj() | ||
setChildren(root, c, realRoot) | ||
} | ||
else { | ||
var tag = obj.tag | ||
if (tag) { | ||
delete obj.tag | ||
var el = CreateElement(tag, obj, realRoot) | ||
setChildren(root, el, realRoot) | ||
if (typeof obj === 'function') { | ||
var c = obj() | ||
setChildren(root, c, realRoot, injectOpts) | ||
} | ||
else if (obj.hasOwnProperty('for')) { | ||
if (!isObj(obj.for)) return; | ||
var cFromTpl = tpl2dom(root, obj, realRoot) | ||
setChildren(root, cFromTpl, realRoot) | ||
if (isObj(obj.update)) { | ||
setObserver(root, obj, realRoot) | ||
else if (Array.isArray(obj)) { | ||
for (var i = 0; i < obj.length; i++) { | ||
var opts = obj[i] | ||
if (injectOpts) assign3(opts, injectOpts) | ||
setChildren(root, obj[i], realRoot) | ||
} | ||
} | ||
else { | ||
var fn = obj.fn | ||
if (typeof fn === 'function') { | ||
var scope = obj.scope | ||
var thisArg = scope === 'root' ? realRoot : (scope === 'parent' ? root : scope) | ||
var children = fn.call(thisArg) | ||
setChildren(root, children, realRoot) | ||
var tag = obj.tag | ||
if (tag) { | ||
delete obj.tag | ||
if (injectOpts) assign3(opj, injectOpts) | ||
var el = CreateElement(tag, obj, realRoot) | ||
setChildren(root, el, realRoot) | ||
} | ||
else if (obj.hasOwnProperty('for')) { | ||
if (!isObj(obj.for)) return; | ||
var cFromTpl = tpl2dom(root, obj, realRoot) | ||
setChildren(root, cFromTpl, realRoot, injectOpts) | ||
if (isObj(obj.update)) { | ||
setObserver(root, obj, realRoot) | ||
} | ||
} | ||
else { | ||
var fn = obj.fn | ||
if (typeof fn === 'function') { | ||
var scope = obj.scope | ||
var thisArg = scope === 'root' ? realRoot : (scope === 'parent' ? root : scope) | ||
var children = fn.call(thisArg) | ||
setChildren(root, children, realRoot, injectOpts) | ||
} | ||
} | ||
} | ||
@@ -383,6 +402,6 @@ } | ||
} | ||
var setDelaySetups = function (el, setups, root) { | ||
var setDelaySetups = function (el, setups, root, injectOpts) { | ||
for (var i = 0, length = setups.length; i < length; i++) { | ||
var setup = setups[i] | ||
setters['set' + setup.key](el, setup.val, root) | ||
setters['set' + setup.key](el, setup.val, root, injectOpts) | ||
} | ||
@@ -404,7 +423,7 @@ } | ||
} | ||
var directDimensionStyle = ['width', 'height', 'maxWidth', 'maxHeight', 'padding', 'margin'] | ||
var directDisplayStyle = ['color', 'backgroundColor', 'background', 'display', 'position', 'opacity'] | ||
var directStyleCheck = directDimensionStyle.concat(directDisplayStyle) | ||
var fnConfigCheck = ['style', 'children', 'items', 'attrs', 'events'] | ||
var eventCfg = [ | ||
var dimensionStyle = ['width', 'height', 'maxWidth', 'maxHeight', 'padding', 'margin'] | ||
var displayStyle = ['color', 'backgroundColor', 'background', 'display', 'position', 'opacity'] | ||
var shareStyle = ['defaults'] | ||
var fnConfig = ['style', 'children', 'items', 'attrs', 'events'] | ||
var evtConfig = [ | ||
'click', 'mousedown', 'mouseup', 'mouseover', 'mouseout', 'mouseenter', 'mouseleave', | ||
@@ -422,17 +441,12 @@ 'dragstart', 'dragend', 'drag', 'dragover', 'dragenter', 'dragout', 'drop', | ||
var delayAppendTarget = ['parent'] | ||
var allChecks = directDimensionStyle.concat(directDisplayStyle, fnConfigCheck, eventCfg, delayCbProps, delayProps, delayTextProps, delayAppendTarget) | ||
var dimensionStyleRange = directDimensionStyle.length | ||
var directDisplayStyleRange = directDisplayStyle.length | ||
var fnConfigCheckRange = fnConfigCheck.length | ||
var eventCfgRange = eventCfg.length | ||
var delayCbPropsRange = delayCbProps.length | ||
var delayPropsRange = delayProps.length | ||
var allChecks = dimensionStyle.concat(displayStyle, shareStyle, fnConfig, evtConfig, delayCbProps, delayProps, delayTextProps, delayAppendTarget) | ||
var dimensionMaxIdx = dimensionStyleRange | ||
var directDisplayStyleMaxIdx = dimensionMaxIdx+ directDisplayStyleRange | ||
var fnConfigMaxIdx = directDisplayStyleMaxIdx + fnConfigCheckRange | ||
var eventCfgMaxIdx = fnConfigMaxIdx + eventCfgRange | ||
var delayCbPropsMaxIdx = eventCfgMaxIdx + delayCbPropsRange | ||
var delayPropsMaxIdx = delayCbPropsMaxIdx + delayPropsRange | ||
var delayTextPropsMaxIdx = delayPropsMaxIdx + delayTextProps.length | ||
var dimRange = dimensionStyle.length | ||
var disRange = dimRange + displayStyle.length | ||
var shareRange = disRange + shareStyle.length | ||
var fnRange = shareRange + fnConfig.length | ||
var evtRange = fnRange + evtConfig.length | ||
var cbRange = evtRange + delayCbProps.length | ||
var propRange = cbRange + delayProps.length | ||
var textRange = propRange + delayTextProps.length | ||
@@ -449,2 +463,3 @@ var CreateElement = function (name, attrs, root, data) { | ||
var delayRoot | ||
var injectOpts | ||
if (attrs.hasOwnProperty('if') && !evalIf(attrs.if)) return null | ||
@@ -458,13 +473,17 @@ for (var i = 0, length = attributes.length; i < length; i++) { | ||
else { | ||
if (keyIdx < directDisplayStyleMaxIdx) | ||
el.style[key] = isNaN(val) ? val : (val < 1.0 ? val : (val + 'px')) | ||
else if (keyIdx < fnConfigMaxIdx) | ||
if (keyIdx < dimRange) | ||
el.style[key] = isNaN(val) ? val : (val + 'px') | ||
else if (keyIdx < disRange) | ||
el.style[key] = val | ||
else if (keyIdx < shareRange) | ||
assign((injectOpts = injectOpts || {}), val) | ||
else if (keyIdx < fnRange) | ||
(delaySetups = delaySetups || []).push({ key: key, val: val }) | ||
else if (keyIdx < eventCfgMaxIdx) | ||
else if (keyIdx < evtRange) | ||
(delayEvts = delayEvts || []).push({ key: key, val: val }) | ||
else if (keyIdx < delayCbPropsMaxIdx) | ||
else if (keyIdx < cbRange) | ||
(delayCb = delayCb || {})[key] = val | ||
else if (keyIdx < delayPropsMaxIdx) | ||
else if (keyIdx < propRange) | ||
(delayProps = delayProps || {})[key] = val | ||
else if (keyIdx < delayTextPropsMaxIdx) | ||
else if (keyIdx < textRange) | ||
el.appendChild(document.createTextNode(val)) | ||
@@ -475,6 +494,7 @@ else | ||
} | ||
if (delayProps) | ||
setDelayProps(el, delayProps) | ||
if (delaySetups) | ||
setDelaySetups(el, delaySetups, root) | ||
setDelaySetups(el, delaySetups, root, injectOpts) | ||
if (delayEvts) | ||
@@ -481,0 +501,0 @@ setDelayEvts(el, delayEvts, root) |
@@ -1,1 +0,1 @@ | ||
!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.CreateElement=t()}(this,function(){var e=[],t={},r=function(e){return e instanceof Node},n=function(e){var t=typeof e;return"object"===t||"function"===t},o=function(e){var t=typeof e;return"string"===t||"number"===t},a=function(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()},i=function(e){e=e||{};for(var t=1;t<arguments.length;t++)for(var r=arguments[t],n=Object.keys(arguments[t]),o=0;o<n.length;o++)e[n[o]]=r[n[o]];return e},f=function(e){if(e=e||{},arguments.length<2)return e;var t=arguments[arguments.length-1];if("string"!=typeof t)return e;var r=t.split(",");if(!r.length)return e;for(var n=1;n<arguments.length-1;n++)for(var o=arguments[n],a=Object.keys(arguments[n]),i=0;i<a.length;i++){var f=a[i];if(-1!==r.indexOf(f)){var u=o[f];e[f]=u}}return e},u=function(t){var r=t.id?"#"+t.id:"",n=t.classList.toString(),o=n?n.split(" "):e,a=t.localName+r+(o.length?"."+o.join("."):"");return a},c=function(e,t,r){for(;t!==e;){if(t.matches(r))return t;t=t.parentNode}return null},l=function(e,t,r){t=t||{};var n=t.el||document.documentElement,o=t.callback,a=t.capture||!1,i=t.delegate,f=function(e){if("string"==typeof i){if(n===e.target)return;var t=c(n,e.target,i);if(!t)return;"function"==typeof o&&o.call(t,e)}else"function"==typeof o&&o.call(r,e)};return f.destroy=function(){return this.el=null,n.removeEventListener(e,f,a)},f.el=n,f.type=e,f.capture=a,n.addEventListener(e,f,a),f},s=Object.defineProperties,p=Object.defineProperty,v=function(){var e=function(){Array.call(this)};return e.prototype=Object.create(Array.prototype),s(e.prototype,{remove:{value:function(e){if("function"!=typeof e)return!1;for(var t=[],r=0,n=0;n<this.length;n++)e.call(null,this[n])&&t.push(this[n]);for(var o=0;o<t.length;o++){var a=t[o];a.destroy(),this.splice(this.indexOf(a),1),r++}return r==t.length}},removeEvent:{value:function(e,t,r){var n=this,o=[];return this.forEach(function(n){"*"!==e&&n.type!==e||"*"!==t&&n.el!==t||r&&n.capture!==r||o.push(n)}),o.forEach(function(e){e.destroy(),n.splice(n.indexOf(e),1)}),o.length}},removeAll:{value:function(){for(var e=0;e<this.length;e++)this[e].destroy();this.length=0}}}),e}(),h=function(){var e=function(){};return e.prototype=Object.create(Object.prototype),s(e.prototype,{remove:{value:function(e){if("function"!=typeof e)return!1;for(var t=Object.keys(this),r=0,n=0;n<t.length;n++){var o=t[n];e.call(null,this[o],o)&&(r+=delete this[o]?1:0)}return r==t.length}},removeRef:{value:function(e){return this.hasOwnProperty(e)?delete this[e]:!1}},removeAll:{value:function(){for(var e=Object.keys(this),t=0;t<e.length;t++)delete this[e[t]];return t===e.length}}}),e}(),d=function(){var e=function(e){if("undefined"==typeof e)throw new Error("No root provided");this.__owner=e};return e.prototype=Object.create(Object.prototype),s(e.prototype,{add:{value:function(e,t){var r=t.update?t.update.observeProp:"";if(!r||"__owner"===r||!o(r))return!1;var n=f({},t,{appendTo:e,obsProp:r},"tplFn,for,root,appendTo,obsProp,update");p(this,r,{set:function(t){for(n["for"]=t;e.firstChild;){var r=e.removeChild(e.firstChild);this.__owner.evts.remove(function(e){return r.contains(e.el)}),this.__owner.refs.remove(function(e,t){return r===e||r.contains(e)})}var o=g(e,n,this.__owner);b(e,o,this.__owner)}})}}}),e}(),y=function(e,t,r){var n=t.ref;if(o(n)){var a=t.refScope,i="parent"===a?e:r;i.refs=i.refs||new h,i.refs[n]=t}},g=function(e,t,r){var n,o=t["for"],a=t.root||"",i=a?o[a]:o,f=t.tplFn;if(i&&"function"==typeof f){var u=t.scope,c="root"===u?r:"parent"===u?e:u;n=Array.isArray(i)?i.map(f,c):f.call(c,i)}return n},m=function(e,t,r){r.observe=r.observe||new d(r),r.observe.add(e,t)},b=function(e,t,o){"use strict";if(n(t))if(r(t))e.appendChild(t),y(e,t,o);else if(Array.isArray(t))for(var a=0;a<t.length;a++)b(e,t[a],o);else if("function"==typeof t){var i=t();b(e,i,o)}else{var f=t.tag;if(f){delete t.tag;var u=V(f,t,o);b(e,u,o)}else if(t.hasOwnProperty("for")){if(!n(t["for"]))return;var c=g(e,t,o);b(e,c,o),n(t.update)&&m(e,t,o)}else{var l=t.fn;if("function"==typeof l){var s=t.scope,p="root"===s?o:"parent"===s?e:s,v=l.call(p);b(e,v,o)}}}},w=function(e,t,r){var n=t.type;if(!n)throw new Error("No event type specified");var o,a=t.handler,i=typeof a;r=r||e;var f="root"===t.scope?r:t.scope?t.scope:e;if("function"===i?o=a:"string"===i&&(o=f[a]),"function"!=typeof o)throw new Error('Cannot find handler: "'+a+'" on element: ['+u(f)+"].");var c=t.capture,s=t.delegate,p=l(n,{el:e,callback:o,capture:c,delegate:s},f);r.evts=r.evts||new v,r.evts.push(p)},O=function(e,t,r){if(Array.isArray(t))for(var n=0;n<t.length;n++)w(e,t[n],r);else w(e,t,r)},k=function(e,t){for(var r=Object.keys(t),n=0;n<r.length;n++){var o=r[n],i=t[o];e.setAttribute(a(o),i)}},j=function(e,t){for(var r=Object.keys(t),n=0;n<r.length;n++){var o=r[n],a=t[o];e.style[o]=isNaN(a)?a:a+"px"}},x={setevents:O,setattrs:k,setstyle:j,setchildren:b,setitems:b},A=function(e,t){for(var r=Object.keys(t),n=r.length,o=0;n>o;o++){var a=r[o],i=t[a];e[a]=(e[a]+i).trim()}},_=function(e,t,r){for(var n=0,o=t.length;o>n;n++){var a=t[n];x["set"+a.key](e,a.val,r)}},C=function(e,t,r){for(var n=0,o=t.length;o>n;n++){var a=t[n],f=i({},{type:a.key},a.val);w(e,f,r)}},E=function(e){var t;return t="function"==typeof e?e():e,Boolean(t)},N=["width","height","maxWidth","maxHeight","padding","margin"],P=["color","backgroundColor","background","display","position","opacity"],L=(N.concat(P),["style","children","items","attrs","events"]),T=["click","mousedown","mouseup","mouseover","mouseout","mouseenter","mouseleave","dragstart","dragend","drag","dragover","dragenter","dragout","drop","blur","focus","keydown","keypress","keyup","change","input","submit","touchstart","touchmove","touchend","wheel","scroll"],F=["created","appended"],S=["className","id"],$=["text","textContent"],z=["parent"],B=N.concat(P,L,T,F,S,$,z),H=N.length,R=P.length,W=L.length,Z=T.length,q=F.length,D=S.length,G=H,I=G+R,J=I+W,K=J+Z,M=K+q,Q=M+D,U=Q+$.length,V=function(e,n,o,a){n=n||t;var i=document.createElement(e);o=o||i;var f,u,c,l,s,p=Object.keys(n);if(n.hasOwnProperty("if")&&!E(n["if"]))return null;for(var v=0,h=p.length;h>v;v++){var d=p[v],y=n[d],g=B.indexOf(d);-1==g?i[d]=y:I>g?i.style[d]=isNaN(y)?y:1>y?y:y+"px":J>g?(f=f||[]).push({key:d,val:y}):K>g?(u=u||[]).push({key:d,val:y}):M>g?(c=c||{})[d]=y:Q>g?(l=l||{})[d]=y:U>g?i.appendChild(document.createTextNode(y)):s=y}return l&&A(i,l),f&&_(i,f,o),u&&C(i,u,o),c&&"function"==typeof c.created&&c.created.call(i),s&&r(s)&&i===o&&(s.appendChild(i),c&&"function"==typeof c.appended&&c.appended.call(i,s)),i},X=function(e,t){return V(e,t)};return X}); | ||
!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.CreateElement=t()}(this,function(){var e=[],t={},r=function(e){return e instanceof Node},n=function(e){var t=typeof e;return"object"===t||"function"===t},o=function(e){var t=typeof e;return"string"===t||"number"===t},a=function(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()},i=function(e){e=e||{};for(var t=1;t<arguments.length;t++)for(var r=arguments[t],n=Object.keys(arguments[t]),o=0;o<n.length;o++)e[n[o]]=r[n[o]];return e},f=function(e){if(e=e||{},arguments.length<2)return e;var t=arguments[arguments.length-1];if("string"!=typeof t)return e;var r=t.split(",");if(!r.length)return e;for(var n=1;n<arguments.length-1;n++)for(var o=arguments[n],a=Object.keys(arguments[n]),i=0;i<a.length;i++){var f=a[i];if(-1!==r.indexOf(f)){var u=o[f];e[f]=u}}return e},u=function(e){e=e||{};for(var t=1;t<arguments.length;t++)for(var r=arguments[t],n=Object.keys(arguments[t]),o=0;o<n.length;o++){var a=n[o];e.hasOwnProperty(a)||(e[a]=r[a])}return e},l=function(t){var r=t.id?"#"+t.id:"",n=t.classList.toString(),o=n?n.split(" "):e,a=t.localName+r+(o.length?"."+o.join("."):"");return a},c=function(e,t,r){for(;t!==e;){if(t.matches(r))return t;t=t.parentNode}return null},s=function(e,t,r){t=t||{};var n=t.el||document.documentElement,o=t.callback,a=t.capture||!1,i=t.delegate,f=function(e){if("string"==typeof i){if(n===e.target)return;var t=c(n,e.target,i);if(!t)return;"function"==typeof o&&o.call(t,e)}else"function"==typeof o&&o.call(r,e)};return f.destroy=function(){return this.el=null,n.removeEventListener(e,f,a)},f.el=n,f.type=e,f.capture=a,n.addEventListener(e,f,a),f},p=Object.defineProperties,v=Object.defineProperty,h=function(){var e=function(){Array.call(this)};return e.prototype=Object.create(Array.prototype),p(e.prototype,{remove:{value:function(e){if("function"!=typeof e)return!1;for(var t=[],r=0,n=0;n<this.length;n++)e.call(null,this[n])&&t.push(this[n]);for(var o=0;o<t.length;o++){var a=t[o];a.destroy(),this.splice(this.indexOf(a),1),r++}return r==t.length}},removeEvent:{value:function(e,t,r){var n=this,o=[];return this.forEach(function(n){"*"!==e&&n.type!==e||"*"!==t&&n.el!==t||r&&n.capture!==r||o.push(n)}),o.forEach(function(e){e.destroy(),n.splice(n.indexOf(e),1)}),o.length}},removeAll:{value:function(){for(var e=0;e<this.length;e++)this[e].destroy();this.length=0}}}),e}(),d=function(){var e=function(){};return e.prototype=Object.create(Object.prototype),p(e.prototype,{remove:{value:function(e){if("function"!=typeof e)return!1;for(var t=Object.keys(this),r=0,n=0;n<t.length;n++){var o=t[n];e.call(null,this[o],o)&&(r+=delete this[o]?1:0)}return r==t.length}},removeRef:{value:function(e){return this.hasOwnProperty(e)?delete this[e]:!1}},removeAll:{value:function(){for(var e=Object.keys(this),t=0;t<e.length;t++)delete this[e[t]];return t===e.length}}}),e}(),y=function(){var e=function(e){if("undefined"==typeof e)throw new Error("No root provided");this.__owner=e};return e.prototype=Object.create(Object.prototype),p(e.prototype,{add:{value:function(e,t){var r=t.update?t.update.observeProp:"";if(!r||"__owner"===r||!o(r))return!1;var n=f({},t,{appendTo:e,obsProp:r},"tplFn,for,root,appendTo,obsProp,update");v(this,r,{set:function(t){for(n["for"]=t;e.firstChild;){var r=e.removeChild(e.firstChild);this.__owner.evts.remove(function(e){return r.contains(e.el)}),this.__owner.refs.remove(function(e,t){return r===e||r.contains(e)})}var o=m(e,n,this.__owner);w(e,o,this.__owner)}})}}}),e}(),g=function(e,t,r){var n=t.ref;if(o(n)){var a=t.refScope,i="parent"===a?e:r;i.refs=i.refs||new d,i.refs[n]=t}},m=function(e,t,r){var n,o=t["for"],a=t.root||"",i=a?o[a]:o,f=t.tplFn;if(i&&"function"==typeof f){var u=t.scope,l="root"===u?r:"parent"===u?e:u;n=Array.isArray(i)?i.map(f,l):f.call(l,i)}return n},b=function(e,t,r){r.observe=r.observe||new y(r),r.observe.add(e,t)},w=function(e,t,o,a){"use strict";if(n(t))if(r(t))e.appendChild(t),g(e,t,o);else if("function"==typeof t){var i=t();w(e,i,o,a)}else if(Array.isArray(t))for(var f=0;f<t.length;f++){var l=t[f];a&&u(l,a),w(e,t[f],o)}else{var c=t.tag;if(c){delete t.tag,a&&u(opj,a);var s=M(c,t,o);w(e,s,o)}else if(t.hasOwnProperty("for")){if(!n(t["for"]))return;var p=m(e,t,o);w(e,p,o,a),n(t.update)&&b(e,t,o)}else{var v=t.fn;if("function"==typeof v){var h=t.scope,d="root"===h?o:"parent"===h?e:h,y=v.call(d);w(e,y,o,a)}}}},O=function(e,t,r){var n=t.type;if(!n)throw new Error("No event type specified");var o,a=t.handler,i=typeof a;r=r||e;var f="root"===t.scope?r:t.scope?t.scope:e;if("function"===i?o=a:"string"===i&&(o=f[a]),"function"!=typeof o)throw new Error('Cannot find handler: "'+a+'" on element: ['+l(f)+"].");var u=t.capture,c=t.delegate,p=s(n,{el:e,callback:o,capture:u,delegate:c},f);r.evts=r.evts||new h,r.evts.push(p)},k=function(e,t,r){if(Array.isArray(t))for(var n=0;n<t.length;n++)O(e,t[n],r);else O(e,t,r)},j=function(e,t){for(var r=Object.keys(t),n=0;n<r.length;n++){var o=r[n],i=t[o];e.setAttribute(a(o),i)}},x=function(e,t){for(var r=Object.keys(t),n=0;n<r.length;n++){var o=r[n],a=t[o];e.style[o]=isNaN(a)?a:a+"px"}},A={setevents:k,setattrs:j,setstyle:x,setchildren:w,setitems:w},_=function(e,t){for(var r=Object.keys(t),n=r.length,o=0;n>o;o++){var a=r[o],i=t[a];e[a]=(e[a]+i).trim()}},C=function(e,t,r,n){for(var o=0,a=t.length;a>o;o++){var i=t[o];A["set"+i.key](e,i.val,r,n)}},E=function(e,t,r){for(var n=0,o=t.length;o>n;n++){var a=t[n],f=i({},{type:a.key},a.val);O(e,f,r)}},N=function(e){var t;return t="function"==typeof e?e():e,Boolean(t)},P=["width","height","maxWidth","maxHeight","padding","margin"],L=["color","backgroundColor","background","display","position","opacity"],T=["defaults"],F=["style","children","items","attrs","events"],S=["click","mousedown","mouseup","mouseover","mouseout","mouseenter","mouseleave","dragstart","dragend","drag","dragover","dragenter","dragout","drop","blur","focus","keydown","keypress","keyup","change","input","submit","touchstart","touchmove","touchend","wheel","scroll"],$=["created","appended"],z=["className","id"],B=["text","textContent"],H=["parent"],R=P.concat(L,T,F,S,$,z,B,H),W=P.length,Z=W+L.length,q=Z+T.length,D=q+F.length,G=D+S.length,I=G+$.length,J=I+z.length,K=J+B.length,M=function(e,n,o,a){n=n||t;var f=document.createElement(e);o=o||f;var u,l,c,s,p,v,h=Object.keys(n);if(n.hasOwnProperty("if")&&!N(n["if"]))return null;for(var d=0,y=h.length;y>d;d++){var g=h[d],m=n[g],b=R.indexOf(g);-1==b?f[g]=m:W>b?f.style[g]=isNaN(m)?m:m+"px":Z>b?f.style[g]=m:q>b?i(v=v||{},m):D>b?(u=u||[]).push({key:g,val:m}):G>b?(l=l||[]).push({key:g,val:m}):I>b?(c=c||{})[g]=m:J>b?(s=s||{})[g]=m:K>b?f.appendChild(document.createTextNode(m)):p=m}return s&&_(f,s),u&&C(f,u,o,v),l&&E(f,l,o),c&&"function"==typeof c.created&&c.created.call(f),p&&r(p)&&f===o&&(p.appendChild(f),c&&"function"==typeof c.appended&&c.appended.call(f,p)),f},Q=function(e,t){return M(e,t)};return Q}); |
{ | ||
"name": "dominic", | ||
"version": "0.1.5", | ||
"version": "0.1.6", | ||
"description": "Helper to quickly build up simple DOM in simple javascript object format.", | ||
@@ -5,0 +5,0 @@ "main": "dominic.js", |
@@ -78,2 +78,33 @@ ## Dominic | ||
#### Basic 3: Share configures | ||
```javascript | ||
var root = CreateElement('div', { | ||
className: 'root', | ||
parent: document.body, | ||
width: '100%', | ||
height: '100%', | ||
defaults: { | ||
display: 'inline-block', | ||
height: '100%', | ||
className: 'default-class', | ||
}, | ||
items: [ | ||
{ tag: 'div', className: 'sidebar', width: 200, ref: 'sidebar', background: 'lightgreen', | ||
}, | ||
{ tag: 'div', className: 'main', width: 'calc(100% - 200px)', ref: 'main', background: 'lightblue', | ||
items: [ | ||
] | ||
}, | ||
{ tag: 'test' } | ||
] | ||
}) | ||
``` | ||
* All children will have `display = 'inline-block', height = '100%'` | ||
* Only last child will have `class = 'default-class'` | ||
###### Result | ||
![](http://img.prntscr.com/img?url=http://i.imgur.com/Eg0I5Zi.png) | ||
#### Attributes | ||
@@ -80,0 +111,0 @@ ```javascript |
33536
500
331