diff --git a/build/dist/laroux.web.mvvm/laroux.web.mvvm.js b/build/dist/laroux.web.mvvm/laroux.web.mvvm.js index 09baaad..2a0dda7 100644 --- a/build/dist/laroux.web.mvvm/laroux.web.mvvm.js +++ b/build/dist/laroux.web.mvvm/laroux.web.mvvm.js @@ -19,7 +19,7 @@ var web_mvvm = { init: function init(element, model) { if (element.constructor === String) { - element = $l.dom.selectById(element); + element = $l.web.dom.selectById(element); } // if (model.constructor !== types.Observable) { @@ -75,7 +75,7 @@ var web_mvvm = { }; for (var i = 0, _length = app.eventElements.length; i < _length; i++) { - $l.dom.setEvent(app.eventElements[i].element, app.eventElements[i].binding[null], callback); + $l.web.dom.setEvent(app.eventElements[i].element, app.eventElements[i].binding[null], callback); } }, diff --git a/build/dist/laroux.web.mvvm/laroux.web.mvvm.min.js b/build/dist/laroux.web.mvvm/laroux.web.mvvm.min.js index 6f2e9da..39f964e 100644 --- a/build/dist/laroux.web.mvvm/laroux.web.mvvm.min.js +++ b/build/dist/laroux.web.mvvm/laroux.web.mvvm.min.js @@ -5,5 +5,5 @@ * @link https://larukedi.github.io/laroux.js * @license Apache-2.0 */ -!function e(t,n,r){function s(l,u){if(!n[l]){if(!t[l]){var o="function"==typeof require&&require;if(!u&&o)return o(l,!0);if(i)return i(l,!0);var a=new Error("Cannot find module '"+l+"'");throw a.code="MODULE_NOT_FOUND",a}var d=n[l]={exports:{}};t[l][0].call(d.exports,function(e){var n=t[l][1][e];return s(n?n:e)},d,d.exports,e,t,n,r)}return n[l].exports}for(var i="function"==typeof require&&require,l=0;ls;s++)$l.dom.setEvent(t.eventElements[s].element,t.eventElements[s].binding[null],n)},scanElements:function(e,t){for(var n=0,s=t.attributes,i=s.length;i>n;n++)if("lr-bind"===s[n].name){var l=r.bindStringParser(s[n].value);for(var u in l)l.hasOwnProperty(u)&&(void 0===e.boundElements[l[u]]&&(e.boundElements[l[u]]=[]),e.boundElements[l[u]].push({element:t,target:u}))}else if("lr-event"===s[n].name){var o=r.bindStringParser(s[n].value);e.eventElements.push({element:t,binding:o})}for(var a=0,d=t.childNodes,m=d.length;m>a;a++)1===d[a].nodeType&&r.scanElements(e,d[a])},update:function(e,t){var n=r.apps[e];"undefined"==typeof t&&(t=n.modelKeys);for(var s=0,i=t.length;i>s;s++)if(t[s]in n.boundElements){var l=n.boundElements[t[s]],u=$l.getElement(n.model,t[s]);u instanceof Function&&(u=u.call(n.model));for(var o=0,a=l.length;a>o;o++)"style."===l[o].target.substring(0,6)?l[o].element.style[l[o].target.substring(6)]=u:"attr."===l[o].target.substring(0,5)?l[o].element.setAttribute(l[o].target.substring(5),u):"prop."===l[o].target.substring(0,5)&&(l[o].element[l[o].target.substring(5)]=u)}},bindStringParser:function(e){for(var t=null,n="",r=0,s={},i=0,l=e.length;l>i;i++){var u=e.charAt(i);0!==r||":"!==u?","!==u?n+=u:(r=0,s[t]=n.trim(),n=""):(r=1,t=n.trim(),n="")}return n.length>0&&(s[t]=n.trim()),s}};$l.extendNs("web.mvvm",r),n["default"]=r,t.exports=n["default"]},{}]},{},[1]); +!function e(t,n,r){function s(l,u){if(!n[l]){if(!t[l]){var o="function"==typeof require&&require;if(!u&&o)return o(l,!0);if(i)return i(l,!0);var a=new Error("Cannot find module '"+l+"'");throw a.code="MODULE_NOT_FOUND",a}var d=n[l]={exports:{}};t[l][0].call(d.exports,function(e){var n=t[l][1][e];return s(n?n:e)},d,d.exports,e,t,n,r)}return n[l].exports}for(var i="function"==typeof require&&require,l=0;ls;s++)$l.web.dom.setEvent(t.eventElements[s].element,t.eventElements[s].binding[null],n)},scanElements:function(e,t){for(var n=0,s=t.attributes,i=s.length;i>n;n++)if("lr-bind"===s[n].name){var l=r.bindStringParser(s[n].value);for(var u in l)l.hasOwnProperty(u)&&(void 0===e.boundElements[l[u]]&&(e.boundElements[l[u]]=[]),e.boundElements[l[u]].push({element:t,target:u}))}else if("lr-event"===s[n].name){var o=r.bindStringParser(s[n].value);e.eventElements.push({element:t,binding:o})}for(var a=0,d=t.childNodes,m=d.length;m>a;a++)1===d[a].nodeType&&r.scanElements(e,d[a])},update:function(e,t){var n=r.apps[e];"undefined"==typeof t&&(t=n.modelKeys);for(var s=0,i=t.length;i>s;s++)if(t[s]in n.boundElements){var l=n.boundElements[t[s]],u=$l.getElement(n.model,t[s]);u instanceof Function&&(u=u.call(n.model));for(var o=0,a=l.length;a>o;o++)"style."===l[o].target.substring(0,6)?l[o].element.style[l[o].target.substring(6)]=u:"attr."===l[o].target.substring(0,5)?l[o].element.setAttribute(l[o].target.substring(5),u):"prop."===l[o].target.substring(0,5)&&(l[o].element[l[o].target.substring(5)]=u)}},bindStringParser:function(e){for(var t=null,n="",r=0,s={},i=0,l=e.length;l>i;i++){var u=e.charAt(i);0!==r||":"!==u?","!==u?n+=u:(r=0,s[t]=n.trim(),n=""):(r=1,t=n.trim(),n="")}return n.length>0&&(s[t]=n.trim()),s}};$l.extendNs("web.mvvm",r),n["default"]=r,t.exports=n["default"]},{}]},{},[1]); //# sourceMappingURL=../../../build/dist/laroux.web.mvvm/laroux.web.mvvm.min.js.map \ No newline at end of file diff --git a/build/dist/laroux.web.mvvm/laroux.web.mvvm.min.js.map b/build/dist/laroux.web.mvvm/laroux.web.mvvm.min.js.map index 2122181..e4452cf 100644 --- a/build/dist/laroux.web.mvvm/laroux.web.mvvm.min.js.map +++ b/build/dist/laroux.web.mvvm/laroux.web.mvvm.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["laroux.web.mvvm.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length",1,"module","Object","defineProperty","value","web_mvvm","apps","pauseUpdate","init","element","model","constructor","String","$l","dom","selectById","appKey","getAttribute","on","event","update","rebind","app","modelKeys","getKeysRecursive","boundElements","eventElements","scanElements","callback","ev","elem","binding","bindStringParser","item","hasOwnProperty","charAt","substring","_length","setEvent","atts","attributes","m","name","binding1","undefined","push","target","binding2","j","chldrn","childNodes","nodeType","keys","length1","boundElement","getElement","Function","length2","style","setAttribute","text","lastBuffer","buffer","state","result","_length2","curr","trim","extendNs"],"mappings":"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","file":"build/dist/laroux.web.mvvm/laroux.web.mvvm.min.js","sourcesContent":["/**\n * laroux.js - A jquery substitute for modern browsers (laroux.web.mvvm bundle)\n *\n * @version v2.2.0\n * @link https://larukedi.github.io/laroux.js\n * @license Apache-2.0\n */\n(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 0) {\n result[lastBuffer] = buffer.trim();\n }\n\n return result;\n }\n};\n\n$l.extendNs('web.mvvm', web_mvvm);\n\nexports['default'] = web_mvvm;\nmodule.exports = exports['default'];\n},{}]},{},[1]);\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["laroux.web.mvvm.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length",1,"module","Object","defineProperty","value","web_mvvm","apps","pauseUpdate","init","element","model","constructor","String","$l","web","dom","selectById","appKey","getAttribute","on","event","update","rebind","app","modelKeys","getKeysRecursive","boundElements","eventElements","scanElements","callback","ev","elem","binding","bindStringParser","item","hasOwnProperty","charAt","substring","_length","setEvent","atts","attributes","m","name","binding1","undefined","push","target","binding2","j","chldrn","childNodes","nodeType","keys","length1","boundElement","getElement","Function","length2","style","setAttribute","text","lastBuffer","buffer","state","result","_length2","curr","trim","extendNs"],"mappings":"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","file":"build/dist/laroux.web.mvvm/laroux.web.mvvm.min.js","sourcesContent":["/**\n * laroux.js - A jquery substitute for modern browsers (laroux.web.mvvm bundle)\n *\n * @version v2.2.0\n * @link https://larukedi.github.io/laroux.js\n * @license Apache-2.0\n */\n(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 0) {\n result[lastBuffer] = buffer.trim();\n }\n\n return result;\n }\n};\n\n$l.extendNs('web.mvvm', web_mvvm);\n\nexports['default'] = web_mvvm;\nmodule.exports = exports['default'];\n},{}]},{},[1]);\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/build/dist/laroux.web.ui/laroux.web.ui.js b/build/dist/laroux.web.ui/laroux.web.ui.js index 770c124..6b01d94 100644 --- a/build/dist/laroux.web.ui/laroux.web.ui.js +++ b/build/dist/laroux.web.ui/laroux.web.ui.js @@ -18,7 +18,7 @@ var web_ui_dynamicDates = { updateDates: function updateDates() { if (web_ui_dynamicDates.updateDatesElements === null) { - web_ui_dynamicDates.updateDatesElements = $l.dom.select('*[data-epoch]'); + web_ui_dynamicDates.updateDatesElements = $l.web.dom.select('*[data-epoch]'); } for (var item in web_ui_dynamicDates.updateDatesElements) { @@ -30,7 +30,7 @@ var web_ui_dynamicDates = { // bitshifting (str >> 0) used instead of parseInt(str, 10) var date = new Date((obj.getAttribute('data-epoch') >> 0) * 1000); - $l.dom.replace(obj, $l.intl.shortDate(date)); + $l.web.dom.replace(obj, $l.intl.shortDate(date)); obj.setAttribute('title', $l.intl.longDate(date)); } @@ -88,7 +88,7 @@ var web_ui = { createFloatContainer: function createFloatContainer() { if (!web_ui.floatContainer) { - web_ui.floatContainer = $l.dom.createElement('DIV', { id: 'laroux-floatdiv', 'class': 'laroux-floatdiv' }); + web_ui.floatContainer = $l.web.dom.createElement('DIV', { id: 'laroux-floatdiv', 'class': 'laroux-floatdiv' }); document.body.insertBefore(web_ui.floatContainer, document.body.firstChild); } } @@ -123,7 +123,7 @@ var web_ui_loading = { hide: function hide() { web_ui_loading.killTimer(); - $l.css.setProperty(web_ui_loading.element, { display: 'none' }); + $l.web.css.setProperty(web_ui_loading.element, { display: 'none' }); localStorage.loadingIndicator = 'false'; }, @@ -139,19 +139,19 @@ var web_ui_loading = { web_ui_loading.show(0); }, delay); } else { - $l.css.setProperty(web_ui_loading.element, { display: 'block' }); + $l.web.css.setProperty(web_ui_loading.element, { display: 'block' }); localStorage.loadingIndicator = 'true'; } }, init: function init() { if (web_ui_loading.element === null && web_ui_loading.elementSelector !== null) { - web_ui_loading.element = $l.dom.selectSingle(web_ui_loading.elementSelector); + web_ui_loading.element = $l.web.dom.selectSingle(web_ui_loading.elementSelector); } if (web_ui_loading.element !== null) { - $l.dom.setEvent(global, 'load', web_ui_loading.hide); - $l.dom.setEvent(global, 'beforeunload', web_ui_loading.show); + $l.web.dom.setEvent(global, 'load', web_ui_loading.hide); + $l.web.dom.setEvent(global, 'beforeunload', web_ui_loading.show); if (localStorage.loadingIndicator !== undefined && localStorage.loadingIndicator == 'true') { web_ui_loading.show(0); @@ -186,7 +186,7 @@ var web_ui_popup = { defaultTimeout: 500, createBox: function createBox(id, xclass, message) { - return $l.dom.createElement('DIV', { id: id, 'class': xclass }, message); + return $l.web.dom.createElement('DIV', { id: id, 'class': xclass }, message); }, msgbox: function msgbox(timeout, message) { @@ -195,14 +195,14 @@ var web_ui_popup = { _larouxWebUiJs2['default'].floatContainer.appendChild(obj); - $l.css.setProperty(obj, { opacity: 1 }); + $l.web.css.setProperty(obj, { opacity: 1 }); $l.timers.set({ timeout: timeout, reset: false, ontick: function ontick(x) { - // $l.css.setProperty(x, {opacity: 0}); - $l.dom.remove(x); + // $l.web.css.setProperty(x, {opacity: 0}); + $l.web.dom.remove(x); }, state: obj }); @@ -232,25 +232,25 @@ var web_ui_scrollView = { selectedElements: [], onhidden: function onhidden(elements) { - $l.css.setProperty(elements, { opacity: 0 }); - $l.css.setTransition(elements, ['opacity']); + $l.web.css.setProperty(elements, { opacity: 0 }); + $l.web.css.setTransition(elements, ['opacity']); }, onreveal: function onreveal(elements) { - $l.css.setProperty(elements, { opacity: 1 }); + $l.web.css.setProperty(elements, { opacity: 1 }); }, set: function set(element) { var elements = $l.getAsArray(element); for (var i = 0, _length = elements.length; i < _length; i++) { - if (!$l.css.inViewport(elements[i])) { + if (!$l.web.css.inViewport(elements[i])) { web_ui_scrollView.selectedElements.push(elements[i]); } } web_ui_scrollView.onhidden(web_ui_scrollView.selectedElements); - $l.dom.setEvent(global, 'scroll', web_ui_scrollView.reveal); + $l.web.dom.setEvent(global, 'scroll', web_ui_scrollView.reveal); }, reveal: function reveal() { @@ -258,7 +258,7 @@ var web_ui_scrollView = { elements = []; $l.each(web_ui_scrollView.selectedElements, function (i, element) { - if ($l.css.inViewport(element)) { + if ($l.web.css.inViewport(element)) { removeKeys.unshift(i); elements.push(element); } @@ -273,7 +273,7 @@ var web_ui_scrollView = { } if (web_ui_scrollView.selectedElements.length === 0) { - $l.dom.unsetEvent(global, 'scroll', web_ui_scrollView.reveal); + $l.web.dom.unsetEvent(global, 'scroll', web_ui_scrollView.reveal); } if (elements.length > 0) { diff --git a/build/dist/laroux.web.ui/laroux.web.ui.min.js b/build/dist/laroux.web.ui/laroux.web.ui.min.js index 89e9360..9817909 100644 --- a/build/dist/laroux.web.ui/laroux.web.ui.min.js +++ b/build/dist/laroux.web.ui/laroux.web.ui.min.js @@ -5,5 +5,5 @@ * @link https://larukedi.github.io/laroux.js * @license Apache-2.0 */ -!function e(t,l,n){function o(a,r){if(!l[a]){if(!t[a]){var u="function"==typeof require&&require;if(!r&&u)return u(a,!0);if(i)return i(a,!0);var s=new Error("Cannot find module '"+a+"'");throw s.code="MODULE_NOT_FOUND",s}var d=l[a]={exports:{}};t[a][0].call(d.exports,function(e){var l=t[a][1][e];return o(l?l:e)},d,d.exports,e,t,l,n)}return l[a].exports}for(var i="function"==typeof require&&require,a=0;a>0));$l.dom.replace(t,$l.intl.shortDate(l)),t.setAttribute("title",$l.intl.longDate(l))}},init:function(){$l.timers.set({timeout:500,reset:!0,ontick:n.updateDates})}};$l.ready(n.init),l["default"]=n,t.exports=l["default"]},{}],2:[function(e,t,l){(function(n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(l,"__esModule",{value:!0});var i=e("./laroux.web.ui.popup.js"),a=o(i),r=e("./laroux.web.ui.loading.js"),u=o(r),s=e("./laroux.web.ui.dynamicDates.js"),d=o(s),f=e("./laroux.web.ui.scrollView.js"),c=o(f),p={popup:a["default"],loading:u["default"],dynamicDates:d["default"],scrollView:c["default"],floatContainer:null,popupFunc:$l.bindContext(alert,n),createFloatContainer:function(){p.floatContainer||(p.floatContainer=$l.dom.createElement("DIV",{id:"laroux-floatdiv","class":"laroux-floatdiv"}),document.body.insertBefore(p.floatContainer,document.body.firstChild))}};$l.ready(p.createFloatContainer),$l.extendNs("web.ui",p),l["default"]=p,t.exports=l["default"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./laroux.web.ui.dynamicDates.js":1,"./laroux.web.ui.loading.js":3,"./laroux.web.ui.popup.js":4,"./laroux.web.ui.scrollView.js":5}],3:[function(e,t,l){(function(e){"use strict";Object.defineProperty(l,"__esModule",{value:!0});var n={elementSelector:null,element:null,defaultDelay:1500,timer:null,killTimer:function(){clearTimeout(n.timer)},hide:function(){n.killTimer(),$l.css.setProperty(n.element,{display:"none"}),localStorage.loadingIndicator="false"},show:function(e){n.killTimer(),void 0===e&&(e=n.defaultDelay),e>0?setTimeout(function(){n.show(0)},e):($l.css.setProperty(n.element,{display:"block"}),localStorage.loadingIndicator="true")},init:function(){null===n.element&&null!==n.elementSelector&&(n.element=$l.dom.selectSingle(n.elementSelector)),null!==n.element&&($l.dom.setEvent(e,"load",n.hide),$l.dom.setEvent(e,"beforeunload",n.show),void 0!==localStorage.loadingIndicator&&"true"==localStorage.loadingIndicator?n.show(0):n.show())}};$l.ready(n.init),l["default"]=n,t.exports=l["default"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],4:[function(e,t,l){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(l,"__esModule",{value:!0});var o=e("./laroux.web.ui.js"),i=n(o),a={defaultTimeout:500,createBox:function(e,t,l){return $l.dom.createElement("DIV",{id:e,"class":t},l)},msgbox:function(e,t){var l=$l.getUniqueId(),n=a.createBox(l,"laroux-msgbox laroux-fade",t);i["default"].floatContainer.appendChild(n),$l.css.setProperty(n,{opacity:1}),$l.timers.set({timeout:e,reset:!1,ontick:function(e){$l.dom.remove(e)},state:n})},init:function(){i["default"].popupFunc=function(e){a.msgbox(a.defaultTimeout,e)}}};$l.ready(a.init),l["default"]=a,t.exports=l["default"]},{"./laroux.web.ui.js":2}],5:[function(e,t,l){(function(e){"use strict";Object.defineProperty(l,"__esModule",{value:!0});var n={selectedElements:[],onhidden:function(e){$l.css.setProperty(e,{opacity:0}),$l.css.setTransition(e,["opacity"])},onreveal:function(e){$l.css.setProperty(e,{opacity:1})},set:function(t){for(var l=$l.getAsArray(t),o=0,i=l.length;i>o;o++)$l.css.inViewport(l[o])||n.selectedElements.push(l[o]);n.onhidden(n.selectedElements),$l.dom.setEvent(e,"scroll",n.reveal)},reveal:function(){var t=[],l=[];$l.each(n.selectedElements,function(e,n){$l.css.inViewport(n)&&(t.unshift(e),l.push(n))});for(var o in t)t.hasOwnProperty(o)&&n.selectedElements.splice(t[o],1);0===n.selectedElements.length&&$l.dom.unsetEvent(e,"scroll",n.reveal),l.length>0&&n.onreveal(l)}};l["default"]=n,t.exports=l["default"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[2]); +!function e(t,l,n){function o(a,r){if(!l[a]){if(!t[a]){var u="function"==typeof require&&require;if(!r&&u)return u(a,!0);if(i)return i(a,!0);var s=new Error("Cannot find module '"+a+"'");throw s.code="MODULE_NOT_FOUND",s}var d=l[a]={exports:{}};t[a][0].call(d.exports,function(e){var l=t[a][1][e];return o(l?l:e)},d,d.exports,e,t,l,n)}return l[a].exports}for(var i="function"==typeof require&&require,a=0;a>0));$l.web.dom.replace(t,$l.intl.shortDate(l)),t.setAttribute("title",$l.intl.longDate(l))}},init:function(){$l.timers.set({timeout:500,reset:!0,ontick:n.updateDates})}};$l.ready(n.init),l["default"]=n,t.exports=l["default"]},{}],2:[function(e,t,l){(function(n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(l,"__esModule",{value:!0});var i=e("./laroux.web.ui.popup.js"),a=o(i),r=e("./laroux.web.ui.loading.js"),u=o(r),s=e("./laroux.web.ui.dynamicDates.js"),d=o(s),f=e("./laroux.web.ui.scrollView.js"),c=o(f),p={popup:a["default"],loading:u["default"],dynamicDates:d["default"],scrollView:c["default"],floatContainer:null,popupFunc:$l.bindContext(alert,n),createFloatContainer:function(){p.floatContainer||(p.floatContainer=$l.web.dom.createElement("DIV",{id:"laroux-floatdiv","class":"laroux-floatdiv"}),document.body.insertBefore(p.floatContainer,document.body.firstChild))}};$l.ready(p.createFloatContainer),$l.extendNs("web.ui",p),l["default"]=p,t.exports=l["default"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./laroux.web.ui.dynamicDates.js":1,"./laroux.web.ui.loading.js":3,"./laroux.web.ui.popup.js":4,"./laroux.web.ui.scrollView.js":5}],3:[function(e,t,l){(function(e){"use strict";Object.defineProperty(l,"__esModule",{value:!0});var n={elementSelector:null,element:null,defaultDelay:1500,timer:null,killTimer:function(){clearTimeout(n.timer)},hide:function(){n.killTimer(),$l.web.css.setProperty(n.element,{display:"none"}),localStorage.loadingIndicator="false"},show:function(e){n.killTimer(),void 0===e&&(e=n.defaultDelay),e>0?setTimeout(function(){n.show(0)},e):($l.web.css.setProperty(n.element,{display:"block"}),localStorage.loadingIndicator="true")},init:function(){null===n.element&&null!==n.elementSelector&&(n.element=$l.web.dom.selectSingle(n.elementSelector)),null!==n.element&&($l.web.dom.setEvent(e,"load",n.hide),$l.web.dom.setEvent(e,"beforeunload",n.show),void 0!==localStorage.loadingIndicator&&"true"==localStorage.loadingIndicator?n.show(0):n.show())}};$l.ready(n.init),l["default"]=n,t.exports=l["default"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],4:[function(e,t,l){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(l,"__esModule",{value:!0});var o=e("./laroux.web.ui.js"),i=n(o),a={defaultTimeout:500,createBox:function(e,t,l){return $l.web.dom.createElement("DIV",{id:e,"class":t},l)},msgbox:function(e,t){var l=$l.getUniqueId(),n=a.createBox(l,"laroux-msgbox laroux-fade",t);i["default"].floatContainer.appendChild(n),$l.web.css.setProperty(n,{opacity:1}),$l.timers.set({timeout:e,reset:!1,ontick:function(e){$l.web.dom.remove(e)},state:n})},init:function(){i["default"].popupFunc=function(e){a.msgbox(a.defaultTimeout,e)}}};$l.ready(a.init),l["default"]=a,t.exports=l["default"]},{"./laroux.web.ui.js":2}],5:[function(e,t,l){(function(e){"use strict";Object.defineProperty(l,"__esModule",{value:!0});var n={selectedElements:[],onhidden:function(e){$l.web.css.setProperty(e,{opacity:0}),$l.web.css.setTransition(e,["opacity"])},onreveal:function(e){$l.web.css.setProperty(e,{opacity:1})},set:function(t){for(var l=$l.getAsArray(t),o=0,i=l.length;i>o;o++)$l.web.css.inViewport(l[o])||n.selectedElements.push(l[o]);n.onhidden(n.selectedElements),$l.web.dom.setEvent(e,"scroll",n.reveal)},reveal:function(){var t=[],l=[];$l.each(n.selectedElements,function(e,n){$l.web.css.inViewport(n)&&(t.unshift(e),l.push(n))});for(var o in t)t.hasOwnProperty(o)&&n.selectedElements.splice(t[o],1);0===n.selectedElements.length&&$l.web.dom.unsetEvent(e,"scroll",n.reveal),l.length>0&&n.onreveal(l)}};l["default"]=n,t.exports=l["default"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[2]); //# sourceMappingURL=../../../build/dist/laroux.web.ui/laroux.web.ui.min.js.map \ No newline at end of file diff --git a/build/dist/laroux.web.ui/laroux.web.ui.min.js.map b/build/dist/laroux.web.ui/laroux.web.ui.min.js.map index 361b22d..51ae5d2 100644 --- a/build/dist/laroux.web.ui/laroux.web.ui.min.js.map +++ b/build/dist/laroux.web.ui/laroux.web.ui.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["laroux.web.ui.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length",1,"module","Object","defineProperty","value","web_ui_dynamicDates","updateDatesElements","updateDates","$l","dom","select","item","hasOwnProperty","obj","date","Date","getAttribute","replace","intl","shortDate","setAttribute","longDate","init","timers","set","timeout","reset","ontick","ready",2,"global","_interopRequireDefault","__esModule","default","_larouxWebUiPopupJs","_larouxWebUiPopupJs2","_larouxWebUiLoadingJs","_larouxWebUiLoadingJs2","_larouxWebUiDynamicDatesJs","_larouxWebUiDynamicDatesJs2","_larouxWebUiScrollViewJs","_larouxWebUiScrollViewJs2","web_ui","popup","loading","dynamicDates","scrollView","floatContainer","popupFunc","bindContext","alert","createFloatContainer","createElement","id","class","document","body","insertBefore","firstChild","extendNs","this","self","window","./laroux.web.ui.dynamicDates.js","./laroux.web.ui.loading.js","./laroux.web.ui.popup.js","./laroux.web.ui.scrollView.js",3,"web_ui_loading","elementSelector","element","defaultDelay","timer","killTimer","clearTimeout","hide","css","setProperty","display","localStorage","loadingIndicator","show","delay","undefined","setTimeout","selectSingle","setEvent",4,"_larouxWebUiJs","_larouxWebUiJs2","web_ui_popup","defaultTimeout","createBox","xclass","message","msgbox","getUniqueId","appendChild","opacity","x","remove","state","./laroux.web.ui.js",5,"web_ui_scrollView","selectedElements","onhidden","elements","setTransition","onreveal","getAsArray","_length","inViewport","push","reveal","removeKeys","each","unshift","splice","unsetEvent"],"mappings":"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","file":"build/dist/laroux.web.ui/laroux.web.ui.min.js","sourcesContent":["/**\n * laroux.js - A jquery substitute for modern browsers (laroux.web.ui bundle)\n *\n * @version v2.2.0\n * @link https://larukedi.github.io/laroux.js\n * @license Apache-2.0\n */\n(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o> 0) used instead of parseInt(str, 10)\n var date = new Date((obj.getAttribute('data-epoch') >> 0) * 1000);\n\n $l.dom.replace(obj, $l.intl.shortDate(date));\n\n obj.setAttribute('title', $l.intl.longDate(date));\n }\n },\n\n init: function init() {\n $l.timers.set({\n timeout: 500,\n reset: true,\n ontick: web_ui_dynamicDates.updateDates\n });\n }\n};\n\n$l.ready(web_ui_dynamicDates.init);\n\nexports['default'] = web_ui_dynamicDates;\nmodule.exports = exports['default'];\n},{}],2:[function(require,module,exports){\n(function (global){\n/*jslint node: true */\n/*global $l, alert, document */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _larouxWebUiPopupJs = require('./laroux.web.ui.popup.js');\n\nvar _larouxWebUiPopupJs2 = _interopRequireDefault(_larouxWebUiPopupJs);\n\nvar _larouxWebUiLoadingJs = require('./laroux.web.ui.loading.js');\n\nvar _larouxWebUiLoadingJs2 = _interopRequireDefault(_larouxWebUiLoadingJs);\n\nvar _larouxWebUiDynamicDatesJs = require('./laroux.web.ui.dynamicDates.js');\n\nvar _larouxWebUiDynamicDatesJs2 = _interopRequireDefault(_larouxWebUiDynamicDatesJs);\n\nvar _larouxWebUiScrollViewJs = require('./laroux.web.ui.scrollView.js');\n\nvar _larouxWebUiScrollViewJs2 = _interopRequireDefault(_larouxWebUiScrollViewJs);\n\nvar web_ui = {\n popup: _larouxWebUiPopupJs2['default'],\n loading: _larouxWebUiLoadingJs2['default'],\n dynamicDates: _larouxWebUiDynamicDatesJs2['default'],\n scrollView: _larouxWebUiScrollViewJs2['default'],\n\n floatContainer: null,\n popupFunc: $l.bindContext(alert, global),\n\n createFloatContainer: function createFloatContainer() {\n if (!web_ui.floatContainer) {\n web_ui.floatContainer = $l.dom.createElement('DIV', { id: 'laroux-floatdiv', 'class': 'laroux-floatdiv' });\n document.body.insertBefore(web_ui.floatContainer, document.body.firstChild);\n }\n }\n};\n\n$l.ready(web_ui.createFloatContainer);\n\n$l.extendNs('web.ui', web_ui);\n\nexports['default'] = web_ui;\nmodule.exports = exports['default'];\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"./laroux.web.ui.dynamicDates.js\":1,\"./laroux.web.ui.loading.js\":3,\"./laroux.web.ui.popup.js\":4,\"./laroux.web.ui.scrollView.js\":5}],3:[function(require,module,exports){\n(function (global){\n/*jslint node: true */\n/*global $l, localStorage */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nvar web_ui_loading = {\n elementSelector: null,\n element: null,\n defaultDelay: 1500,\n timer: null,\n\n killTimer: function killTimer() {\n clearTimeout(web_ui_loading.timer);\n },\n\n hide: function hide() {\n web_ui_loading.killTimer();\n\n $l.css.setProperty(web_ui_loading.element, { display: 'none' });\n localStorage.loadingIndicator = 'false';\n },\n\n show: function show(delay) {\n web_ui_loading.killTimer();\n\n if (delay === undefined) {\n delay = web_ui_loading.defaultDelay;\n }\n\n if (delay > 0) {\n setTimeout(function () {\n web_ui_loading.show(0);\n }, delay);\n } else {\n $l.css.setProperty(web_ui_loading.element, { display: 'block' });\n localStorage.loadingIndicator = 'true';\n }\n },\n\n init: function init() {\n if (web_ui_loading.element === null && web_ui_loading.elementSelector !== null) {\n web_ui_loading.element = $l.dom.selectSingle(web_ui_loading.elementSelector);\n }\n\n if (web_ui_loading.element !== null) {\n $l.dom.setEvent(global, 'load', web_ui_loading.hide);\n $l.dom.setEvent(global, 'beforeunload', web_ui_loading.show);\n\n if (localStorage.loadingIndicator !== undefined && localStorage.loadingIndicator == 'true') {\n web_ui_loading.show(0);\n } else {\n web_ui_loading.show();\n }\n }\n }\n};\n\n$l.ready(web_ui_loading.init);\n\nexports['default'] = web_ui_loading;\nmodule.exports = exports['default'];\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],4:[function(require,module,exports){\n/*jslint node: true */\n/*global $l */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _larouxWebUiJs = require('./laroux.web.ui.js');\n\nvar _larouxWebUiJs2 = _interopRequireDefault(_larouxWebUiJs);\n\nvar web_ui_popup = {\n defaultTimeout: 500,\n\n createBox: function createBox(id, xclass, message) {\n return $l.dom.createElement('DIV', { id: id, 'class': xclass }, message);\n },\n\n msgbox: function msgbox(timeout, message) {\n var id = $l.getUniqueId(),\n obj = web_ui_popup.createBox(id, 'laroux-msgbox laroux-fade', message);\n\n _larouxWebUiJs2['default'].floatContainer.appendChild(obj);\n\n $l.css.setProperty(obj, { opacity: 1 });\n\n $l.timers.set({\n timeout: timeout,\n reset: false,\n ontick: function ontick(x) {\n // $l.css.setProperty(x, {opacity: 0});\n $l.dom.remove(x);\n },\n state: obj\n });\n },\n\n init: function init() {\n _larouxWebUiJs2['default'].popupFunc = function (message) {\n web_ui_popup.msgbox(web_ui_popup.defaultTimeout, message);\n };\n }\n};\n\n$l.ready(web_ui_popup.init);\n\nexports['default'] = web_ui_popup;\nmodule.exports = exports['default'];\n},{\"./laroux.web.ui.js\":2}],5:[function(require,module,exports){\n(function (global){\n/*jslint node: true */\n/*global $l, localStorage */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nvar web_ui_scrollView = {\n selectedElements: [],\n\n onhidden: function onhidden(elements) {\n $l.css.setProperty(elements, { opacity: 0 });\n $l.css.setTransition(elements, ['opacity']);\n },\n\n onreveal: function onreveal(elements) {\n $l.css.setProperty(elements, { opacity: 1 });\n },\n\n set: function set(element) {\n var elements = $l.getAsArray(element);\n\n for (var i = 0, _length = elements.length; i < _length; i++) {\n if (!$l.css.inViewport(elements[i])) {\n web_ui_scrollView.selectedElements.push(elements[i]);\n }\n }\n\n web_ui_scrollView.onhidden(web_ui_scrollView.selectedElements);\n $l.dom.setEvent(global, 'scroll', web_ui_scrollView.reveal);\n },\n\n reveal: function reveal() {\n var removeKeys = [],\n elements = [];\n\n $l.each(web_ui_scrollView.selectedElements, function (i, element) {\n if ($l.css.inViewport(element)) {\n removeKeys.unshift(i);\n elements.push(element);\n }\n });\n\n for (var item in removeKeys) {\n if (!removeKeys.hasOwnProperty(item)) {\n continue;\n }\n\n web_ui_scrollView.selectedElements.splice(removeKeys[item], 1);\n }\n\n if (web_ui_scrollView.selectedElements.length === 0) {\n $l.dom.unsetEvent(global, 'scroll', web_ui_scrollView.reveal);\n }\n\n if (elements.length > 0) {\n web_ui_scrollView.onreveal(elements);\n }\n }\n};\n\n// $l.ready(web_ui_scrollView.init);\n\nexports['default'] = web_ui_scrollView;\nmodule.exports = exports['default'];\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}]},{},[2]);\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["laroux.web.ui.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length",1,"module","Object","defineProperty","value","web_ui_dynamicDates","updateDatesElements","updateDates","$l","web","dom","select","item","hasOwnProperty","obj","date","Date","getAttribute","replace","intl","shortDate","setAttribute","longDate","init","timers","set","timeout","reset","ontick","ready",2,"global","_interopRequireDefault","__esModule","default","_larouxWebUiPopupJs","_larouxWebUiPopupJs2","_larouxWebUiLoadingJs","_larouxWebUiLoadingJs2","_larouxWebUiDynamicDatesJs","_larouxWebUiDynamicDatesJs2","_larouxWebUiScrollViewJs","_larouxWebUiScrollViewJs2","web_ui","popup","loading","dynamicDates","scrollView","floatContainer","popupFunc","bindContext","alert","createFloatContainer","createElement","id","class","document","body","insertBefore","firstChild","extendNs","this","self","window","./laroux.web.ui.dynamicDates.js","./laroux.web.ui.loading.js","./laroux.web.ui.popup.js","./laroux.web.ui.scrollView.js",3,"web_ui_loading","elementSelector","element","defaultDelay","timer","killTimer","clearTimeout","hide","css","setProperty","display","localStorage","loadingIndicator","show","delay","undefined","setTimeout","selectSingle","setEvent",4,"_larouxWebUiJs","_larouxWebUiJs2","web_ui_popup","defaultTimeout","createBox","xclass","message","msgbox","getUniqueId","appendChild","opacity","x","remove","state","./laroux.web.ui.js",5,"web_ui_scrollView","selectedElements","onhidden","elements","setTransition","onreveal","getAsArray","_length","inViewport","push","reveal","removeKeys","each","unshift","splice","unsetEvent"],"mappings":"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","file":"build/dist/laroux.web.ui/laroux.web.ui.min.js","sourcesContent":["/**\n * laroux.js - A jquery substitute for modern browsers (laroux.web.ui bundle)\n *\n * @version v2.2.0\n * @link https://larukedi.github.io/laroux.js\n * @license Apache-2.0\n */\n(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o> 0) used instead of parseInt(str, 10)\n var date = new Date((obj.getAttribute('data-epoch') >> 0) * 1000);\n\n $l.web.dom.replace(obj, $l.intl.shortDate(date));\n\n obj.setAttribute('title', $l.intl.longDate(date));\n }\n },\n\n init: function init() {\n $l.timers.set({\n timeout: 500,\n reset: true,\n ontick: web_ui_dynamicDates.updateDates\n });\n }\n};\n\n$l.ready(web_ui_dynamicDates.init);\n\nexports['default'] = web_ui_dynamicDates;\nmodule.exports = exports['default'];\n},{}],2:[function(require,module,exports){\n(function (global){\n/*jslint node: true */\n/*global $l, alert, document */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _larouxWebUiPopupJs = require('./laroux.web.ui.popup.js');\n\nvar _larouxWebUiPopupJs2 = _interopRequireDefault(_larouxWebUiPopupJs);\n\nvar _larouxWebUiLoadingJs = require('./laroux.web.ui.loading.js');\n\nvar _larouxWebUiLoadingJs2 = _interopRequireDefault(_larouxWebUiLoadingJs);\n\nvar _larouxWebUiDynamicDatesJs = require('./laroux.web.ui.dynamicDates.js');\n\nvar _larouxWebUiDynamicDatesJs2 = _interopRequireDefault(_larouxWebUiDynamicDatesJs);\n\nvar _larouxWebUiScrollViewJs = require('./laroux.web.ui.scrollView.js');\n\nvar _larouxWebUiScrollViewJs2 = _interopRequireDefault(_larouxWebUiScrollViewJs);\n\nvar web_ui = {\n popup: _larouxWebUiPopupJs2['default'],\n loading: _larouxWebUiLoadingJs2['default'],\n dynamicDates: _larouxWebUiDynamicDatesJs2['default'],\n scrollView: _larouxWebUiScrollViewJs2['default'],\n\n floatContainer: null,\n popupFunc: $l.bindContext(alert, global),\n\n createFloatContainer: function createFloatContainer() {\n if (!web_ui.floatContainer) {\n web_ui.floatContainer = $l.web.dom.createElement('DIV', { id: 'laroux-floatdiv', 'class': 'laroux-floatdiv' });\n document.body.insertBefore(web_ui.floatContainer, document.body.firstChild);\n }\n }\n};\n\n$l.ready(web_ui.createFloatContainer);\n\n$l.extendNs('web.ui', web_ui);\n\nexports['default'] = web_ui;\nmodule.exports = exports['default'];\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"./laroux.web.ui.dynamicDates.js\":1,\"./laroux.web.ui.loading.js\":3,\"./laroux.web.ui.popup.js\":4,\"./laroux.web.ui.scrollView.js\":5}],3:[function(require,module,exports){\n(function (global){\n/*jslint node: true */\n/*global $l, localStorage */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nvar web_ui_loading = {\n elementSelector: null,\n element: null,\n defaultDelay: 1500,\n timer: null,\n\n killTimer: function killTimer() {\n clearTimeout(web_ui_loading.timer);\n },\n\n hide: function hide() {\n web_ui_loading.killTimer();\n\n $l.web.css.setProperty(web_ui_loading.element, { display: 'none' });\n localStorage.loadingIndicator = 'false';\n },\n\n show: function show(delay) {\n web_ui_loading.killTimer();\n\n if (delay === undefined) {\n delay = web_ui_loading.defaultDelay;\n }\n\n if (delay > 0) {\n setTimeout(function () {\n web_ui_loading.show(0);\n }, delay);\n } else {\n $l.web.css.setProperty(web_ui_loading.element, { display: 'block' });\n localStorage.loadingIndicator = 'true';\n }\n },\n\n init: function init() {\n if (web_ui_loading.element === null && web_ui_loading.elementSelector !== null) {\n web_ui_loading.element = $l.web.dom.selectSingle(web_ui_loading.elementSelector);\n }\n\n if (web_ui_loading.element !== null) {\n $l.web.dom.setEvent(global, 'load', web_ui_loading.hide);\n $l.web.dom.setEvent(global, 'beforeunload', web_ui_loading.show);\n\n if (localStorage.loadingIndicator !== undefined && localStorage.loadingIndicator == 'true') {\n web_ui_loading.show(0);\n } else {\n web_ui_loading.show();\n }\n }\n }\n};\n\n$l.ready(web_ui_loading.init);\n\nexports['default'] = web_ui_loading;\nmodule.exports = exports['default'];\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],4:[function(require,module,exports){\n/*jslint node: true */\n/*global $l */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _larouxWebUiJs = require('./laroux.web.ui.js');\n\nvar _larouxWebUiJs2 = _interopRequireDefault(_larouxWebUiJs);\n\nvar web_ui_popup = {\n defaultTimeout: 500,\n\n createBox: function createBox(id, xclass, message) {\n return $l.web.dom.createElement('DIV', { id: id, 'class': xclass }, message);\n },\n\n msgbox: function msgbox(timeout, message) {\n var id = $l.getUniqueId(),\n obj = web_ui_popup.createBox(id, 'laroux-msgbox laroux-fade', message);\n\n _larouxWebUiJs2['default'].floatContainer.appendChild(obj);\n\n $l.web.css.setProperty(obj, { opacity: 1 });\n\n $l.timers.set({\n timeout: timeout,\n reset: false,\n ontick: function ontick(x) {\n // $l.web.css.setProperty(x, {opacity: 0});\n $l.web.dom.remove(x);\n },\n state: obj\n });\n },\n\n init: function init() {\n _larouxWebUiJs2['default'].popupFunc = function (message) {\n web_ui_popup.msgbox(web_ui_popup.defaultTimeout, message);\n };\n }\n};\n\n$l.ready(web_ui_popup.init);\n\nexports['default'] = web_ui_popup;\nmodule.exports = exports['default'];\n},{\"./laroux.web.ui.js\":2}],5:[function(require,module,exports){\n(function (global){\n/*jslint node: true */\n/*global $l, localStorage */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nvar web_ui_scrollView = {\n selectedElements: [],\n\n onhidden: function onhidden(elements) {\n $l.web.css.setProperty(elements, { opacity: 0 });\n $l.web.css.setTransition(elements, ['opacity']);\n },\n\n onreveal: function onreveal(elements) {\n $l.web.css.setProperty(elements, { opacity: 1 });\n },\n\n set: function set(element) {\n var elements = $l.getAsArray(element);\n\n for (var i = 0, _length = elements.length; i < _length; i++) {\n if (!$l.web.css.inViewport(elements[i])) {\n web_ui_scrollView.selectedElements.push(elements[i]);\n }\n }\n\n web_ui_scrollView.onhidden(web_ui_scrollView.selectedElements);\n $l.web.dom.setEvent(global, 'scroll', web_ui_scrollView.reveal);\n },\n\n reveal: function reveal() {\n var removeKeys = [],\n elements = [];\n\n $l.each(web_ui_scrollView.selectedElements, function (i, element) {\n if ($l.web.css.inViewport(element)) {\n removeKeys.unshift(i);\n elements.push(element);\n }\n });\n\n for (var item in removeKeys) {\n if (!removeKeys.hasOwnProperty(item)) {\n continue;\n }\n\n web_ui_scrollView.selectedElements.splice(removeKeys[item], 1);\n }\n\n if (web_ui_scrollView.selectedElements.length === 0) {\n $l.web.dom.unsetEvent(global, 'scroll', web_ui_scrollView.reveal);\n }\n\n if (elements.length > 0) {\n web_ui_scrollView.onreveal(elements);\n }\n }\n};\n\n// $l.ready(web_ui_scrollView.init);\n\nexports['default'] = web_ui_scrollView;\nmodule.exports = exports['default'];\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}]},{},[2]);\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/build/dist/laroux.web/laroux.web.js b/build/dist/laroux.web/laroux.web.js index 4755b36..029ca2d 100644 --- a/build/dist/laroux.web/laroux.web.js +++ b/build/dist/laroux.web/laroux.web.js @@ -860,7 +860,7 @@ Object.defineProperty(exports, '__esModule', { }); var web_forms = { ajaxForm: function ajaxForm(formobj, callback, callbackBegin) { - $l.dom.setEvent(formobj, 'submit', function () { + $l.web.dom.setEvent(formobj, 'submit', function () { if (callbackBegin !== undefined) { callbackBegin(); } @@ -1149,8 +1149,8 @@ if ('document' in global) { document.addEventListener('DOMContentLoaded', $l.setReady); } -// $l.extendNs('web', web); -$l.extend(web); +$l.extendNs('web', web); +// $l.extend(web); exports['default'] = web; module.exports = exports['default']; @@ -1307,7 +1307,7 @@ var web_keys = { return false; }; - $l.dom.setEvent(options.target || document, 'keydown', wrapper); + $l.web.dom.setEvent(options.target || document, 'keydown', wrapper); } }; @@ -1546,9 +1546,9 @@ var web_touch = { var events = [0, navigator.msPointerEnabled ? 2 : 1, 3]; for (var i = 0, _length = events.length; i < _length; i++) { - $l.dom.setEventSingle(document, web_touch.events.start[events[i]], web_touch.onstart); - $l.dom.setEventSingle(document, web_touch.events.end[events[i]], web_touch.onend); - $l.dom.setEventSingle(document, web_touch.events.move[events[i]], web_touch.locatePointer); + $l.web.dom.setEventSingle(document, web_touch.events.start[events[i]], web_touch.onstart); + $l.web.dom.setEventSingle(document, web_touch.events.end[events[i]], web_touch.onend); + $l.web.dom.setEventSingle(document, web_touch.events.move[events[i]], web_touch.locatePointer); } }, @@ -1562,7 +1562,7 @@ var web_touch = { var callback = function callback() { if (web_touch.cached[0] >= web_touch.pos[0] - web_touch.precision && web_touch.cached[0] <= web_touch.pos[0] + web_touch.precision && web_touch.cached[1] >= web_touch.pos[1] - web_touch.precision && web_touch.cached[1] <= web_touch.pos[1] + web_touch.precision) { if (web_touch.touchStarted === null) { - $l.dom.dispatchEvent(event.target, web_touch.tapCount === 2 ? 'dbltap' : 'tap', { + $l.web.dom.dispatchEvent(event.target, web_touch.tapCount === 2 ? 'dbltap' : 'tap', { innerEvent: event, x: web_touch.pos[0], y: web_touch.pos[1] @@ -1573,7 +1573,7 @@ var web_touch = { } if (Date.now() - web_touch.touchStarted > web_touch.longTapTreshold) { - $l.dom.dispatchEvent(event.target, 'longtap', { + $l.web.dom.dispatchEvent(event.target, 'longtap', { innerEvent: event, x: web_touch.pos[0], y: web_touch.pos[1] @@ -1610,19 +1610,19 @@ var web_touch = { web_touch.touchStarted = null; if (delta[0] <= -web_touch.swipeTreshold) { - $l.dom.dispatchEvent(event.target, 'swiperight', data); + $l.web.dom.dispatchEvent(event.target, 'swiperight', data); } if (delta[0] >= web_touch.swipeTreshold) { - $l.dom.dispatchEvent(event.target, 'swipeleft', data); + $l.web.dom.dispatchEvent(event.target, 'swipeleft', data); } if (delta[1] <= -web_touch.swipeTreshold) { - $l.dom.dispatchEvent(event.target, 'swipedown', data); + $l.web.dom.dispatchEvent(event.target, 'swipedown', data); } if (delta[1] >= web_touch.swipeTreshold) { - $l.dom.dispatchEvent(event.target, 'swipeup', data); + $l.web.dom.dispatchEvent(event.target, 'swipeup', data); } } }; diff --git a/build/dist/laroux.web/laroux.web.min.js b/build/dist/laroux.web/laroux.web.min.js index 8b56f72..206ccf5 100644 --- a/build/dist/laroux.web/laroux.web.min.js +++ b/build/dist/laroux.web/laroux.web.min.js @@ -5,5 +5,5 @@ * @link https://larukedi.github.io/laroux.js * @license Apache-2.0 */ -!function e(t,r,n){function o(i,l){if(!r[i]){if(!t[i]){var u="function"==typeof require&&require;if(!l&&u)return u(i,!0);if(a)return a(i,!0);var s=new Error("Cannot find module '"+i+"'");throw s.code="MODULE_NOT_FOUND",s}var c=r[i]={exports:{}};t[i][0].call(c.exports,function(e){var r=t[i][1][e];return o(r?r:e)},c,c.exports,e,t,r,n)}return r[i].exports}for(var a="function"==typeof require&&require,i=0;in.startTime+n.time&&(n.reset===!0?(n.startTime=e,n.object===document.body&&"scrollTop"===n.property?scrollTo(0,n.from):n.object[n.property]=n.from):(t=$l.prependArray(t,r),n.deferredResolve()))}for(var o in t)t.hasOwnProperty(o)&&i.data.splice(t[o],1);i.data.length>0&&requestAnimationFrame(i.onframe)},step:function(e,t){var r=e.startTime+e.time,n=t>r?1:(t-e.startTime)/e.time,o=i.fx.interpolate(e.from,e.to,i.fx.easing(n))+e.unit;e.object===document.body&&"scrollTop"===e.property?scrollTo(0,o):e.object[e.property]=o}};r["default"]=i,t.exports=r["default"]},{"./laroux.web.css.js":2}],2:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={hasClass:function(e,t){return e.classList.contains(t)},addClass:function(e,t){for(var r=$l.getAsArray(e),n=0,o=r.length;o>n;n++)r[n].classList.add(t)},removeClass:function(e,t){for(var r=$l.getAsArray(e),n=0,o=r.length;o>n;n++)r[n].classList.remove(t)},toggleClass:function(e,t){for(var r=$l.getAsArray(e),n=0,o=r.length;o>n;n++)r[n].classList.contains(t)?r[n].classList.remove(t):r[n].classList.add(t)},cycleClass:function(e,t){for(var r=0,n=e.length;n>r;r++)if(e[r].classList.contains(t))return e[r].classList.remove(t),void e[(r+1)%n].classList.add(t)},getProperty:function(e,t){var r=getComputedStyle(e);return t=$l.antiCamelCase(t),r.getPropertyValue(t)},setProperty:function(e,t,r){var n=$l.getAsArray(e);if("string"==typeof t){var o=t;t={},t[o]=r}for(var a in t)if(t.hasOwnProperty(a))for(var i=$l.camelCase(a),l=0,u=n.length;u>l;l++)n[l].style[i]=t[a]},defaultTransition:"2s ease",setTransitionSingle:function(e,t){var r=$l.getAsArray(t),o=getComputedStyle(e),a=o.getPropertyValue("transition")||o.getPropertyValue("-webkit-transition")||o.getPropertyValue("-ms-transition")||"",i=void 0;i=a.length>0?a.split(","):[];for(var l in r)if(r.hasOwnProperty(l)){var u=void 0,s=void 0,c=r[l].indexOf(" ");-1!==c?(u=r[l].substring(0,c),s=r[l].substring(c+1)):(u=r[l],s=n.defaultTransition);for(var d=!1,f=0;fo;o++)n.setTransitionSingle(r[o],t)},show:function(e,t){void 0!==t?n.setTransition(e,"opacity "+t):n.setTransition(e,"opacity"),n.setProperty(e,{opacity:1})},hide:function(e,t){void 0!==t?n.setTransition(e,"opacity "+t):n.setTransition(e,"opacity"),n.setProperty(e,{opacity:0})},height:function o(e){var t=getComputedStyle(e),o=t.getPropertyCSSValue("height");return o.getFloatValue(o.primitiveType)},innerHeight:function(e){return e.clientHeight},outerHeight:function(e,t){if(t)return e.offsetHeight;var r=getComputedStyle(e),n=r.getPropertyCSSValue("margin-top"),o=r.getPropertyCSSValue("margin-bottom"),a=n.getFloatValue(n.primitiveType)+o.getFloatValue(o.primitiveType);return Math.ceil(e.offsetHeight+a)},width:function(e){var t=getComputedStyle(e),r=t.getPropertyCSSValue("width");return r.getFloatValue(r.primitiveType)},innerWidth:function(e){return e.clientWidth},outerWidth:function(e,t){if(t)return e.offsetWidth;var r=getComputedStyle(e),n=r.getPropertyCSSValue("margin-left"),o=r.getPropertyCSSValue("margin-right"),a=n.getFloatValue(n.primitiveType)+o.getFloatValue(o.primitiveType);return Math.ceil(e.offsetWidth+a)},top:function(e){return e.getBoundingClientRect().top+(document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop)},left:function(e){return e.getBoundingClientRect().left+(document.documentElement&&document.documentElement.scrollLeft||document.body.scrollLeft)},aboveTheTop:function(e){return e.getBoundingClientRect().bottom<=0},belowTheFold:function(e){return e.getBoundingClientRect().top>innerHeight},leftOfScreen:function(e){return e.getBoundingClientRect().right<=0},rightOfScreen:function(e){return e.getBoundingClientRect().left>innerWidth},inViewport:function(e){var t=e.getBoundingClientRect();return!(t.bottom<=0||t.top>innerHeight||t.right<=0||t.left>innerWidth)}};r["default"]=n,t.exports=r["default"]},{}],3:[function(e,t,r){(function(e){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={docprop:function(e){return document.documentElement.classList.contains(e)},select:function(e,t){return $l.toArray((t||document).querySelectorAll(e))},selectByClass:function(e,t){return $l.toArray((t||document).getElementsByClassName(e))},selectByTag:function(e,t){return $l.toArray((t||document).getElementsByTagName(e))},selectById:function(e,t){return(t||document).getElementById(e)},selectSingle:function(e,t){return(t||document).querySelector(e)},attr:function(e,t,r){if(void 0===r&&t.constructor!==Object)return e.getAttribute(t);var n=$l.getAsArray(e);if("string"==typeof t){var o=t;t={},t[o]=r}for(var a in t)if(t.hasOwnProperty(a))for(var i=0,l=n.length;l>i;i++)null===t[a]?e.removeAttribute(a):e.setAttribute(a,t[a])},data:function(e,t,r){if(void 0===r&&t.constructor!==Object)return e.getAttribute("data-"+t);var n=$l.getAsArray(e);if("string"==typeof t){var o=t;t={},t[o]=r}for(var a in t)if(t.hasOwnProperty(a))for(var i=0,l=n.length;l>i;i++)null===t[a]?e.removeAttribute("data-"+a):e.setAttribute("data-"+a,t[a])},eventHistory:[],setEvent:function(e,t,r){for(var o=$l.getAsArray(e),a=0,i=o.length;i>a;a++)n.setEventSingle(o[a],t,r)},setEventSingle:function(e,t,r){var o=function(t){r(t,e)===!1&&(t.preventDefault?t.preventDefault():event.returnValue=!1)};n.eventHistory.push({element:e,eventname:t,callback:r,callbackWrapper:o}),e.addEventListener(t,o,!1)},unsetEvent:function(e,t,r){for(var o=$l.getAsArray(e),a=0,i=o.length;i>a;a++)for(var l=0,u=n.eventHistory.length;u>l;l++){var s=n.eventHistory[l];void 0!==s&&s.element===o[a]&&(void 0===t||s.eventname===t)&&(void 0===r||s.callback===r)&&(s.element.removeEventListener(s.eventname,s.callbackWrapper,!1),delete n.eventHistory[l])}},dispatchEvent:function(e,t,r){var n=document.createEvent("Event");for(var o in r)r.hasOwnProperty(o)&&(n[o]=r[o]);n.initEvent(t,!0,!0),e.dispatchEvent(n)},create:function(e){var t=document.createDocumentFragment(),r=document.createElement("DIV");for(r.insertAdjacentHTML("beforeend",e);r.firstChild;)t.appendChild(r.firstChild);return r=null,t},createElement:function(e,t,r){var o=document.createElement(e);if(void 0!==t&&t.constructor===Object)for(var a in t)t.hasOwnProperty(a)&&o.setAttribute(a,t[a]);if(void 0!==r)if(r.constructor===Object)for(var i in r)r.hasOwnProperty(i)&&o.setAttribute(i,r[i]);else r.length>0&&n.append(o,r);return o},createOption:function(e,t,r,o){var a=document.createElement("OPTION");a.setAttribute("value",t),o===!0&&a.setAttribute("checked","checked"),n.append(a,r),e.appendChild(a)},selectByValue:function(e,t){for(var r=0,n=e.options.length;n>r;r++)if(e.options[r].getAttribute("value")==t){e.selectedIndex=r;break}},clear:function(e){for(;e.hasChildNodes();)e.removeChild(e.firstChild)},insert:function(e,t,r){e.insertAdjacentHTML(t,r)},prepend:function(e,t){e.insertAdjacentHTML("afterbegin",t)},append:function(e,t){e.insertAdjacentHTML("beforeend",t)},replace:function(e,t){n.clear(e),e.insertAdjacentHTML("afterbegin",t)},replaceText:function(e,t){e.textContent=t},remove:function(e){e.remove()},cloneReturn:0,cloneAppend:1,cloneInsertAfter:2,cloneInsertBefore:3,clone:function(e,t,r,o){var a=e.cloneNode(!0);return void 0===r&&(r=e.parentNode),void 0===o&&(o=e),void 0!==t&&t!=n.cloneReturn&&(t==n.cloneAppend?r.appendChild(a):t==n.cloneInsertAfter?r.insertBefore(a,o.nextSibling):r.insertBefore(a,o)),a},loadScript:function(e,t){return new $l.promise(function(r,n){var o=document.createElement("script");void 0!==t&&(o.async=t),void 0!==o.readyState?o.onreadystatechange=function(){o.readyState in["loaded","complete"]&&(o.onreadystatechange=null,r(o))}:o.onload=function(){r(o)},o.src=e;var a=document.getElementsByTagName("head")[0];a.appendChild(o)})}};"Element"in e&&void 0===Element.prototype.remove&&(Element.prototype.remove=function(){null!==this.parentElement&&this.parentElement.removeChild(this)}),r["default"]=n,t.exports=r["default"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],4:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ajaxForm:function(e,t,r){$l.dom.setEvent(e,"submit",function(){void 0!==r&&r();var o=$l.ajax.fetch(e.getAttribute("action"),{method:"POST",body:n.serializeFormData(e)});return void 0!==t&&o.then(t),!1})},isFormField:function(e){if("SELECT"===e.tagName)return!0;if("INPUT"===e.tagName){var t=e.getAttribute("type").toUpperCase();return"FILE"===t||"CHECKBOX"===t||"RADIO"===t||"TEXT"===t||"PASSWORD"===t||"HIDDEN"===t?!0:!1}return"TEXTAREA"===e.tagName?!0:!1},getFormFieldValue:function(e){if(e.disabled===!0)return null;if("SELECT"===e.tagName)return e.options[e.selectedIndex].value;if("INPUT"===e.tagName){var t=e.getAttribute("type").toUpperCase();return"FILE"===t?e.files[0]:"CHECKBOX"===t||"RADIO"===t?e.checked?e.value:null:"TEXT"===t||"PASSWORD"===t||"HIDDEN"===t?e.value:null}return"TEXTAREA"===e.tagName?e.value:null},setFormFieldValue:function(e,t){if(e.disabled!==!0)if("SELECT"!==e.tagName){if("INPUT"!==e.tagName)return"TEXTAREA"===e.tagName?void(e.value=t):void 0;var r=e.getAttribute("type").toUpperCase();if("FILE"===r)return void(e.files[0]=t);if("CHECKBOX"===r||"RADIO"===r)return void((t===!0||t==e.value)&&(e.checked=!0));if("TEXT"===r||"PASSWORD"===r||"HIDDEN"===r)return void(e.value=t)}else for(var n in e.options)if(e.options.hasOwnProperty(n)&&e.options[n].value==t)return void(e.selectedIndex=n)},toggleFormEditing:function(e,t){var r=e.querySelectorAll("*[name]");void 0===t&&(null===e.getAttribute("data-last-enabled")?(e.setAttribute("data-last-enabled","enabled"),t=!1):(e.removeAttribute("data-last-enabled"),t=!0));for(var o=0,a=r.length;a>o;o++)if(n.isFormField(r[o])){var i=r[o].getAttribute("data-last-disabled");t?r[o].removeAttribute(null!==i?"data-last-disabled":"disabled"):(null===i&&null!==r[o].getAttribute("disabled")&&r[o].setAttribute("data-last-disabled","disabled"),r[o].setAttribute("disabled","disabled"))}},serializeFormData:function(e){for(var t=new FormData,r=e.querySelectorAll("*[name]"),o=0,a=r.length;a>o;o++){var i=n.getFormFieldValue(r[o]);null!==i&&t.append(r[o].getAttribute("name"),i)}return t},serialize:function(e){for(var t={},r=e.querySelectorAll("*[name]"),o=0,a=r.length;a>o;o++){var i=n.getFormFieldValue(r[o]);null!==i&&(t[r[o].getAttribute("name")]=i)}return t},deserialize:function(e,t){for(var r=e.querySelectorAll("*[name]"),o=0,a=r.length;a>o;o++)n.setFormFieldValue(r[o],t[r[o].getAttribute("name")])},validate:function(e,t){var r=n.serialize(e);return $l.validation.validate(r,t)}};r["default"]=n,t.exports=r["default"]},{}],5:[function(e,t,r){(function(n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(r,"__esModule",{value:!0});var a=e("./laroux.web.anim.js"),i=o(a),l=e("./laroux.web.css.js"),u=o(l),s=e("./laroux.web.dom.js"),c=o(s),d=e("./laroux.web.forms.js"),f=o(d),p=e("./laroux.web.keys.js"),m=o(p),v=e("./laroux.web.routes.js"),g=o(v),h=e("./laroux.web.touch.js"),y=o(h),b={anim:i["default"],css:u["default"],dom:c["default"],forms:f["default"],keys:m["default"],routes:g["default"],touch:y["default"],cached:{single:{},array:{},id:{}},c:function(e){return e.constructor===Array?b.cached.array[e]||(b.cached.array[e]=$l.toArray(document.querySelectorAll(e))):b.cached.single[e]||(b.cached.single[e]=document.querySelector(e))},id:function(e,t){return(t||document).getElementById(e)},idc:function(e){return b.cached.id[e]||(b.cached.id[e]=document.getElementById(e))}};"document"in n&&document.addEventListener("DOMContentLoaded",$l.setReady),$l.extend(b),r["default"]=b,t.exports=r["default"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./laroux.web.anim.js":1,"./laroux.web.css.js":2,"./laroux.web.dom.js":3,"./laroux.web.forms.js":4,"./laroux.web.keys.js":6,"./laroux.web.routes.js":7,"./laroux.web.touch.js":8}],6:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(r,"__esModule",{value:!0});var o=e("./laroux.web.forms.js"),a=n(o),i={keyName:function(e){switch(e=e.toLowerCase()){case"backspace":return 8;case"tab":return 9;case"enter":case"return":return 13;case"esc":case"escape":return 27;case"space":return 32;case"pgup":return 33;case"pgdn":return 34;case"end":return 35;case"home":return 36;case"left":return 37;case"up":return 38;case"right":return 39;case"down":return 40;case"insert":return 45;case"delete":return 46;case"f1":return 112;case"f2":return 113;case"f3":return 114;case"f4":return 115;case"f5":return 116;case"f6":return 117;case"f7":return 118;case"f8":return 119;case"f9":return 120;case"f10":return 121;case"f11":return 122;case"f12":return 123;case",":return 188;case".":return 190}return String.fromCharCode(e)},assign:function(e){var t=function(t){t||(t=event);var r=t.target||t.srcElement;if((3===r.nodeType||11===r.nodeType)&&(r=r.parentNode),!(e.disableInputs&&a["default"].isFormField(r)||e.shift&&!t.shiftKey||e.ctrl&&!t.ctrlKey||e.alt&&!t.altKey)){var n=i.keyName(e.key);if(n===(t.keyCode||t.which))return e.callback(t),!1}};$l.dom.setEvent(e.target||document,"keydown",t)}};r["default"]=i,t.exports=r["default"]},{"./laroux.web.forms.js":4}],7:[function(e,t,r){(function(e){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={map:{},attached:!1,current:null,regexConverter:function(e,t,r){var n=[],o=e.concat(r?"":"/?").replace(/\/\(/g,"(?:/").replace(/\+/g,"__plus__").replace(/(\/)?(\.)?:(\w+)(?:(\(.*?\)))?(\?)?/g,function(e,t,r,o,a,i){return n.push({name:o,optional:!!i}),t=t||"",""+(i?"":t)+"(?:"+(i?t:"")+(r||"")+(a||r&&"([^/.]+?)"||"([^/]+?)")+")"+(i||"")}).replace(/([\/.])/g,"\\$1").replace(/__plus__/g,"(.+)").replace(/\*/g,"(.*)");return{regex:new RegExp("^"+o+"$",t?"":"i"),keys:n}},add:function(e,t){n.addNamed(null,e,t)},addNamed:function(e,t,r){if(t in n.map)n.map[t].callback=r;else{var o=n.regexConverter(t);n.map[t]={name:e,callback:r,params:{},keys:o.keys,regex:o.regex}}},get:function(e){for(var t in n.map)if(n.map.hasOwnProperty(t)){var r=n.map[t],o=r.regex.exec(e);if(o){for(var a={},i=1,l=o.length;l>i;i++){var u=r.keys[i-1];void 0!==u&&(a[u.name]="string"==typeof o[i]?decodeURIComponent(o[i]):o[i])}return{route:t,resolved:e,params:a,callback:r.callback}}}return null},getNamed:function(e,t){for(var r in n.map)if(n.map.hasOwnProperty(r)){for(var o=n.map[r],a=r,i=0,l=o.keys.length;l>i;i++){var u=o.keys[i];a=a.replace(":"+u.name,t[u.name]||"")}if(o.name==e)return{route:r,resolved:a,params:t,callback:o.callback}}return null},link:function(e,t){var r=n.getNamed(e,t);return null===r?null:r.resolved},exec:function(t){var r=n.current,o=$l.map(t.params,function(e){return e});return n.current=t,o.push({previous:r,current:n.current}),t.callback.apply(e,o)},go:function(e,t){var r=n.attached;t&&r&&n.detach(),setTimeout(function(){location.hash=e,t&&r&&setTimeout(function(){n.attach()},1)},1)},goNamed:function(e,t,r){var o=n.link(e,t);return null===o?null:void n.go(o,r)},reload:function(){var e=location.hash.substring(1),t=n.get(e);null!==t&&n.exec(t)},attach:function(){addEventListener("hashchange",n.reload,!1),n.attached=!0},detach:function(){removeEventListener("hashchange",n.reload),n.attached=!1}};$l.ready(n.attach),r["default"]=n,t.exports=r["default"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],8:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={touchStarted:null,swipeTreshold:80,precision:30,tapCount:0,tapTreshold:200,longTapTreshold:800,tapTimer:null,pos:null,cached:null,events:{start:["touchstart","pointerdown","MSPointerDown","mousedown"],end:["touchend","pointerup","MSPointerUp","mouseup"],move:["touchmove","pointermove","MSPointerMove","mousemove"]},locatePointer:function(e){e.targetTouches&&(e=e.targetTouches[0]),n.pos=[e.pageX,e.pageY]},init:function(){for(var e=[0,navigator.msPointerEnabled?2:1,3],t=0,r=e.length;r>t;t++)$l.dom.setEventSingle(document,n.events.start[e[t]],n.onstart),$l.dom.setEventSingle(document,n.events.end[e[t]],n.onend),$l.dom.setEventSingle(document,n.events.move[e[t]],n.locatePointer)},onstart:function(e){n.locatePointer(e),n.cached=[n.pos[0],n.pos[1]],n.touchStarted=Date.now(),n.tapCount++;var t=function r(){return n.cached[0]>=n.pos[0]-n.precision&&n.cached[0]<=n.pos[0]+n.precision&&n.cached[1]>=n.pos[1]-n.precision&&n.cached[1]<=n.pos[1]+n.precision?null===n.touchStarted?($l.dom.dispatchEvent(e.target,2===n.tapCount?"dbltap":"tap",{innerEvent:e,x:n.pos[0],y:n.pos[1]}),void(n.tapCount=0)):Date.now()-n.touchStarted>n.longTapTreshold?($l.dom.dispatchEvent(e.target,"longtap",{innerEvent:e,x:n.pos[0],y:n.pos[1]}),n.touchStarted=null,void(n.tapCount=0)):void(n.tapTimer=setTimeout(r,n.tapTreshold)):void(n.tapCount=0)};clearTimeout(n.tapTimer),n.tapTimer=setTimeout(t,n.tapTreshold)},onend:function(e){var t=[n.pos[0]-n.cached[0],n.pos[1]-n.cached[1]],r={innerEvent:e,x:n.pos[0],y:n.pos[1],distance:{x:Math.abs(t[0]),y:Math.abs(t[1])}};n.touchStarted=null,t[0]<=-n.swipeTreshold&&$l.dom.dispatchEvent(e.target,"swiperight",r),t[0]>=n.swipeTreshold&&$l.dom.dispatchEvent(e.target,"swipeleft",r),t[1]<=-n.swipeTreshold&&$l.dom.dispatchEvent(e.target,"swipedown",r),t[1]>=n.swipeTreshold&&$l.dom.dispatchEvent(e.target,"swipeup",r)}};$l.ready(n.init),r["default"]=n,t.exports=r["default"]},{}]},{},[5]); +!function e(t,r,n){function o(i,l){if(!r[i]){if(!t[i]){var u="function"==typeof require&&require;if(!l&&u)return u(i,!0);if(a)return a(i,!0);var s=new Error("Cannot find module '"+i+"'");throw s.code="MODULE_NOT_FOUND",s}var c=r[i]={exports:{}};t[i][0].call(c.exports,function(e){var r=t[i][1][e];return o(r?r:e)},c,c.exports,e,t,r,n)}return r[i].exports}for(var a="function"==typeof require&&require,i=0;in.startTime+n.time&&(n.reset===!0?(n.startTime=e,n.object===document.body&&"scrollTop"===n.property?scrollTo(0,n.from):n.object[n.property]=n.from):(t=$l.prependArray(t,r),n.deferredResolve()))}for(var o in t)t.hasOwnProperty(o)&&i.data.splice(t[o],1);i.data.length>0&&requestAnimationFrame(i.onframe)},step:function(e,t){var r=e.startTime+e.time,n=t>r?1:(t-e.startTime)/e.time,o=i.fx.interpolate(e.from,e.to,i.fx.easing(n))+e.unit;e.object===document.body&&"scrollTop"===e.property?scrollTo(0,o):e.object[e.property]=o}};r["default"]=i,t.exports=r["default"]},{"./laroux.web.css.js":2}],2:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={hasClass:function(e,t){return e.classList.contains(t)},addClass:function(e,t){for(var r=$l.getAsArray(e),n=0,o=r.length;o>n;n++)r[n].classList.add(t)},removeClass:function(e,t){for(var r=$l.getAsArray(e),n=0,o=r.length;o>n;n++)r[n].classList.remove(t)},toggleClass:function(e,t){for(var r=$l.getAsArray(e),n=0,o=r.length;o>n;n++)r[n].classList.contains(t)?r[n].classList.remove(t):r[n].classList.add(t)},cycleClass:function(e,t){for(var r=0,n=e.length;n>r;r++)if(e[r].classList.contains(t))return e[r].classList.remove(t),void e[(r+1)%n].classList.add(t)},getProperty:function(e,t){var r=getComputedStyle(e);return t=$l.antiCamelCase(t),r.getPropertyValue(t)},setProperty:function(e,t,r){var n=$l.getAsArray(e);if("string"==typeof t){var o=t;t={},t[o]=r}for(var a in t)if(t.hasOwnProperty(a))for(var i=$l.camelCase(a),l=0,u=n.length;u>l;l++)n[l].style[i]=t[a]},defaultTransition:"2s ease",setTransitionSingle:function(e,t){var r=$l.getAsArray(t),o=getComputedStyle(e),a=o.getPropertyValue("transition")||o.getPropertyValue("-webkit-transition")||o.getPropertyValue("-ms-transition")||"",i=void 0;i=a.length>0?a.split(","):[];for(var l in r)if(r.hasOwnProperty(l)){var u=void 0,s=void 0,c=r[l].indexOf(" ");-1!==c?(u=r[l].substring(0,c),s=r[l].substring(c+1)):(u=r[l],s=n.defaultTransition);for(var d=!1,f=0;fo;o++)n.setTransitionSingle(r[o],t)},show:function(e,t){void 0!==t?n.setTransition(e,"opacity "+t):n.setTransition(e,"opacity"),n.setProperty(e,{opacity:1})},hide:function(e,t){void 0!==t?n.setTransition(e,"opacity "+t):n.setTransition(e,"opacity"),n.setProperty(e,{opacity:0})},height:function o(e){var t=getComputedStyle(e),o=t.getPropertyCSSValue("height");return o.getFloatValue(o.primitiveType)},innerHeight:function(e){return e.clientHeight},outerHeight:function(e,t){if(t)return e.offsetHeight;var r=getComputedStyle(e),n=r.getPropertyCSSValue("margin-top"),o=r.getPropertyCSSValue("margin-bottom"),a=n.getFloatValue(n.primitiveType)+o.getFloatValue(o.primitiveType);return Math.ceil(e.offsetHeight+a)},width:function(e){var t=getComputedStyle(e),r=t.getPropertyCSSValue("width");return r.getFloatValue(r.primitiveType)},innerWidth:function(e){return e.clientWidth},outerWidth:function(e,t){if(t)return e.offsetWidth;var r=getComputedStyle(e),n=r.getPropertyCSSValue("margin-left"),o=r.getPropertyCSSValue("margin-right"),a=n.getFloatValue(n.primitiveType)+o.getFloatValue(o.primitiveType);return Math.ceil(e.offsetWidth+a)},top:function(e){return e.getBoundingClientRect().top+(document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop)},left:function(e){return e.getBoundingClientRect().left+(document.documentElement&&document.documentElement.scrollLeft||document.body.scrollLeft)},aboveTheTop:function(e){return e.getBoundingClientRect().bottom<=0},belowTheFold:function(e){return e.getBoundingClientRect().top>innerHeight},leftOfScreen:function(e){return e.getBoundingClientRect().right<=0},rightOfScreen:function(e){return e.getBoundingClientRect().left>innerWidth},inViewport:function(e){var t=e.getBoundingClientRect();return!(t.bottom<=0||t.top>innerHeight||t.right<=0||t.left>innerWidth)}};r["default"]=n,t.exports=r["default"]},{}],3:[function(e,t,r){(function(e){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={docprop:function(e){return document.documentElement.classList.contains(e)},select:function(e,t){return $l.toArray((t||document).querySelectorAll(e))},selectByClass:function(e,t){return $l.toArray((t||document).getElementsByClassName(e))},selectByTag:function(e,t){return $l.toArray((t||document).getElementsByTagName(e))},selectById:function(e,t){return(t||document).getElementById(e)},selectSingle:function(e,t){return(t||document).querySelector(e)},attr:function(e,t,r){if(void 0===r&&t.constructor!==Object)return e.getAttribute(t);var n=$l.getAsArray(e);if("string"==typeof t){var o=t;t={},t[o]=r}for(var a in t)if(t.hasOwnProperty(a))for(var i=0,l=n.length;l>i;i++)null===t[a]?e.removeAttribute(a):e.setAttribute(a,t[a])},data:function(e,t,r){if(void 0===r&&t.constructor!==Object)return e.getAttribute("data-"+t);var n=$l.getAsArray(e);if("string"==typeof t){var o=t;t={},t[o]=r}for(var a in t)if(t.hasOwnProperty(a))for(var i=0,l=n.length;l>i;i++)null===t[a]?e.removeAttribute("data-"+a):e.setAttribute("data-"+a,t[a])},eventHistory:[],setEvent:function(e,t,r){for(var o=$l.getAsArray(e),a=0,i=o.length;i>a;a++)n.setEventSingle(o[a],t,r)},setEventSingle:function(e,t,r){var o=function(t){r(t,e)===!1&&(t.preventDefault?t.preventDefault():event.returnValue=!1)};n.eventHistory.push({element:e,eventname:t,callback:r,callbackWrapper:o}),e.addEventListener(t,o,!1)},unsetEvent:function(e,t,r){for(var o=$l.getAsArray(e),a=0,i=o.length;i>a;a++)for(var l=0,u=n.eventHistory.length;u>l;l++){var s=n.eventHistory[l];void 0!==s&&s.element===o[a]&&(void 0===t||s.eventname===t)&&(void 0===r||s.callback===r)&&(s.element.removeEventListener(s.eventname,s.callbackWrapper,!1),delete n.eventHistory[l])}},dispatchEvent:function(e,t,r){var n=document.createEvent("Event");for(var o in r)r.hasOwnProperty(o)&&(n[o]=r[o]);n.initEvent(t,!0,!0),e.dispatchEvent(n)},create:function(e){var t=document.createDocumentFragment(),r=document.createElement("DIV");for(r.insertAdjacentHTML("beforeend",e);r.firstChild;)t.appendChild(r.firstChild);return r=null,t},createElement:function(e,t,r){var o=document.createElement(e);if(void 0!==t&&t.constructor===Object)for(var a in t)t.hasOwnProperty(a)&&o.setAttribute(a,t[a]);if(void 0!==r)if(r.constructor===Object)for(var i in r)r.hasOwnProperty(i)&&o.setAttribute(i,r[i]);else r.length>0&&n.append(o,r);return o},createOption:function(e,t,r,o){var a=document.createElement("OPTION");a.setAttribute("value",t),o===!0&&a.setAttribute("checked","checked"),n.append(a,r),e.appendChild(a)},selectByValue:function(e,t){for(var r=0,n=e.options.length;n>r;r++)if(e.options[r].getAttribute("value")==t){e.selectedIndex=r;break}},clear:function(e){for(;e.hasChildNodes();)e.removeChild(e.firstChild)},insert:function(e,t,r){e.insertAdjacentHTML(t,r)},prepend:function(e,t){e.insertAdjacentHTML("afterbegin",t)},append:function(e,t){e.insertAdjacentHTML("beforeend",t)},replace:function(e,t){n.clear(e),e.insertAdjacentHTML("afterbegin",t)},replaceText:function(e,t){e.textContent=t},remove:function(e){e.remove()},cloneReturn:0,cloneAppend:1,cloneInsertAfter:2,cloneInsertBefore:3,clone:function(e,t,r,o){var a=e.cloneNode(!0);return void 0===r&&(r=e.parentNode),void 0===o&&(o=e),void 0!==t&&t!=n.cloneReturn&&(t==n.cloneAppend?r.appendChild(a):t==n.cloneInsertAfter?r.insertBefore(a,o.nextSibling):r.insertBefore(a,o)),a},loadScript:function(e,t){return new $l.promise(function(r,n){var o=document.createElement("script");void 0!==t&&(o.async=t),void 0!==o.readyState?o.onreadystatechange=function(){o.readyState in["loaded","complete"]&&(o.onreadystatechange=null,r(o))}:o.onload=function(){r(o)},o.src=e;var a=document.getElementsByTagName("head")[0];a.appendChild(o)})}};"Element"in e&&void 0===Element.prototype.remove&&(Element.prototype.remove=function(){null!==this.parentElement&&this.parentElement.removeChild(this)}),r["default"]=n,t.exports=r["default"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],4:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ajaxForm:function(e,t,r){$l.web.dom.setEvent(e,"submit",function(){void 0!==r&&r();var o=$l.ajax.fetch(e.getAttribute("action"),{method:"POST",body:n.serializeFormData(e)});return void 0!==t&&o.then(t),!1})},isFormField:function(e){if("SELECT"===e.tagName)return!0;if("INPUT"===e.tagName){var t=e.getAttribute("type").toUpperCase();return"FILE"===t||"CHECKBOX"===t||"RADIO"===t||"TEXT"===t||"PASSWORD"===t||"HIDDEN"===t?!0:!1}return"TEXTAREA"===e.tagName?!0:!1},getFormFieldValue:function(e){if(e.disabled===!0)return null;if("SELECT"===e.tagName)return e.options[e.selectedIndex].value;if("INPUT"===e.tagName){var t=e.getAttribute("type").toUpperCase();return"FILE"===t?e.files[0]:"CHECKBOX"===t||"RADIO"===t?e.checked?e.value:null:"TEXT"===t||"PASSWORD"===t||"HIDDEN"===t?e.value:null}return"TEXTAREA"===e.tagName?e.value:null},setFormFieldValue:function(e,t){if(e.disabled!==!0)if("SELECT"!==e.tagName){if("INPUT"!==e.tagName)return"TEXTAREA"===e.tagName?void(e.value=t):void 0;var r=e.getAttribute("type").toUpperCase();if("FILE"===r)return void(e.files[0]=t);if("CHECKBOX"===r||"RADIO"===r)return void((t===!0||t==e.value)&&(e.checked=!0));if("TEXT"===r||"PASSWORD"===r||"HIDDEN"===r)return void(e.value=t)}else for(var n in e.options)if(e.options.hasOwnProperty(n)&&e.options[n].value==t)return void(e.selectedIndex=n)},toggleFormEditing:function(e,t){var r=e.querySelectorAll("*[name]");void 0===t&&(null===e.getAttribute("data-last-enabled")?(e.setAttribute("data-last-enabled","enabled"),t=!1):(e.removeAttribute("data-last-enabled"),t=!0));for(var o=0,a=r.length;a>o;o++)if(n.isFormField(r[o])){var i=r[o].getAttribute("data-last-disabled");t?r[o].removeAttribute(null!==i?"data-last-disabled":"disabled"):(null===i&&null!==r[o].getAttribute("disabled")&&r[o].setAttribute("data-last-disabled","disabled"),r[o].setAttribute("disabled","disabled"))}},serializeFormData:function(e){for(var t=new FormData,r=e.querySelectorAll("*[name]"),o=0,a=r.length;a>o;o++){var i=n.getFormFieldValue(r[o]);null!==i&&t.append(r[o].getAttribute("name"),i)}return t},serialize:function(e){for(var t={},r=e.querySelectorAll("*[name]"),o=0,a=r.length;a>o;o++){var i=n.getFormFieldValue(r[o]);null!==i&&(t[r[o].getAttribute("name")]=i)}return t},deserialize:function(e,t){for(var r=e.querySelectorAll("*[name]"),o=0,a=r.length;a>o;o++)n.setFormFieldValue(r[o],t[r[o].getAttribute("name")])},validate:function(e,t){var r=n.serialize(e);return $l.validation.validate(r,t)}};r["default"]=n,t.exports=r["default"]},{}],5:[function(e,t,r){(function(n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(r,"__esModule",{value:!0});var a=e("./laroux.web.anim.js"),i=o(a),l=e("./laroux.web.css.js"),u=o(l),s=e("./laroux.web.dom.js"),c=o(s),d=e("./laroux.web.forms.js"),f=o(d),p=e("./laroux.web.keys.js"),m=o(p),v=e("./laroux.web.routes.js"),g=o(v),h=e("./laroux.web.touch.js"),y=o(h),b={anim:i["default"],css:u["default"],dom:c["default"],forms:f["default"],keys:m["default"],routes:g["default"],touch:y["default"],cached:{single:{},array:{},id:{}},c:function(e){return e.constructor===Array?b.cached.array[e]||(b.cached.array[e]=$l.toArray(document.querySelectorAll(e))):b.cached.single[e]||(b.cached.single[e]=document.querySelector(e))},id:function(e,t){return(t||document).getElementById(e)},idc:function(e){return b.cached.id[e]||(b.cached.id[e]=document.getElementById(e))}};"document"in n&&document.addEventListener("DOMContentLoaded",$l.setReady),$l.extendNs("web",b),r["default"]=b,t.exports=r["default"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./laroux.web.anim.js":1,"./laroux.web.css.js":2,"./laroux.web.dom.js":3,"./laroux.web.forms.js":4,"./laroux.web.keys.js":6,"./laroux.web.routes.js":7,"./laroux.web.touch.js":8}],6:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(r,"__esModule",{value:!0});var o=e("./laroux.web.forms.js"),a=n(o),i={keyName:function(e){switch(e=e.toLowerCase()){case"backspace":return 8;case"tab":return 9;case"enter":case"return":return 13;case"esc":case"escape":return 27;case"space":return 32;case"pgup":return 33;case"pgdn":return 34;case"end":return 35;case"home":return 36;case"left":return 37;case"up":return 38;case"right":return 39;case"down":return 40;case"insert":return 45;case"delete":return 46;case"f1":return 112;case"f2":return 113;case"f3":return 114;case"f4":return 115;case"f5":return 116;case"f6":return 117;case"f7":return 118;case"f8":return 119;case"f9":return 120;case"f10":return 121;case"f11":return 122;case"f12":return 123;case",":return 188;case".":return 190}return String.fromCharCode(e)},assign:function(e){var t=function(t){t||(t=event);var r=t.target||t.srcElement;if((3===r.nodeType||11===r.nodeType)&&(r=r.parentNode),!(e.disableInputs&&a["default"].isFormField(r)||e.shift&&!t.shiftKey||e.ctrl&&!t.ctrlKey||e.alt&&!t.altKey)){var n=i.keyName(e.key);if(n===(t.keyCode||t.which))return e.callback(t),!1}};$l.web.dom.setEvent(e.target||document,"keydown",t)}};r["default"]=i,t.exports=r["default"]},{"./laroux.web.forms.js":4}],7:[function(e,t,r){(function(e){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={map:{},attached:!1,current:null,regexConverter:function(e,t,r){var n=[],o=e.concat(r?"":"/?").replace(/\/\(/g,"(?:/").replace(/\+/g,"__plus__").replace(/(\/)?(\.)?:(\w+)(?:(\(.*?\)))?(\?)?/g,function(e,t,r,o,a,i){return n.push({name:o,optional:!!i}),t=t||"",""+(i?"":t)+"(?:"+(i?t:"")+(r||"")+(a||r&&"([^/.]+?)"||"([^/]+?)")+")"+(i||"")}).replace(/([\/.])/g,"\\$1").replace(/__plus__/g,"(.+)").replace(/\*/g,"(.*)");return{regex:new RegExp("^"+o+"$",t?"":"i"),keys:n}},add:function(e,t){n.addNamed(null,e,t)},addNamed:function(e,t,r){if(t in n.map)n.map[t].callback=r;else{var o=n.regexConverter(t);n.map[t]={name:e,callback:r,params:{},keys:o.keys,regex:o.regex}}},get:function(e){for(var t in n.map)if(n.map.hasOwnProperty(t)){var r=n.map[t],o=r.regex.exec(e);if(o){for(var a={},i=1,l=o.length;l>i;i++){var u=r.keys[i-1];void 0!==u&&(a[u.name]="string"==typeof o[i]?decodeURIComponent(o[i]):o[i])}return{route:t,resolved:e,params:a,callback:r.callback}}}return null},getNamed:function(e,t){for(var r in n.map)if(n.map.hasOwnProperty(r)){for(var o=n.map[r],a=r,i=0,l=o.keys.length;l>i;i++){var u=o.keys[i];a=a.replace(":"+u.name,t[u.name]||"")}if(o.name==e)return{route:r,resolved:a,params:t,callback:o.callback}}return null},link:function(e,t){var r=n.getNamed(e,t);return null===r?null:r.resolved},exec:function(t){var r=n.current,o=$l.map(t.params,function(e){return e});return n.current=t,o.push({previous:r,current:n.current}),t.callback.apply(e,o)},go:function(e,t){var r=n.attached;t&&r&&n.detach(),setTimeout(function(){location.hash=e,t&&r&&setTimeout(function(){n.attach()},1)},1)},goNamed:function(e,t,r){var o=n.link(e,t);return null===o?null:void n.go(o,r)},reload:function(){var e=location.hash.substring(1),t=n.get(e);null!==t&&n.exec(t)},attach:function(){addEventListener("hashchange",n.reload,!1),n.attached=!0},detach:function(){removeEventListener("hashchange",n.reload),n.attached=!1}};$l.ready(n.attach),r["default"]=n,t.exports=r["default"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],8:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={touchStarted:null,swipeTreshold:80,precision:30,tapCount:0,tapTreshold:200,longTapTreshold:800,tapTimer:null,pos:null,cached:null,events:{start:["touchstart","pointerdown","MSPointerDown","mousedown"],end:["touchend","pointerup","MSPointerUp","mouseup"],move:["touchmove","pointermove","MSPointerMove","mousemove"]},locatePointer:function(e){e.targetTouches&&(e=e.targetTouches[0]),n.pos=[e.pageX,e.pageY]},init:function(){for(var e=[0,navigator.msPointerEnabled?2:1,3],t=0,r=e.length;r>t;t++)$l.web.dom.setEventSingle(document,n.events.start[e[t]],n.onstart),$l.web.dom.setEventSingle(document,n.events.end[e[t]],n.onend),$l.web.dom.setEventSingle(document,n.events.move[e[t]],n.locatePointer)},onstart:function(e){n.locatePointer(e),n.cached=[n.pos[0],n.pos[1]],n.touchStarted=Date.now(),n.tapCount++;var t=function r(){return n.cached[0]>=n.pos[0]-n.precision&&n.cached[0]<=n.pos[0]+n.precision&&n.cached[1]>=n.pos[1]-n.precision&&n.cached[1]<=n.pos[1]+n.precision?null===n.touchStarted?($l.web.dom.dispatchEvent(e.target,2===n.tapCount?"dbltap":"tap",{innerEvent:e,x:n.pos[0],y:n.pos[1]}),void(n.tapCount=0)):Date.now()-n.touchStarted>n.longTapTreshold?($l.web.dom.dispatchEvent(e.target,"longtap",{innerEvent:e,x:n.pos[0],y:n.pos[1]}),n.touchStarted=null,void(n.tapCount=0)):void(n.tapTimer=setTimeout(r,n.tapTreshold)):void(n.tapCount=0)};clearTimeout(n.tapTimer),n.tapTimer=setTimeout(t,n.tapTreshold)},onend:function(e){var t=[n.pos[0]-n.cached[0],n.pos[1]-n.cached[1]],r={innerEvent:e,x:n.pos[0],y:n.pos[1],distance:{x:Math.abs(t[0]),y:Math.abs(t[1])}};n.touchStarted=null,t[0]<=-n.swipeTreshold&&$l.web.dom.dispatchEvent(e.target,"swiperight",r),t[0]>=n.swipeTreshold&&$l.web.dom.dispatchEvent(e.target,"swipeleft",r),t[1]<=-n.swipeTreshold&&$l.web.dom.dispatchEvent(e.target,"swipedown",r),t[1]>=n.swipeTreshold&&$l.web.dom.dispatchEvent(e.target,"swipeup",r)}};$l.ready(n.init),r["default"]=n,t.exports=r["default"]},{}]},{},[5]); //# sourceMappingURL=../../../build/dist/laroux.web/laroux.web.min.js.map \ No newline at end of file diff --git a/build/dist/laroux.web/laroux.web.min.js.map b/build/dist/laroux.web/laroux.web.min.js.map index d520fee..6970161 100644 --- a/build/dist/laroux.web/laroux.web.min.js.map +++ b/build/dist/laroux.web/laroux.web.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["laroux.web.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length",1,"module","_interopRequireDefault","obj","__esModule","default","Object","defineProperty","value","_larouxWebCssJs","_larouxWebCssJs2","web_anim","data","fx","interpolate","source","target","shift","easing","pos","Math","cos","PI","set","newanim","deferred","$l","promise","resolve","reject","deferredResolve","deferredReject","startTime","undefined","unit","from","object","document","body","property","documentElement","scrollTop","constructor","String","Number","push","requestAnimationFrame","onframe","setCss","getProperty","style","camelCase","remove","id","targetKey","item","hasOwnProperty","currentItem","splice","timestamp","removeKeys","step","time","reset","scrollTo","prependArray","item2","finishT","to","./laroux.web.css.js",2,"web_css","hasClass","element","className","classList","contains","addClass","elements","getAsArray","_length","add","removeClass","_length2","toggleClass","_length3","cycleClass","_length4","styleName","getComputedStyle","antiCamelCase","getPropertyValue","setProperty","properties","oldProperties","newStyleName","_length5","defaultTransition","setTransitionSingle","transition","transitions","currentTransitions","currentTransitionsArray","split","transitionProperties","indexOf","substring","found","j","trim","localeCompare","join","webkitTransition","msTransition","setTransition","_length6","show","opacity","hide","height","getPropertyCSSValue","getFloatValue","primitiveType","innerHeight","clientHeight","outerHeight","includeMargin","offsetHeight","marginTop","marginBottom","margins","ceil","width","innerWidth","clientWidth","outerWidth","offsetWidth","marginLeft","marginRight","top","getBoundingClientRect","left","scrollLeft","aboveTheTop","bottom","belowTheFold","leftOfScreen","right","rightOfScreen","inViewport","rect",3,"global","web_dom","docprop","propName","select","selector","parent","toArray","querySelectorAll","selectByClass","getElementsByClassName","selectByTag","getElementsByTagName","selectById","getElementById","selectSingle","querySelector","attr","attributes","getAttribute","oldAttributes","attributeName","removeAttribute","setAttribute","datanames","oldDatanames","dataName","eventHistory","setEvent","eventname","callback","setEventSingle","callbackWrapper","preventDefault","event","returnValue","addEventListener","unsetEvent","i1","length1","i2","length2","removeEventListener","dispatchEvent","customEvent","createEvent","initEvent","create","html","frag","createDocumentFragment","temp","createElement","insertAdjacentHTML","firstChild","appendChild","children","elem","append","createOption","key","isDefault","option","selectByValue","options","selectedIndex","clear","hasChildNodes","removeChild","insert","position","content","prepend","replace","replaceText","textContent","cloneReturn","cloneAppend","cloneInsertAfter","cloneInsertBefore","clone","type","container","newElement","cloneNode","parentNode","insertBefore","nextSibling","loadScript","url","async","readyState","onreadystatechange","onload","src","head","Element","prototype","this","parentElement","self","window",4,"web_forms","ajaxForm","formobj","callbackBegin","dom","ajax","fetch","method","serializeFormData","then","isFormField","tagName","toUpperCase","getFormFieldValue","disabled","files","checked","setFormFieldValue","toggleFormEditing","selection","selected","lastDisabled","formdata","FormData","serialize","values","deserialize","validate","rules","fields","validation",5,"_larouxWebAnimJs","_larouxWebAnimJs2","_larouxWebDomJs","_larouxWebDomJs2","_larouxWebFormsJs","_larouxWebFormsJs2","_larouxWebKeysJs","_larouxWebKeysJs2","_larouxWebRoutesJs","_larouxWebRoutesJs2","_larouxWebTouchJs","_larouxWebTouchJs2","web","anim","css","forms","keys","routes","touch","cached","single","array","c","Array","idc","setReady","extend","./laroux.web.anim.js","./laroux.web.dom.js","./laroux.web.forms.js","./laroux.web.keys.js","./laroux.web.routes.js","./laroux.web.touch.js",6,"web_keys","keyName","keycode","toLowerCase","fromCharCode","assign","wrapper","ev","srcElement","nodeType","disableInputs","shiftKey","ctrl","ctrlKey","alt","altKey","keyCode","which",7,"web_routes","map","attached","current","regexConverter","path","sensitive","strict","regexString","concat","_","slash","format","capture","optional","name","regex","RegExp","addNamed","converted","params","get","route","match","exec","decodeURIComponent","resolved","getNamed","link","previous","args","apply","go","silent","detach","setTimeout","location","hash","attach","goNamed","reload","ready",8,"web_touch","touchStarted","swipeTreshold","precision","tapCount","tapTreshold","longTapTreshold","tapTimer","events","start","end","move","locatePointer","targetTouches","pageX","pageY","init","navigator","msPointerEnabled","onstart","onend","Date","now","innerEvent","x","y","clearTimeout","delta","distance","abs"],"mappings":"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","file":"build/dist/laroux.web/laroux.web.min.js","sourcesContent":["/**\n * laroux.js - A jquery substitute for modern browsers (laroux.web bundle)\n *\n * @version v2.2.0\n * @link https://larukedi.github.io/laroux.js\n * @license Apache-2.0\n */\n(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o currentItem.startTime + currentItem.time) {\n if (currentItem.reset === true) {\n currentItem.startTime = timestamp;\n if (currentItem.object === document.body && currentItem.property === 'scrollTop') {\n scrollTo(0, currentItem.from);\n // setTimeout(function () { scrollTo(0, currentItem.from); }, 1);\n } else {\n currentItem.object[currentItem.property] = currentItem.from;\n }\n } else {\n removeKeys = $l.prependArray(removeKeys, item);\n currentItem.deferredResolve();\n }\n }\n }\n\n for (var item2 in removeKeys) {\n if (!removeKeys.hasOwnProperty(item2)) {\n continue;\n }\n\n web_anim.data.splice(removeKeys[item2], 1);\n }\n\n if (web_anim.data.length > 0) {\n requestAnimationFrame(web_anim.onframe);\n }\n },\n\n step: function step(newanim, timestamp) {\n var finishT = newanim.startTime + newanim.time,\n shift = timestamp > finishT ? 1 : (timestamp - newanim.startTime) / newanim.time;\n\n var value = web_anim.fx.interpolate(newanim.from, newanim.to, web_anim.fx.easing(shift)) + newanim.unit;\n\n if (newanim.object === document.body && newanim.property === 'scrollTop') {\n scrollTo(0, value);\n // setTimeout(function () { scrollTo(0, value); }, 1);\n } else {\n newanim.object[newanim.property] = value;\n }\n }\n};\n\nexports['default'] = web_anim;\nmodule.exports = exports['default'];\n},{\"./laroux.web.css.js\":2}],2:[function(require,module,exports){\n/*jslint node: true */\n/*global $l, getComputedStyle, document, innerHeight, innerWidth */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nvar web_css = {\n // class features\n hasClass: function hasClass(element, className) {\n return element.classList.contains(className);\n },\n\n addClass: function addClass(element, className) {\n var elements = $l.getAsArray(element);\n\n for (var i = 0, _length = elements.length; i < _length; i++) {\n elements[i].classList.add(className);\n }\n },\n\n removeClass: function removeClass(element, className) {\n var elements = $l.getAsArray(element);\n\n for (var i = 0, _length2 = elements.length; i < _length2; i++) {\n elements[i].classList.remove(className);\n }\n },\n\n toggleClass: function toggleClass(element, className) {\n var elements = $l.getAsArray(element);\n\n for (var i = 0, _length3 = elements.length; i < _length3; i++) {\n if (elements[i].classList.contains(className)) {\n elements[i].classList.remove(className);\n } else {\n elements[i].classList.add(className);\n }\n }\n },\n\n cycleClass: function cycleClass(elements, className) {\n for (var i = 0, _length4 = elements.length; i < _length4; i++) {\n if (elements[i].classList.contains(className)) {\n elements[i].classList.remove(className);\n elements[(i + 1) % _length4].classList.add(className);\n return;\n }\n }\n },\n\n // style features\n getProperty: function getProperty(element, styleName) {\n var style = getComputedStyle(element);\n\n styleName = $l.antiCamelCase(styleName);\n\n return style.getPropertyValue(styleName);\n },\n\n setProperty: function setProperty(element, properties, value) {\n var elements = $l.getAsArray(element);\n\n if (typeof properties === 'string') {\n var oldProperties = properties;\n properties = {};\n properties[oldProperties] = value;\n }\n\n for (var styleName in properties) {\n if (!properties.hasOwnProperty(styleName)) {\n continue;\n }\n\n var newStyleName = $l.camelCase(styleName);\n\n for (var i = 0, _length5 = elements.length; i < _length5; i++) {\n elements[i].style[newStyleName] = properties[styleName];\n }\n }\n },\n\n // transition features\n defaultTransition: '2s ease',\n\n setTransitionSingle: function setTransitionSingle(element, transition) {\n var transitions = $l.getAsArray(transition),\n style = getComputedStyle(element),\n currentTransitions = style.getPropertyValue('transition') || style.getPropertyValue('-webkit-transition') || style.getPropertyValue('-ms-transition') || '',\n currentTransitionsArray = undefined;\n\n if (currentTransitions.length > 0) {\n currentTransitionsArray = currentTransitions.split(',');\n } else {\n currentTransitionsArray = [];\n }\n\n for (var item in transitions) {\n if (!transitions.hasOwnProperty(item)) {\n continue;\n }\n\n var styleName = undefined,\n transitionProperties = undefined,\n pos = transitions[item].indexOf(' ');\n\n if (pos !== -1) {\n styleName = transitions[item].substring(0, pos);\n transitionProperties = transitions[item].substring(pos + 1);\n } else {\n styleName = transitions[item];\n transitionProperties = web_css.defaultTransition;\n }\n\n var found = false;\n for (var j = 0; j < currentTransitionsArray.length; j++) {\n if (currentTransitionsArray[j].trim().localeCompare(styleName) === 0) {\n currentTransitionsArray[j] = styleName + ' ' + transitionProperties;\n found = true;\n break;\n }\n }\n\n if (!found) {\n currentTransitionsArray.push(styleName + ' ' + transitionProperties);\n }\n }\n\n var value = currentTransitionsArray.join(', ');\n\n element.style.transition = value;\n element.style.webkitTransition = value;\n element.style.msTransition = value;\n },\n\n setTransition: function setTransition(element, transition) {\n var elements = $l.getAsArray(element);\n\n for (var i = 0, _length6 = elements.length; i < _length6; i++) {\n web_css.setTransitionSingle(elements[i], transition);\n }\n },\n\n show: function show(element, transitionProperties) {\n if (transitionProperties !== undefined) {\n web_css.setTransition(element, 'opacity ' + transitionProperties);\n } else {\n web_css.setTransition(element, 'opacity');\n }\n\n web_css.setProperty(element, { opacity: 1 });\n },\n\n hide: function hide(element, transitionProperties) {\n if (transitionProperties !== undefined) {\n web_css.setTransition(element, 'opacity ' + transitionProperties);\n } else {\n web_css.setTransition(element, 'opacity');\n }\n\n web_css.setProperty(element, { opacity: 0 });\n },\n\n // measurement features\n // height of element without padding, margin and border\n height: function height(element) {\n var style = getComputedStyle(element),\n height = style.getPropertyCSSValue('height');\n\n return height.getFloatValue(height.primitiveType);\n },\n\n // height of element with padding but without margin and border\n innerHeight: function innerHeight(element) {\n return element.clientHeight;\n },\n\n // height of element with padding and border but margin optional\n outerHeight: function outerHeight(element, includeMargin) {\n if (includeMargin || false) {\n return element.offsetHeight;\n }\n\n var style = getComputedStyle(element),\n marginTop = style.getPropertyCSSValue('margin-top'),\n marginBottom = style.getPropertyCSSValue('margin-bottom'),\n margins = marginTop.getFloatValue(marginTop.primitiveType) + marginBottom.getFloatValue(marginBottom.primitiveType);\n\n return Math.ceil(element.offsetHeight + margins);\n },\n\n // width of element without padding, margin and border\n width: function width(element) {\n var style = getComputedStyle(element),\n height = style.getPropertyCSSValue('width');\n\n return height.getFloatValue(height.primitiveType);\n },\n\n // width of element with padding but without margin and border\n innerWidth: function innerWidth(element) {\n return element.clientWidth;\n },\n\n // width of element with padding and border but margin optional\n outerWidth: function outerWidth(element, includeMargin) {\n if (includeMargin || false) {\n return element.offsetWidth;\n }\n\n var style = getComputedStyle(element),\n marginLeft = style.getPropertyCSSValue('margin-left'),\n marginRight = style.getPropertyCSSValue('margin-right'),\n margins = marginLeft.getFloatValue(marginLeft.primitiveType) + marginRight.getFloatValue(marginRight.primitiveType);\n\n return Math.ceil(element.offsetWidth + margins);\n },\n\n top: function top(element) {\n return element.getBoundingClientRect().top + (document.documentElement && document.documentElement.scrollTop || document.body.scrollTop);\n },\n\n left: function left(element) {\n return element.getBoundingClientRect().left + (document.documentElement && document.documentElement.scrollLeft || document.body.scrollLeft);\n },\n\n aboveTheTop: function aboveTheTop(element) {\n return element.getBoundingClientRect().bottom <= 0;\n },\n\n belowTheFold: function belowTheFold(element) {\n return element.getBoundingClientRect().top > innerHeight;\n },\n\n leftOfScreen: function leftOfScreen(element) {\n return element.getBoundingClientRect().right <= 0;\n },\n\n rightOfScreen: function rightOfScreen(element) {\n return element.getBoundingClientRect().left > innerWidth;\n },\n\n inViewport: function inViewport(element) {\n var rect = element.getBoundingClientRect();\n\n return !(rect.bottom <= 0 || rect.top > innerHeight || rect.right <= 0 || rect.left > innerWidth);\n }\n};\n\nexports['default'] = web_css;\nmodule.exports = exports['default'];\n},{}],3:[function(require,module,exports){\n(function (global){\n/*jslint node: true */\n/*global $l, document, event, Element */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nvar web_dom = {\n docprop: function docprop(propName) {\n return document.documentElement.classList.contains(propName);\n },\n\n select: function select(selector, parent) {\n return $l.toArray((parent || document).querySelectorAll(selector));\n },\n\n selectByClass: function selectByClass(selector, parent) {\n return $l.toArray((parent || document).getElementsByClassName(selector));\n },\n\n selectByTag: function selectByTag(selector, parent) {\n return $l.toArray((parent || document).getElementsByTagName(selector));\n },\n\n selectById: function selectById(selector, parent) {\n return (parent || document).getElementById(selector);\n },\n\n selectSingle: function selectSingle(selector, parent) {\n return (parent || document).querySelector(selector);\n },\n\n attr: function attr(element, attributes, value) {\n if (value === undefined && attributes.constructor !== Object) {\n return element.getAttribute(attributes);\n }\n\n var elements = $l.getAsArray(element);\n if (typeof attributes === 'string') {\n var oldAttributes = attributes;\n attributes = {};\n attributes[oldAttributes] = value;\n }\n\n for (var attributeName in attributes) {\n if (!attributes.hasOwnProperty(attributeName)) {\n continue;\n }\n\n for (var i = 0, _length = elements.length; i < _length; i++) {\n if (attributes[attributeName] === null) {\n element.removeAttribute(attributeName);\n } else {\n element.setAttribute(attributeName, attributes[attributeName]);\n }\n }\n }\n },\n\n data: function data(element, datanames, value) {\n if (value === undefined && datanames.constructor !== Object) {\n return element.getAttribute('data-' + datanames);\n }\n\n var elements = $l.getAsArray(element);\n if (typeof datanames === 'string') {\n var oldDatanames = datanames;\n datanames = {};\n datanames[oldDatanames] = value;\n }\n\n for (var dataName in datanames) {\n if (!datanames.hasOwnProperty(dataName)) {\n continue;\n }\n\n for (var i = 0, _length2 = elements.length; i < _length2; i++) {\n if (datanames[dataName] === null) {\n element.removeAttribute('data-' + dataName);\n } else {\n element.setAttribute('data-' + dataName, datanames[dataName]);\n }\n }\n }\n },\n\n eventHistory: [],\n setEvent: function setEvent(element, eventname, callback) {\n var elements = $l.getAsArray(element);\n\n for (var i = 0, _length3 = elements.length; i < _length3; i++) {\n web_dom.setEventSingle(elements[i], eventname, callback);\n }\n },\n\n setEventSingle: function setEventSingle(element, eventname, callback) {\n var callbackWrapper = function callbackWrapper(e) {\n if (callback(e, element) === false) {\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n event.returnValue = false;\n }\n }\n };\n\n web_dom.eventHistory.push({ element: element, eventname: eventname, callback: callback, callbackWrapper: callbackWrapper });\n element.addEventListener(eventname, callbackWrapper, false);\n },\n\n unsetEvent: function unsetEvent(element, eventname, callback) {\n var elements = $l.getAsArray(element);\n\n for (var i1 = 0, length1 = elements.length; i1 < length1; i1++) {\n for (var i2 = 0, length2 = web_dom.eventHistory.length; i2 < length2; i2++) {\n var item = web_dom.eventHistory[i2];\n\n if (item === undefined) {\n continue;\n }\n\n if (item.element !== elements[i1]) {\n continue;\n }\n\n if (eventname !== undefined && item.eventname !== eventname) {\n continue;\n }\n\n if (callback !== undefined && item.callback !== callback) {\n continue;\n }\n\n item.element.removeEventListener(item.eventname, item.callbackWrapper, false);\n delete web_dom.eventHistory[i2];\n }\n }\n },\n\n dispatchEvent: function dispatchEvent(element, eventname, data) {\n var customEvent = document.createEvent('Event');\n for (var item in data) {\n if (!data.hasOwnProperty(item)) {\n continue;\n }\n\n customEvent[item] = data[item];\n }\n\n customEvent.initEvent(eventname, true, true);\n element.dispatchEvent(customEvent);\n },\n\n create: function create(html) {\n var frag = document.createDocumentFragment(),\n temp = document.createElement('DIV');\n\n temp.insertAdjacentHTML('beforeend', html);\n while (temp.firstChild) {\n frag.appendChild(temp.firstChild);\n }\n\n // nulling out the reference, there is no obvious dispose method\n temp = null;\n\n return frag;\n },\n\n createElement: function createElement(element, attributes, children) {\n var elem = document.createElement(element);\n\n if (attributes !== undefined && attributes.constructor === Object) {\n for (var item in attributes) {\n if (!attributes.hasOwnProperty(item)) {\n continue;\n }\n\n elem.setAttribute(item, attributes[item]);\n }\n }\n\n if (children !== undefined) {\n if (children.constructor === Object) {\n for (var item2 in children) {\n if (!children.hasOwnProperty(item2)) {\n continue;\n }\n\n elem.setAttribute(item2, children[item2]);\n }\n } else if ( /* typeof children === 'string' && */children.length > 0) {\n web_dom.append(elem, children);\n }\n }\n\n return elem;\n },\n\n createOption: function createOption(element, key, value, isDefault) {\n /* old behaviour, does not support optgroups as parents.\n let count = element.options.length;\n element.options[count] = new Option(value, key);\n if (isDefault === true) {\n element.options.selectedIndex = count - 1;\n }\n */\n\n var option = document.createElement('OPTION');\n option.setAttribute('value', key);\n if (isDefault === true) {\n option.setAttribute('checked', 'checked');\n }\n\n web_dom.append(option, value);\n element.appendChild(option);\n },\n\n selectByValue: function selectByValue(element, value) {\n for (var i = 0, _length4 = element.options.length; i < _length4; i++) {\n if (element.options[i].getAttribute('value') == value) {\n element.selectedIndex = i;\n break;\n }\n }\n }, /*,\n // TODO: it's redundant for now\n loadImage: function () {\n let images = [];\n for (let i = 0, length = arguments.length; i < length; i++) {\n let image = document.createElement('IMG');\n image.setAttribute('src', arguments[i]);\n images.push(image);\n }\n return images;\n },\n loadAsyncStyle: function (path, triggerName, async) {\n let elem = document.createElement('LINK');\n elem.type = 'text/css';\n elem.async = (async !== undefined) ? async : true;\n elem.href = path;\n elem.rel = 'stylesheet';\n let loaded = false;\n elem.onload = elem.onreadystatechange = function () {\n if ((elem.readyState && elem.readyState !== 'complete' && elem.readyState !== 'loaded') || loaded) {\n return false;\n }\n elem.onload = elem.onreadystatechange = null;\n loaded = true;\n if (triggerName) {\n if (typeof triggerName === 'function') {\n triggerName();\n } else {\n triggers.ontrigger(triggerName);\n }\n }\n };\n let head = document.getElementsByTagName('head')[0];\n head.appendChild(elem);\n },*/\n\n clear: function clear(element) {\n while (element.hasChildNodes()) {\n element.removeChild(element.firstChild);\n }\n },\n\n insert: function insert(element, position, content) {\n element.insertAdjacentHTML(position, content);\n },\n\n prepend: function prepend(element, content) {\n element.insertAdjacentHTML('afterbegin', content);\n },\n\n append: function append(element, content) {\n element.insertAdjacentHTML('beforeend', content);\n },\n\n replace: function replace(element, content) {\n web_dom.clear(element);\n element.insertAdjacentHTML('afterbegin', content);\n },\n\n replaceText: function replaceText(element, content) {\n // web_dom.clear(element);\n element.textContent = content;\n },\n\n remove: function remove(element) {\n element.remove();\n },\n\n cloneReturn: 0,\n cloneAppend: 1,\n cloneInsertAfter: 2,\n cloneInsertBefore: 3,\n\n clone: function clone(element, type, container, target) {\n var newElement = element.cloneNode(true);\n\n if (container === undefined) {\n container = element.parentNode;\n }\n if (target === undefined) {\n target = element;\n }\n\n if (type !== undefined && type != web_dom.cloneReturn) {\n if (type == web_dom.cloneAppend) {\n container.appendChild(newElement);\n } else if (type == web_dom.cloneInsertAfter) {\n container.insertBefore(newElement, target.nextSibling);\n } else {\n // type == web_dom.cloneInsertBefore\n container.insertBefore(newElement, target);\n }\n }\n\n return newElement;\n },\n\n loadScript: function loadScript(url, async) {\n return new $l.promise(function (resolve, reject) {\n var elem = document.createElement('script');\n\n if (async !== undefined) {\n elem.async = async;\n }\n\n if (elem.readyState !== undefined) {\n elem.onreadystatechange = function () {\n if (elem.readyState in ['loaded', 'complete']) {\n elem.onreadystatechange = null;\n resolve(elem);\n }\n };\n } else {\n elem.onload = function () {\n resolve(elem);\n };\n }\n\n elem.src = url;\n\n var head = document.getElementsByTagName('head')[0];\n head.appendChild(elem);\n });\n } /*,\n // TODO: it's redundant for now\n applyOperations: function (element, operations) {\n for (let operation in operations) {\n if (!operations.hasOwnProperty(operation)) {\n continue;\n }\n for (let binding in operations[operation]) {\n if (!operations[operation].hasOwnProperty(binding)) {\n continue;\n }\n let value = operations[operation][binding];\n switch (operation) {\n case 'setprop':\n if (binding.substring(0, 1) === '_') {\n element.setAttribute(binding.substring(1), value);\n continue;\n }\n if (binding === 'content') {\n web_dom.replace(element, value);\n continue;\n }\n break;\n case 'addprop':\n if (binding.substring(0, 1) === '_') {\n element.setAttribute(binding.substring(1), element.getAttribute(binding.substring(1)) + value);\n continue;\n }\n if (binding === 'content') {\n web_dom.append(element, value);\n continue;\n }\n break;\n case 'removeprop':\n if (value.substring(0, 1) === '_') {\n element.removeAttribute(value.substring(1));\n continue;\n }\n if (value === 'content') {\n web_dom.clear(element);\n continue;\n }\n break;\n case 'addclass':\n css.addClass(element, value);\n break;\n case 'removeclass':\n css.removeClass(element, value);\n break;\n case 'addstyle':\n css.setProperty(element, binding, value);\n break;\n case 'removestyle':\n css.setProperty(element, value, 'inherit !important');\n break;\n case 'repeat':\n break;\n default:\n console.log(operation);\n }\n }\n }\n }*/\n};\n\n// a fix for Internet Explorer\nif ('Element' in global) {\n if (Element.prototype.remove === undefined) {\n Element.prototype.remove = function () {\n if (this.parentElement !== null) {\n this.parentElement.removeChild(this);\n }\n };\n }\n}\n\nexports['default'] = web_dom;\nmodule.exports = exports['default'];\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],4:[function(require,module,exports){\n/*jslint node: true */\n/*global $l, FormData */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nvar web_forms = {\n ajaxForm: function ajaxForm(formobj, callback, callbackBegin) {\n $l.dom.setEvent(formobj, 'submit', function () {\n if (callbackBegin !== undefined) {\n callbackBegin();\n }\n\n var promise = $l.ajax.fetch(formobj.getAttribute('action'), {\n method: 'POST',\n body: web_forms.serializeFormData(formobj)\n });\n\n if (callback !== undefined) {\n promise.then(callback);\n }\n\n return false;\n });\n },\n\n isFormField: function isFormField(element) {\n if (element.tagName === 'SELECT') {\n return true;\n }\n\n if (element.tagName === 'INPUT') {\n var type = element.getAttribute('type').toUpperCase();\n\n if (type === 'FILE' || type === 'CHECKBOX' || type === 'RADIO' || type === 'TEXT' || type === 'PASSWORD' || type === 'HIDDEN') {\n return true;\n }\n\n return false;\n }\n\n if (element.tagName === 'TEXTAREA') {\n return true;\n }\n\n return false;\n },\n\n getFormFieldValue: function getFormFieldValue(element) {\n if (element.disabled === true) {\n return null;\n }\n\n if (element.tagName === 'SELECT') {\n return element.options[element.selectedIndex].value;\n }\n\n if (element.tagName === 'INPUT') {\n var type = element.getAttribute('type').toUpperCase();\n\n if (type === 'FILE') {\n return element.files[0];\n }\n\n if (type === 'CHECKBOX' || type === 'RADIO') {\n if (element.checked) {\n return element.value;\n }\n\n return null;\n }\n\n if (type === 'TEXT' || type === 'PASSWORD' || type === 'HIDDEN') {\n return element.value;\n }\n\n return null;\n }\n\n if (element.tagName === 'TEXTAREA') {\n return element.value;\n }\n\n return null;\n },\n\n setFormFieldValue: function setFormFieldValue(element, value) {\n if (element.disabled === true) {\n return;\n }\n\n if (element.tagName === 'SELECT') {\n for (var option in element.options) {\n if (!element.options.hasOwnProperty(option)) {\n continue;\n }\n\n if (element.options[option].value == value) {\n element.selectedIndex = option;\n return;\n }\n }\n\n return;\n }\n\n if (element.tagName === 'INPUT') {\n var type = element.getAttribute('type').toUpperCase();\n\n if (type === 'FILE') {\n element.files[0] = value;\n return;\n }\n\n if (type === 'CHECKBOX' || type === 'RADIO') {\n if (value === true || value == element.value) {\n element.checked = true;\n }\n\n return;\n }\n\n if (type === 'TEXT' || type === 'PASSWORD' || type === 'HIDDEN') {\n element.value = value;\n return;\n }\n\n return;\n }\n\n if (element.tagName === 'TEXTAREA') {\n element.value = value;\n return;\n }\n },\n\n toggleFormEditing: function toggleFormEditing(formobj, value) {\n var selection = formobj.querySelectorAll('*[name]');\n\n if (value === undefined) {\n if (formobj.getAttribute('data-last-enabled') === null) {\n formobj.setAttribute('data-last-enabled', 'enabled');\n value = false;\n } else {\n formobj.removeAttribute('data-last-enabled');\n value = true;\n }\n }\n\n for (var selected = 0, _length = selection.length; selected < _length; selected++) {\n if (!web_forms.isFormField(selection[selected])) {\n continue;\n }\n\n var lastDisabled = selection[selected].getAttribute('data-last-disabled');\n if (!value) {\n if (lastDisabled === null) {\n if (selection[selected].getAttribute('disabled') !== null) {\n selection[selected].setAttribute('data-last-disabled', 'disabled');\n }\n }\n\n selection[selected].setAttribute('disabled', 'disabled');\n continue;\n }\n\n if (lastDisabled !== null) {\n selection[selected].removeAttribute('data-last-disabled');\n } else {\n selection[selected].removeAttribute('disabled');\n }\n }\n },\n\n serializeFormData: function serializeFormData(formobj) {\n var formdata = new FormData();\n var selection = formobj.querySelectorAll('*[name]');\n\n for (var selected = 0, _length2 = selection.length; selected < _length2; selected++) {\n var value = web_forms.getFormFieldValue(selection[selected]);\n\n if (value !== null) {\n formdata.append(selection[selected].getAttribute('name'), value);\n }\n }\n\n return formdata;\n },\n\n serialize: function serialize(formobj) {\n var values = {};\n var selection = formobj.querySelectorAll('*[name]');\n\n for (var selected = 0, _length3 = selection.length; selected < _length3; selected++) {\n var value = web_forms.getFormFieldValue(selection[selected]);\n\n if (value !== null) {\n values[selection[selected].getAttribute('name')] = value;\n }\n }\n\n return values;\n },\n\n deserialize: function deserialize(formobj, data) {\n var selection = formobj.querySelectorAll('*[name]');\n\n for (var selected = 0, _length4 = selection.length; selected < _length4; selected++) {\n web_forms.setFormFieldValue(selection[selected], data[selection[selected].getAttribute('name')]);\n }\n },\n\n validate: function validate(formobj, rules) {\n var fields = web_forms.serialize(formobj);\n\n return $l.validation.validate(fields, rules);\n }\n};\n\nexports['default'] = web_forms;\nmodule.exports = exports['default'];\n},{}],5:[function(require,module,exports){\n(function (global){\n/*jslint node: true */\n/*global $l, document */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _larouxWebAnimJs = require('./laroux.web.anim.js');\n\nvar _larouxWebAnimJs2 = _interopRequireDefault(_larouxWebAnimJs);\n\nvar _larouxWebCssJs = require('./laroux.web.css.js');\n\nvar _larouxWebCssJs2 = _interopRequireDefault(_larouxWebCssJs);\n\nvar _larouxWebDomJs = require('./laroux.web.dom.js');\n\nvar _larouxWebDomJs2 = _interopRequireDefault(_larouxWebDomJs);\n\nvar _larouxWebFormsJs = require('./laroux.web.forms.js');\n\nvar _larouxWebFormsJs2 = _interopRequireDefault(_larouxWebFormsJs);\n\nvar _larouxWebKeysJs = require('./laroux.web.keys.js');\n\nvar _larouxWebKeysJs2 = _interopRequireDefault(_larouxWebKeysJs);\n\nvar _larouxWebRoutesJs = require('./laroux.web.routes.js');\n\nvar _larouxWebRoutesJs2 = _interopRequireDefault(_larouxWebRoutesJs);\n\nvar _larouxWebTouchJs = require('./laroux.web.touch.js');\n\nvar _larouxWebTouchJs2 = _interopRequireDefault(_larouxWebTouchJs);\n\nvar web = {\n anim: _larouxWebAnimJs2['default'],\n css: _larouxWebCssJs2['default'],\n dom: _larouxWebDomJs2['default'],\n forms: _larouxWebFormsJs2['default'],\n keys: _larouxWebKeysJs2['default'],\n routes: _larouxWebRoutesJs2['default'],\n touch: _larouxWebTouchJs2['default'],\n\n cached: {\n single: {},\n array: {},\n id: {}\n },\n\n c: function c(selector) {\n if (selector.constructor === Array) {\n return web.cached.array[selector] || (web.cached.array[selector] = $l.toArray(document.querySelectorAll(selector)));\n }\n\n return web.cached.single[selector] || (web.cached.single[selector] = document.querySelector(selector));\n },\n\n id: function id(selector, parent) {\n return (parent || document).getElementById(selector);\n },\n\n idc: function idc(selector) {\n return web.cached.id[selector] || (web.cached.id[selector] = document.getElementById(selector));\n }\n};\n\nif ('document' in global) {\n document.addEventListener('DOMContentLoaded', $l.setReady);\n}\n\n// $l.extendNs('web', web);\n$l.extend(web);\n\nexports['default'] = web;\nmodule.exports = exports['default'];\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"./laroux.web.anim.js\":1,\"./laroux.web.css.js\":2,\"./laroux.web.dom.js\":3,\"./laroux.web.forms.js\":4,\"./laroux.web.keys.js\":6,\"./laroux.web.routes.js\":7,\"./laroux.web.touch.js\":8}],6:[function(require,module,exports){\n/*jslint node: true */\n/*global $l, event, document */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _larouxWebFormsJs = require('./laroux.web.forms.js');\n\nvar _larouxWebFormsJs2 = _interopRequireDefault(_larouxWebFormsJs);\n\nvar web_keys = {\n keyName: function keyName(keycode) {\n keycode = keycode.toLowerCase();\n\n switch (keycode) {\n case 'backspace':\n return 8;\n\n case 'tab':\n return 9;\n\n case 'enter':\n case 'return':\n return 13;\n\n case 'esc':\n case 'escape':\n return 27;\n\n case 'space':\n return 32;\n\n case 'pgup':\n return 33;\n\n case 'pgdn':\n return 34;\n\n case 'end':\n return 35;\n\n case 'home':\n return 36;\n\n case 'left':\n return 37;\n\n case 'up':\n return 38;\n\n case 'right':\n return 39;\n\n case 'down':\n return 40;\n\n case 'insert':\n return 45;\n\n case 'delete':\n return 46;\n\n case 'f1':\n return 112;\n\n case 'f2':\n return 113;\n\n case 'f3':\n return 114;\n\n case 'f4':\n return 115;\n\n case 'f5':\n return 116;\n\n case 'f6':\n return 117;\n\n case 'f7':\n return 118;\n\n case 'f8':\n return 119;\n\n case 'f9':\n return 120;\n\n case 'f10':\n return 121;\n\n case 'f11':\n return 122;\n\n case 'f12':\n return 123;\n\n case ',':\n return 188;\n\n case '.':\n return 190;\n }\n\n return String.fromCharCode(keycode);\n },\n\n // {target, key, shift, ctrl, alt, disableInputs, callback}\n assign: function assign(options) {\n var wrapper = function wrapper(ev) {\n if (!ev) {\n ev = event;\n }\n\n var element = ev.target || ev.srcElement;\n if (element.nodeType === 3 || element.nodeType === 11) {\n // element.nodeType === 1 ||\n element = element.parentNode;\n }\n\n if (options.disableInputs && _larouxWebFormsJs2['default'].isFormField(element)) {\n return;\n }\n\n if (options.shift && !ev.shiftKey) {\n return;\n }\n\n if (options.ctrl && !ev.ctrlKey) {\n return;\n }\n\n if (options.alt && !ev.altKey) {\n return;\n }\n\n var key = web_keys.keyName(options.key);\n if (key !== (ev.keyCode || ev.which)) {\n return;\n }\n\n options.callback(ev);\n\n return false;\n };\n\n $l.dom.setEvent(options.target || document, 'keydown', wrapper);\n }\n};\n\nexports['default'] = web_keys;\nmodule.exports = exports['default'];\n},{\"./laroux.web.forms.js\":4}],7:[function(require,module,exports){\n(function (global){\n/*jslint node: true */\n/*global $l, location, addEventListener, removeEventListener */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n// routes - partially taken from 'routie' project\n// can be found at: https://github.com/jgallen23/routie\n// see laroux.web.routes.LICENSE file for details\nvar web_routes = {\n map: {},\n attached: false,\n current: null,\n\n regexConverter: function regexConverter(path, sensitive, strict) {\n var keys = [],\n regexString = path.concat(strict ? '' : '/?').replace(/\\/\\(/g, '(?:/').replace(/\\+/g, '__plus__').replace(/(\\/)?(\\.)?:(\\w+)(?:(\\(.*?\\)))?(\\?)?/g, function (_, slash, format, key, capture, optional) {\n keys.push({ name: key, optional: !!optional });\n slash = slash || '';\n\n return '' + (optional ? '' : slash) + '(?:' + (optional ? slash : '') + (format || '') + (capture || (format && '([^/.]+?)' || '([^/]+?)')) + ')' + (optional || '');\n }).replace(/([\\/.])/g, '\\\\$1').replace(/__plus__/g, '(.+)').replace(/\\*/g, '(.*)');\n\n return {\n regex: new RegExp('^' + regexString + '$', sensitive ? '' : 'i'),\n keys: keys\n };\n },\n\n add: function add(path, callback) {\n web_routes.addNamed(null, path, callback);\n },\n\n addNamed: function addNamed(name, path, callback) {\n if (!(path in web_routes.map)) {\n var converted = web_routes.regexConverter(path);\n\n web_routes.map[path] = {\n name: name,\n callback: callback,\n params: {},\n keys: converted.keys,\n regex: converted.regex\n };\n } else {\n web_routes.map[path].callback = callback;\n }\n },\n\n get: function get(path) {\n for (var item in web_routes.map) {\n if (!web_routes.map.hasOwnProperty(item)) {\n continue;\n }\n\n var route = web_routes.map[item],\n match = route.regex.exec(path);\n\n if (!match) {\n continue;\n }\n\n var params = {};\n for (var i = 1, _length = match.length; i < _length; i++) {\n var key = route.keys[i - 1];\n\n if (key !== undefined) {\n params[key.name] = typeof match[i] === 'string' ? decodeURIComponent(match[i]) : match[i];\n }\n }\n\n return {\n route: item,\n resolved: path,\n params: params,\n callback: route.callback\n };\n }\n\n return null;\n },\n\n getNamed: function getNamed(name, params) {\n for (var item in web_routes.map) {\n if (!web_routes.map.hasOwnProperty(item)) {\n continue;\n }\n\n var route = web_routes.map[item],\n path = item;\n\n for (var i = 0, _length2 = route.keys.length; i < _length2; i++) {\n var key = route.keys[i];\n\n path = path.replace(':' + key.name, params[key.name] || '');\n }\n\n if (route.name == name) {\n return {\n route: item,\n resolved: path,\n params: params,\n callback: route.callback\n };\n }\n }\n\n return null;\n },\n\n link: function link(name, params) {\n var route = web_routes.getNamed(name, params);\n\n if (route === null) {\n return null;\n }\n\n return route.resolved;\n },\n\n exec: function exec(route) {\n var previous = web_routes.current,\n args = $l.map(route.params, function (value) {\n return value;\n });\n\n web_routes.current = route;\n args.push({\n previous: previous,\n current: web_routes.current\n });\n\n return route.callback.apply(global, args);\n },\n\n go: function go(path, silent) {\n var attached = web_routes.attached;\n\n if (silent && attached) {\n web_routes.detach();\n }\n\n setTimeout(function () {\n location.hash = path;\n\n if (silent && attached) {\n setTimeout(function () {\n web_routes.attach();\n }, 1);\n }\n }, 1);\n },\n\n goNamed: function goNamed(name, params, silent) {\n var path = web_routes.link(name, params);\n\n if (path === null) {\n return null;\n }\n\n web_routes.go(path, silent);\n },\n\n reload: function reload() {\n var hash = location.hash.substring(1),\n route = web_routes.get(hash);\n\n if (route === null) {\n return;\n }\n\n web_routes.exec(route);\n },\n\n attach: function attach() {\n addEventListener('hashchange', web_routes.reload, false);\n web_routes.attached = true;\n },\n\n detach: function detach() {\n removeEventListener('hashchange', web_routes.reload);\n web_routes.attached = false;\n }\n};\n\n$l.ready(web_routes.attach);\n\nexports['default'] = web_routes;\nmodule.exports = exports['default'];\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],8:[function(require,module,exports){\n/*jslint node: true */\n/*global $l, document, navigator */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n// touch - partially taken from 'tocca.js' project\n// can be found at: https://github.com/GianlucaGuarini/Tocca.js\n// see laroux.web.touch.LICENSE file for details\nvar web_touch = {\n touchStarted: null,\n swipeTreshold: 80,\n precision: 30,\n tapCount: 0,\n tapTreshold: 200,\n longTapTreshold: 800,\n tapTimer: null,\n pos: null,\n cached: null,\n\n events: {\n start: ['touchstart', 'pointerdown', 'MSPointerDown', 'mousedown'],\n end: ['touchend', 'pointerup', 'MSPointerUp', 'mouseup'],\n move: ['touchmove', 'pointermove', 'MSPointerMove', 'mousemove']\n },\n\n locatePointer: function locatePointer(event) {\n if (event.targetTouches) {\n event = event.targetTouches[0];\n }\n\n web_touch.pos = [event.pageX, event.pageY];\n },\n\n init: function init() {\n var events = [0, navigator.msPointerEnabled ? 2 : 1, 3];\n\n for (var i = 0, _length = events.length; i < _length; i++) {\n $l.dom.setEventSingle(document, web_touch.events.start[events[i]], web_touch.onstart);\n $l.dom.setEventSingle(document, web_touch.events.end[events[i]], web_touch.onend);\n $l.dom.setEventSingle(document, web_touch.events.move[events[i]], web_touch.locatePointer);\n }\n },\n\n onstart: function onstart(event) {\n web_touch.locatePointer(event);\n web_touch.cached = [web_touch.pos[0], web_touch.pos[1]];\n web_touch.touchStarted = Date.now();\n /*jslint plusplus: true */\n web_touch.tapCount++;\n\n var callback = function callback() {\n if (web_touch.cached[0] >= web_touch.pos[0] - web_touch.precision && web_touch.cached[0] <= web_touch.pos[0] + web_touch.precision && web_touch.cached[1] >= web_touch.pos[1] - web_touch.precision && web_touch.cached[1] <= web_touch.pos[1] + web_touch.precision) {\n if (web_touch.touchStarted === null) {\n $l.dom.dispatchEvent(event.target, web_touch.tapCount === 2 ? 'dbltap' : 'tap', {\n innerEvent: event,\n x: web_touch.pos[0],\n y: web_touch.pos[1]\n });\n\n web_touch.tapCount = 0;\n return;\n }\n\n if (Date.now() - web_touch.touchStarted > web_touch.longTapTreshold) {\n $l.dom.dispatchEvent(event.target, 'longtap', {\n innerEvent: event,\n x: web_touch.pos[0],\n y: web_touch.pos[1]\n });\n\n web_touch.touchStarted = null;\n web_touch.tapCount = 0;\n return;\n }\n\n web_touch.tapTimer = setTimeout(callback, web_touch.tapTreshold);\n return;\n }\n\n web_touch.tapCount = 0;\n };\n\n clearTimeout(web_touch.tapTimer);\n web_touch.tapTimer = setTimeout(callback, web_touch.tapTreshold);\n },\n\n onend: function onend(event) {\n var delta = [web_touch.pos[0] - web_touch.cached[0], web_touch.pos[1] - web_touch.cached[1]],\n data = {\n innerEvent: event,\n x: web_touch.pos[0],\n y: web_touch.pos[1],\n distance: {\n x: Math.abs(delta[0]),\n y: Math.abs(delta[1])\n }\n };\n\n web_touch.touchStarted = null;\n\n if (delta[0] <= -web_touch.swipeTreshold) {\n $l.dom.dispatchEvent(event.target, 'swiperight', data);\n }\n\n if (delta[0] >= web_touch.swipeTreshold) {\n $l.dom.dispatchEvent(event.target, 'swipeleft', data);\n }\n\n if (delta[1] <= -web_touch.swipeTreshold) {\n $l.dom.dispatchEvent(event.target, 'swipedown', data);\n }\n\n if (delta[1] >= web_touch.swipeTreshold) {\n $l.dom.dispatchEvent(event.target, 'swipeup', data);\n }\n }\n};\n\n$l.ready(web_touch.init);\n\nexports['default'] = web_touch;\nmodule.exports = exports['default'];\n},{}]},{},[5]);\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["laroux.web.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length",1,"module","_interopRequireDefault","obj","__esModule","default","Object","defineProperty","value","_larouxWebCssJs","_larouxWebCssJs2","web_anim","data","fx","interpolate","source","target","shift","easing","pos","Math","cos","PI","set","newanim","deferred","$l","promise","resolve","reject","deferredResolve","deferredReject","startTime","undefined","unit","from","object","document","body","property","documentElement","scrollTop","constructor","String","Number","push","requestAnimationFrame","onframe","setCss","getProperty","style","camelCase","remove","id","targetKey","item","hasOwnProperty","currentItem","splice","timestamp","removeKeys","step","time","reset","scrollTo","prependArray","item2","finishT","to","./laroux.web.css.js",2,"web_css","hasClass","element","className","classList","contains","addClass","elements","getAsArray","_length","add","removeClass","_length2","toggleClass","_length3","cycleClass","_length4","styleName","getComputedStyle","antiCamelCase","getPropertyValue","setProperty","properties","oldProperties","newStyleName","_length5","defaultTransition","setTransitionSingle","transition","transitions","currentTransitions","currentTransitionsArray","split","transitionProperties","indexOf","substring","found","j","trim","localeCompare","join","webkitTransition","msTransition","setTransition","_length6","show","opacity","hide","height","getPropertyCSSValue","getFloatValue","primitiveType","innerHeight","clientHeight","outerHeight","includeMargin","offsetHeight","marginTop","marginBottom","margins","ceil","width","innerWidth","clientWidth","outerWidth","offsetWidth","marginLeft","marginRight","top","getBoundingClientRect","left","scrollLeft","aboveTheTop","bottom","belowTheFold","leftOfScreen","right","rightOfScreen","inViewport","rect",3,"global","web_dom","docprop","propName","select","selector","parent","toArray","querySelectorAll","selectByClass","getElementsByClassName","selectByTag","getElementsByTagName","selectById","getElementById","selectSingle","querySelector","attr","attributes","getAttribute","oldAttributes","attributeName","removeAttribute","setAttribute","datanames","oldDatanames","dataName","eventHistory","setEvent","eventname","callback","setEventSingle","callbackWrapper","preventDefault","event","returnValue","addEventListener","unsetEvent","i1","length1","i2","length2","removeEventListener","dispatchEvent","customEvent","createEvent","initEvent","create","html","frag","createDocumentFragment","temp","createElement","insertAdjacentHTML","firstChild","appendChild","children","elem","append","createOption","key","isDefault","option","selectByValue","options","selectedIndex","clear","hasChildNodes","removeChild","insert","position","content","prepend","replace","replaceText","textContent","cloneReturn","cloneAppend","cloneInsertAfter","cloneInsertBefore","clone","type","container","newElement","cloneNode","parentNode","insertBefore","nextSibling","loadScript","url","async","readyState","onreadystatechange","onload","src","head","Element","prototype","this","parentElement","self","window",4,"web_forms","ajaxForm","formobj","callbackBegin","web","dom","ajax","fetch","method","serializeFormData","then","isFormField","tagName","toUpperCase","getFormFieldValue","disabled","files","checked","setFormFieldValue","toggleFormEditing","selection","selected","lastDisabled","formdata","FormData","serialize","values","deserialize","validate","rules","fields","validation",5,"_larouxWebAnimJs","_larouxWebAnimJs2","_larouxWebDomJs","_larouxWebDomJs2","_larouxWebFormsJs","_larouxWebFormsJs2","_larouxWebKeysJs","_larouxWebKeysJs2","_larouxWebRoutesJs","_larouxWebRoutesJs2","_larouxWebTouchJs","_larouxWebTouchJs2","anim","css","forms","keys","routes","touch","cached","single","array","c","Array","idc","setReady","extendNs","./laroux.web.anim.js","./laroux.web.dom.js","./laroux.web.forms.js","./laroux.web.keys.js","./laroux.web.routes.js","./laroux.web.touch.js",6,"web_keys","keyName","keycode","toLowerCase","fromCharCode","assign","wrapper","ev","srcElement","nodeType","disableInputs","shiftKey","ctrl","ctrlKey","alt","altKey","keyCode","which",7,"web_routes","map","attached","current","regexConverter","path","sensitive","strict","regexString","concat","_","slash","format","capture","optional","name","regex","RegExp","addNamed","converted","params","get","route","match","exec","decodeURIComponent","resolved","getNamed","link","previous","args","apply","go","silent","detach","setTimeout","location","hash","attach","goNamed","reload","ready",8,"web_touch","touchStarted","swipeTreshold","precision","tapCount","tapTreshold","longTapTreshold","tapTimer","events","start","end","move","locatePointer","targetTouches","pageX","pageY","init","navigator","msPointerEnabled","onstart","onend","Date","now","innerEvent","x","y","clearTimeout","delta","distance","abs"],"mappings":"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","file":"build/dist/laroux.web/laroux.web.min.js","sourcesContent":["/**\n * laroux.js - A jquery substitute for modern browsers (laroux.web bundle)\n *\n * @version v2.2.0\n * @link https://larukedi.github.io/laroux.js\n * @license Apache-2.0\n */\n(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o currentItem.startTime + currentItem.time) {\n if (currentItem.reset === true) {\n currentItem.startTime = timestamp;\n if (currentItem.object === document.body && currentItem.property === 'scrollTop') {\n scrollTo(0, currentItem.from);\n // setTimeout(function () { scrollTo(0, currentItem.from); }, 1);\n } else {\n currentItem.object[currentItem.property] = currentItem.from;\n }\n } else {\n removeKeys = $l.prependArray(removeKeys, item);\n currentItem.deferredResolve();\n }\n }\n }\n\n for (var item2 in removeKeys) {\n if (!removeKeys.hasOwnProperty(item2)) {\n continue;\n }\n\n web_anim.data.splice(removeKeys[item2], 1);\n }\n\n if (web_anim.data.length > 0) {\n requestAnimationFrame(web_anim.onframe);\n }\n },\n\n step: function step(newanim, timestamp) {\n var finishT = newanim.startTime + newanim.time,\n shift = timestamp > finishT ? 1 : (timestamp - newanim.startTime) / newanim.time;\n\n var value = web_anim.fx.interpolate(newanim.from, newanim.to, web_anim.fx.easing(shift)) + newanim.unit;\n\n if (newanim.object === document.body && newanim.property === 'scrollTop') {\n scrollTo(0, value);\n // setTimeout(function () { scrollTo(0, value); }, 1);\n } else {\n newanim.object[newanim.property] = value;\n }\n }\n};\n\nexports['default'] = web_anim;\nmodule.exports = exports['default'];\n},{\"./laroux.web.css.js\":2}],2:[function(require,module,exports){\n/*jslint node: true */\n/*global $l, getComputedStyle, document, innerHeight, innerWidth */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nvar web_css = {\n // class features\n hasClass: function hasClass(element, className) {\n return element.classList.contains(className);\n },\n\n addClass: function addClass(element, className) {\n var elements = $l.getAsArray(element);\n\n for (var i = 0, _length = elements.length; i < _length; i++) {\n elements[i].classList.add(className);\n }\n },\n\n removeClass: function removeClass(element, className) {\n var elements = $l.getAsArray(element);\n\n for (var i = 0, _length2 = elements.length; i < _length2; i++) {\n elements[i].classList.remove(className);\n }\n },\n\n toggleClass: function toggleClass(element, className) {\n var elements = $l.getAsArray(element);\n\n for (var i = 0, _length3 = elements.length; i < _length3; i++) {\n if (elements[i].classList.contains(className)) {\n elements[i].classList.remove(className);\n } else {\n elements[i].classList.add(className);\n }\n }\n },\n\n cycleClass: function cycleClass(elements, className) {\n for (var i = 0, _length4 = elements.length; i < _length4; i++) {\n if (elements[i].classList.contains(className)) {\n elements[i].classList.remove(className);\n elements[(i + 1) % _length4].classList.add(className);\n return;\n }\n }\n },\n\n // style features\n getProperty: function getProperty(element, styleName) {\n var style = getComputedStyle(element);\n\n styleName = $l.antiCamelCase(styleName);\n\n return style.getPropertyValue(styleName);\n },\n\n setProperty: function setProperty(element, properties, value) {\n var elements = $l.getAsArray(element);\n\n if (typeof properties === 'string') {\n var oldProperties = properties;\n properties = {};\n properties[oldProperties] = value;\n }\n\n for (var styleName in properties) {\n if (!properties.hasOwnProperty(styleName)) {\n continue;\n }\n\n var newStyleName = $l.camelCase(styleName);\n\n for (var i = 0, _length5 = elements.length; i < _length5; i++) {\n elements[i].style[newStyleName] = properties[styleName];\n }\n }\n },\n\n // transition features\n defaultTransition: '2s ease',\n\n setTransitionSingle: function setTransitionSingle(element, transition) {\n var transitions = $l.getAsArray(transition),\n style = getComputedStyle(element),\n currentTransitions = style.getPropertyValue('transition') || style.getPropertyValue('-webkit-transition') || style.getPropertyValue('-ms-transition') || '',\n currentTransitionsArray = undefined;\n\n if (currentTransitions.length > 0) {\n currentTransitionsArray = currentTransitions.split(',');\n } else {\n currentTransitionsArray = [];\n }\n\n for (var item in transitions) {\n if (!transitions.hasOwnProperty(item)) {\n continue;\n }\n\n var styleName = undefined,\n transitionProperties = undefined,\n pos = transitions[item].indexOf(' ');\n\n if (pos !== -1) {\n styleName = transitions[item].substring(0, pos);\n transitionProperties = transitions[item].substring(pos + 1);\n } else {\n styleName = transitions[item];\n transitionProperties = web_css.defaultTransition;\n }\n\n var found = false;\n for (var j = 0; j < currentTransitionsArray.length; j++) {\n if (currentTransitionsArray[j].trim().localeCompare(styleName) === 0) {\n currentTransitionsArray[j] = styleName + ' ' + transitionProperties;\n found = true;\n break;\n }\n }\n\n if (!found) {\n currentTransitionsArray.push(styleName + ' ' + transitionProperties);\n }\n }\n\n var value = currentTransitionsArray.join(', ');\n\n element.style.transition = value;\n element.style.webkitTransition = value;\n element.style.msTransition = value;\n },\n\n setTransition: function setTransition(element, transition) {\n var elements = $l.getAsArray(element);\n\n for (var i = 0, _length6 = elements.length; i < _length6; i++) {\n web_css.setTransitionSingle(elements[i], transition);\n }\n },\n\n show: function show(element, transitionProperties) {\n if (transitionProperties !== undefined) {\n web_css.setTransition(element, 'opacity ' + transitionProperties);\n } else {\n web_css.setTransition(element, 'opacity');\n }\n\n web_css.setProperty(element, { opacity: 1 });\n },\n\n hide: function hide(element, transitionProperties) {\n if (transitionProperties !== undefined) {\n web_css.setTransition(element, 'opacity ' + transitionProperties);\n } else {\n web_css.setTransition(element, 'opacity');\n }\n\n web_css.setProperty(element, { opacity: 0 });\n },\n\n // measurement features\n // height of element without padding, margin and border\n height: function height(element) {\n var style = getComputedStyle(element),\n height = style.getPropertyCSSValue('height');\n\n return height.getFloatValue(height.primitiveType);\n },\n\n // height of element with padding but without margin and border\n innerHeight: function innerHeight(element) {\n return element.clientHeight;\n },\n\n // height of element with padding and border but margin optional\n outerHeight: function outerHeight(element, includeMargin) {\n if (includeMargin || false) {\n return element.offsetHeight;\n }\n\n var style = getComputedStyle(element),\n marginTop = style.getPropertyCSSValue('margin-top'),\n marginBottom = style.getPropertyCSSValue('margin-bottom'),\n margins = marginTop.getFloatValue(marginTop.primitiveType) + marginBottom.getFloatValue(marginBottom.primitiveType);\n\n return Math.ceil(element.offsetHeight + margins);\n },\n\n // width of element without padding, margin and border\n width: function width(element) {\n var style = getComputedStyle(element),\n height = style.getPropertyCSSValue('width');\n\n return height.getFloatValue(height.primitiveType);\n },\n\n // width of element with padding but without margin and border\n innerWidth: function innerWidth(element) {\n return element.clientWidth;\n },\n\n // width of element with padding and border but margin optional\n outerWidth: function outerWidth(element, includeMargin) {\n if (includeMargin || false) {\n return element.offsetWidth;\n }\n\n var style = getComputedStyle(element),\n marginLeft = style.getPropertyCSSValue('margin-left'),\n marginRight = style.getPropertyCSSValue('margin-right'),\n margins = marginLeft.getFloatValue(marginLeft.primitiveType) + marginRight.getFloatValue(marginRight.primitiveType);\n\n return Math.ceil(element.offsetWidth + margins);\n },\n\n top: function top(element) {\n return element.getBoundingClientRect().top + (document.documentElement && document.documentElement.scrollTop || document.body.scrollTop);\n },\n\n left: function left(element) {\n return element.getBoundingClientRect().left + (document.documentElement && document.documentElement.scrollLeft || document.body.scrollLeft);\n },\n\n aboveTheTop: function aboveTheTop(element) {\n return element.getBoundingClientRect().bottom <= 0;\n },\n\n belowTheFold: function belowTheFold(element) {\n return element.getBoundingClientRect().top > innerHeight;\n },\n\n leftOfScreen: function leftOfScreen(element) {\n return element.getBoundingClientRect().right <= 0;\n },\n\n rightOfScreen: function rightOfScreen(element) {\n return element.getBoundingClientRect().left > innerWidth;\n },\n\n inViewport: function inViewport(element) {\n var rect = element.getBoundingClientRect();\n\n return !(rect.bottom <= 0 || rect.top > innerHeight || rect.right <= 0 || rect.left > innerWidth);\n }\n};\n\nexports['default'] = web_css;\nmodule.exports = exports['default'];\n},{}],3:[function(require,module,exports){\n(function (global){\n/*jslint node: true */\n/*global $l, document, event, Element */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nvar web_dom = {\n docprop: function docprop(propName) {\n return document.documentElement.classList.contains(propName);\n },\n\n select: function select(selector, parent) {\n return $l.toArray((parent || document).querySelectorAll(selector));\n },\n\n selectByClass: function selectByClass(selector, parent) {\n return $l.toArray((parent || document).getElementsByClassName(selector));\n },\n\n selectByTag: function selectByTag(selector, parent) {\n return $l.toArray((parent || document).getElementsByTagName(selector));\n },\n\n selectById: function selectById(selector, parent) {\n return (parent || document).getElementById(selector);\n },\n\n selectSingle: function selectSingle(selector, parent) {\n return (parent || document).querySelector(selector);\n },\n\n attr: function attr(element, attributes, value) {\n if (value === undefined && attributes.constructor !== Object) {\n return element.getAttribute(attributes);\n }\n\n var elements = $l.getAsArray(element);\n if (typeof attributes === 'string') {\n var oldAttributes = attributes;\n attributes = {};\n attributes[oldAttributes] = value;\n }\n\n for (var attributeName in attributes) {\n if (!attributes.hasOwnProperty(attributeName)) {\n continue;\n }\n\n for (var i = 0, _length = elements.length; i < _length; i++) {\n if (attributes[attributeName] === null) {\n element.removeAttribute(attributeName);\n } else {\n element.setAttribute(attributeName, attributes[attributeName]);\n }\n }\n }\n },\n\n data: function data(element, datanames, value) {\n if (value === undefined && datanames.constructor !== Object) {\n return element.getAttribute('data-' + datanames);\n }\n\n var elements = $l.getAsArray(element);\n if (typeof datanames === 'string') {\n var oldDatanames = datanames;\n datanames = {};\n datanames[oldDatanames] = value;\n }\n\n for (var dataName in datanames) {\n if (!datanames.hasOwnProperty(dataName)) {\n continue;\n }\n\n for (var i = 0, _length2 = elements.length; i < _length2; i++) {\n if (datanames[dataName] === null) {\n element.removeAttribute('data-' + dataName);\n } else {\n element.setAttribute('data-' + dataName, datanames[dataName]);\n }\n }\n }\n },\n\n eventHistory: [],\n setEvent: function setEvent(element, eventname, callback) {\n var elements = $l.getAsArray(element);\n\n for (var i = 0, _length3 = elements.length; i < _length3; i++) {\n web_dom.setEventSingle(elements[i], eventname, callback);\n }\n },\n\n setEventSingle: function setEventSingle(element, eventname, callback) {\n var callbackWrapper = function callbackWrapper(e) {\n if (callback(e, element) === false) {\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n event.returnValue = false;\n }\n }\n };\n\n web_dom.eventHistory.push({ element: element, eventname: eventname, callback: callback, callbackWrapper: callbackWrapper });\n element.addEventListener(eventname, callbackWrapper, false);\n },\n\n unsetEvent: function unsetEvent(element, eventname, callback) {\n var elements = $l.getAsArray(element);\n\n for (var i1 = 0, length1 = elements.length; i1 < length1; i1++) {\n for (var i2 = 0, length2 = web_dom.eventHistory.length; i2 < length2; i2++) {\n var item = web_dom.eventHistory[i2];\n\n if (item === undefined) {\n continue;\n }\n\n if (item.element !== elements[i1]) {\n continue;\n }\n\n if (eventname !== undefined && item.eventname !== eventname) {\n continue;\n }\n\n if (callback !== undefined && item.callback !== callback) {\n continue;\n }\n\n item.element.removeEventListener(item.eventname, item.callbackWrapper, false);\n delete web_dom.eventHistory[i2];\n }\n }\n },\n\n dispatchEvent: function dispatchEvent(element, eventname, data) {\n var customEvent = document.createEvent('Event');\n for (var item in data) {\n if (!data.hasOwnProperty(item)) {\n continue;\n }\n\n customEvent[item] = data[item];\n }\n\n customEvent.initEvent(eventname, true, true);\n element.dispatchEvent(customEvent);\n },\n\n create: function create(html) {\n var frag = document.createDocumentFragment(),\n temp = document.createElement('DIV');\n\n temp.insertAdjacentHTML('beforeend', html);\n while (temp.firstChild) {\n frag.appendChild(temp.firstChild);\n }\n\n // nulling out the reference, there is no obvious dispose method\n temp = null;\n\n return frag;\n },\n\n createElement: function createElement(element, attributes, children) {\n var elem = document.createElement(element);\n\n if (attributes !== undefined && attributes.constructor === Object) {\n for (var item in attributes) {\n if (!attributes.hasOwnProperty(item)) {\n continue;\n }\n\n elem.setAttribute(item, attributes[item]);\n }\n }\n\n if (children !== undefined) {\n if (children.constructor === Object) {\n for (var item2 in children) {\n if (!children.hasOwnProperty(item2)) {\n continue;\n }\n\n elem.setAttribute(item2, children[item2]);\n }\n } else if ( /* typeof children === 'string' && */children.length > 0) {\n web_dom.append(elem, children);\n }\n }\n\n return elem;\n },\n\n createOption: function createOption(element, key, value, isDefault) {\n /* old behaviour, does not support optgroups as parents.\n let count = element.options.length;\n element.options[count] = new Option(value, key);\n if (isDefault === true) {\n element.options.selectedIndex = count - 1;\n }\n */\n\n var option = document.createElement('OPTION');\n option.setAttribute('value', key);\n if (isDefault === true) {\n option.setAttribute('checked', 'checked');\n }\n\n web_dom.append(option, value);\n element.appendChild(option);\n },\n\n selectByValue: function selectByValue(element, value) {\n for (var i = 0, _length4 = element.options.length; i < _length4; i++) {\n if (element.options[i].getAttribute('value') == value) {\n element.selectedIndex = i;\n break;\n }\n }\n }, /*,\n // TODO: it's redundant for now\n loadImage: function () {\n let images = [];\n for (let i = 0, length = arguments.length; i < length; i++) {\n let image = document.createElement('IMG');\n image.setAttribute('src', arguments[i]);\n images.push(image);\n }\n return images;\n },\n loadAsyncStyle: function (path, triggerName, async) {\n let elem = document.createElement('LINK');\n elem.type = 'text/css';\n elem.async = (async !== undefined) ? async : true;\n elem.href = path;\n elem.rel = 'stylesheet';\n let loaded = false;\n elem.onload = elem.onreadystatechange = function () {\n if ((elem.readyState && elem.readyState !== 'complete' && elem.readyState !== 'loaded') || loaded) {\n return false;\n }\n elem.onload = elem.onreadystatechange = null;\n loaded = true;\n if (triggerName) {\n if (typeof triggerName === 'function') {\n triggerName();\n } else {\n triggers.ontrigger(triggerName);\n }\n }\n };\n let head = document.getElementsByTagName('head')[0];\n head.appendChild(elem);\n },*/\n\n clear: function clear(element) {\n while (element.hasChildNodes()) {\n element.removeChild(element.firstChild);\n }\n },\n\n insert: function insert(element, position, content) {\n element.insertAdjacentHTML(position, content);\n },\n\n prepend: function prepend(element, content) {\n element.insertAdjacentHTML('afterbegin', content);\n },\n\n append: function append(element, content) {\n element.insertAdjacentHTML('beforeend', content);\n },\n\n replace: function replace(element, content) {\n web_dom.clear(element);\n element.insertAdjacentHTML('afterbegin', content);\n },\n\n replaceText: function replaceText(element, content) {\n // web_dom.clear(element);\n element.textContent = content;\n },\n\n remove: function remove(element) {\n element.remove();\n },\n\n cloneReturn: 0,\n cloneAppend: 1,\n cloneInsertAfter: 2,\n cloneInsertBefore: 3,\n\n clone: function clone(element, type, container, target) {\n var newElement = element.cloneNode(true);\n\n if (container === undefined) {\n container = element.parentNode;\n }\n if (target === undefined) {\n target = element;\n }\n\n if (type !== undefined && type != web_dom.cloneReturn) {\n if (type == web_dom.cloneAppend) {\n container.appendChild(newElement);\n } else if (type == web_dom.cloneInsertAfter) {\n container.insertBefore(newElement, target.nextSibling);\n } else {\n // type == web_dom.cloneInsertBefore\n container.insertBefore(newElement, target);\n }\n }\n\n return newElement;\n },\n\n loadScript: function loadScript(url, async) {\n return new $l.promise(function (resolve, reject) {\n var elem = document.createElement('script');\n\n if (async !== undefined) {\n elem.async = async;\n }\n\n if (elem.readyState !== undefined) {\n elem.onreadystatechange = function () {\n if (elem.readyState in ['loaded', 'complete']) {\n elem.onreadystatechange = null;\n resolve(elem);\n }\n };\n } else {\n elem.onload = function () {\n resolve(elem);\n };\n }\n\n elem.src = url;\n\n var head = document.getElementsByTagName('head')[0];\n head.appendChild(elem);\n });\n } /*,\n // TODO: it's redundant for now\n applyOperations: function (element, operations) {\n for (let operation in operations) {\n if (!operations.hasOwnProperty(operation)) {\n continue;\n }\n for (let binding in operations[operation]) {\n if (!operations[operation].hasOwnProperty(binding)) {\n continue;\n }\n let value = operations[operation][binding];\n switch (operation) {\n case 'setprop':\n if (binding.substring(0, 1) === '_') {\n element.setAttribute(binding.substring(1), value);\n continue;\n }\n if (binding === 'content') {\n web_dom.replace(element, value);\n continue;\n }\n break;\n case 'addprop':\n if (binding.substring(0, 1) === '_') {\n element.setAttribute(binding.substring(1), element.getAttribute(binding.substring(1)) + value);\n continue;\n }\n if (binding === 'content') {\n web_dom.append(element, value);\n continue;\n }\n break;\n case 'removeprop':\n if (value.substring(0, 1) === '_') {\n element.removeAttribute(value.substring(1));\n continue;\n }\n if (value === 'content') {\n web_dom.clear(element);\n continue;\n }\n break;\n case 'addclass':\n css.addClass(element, value);\n break;\n case 'removeclass':\n css.removeClass(element, value);\n break;\n case 'addstyle':\n css.setProperty(element, binding, value);\n break;\n case 'removestyle':\n css.setProperty(element, value, 'inherit !important');\n break;\n case 'repeat':\n break;\n default:\n console.log(operation);\n }\n }\n }\n }*/\n};\n\n// a fix for Internet Explorer\nif ('Element' in global) {\n if (Element.prototype.remove === undefined) {\n Element.prototype.remove = function () {\n if (this.parentElement !== null) {\n this.parentElement.removeChild(this);\n }\n };\n }\n}\n\nexports['default'] = web_dom;\nmodule.exports = exports['default'];\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],4:[function(require,module,exports){\n/*jslint node: true */\n/*global $l, FormData */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nvar web_forms = {\n ajaxForm: function ajaxForm(formobj, callback, callbackBegin) {\n $l.web.dom.setEvent(formobj, 'submit', function () {\n if (callbackBegin !== undefined) {\n callbackBegin();\n }\n\n var promise = $l.ajax.fetch(formobj.getAttribute('action'), {\n method: 'POST',\n body: web_forms.serializeFormData(formobj)\n });\n\n if (callback !== undefined) {\n promise.then(callback);\n }\n\n return false;\n });\n },\n\n isFormField: function isFormField(element) {\n if (element.tagName === 'SELECT') {\n return true;\n }\n\n if (element.tagName === 'INPUT') {\n var type = element.getAttribute('type').toUpperCase();\n\n if (type === 'FILE' || type === 'CHECKBOX' || type === 'RADIO' || type === 'TEXT' || type === 'PASSWORD' || type === 'HIDDEN') {\n return true;\n }\n\n return false;\n }\n\n if (element.tagName === 'TEXTAREA') {\n return true;\n }\n\n return false;\n },\n\n getFormFieldValue: function getFormFieldValue(element) {\n if (element.disabled === true) {\n return null;\n }\n\n if (element.tagName === 'SELECT') {\n return element.options[element.selectedIndex].value;\n }\n\n if (element.tagName === 'INPUT') {\n var type = element.getAttribute('type').toUpperCase();\n\n if (type === 'FILE') {\n return element.files[0];\n }\n\n if (type === 'CHECKBOX' || type === 'RADIO') {\n if (element.checked) {\n return element.value;\n }\n\n return null;\n }\n\n if (type === 'TEXT' || type === 'PASSWORD' || type === 'HIDDEN') {\n return element.value;\n }\n\n return null;\n }\n\n if (element.tagName === 'TEXTAREA') {\n return element.value;\n }\n\n return null;\n },\n\n setFormFieldValue: function setFormFieldValue(element, value) {\n if (element.disabled === true) {\n return;\n }\n\n if (element.tagName === 'SELECT') {\n for (var option in element.options) {\n if (!element.options.hasOwnProperty(option)) {\n continue;\n }\n\n if (element.options[option].value == value) {\n element.selectedIndex = option;\n return;\n }\n }\n\n return;\n }\n\n if (element.tagName === 'INPUT') {\n var type = element.getAttribute('type').toUpperCase();\n\n if (type === 'FILE') {\n element.files[0] = value;\n return;\n }\n\n if (type === 'CHECKBOX' || type === 'RADIO') {\n if (value === true || value == element.value) {\n element.checked = true;\n }\n\n return;\n }\n\n if (type === 'TEXT' || type === 'PASSWORD' || type === 'HIDDEN') {\n element.value = value;\n return;\n }\n\n return;\n }\n\n if (element.tagName === 'TEXTAREA') {\n element.value = value;\n return;\n }\n },\n\n toggleFormEditing: function toggleFormEditing(formobj, value) {\n var selection = formobj.querySelectorAll('*[name]');\n\n if (value === undefined) {\n if (formobj.getAttribute('data-last-enabled') === null) {\n formobj.setAttribute('data-last-enabled', 'enabled');\n value = false;\n } else {\n formobj.removeAttribute('data-last-enabled');\n value = true;\n }\n }\n\n for (var selected = 0, _length = selection.length; selected < _length; selected++) {\n if (!web_forms.isFormField(selection[selected])) {\n continue;\n }\n\n var lastDisabled = selection[selected].getAttribute('data-last-disabled');\n if (!value) {\n if (lastDisabled === null) {\n if (selection[selected].getAttribute('disabled') !== null) {\n selection[selected].setAttribute('data-last-disabled', 'disabled');\n }\n }\n\n selection[selected].setAttribute('disabled', 'disabled');\n continue;\n }\n\n if (lastDisabled !== null) {\n selection[selected].removeAttribute('data-last-disabled');\n } else {\n selection[selected].removeAttribute('disabled');\n }\n }\n },\n\n serializeFormData: function serializeFormData(formobj) {\n var formdata = new FormData();\n var selection = formobj.querySelectorAll('*[name]');\n\n for (var selected = 0, _length2 = selection.length; selected < _length2; selected++) {\n var value = web_forms.getFormFieldValue(selection[selected]);\n\n if (value !== null) {\n formdata.append(selection[selected].getAttribute('name'), value);\n }\n }\n\n return formdata;\n },\n\n serialize: function serialize(formobj) {\n var values = {};\n var selection = formobj.querySelectorAll('*[name]');\n\n for (var selected = 0, _length3 = selection.length; selected < _length3; selected++) {\n var value = web_forms.getFormFieldValue(selection[selected]);\n\n if (value !== null) {\n values[selection[selected].getAttribute('name')] = value;\n }\n }\n\n return values;\n },\n\n deserialize: function deserialize(formobj, data) {\n var selection = formobj.querySelectorAll('*[name]');\n\n for (var selected = 0, _length4 = selection.length; selected < _length4; selected++) {\n web_forms.setFormFieldValue(selection[selected], data[selection[selected].getAttribute('name')]);\n }\n },\n\n validate: function validate(formobj, rules) {\n var fields = web_forms.serialize(formobj);\n\n return $l.validation.validate(fields, rules);\n }\n};\n\nexports['default'] = web_forms;\nmodule.exports = exports['default'];\n},{}],5:[function(require,module,exports){\n(function (global){\n/*jslint node: true */\n/*global $l, document */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _larouxWebAnimJs = require('./laroux.web.anim.js');\n\nvar _larouxWebAnimJs2 = _interopRequireDefault(_larouxWebAnimJs);\n\nvar _larouxWebCssJs = require('./laroux.web.css.js');\n\nvar _larouxWebCssJs2 = _interopRequireDefault(_larouxWebCssJs);\n\nvar _larouxWebDomJs = require('./laroux.web.dom.js');\n\nvar _larouxWebDomJs2 = _interopRequireDefault(_larouxWebDomJs);\n\nvar _larouxWebFormsJs = require('./laroux.web.forms.js');\n\nvar _larouxWebFormsJs2 = _interopRequireDefault(_larouxWebFormsJs);\n\nvar _larouxWebKeysJs = require('./laroux.web.keys.js');\n\nvar _larouxWebKeysJs2 = _interopRequireDefault(_larouxWebKeysJs);\n\nvar _larouxWebRoutesJs = require('./laroux.web.routes.js');\n\nvar _larouxWebRoutesJs2 = _interopRequireDefault(_larouxWebRoutesJs);\n\nvar _larouxWebTouchJs = require('./laroux.web.touch.js');\n\nvar _larouxWebTouchJs2 = _interopRequireDefault(_larouxWebTouchJs);\n\nvar web = {\n anim: _larouxWebAnimJs2['default'],\n css: _larouxWebCssJs2['default'],\n dom: _larouxWebDomJs2['default'],\n forms: _larouxWebFormsJs2['default'],\n keys: _larouxWebKeysJs2['default'],\n routes: _larouxWebRoutesJs2['default'],\n touch: _larouxWebTouchJs2['default'],\n\n cached: {\n single: {},\n array: {},\n id: {}\n },\n\n c: function c(selector) {\n if (selector.constructor === Array) {\n return web.cached.array[selector] || (web.cached.array[selector] = $l.toArray(document.querySelectorAll(selector)));\n }\n\n return web.cached.single[selector] || (web.cached.single[selector] = document.querySelector(selector));\n },\n\n id: function id(selector, parent) {\n return (parent || document).getElementById(selector);\n },\n\n idc: function idc(selector) {\n return web.cached.id[selector] || (web.cached.id[selector] = document.getElementById(selector));\n }\n};\n\nif ('document' in global) {\n document.addEventListener('DOMContentLoaded', $l.setReady);\n}\n\n$l.extendNs('web', web);\n// $l.extend(web);\n\nexports['default'] = web;\nmodule.exports = exports['default'];\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"./laroux.web.anim.js\":1,\"./laroux.web.css.js\":2,\"./laroux.web.dom.js\":3,\"./laroux.web.forms.js\":4,\"./laroux.web.keys.js\":6,\"./laroux.web.routes.js\":7,\"./laroux.web.touch.js\":8}],6:[function(require,module,exports){\n/*jslint node: true */\n/*global $l, event, document */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _larouxWebFormsJs = require('./laroux.web.forms.js');\n\nvar _larouxWebFormsJs2 = _interopRequireDefault(_larouxWebFormsJs);\n\nvar web_keys = {\n keyName: function keyName(keycode) {\n keycode = keycode.toLowerCase();\n\n switch (keycode) {\n case 'backspace':\n return 8;\n\n case 'tab':\n return 9;\n\n case 'enter':\n case 'return':\n return 13;\n\n case 'esc':\n case 'escape':\n return 27;\n\n case 'space':\n return 32;\n\n case 'pgup':\n return 33;\n\n case 'pgdn':\n return 34;\n\n case 'end':\n return 35;\n\n case 'home':\n return 36;\n\n case 'left':\n return 37;\n\n case 'up':\n return 38;\n\n case 'right':\n return 39;\n\n case 'down':\n return 40;\n\n case 'insert':\n return 45;\n\n case 'delete':\n return 46;\n\n case 'f1':\n return 112;\n\n case 'f2':\n return 113;\n\n case 'f3':\n return 114;\n\n case 'f4':\n return 115;\n\n case 'f5':\n return 116;\n\n case 'f6':\n return 117;\n\n case 'f7':\n return 118;\n\n case 'f8':\n return 119;\n\n case 'f9':\n return 120;\n\n case 'f10':\n return 121;\n\n case 'f11':\n return 122;\n\n case 'f12':\n return 123;\n\n case ',':\n return 188;\n\n case '.':\n return 190;\n }\n\n return String.fromCharCode(keycode);\n },\n\n // {target, key, shift, ctrl, alt, disableInputs, callback}\n assign: function assign(options) {\n var wrapper = function wrapper(ev) {\n if (!ev) {\n ev = event;\n }\n\n var element = ev.target || ev.srcElement;\n if (element.nodeType === 3 || element.nodeType === 11) {\n // element.nodeType === 1 ||\n element = element.parentNode;\n }\n\n if (options.disableInputs && _larouxWebFormsJs2['default'].isFormField(element)) {\n return;\n }\n\n if (options.shift && !ev.shiftKey) {\n return;\n }\n\n if (options.ctrl && !ev.ctrlKey) {\n return;\n }\n\n if (options.alt && !ev.altKey) {\n return;\n }\n\n var key = web_keys.keyName(options.key);\n if (key !== (ev.keyCode || ev.which)) {\n return;\n }\n\n options.callback(ev);\n\n return false;\n };\n\n $l.web.dom.setEvent(options.target || document, 'keydown', wrapper);\n }\n};\n\nexports['default'] = web_keys;\nmodule.exports = exports['default'];\n},{\"./laroux.web.forms.js\":4}],7:[function(require,module,exports){\n(function (global){\n/*jslint node: true */\n/*global $l, location, addEventListener, removeEventListener */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n// routes - partially taken from 'routie' project\n// can be found at: https://github.com/jgallen23/routie\n// see laroux.web.routes.LICENSE file for details\nvar web_routes = {\n map: {},\n attached: false,\n current: null,\n\n regexConverter: function regexConverter(path, sensitive, strict) {\n var keys = [],\n regexString = path.concat(strict ? '' : '/?').replace(/\\/\\(/g, '(?:/').replace(/\\+/g, '__plus__').replace(/(\\/)?(\\.)?:(\\w+)(?:(\\(.*?\\)))?(\\?)?/g, function (_, slash, format, key, capture, optional) {\n keys.push({ name: key, optional: !!optional });\n slash = slash || '';\n\n return '' + (optional ? '' : slash) + '(?:' + (optional ? slash : '') + (format || '') + (capture || (format && '([^/.]+?)' || '([^/]+?)')) + ')' + (optional || '');\n }).replace(/([\\/.])/g, '\\\\$1').replace(/__plus__/g, '(.+)').replace(/\\*/g, '(.*)');\n\n return {\n regex: new RegExp('^' + regexString + '$', sensitive ? '' : 'i'),\n keys: keys\n };\n },\n\n add: function add(path, callback) {\n web_routes.addNamed(null, path, callback);\n },\n\n addNamed: function addNamed(name, path, callback) {\n if (!(path in web_routes.map)) {\n var converted = web_routes.regexConverter(path);\n\n web_routes.map[path] = {\n name: name,\n callback: callback,\n params: {},\n keys: converted.keys,\n regex: converted.regex\n };\n } else {\n web_routes.map[path].callback = callback;\n }\n },\n\n get: function get(path) {\n for (var item in web_routes.map) {\n if (!web_routes.map.hasOwnProperty(item)) {\n continue;\n }\n\n var route = web_routes.map[item],\n match = route.regex.exec(path);\n\n if (!match) {\n continue;\n }\n\n var params = {};\n for (var i = 1, _length = match.length; i < _length; i++) {\n var key = route.keys[i - 1];\n\n if (key !== undefined) {\n params[key.name] = typeof match[i] === 'string' ? decodeURIComponent(match[i]) : match[i];\n }\n }\n\n return {\n route: item,\n resolved: path,\n params: params,\n callback: route.callback\n };\n }\n\n return null;\n },\n\n getNamed: function getNamed(name, params) {\n for (var item in web_routes.map) {\n if (!web_routes.map.hasOwnProperty(item)) {\n continue;\n }\n\n var route = web_routes.map[item],\n path = item;\n\n for (var i = 0, _length2 = route.keys.length; i < _length2; i++) {\n var key = route.keys[i];\n\n path = path.replace(':' + key.name, params[key.name] || '');\n }\n\n if (route.name == name) {\n return {\n route: item,\n resolved: path,\n params: params,\n callback: route.callback\n };\n }\n }\n\n return null;\n },\n\n link: function link(name, params) {\n var route = web_routes.getNamed(name, params);\n\n if (route === null) {\n return null;\n }\n\n return route.resolved;\n },\n\n exec: function exec(route) {\n var previous = web_routes.current,\n args = $l.map(route.params, function (value) {\n return value;\n });\n\n web_routes.current = route;\n args.push({\n previous: previous,\n current: web_routes.current\n });\n\n return route.callback.apply(global, args);\n },\n\n go: function go(path, silent) {\n var attached = web_routes.attached;\n\n if (silent && attached) {\n web_routes.detach();\n }\n\n setTimeout(function () {\n location.hash = path;\n\n if (silent && attached) {\n setTimeout(function () {\n web_routes.attach();\n }, 1);\n }\n }, 1);\n },\n\n goNamed: function goNamed(name, params, silent) {\n var path = web_routes.link(name, params);\n\n if (path === null) {\n return null;\n }\n\n web_routes.go(path, silent);\n },\n\n reload: function reload() {\n var hash = location.hash.substring(1),\n route = web_routes.get(hash);\n\n if (route === null) {\n return;\n }\n\n web_routes.exec(route);\n },\n\n attach: function attach() {\n addEventListener('hashchange', web_routes.reload, false);\n web_routes.attached = true;\n },\n\n detach: function detach() {\n removeEventListener('hashchange', web_routes.reload);\n web_routes.attached = false;\n }\n};\n\n$l.ready(web_routes.attach);\n\nexports['default'] = web_routes;\nmodule.exports = exports['default'];\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],8:[function(require,module,exports){\n/*jslint node: true */\n/*global $l, document, navigator */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n// touch - partially taken from 'tocca.js' project\n// can be found at: https://github.com/GianlucaGuarini/Tocca.js\n// see laroux.web.touch.LICENSE file for details\nvar web_touch = {\n touchStarted: null,\n swipeTreshold: 80,\n precision: 30,\n tapCount: 0,\n tapTreshold: 200,\n longTapTreshold: 800,\n tapTimer: null,\n pos: null,\n cached: null,\n\n events: {\n start: ['touchstart', 'pointerdown', 'MSPointerDown', 'mousedown'],\n end: ['touchend', 'pointerup', 'MSPointerUp', 'mouseup'],\n move: ['touchmove', 'pointermove', 'MSPointerMove', 'mousemove']\n },\n\n locatePointer: function locatePointer(event) {\n if (event.targetTouches) {\n event = event.targetTouches[0];\n }\n\n web_touch.pos = [event.pageX, event.pageY];\n },\n\n init: function init() {\n var events = [0, navigator.msPointerEnabled ? 2 : 1, 3];\n\n for (var i = 0, _length = events.length; i < _length; i++) {\n $l.web.dom.setEventSingle(document, web_touch.events.start[events[i]], web_touch.onstart);\n $l.web.dom.setEventSingle(document, web_touch.events.end[events[i]], web_touch.onend);\n $l.web.dom.setEventSingle(document, web_touch.events.move[events[i]], web_touch.locatePointer);\n }\n },\n\n onstart: function onstart(event) {\n web_touch.locatePointer(event);\n web_touch.cached = [web_touch.pos[0], web_touch.pos[1]];\n web_touch.touchStarted = Date.now();\n /*jslint plusplus: true */\n web_touch.tapCount++;\n\n var callback = function callback() {\n if (web_touch.cached[0] >= web_touch.pos[0] - web_touch.precision && web_touch.cached[0] <= web_touch.pos[0] + web_touch.precision && web_touch.cached[1] >= web_touch.pos[1] - web_touch.precision && web_touch.cached[1] <= web_touch.pos[1] + web_touch.precision) {\n if (web_touch.touchStarted === null) {\n $l.web.dom.dispatchEvent(event.target, web_touch.tapCount === 2 ? 'dbltap' : 'tap', {\n innerEvent: event,\n x: web_touch.pos[0],\n y: web_touch.pos[1]\n });\n\n web_touch.tapCount = 0;\n return;\n }\n\n if (Date.now() - web_touch.touchStarted > web_touch.longTapTreshold) {\n $l.web.dom.dispatchEvent(event.target, 'longtap', {\n innerEvent: event,\n x: web_touch.pos[0],\n y: web_touch.pos[1]\n });\n\n web_touch.touchStarted = null;\n web_touch.tapCount = 0;\n return;\n }\n\n web_touch.tapTimer = setTimeout(callback, web_touch.tapTreshold);\n return;\n }\n\n web_touch.tapCount = 0;\n };\n\n clearTimeout(web_touch.tapTimer);\n web_touch.tapTimer = setTimeout(callback, web_touch.tapTreshold);\n },\n\n onend: function onend(event) {\n var delta = [web_touch.pos[0] - web_touch.cached[0], web_touch.pos[1] - web_touch.cached[1]],\n data = {\n innerEvent: event,\n x: web_touch.pos[0],\n y: web_touch.pos[1],\n distance: {\n x: Math.abs(delta[0]),\n y: Math.abs(delta[1])\n }\n };\n\n web_touch.touchStarted = null;\n\n if (delta[0] <= -web_touch.swipeTreshold) {\n $l.web.dom.dispatchEvent(event.target, 'swiperight', data);\n }\n\n if (delta[0] >= web_touch.swipeTreshold) {\n $l.web.dom.dispatchEvent(event.target, 'swipeleft', data);\n }\n\n if (delta[1] <= -web_touch.swipeTreshold) {\n $l.web.dom.dispatchEvent(event.target, 'swipedown', data);\n }\n\n if (delta[1] >= web_touch.swipeTreshold) {\n $l.web.dom.dispatchEvent(event.target, 'swipeup', data);\n }\n }\n};\n\n$l.ready(web_touch.init);\n\nexports['default'] = web_touch;\nmodule.exports = exports['default'];\n},{}]},{},[5]);\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/docs/assets/js/benchmarks.js b/docs/assets/js/benchmarks.js index 3a2ca7f..6123d8b 100644 --- a/docs/assets/js/benchmarks.js +++ b/docs/assets/js/benchmarks.js @@ -12,8 +12,8 @@ button.setAttribute('disabled', 'disabled'); - $l.dom.clear(target); - $l.dom.append(target, 'Awaiting test results...' + crlf); + $l.web.dom.clear(target); + $l.web.dom.append(target, 'Awaiting test results...' + crlf); // add tests for (var item in tests) { @@ -24,10 +24,10 @@ // add listeners suite .on('cycle', function(event) { - $l.dom.append(target, String(event.target) + crlf); + $l.web.dom.append(target, String(event.target) + crlf); }) .on('complete', function() { - $l.dom.append(target, 'Fastest is ' + this.filter('fastest').pluck('name') + '' + crlf); + $l.web.dom.append(target, 'Fastest is ' + this.filter('fastest').pluck('name') + '' + crlf); button.removeAttribute('disabled'); }); @@ -87,7 +87,7 @@ // Selectors by Tagname $l.ready(function() { - var graph = $l.id('graph-selectors-tagname'); + var graph = $l.web.id('graph-selectors-tagname'); var graphdata = [ { name: 'Chrome', @@ -132,10 +132,10 @@ ]; drawGraph(graph, graphdata); - var button = $l.id('button-selectors-tagname'); - var text = $l.id('text-selectors-tagname'); + var button = $l.web.id('button-selectors-tagname'); + var text = $l.web.id('text-selectors-tagname'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { @@ -171,7 +171,7 @@ // Selectors by Element Id $l.ready(function() { - var graph = $l.id('graph-selectors-elementid'); + var graph = $l.web.id('graph-selectors-elementid'); var graphdata = [ { name: 'Chrome', @@ -224,10 +224,10 @@ ]; drawGraph(graph, graphdata); - var button = $l.id('button-selectors-elementid'); - var text = $l.id('text-selectors-elementid'); + var button = $l.web.id('button-selectors-elementid'); + var text = $l.web.id('text-selectors-elementid'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { @@ -238,19 +238,19 @@ { name: 'laroux.js', fnc: function() { - $l.id('home'); + $l.web.id('home'); } }, { name: 'laroux.js (Alternative)', fnc: function() { - $l.id('home'); + $l.web.id('home'); } }, { name: 'laroux.js (Alternative 2)', fnc: function() { - $l.idc('home'); + $l.web.idc('home'); } }, { @@ -275,7 +275,7 @@ // Selectors by Class $l.ready(function() { - var graph = $l.id('graph-selectors-class'); + var graph = $l.web.id('graph-selectors-class'); var graphdata = [ { name: 'Chrome', @@ -324,10 +324,10 @@ ]; drawGraph(graph, graphdata); - var button = $l.id('button-selectors-class'); - var text = $l.id('text-selectors-class'); + var button = $l.web.id('button-selectors-class'); + var text = $l.web.id('text-selectors-class'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { @@ -344,7 +344,7 @@ { name: 'laroux.js (Alternative)', fnc: function() { - $l.dom.selectByClass('container'); + $l.web.dom.selectByClass('container'); } }, { @@ -369,7 +369,7 @@ // Each on Arrays $l.ready(function() { - var graph = $l.id('graph-main-each-arrays'); + var graph = $l.web.id('graph-main-each-arrays'); var graphdata = [ { name: 'Chrome', @@ -418,10 +418,10 @@ ]; drawGraph(graph, graphdata); - var button = $l.id('button-main-each-arrays'); - var text = $l.id('text-main-each-arrays'); + var button = $l.web.id('button-main-each-arrays'); + var text = $l.web.id('text-main-each-arrays'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { @@ -471,7 +471,7 @@ // Each on Objects $l.ready(function() { - var graph = $l.id('graph-main-each-objects'); + var graph = $l.web.id('graph-main-each-objects'); var graphdata = [ { name: 'Chrome', @@ -516,10 +516,10 @@ ]; drawGraph(graph, graphdata); - var button = $l.id('button-main-each-objects'); - var text = $l.id('text-main-each-objects'); + var button = $l.web.id('button-main-each-objects'); + var text = $l.web.id('text-main-each-objects'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { @@ -561,7 +561,7 @@ // Map on Arrays $l.ready(function() { - var graph = $l.id('graph-main-map-arrays'); + var graph = $l.web.id('graph-main-map-arrays'); var graphdata = [ { name: 'Chrome', @@ -610,10 +610,10 @@ ]; drawGraph(graph, graphdata); - var button = $l.id('button-main-map-arrays'); - var text = $l.id('text-main-map-arrays'); + var button = $l.web.id('button-main-map-arrays'); + var text = $l.web.id('text-main-map-arrays'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { @@ -663,7 +663,7 @@ // Map on Objects $l.ready(function() { - var graph = $l.id('graph-main-map-objects'); + var graph = $l.web.id('graph-main-map-objects'); var graphdata = [ { name: 'Chrome', @@ -708,10 +708,10 @@ ]; drawGraph(graph, graphdata); - var button = $l.id('button-main-map-objects'); - var text = $l.id('text-main-map-objects'); + var button = $l.web.id('button-main-map-objects'); + var text = $l.web.id('text-main-map-objects'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { @@ -753,7 +753,7 @@ // Create DOM element $l.ready(function() { - var graph = $l.id('graph-dom-create-element'); + var graph = $l.web.id('graph-dom-create-element'); var graphdata = [ { name: 'Chrome', @@ -802,10 +802,10 @@ ]; drawGraph(graph, graphdata); - var button = $l.id('button-dom-create-element'); - var text = $l.id('text-dom-create-element'); + var button = $l.web.id('button-dom-create-element'); + var text = $l.web.id('text-dom-create-element'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { @@ -816,13 +816,13 @@ { name: 'laroux.js', fnc: function() { - $l.dom.createElement('DIV', { class: 'x' }, 'y'); + $l.web.dom.createElement('DIV', { class: 'x' }, 'y'); } }, { name: 'laroux.js (Alternative)', fnc: function() { - $l.dom.create('
y
'); + $l.web.dom.create('
y
'); } }, { @@ -847,7 +847,7 @@ // DOM Manipulations $l.ready(function() { - var graph = $l.id('graph-dom-manipulations'); + var graph = $l.web.id('graph-dom-manipulations'); var graphdata = [ { name: 'Chrome', @@ -892,10 +892,10 @@ ]; drawGraph(graph, graphdata); - var button = $l.id('button-dom-manipulations'); - var text = $l.id('text-dom-manipulations'); + var button = $l.web.id('button-dom-manipulations'); + var text = $l.web.id('text-dom-manipulations'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { @@ -906,11 +906,11 @@ { name: 'laroux.js', fnc: function() { - var div = $l.dom.createElement('DIV'); - $l.dom.append(div, 'appended'); - $l.dom.prepend(div, 'prepended'); - $l.dom.clear(div); - $l.dom.remove(div); + var div = $l.web.dom.createElement('DIV'); + $l.web.dom.append(div, 'appended'); + $l.web.dom.prepend(div, 'prepended'); + $l.web.dom.clear(div); + $l.web.dom.remove(div); } }, { diff --git a/docs/assets/js/common.js b/docs/assets/js/common.js index f638314..1b03d41 100644 --- a/docs/assets/js/common.js +++ b/docs/assets/js/common.js @@ -2,20 +2,20 @@ 'use strict'; $l.ready(function() { - var dropdownToggleButton = $l.id('dropdown-toggle-button'), - dropdownToggleElement = $l.id('dropdown-toggle-element'); + var dropdownToggleButton = $l.web.id('dropdown-toggle-button'), + dropdownToggleElement = $l.web.id('dropdown-toggle-element'); - $l.dom.setEvent( + $l.web.dom.setEvent( dropdownToggleButton, 'click', function(event, element) { - $l.css.toggleClass(dropdownToggleElement, 'open'); + $l.web.css.toggleClass(dropdownToggleElement, 'open'); return false; } ); var hrefButtons = $l(['.btn-href']); - $l.dom.setEvent( + $l.web.dom.setEvent( hrefButtons, 'click', function(event, element) { @@ -29,7 +29,7 @@ timeout: 8000, reset: true, ontick: function() { - $l.css.cycleClass(slides, 'active'); + $l.web.css.cycleClass(slides, 'active'); } }); }); diff --git a/docs/assets/js/demos.js b/docs/assets/js/demos.js index 87bc9a1..28e5578 100644 --- a/docs/assets/js/demos.js +++ b/docs/assets/js/demos.js @@ -9,10 +9,10 @@ // ajax - Making a GET request $l.ready(function() { - var button = $l.id('button-ajax-get-request'); - var text = $l.id('text-ajax-get-request'); + var button = $l.web.id('button-ajax-get-request'); + var text = $l.web.id('text-ajax-get-request'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { @@ -21,10 +21,10 @@ return response.json(); }).then(function (json) { - $l.dom.replace($l.id('text-ajax-get-request'), json.testResponse); + $l.web.dom.replace($l.web.id('text-ajax-get-request'), json.testResponse); }).catch(function (error) { - $l.dom.replace(text, 'Error: ' + error.message); + $l.web.dom.replace(text, 'Error: ' + error.message); }); @@ -35,13 +35,13 @@ // anim - Creating a variable animation $l.ready(function() { - var button = $l.id('button-anim-var-animate'); + var button = $l.web.id('button-anim-var-animate'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { - $l.anim.set({ + $l.web.anim.set({ object: document.body, property: 'scrollTop', from: null, @@ -58,14 +58,14 @@ // anim - Creating a CSS animation $l.ready(function() { - var button = $l.id('button-anim-css-animate'); - var box = $l.id('div-anim-css-animate'); + var button = $l.web.id('button-anim-css-animate'); + var box = $l.web.id('div-anim-css-animate'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { - $l.anim.setCss({ + $l.web.anim.setCss({ object: box, property: 'top', from: 0, // current value @@ -82,10 +82,10 @@ // css - Transitions $l.ready(function() { - var button = $l.id('button-css-transition'); - var box = $l.id('div-css-transition'); + var button = $l.web.id('button-css-transition'); + var box = $l.web.id('div-css-transition'); - $l.css.setTransition( + $l.web.css.setTransition( box, [ 'background-color', @@ -93,11 +93,11 @@ ] ); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { - $l.css.toggleClass( + $l.web.css.toggleClass( box, 'box-silver' ); @@ -109,10 +109,10 @@ // intl - Dates $l.ready(function() { - var button = $l.id('button-intl-dates'); - var text = $l.id('text-intl-dates'); + var button = $l.web.id('button-intl-dates'); + var text = $l.web.id('text-intl-dates'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { @@ -120,25 +120,25 @@ var yesterday = new Date(); yesterday.setDate(yesterday.getDate() - 1); - $l.dom.clear(text); + $l.web.dom.clear(text); - $l.dom.append(text, '
From yesterday to today:
'); - $l.dom.append(text, $l.intl.parseEpoch(now.getTime() - yesterday.getTime())); + $l.web.dom.append(text, '
From yesterday to today:
'); + $l.web.dom.append(text, $l.intl.parseEpoch(now.getTime() - yesterday.getTime())); - $l.dom.append(text, '
Short Date:
'); - $l.dom.append(text, $l.intl.shortDate(now) + crlf); + $l.web.dom.append(text, '
Short Date:
'); + $l.web.dom.append(text, $l.intl.shortDate(now) + crlf); - $l.dom.append(text, '
Short Date + month names:
'); - $l.dom.append(text, $l.intl.shortDate(now, true) + crlf); + $l.web.dom.append(text, '
Short Date + month names:
'); + $l.web.dom.append(text, $l.intl.shortDate(now, true) + crlf); - $l.dom.append(text, '
Long Date:
'); - $l.dom.append(text, $l.intl.longDate(now) + crlf); + $l.web.dom.append(text, '
Long Date:
'); + $l.web.dom.append(text, $l.intl.longDate(now) + crlf); - $l.dom.append(text, '
Long Date + month names:
'); - $l.dom.append(text, $l.intl.longDate(now, true) + crlf); + $l.web.dom.append(text, '
Long Date + month names:
'); + $l.web.dom.append(text, $l.intl.longDate(now, true) + crlf); - $l.dom.append(text, '
Custom Date:
'); - $l.dom.append(text, $l.intl.customDate('dd/MM/yyyy HH:ss', now) + crlf); + $l.web.dom.append(text, '
Custom Date:
'); + $l.web.dom.append(text, $l.intl.customDate('dd/MM/yyyy HH:ss', now) + crlf); return false; } @@ -147,14 +147,14 @@ // dom - Clone $l.ready(function() { - var button = $l.id('button-dom-clone'); - var target = $l.id('target-dom-clone'); + var button = $l.web.id('button-dom-clone'); + var target = $l.web.id('target-dom-clone'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { - $l.dom.clone(target.firstElementChild, $l.dom.cloneAppend); + $l.web.dom.clone(target.firstElementChild, $l.web.dom.cloneAppend); return false; } @@ -163,17 +163,17 @@ // events - Setting Events $l.ready(function() { - var checkbox = $l.id('checkbox-events-setting-events'); - var text = $l.id('text-events-setting-events'); + var checkbox = $l.web.id('checkbox-events-setting-events'); + var text = $l.web.id('text-events-setting-events'); - $l.dom.setEvent( + $l.web.dom.setEvent( checkbox, 'change', function(ev, element) { if (element.checked) { - $l.dom.replace(text, 'checked'); + $l.web.dom.replace(text, 'checked'); } else { - $l.dom.replace(text, 'unchecked'); + $l.web.dom.replace(text, 'unchecked'); } return false; @@ -183,16 +183,16 @@ // forms - Serializing $l.ready(function() { - var button = $l.id('button-forms-serializing'); - var target = $l.id('target-forms-serializing'); - var text = $l.id('text-forms-serializing'); + var button = $l.web.id('button-forms-serializing'); + var target = $l.web.id('target-forms-serializing'); + var text = $l.web.id('text-forms-serializing'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { - var serialized = $l.forms.serialize(target); - $l.dom.replace(text, JSON.stringify(serialized)); + var serialized = $l.web.forms.serialize(target); + $l.web.dom.replace(text, JSON.stringify(serialized)); return false; } @@ -201,14 +201,14 @@ // forms - Toggle Form Editing $l.ready(function() { - var button = $l.id('button-forms-toggle'); - var target = $l.id('target-forms-toggle'); + var button = $l.web.id('button-forms-toggle'); + var target = $l.web.id('target-forms-toggle'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { - $l.forms.toggleFormEditing($l.id('target-forms-toggle')); + $l.web.forms.toggleFormEditing($l.web.id('target-forms-toggle')); return false; } @@ -217,53 +217,53 @@ // helpers - Helpers $l.ready(function() { - var button = $l.id('button-helpers-helpers'); - var text = $l.id('text-helpers-helpers'); + var button = $l.web.id('button-helpers-helpers'); + var text = $l.web.id('text-helpers-helpers'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { - $l.dom.clear(text); + $l.web.dom.clear(text); - $l.dom.append(text, '
Unique Id Generator:
'); - $l.dom.append(text, $l.getUniqueId() + crlf); - $l.dom.append(text, $l.getUniqueId() + crlf); + $l.web.dom.append(text, '
Unique Id Generator:
'); + $l.web.dom.append(text, $l.getUniqueId() + crlf); + $l.web.dom.append(text, $l.getUniqueId() + crlf); - $l.dom.append(text, '
Query String Generation:
'); - $l.dom.append(text, $l.buildQueryString({pageId: 5, showAll: 'yes'}) + crlf); + $l.web.dom.append(text, '
Query String Generation:
'); + $l.web.dom.append(text, $l.buildQueryString({pageId: 5, showAll: 'yes'}) + crlf); - $l.dom.append(text, '
Transform string into camel case:
'); - $l.dom.append(text, $l.camelCase('text-align') + crlf); + $l.web.dom.append(text, '
Transform string into camel case:
'); + $l.web.dom.append(text, $l.camelCase('text-align') + crlf); - $l.dom.append(text, '
Transform string back from camel case:
'); - $l.dom.append(text, $l.antiCamelCase('textAlign') + crlf); + $l.web.dom.append(text, '
Transform string back from camel case:
'); + $l.web.dom.append(text, $l.antiCamelCase('textAlign') + crlf); - $l.dom.append(text, '
Encoding special characters:
'); - $l.dom.append(text, $l.quoteAttr('
') + crlf); + $l.web.dom.append(text, '
Encoding special characters:
'); + $l.web.dom.append(text, $l.quoteAttr('
') + crlf); - $l.dom.append(text, '
Generating random value:
'); - $l.dom.append(text, $l.random(1, 15) + crlf); - $l.dom.append(text, $l.random(1, 15) + crlf); + $l.web.dom.append(text, '
Generating random value:
'); + $l.web.dom.append(text, $l.random(1, 15) + crlf); + $l.web.dom.append(text, $l.random(1, 15) + crlf); - $l.dom.append(text, '
Getting values from a single column:
'); + $l.web.dom.append(text, '
Getting values from a single column:
'); var arr = [{id: 1, count: 5}, {id: 2, count: 12}]; - $l.dom.append(text, JSON.stringify($l.column(arr, 'count')) + crlf); + $l.web.dom.append(text, JSON.stringify($l.column(arr, 'count')) + crlf); - $l.dom.append(text, '
Shuffling values:
'); - $l.dom.append(text, $l.shuffle([1, 2, 3, 4, 5]) + crlf); + $l.web.dom.append(text, '
Shuffling values:
'); + $l.web.dom.append(text, $l.shuffle([1, 2, 3, 4, 5]) + crlf); - $l.dom.append(text, '
Merging objects:
'); - $l.dom.append(text, JSON.stringify($l.merge({id: 1}, {name: 'eser', count: 5})) + crlf); + $l.web.dom.append(text, '
Merging objects:
'); + $l.web.dom.append(text, JSON.stringify($l.merge({id: 1}, {name: 'eser', count: 5})) + crlf); - $l.dom.append(text, '
Getting count of elements:
'); - $l.dom.append(text, $l.getLength({id: 1, name: 'eser', count: 5}) + crlf); + $l.web.dom.append(text, '
Getting count of elements:
'); + $l.web.dom.append(text, $l.getLength({id: 1, name: 'eser', count: 5}) + crlf); - $l.dom.append(text, '
Getting elements with dot notation:
'); - $l.dom.append(text, $l.getElement({id: 1, child: {a: 1, b: 2}}, 'child.a') + crlf); + $l.web.dom.append(text, '
Getting elements with dot notation:
'); + $l.web.dom.append(text, $l.getElement({id: 1, child: {a: 1, b: 2}}, 'child.a') + crlf); - $l.dom.append(text, '
Getting keys for dot notation:
'); - $l.dom.append(text, JSON.stringify($l.getKeysRecursive({id: 1, child: {a: 1, b: 2}})) + crlf); + $l.web.dom.append(text, '
Getting keys for dot notation:
'); + $l.web.dom.append(text, JSON.stringify($l.getKeysRecursive({id: 1, child: {a: 1, b: 2}})) + crlf); return false; } @@ -272,18 +272,18 @@ // storyboard - Animation $l.ready(function() { - var button = $l.id('button-storyboard-animation'); - var box = $l.id('div-storyboard-animation'); + var button = $l.web.id('button-storyboard-animation'); + var box = $l.web.id('div-storyboard-animation'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { var step1action1 = function () { - $l.css.setProperty(box, 'background-color', 'blue'); + $l.web.css.setProperty(box, 'background-color', 'blue'); }; - var step1action2 = $l.anim.setCss({ + var step1action2 = $l.web.anim.setCss({ object: box, property: 'left', from: 0, // current value @@ -294,7 +294,7 @@ }); var step2 = function () { - var promise = $l.anim.setCss({ + var promise = $l.web.anim.setCss({ object: box, property: 'left', from: 50, // current value @@ -308,7 +308,7 @@ }; var step3 = function () { - $l.css.setProperty(box, 'background-color', 'red'); + $l.web.css.setProperty(box, 'background-color', 'red'); }; var myStory = new $l.storyboard(); @@ -332,21 +332,21 @@ // keys - Assign a key $l.ready(function() { - var button = $l.id('button-keys-assign'); - var text = $l.id('text-keys-assign'); + var button = $l.web.id('button-keys-assign'); + var text = $l.web.id('text-keys-assign'); var pressCount = 0; - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function(ev, element) { - $l.dom.replace(text, 'Key is assigned, press F7 to trigger the event'); + $l.web.dom.replace(text, 'Key is assigned, press F7 to trigger the event'); - $l.keys.assign({ + $l.web.keys.assign({ target: document, key: 'f7', callback: function() { - $l.dom.replace(text, 'pressed: ' + ++pressCount); + $l.web.dom.replace(text, 'pressed: ' + ++pressCount); } }); @@ -357,14 +357,14 @@ // mvvm - Simple Model Binding $l.ready(function() { - var textbox = $l.id('textbox-mvvm-simple'); + var textbox = $l.web.id('textbox-mvvm-simple'); var myModel = new $l.types.observable({ name: '' }); $l.web.mvvm.init('mvvmsimple', myModel); - $l.dom.setEvent( + $l.web.dom.setEvent( textbox, 'keyup', function(ev, element) { @@ -399,70 +399,70 @@ // routes - Routing $l.ready(function() { - var text = $l.id('text-routes-routing'); - var button1 = $l.id('button-routes-routing-1'); - var button2 = $l.id('button-routes-routing-2'); - var button3 = $l.id('button-routes-routing-3'); + var text = $l.web.id('text-routes-routing'); + var button1 = $l.web.id('button-routes-routing-1'); + var button2 = $l.web.id('button-routes-routing-2'); + var button3 = $l.web.id('button-routes-routing-3'); - $l.routes.add( + $l.web.routes.add( 'test/:name', function (name, trans) { - $l.dom.clear(text); + $l.web.dom.clear(text); - $l.dom.append(text, '
Name:
'); - $l.dom.append(text, name + crlf); + $l.web.dom.append(text, '
Name:
'); + $l.web.dom.append(text, name + crlf); - $l.dom.append(text, '
Transition Data:
'); - $l.dom.append(text, JSON.stringify(trans) + crlf); + $l.web.dom.append(text, '
Transition Data:
'); + $l.web.dom.append(text, JSON.stringify(trans) + crlf); } ); - $l.routes.reload(); + $l.web.routes.reload(); - $l.dom.setEvent(button1, 'click', function () { $l.routes.go('test/route1'); }); - $l.dom.setEvent(button2, 'click', function () { $l.routes.go('test/route2'); }); - $l.dom.setEvent(button3, 'click', function () { $l.routes.go('test/route3'); }); + $l.web.dom.setEvent(button1, 'click', function () { $l.web.routes.go('test/route1'); }); + $l.web.dom.setEvent(button2, 'click', function () { $l.web.routes.go('test/route2'); }); + $l.web.dom.setEvent(button3, 'click', function () { $l.web.routes.go('test/route3'); }); }); // routes - Named Routing $l.ready(function() { - var text = $l.id('text-routes-namedrouting'); - var button1 = $l.id('button-routes-namedrouting-1'); - var button2 = $l.id('button-routes-namedrouting-2'); - var button3 = $l.id('button-routes-namedrouting-3'); + var text = $l.web.id('text-routes-namedrouting'); + var button1 = $l.web.id('button-routes-namedrouting-1'); + var button2 = $l.web.id('button-routes-namedrouting-2'); + var button3 = $l.web.id('button-routes-namedrouting-3'); - $l.routes.addNamed( + $l.web.routes.addNamed( 'test2', 'testNamed/:name', function (name, trans) { - $l.dom.clear(text); + $l.web.dom.clear(text); - $l.dom.append(text, '
Name:
'); - $l.dom.append(text, name + crlf); + $l.web.dom.append(text, '
Name:
'); + $l.web.dom.append(text, name + crlf); - $l.dom.append(text, '
Transition Data:
'); - $l.dom.append(text, JSON.stringify(trans) + crlf); + $l.web.dom.append(text, '
Transition Data:
'); + $l.web.dom.append(text, JSON.stringify(trans) + crlf); } ); - $l.routes.reload(); + $l.web.routes.reload(); - $l.dom.setEvent(button1, 'click', function () { $l.routes.goNamed('test2', { name: 'route1' }); }); - $l.dom.setEvent(button2, 'click', function () { $l.routes.goNamed('test2', { name: 'route2' }); }); - $l.dom.setEvent(button3, 'click', function () { $l.routes.goNamed('test2', { name: 'route3' }); }); + $l.web.dom.setEvent(button1, 'click', function () { $l.web.routes.goNamed('test2', { name: 'route1' }); }); + $l.web.dom.setEvent(button2, 'click', function () { $l.web.routes.goNamed('test2', { name: 'route2' }); }); + $l.web.dom.setEvent(button3, 'click', function () { $l.web.routes.goNamed('test2', { name: 'route3' }); }); }); // templates - Examples $l.ready(function() { - var button = $l.id('button-templates-example'); - var text = $l.id('text-templates-example'); - var script = $l.id('script-templates-example'); + var button = $l.web.id('button-templates-example'); + var text = $l.web.id('text-templates-example'); + var script = $l.web.id('script-templates-example'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { var myModel = { name: { first: 'Jane', last: 'Doe' }, age: 25 }; var result = $l.templates.apply(script, myModel); - $l.dom.replace(text, result); + $l.web.dom.replace(text, result); return false; } ); @@ -470,19 +470,19 @@ // timers - Set $l.ready(function() { - var button = $l.id('button-timers-set'); - var text = $l.id('text-timers-set'); + var button = $l.web.id('button-timers-set'); + var text = $l.web.id('text-timers-set'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { - $l.dom.replace(text, 'waiting...' + crlf); + $l.web.dom.replace(text, 'waiting...' + crlf); $l.timers.set({ 'timeout': 500, 'reset': false, 'ontick': function() { - $l.dom.append(text, 'time\'s up'); + $l.web.dom.append(text, 'time\'s up'); } }); @@ -493,32 +493,32 @@ // touch - Touch Events $l.ready(function() { - var box = $l.id('div-touch-events'); - var target = $l.id('target-touch-events'); + var box = $l.web.id('div-touch-events'); + var target = $l.web.id('target-touch-events'); - $l.dom.setEvent( + $l.web.dom.setEvent( box, 'tap', function(event) { - var createdElement = $l.dom.createElement('LI', { }, 'tap'); + var createdElement = $l.web.dom.createElement('LI', { }, 'tap'); target.appendChild(createdElement); } ); - $l.dom.setEvent( + $l.web.dom.setEvent( box, 'dbltap', function(event) { - var createdElement = $l.dom.createElement('LI', { }, 'dbltap'); + var createdElement = $l.web.dom.createElement('LI', { }, 'dbltap'); target.appendChild(createdElement); } ); - $l.dom.setEvent( + $l.web.dom.setEvent( box, 'longtap', function(event) { - var createdElement = $l.dom.createElement('LI', { }, 'longtap'); + var createdElement = $l.web.dom.createElement('LI', { }, 'longtap'); target.appendChild(createdElement); } ); @@ -526,10 +526,10 @@ // types - Examples $l.ready(function() { - var button = $l.id('button-types-example'); - var text = $l.id('text-types-example'); + var button = $l.web.id('button-types-example'); + var text = $l.web.id('text-types-example'); - $l.dom.setEvent( + $l.web.dom.setEvent( button, 'click', function() { @@ -537,22 +537,22 @@ myModel.set('id', 1); myModel.setRange({count: 15, name: 'eser'}); - $l.dom.clear(text); + $l.web.dom.clear(text); - $l.dom.append(text, '
Element with key \'id\':
'); - $l.dom.append(text, myModel.get('id') + crlf); + $l.web.dom.append(text, '
Element with key \'id\':
'); + $l.web.dom.append(text, myModel.get('id') + crlf); - $l.dom.append(text, '
Elements with keys \'id\' and \'name\':
'); - $l.dom.append(text, JSON.stringify(myModel.getRange(['id', 'name'])) + crlf); + $l.web.dom.append(text, '
Elements with keys \'id\' and \'name\':
'); + $l.web.dom.append(text, JSON.stringify(myModel.getRange(['id', 'name'])) + crlf); - $l.dom.append(text, '
Keys:
'); - $l.dom.append(text, JSON.stringify(myModel.keys()) + crlf); + $l.web.dom.append(text, '
Keys:
'); + $l.web.dom.append(text, JSON.stringify(myModel.keys()) + crlf); - $l.dom.append(text, '
Length:
'); - $l.dom.append(text, JSON.stringify(myModel.length()) + crlf); + $l.web.dom.append(text, '
Length:
'); + $l.web.dom.append(text, JSON.stringify(myModel.length()) + crlf); - $l.dom.append(text, '
Check if it has element with key \'name\':
'); - $l.dom.append(text, JSON.stringify(myModel.exists('name')) + crlf); + $l.web.dom.append(text, '
Check if it has element with key \'name\':
'); + $l.web.dom.append(text, JSON.stringify(myModel.exists('name')) + crlf); return false; } @@ -561,47 +561,47 @@ // vars - Set / Read / Remove $l.ready(function() { - var text = $l.id('text-vars'); - var select = $l.id('select-vars'); - var buttonSet = $l.id('button-vars-set'); - var buttonRead = $l.id('button-vars-read'); - var buttonRemove = $l.id('button-vars-remove'); + var text = $l.web.id('text-vars'); + var select = $l.web.id('select-vars'); + var buttonSet = $l.web.id('button-vars-set'); + var buttonRead = $l.web.id('button-vars-read'); + var buttonRemove = $l.web.id('button-vars-remove'); - $l.dom.setEvent( + $l.web.dom.setEvent( buttonSet, 'click', function() { var storage = select.options[select.selectedIndex].value; $l.vars.set(storage, 'demopage', 'a ' + storage + ' test'); - $l.dom.append(text, storage + ' set' + crlf); + $l.web.dom.append(text, storage + ' set' + crlf); return false; } ); - $l.dom.setEvent( + $l.web.dom.setEvent( buttonRead, 'click', function() { var storage = select.options[select.selectedIndex].value; var value = $l.vars.get(storage, 'demopage'); if (value !== null) { - $l.dom.append(text, storage + '\'s value is: ' + value + crlf); + $l.web.dom.append(text, storage + '\'s value is: ' + value + crlf); } else { - $l.dom.append(text, 'you need to set a ' + storage + ' first' + crlf); + $l.web.dom.append(text, 'you need to set a ' + storage + ' first' + crlf); } return false; } ); - $l.dom.setEvent( + $l.web.dom.setEvent( buttonRemove, 'click', function() { var storage = select.options[select.selectedIndex].value; $l.vars.remove(storage, 'demopage'); - $l.dom.append(text, storage + ' is removed' + crlf); + $l.web.dom.append(text, storage + ' is removed' + crlf); return false; } diff --git a/docs/assets/js/faq.js b/docs/assets/js/faq.js index 4305b19..1fc0431 100644 --- a/docs/assets/js/faq.js +++ b/docs/assets/js/faq.js @@ -2,9 +2,9 @@ 'use strict'; $l.ready(function() { - var source = $l.id('markdown-text'); - var target = $l.id('markdown-render-target'); - $l.dom.append(target, marked(source.textContent)); + var source = $l.web.id('markdown-text'); + var target = $l.web.id('markdown-render-target'); + $l.web.dom.append(target, marked(source.textContent)); }); })(); diff --git a/docs/assets/js/snippets.js b/docs/assets/js/snippets.js index 069fe2e..4c1afc5 100644 --- a/docs/assets/js/snippets.js +++ b/docs/assets/js/snippets.js @@ -3,14 +3,14 @@ var crlf = '
'; - var snippetList = $l.id('snippet-list'); - var snippetDescription = $l.id('snippet-description'); - var snippetArea = $l.id('snippet-area'); - var checkboxExecSnippetOnLoad = $l.id('checkbox-exec-snippet-on-load'); + var snippetList = $l.web.id('snippet-list'); + var snippetDescription = $l.web.id('snippet-description'); + var snippetArea = $l.web.id('snippet-area'); + var checkboxExecSnippetOnLoad = $l.web.id('checkbox-exec-snippet-on-load'); var lastLoaded = null; function drawSnippet() { - $l.dom.clear(snippetArea); + $l.web.dom.clear(snippetArea); if (lastLoaded === null) { return; @@ -30,25 +30,25 @@ code = $l.quoteAttr(lastLoaded); } - var pre = $l.dom.createElement('PRE', { class: 'prettyprint' }, code); + var pre = $l.web.dom.createElement('PRE', { class: 'prettyprint' }, code); snippetArea.appendChild(pre); prettyPrint(); - $l.css.addClass(snippetArea, 'in'); + $l.web.css.addClass(snippetArea, 'in'); } function loadSnippet(ev, element) { - $l.css.removeClass(snippetArea, 'in'); + $l.web.css.removeClass(snippetArea, 'in'); - $l.css.removeClass($l(['li'], snippetList), 'active'); - $l.css.addClass(element.parentElement, 'active'); + $l.web.css.removeClass($l(['li'], snippetList), 'active'); + $l.web.css.addClass(element.parentElement, 'active'); - $l.dom.replace( + $l.web.dom.replace( $l('div', snippetDescription), element.getAttribute('title') ); - $l.css.addClass(snippetDescription, 'in'); + $l.web.css.addClass(snippetDescription, 'in'); $l.ajax.get( 'snippets/' + element.getAttribute('data-file') @@ -63,7 +63,7 @@ $l.ready(function() { prettyPrint(); - $l.dom.setEvent(checkboxExecSnippetOnLoad, 'change', drawSnippet); + $l.web.dom.setEvent(checkboxExecSnippetOnLoad, 'change', drawSnippet); $l.ajax.getJson( 'snippets.json' @@ -75,10 +75,10 @@ checkboxExecSnippetOnLoad.setAttribute('disabled', 'disabled'); } - var li = $l.dom.createElement('LI'); + var li = $l.web.dom.createElement('LI'); snippetList.appendChild(li); - var a = $l.dom.createElement( + var a = $l.web.dom.createElement( 'A', { href: 'javascript:;', @@ -88,7 +88,7 @@ response[item].name ); - $l.dom.setEvent(a, 'click', loadSnippet); + $l.web.dom.setEvent(a, 'click', loadSnippet); li.appendChild(a); } }); diff --git a/docs/benchmarks.html b/docs/benchmarks.html index 06ca3e2..ea93dce 100644 --- a/docs/benchmarks.html +++ b/docs/benchmarks.html @@ -183,11 +183,11 @@

laroux.js

laroux.js (Alternative)

-$l.id('home');
+$l.web.id('home');
                         

laroux.js (Alternative 2)

-$l.idc('home');
+$l.web.idc('home');
                         

jQuery/Zepto

@@ -219,7 +219,7 @@ 

laroux.js

laroux.js (Alternative)

-$l.dom.selectByClass('container');
+$l.web.dom.selectByClass('container');
                         

jQuery/Zepto

@@ -387,11 +387,11 @@ 

Create DOM Element

laroux.js

-$l.dom.createElement('DIV', { class: 'x' }, 'y');
+$l.web.dom.createElement('DIV', { class: 'x' }, 'y');
                         

laroux.js (Alternative)

-$l.dom.create('<div class="x">y</div>');
+$l.web.dom.create('<div class="x">y</div>');
                         

jQuery/Zepto

@@ -419,11 +419,11 @@ 

DOM Manipulations

laroux.js

-var div = $l.dom.createElement('DIV');
-$l.dom.append(div, 'appended');
-$l.dom.prepend(div, 'prepended');
-$l.dom.clear(div);
-$l.dom.remove(div);
+var div = $l.web.dom.createElement('DIV');
+$l.web.dom.append(div, 'appended');
+$l.web.dom.prepend(div, 'prepended');
+$l.web.dom.clear(div);
+$l.web.dom.remove(div);
                         

jQuery/Zepto

diff --git a/docs/index.html b/docs/index.html
index 334bf35..df9f3c0 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -162,10 +162,10 @@ 

Javascript

return response.json(); }).then(function (json) { - $l.dom.replace($l.id('text-ajax-get-request'), json.testResponse); + $l.web.dom.replace($l.web.id('text-ajax-get-request'), json.testResponse); }).catch(function (error) { - $l.dom.replace(text, 'Error: ' + error.message); + $l.web.dom.replace(text, 'Error: ' + error.message); });
@@ -191,7 +191,7 @@

Creating a variable animation

Javascript

-$l.anim.set({
+$l.web.anim.set({
     object:   document.body,
     property: 'scrollTop',
     from:     null,
@@ -218,8 +218,8 @@ 

HTML

Javascript

-$l.anim.setCss({
-    object:   $l.id('div-anim-css-animate'),
+$l.web.anim.setCss({
+    object:   $l.web.id('div-anim-css-animate'),
     property: 'top',
     from:     0, // current value
     to:       50,
@@ -256,9 +256,9 @@ 

HTML

Javascript

-var box = $l.id('div-css-transition');
+var box = $l.web.id('div-css-transition');
 
-$l.css.setTransition(
+$l.web.css.setTransition(
     box,
     [
         'background-color',
@@ -266,7 +266,7 @@ 

Javascript

] ); -$l.css.toggleClass(box, 'box-silver'); +$l.web.css.toggleClass(box, 'box-silver');
@@ -296,31 +296,31 @@

HTML

Javascript

-var text = $l.id('text-intl-dates');
+var text = $l.web.id('text-intl-dates');
 
 var now = new Date();
 var yesterday = new Date();
 yesterday.setDate(yesterday.getDate() - 1);
 
-$l.dom.clear(text);
+$l.web.dom.clear(text);
 
-$l.dom.append(text, '<div><strong>From yesterday to today:</strong></div>');
-$l.dom.append(text, $l.intl.parseEpoch(now.getTime() - yesterday.getTime()));
+$l.web.dom.append(text, '<div><strong>From yesterday to today:</strong></div>');
+$l.web.dom.append(text, $l.intl.parseEpoch(now.getTime() - yesterday.getTime()));
 
-$l.dom.append(text, '<div><strong>Short Date:</strong></div>');
-$l.dom.append(text, $l.intl.shortDate(now) + '<br />');
+$l.web.dom.append(text, '<div><strong>Short Date:</strong></div>');
+$l.web.dom.append(text, $l.intl.shortDate(now) + '<br />');
 
-$l.dom.append(text, '<div><strong>Short Date + month names:</strong></div>');
-$l.dom.append(text, $l.intl.shortDate(now, true) + '<br />');
+$l.web.dom.append(text, '<div><strong>Short Date + month names:</strong></div>');
+$l.web.dom.append(text, $l.intl.shortDate(now, true) + '<br />');
 
-$l.dom.append(text, '<div><strong>Long Date:</strong></div>');
-$l.dom.append(text, $l.intl.longDate(now) + '<br />');
+$l.web.dom.append(text, '<div><strong>Long Date:</strong></div>');
+$l.web.dom.append(text, $l.intl.longDate(now) + '<br />');
 
-$l.dom.append(text, '<div><strong>Long Date + month names:</strong></div>');
-$l.dom.append(text, $l.intl.longDate(now, true) + '<br />');
+$l.web.dom.append(text, '<div><strong>Long Date + month names:</strong></div>');
+$l.web.dom.append(text, $l.intl.longDate(now, true) + '<br />');
 
-$l.dom.append(text, '<div><strong>Custom Date:</strong></div>');
-$l.dom.append(text, $l.intl.customDate('dd/MM/yyyy HH:ss', now) + '<br />');
+$l.web.dom.append(text, '<div><strong>Custom Date:</strong></div>');
+$l.web.dom.append(text, $l.intl.customDate('dd/MM/yyyy HH:ss', now) + '<br />');
                         
@@ -354,9 +354,9 @@

HTML

Javascript

-var target = $l.id('target-dom-clone');
+var target = $l.web.id('target-dom-clone');
 
-$l.dom.clone(target.firstElementChild, $l.dom.cloneAppend);
+$l.web.dom.clone(target.firstElementChild, $l.web.dom.cloneAppend);
                         
@@ -387,16 +387,16 @@

HTML

Javascript

-var text = $l.id('text-events-setting-events');
+var text = $l.web.id('text-events-setting-events');
 
-$l.dom.setEvent(
-    $l.id('checkbox-events-setting-events'),
+$l.web.dom.setEvent(
+    $l.web.id('checkbox-events-setting-events'),
     'change',
     function(ev, element) {
         if (element.checked) {
-            $l.dom.replace(text, 'checked');
+            $l.web.dom.replace(text, 'checked');
         } else {
-            $l.dom.replace(text, 'unchecked');
+            $l.web.dom.replace(text, 'unchecked');
         }
 
         return false;
@@ -446,8 +446,8 @@ 

HTML

Javascript

-var serialized = $l.forms.serialize($l.id('target-forms-serializing'));
-$l.dom.replace($l.id('text-forms-serializing'), JSON.stringify(serialized));
+var serialized = $l.web.forms.serialize($l.web.id('target-forms-serializing'));
+$l.web.dom.replace($l.web.id('text-forms-serializing'), JSON.stringify(serialized));
                         
@@ -481,7 +481,7 @@

HTML

Javascript

-$l.forms.toggleFormEditing($l.id('target-forms-toggle'));
+$l.web.forms.toggleFormEditing($l.web.id('target-forms-toggle'));
                         
@@ -511,48 +511,48 @@

HTML

Javascript

-var text = $l.id('text-helpers-helpers');
+var text = $l.web.id('text-helpers-helpers');
 
-$l.dom.clear(text);
+$l.web.dom.clear(text);
 
-$l.dom.append(text, '<div><strong>Unique Id Generator:</strong></div>');
-$l.dom.append(text, $l.helpers.getUniqueId() + '<br />');
-$l.dom.append(text, $l.helpers.getUniqueId() + '<br />');
+$l.web.dom.append(text, '<div><strong>Unique Id Generator:</strong></div>');
+$l.web.dom.append(text, $l.getUniqueId() + '<br />');
+$l.web.dom.append(text, $l.getUniqueId() + '<br />');
 
-$l.dom.append(text, '<div><strong>Query String Generation:</strong></div>');
-$l.dom.append(text, $l.helpers.buildQueryString({ pageId: 5, showAll: 'yes' }) + '<br />');
+$l.web.dom.append(text, '<div><strong>Query String Generation:</strong></div>');
+$l.web.dom.append(text, $l.buildQueryString({ pageId: 5, showAll: 'yes' }) + '<br />');
 
-$l.dom.append(text, '<div><strong>Transform string into camel case:</strong></div>');
-$l.dom.append(text, $l.helpers.camelCase('text-align') + '<br />');
+$l.web.dom.append(text, '<div><strong>Transform string into camel case:</strong></div>');
+$l.web.dom.append(text, $l.camelCase('text-align') + '<br />');
 
-$l.dom.append(text, '<div><strong>Transform string back from camel case:</strong></div>');
-$l.dom.append(text, $l.helpers.antiCamelCase('textAlign') + '<br />');
+$l.web.dom.append(text, '<div><strong>Transform string back from camel case:</strong></div>');
+$l.web.dom.append(text, $l.antiCamelCase('textAlign') + '<br />');
 
-$l.dom.append(text, '<div><strong>Encoding special characters:</strong></div>');
-$l.dom.append(text, $l.helpers.quoteAttr('<br clear="all" />') + '<br />');
+$l.web.dom.append(text, '<div><strong>Encoding special characters:</strong></div>');
+$l.web.dom.append(text, $l.quoteAttr('<br clear="all" />') + '<br />');
 
-$l.dom.append(text, '<div><strong>Generating random value:</strong></div>');
-$l.dom.append(text, $l.helpers.random(1, 15) + '<br />');
-$l.dom.append(text, $l.helpers.random(1, 15) + '<br />');
+$l.web.dom.append(text, '<div><strong>Generating random value:</strong></div>');
+$l.web.dom.append(text, $l.random(1, 15) + '<br />');
+$l.web.dom.append(text, $l.random(1, 15) + '<br />');
 
-$l.dom.append(text, '<div><strong>Getting values from a single column:</strong></div>');
+$l.web.dom.append(text, '<div><strong>Getting values from a single column:</strong></div>');
 var arr = [{id: 1, count: 5}, {id: 2, count: 12}];
-$l.dom.append(text, JSON.stringify($l.helpers.column(arr, 'count')) + '<br />');
+$l.web.dom.append(text, JSON.stringify($l.column(arr, 'count')) + '<br />');
 
-$l.dom.append(text, '<div><strong>Shuffling values:</strong></div>');
-$l.dom.append(text, $l.helpers.shuffle([1, 2, 3, 4, 5]) + '<br />');
+$l.web.dom.append(text, '<div><strong>Shuffling values:</strong></div>');
+$l.web.dom.append(text, $l.shuffle([1, 2, 3, 4, 5]) + '<br />');
 
-$l.dom.append(text, '<div><strong>Merging objects:</strong></div>');
-$l.dom.append(text, JSON.stringify($l.merge({id: 1}, {name: 'eser', count: 5})) + '<br />');
+$l.web.dom.append(text, '<div><strong>Merging objects:</strong></div>');
+$l.web.dom.append(text, JSON.stringify($l.merge({id: 1}, {name: 'eser', count: 5})) + '<br />');
 
-$l.dom.append(text, '<div><strong>Getting count of elements:</strong></div>');
-$l.dom.append(text, $l.helpers.getLength({id: 1, name: 'eser', count: 5}) + '<br />');
+$l.web.dom.append(text, '<div><strong>Getting count of elements:</strong></div>');
+$l.web.dom.append(text, $l.getLength({id: 1, name: 'eser', count: 5}) + '<br />');
 
-$l.dom.append(text, '<div><strong>Getting elements with dot notation:</strong></div>');
-$l.dom.append(text, $l.helpers.getElement({id: 1, child: { a: 1, b: 2 }}, 'child.a') + '<br />');
+$l.web.dom.append(text, '<div><strong>Getting elements with dot notation:</strong></div>');
+$l.web.dom.append(text, $l.getElement({id: 1, child: { a: 1, b: 2 }}, 'child.a') + '<br />');
 
-$l.dom.append(text, '<div><strong>Getting keys for dot notation:</strong></div>');
-$l.dom.append(text, JSON.stringify($l.helpers.getKeysRecursive({id: 1, child: { a: 1, b: 2 }})) + '<br />');
+$l.web.dom.append(text, '<div><strong>Getting keys for dot notation:</strong></div>');
+$l.web.dom.append(text, JSON.stringify($l.getKeysRecursive({id: 1, child: { a: 1, b: 2 }})) + '<br />');
 
                         
@@ -583,13 +583,13 @@

HTML

Javascript

-var box = $l.id('div-storyboard-animation');
+var box = $l.web.id('div-storyboard-animation');
 
 var step1action1 = function () {
-    $l.css.setProperty(box, 'background-color', 'blue');
+    $l.web.css.setProperty(box, 'background-color', 'blue');
 };
 
-var step1action2 = $l.anim.setCss({
+var step1action2 = $l.web.anim.setCss({
     object:   box,
     property: 'left',
     from:     0, // current value
@@ -600,7 +600,7 @@ 

Javascript

}); var step2 = function () { - var promise = $l.anim.setCss({ + var promise = $l.web.anim.setCss({ object: box, property: 'left', from: 50, // current value @@ -614,7 +614,7 @@

Javascript

}; var step3 = function () { - $l.css.setProperty(box, 'background-color', 'red'); + $l.web.css.setProperty(box, 'background-color', 'red'); }; var myStory = new $l.storyboard(); @@ -659,14 +659,14 @@

HTML

Javascript

-var text = $l.id('text-keys-assign');
+var text = $l.web.id('text-keys-assign');
 var pressCount = 0;
 
-$l.keys.assign({
+$l.web.keys.assign({
     target: document,
     key: 'f7',
     callback: function() {
-        $l.dom.replace(text, 'pressed: ' + ++pressCount);
+        $l.web.dom.replace(text, 'pressed: ' + ++pressCount);
     }
 });
                         
@@ -709,10 +709,10 @@

Javascript

name: '' }); -$l.mvvm.init('mvvmsimple', myModel); +$l.web.mvvm.init('mvvmsimple', myModel); -$l.dom.setEvent( - $l.id('textbox-mvvm-simple'), +$l.web.dom.setEvent( + $l.web.id('textbox-mvvm-simple'), 'keyup', function(ev, element) { myModel.name = element.value; @@ -755,7 +755,7 @@

Javascript

} }); -$l.mvvm.init('mvvmcalculation', myModel); +$l.web.mvvm.init('mvvmcalculation', myModel);
@@ -787,7 +787,7 @@

Javascript

text: 'initial' }); -$l.mvvm.init('mvvmtwoway', myModel); +$l.web.mvvm.init('mvvmtwoway', myModel);
@@ -822,28 +822,28 @@

HTML

Javascript

-var text = $l.id('text-routes-routing');
-var button1 = $l.id('button-routes-routing-1');
-var button2 = $l.id('button-routes-routing-2');
-var button3 = $l.id('button-routes-routing-3');
+var text = $l.web.id('text-routes-routing');
+var button1 = $l.web.id('button-routes-routing-1');
+var button2 = $l.web.id('button-routes-routing-2');
+var button3 = $l.web.id('button-routes-routing-3');
 
-$l.routes.add(
+$l.web.routes.add(
     'test/:name',
     function (name, trans) {
-        $l.dom.clear(text);
+        $l.web.dom.clear(text);
 
-        $l.dom.append(text, '<div><strong>Name:</strong></div>');
-        $l.dom.append(text, name + '<br />');
+        $l.web.dom.append(text, '<div><strong>Name:</strong></div>');
+        $l.web.dom.append(text, name + '<br />');
 
-        $l.dom.append(text, '<div><strong>Transition Data:</strong></div>');
-        $l.dom.append(text, JSON.stringify(trans) + '<br />');
+        $l.web.dom.append(text, '<div><strong>Transition Data:</strong></div>');
+        $l.web.dom.append(text, JSON.stringify(trans) + '<br />');
     }
 );
-$l.routes.reload();
+$l.web.routes.reload();
 
-$l.dom.setEvent(button1, 'click', function () { $l.routes.go('test/route1'); });
-$l.dom.setEvent(button2, 'click', function () { $l.routes.go('test/route2'); });
-$l.dom.setEvent(button3, 'click', function () { $l.routes.go('test/route3'); });
+$l.web.dom.setEvent(button1, 'click', function () { $l.web.routes.go('test/route1'); });
+$l.web.dom.setEvent(button2, 'click', function () { $l.web.routes.go('test/route2'); });
+$l.web.dom.setEvent(button3, 'click', function () { $l.web.routes.go('test/route3'); });
                         
@@ -867,29 +867,29 @@

HTML

Javascript

-var text = $l.id('text-routes-namedrouting');
-var button1 = $l.id('button-routes-namedrouting-1');
-var button2 = $l.id('button-routes-namedrouting-2');
-var button3 = $l.id('button-routes-namedrouting-3');
+var text = $l.web.id('text-routes-namedrouting');
+var button1 = $l.web.id('button-routes-namedrouting-1');
+var button2 = $l.web.id('button-routes-namedrouting-2');
+var button3 = $l.web.id('button-routes-namedrouting-3');
 
-$l.routes.addNamed(
+$l.web.routes.addNamed(
     'test2',
     'testNamed/:name',
     function (name, trans) {
-        $l.dom.clear(text);
+        $l.web.dom.clear(text);
 
-        $l.dom.append(text, '<div><strong>Name:</strong></div>');
-        $l.dom.append(text, name + '<br />');
+        $l.web.dom.append(text, '<div><strong>Name:</strong></div>');
+        $l.web.dom.append(text, name + '<br />');
 
-        $l.dom.append(text, '<div><strong>Transition Data:</strong></div>');
-        $l.dom.append(text, JSON.stringify(trans) + '<br />');
+        $l.web.dom.append(text, '<div><strong>Transition Data:</strong></div>');
+        $l.web.dom.append(text, JSON.stringify(trans) + '<br />');
     }
 );
-$l.routes.reload();
+$l.web.routes.reload();
 
-$l.dom.setEvent(button1, 'click', function () { $l.routes.goNamed('test2', { name: 'route1' }); });
-$l.dom.setEvent(button2, 'click', function () { $l.routes.goNamed('test2', { name: 'route2' }); });
-$l.dom.setEvent(button3, 'click', function () { $l.routes.goNamed('test2', { name: 'route3' }); });
+$l.web.dom.setEvent(button1, 'click', function () { $l.web.routes.goNamed('test2', { name: 'route1' }); });
+$l.web.dom.setEvent(button2, 'click', function () { $l.web.routes.goNamed('test2', { name: 'route2' }); });
+$l.web.dom.setEvent(button3, 'click', function () { $l.web.routes.goNamed('test2', { name: 'route3' }); });
                         
@@ -925,12 +925,12 @@

HTML

Javascript

-var text = $l.id('text-templates-example');
-var script = $l.id('script-templates-example');
+var text = $l.web.id('text-templates-example');
+var script = $l.web.id('script-templates-example');
 
 var model = { name: { first: 'Jane', last: 'Doe' }, age: 25 };
 var result = $l.templates.apply(script, model);
-$l.dom.replace(text, result);
+$l.web.dom.replace(text, result);
                         
@@ -960,14 +960,14 @@

HTML

Javascript

-var text = $l.id('text-timers-set');
-$l.dom.replace(text, 'waiting...<br />');
+var text = $l.web.id('text-timers-set');
+$l.web.dom.replace(text, 'waiting...<br />');
 
 $l.timers.set({
     'timeout': 500,
     'reset': false,
     'ontick': function() {
-        $l.dom.append(text, 'time\'s up');
+        $l.web.dom.append(text, 'time\'s up');
     }
 });
                         
@@ -1001,32 +1001,32 @@

HTML

Javascript

-var box = $l.id('div-touch-events');
-var target = $l.id('target-touch-events');
+var box = $l.web.id('div-touch-events');
+var target = $l.web.id('target-touch-events');
 
-$l.dom.setEvent(
+$l.web.dom.setEvent(
     box,
     'tap',
     function(event) {
-        var createdElement = $l.dom.createElement('LI', { }, 'tap');
+        var createdElement = $l.web.dom.createElement('LI', { }, 'tap');
         target.appendChild(createdElement);
     }
 );
 
-$l.dom.setEvent(
+$l.web.dom.setEvent(
     box,
     'dbltap',
     function(event) {
-        var createdElement = $l.dom.createElement('LI', { }, 'dbltap');
+        var createdElement = $l.web.dom.createElement('LI', { }, 'dbltap');
         target.appendChild(createdElement);
     }
 );
 
-$l.dom.setEvent(
+$l.web.dom.setEvent(
     box,
     'longtap',
     function(event) {
-        var createdElement = $l.dom.createElement('LI', { }, 'longtap');
+        var createdElement = $l.web.dom.createElement('LI', { }, 'longtap');
         target.appendChild(createdElement);
     }
 );
@@ -1063,22 +1063,22 @@ 

Javascript

myModel.set('id', 1); myModel.setRange({count: 15, name: 'eser'}); -$l.dom.clear(text); +$l.web.dom.clear(text); -$l.dom.append(text, '<div><strong>Element with key \'id\':</strong></div>'); -$l.dom.append(text, myModel.get('id') + '<br />'); +$l.web.dom.append(text, '<div><strong>Element with key \'id\':</strong></div>'); +$l.web.dom.append(text, myModel.get('id') + '<br />'); -$l.dom.append(text, '<div><strong>Elements with keys \'id\' and \'name\':</strong></div>'); -$l.dom.append(text, JSON.stringify(myModel.getRange(['id', 'name'])) + '<br />'); +$l.web.dom.append(text, '<div><strong>Elements with keys \'id\' and \'name\':</strong></div>'); +$l.web.dom.append(text, JSON.stringify(myModel.getRange(['id', 'name'])) + '<br />'); -$l.dom.append(text, '<div><strong>Keys:</strong></div>'); -$l.dom.append(text, JSON.stringify(myModel.keys()) + '<br />'); +$l.web.dom.append(text, '<div><strong>Keys:</strong></div>'); +$l.web.dom.append(text, JSON.stringify(myModel.keys()) + '<br />'); -$l.dom.append(text, '<div><strong>Length:</strong></div>'); -$l.dom.append(text, JSON.stringify(myModel.length()) + '<br />'); +$l.web.dom.append(text, '<div><strong>Length:</strong></div>'); +$l.web.dom.append(text, JSON.stringify(myModel.length()) + '<br />'); -$l.dom.append(text, '<div><strong>Check if it has element with key \'name\':</strong></div>'); -$l.dom.append(text, JSON.stringify(myModel.exists('name')) + '<br />'); +$l.web.dom.append(text, '<div><strong>Check if it has element with key \'name\':</strong></div>'); +$l.web.dom.append(text, JSON.stringify(myModel.exists('name')) + '<br />');
@@ -1125,44 +1125,44 @@

HTML

Javascript

-var text = $l.id('text-vars');
-var select = $l.id('select-vars');
+var text = $l.web.id('text-vars');
+var select = $l.web.id('select-vars');
 
-$l.dom.setEvent(
-    $l.id('button-vars-set'),
+$l.web.dom.setEvent(
+    $l.web.id('button-vars-set'),
     'click',
     function() {
         var storage = select.options[select.selectedIndex].value;
         $l.vars.set(storage, 'demopage', 'a ' + storage + ' test<br />');
-        $l.dom.append(text, storage + ' set');
+        $l.web.dom.append(text, storage + ' set');
 
         return false;
     }
 );
 
-$l.dom.setEvent(
-    $l.id('button-vars-read'),
+$l.web.dom.setEvent(
+    $l.web.id('button-vars-read'),
     'click',
     function() {
         var storage = select.options[select.selectedIndex].value;
         var value = $l.vars.get(storage, 'demopage');
         if (value !== null) {
-            $l.dom.append(text, storage + '\'s value is: ' + value + '<br />');
+            $l.web.dom.append(text, storage + '\'s value is: ' + value + '<br />');
         } else {
-            $l.dom.append(text, 'you need to set a ' + storage + ' first<br />');
+            $l.web.dom.append(text, 'you need to set a ' + storage + ' first<br />');
         }
 
         return false;
     }
 );
 
-$l.dom.setEvent(
-    $l.id('button-vars-remove'),
+$l.web.dom.setEvent(
+    $l.web.id('button-vars-remove'),
     'click',
     function() {
         var storage = select.options[select.selectedIndex].value;
         $l.vars.remove(storage, 'demopage');
-        $l.dom.append(text, storage + ' is removed<br />');
+        $l.web.dom.append(text, storage + ' is removed<br />');
 
         return false;
     }
diff --git a/docs/snippets/auto-clear-texts.js b/docs/snippets/auto-clear-texts.js
index 2da3444..a838244 100644
--- a/docs/snippets/auto-clear-texts.js
+++ b/docs/snippets/auto-clear-texts.js
@@ -1,4 +1,4 @@
-$l.dom.setEvent(
+$l.web.dom.setEvent(
     $l(['input[type=text], input[type=password], textarea']),
     'focus',
     function(event, element) {
diff --git a/docs/snippets/auto-select-texts.js b/docs/snippets/auto-select-texts.js
index 805b285..f347e24 100644
--- a/docs/snippets/auto-select-texts.js
+++ b/docs/snippets/auto-select-texts.js
@@ -1,4 +1,4 @@
-$l.dom.setEvent(
+$l.web.dom.setEvent(
     $l(['input[type=text], input[type=password], textarea']),
     'click',
     function(event, element) {
diff --git a/docs/snippets/confirmation-buttons.js b/docs/snippets/confirmation-buttons.js
index 2ba1b75..45ec228 100644
--- a/docs/snippets/confirmation-buttons.js
+++ b/docs/snippets/confirmation-buttons.js
@@ -1,4 +1,4 @@
-$l.dom.setEvent(
+$l.web.dom.setEvent(
     $l(['.confirm-action']),
     'click',
     function(event, element) {
diff --git a/docs/snippets/remove-class-after-delay.js b/docs/snippets/remove-class-after-delay.js
index 35cbf1b..b4b2f29 100644
--- a/docs/snippets/remove-class-after-delay.js
+++ b/docs/snippets/remove-class-after-delay.js
@@ -1,5 +1,5 @@
 // replace the 'target-element' with your target element's id
-var target = $l.id('target-element');
+var target = $l.web.id('target-element');
 
 // set the class name
 var className = 'in';
@@ -11,6 +11,6 @@ $l.timers.set({
     'timeout': delay,
     'reset': false,
     'ontick': function() {
-        $l.css.removeClass(target, className);
+        $l.web.css.removeClass(target, className);
     }
 });
\ No newline at end of file
diff --git a/docs/snippets/smooth-page-scroll.js b/docs/snippets/smooth-page-scroll.js
index 42cc7f0..121c973 100644
--- a/docs/snippets/smooth-page-scroll.js
+++ b/docs/snippets/smooth-page-scroll.js
@@ -1,11 +1,11 @@
-$l.dom.setEvent(
+$l.web.dom.setEvent(
     $l(['.scroll-link']),
     'click',
     function(ev, element) {
         var targetElement = $l(element.getAttribute('href'));
-        var targetPosition = $l.css.top(targetElement);
+        var targetPosition = $l.web.css.top(targetElement);
 
-        $l.anim.set({
+        $l.web.anim.set({
             object:   document.body,
             property: 'scrollTop',
             from:     null,
diff --git a/docs/snippets/toggle-class-in-every-two-seconds.js b/docs/snippets/toggle-class-in-every-two-seconds.js
index 4fd5dd4..d5603b3 100644
--- a/docs/snippets/toggle-class-in-every-two-seconds.js
+++ b/docs/snippets/toggle-class-in-every-two-seconds.js
@@ -1,5 +1,5 @@
 // replace the 'target-element' with your target element's id
-var target = $l.id('target-element');
+var target = $l.web.id('target-element');
 
 // set the class name
 var className = 'in';
@@ -11,6 +11,6 @@ $l.timers.set({
     'timeout': delay,
     'reset': true,
     'ontick': function() {
-        $l.css.toggleClass(target, className);
+        $l.web.css.toggleClass(target, className);
     }
 });
\ No newline at end of file
diff --git a/src/laroux.web.mvvm/js/laroux.web.mvvm.js b/src/laroux.web.mvvm/js/laroux.web.mvvm.js
index 0db81e4..24281eb 100644
--- a/src/laroux.web.mvvm/js/laroux.web.mvvm.js
+++ b/src/laroux.web.mvvm/js/laroux.web.mvvm.js
@@ -8,7 +8,7 @@ let web_mvvm = {
 
     init: function (element, model) {
         if (element.constructor === String) {
-            element = $l.dom.selectById(element);
+            element = $l.web.dom.selectById(element);
         }
 
         // if (model.constructor !== types.Observable) {
@@ -64,7 +64,7 @@ let web_mvvm = {
         };
 
         for (let i = 0, length = app.eventElements.length; i < length; i++) {
-            $l.dom.setEvent(
+            $l.web.dom.setEvent(
                 app.eventElements[i].element,
                 app.eventElements[i].binding[null],
                 callback
diff --git a/src/laroux.web.ui/js/laroux.web.ui.dynamicDates.js b/src/laroux.web.ui/js/laroux.web.ui.dynamicDates.js
index c9d81fb..d6a584f 100644
--- a/src/laroux.web.ui/js/laroux.web.ui.dynamicDates.js
+++ b/src/laroux.web.ui/js/laroux.web.ui.dynamicDates.js
@@ -7,7 +7,7 @@ let web_ui_dynamicDates = {
 
     updateDates: function () {
         if (web_ui_dynamicDates.updateDatesElements === null) {
-            web_ui_dynamicDates.updateDatesElements = $l.dom.select('*[data-epoch]');
+            web_ui_dynamicDates.updateDatesElements = $l.web.dom.select('*[data-epoch]');
         }
 
         for (let item in web_ui_dynamicDates.updateDatesElements) {
@@ -19,7 +19,7 @@ let web_ui_dynamicDates = {
             // bitshifting (str >> 0) used instead of parseInt(str, 10)
             let date = new Date((obj.getAttribute('data-epoch') >> 0) * 1000);
 
-            $l.dom.replace(
+            $l.web.dom.replace(
                 obj,
                 $l.intl.shortDate(date)
             );
diff --git a/src/laroux.web.ui/js/laroux.web.ui.js b/src/laroux.web.ui/js/laroux.web.ui.js
index a761d1d..fbd4ba2 100644
--- a/src/laroux.web.ui/js/laroux.web.ui.js
+++ b/src/laroux.web.ui/js/laroux.web.ui.js
@@ -18,7 +18,7 @@ let web_ui = {
 
     createFloatContainer: function () {
         if (!web_ui.floatContainer) {
-            web_ui.floatContainer = $l.dom.createElement('DIV', { id: 'laroux-floatdiv', 'class': 'laroux-floatdiv' });
+            web_ui.floatContainer = $l.web.dom.createElement('DIV', { id: 'laroux-floatdiv', 'class': 'laroux-floatdiv' });
             document.body.insertBefore(web_ui.floatContainer, document.body.firstChild);
         }
     }
diff --git a/src/laroux.web.ui/js/laroux.web.ui.loading.js b/src/laroux.web.ui/js/laroux.web.ui.loading.js
index 6efe569..70bc10d 100644
--- a/src/laroux.web.ui/js/laroux.web.ui.loading.js
+++ b/src/laroux.web.ui/js/laroux.web.ui.loading.js
@@ -15,7 +15,7 @@ let web_ui_loading = {
     hide: function () {
         web_ui_loading.killTimer();
 
-        $l.css.setProperty(web_ui_loading.element, { display: 'none' });
+        $l.web.css.setProperty(web_ui_loading.element, { display: 'none' });
         localStorage.loadingIndicator = 'false';
     },
 
@@ -29,19 +29,19 @@ let web_ui_loading = {
         if (delay > 0) {
             setTimeout(function () { web_ui_loading.show(0); }, delay);
         } else {
-            $l.css.setProperty(web_ui_loading.element, { display: 'block' });
+            $l.web.css.setProperty(web_ui_loading.element, { display: 'block' });
             localStorage.loadingIndicator = 'true';
         }
     },
 
     init: function () {
         if (web_ui_loading.element === null && web_ui_loading.elementSelector !== null) {
-            web_ui_loading.element = $l.dom.selectSingle(web_ui_loading.elementSelector);
+            web_ui_loading.element = $l.web.dom.selectSingle(web_ui_loading.elementSelector);
         }
 
         if (web_ui_loading.element !== null) {
-            $l.dom.setEvent(global, 'load', web_ui_loading.hide);
-            $l.dom.setEvent(global, 'beforeunload', web_ui_loading.show);
+            $l.web.dom.setEvent(global, 'load', web_ui_loading.hide);
+            $l.web.dom.setEvent(global, 'beforeunload', web_ui_loading.show);
 
             if (localStorage.loadingIndicator !== undefined && localStorage.loadingIndicator == 'true') {
                 web_ui_loading.show(0);
diff --git a/src/laroux.web.ui/js/laroux.web.ui.popup.js b/src/laroux.web.ui/js/laroux.web.ui.popup.js
index 7f65fc9..173f31a 100644
--- a/src/laroux.web.ui/js/laroux.web.ui.popup.js
+++ b/src/laroux.web.ui/js/laroux.web.ui.popup.js
@@ -8,7 +8,7 @@ let web_ui_popup = {
     defaultTimeout: 500,
 
     createBox: function (id, xclass, message) {
-        return $l.dom.createElement('DIV', { id: id, 'class': xclass },
+        return $l.web.dom.createElement('DIV', { id: id, 'class': xclass },
             message
         );
     },
@@ -19,14 +19,14 @@ let web_ui_popup = {
 
         web_ui.floatContainer.appendChild(obj);
 
-        $l.css.setProperty(obj, { opacity: 1 });
+        $l.web.css.setProperty(obj, { opacity: 1 });
 
         $l.timers.set({
             timeout: timeout,
             reset: false,
             ontick: function (x) {
-                // $l.css.setProperty(x, {opacity: 0});
-                $l.dom.remove(x);
+                // $l.web.css.setProperty(x, {opacity: 0});
+                $l.web.dom.remove(x);
             },
             state: obj
         });
diff --git a/src/laroux.web.ui/js/laroux.web.ui.scrollView.js b/src/laroux.web.ui/js/laroux.web.ui.scrollView.js
index 83c5da1..5dd39e3 100644
--- a/src/laroux.web.ui/js/laroux.web.ui.scrollView.js
+++ b/src/laroux.web.ui/js/laroux.web.ui.scrollView.js
@@ -6,25 +6,25 @@ let web_ui_scrollView = {
     selectedElements: [],
 
     onhidden: function (elements) {
-        $l.css.setProperty(elements, { opacity: 0 });
-        $l.css.setTransition(elements, ['opacity']);
+        $l.web.css.setProperty(elements, { opacity: 0 });
+        $l.web.css.setTransition(elements, ['opacity']);
     },
 
     onreveal: function (elements) {
-        $l.css.setProperty(elements, { opacity: 1 });
+        $l.web.css.setProperty(elements, { opacity: 1 });
     },
 
     set: function (element) {
         let elements = $l.getAsArray(element);
 
         for (let i = 0, length = elements.length; i < length; i++) {
-            if (!$l.css.inViewport(elements[i])) {
+            if (!$l.web.css.inViewport(elements[i])) {
                 web_ui_scrollView.selectedElements.push(elements[i]);
             }
         }
 
         web_ui_scrollView.onhidden(web_ui_scrollView.selectedElements);
-        $l.dom.setEvent(global, 'scroll', web_ui_scrollView.reveal);
+        $l.web.dom.setEvent(global, 'scroll', web_ui_scrollView.reveal);
     },
 
     reveal: function () {
@@ -34,7 +34,7 @@ let web_ui_scrollView = {
         $l.each(
             web_ui_scrollView.selectedElements,
             function (i, element) {
-                if ($l.css.inViewport(element)) {
+                if ($l.web.css.inViewport(element)) {
                     removeKeys.unshift(i);
                     elements.push(element);
                 }
@@ -50,7 +50,7 @@ let web_ui_scrollView = {
         }
 
         if (web_ui_scrollView.selectedElements.length === 0) {
-            $l.dom.unsetEvent(global, 'scroll', web_ui_scrollView.reveal);
+            $l.web.dom.unsetEvent(global, 'scroll', web_ui_scrollView.reveal);
         }
 
         if (elements.length > 0) {
diff --git a/src/laroux.web/js/laroux.web.forms.js b/src/laroux.web/js/laroux.web.forms.js
index 6753943..ef17b48 100644
--- a/src/laroux.web/js/laroux.web.forms.js
+++ b/src/laroux.web/js/laroux.web.forms.js
@@ -4,7 +4,7 @@
 
 let web_forms = {
     ajaxForm: function (formobj, callback, callbackBegin) {
-        $l.dom.setEvent(formobj, 'submit', function () {
+        $l.web.dom.setEvent(formobj, 'submit', function () {
             if (callbackBegin !== undefined) {
                 callbackBegin();
             }
diff --git a/src/laroux.web/js/laroux.web.js b/src/laroux.web/js/laroux.web.js
index c682fa6..3c675ad 100644
--- a/src/laroux.web/js/laroux.web.js
+++ b/src/laroux.web/js/laroux.web.js
@@ -56,7 +56,7 @@ if ('document' in global) {
     );
 }
 
-// $l.extendNs('web', web);
-$l.extend(web);
+$l.extendNs('web', web);
+// $l.extend(web);
 
 export default web;
diff --git a/src/laroux.web/js/laroux.web.keys.js b/src/laroux.web/js/laroux.web.keys.js
index e734878..df2e866 100644
--- a/src/laroux.web/js/laroux.web.keys.js
+++ b/src/laroux.web/js/laroux.web.keys.js
@@ -140,7 +140,7 @@ let web_keys = {
             return false;
         };
 
-        $l.dom.setEvent(options.target || document, 'keydown', wrapper);
+        $l.web.dom.setEvent(options.target || document, 'keydown', wrapper);
     }
 };
 
diff --git a/src/laroux.web/js/laroux.web.touch.js b/src/laroux.web/js/laroux.web.touch.js
index 1a912c6..b846e0a 100644
--- a/src/laroux.web/js/laroux.web.touch.js
+++ b/src/laroux.web/js/laroux.web.touch.js
@@ -38,9 +38,9 @@ let web_touch = {
         ];
 
         for (let i = 0, length = events.length; i < length; i++) {
-            $l.dom.setEventSingle(document, web_touch.events.start[events[i]], web_touch.onstart);
-            $l.dom.setEventSingle(document, web_touch.events.end[events[i]], web_touch.onend);
-            $l.dom.setEventSingle(document, web_touch.events.move[events[i]], web_touch.locatePointer);
+            $l.web.dom.setEventSingle(document, web_touch.events.start[events[i]], web_touch.onstart);
+            $l.web.dom.setEventSingle(document, web_touch.events.end[events[i]], web_touch.onend);
+            $l.web.dom.setEventSingle(document, web_touch.events.move[events[i]], web_touch.locatePointer);
         }
     },
 
@@ -57,7 +57,7 @@ let web_touch = {
                     web_touch.cached[1] >= web_touch.pos[1] - web_touch.precision &&
                     web_touch.cached[1] <= web_touch.pos[1] + web_touch.precision) {
                 if (web_touch.touchStarted === null) {
-                    $l.dom.dispatchEvent(
+                    $l.web.dom.dispatchEvent(
                         event.target,
                         (web_touch.tapCount === 2) ? 'dbltap' : 'tap',
                         {
@@ -72,7 +72,7 @@ let web_touch = {
                 }
 
                 if (Date.now() - web_touch.touchStarted > web_touch.longTapTreshold) {
-                    $l.dom.dispatchEvent(
+                    $l.web.dom.dispatchEvent(
                         event.target,
                         'longtap',
                         {
@@ -116,19 +116,19 @@ let web_touch = {
         web_touch.touchStarted = null;
 
         if (delta[0] <= -web_touch.swipeTreshold) {
-            $l.dom.dispatchEvent(event.target, 'swiperight', data);
+            $l.web.dom.dispatchEvent(event.target, 'swiperight', data);
         }
 
         if (delta[0] >= web_touch.swipeTreshold) {
-            $l.dom.dispatchEvent(event.target, 'swipeleft', data);
+            $l.web.dom.dispatchEvent(event.target, 'swipeleft', data);
         }
 
         if (delta[1] <= -web_touch.swipeTreshold) {
-            $l.dom.dispatchEvent(event.target, 'swipedown', data);
+            $l.web.dom.dispatchEvent(event.target, 'swipedown', data);
         }
 
         if (delta[1] >= web_touch.swipeTreshold) {
-            $l.dom.dispatchEvent(event.target, 'swipeup', data);
+            $l.web.dom.dispatchEvent(event.target, 'swipeup', data);
         }
     }
 };