@wiajs/core 0.1.12 → 0.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build.js +11 -6
- package/dist/core.common.js +200 -120
- package/dist/core.common.min.js +3 -3
- package/dist/core.esm.js +198 -119
- package/dist/core.esm.min.js +3 -3
- package/dist/core.js +202 -122
- package/dist/core.min.js +3 -3
- package/lib/bmap.js +12 -12
- package/package.json +1 -2
- package/util/tool.js +50 -2
- package/util/wiafile.js +41 -26
- package/util/wiapage.js +27 -20
package/dist/core.min.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* wia core v0.1.
|
|
3
|
-
* (c)
|
|
2
|
+
* wia core v0.1.16
|
|
3
|
+
* (c) 2021 Sibyl Yu
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
|
-
var e,t;e=this,t=function(e){"use strict";var t=function(){function e(){}var t=e.prototype;return t.post=function(e,t){return new Promise((function(n,o){var r=$.getXhr();r.onreadystatechange=function(){4===r.readyState&&(200===r.status?n(r.responseText):o(new Error(r.statusText),r.responseText))},r.open("POST",e,!0);var i=t;"object"==typeof t&&(i=function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n+"="+e[n]);return t.sort().join("&")}(t)),r.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),r.send(i)}))},t.postForm=function(e,t){return new Promise((function(n,o){var r=$.getXhr();r.onreadystatechange=function(){4===r.readyState&&(200===r.status?n(null,r.responseText):o(new Error(r.status),r.responseText))},r.open("POST",e,!0),r.send(t)}))},t.get=function(e,t){return $.get(e,t)},e}();function n(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function o(e,t,o){return t&&n(e.prototype,t),o&&n(e,o),e}function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function i(e,t){return(i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function a(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function s(e,t,n){return(s=a()?Reflect.construct:function(e,t,n){var o=[null];o.push.apply(o,t);var r=new(Function.bind.apply(e,o));return n&&i(r,n.prototype),r}).apply(null,arguments)}function c(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var u=1,l={uniqueNumber:function(){return u+=1},id:function(e,t){return void 0===e&&(e="xxxxxxxxxx"),void 0===t&&(t="0123456789abcdef"),$.uid(e,t)},mdPreloaderContent:'\n <span class="preloader-inner">\n <span class="preloader-inner-gap"></span>\n <span class="preloader-inner-left">\n <span class="preloader-inner-half-circle"></span>\n </span>\n <span class="preloader-inner-right">\n <span class="preloader-inner-half-circle"></span>\n </span>\n </span>\n '.trim(),iosPreloaderContent:('\n <span class="preloader-inner">\n '+[0,1,2,3,4,5,6,7,8,9,10,11].map((function(){return'<span class="preloader-inner-line"></span>'})).join("")+"\n </span>\n ").trim(),auroraPreloaderContent:'\n <span class="preloader-inner">\n <span class="preloader-inner-circle"></span>\n </span>\n ',eventNameToColonCase:function(e){var t;return e.split("").map((function(e,n){return e.match(/[A-Z]/)&&0!==n&&!t?(t=!0,":"+e.toLowerCase()):e.toLowerCase()})).join("")},deleteProps:function(e){$.deleteProps(e)},nextTick:function(e,t){return void 0===t&&(t=0),setTimeout(e,t)},nextFrame:function(e){return $.nextFrame(e)},now:function(){return Date.now()},requestAnimationFrame:function(e){return $.requestAnimationFrame(e)},cancelAnimationFrame:function(e){return $.cancelAnimationFrame(e)},parseUrlQuery:function(e){return $.urlParam(e)},getTranslate:function(e,t){return void 0===t&&(t="x"),$.getTranslate(e,t)},serializeObject:function(e,t){if(void 0===t&&(t=[]),"string"==typeof e)return e;var n,o=[];function r(e){if(t.length>0){for(var n="",o=0;o<t.length;o+=1)n+=0===o?t[o]:"["+encodeURIComponent(t[o])+"]";return n+"["+encodeURIComponent(e)+"]"}return encodeURIComponent(e)}function i(e){return encodeURIComponent(e)}return Object.keys(e).forEach((function(a){var s;if(Array.isArray(e[a])){s=[];for(var c=0;c<e[a].length;c+=1)Array.isArray(e[a][c])||"object"!=typeof e[a][c]?s.push(r(a)+"[]="+i(e[a][c])):((n=t.slice()).push(a),n.push(String(c)),s.push(l.serializeObject(e[a][c],n)));s.length>0&&o.push(s.join("&"))}else null===e[a]||""===e[a]?o.push(r(a)+"="):"object"==typeof e[a]?((n=t.slice()).push(a),""!==(s=l.serializeObject(e[a],n))&&o.push(s)):void 0!==e[a]&&""!==e[a]?o.push(r(a)+"="+i(e[a])):""===e[a]&&o.push(r(a))})),o.join("&")},isObject:function(e){return"object"==typeof e&&null!==e&&e.constructor&&e.constructor===Object},merge:function(){var e;return(e=$).merge.apply(e,arguments)},extend:function(){for(var e,t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];var r=n[0];return n.splice(0,1),(e=$).assign.apply(e,[r].concat(n))},colorHexToRgb:function(e){var t=e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,(function(e,t,n,o){return t+t+n+n+o+o})),n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return n?n.slice(1).map((function(e){return parseInt(e,16)})):null},colorRgbToHex:function(e,t,n){return"#"+[e,t,n].map((function(e){var t=e.toString(16);return 1===t.length?"0"+t:t})).join("")},colorRgbToHsl:function(e,t,n){e/=255,t/=255,n/=255;var o,r=Math.max(e,t,n),i=Math.min(e,t,n),a=r-i;0===a?o=0:r===e?o=(t-n)/a%6:r===t?o=(n-e)/a+2:r===n&&(o=(e-t)/a+4);var s=(i+r)/2;return o<0&&(o=6+o),[60*o,0===a?0:a/(1-Math.abs(2*s-1)),s]},colorHslToRgb:function(e,t,n){var o,r=(1-Math.abs(2*n-1))*t,i=e/60,a=r*(1-Math.abs(i%2-1));Number.isNaN(e)||void 0===e?o=[0,0,0]:i<=1?o=[r,a,0]:i<=2?o=[a,r,0]:i<=3?o=[0,r,a]:i<=4?o=[0,a,r]:i<=5?o=[a,0,r]:i<=6&&(o=[r,0,a]);var s=n-r/2;return o.map((function(e){return Math.max(0,Math.min(255,Math.round(255*(e+s))))}))},colorHsbToHsl:function(e,t,n){var o={h:e,s:0,l:0},r=t,i=n;return o.l=(2-r)*i/2,o.s=o.l&&o.l<1?r*i/(o.l<.5?2*o.l:2-2*o.l):o.s,[o.h,o.s,o.l]},colorHslToHsb:function(e,t,n){var o={h:e,s:0,b:0},r=n,i=t*(r<.5?r:1-r);return o.b=r+i,o.s=r>0?2*i/o.b:o.s,[o.h,o.s,o.b]},colorThemeCSSProperties:function(){for(var e,t,n=arguments.length,o=new Array(n),r=0;r<n;r++)o[r]=arguments[r];if(1===o.length?(e=o[0],t=l.colorHexToRgb(e)):3===o.length&&(t=o,e=l.colorRgbToHex.apply(l,t)),!t)return{};var i=l.colorRgbToHsl.apply(l,t),a=[i[0],i[1],Math.max(0,i[2]-.08)],s=[i[0],i[1],Math.max(0,i[2]+.08)],c=l.colorRgbToHex.apply(l,l.colorHslToRgb.apply(l,a)),u=l.colorRgbToHex.apply(l,l.colorHslToRgb.apply(l,s));return{"--f7-theme-color":e,"--f7-theme-color-rgb":t.join(", "),"--f7-theme-color-shade":c,"--f7-theme-color-tint":u}}},d=function(){function e(e,t){void 0===e&&(e={}),void 0===t&&(t=[]);var n=this;n.params=e,n.eventsParents=t,n.eventsListeners={},n.params&&n.params.on&&Object.keys(n.params.on).forEach((function(e){n.on(e,n.params.on[e])}))}var t=e.prototype;return t.on=function(e,t,n){var o=this;if("function"!=typeof t)return o;var r=n?"unshift":"push";return e.split(" ").forEach((function(e){o.eventsListeners[e]||(o.eventsListeners[e]=[]),o.eventsListeners[e][r](t)})),o},t.once=function(e,t,n){var o=this;if("function"!=typeof t)return o;function r(){o.off(e,r),r.proxy&&delete r.proxy;for(var n=arguments.length,i=new Array(n),a=0;a<n;a++)i[a]=arguments[a];t.apply(o,i)}return r.proxy=t,o.on(e,r,n)},t.off=function(e,t){var n=this;return n.eventsListeners?(e.split(" ").forEach((function(e){void 0===t?n.eventsListeners[e]=[]:n.eventsListeners[e]&&n.eventsListeners[e].forEach((function(o,r){(o===t||o.proxy&&o.proxy===t)&&n.eventsListeners[e].splice(r,1)}))})),n):n},t.emit=function(){var e,t,n,o,r=this;if(!r.eventsListeners)return r;for(var i=arguments.length,a=new Array(i),s=0;s<i;s++)a[s]=arguments[s];"string"==typeof a[0]||Array.isArray(a[0])?(e=a[0],t=a.slice(1,a.length),n=r,o=r.eventsParents):(e=a[0].events,t=a[0].data,n=a[0].context||r,o=a[0].local?[]:a[0].parents||r.eventsParents);var c=Array.isArray(e)?e:e.split(" "),u=c.map((function(e){return e.replace("local::","")})),l=c.filter((function(e){return e.indexOf("local::")<0}));return u.forEach((function(e){if(r.eventsListeners&&r.eventsListeners[e]){var o=[];r.eventsListeners[e].forEach((function(e){o.push(e)})),o.forEach((function(e){e.apply(n,t)}))}})),o&&o.length>0&&o.forEach((function(e){e.emit.apply(e,[l].concat(t))})),r},e}(),p=function(e){function t(t,n){return void 0===t&&(t={}),void 0===n&&(n=[]),e.call(this,t,n)||this}r(t,e);var n=t.prototype;return n.useModuleParams=function(e,t){if(e.params){var n={};Object.keys(e.params).forEach((function(e){void 0!==t[e]&&(n[e]=$.extend({},t[e]))})),$.extend(t,e.params),Object.keys(n).forEach((function(e){$.extend(t[e],n[e])}))}},n.useModulesParams=function(e){var t=this;t.modules&&Object.keys(t.modules).forEach((function(n){var o=t.modules[n];o.params&&$.extend(e,o.params)}))},n.useModule=function(e,t){void 0===e&&(e=""),void 0===t&&(t={});var n=this;if(n.modules){var o="string"==typeof e?n.modules[e]:e;o&&(o.instance&&Object.keys(o.instance).forEach((function(e){var t=o.instance[e];n[e]="function"==typeof t?t.bind(n):t})),o.on&&n.on&&Object.keys(o.on).forEach((function(e){n.on(e,o.on[e])})),o.vnode&&(n.vnodeHooks||(n.vnodeHooks={}),Object.keys(o.vnode).forEach((function(e){Object.keys(o.vnode[e]).forEach((function(t){var r=o.vnode[e][t];n.vnodeHooks[t]||(n.vnodeHooks[t]={}),n.vnodeHooks[t][e]||(n.vnodeHooks[t][e]=[]),n.vnodeHooks[t][e].push(r.bind(n))}))}))),o.create&&o.create.bind(n)(t))}},n.useModules=function(e){void 0===e&&(e={});var t=this;t.modules&&Object.keys(t.modules).forEach((function(n){var o=e[n]||{};t.useModule(n,o)}))},t.installModule=function(e){var t=this;t.prototype.modules||(t.prototype.modules={});var n=e.name||Object.keys(t.prototype.modules).length+"_"+$.now();if(t.prototype.modules[n]=e,e.proto&&Object.keys(e.proto).forEach((function(n){t.prototype[n]=e.proto[n]})),e.static&&Object.keys(e.static).forEach((function(n){t[n]=e.static[n]})),e.install){for(var o=arguments.length,r=new Array(o>1?o-1:0),i=1;i<o;i++)r[i-1]=arguments[i];e.install.apply(t,r)}return t},t.use=function(e){var t=this;if(Array.isArray(e))return e.forEach((function(e){return t.installModule(e)})),t;for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r<n;r++)o[r-1]=arguments[r];return t.installModule.apply(t,[e].concat(o))},o(t,null,[{key:"components",set:function(e){this.use&&this.use(e)}}]),t}(d);function f(e){void 0===e&&(e={});var t=e,n=t.defaultSelector,o=t.constructor,r=t.domProp,i=t.app,a=t.addMethods,c={create:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return s(o,i?[i].concat(t):t)},get:function(e){if(void 0===e&&(e=n),e instanceof o)return e;var t=$(e);return 0!==t.length?t[0][r]:void 0},destroy:function(e){var t=c.get(e);if(t&&t.destroy)return t.destroy()}};return a&&Array.isArray(a)&&a.forEach((function(e){c[e]=function(t){void 0===t&&(t=n);for(var o=c.get(t),r=arguments.length,i=new Array(r>1?r-1:0),a=1;a<r;a++)i[a-1]=arguments[a];if(o&&o[e])return o[e].apply(o,i)}})),c}function m(e){void 0===e&&(e={});var t=e,n=t.defaultSelector,o=t.constructor,r=t.app;return $.extend(f({defaultSelector:n,constructor:o,app:r,domProp:"f7Modal"}),{open:function(e,t){var n=$(e),i=n[0].f7Modal;return i||(i=new o(r,{el:n})),i.open(t)},close:function(e,t){void 0===e&&(e=n);var i=$(e);if(0!==i.length){var a=i[0].f7Modal;return a||(a=new o(r,{el:i})),a.close(t)}}})}var h=[];function v(e){var t=this;return new Promise((function(n,o){var r,i,a,s=t.instance;if(e){if("string"==typeof e){var c=e.match(/([a-z0-9-]*)/i);if(e.indexOf(".")<0&&c&&c[0].length===e.length){if(!s||s&&!s.params.lazyModulesPath)return void o(new Error('Wia: "lazyModulesPath" app parameter must be specified to fetch module by name'));r=s.params.lazyModulesPath+"/"+e+".js"}else r=e}else"function"==typeof e?a=e:i=e;if(a){var u=a(t,!1);if(!u)return void o(new Error("Wia: Can't find Wia component in specified component function"));if(t.prototype.modules&&t.prototype.modules[u.name])return void n();f(u),n()}if(i){var l=i;if(!l)return void o(new Error("Wia: Can't find Wia component in specified component"));if(t.prototype.modules&&t.prototype.modules[l.name])return void n();f(l),n()}if(r){if(h.indexOf(r)>=0)return void n();h.push(r);var d=new Promise((function(e,n){t.request.get(r,(function(o){var i="wia_component_loader_callback_"+$.id(),a=document.createElement("script");a.innerHTML="window."+i+" = function (Wia, WiaAutoInstallComponent) {return "+o.trim()+"}",$("head").append(a);var s=window[i];delete window[i],$(a).remove();var c=s(t,!1);c?(t.prototype.modules&&t.prototype.modules[c.name]||f(c),e()):n(new Error("Wia: Can't find Wia component in "+r+" file"))}),(function(e,t){n(e,t)}))})),p=new Promise((function(e){t.request.get(r.replace(".js",s.rtl?".rtl.css":".css"),(function(t){var n=document.createElement("style");n.innerHTML=t,$("head").append(n),e()}),(function(){e()}))}));Promise.all([d,p]).then((function(){n()})).catch((function(e){o(e)}))}}else o(new Error("Wia: Lazy module must be specified"));function f(e){t.use(e),s&&(s.useModuleParams(e,s.params),s.useModule(e))}}))}var y={name:"resize",instance:{getSize:function(){if(!this.root[0])return{width:0,height:0,left:0,top:0};var e=this.root.offset(),t=[this.root[0].offsetWidth,this.root[0].offsetHeight,e.left,e.top],n=t[0],o=t[1],r=t[2],i=t[3];return this.width=n,this.height=o,this.left=r,this.top=i,{width:n,height:o,left:r,top:i}}},on:{init:function(){var e=this;e.getSize(),window.addEventListener("resize",(function(){e.emit("resize")}),!1),window.addEventListener("orientationchange",(function(){e.emit("orientationchange")}))},orientationchange:function(){this.device.ipad&&(document.body.scrollLeft=0,setTimeout((function(){document.body.scrollLeft=0}),0))},resize:function(){this.getSize()}}};function g(e){var t,n,o;t=function(t){e.emit({events:"click",data:[t]})},$.support.touch?(document.addEventListener("touchstart",(function(e){n=e.changedTouches[0].clientX,o=e.changedTouches[0].clientY}),!0),document.addEventListener("touchend",(function(e){var r=Math.abs(e.changedTouches[0].clientX-n),i=Math.abs(e.changedTouches[0].clientY-o);r<=5&&i<=5&&t.call(this,e)}),!0)):document.addEventListener("click",t,!0),e.on("click",(function(t){var n=$(t.target),o=n.closest("a");o.length>0&&o.attr("href"),Object.keys(e.modules).forEach((function(o){var r=e.modules[o].clicks;r&&(t.preventF7Router||Object.keys(r).forEach((function(o){var i=n.closest(o).eq(0);i.length>0&&r[o].call(e,i,i.dataset(),t)})))}))}))}var w={name:"clicks",params:{clicks:{externalLinks:".ext"}},on:{init:function(){g(this)}}},b={registrations:[],register:function(e,t){var n=this;return"serviceWorker"in window.navigator&&n.serviceWorker.container?new Promise((function(o,r){n.serviceWorker.container.register(e,t?{scope:t}:{}).then((function(e){b.registrations.push(e),n.emit("serviceWorkerRegisterSuccess",e),o(e)})).catch((function(e){n.emit("serviceWorkerRegisterError",e),r(e)}))})):new Promise((function(e,t){t(new Error("Service worker is not supported"))}))},unregister:function(e){var t,n=this;return"serviceWorker"in window.navigator&&n.serviceWorker.container?(t=e?Array.isArray(e)?e:[e]:b.registrations,Promise.all(t.map((function(e){return new Promise((function(t,o){e.unregister().then((function(){b.registrations.indexOf(e)>=0&&b.registrations.splice(b.registrations.indexOf(e),1),n.emit("serviceWorkerUnregisterSuccess",e),t()})).catch((function(t){n.emit("serviceWorkerUnregisterError",e,t),o(t)}))}))})))):new Promise((function(e,t){t(new Error("Service worker is not supported"))}))}},k={name:"sw",params:{serviceWorker:{path:void 0,scope:void 0}},create:function(){$.extend(this,{serviceWorker:{container:"serviceWorker"in window.navigator?window.navigator.serviceWorker:void 0,registrations:b.registrations,register:b.register.bind(this),unregister:b.unregister.bind(this)}})},on:{init:function(){if("serviceWorker"in window.navigator){var e=this;if(e.serviceWorker.container){var t=e.params.serviceWorker.path,n=e.params.serviceWorker.scope;!t||Array.isArray(t)&&!t.length||(Array.isArray(t)?t:[t]).forEach((function(t){e.serviceWorker.register(t,n)}))}}}}},C=$.support,E=$.device,x=function(e){function t(n){var o;if(o=e.call(this,n)||this,t.instance)throw new Error("App is already initialized and can't be initialized more than once");var r=$.extend({},n),i=c(o);i.device=E,i.support=C,t.instance=i,$.app=i,$.App=t;var a={version:"1.0.0",id:"pub.wia.testapp",root:"body",theme:"auto",language:window.navigator.language,routes:[],name:"wia",lazyModulesPath:null,initOnDeviceReady:!0,init:!0,autoDarkTheme:!1,iosTranslucentBars:!0,iosTranslucentModals:!0,component:void 0,componentUrl:void 0};i.useModulesParams(a),i.params=$.extend(a,n);var s=$(i.params.root);$.extend(i,{id:i.params.id,name:i.params.name,version:i.params.version,routes:i.params.routes,language:i.params.language,root:s,cfg:i.params.cfg,api:i.params.api,rtl:"rtl"===s.css("direction"),theme:"auto"===i.params.theme?E.ios?"ios":E.desktop&&E.electron?"aurora":"md":i.params.theme,passedParams:r,online:window.navigator.onLine}),i.root&&i.root[0]&&(i.root[0].wia=i),E.ios&&E.webView&&window.addEventListener("touchstart",(function(){})),i.touchEvents={start:C.touch?"touchstart":C.pointerEvents?"pointerdown":"mousedown",move:C.touch?"touchmove":C.pointerEvents?"pointermove":"mousemove",end:C.touch?"touchend":C.pointerEvents?"pointerup":"mouseup"},i.useModules(),i.initData();var u="(prefers-color-scheme: dark)",l="(prefers-color-scheme: light)";function d(){E.cordova&&i.params.initOnDeviceReady?$(document).on("deviceready",(function(){i.init()})):i.init()}return i.mq={},window.matchMedia&&(i.mq.dark=window.matchMedia(u),i.mq.light=window.matchMedia(l)),i.colorSchemeListener=function(e){var t=e.matches,n=e.media;if(t){var o=document.querySelector("html");n===u?o.classList.add("theme-dark"):n===l&&o.classList.remove("theme-dark")}},i.params.component||i.params.componentUrl?i.router.componentLoader(i.params.component,i.params.componentUrl,{componentOptions:{el:i.root[0]}},(function(e){i.root=$(e),i.root[0].f7=i,i.rootComponent=e.f7Component,i.params.init&&d()})):i.params.init&&d(),i||c(o)}r(t,e);var n=t.prototype;return n.initData=function(){var e=this;e.data={},e.params.data&&"function"==typeof e.params.data?$.extend(e.data,e.params.data.bind(e)()):e.params.data&&$.extend(e.data,e.params.data),e.methods={},e.params.methods&&Object.keys(e.params.methods).forEach((function(t){"function"==typeof e.params.methods[t]?e.methods[t]=e.params.methods[t].bind(e):e.methods[t]=e.params.methods[t]}))},n.enableAutoDarkTheme=function(){if(window.matchMedia){var e=this,t=document.querySelector("html");e.mq.dark&&e.mq.light&&(e.mq.dark.addListener(e.colorSchemeListener),e.mq.light.addListener(e.colorSchemeListener)),e.mq.dark&&e.mq.dark.matches?t.classList.add("theme-dark"):e.mq.light&&e.mq.light.matches&&t.classList.remove("theme-dark")}},n.disableAutoDarkTheme=function(){window.matchMedia&&(this.mq.dark&&this.mq.dark.removeListener(this.colorSchemeListener),this.mq.light&&this.mq.light.removeListener(this.colorSchemeListener))},n.init=function(){var e,t,n,o=this;return o.initialized||(o.root.addClass("framework7-initializing"),o.rtl&&$("html").attr("dir","rtl"),o.params.autoDarkTheme&&o.enableAutoDarkTheme(),window.addEventListener("offline",(function(){o.online=!1,o.emit("offline"),o.emit("connection",!1)})),window.addEventListener("online",(function(){o.online=!0,o.emit("online"),o.emit("connection",!0)})),o.root.addClass("framework7-root"),$("html").removeClass("ios md aurora").addClass(o.theme),o.params.iosTranslucentBars&&"ios"===o.theme&&E.ios&&$("html").addClass("ios-translucent-bars"),o.params.iosTranslucentModals&&"ios"===o.theme&&E.ios&&$("html").addClass("ios-translucent-modals"),$.nextFrame((function(){o.root.removeClass("framework7-initializing")})),e=[],t=document.querySelector("html"),n=document.querySelector('meta[name="apple-mobile-web-app-status-bar-style"]'),t&&(E.standalone&&E.ios&&n&&"black-translucent"===n.content&&e.push("device-full-viewport"),e.push("device-pixel-ratio-"+Math.floor(E.pixelRatio)),E.os&&!E.desktop?e.push("device-"+E.os):E.desktop&&(e.push("device-desktop"),E.os&&e.push("device-"+E.os)),(E.cordova||E.phonegap)&&e.push("device-cordova"),e.forEach((function(e){t.classList.add(e)}))),o.initialized=!0,o.emit("init")),o},n.loadModule=function(e){t.loadModule(e),this[e.name].init&&this[e.name].init()},n.loadModules=function(){return t.loadModules.apply(t,arguments)},n.getVnodeHooks=function(e,t){return this.vnodeHooks&&this.vnodeHooks[e]&&this.vnodeHooks[e][t]||[]},o(t,[{key:"$",get:function(){return $}}],[{key:"Dom",get:function(){return $}},{key:"$",get:function(){return $}},{key:"Module",get:function(){return p}},{key:"Event",get:function(){return d}}]),t}(p);x.ModalMethods=m,x.ConstructorMethods=f,x.loadModule=v,x.loadModules=function(e){return Promise.all(e.map((function(e){return x.loadModule(e)})))},x.support=C,x.device=E,x.utils=l,x.use([y,w,k]);var M,L,A,O,T={normal:"nor",retina:"ret",srcset:"set",threshold:0},P=window.innerHeight,j=S(),H=document.body.classList.contains("srcset")||"srcset"in document.createElement("img"),R=window.devicePixelRatio||window.screen.deviceXDPI/window.screen.logicalXDPI,q=function(){function e(e){M=$.assign({},T,e)}var t=e.prototype;return t.start=function(e){return["scroll","resize"].forEach((function(t){return e.addEventListener(t,W)})),O=e,this},t.stop=function(){return["scroll","resize"].forEach((function(e){return O.removeEventListener(e,W)})),this},t.update=function(){setTimeout((function(){_(),D()}),1)},e}();function S(){return window.scrollY||window.pageYOffset}function W(){j=S(),L||(window.requestAnimationFrame((function(){return D()})),L=!0)}function z(e){var t=j,n=t+P,o=function(e){return e.getBoundingClientRect().top+j}(e),r=o+e.offsetHeight,i=M.threshold/100*P;return r>=t-i&&o<=n+i}function D(){if(A)return P=window.innerHeight,A.forEach((function(e){return z(e)&&function(e){if($.emit("lazy:src:before",e),H&&e.hasAttribute(M.srcset))e.setAttribute("srcset",e.getAttribute(M.srcset));else{var t=R>1&&e.getAttribute(M.retina)||e.getAttribute(M.normal);e.setAttribute("src",t),console.log("set src:"+t)}$.emit("lazy:src:after",e),[M.normal,M.retina,M.srcset].forEach((function(t){return e.removeAttribute(t)})),_()}(e)})),L=!1,this}function _(e){return A=e?Array.prototype.slice.call(e.querySelectorAll("["+M.normal+"]")):Array.prototype.slice.call(document.querySelectorAll("["+M.normal+"]")),this}var F=function(e){function t(t,n,o,r){var i;return(i=e.call(this,null,[t])||this).app=t,i.cfg=t.cfg,i.name=n,i.title=o,i.style=r||"./page/"+n+".css",i.path=""+n,i.view=null,i.html="",i.css="",i.js="",i.data={},i.param={},i}r(t,e);var n=t.prototype;return n.load=function(e){this.emit("local::load pageLoad",e)},n.ready=function(e,t,n){this.emit("local::ready pageReady",e,t,n),e.qus("[name$=-tp]").hide()},n.show=function(e,t){e.qus('a[href=""]').attr("href","javascript:;"),this.reset&&this.reset(),this.emit("local::show pageShow",e,t)},n.back=function(e,t){e.qus('a[href=""]').attr("href","javascript:;"),this.emit("local::back pageBack",e,t)},n.hide=function(e){this.emit("local::hide pageHide",e)},t}(d),U=[],B=[],I=function(e){function t(t,n){var o,r=c(o=e.call(this,n,[t])||this);return r.params=l.extend({},n),r.opened=!1,c(o)||c(o)}r(t,e);var n=t.prototype;return n.onOpen=function(){this.opened=!0,U.push(this),$("html").addClass("with-modal-"+this.type.toLowerCase()),this.$el.trigger("modal:open "+this.type.toLowerCase()+":open"),this.emit("local::open modalOpen "+this.type+"Open",this)},n.onOpened=function(){this.$el.trigger("modal:opened "+this.type.toLowerCase()+":opened"),this.emit("local::opened modalOpened "+this.type+"Opened",this)},n.onClose=function(){this.opened=!1,this.type&&this.$el&&(U.splice(U.indexOf(this),1),$("html").removeClass("with-modal-"+this.type.toLowerCase()),this.$el.trigger("modal:close "+this.type.toLowerCase()+":close"),this.emit("local::close modalClose "+this.type+"Close",this))},n.onClosed=function(){this.type&&this.$el&&(this.$el.removeClass("modal-out"),this.$el.hide(),this.$el.trigger("modal:closed "+this.type.toLowerCase()+":closed"),this.emit("local::closed modalClosed "+this.type+"Closed",this))},n.open=function(e){var t,n=this,o=n.app,r=n.$el,i=n.type,a=n.$backdropEl,s=n.params.moveToRoot,c=!0;if(void 0!==e?c=e:void 0!==n.params.animate&&(c=n.params.animate),!r||r.hasClass("modal-in"))return n;if("dialog"===i&&o.params.modal.queueDialogs&&($(".dialog.modal-in").length>0?t=!0:U.length>0&&U.forEach((function(e){"dialog"===e.type&&(t=!0)})),t))return B.push(n),n;var u=r.parent(),l=r.parents(document).length>0;function d(){r.hasClass("modal-out")?n.onClosed():r.hasClass("modal-in")&&n.onOpened()}return s&&o.params.modal.moveToRoot&&!u.is(o.root)&&(o.root.append(r),n.once(i+"Closed",(function(){l?u.append(r):r.remove()}))),r.show(),n._clientLeft=r[0].clientLeft,c?(a&&(a.removeClass("not-animated"),a.addClass("backdrop-in")),r.animationEnd((function(){d()})),r.transitionEnd((function(){d()})),r.removeClass("modal-out not-animated").addClass("modal-in"),n.onOpen()):(a&&a.addClass("backdrop-in not-animated"),r.removeClass("modal-out").addClass("modal-in not-animated"),n.onOpen(),n.onOpened()),n},n.close=function(e){var t=this,n=t.$el,o=t.$backdropEl,r=!0;if(void 0!==e?r=e:void 0!==t.params.animate&&(r=t.params.animate),!n||!n.hasClass("modal-in"))return B.indexOf(t)>=0&&B.splice(B.indexOf(t),1),t;if(o){var i=!0;"popup"===t.type&&t.$el.prevAll(".popup.modal-in").each((function(e,n){var o=n.f7Modal;o&&o.params.closeByBackdropClick&&o.params.backdrop&&o.backdropEl===t.backdropEl&&(i=!1)})),i&&(o[r?"removeClass":"addClass"]("not-animated"),o.removeClass("backdrop-in"))}function a(){n.hasClass("modal-out")?t.onClosed():n.hasClass("modal-in")&&t.onOpened()}return n[r?"removeClass":"addClass"]("not-animated"),r?(n.animationEnd((function(){a()})),n.transitionEnd((function(){a()})),n.removeClass("modal-in").addClass("modal-out"),t.onClose()):(n.addClass("not-animated").removeClass("modal-in").addClass("modal-out"),t.onClose(),t.onClosed()),"dialog"===t.type&&0!==B.length&&B.shift().open(),t},n.destroy=function(){this.destroyed||(this.emit("local::beforeDestroy modalBeforeDestroy "+this.type+"BeforeDestroy",this),this.$el&&(this.$el.trigger("modal:beforedestroy "+this.type.toLowerCase()+":beforedestroy"),this.$el.length&&this.$el[0].f7Modal&&delete this.$el[0].f7Modal),l.deleteProps(this),this.destroyed=!0)},t}(d),X=$.support,N=$.device;e.Ajax=t,e.App=x,e.Constructors=f,e.Device=N,e.Event=d,e.Lazy=q,e.Modal=I,e.Modals=m,e.Module=p,e.Page=F,e.Resize=y,e.SW=k,e.Support=X,e.Utils=l,e.loadModule=v,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self)["@wiajs/Core"]={});
|
|
6
|
+
var e,t;e=this,t=function(e){"use strict";var t=function(){function e(){}var t=e.prototype;return t.post=function(e,t){return new Promise((function(n,o){var r=$.getXhr();r.onreadystatechange=function(){4===r.readyState&&(200===r.status?n(r.responseText):o(new Error(r.statusText),r.responseText))},r.open("POST",e,!0);var a=t;"object"==typeof t&&(a=function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n+"="+e[n]);return t.sort().join("&")}(t)),r.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),r.send(a)}))},t.postForm=function(e,t){return new Promise((function(n,o){var r=$.getXhr();r.onreadystatechange=function(){4===r.readyState&&(200===r.status?n(null,r.responseText):o(new Error(r.status),r.responseText))},r.open("POST",e,!0),r.send(t)}))},t.get=function(e,t){return $.get(e,t)},e}();function n(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function o(e,t,o){return t&&n(e.prototype,t),o&&n(e,o),e}function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,a(e,t)}function a(e,t){return a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},a(e,t)}function i(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function s(e,t,n){return s=i()?Reflect.construct:function(e,t,n){var o=[null];o.push.apply(o,t);var r=new(Function.bind.apply(e,o));return n&&a(r,n.prototype),r},s.apply(null,arguments)}function c(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var u=1,l={uniqueNumber:function(){return u+=1},id:function(e,t){return void 0===e&&(e="xxxxxxxxxx"),void 0===t&&(t="0123456789abcdef"),$.uid(e,t)},mdPreloaderContent:'\n <span class="preloader-inner">\n\t\t\t<svg viewBox="0 0 36 36">\n\t\t\t\t<circle cx="18" cy="18" r="16"></circle>\n\t\t\t</svg>\n </span>\n '.trim(),iosPreloaderContent:('\n <span class="preloader-inner">\n\t\t\t'+[0,1,2,3,4,5,6,7].map((function(){return'<span class="preloader-inner-line"></span>'})).join("")+"\n </span>\n ").trim(),auroraPreloaderContent:'\n <span class="preloader-inner">\n <span class="preloader-inner-circle"></span>\n </span>\n ',eventNameToColonCase:function(e){var t;return e.split("").map((function(e,n){return e.match(/[A-Z]/)&&0!==n&&!t?(t=!0,":"+e.toLowerCase()):e.toLowerCase()})).join("")},deleteProps:function(e){$.deleteProps(e)},nextTick:function(e,t){return void 0===t&&(t=0),setTimeout(e,t)},nextFrame:function(e){return $.nextFrame(e)},now:function(){return Date.now()},requestAnimationFrame:function(e){return $.requestAnimationFrame(e)},cancelAnimationFrame:function(e){return $.cancelAnimationFrame(e)},parseUrlQuery:function(e){return $.urlParam(e)},getTranslate:function(e,t){return void 0===t&&(t="x"),$.getTranslate(e,t)},serializeObject:function(e,t){if(void 0===t&&(t=[]),"string"==typeof e)return e;var n,o=[];function r(e){if(t.length>0){for(var n="",o=0;o<t.length;o+=1)n+=0===o?t[o]:"["+encodeURIComponent(t[o])+"]";return n+"["+encodeURIComponent(e)+"]"}return encodeURIComponent(e)}function a(e){return encodeURIComponent(e)}return Object.keys(e).forEach((function(i){var s;if(Array.isArray(e[i])){s=[];for(var c=0;c<e[i].length;c+=1)Array.isArray(e[i][c])||"object"!=typeof e[i][c]?s.push(r(i)+"[]="+a(e[i][c])):((n=t.slice()).push(i),n.push(String(c)),s.push(l.serializeObject(e[i][c],n)));s.length>0&&o.push(s.join("&"))}else null===e[i]||""===e[i]?o.push(r(i)+"="):"object"==typeof e[i]?((n=t.slice()).push(i),""!==(s=l.serializeObject(e[i],n))&&o.push(s)):void 0!==e[i]&&""!==e[i]?o.push(r(i)+"="+a(e[i])):""===e[i]&&o.push(r(i))})),o.join("&")},isObject:function(e){return"object"==typeof e&&null!==e&&e.constructor&&e.constructor===Object},merge:function(){var e;return(e=$).merge.apply(e,arguments)},extend:function(){for(var e,t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];var r=n[0];return n.splice(0,1),(e=$).assign.apply(e,[r].concat(n))},bindMethods:function(e,t){var n=this;Object.keys(t).forEach((function(o){n.isObject(t[o])&&Object.keys(t[o]).forEach((function(n){"function"==typeof t[o][n]&&(t[o][n]=t[o][n].bind(e))})),e[o]=t[o]}))},colorHexToRgb:function(e){var t=e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,(function(e,t,n,o){return t+t+n+n+o+o})),n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return n?n.slice(1).map((function(e){return parseInt(e,16)})):null},colorRgbToHex:function(e,t,n){return"#"+[e,t,n].map((function(e){var t=e.toString(16);return 1===t.length?"0"+t:t})).join("")},colorRgbToHsl:function(e,t,n){e/=255,t/=255,n/=255;var o,r=Math.max(e,t,n),a=Math.min(e,t,n),i=r-a;0===i?o=0:r===e?o=(t-n)/i%6:r===t?o=(n-e)/i+2:r===n&&(o=(e-t)/i+4);var s=(a+r)/2;return o<0&&(o=6+o),[60*o,0===i?0:i/(1-Math.abs(2*s-1)),s]},colorHslToRgb:function(e,t,n){var o,r=(1-Math.abs(2*n-1))*t,a=e/60,i=r*(1-Math.abs(a%2-1));Number.isNaN(e)||void 0===e?o=[0,0,0]:a<=1?o=[r,i,0]:a<=2?o=[i,r,0]:a<=3?o=[0,r,i]:a<=4?o=[0,i,r]:a<=5?o=[i,0,r]:a<=6&&(o=[r,0,i]);var s=n-r/2;return o.map((function(e){return Math.max(0,Math.min(255,Math.round(255*(e+s))))}))},colorHsbToHsl:function(e,t,n){var o={h:e,s:0,l:0},r=t,a=n;return o.l=(2-r)*a/2,o.s=o.l&&o.l<1?r*a/(o.l<.5?2*o.l:2-2*o.l):o.s,[o.h,o.s,o.l]},colorHslToHsb:function(e,t,n){var o={h:e,s:0,b:0},r=n,a=t*(r<.5?r:1-r);return o.b=r+a,o.s=r>0?2*a/o.b:o.s,[o.h,o.s,o.b]},colorThemeCSSProperties:function(){for(var e,t,n=arguments.length,o=new Array(n),r=0;r<n;r++)o[r]=arguments[r];if(1===o.length?(e=o[0],t=l.colorHexToRgb(e)):3===o.length&&(t=o,e=l.colorRgbToHex.apply(l,t)),!t)return{};var a=l.colorRgbToHsl.apply(l,t),i=[a[0],a[1],Math.max(0,a[2]-.08)],s=[a[0],a[1],Math.max(0,a[2]+.08)],c=l.colorRgbToHex.apply(l,l.colorHslToRgb.apply(l,i)),u=l.colorRgbToHex.apply(l,l.colorHslToRgb.apply(l,s));return{"--f7-theme-color":e,"--f7-theme-color-rgb":t.join(", "),"--f7-theme-color-shade":c,"--f7-theme-color-tint":u}}},d=function(){function e(e,t){void 0===e&&(e={}),void 0===t&&(t=[]);var n=this;n.params=e,n.eventsParents=t,n.eventsListeners={},n.params&&n.params.on&&Object.keys(n.params.on).forEach((function(e){n.on(e,n.params.on[e])}))}var t=e.prototype;return t.on=function(e,t,n){var o=this;if("function"!=typeof t)return o;var r=n?"unshift":"push";return e.split(" ").forEach((function(e){o.eventsListeners[e]||(o.eventsListeners[e]=[]),o.eventsListeners[e][r](t)})),o},t.once=function(e,t,n){var o=this;if("function"!=typeof t)return o;function r(){o.off(e,r),r.proxy&&delete r.proxy;for(var n=arguments.length,a=new Array(n),i=0;i<n;i++)a[i]=arguments[i];t.apply(o,a)}return r.proxy=t,o.on(e,r,n)},t.off=function(e,t){var n=this;return n.eventsListeners?(e.split(" ").forEach((function(e){void 0===t?n.eventsListeners[e]=[]:n.eventsListeners[e]&&n.eventsListeners[e].forEach((function(o,r){(o===t||o.proxy&&o.proxy===t)&&n.eventsListeners[e].splice(r,1)}))})),n):n},t.emit=function(){var e,t,n,o,r=this;if(!r.eventsListeners)return r;for(var a=arguments.length,i=new Array(a),s=0;s<a;s++)i[s]=arguments[s];"string"==typeof i[0]||Array.isArray(i[0])?(e=i[0],t=i.slice(1,i.length),n=r,o=r.eventsParents):(e=i[0].events,t=i[0].data,n=i[0].context||r,o=i[0].local?[]:i[0].parents||r.eventsParents);var c=Array.isArray(e)?e:e.split(" "),u=c.map((function(e){return e.replace("local::","")})),l=c.filter((function(e){return e.indexOf("local::")<0}));return u.forEach((function(e){if(r.eventsListeners&&r.eventsListeners[e]){var o=[];r.eventsListeners[e].forEach((function(e){o.push(e)})),o.forEach((function(e){e.apply(n,t)}))}})),o&&o.length>0&&o.forEach((function(e){e.emit.apply(e,[l].concat(t))})),r},e}(),f=function(e){function t(t,n){return void 0===t&&(t={}),void 0===n&&(n=[]),e.call(this,t,n)||this}r(t,e);var n=t.prototype;return n.useModuleParams=function(e,t){if(e.params){var n={};Object.keys(e.params).forEach((function(e){void 0!==t[e]&&(n[e]=$.extend({},t[e]))})),$.extend(t,e.params),Object.keys(n).forEach((function(e){$.extend(t[e],n[e])}))}},n.useModulesParams=function(e){var t=this;t.modules&&Object.keys(t.modules).forEach((function(n){var o=t.modules[n];o.params&&$.extend(e,o.params)}))},n.useModule=function(e,t){void 0===e&&(e=""),void 0===t&&(t={});var n=this;if(n.modules){var o="string"==typeof e?n.modules[e]:e;o&&(o.instance&&Object.keys(o.instance).forEach((function(e){var t=o.instance[e];n[e]="function"==typeof t?t.bind(n):t})),o.on&&n.on&&Object.keys(o.on).forEach((function(e){n.on(e,o.on[e])})),o.vnode&&(n.vnodeHooks||(n.vnodeHooks={}),Object.keys(o.vnode).forEach((function(e){Object.keys(o.vnode[e]).forEach((function(t){var r=o.vnode[e][t];n.vnodeHooks[t]||(n.vnodeHooks[t]={}),n.vnodeHooks[t][e]||(n.vnodeHooks[t][e]=[]),n.vnodeHooks[t][e].push(r.bind(n))}))}))),o.create&&o.create.bind(n)(t))}},n.useModules=function(e){void 0===e&&(e={});var t=this;t.modules&&Object.keys(t.modules).forEach((function(n){var o=e[n]||{};t.useModule(n,o)}))},t.installModule=function(e){var t=this;t.prototype.modules||(t.prototype.modules={});var n=e.name||Object.keys(t.prototype.modules).length+"_"+$.now();if(t.prototype.modules[n]=e,e.proto&&Object.keys(e.proto).forEach((function(n){t.prototype[n]=e.proto[n]})),e.static&&Object.keys(e.static).forEach((function(n){t[n]=e.static[n]})),e.install){for(var o=arguments.length,r=new Array(o>1?o-1:0),a=1;a<o;a++)r[a-1]=arguments[a];e.install.apply(t,r)}return t},t.use=function(e){var t=this;if(Array.isArray(e))return e.forEach((function(e){return t.installModule(e)})),t;for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r<n;r++)o[r-1]=arguments[r];return t.installModule.apply(t,[e].concat(o))},o(t,null,[{key:"components",set:function(e){this.use&&this.use(e)}}]),t}(d);function p(e){void 0===e&&(e={});var t=e,n=t.defaultSelector,o=t.constructor,r=t.domProp,a=t.app,i=t.addMethods,c={create:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return s(o,a?[a].concat(t):t)},get:function(e){if(void 0===e&&(e=n),e instanceof o)return e;var t=$(e);return 0!==t.length?t[0][r]:void 0},destroy:function(e){var t=c.get(e);if(t&&t.destroy)return t.destroy()}};return i&&Array.isArray(i)&&i.forEach((function(e){c[e]=function(t){void 0===t&&(t=n);for(var o=c.get(t),r=arguments.length,a=new Array(r>1?r-1:0),i=1;i<r;i++)a[i-1]=arguments[i];if(o&&o[e])return o[e].apply(o,a)}})),c}function m(e){void 0===e&&(e={});var t=e,n=t.defaultSelector,o=t.constructor,r=t.app;return $.extend(p({defaultSelector:n,constructor:o,app:r,domProp:"f7Modal"}),{open:function(e,t){var n=$(e),a=n[0].f7Modal;return a||(a=new o(r,{el:n})),a.open(t)},close:function(e,t){void 0===e&&(e=n);var a=$(e);if(0!==a.length){var i=a[0].f7Modal;return i||(i=new o(r,{el:a})),i.close(t)}}})}var h=[];function v(e){var t=this;return new Promise((function(n,o){var r,a,i,s=t.instance;if(e){if("string"==typeof e){var c=e.match(/([a-z0-9-]*)/i);if(e.indexOf(".")<0&&c&&c[0].length===e.length){if(!s||s&&!s.params.lazyModulesPath)return void o(new Error('Wia: "lazyModulesPath" app parameter must be specified to fetch module by name'));r=s.params.lazyModulesPath+"/"+e+".js"}else r=e}else"function"==typeof e?i=e:a=e;if(i){var u=i(t,!1);if(!u)return void o(new Error("Wia: Can't find Wia component in specified component function"));if(t.prototype.modules&&t.prototype.modules[u.name])return void n();p(u),n()}if(a){var l=a;if(!l)return void o(new Error("Wia: Can't find Wia component in specified component"));if(t.prototype.modules&&t.prototype.modules[l.name])return void n();p(l),n()}if(r){if(h.indexOf(r)>=0)return void n();h.push(r);var d=new Promise((function(e,n){t.request.get(r,(function(o){var a="wia_component_loader_callback_"+$.id(),i=document.createElement("script");i.innerHTML="window."+a+" = function (Wia, WiaAutoInstallComponent) {return "+o.trim()+"}",$("head").append(i);var s=window[a];delete window[a],$(i).remove();var c=s(t,!1);c?(t.prototype.modules&&t.prototype.modules[c.name]||p(c),e()):n(new Error("Wia: Can't find Wia component in "+r+" file"))}),(function(e,t){n(e,t)}))})),f=new Promise((function(e){t.request.get(r.replace(".js",s.rtl?".rtl.css":".css"),(function(t){var n=document.createElement("style");n.innerHTML=t,$("head").append(n),e()}),(function(){e()}))}));Promise.all([d,f]).then((function(){n()})).catch((function(e){o(e)}))}}else o(new Error("Wia: Lazy module must be specified"));function p(e){t.use(e),s&&(s.useModuleParams(e,s.params),s.useModule(e))}}))}var y={name:"resize",instance:{getSize:function(){var e=this;if(!e.root[0])return{width:0,height:0,left:0,top:0};var t=e.root.offset(),n=[e.root[0].offsetWidth,e.root[0].offsetHeight,t.left,t.top],o=n[0],r=n[1],a=n[2],i=n[3];return e.width=o,e.height=r,e.left=a,e.top=i,{width:o,height:r,left:a,top:i}}},on:{init:function(){var e=this;e.getSize(),window.addEventListener("resize",(function(){e.emit("resize")}),!1),window.addEventListener("orientationchange",(function(){e.emit("orientationchange")}))},orientationchange:function(){this.device.ipad&&(document.body.scrollLeft=0,setTimeout((function(){document.body.scrollLeft=0}),0))},resize:function(){this.getSize()}}};function g(e){var t,n,o;t=function(t){e.emit({events:"click",data:[t]})},$.support.touch?(document.addEventListener("touchstart",(function(e){n=e.changedTouches[0].clientX,o=e.changedTouches[0].clientY}),!0),document.addEventListener("touchend",(function(e){var r=Math.abs(e.changedTouches[0].clientX-n),a=Math.abs(e.changedTouches[0].clientY-o);r<=5&&a<=5&&t.call(this,e)}),!0)):document.addEventListener("click",t,!0),e.on("click",(function(t){var n=$(t.target),o=n.closest("a");o.length>0&&o.attr("href"),Object.keys(e.modules).forEach((function(o){var r=e.modules[o].clicks;r&&(t.preventF7Router||Object.keys(r).forEach((function(o){var a=n.closest(o).eq(0);a.length>0&&r[o].call(e,a,a.dataset(),t)})))}))}))}var w={name:"clicks",params:{clicks:{externalLinks:".ext"}},on:{init:function(){g(this)}}},b={registrations:[],register:function(e,t){var n=this;return"serviceWorker"in window.navigator&&n.serviceWorker.container?new Promise((function(o,r){n.serviceWorker.container.register(e,t?{scope:t}:{}).then((function(e){b.registrations.push(e),n.emit("serviceWorkerRegisterSuccess",e),o(e)})).catch((function(e){n.emit("serviceWorkerRegisterError",e),r(e)}))})):new Promise((function(e,t){t(new Error("Service worker is not supported"))}))},unregister:function(e){var t,n=this;return"serviceWorker"in window.navigator&&n.serviceWorker.container?(t=e?Array.isArray(e)?e:[e]:b.registrations,Promise.all(t.map((function(e){return new Promise((function(t,o){e.unregister().then((function(){b.registrations.indexOf(e)>=0&&b.registrations.splice(b.registrations.indexOf(e),1),n.emit("serviceWorkerUnregisterSuccess",e),t()})).catch((function(t){n.emit("serviceWorkerUnregisterError",e,t),o(t)}))}))})))):new Promise((function(e,t){t(new Error("Service worker is not supported"))}))}},k={name:"sw",params:{serviceWorker:{path:void 0,scope:void 0}},create:function(){var e=this;$.extend(e,{serviceWorker:{container:"serviceWorker"in window.navigator?window.navigator.serviceWorker:void 0,registrations:b.registrations,register:b.register.bind(e),unregister:b.unregister.bind(e)}})},on:{init:function(){if("serviceWorker"in window.navigator){var e=this;if(e.serviceWorker.container){var t=e.params.serviceWorker.path,n=e.params.serviceWorker.scope;!t||Array.isArray(t)&&!t.length||(Array.isArray(t)?t:[t]).forEach((function(t){e.serviceWorker.register(t,n)}))}}}}},C=$.support,x=$.device,E=function(e){function t(t){var n;n=e.call(this,t)||this;var o=$.extend({},t),r=c(n);r.device=x,r.support=C;var a={version:"0.0.1",root:"body",theme:"auto",language:window.navigator.language,routes:[],lazyModulesPath:null,initOnDeviceReady:!0,autoDarkTheme:!1,iosTranslucentBars:!0,iosTranslucentModals:!0,component:void 0,componentUrl:void 0};r.useModulesParams(a),r.params=$.extend(a,t);var i=$(r.params.root);$.extend(r,{owner:r.params.owner,name:r.params.name,id:r.params.owner+"."+r.params.name,version:r.params.version,routes:r.params.routes,language:r.params.language,root:i,$el:i,cfg:r.params.cfg,api:r.params.api,rtl:"rtl"===i.css("direction"),theme:"auto"===r.params.theme?x.ios?"ios":x.desktop?"aurora":"md":r.params.theme,passedParams:o,online:window.navigator.onLine}),r.root&&r.root[0]&&(r.root[0].wia=r),r.touchEvents={start:C.touch?"touchstart":C.pointerEvents?"pointerdown":"mousedown",move:C.touch?"touchmove":C.pointerEvents?"pointermove":"mousemove",end:C.touch?"touchend":C.pointerEvents?"pointerup":"mouseup"},r.useModules(),r.initData();var s="(prefers-color-scheme: dark)",u="(prefers-color-scheme: light)";return r.mq={},window.matchMedia&&(r.mq.dark=window.matchMedia(s),r.mq.light=window.matchMedia(u)),r.colorSchemeListener=function(e){var t=e.matches,n=e.media;if(t){var o=document.querySelector("html");n===s?o.classList.add("theme-dark"):n===u&&o.classList.remove("theme-dark")}},r.params.init&&(x.cordova&&r.params.initOnDeviceReady?$(document).on("deviceready",(function(){r.init()})):r.init()),r||c(n)}r(t,e);var n=t.prototype;return n.load=function(e){this.emit("local::load appLoad",e)},n.show=function(e,t){this.emit("local::show appShow",e,t)},n.hide=function(){this.emit("local::hide appHide")},n.unload=function(){this.emit("local::unload appUnload")},n.initData=function(){var e=this;e.data={},e.params.data&&"function"==typeof e.params.data?$.extend(e.data,e.params.data.bind(e)()):e.params.data&&$.extend(e.data,e.params.data),e.methods={},e.params.methods&&Object.keys(e.params.methods).forEach((function(t){"function"==typeof e.params.methods[t]?e.methods[t]=e.params.methods[t].bind(e):e.methods[t]=e.params.methods[t]}))},n.enableAutoDarkTheme=function(){if(window.matchMedia){var e=this,t=document.querySelector("html");e.mq.dark&&e.mq.light&&(e.mq.dark.addListener(e.colorSchemeListener),e.mq.light.addListener(e.colorSchemeListener)),e.mq.dark&&e.mq.dark.matches?t.classList.add("theme-dark"):e.mq.light&&e.mq.light.matches&&t.classList.remove("theme-dark")}},n.disableAutoDarkTheme=function(){if(window.matchMedia){var e=this;e.mq.dark&&e.mq.dark.removeListener(e.colorSchemeListener),e.mq.light&&e.mq.light.removeListener(e.colorSchemeListener)}},n.init=function(){var e,n,o,r=this;return r.initialized||($.App=t,x.ios&&x.webView&&window.addEventListener("touchstart",(function(){})),r.root.addClass("framework7-initializing"),r.rtl&&$("html").attr("dir","rtl"),r.params.autoDarkTheme&&r.enableAutoDarkTheme(),window.addEventListener("offline",(function(){r.online=!1,r.emit("offline"),r.emit("connection",!1)})),window.addEventListener("online",(function(){r.online=!0,r.emit("online"),r.emit("connection",!0)})),r.root.addClass("framework7-root"),$("html").removeClass("ios md aurora").addClass(r.theme),r.params.iosTranslucentBars&&"ios"===r.theme&&x.ios&&$("html").addClass("ios-translucent-bars"),r.params.iosTranslucentModals&&"ios"===r.theme&&x.ios&&$("html").addClass("ios-translucent-modals"),$.nextFrame((function(){r.root.removeClass("framework7-initializing")})),e=[],n=document.querySelector("html"),o=document.querySelector('meta[name="apple-mobile-web-app-status-bar-style"]'),n&&(x.standalone&&x.ios&&o&&"black-translucent"===o.content&&e.push("device-full-viewport"),e.push("device-pixel-ratio-"+Math.floor(x.pixelRatio)),x.os&&!x.desktop?e.push("device-"+x.os):x.desktop&&(e.push("device-desktop"),x.os&&e.push("device-"+x.os)),(x.cordova||x.phonegap)&&e.push("device-cordova"),e.forEach((function(e){n.classList.add(e)}))),r.initialized=!0,r.emit("init")),r},n.loadModule=function(e){t.loadModule(e),this[e.name].init&&this[e.name].init()},n.loadModules=function(){return t.loadModules.apply(t,arguments)},n.getVnodeHooks=function(e,t){var n=this;return n.vnodeHooks&&n.vnodeHooks[e]&&n.vnodeHooks[e][t]||[]},o(t,[{key:"$",get:function(){return $}}],[{key:"Dom",get:function(){return $}},{key:"$",get:function(){return $}},{key:"Module",get:function(){return f}},{key:"Event",get:function(){return d}}]),t}(f);E.apps={},E.ModalMethods=m,E.ConstructorMethods=p,E.loadModule=v,E.loadModules=function(e){return Promise.all(e.map((function(e){return E.loadModule(e)})))},E.support=C,E.device=x,E.utils=l,E.use([y,w,k]);var M,L,O,A,j={normal:"nor",retina:"ret",srcset:"set",threshold:0},T=window.innerHeight,P=S(),q=document.body.classList.contains("srcset")||"srcset"in document.createElement("img"),H=window.devicePixelRatio||window.screen.deviceXDPI/window.screen.logicalXDPI,R=function(){function e(e){M=$.assign({},j,e)}var t=e.prototype;return t.start=function(e){return["scroll","resize"].forEach((function(t){return e.addEventListener(t,W)})),A=e,this},t.stop=function(){return["scroll","resize"].forEach((function(e){return A.removeEventListener(e,W)})),this},t.update=function(){setTimeout((function(){_(),D()}),1)},e}();function S(){return window.scrollY||window.pageYOffset}function W(){P=S(),L||(window.requestAnimationFrame((function(){return D()})),L=!0)}function z(e){var t=P,n=t+T,o=function(e){return e.getBoundingClientRect().top+P}(e),r=o+e.offsetHeight,a=M.threshold/100*T;return r>=t-a&&o<=n+a}function D(){if(O)return T=window.innerHeight,O.forEach((function(e){return z(e)&&function(e){if($.emit("lazy:src:before",e),q&&e.hasAttribute(M.srcset))e.setAttribute("srcset",e.getAttribute(M.srcset));else{var t=H>1&&e.getAttribute(M.retina)||e.getAttribute(M.normal);e.setAttribute("src",t),console.log("set src:"+t)}$.emit("lazy:src:after",e),[M.normal,M.retina,M.srcset].forEach((function(t){return e.removeAttribute(t)})),_()}(e)})),L=!1,this}function _(e){return O=e?Array.prototype.slice.call(e.querySelectorAll("["+M.normal+"]")):Array.prototype.slice.call(document.querySelectorAll("["+M.normal+"]")),this}var B=function(e){function t(t,n,o,r){var a;return(a=e.call(this,null,[t])||this).app=t,a.cfg=t.cfg,a.name=n,a.title=o,a.style=r||"./page/"+n+".css",a.path=""+n,a.view=null,a.el=null,a.$el=null,a.html="",a.css="",a.js="",a.data={},a.param={},a}r(t,e);var n=t.prototype;return n.load=function(e){this.emit("local::load pageLoad",e)},n.ready=function(e,t,n){this.init(),this.emit("local::ready pageReady",e,t,n)},n.init=function(e){var t=this.view,n=(e=e?$(e):t).qus("[name]");null==n||n.forEach((function(e){var n=$(e),o=n.attr("name");t[o]&&t[o].dom===e||(t[o]=n)})),e.qus("[name$=-tp]").hide(),e.qus('a[href=""]').attr("href","javascript:;")},n.show=function(e,t){e.qus("[name$=-tp]").hide(),e.qus('a[href=""]').attr("href","javascript:;"),this.reset&&this.reset(),this.emit("local::show pageShow",e,t)},n.back=function(e,t){e.qus("[name$=-tp]").hide(),e.qus('a[href=""]').attr("href","javascript:;"),this.emit("local::back pageBack",e,t)},n.hide=function(e){this.emit("local::hide pageHide",e)},t}(d),F=[],U=[],I=function(e){function t(t,n){var o,r=c(o=e.call(this,n,[t])||this);return r.params=l.extend({},n),r.opened=!1,c(o)||c(o)}r(t,e);var n=t.prototype;return n.onOpen=function(){var e=this;e.opened=!0,F.push(e),$("html").addClass("with-modal-"+e.type.toLowerCase()),e.$el.trigger("modal:open "+e.type.toLowerCase()+":open"),e.emit("local::open modalOpen "+e.type+"Open",e)},n.onOpened=function(){var e=this;e.$el.trigger("modal:opened "+e.type.toLowerCase()+":opened"),e.emit("local::opened modalOpened "+e.type+"Opened",e)},n.onClose=function(){var e=this;e.opened=!1,e.type&&e.$el&&(F.splice(F.indexOf(e),1),$("html").removeClass("with-modal-"+e.type.toLowerCase()),e.$el.trigger("modal:close "+e.type.toLowerCase()+":close"),e.emit("local::close modalClose "+e.type+"Close",e))},n.onClosed=function(){var e=this;e.type&&e.$el&&(e.$el.removeClass("modal-out"),e.$el.hide(),e.$el.trigger("modal:closed "+e.type.toLowerCase()+":closed"),e.emit("local::closed modalClosed "+e.type+"Closed",e))},n.open=function(e){var t,n=this,o=n.app,r=n.$el,a=n.type,i=n.$backdropEl,s=n.params.moveToRoot,c=!0;if(void 0!==e?c=e:void 0!==n.params.animate&&(c=n.params.animate),!r||r.hasClass("modal-in"))return n;if("dialog"===a&&o.params.modal.queueDialogs&&($(".dialog.modal-in").length>0?t=!0:F.length>0&&F.forEach((function(e){"dialog"===e.type&&(t=!0)})),t))return U.push(n),n;var u=r.parent(),l=r.parents(document).length>0;function d(){r.hasClass("modal-out")?n.onClosed():r.hasClass("modal-in")&&n.onOpened()}return s&&o.params.modal.moveToRoot&&!u.is(o.root)&&(o.root.append(r),n.once(a+"Closed",(function(){l?u.append(r):r.remove()}))),r.show(),n._clientLeft=r[0].clientLeft,c?(i&&(i.removeClass("not-animated"),i.addClass("backdrop-in")),r.animationEnd((function(){d()})),r.transitionEnd((function(){d()})),r.removeClass("modal-out not-animated").addClass("modal-in"),n.onOpen()):(i&&i.addClass("backdrop-in not-animated"),r.removeClass("modal-out").addClass("modal-in not-animated"),n.onOpen(),n.onOpened()),n},n.close=function(e){var t=this,n=t.$el,o=t.$backdropEl,r=!0;if(void 0!==e?r=e:void 0!==t.params.animate&&(r=t.params.animate),!n||!n.hasClass("modal-in"))return U.indexOf(t)>=0&&U.splice(U.indexOf(t),1),t;if(o){var a=!0;"popup"===t.type&&t.$el.prevAll(".popup.modal-in").each((function(e,n){var o=n.f7Modal;o&&o.params.closeByBackdropClick&&o.params.backdrop&&o.backdropEl===t.backdropEl&&(a=!1)})),a&&(o[r?"removeClass":"addClass"]("not-animated"),o.removeClass("backdrop-in"))}function i(){n.hasClass("modal-out")?t.onClosed():n.hasClass("modal-in")&&t.onOpened()}return n[r?"removeClass":"addClass"]("not-animated"),r?(n.animationEnd((function(){i()})),n.transitionEnd((function(){i()})),n.removeClass("modal-in").addClass("modal-out"),t.onClose()):(n.addClass("not-animated").removeClass("modal-in").addClass("modal-out"),t.onClose(),t.onClosed()),"dialog"===t.type&&0!==U.length&&U.shift().open(),t},n.destroy=function(){var e=this;e.destroyed||(e.emit("local::beforeDestroy modalBeforeDestroy "+e.type+"BeforeDestroy",e),e.$el&&(e.$el.trigger("modal:beforedestroy "+e.type.toLowerCase()+":beforedestroy"),e.$el.length&&e.$el[0].f7Modal&&delete e.$el[0].f7Modal),l.deleteProps(e),e.destroyed=!0)},t}(d),X=$.support,N=$.device;e.Ajax=t,e.App=E,e.Constructors=p,e.Device=N,e.Event=d,e.Lazy=R,e.Modal=I,e.Modals=m,e.Module=f,e.Page=B,e.Resize=y,e.SW=k,e.Support=X,e.Utils=l,e.jsx=function(e,t){for(var n=t||{},o=arguments.length,r=new Array(o>2?o-2:0),a=2;a<o;a++)r[a-2]=arguments[a];var i=r||[],s=Object.keys(n).map((function(e){return"_"===e[0]?n[e]?e.replace("_",""):"":e+'="'+n[e]+'"'})).filter((function(e){return!!e})).join(" ");if(["path","img","circle","polygon","line","input"].indexOf(e)>=0)return("<"+e+" "+s+" />").trim();var c=i.filter((function(e){return!!e})).map((function(e){return Array.isArray(e)?e.join(""):e})).join("");return("<"+e+" "+s+">"+c+"</"+e+">").trim()},e.loadModule=v,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@wiajs/Core"]={});
|
package/lib/bmap.js
CHANGED
|
@@ -158,7 +158,7 @@ export default class Map extends Event {
|
|
|
158
158
|
* @param {boolean} around 查询周边
|
|
159
159
|
* @param {array} points 其他坐标
|
|
160
160
|
*/
|
|
161
|
-
async show(center = null, around =
|
|
161
|
+
async show(center = null, around = true, points = null) {
|
|
162
162
|
const map = await this.getMap();
|
|
163
163
|
this.showMap(center, around, points);
|
|
164
164
|
}
|
|
@@ -171,17 +171,17 @@ export default class Map extends Event {
|
|
|
171
171
|
* @param {Function} fail 失败执行
|
|
172
172
|
* @param {Function} complete 完成后执行
|
|
173
173
|
*/
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
174
|
+
getLocWx(type, success, fail, complete) {
|
|
175
|
+
(type = type || 'gcj02'), (success = success || function () {});
|
|
176
|
+
fail = fail || function () {};
|
|
177
|
+
complete = complete || function () {};
|
|
178
|
+
wx.getLocation({
|
|
179
|
+
type: type,
|
|
180
|
+
success: success,
|
|
181
|
+
fail: fail,
|
|
182
|
+
complete: complete,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
185
|
|
|
186
186
|
/**
|
|
187
187
|
* 获取当前位置经纬度数组,百度坐标格式
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wiajs/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.16",
|
|
4
4
|
"description": "wia app core package. Part of the code is borrowed Framework7.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "dist/core.d.ts",
|
|
@@ -48,6 +48,5 @@
|
|
|
48
48
|
"terser": "^4.4.0"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@wiajs/dom": "^0.1.0"
|
|
52
51
|
}
|
|
53
52
|
}
|
package/util/tool.js
CHANGED
|
@@ -72,7 +72,6 @@ function trimEnd(s, c) {
|
|
|
72
72
|
return String(s).replace(rx, '');
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
|
|
76
75
|
function addDay(n, d) {
|
|
77
76
|
if (!d) d = new Date();
|
|
78
77
|
else if (typeof d === 'string') {
|
|
@@ -129,6 +128,44 @@ function newFileName(len) {
|
|
|
129
128
|
return R.join('');
|
|
130
129
|
}
|
|
131
130
|
|
|
131
|
+
/**
|
|
132
|
+
* 比较方法,用于对象数组排序,常用于数据表排序
|
|
133
|
+
* @param {*} k 对象属性key
|
|
134
|
+
* @param {*} asc 升序、降序,默认升序
|
|
135
|
+
* @param {*} type 类型auto, number、datetime、string,缺省 auto
|
|
136
|
+
*/
|
|
137
|
+
function compareObj(k, desc, type) {
|
|
138
|
+
return function (o1, o2) {
|
|
139
|
+
let R = 0;
|
|
140
|
+
let v1 = o1[k];
|
|
141
|
+
let v2 = o2[k];
|
|
142
|
+
// 数字、日期字符串,按数字、日期排序
|
|
143
|
+
if ($.isStr(v1) || $.isStr(v2)) {
|
|
144
|
+
// 金额可能有千字分隔符,需替换
|
|
145
|
+
if (type.toLowerCase() === 'number') {
|
|
146
|
+
v1 = v1.replace(',', '');
|
|
147
|
+
v2 = v2.replace(',', '');
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
if ($.isDateStr(v1) && $.isDateStr(v2)) {
|
|
151
|
+
v1 = Date.parse(v1);
|
|
152
|
+
v2 = Date.parse(v2);
|
|
153
|
+
} else if ($.isNumStr(v1) && $.isNumStr(v2)) {
|
|
154
|
+
v1 = Number(v1);
|
|
155
|
+
v2 = Number(v2);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
if (v1 < v2) {
|
|
160
|
+
R = desc ? 1 : -1;
|
|
161
|
+
} else if (v1 > v2) {
|
|
162
|
+
R = desc ? -1 : 1;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
return R;
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
|
|
132
169
|
/**
|
|
133
170
|
* 对象按名称排序,签名时需要
|
|
134
171
|
* @param {*} obj
|
|
@@ -156,4 +193,15 @@ function serObj(obj) {
|
|
|
156
193
|
.join('&');
|
|
157
194
|
}
|
|
158
195
|
|
|
159
|
-
export {
|
|
196
|
+
export {
|
|
197
|
+
StringBuf,
|
|
198
|
+
format,
|
|
199
|
+
trimStart,
|
|
200
|
+
trimEnd,
|
|
201
|
+
addDay,
|
|
202
|
+
newFileName,
|
|
203
|
+
compareObj,
|
|
204
|
+
sortObj,
|
|
205
|
+
serObj,
|
|
206
|
+
setTitle,
|
|
207
|
+
};
|
package/util/wiafile.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/* eslint-disable import/no-extraneous-dependencies */
|
|
2
2
|
/**
|
|
3
3
|
* 自动根据src、dist目录文件生成 wiafile.yml 文件映射
|
|
4
|
+
* build时,比较当前文件hash与上次build时的hash值,
|
|
5
|
+
* 变化则放入 update中,再针对 update部分文件进行build,
|
|
6
|
+
*
|
|
7
|
+
*
|
|
4
8
|
*/
|
|
5
9
|
const _ = require('lodash');
|
|
6
10
|
const path = require('path');
|
|
@@ -23,35 +27,42 @@ function promisify(f) {
|
|
|
23
27
|
}
|
|
24
28
|
|
|
25
29
|
/**
|
|
26
|
-
* 获取wia文件,保存到 wiafile.yml
|
|
30
|
+
* 获取wia文件,保存到 wiafile.yml 文件,返回更新的文件集到 update,
|
|
31
|
+
* 便于编译或者发布。
|
|
27
32
|
* @param {*} dir 文件map路径
|
|
28
33
|
* @param {*} act build or pub,build 时,读取src,pub时,读取 dist
|
|
29
34
|
*/
|
|
30
|
-
async function make(dir, act = 'build') {
|
|
35
|
+
async function make(dir, cfg, act = 'build', all = false) {
|
|
31
36
|
let R = {};
|
|
32
37
|
|
|
33
38
|
try {
|
|
34
39
|
dir = dir || process.cwd(); // 默认指向运行目录
|
|
35
40
|
_src = act === 'pub' ? path.join(dir, './dist') : path.join(dir, './src');
|
|
36
|
-
_cfg =
|
|
41
|
+
_cfg = cfg;
|
|
42
|
+
// require(path.join(dir, './wiaconfig.js')); // eslint-disable-line
|
|
37
43
|
|
|
38
44
|
const {ver} = _cfg;
|
|
39
45
|
// const rs = await getFiles(dir, ver); // 获得该项目所有文件,变化的文件放入f.R 中
|
|
40
46
|
// 获取上次自动上传文件清单
|
|
41
|
-
const f = path.resolve(dir, './wiafile.yml');
|
|
42
47
|
let rs = {};
|
|
43
48
|
let r = {};
|
|
44
|
-
|
|
45
|
-
|
|
49
|
+
const f = path.resolve(dir, './wiafile.yml');
|
|
50
|
+
if (!all && fs.existsSync(f)) r = yaml.load(fs.readFileSync(f, 'utf8')); // eslint-disable-line
|
|
51
|
+
|
|
52
|
+
// r = yaml.load(fs.readFileSync(file, 'utf8'));
|
|
46
53
|
// if (checkVer(r, ver))
|
|
47
54
|
// rs = {};
|
|
55
|
+
// 正在编译、发布的,直接返回正在编译、发布文件,不重新扫描
|
|
56
|
+
// 调用者需决定,是重新编译还是等待,发起编译、发布者,需处理编译完成或失败。
|
|
48
57
|
let skip = false;
|
|
49
58
|
if (r) {
|
|
50
59
|
if (r.pub && r.pub.pubing && act === 'pub') {
|
|
51
|
-
R = r.
|
|
52
|
-
skip = true;
|
|
53
|
-
} else if (r.local && r.local.building && act === 'build')
|
|
60
|
+
R = {pubing: r.wia.pubing, update: r.wia.update};
|
|
54
61
|
skip = true;
|
|
62
|
+
} else if (r.local && r.local.building && act === 'build') {
|
|
63
|
+
R = {building: r.local.building, update: r.local.update};
|
|
64
|
+
skip = true; // 正在编译,跳过
|
|
65
|
+
}
|
|
55
66
|
|
|
56
67
|
// 重新扫描文件,去掉之前的 update
|
|
57
68
|
if (!skip) {
|
|
@@ -75,7 +86,7 @@ async function make(dir, act = 'build') {
|
|
|
75
86
|
console.log('wiafile make getFile', {dir, rs, act});
|
|
76
87
|
|
|
77
88
|
if (!_.isEmpty(rs)) {
|
|
78
|
-
R = rs.update || {};
|
|
89
|
+
R = rs; // .update || {};
|
|
79
90
|
if (act === 'build') rs = {local: rs, wia: r && r.pub ? r.pub : {}};
|
|
80
91
|
else rs = {pub: rs, local: r && r.local ? r.local : {}};
|
|
81
92
|
console.log('wiafile', {dir, rs, act});
|
|
@@ -292,19 +303,20 @@ ${n.join('\n')}
|
|
|
292
303
|
* 通过比较当前项目文件和文件记录中的文件MD5值,
|
|
293
304
|
* 将变化的文件放入update,用于build or publish
|
|
294
305
|
* @param {*} dir 文件路径
|
|
295
|
-
* @param {*} rs
|
|
306
|
+
* @param {*} rs 保存所有文件对象
|
|
296
307
|
* @param {*} act build or pub操作,最新的文件列表写入building or pubing
|
|
297
308
|
*/
|
|
298
309
|
async function getFile(dir, rs, act) {
|
|
299
|
-
const tree = {};
|
|
300
310
|
try {
|
|
301
311
|
// 获得当前文件夹下的所有的文件夹和文件,赋值给目录和文件数组变量
|
|
302
|
-
const [dirs, files] = _(fs.readdirSync(dir)
|
|
312
|
+
const [dirs, files] = _.partition(fs.readdirSync(dir), p =>
|
|
303
313
|
fs.statSync(path.join(dir, p)).isDirectory()
|
|
304
314
|
);
|
|
305
315
|
|
|
306
316
|
// 对子文件夹进行递归,使用了await,串行同步执行
|
|
307
317
|
let pms = [];
|
|
318
|
+
let r;
|
|
319
|
+
if (dirs) {
|
|
308
320
|
for (let i = 0, ilen = dirs.length; i < ilen; i++) {
|
|
309
321
|
const d = dirs[i];
|
|
310
322
|
// eslint-disable-line
|
|
@@ -329,10 +341,13 @@ async function getFile(dir, rs, act) {
|
|
|
329
341
|
pms.push(getFile(path.join(dir, d), rs, act));
|
|
330
342
|
}
|
|
331
343
|
}
|
|
332
|
-
|
|
344
|
+
|
|
345
|
+
if (!_.isEmpty(pms)) r = await Promise.all(pms);
|
|
346
|
+
}
|
|
333
347
|
|
|
334
348
|
pms = [];
|
|
335
349
|
// 当前目录下所有文件名进行同步hash计算
|
|
350
|
+
if (files) {
|
|
336
351
|
// eslint-disable-next-line no-restricted-syntax
|
|
337
352
|
for (const f of files) {
|
|
338
353
|
// (pf.includes('.js') && v === pf)
|
|
@@ -355,12 +370,11 @@ async function getFile(dir, rs, act) {
|
|
|
355
370
|
}
|
|
356
371
|
if (pk) pms.push(hashFile(path.join(dir, f), rs, act));
|
|
357
372
|
}
|
|
358
|
-
|
|
373
|
+
if (!_.isEmpty(pms)) r = await Promise.all(pms);
|
|
374
|
+
}
|
|
359
375
|
} catch (e) {
|
|
360
376
|
console.log(`getFile exp:${e.message}`);
|
|
361
377
|
}
|
|
362
|
-
|
|
363
|
-
return tree;
|
|
364
378
|
}
|
|
365
379
|
|
|
366
380
|
/**
|
|
@@ -419,8 +433,8 @@ function setUpdate(rs, f) {
|
|
|
419
433
|
}
|
|
420
434
|
|
|
421
435
|
/**
|
|
422
|
-
* 生成指定文件的 MD5值,写入
|
|
423
|
-
*
|
|
436
|
+
* 生成指定文件的 MD5值,写入building 或 pubing对象
|
|
437
|
+
* 通过 MD5判断文件是否变化,变化文件写入 update,用于重新编译或发布
|
|
424
438
|
* @param {*} f 文件
|
|
425
439
|
* @param {*} rs 写入的数据集
|
|
426
440
|
*/
|
|
@@ -487,7 +501,7 @@ function hashFile(f, rs, act = 'build') {
|
|
|
487
501
|
* @param {string} f
|
|
488
502
|
*/
|
|
489
503
|
function save(rs, f) {
|
|
490
|
-
const yml = yaml.
|
|
504
|
+
const yml = yaml.dump(rs);
|
|
491
505
|
fs.writeFileSync(f, yml, err => {
|
|
492
506
|
if (err) console.log(`save exp:${err.message}`);
|
|
493
507
|
});
|
|
@@ -497,6 +511,7 @@ function save(rs, f) {
|
|
|
497
511
|
* 编译完成,building文件列表变为build或删除
|
|
498
512
|
* 之前的build清除
|
|
499
513
|
* @param {*} dir
|
|
514
|
+
* @param {*} succ 编译成功还是失败
|
|
500
515
|
*/
|
|
501
516
|
function builded(dir, succ = true) {
|
|
502
517
|
let R = {};
|
|
@@ -504,7 +519,7 @@ function builded(dir, succ = true) {
|
|
|
504
519
|
dir = dir || process.cwd(); // 默认指向运行目录
|
|
505
520
|
const f = path.resolve(dir, './wiafile.yml');
|
|
506
521
|
let r = {};
|
|
507
|
-
if (fs.existsSync(f)) r = yaml.
|
|
522
|
+
if (fs.existsSync(f)) r = yaml.load(fs.readFileSync(f, 'utf8')); // require(file); // eslint-disable-line
|
|
508
523
|
if (r && r.local && r.local.building) {
|
|
509
524
|
const rs = {local: {}, wia: r.wia ? r.wia : {}};
|
|
510
525
|
if (succ) {
|
|
@@ -537,7 +552,7 @@ function pubed(dir, succ = true) {
|
|
|
537
552
|
dir = dir || process.cwd(); // 默认指向运行目录
|
|
538
553
|
const f = path.resolve(dir, './wiafile.yml');
|
|
539
554
|
let r = {};
|
|
540
|
-
if (fs.existsSync(f)) r = yaml.
|
|
555
|
+
if (fs.existsSync(f)) r = yaml.load(fs.readFileSync(f, 'utf8')); // require(file); // eslint-disable-line
|
|
541
556
|
if (r && r.wia && r.wia.pubing) {
|
|
542
557
|
const rs = {wia: {}, local: r.local ? r.local : {}};
|
|
543
558
|
if (succ) {
|
|
@@ -561,12 +576,12 @@ function pubed(dir, succ = true) {
|
|
|
561
576
|
}
|
|
562
577
|
|
|
563
578
|
// make(); // 单独调试用
|
|
564
|
-
async function build(dir) {
|
|
565
|
-
return make(dir, 'build');
|
|
579
|
+
async function build(dir, cfg, all) {
|
|
580
|
+
return make(dir, cfg, 'build', all);
|
|
566
581
|
}
|
|
567
582
|
|
|
568
|
-
async function pub(dir) {
|
|
569
|
-
return make(dir, 'pub');
|
|
583
|
+
async function pub(dir, cfg) {
|
|
584
|
+
return make(dir, cfg, 'pub');
|
|
570
585
|
}
|
|
571
586
|
|
|
572
587
|
module.exports = {build, builded, pub, pubed};
|
package/util/wiapage.js
CHANGED
|
@@ -9,7 +9,6 @@ const utils = require('utility');
|
|
|
9
9
|
const fs = require('fs');
|
|
10
10
|
|
|
11
11
|
let _cfg = {};
|
|
12
|
-
let _src = '';
|
|
13
12
|
|
|
14
13
|
/**
|
|
15
14
|
* 检查指定项目文件是否更新,如更新则重新打包,并自动部署到腾讯云CDN
|
|
@@ -42,7 +41,7 @@ async function pages(dir) {
|
|
|
42
41
|
});
|
|
43
42
|
|
|
44
43
|
// page下的文件写入pages.js文件
|
|
45
|
-
if (!_.isEmpty(pf)) R =
|
|
44
|
+
if (!_.isEmpty(pf)) R = makeFile(pf, 'pages', dir);
|
|
46
45
|
} catch (err) {
|
|
47
46
|
console.log(`pages exp:${err.message}`);
|
|
48
47
|
}
|
|
@@ -81,11 +80,11 @@ async function getPage(dir) {
|
|
|
81
80
|
|
|
82
81
|
try {
|
|
83
82
|
dir = dir || process.cwd();
|
|
84
|
-
|
|
85
|
-
_cfg = require(path.join(
|
|
83
|
+
const src = path.join(dir, './src');
|
|
84
|
+
_cfg = require(path.join(src, './config/app.js'));
|
|
86
85
|
const rs = [];
|
|
87
86
|
// 获取目标项目目录、子目录下的文件MD5对象
|
|
88
|
-
await getFile(path.join(
|
|
87
|
+
await getFile(path.join(src, './page'), rs, src);
|
|
89
88
|
|
|
90
89
|
// 有js文件变化,html、less 暂未处理
|
|
91
90
|
if (!_.isEmpty(rs)) {
|
|
@@ -98,6 +97,7 @@ async function getPage(dir) {
|
|
|
98
97
|
|
|
99
98
|
// eslint-disable-next-line
|
|
100
99
|
for (let pf of _cfg.file) {
|
|
100
|
+
// console.log({v, pf});
|
|
101
101
|
// eslint-disable-line
|
|
102
102
|
if (
|
|
103
103
|
(pf.includes('.js') && v === pf) ||
|
|
@@ -121,7 +121,7 @@ async function getPage(dir) {
|
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
|
-
console.log('getPage', {pk, v});
|
|
124
|
+
// console.log('getPage', {pk, v});
|
|
125
125
|
// 需编译文件
|
|
126
126
|
if (pk) {
|
|
127
127
|
R.push(v);
|
|
@@ -149,27 +149,32 @@ function hash(tx) {
|
|
|
149
149
|
|
|
150
150
|
/**
|
|
151
151
|
* 将page中的js文件创建到pages.js中,方便调试
|
|
152
|
+
* 也用来创建编译入口文件(entry.js),webpack最新5.xx版本自动将入口文件改为直接运行代码!
|
|
153
|
+
* wia需要模块化,创建入口文件来解决该问题。
|
|
152
154
|
* @param {*} pf
|
|
153
155
|
*/
|
|
154
|
-
function
|
|
156
|
+
function makeFile(pf, name, dir) {
|
|
155
157
|
if (_.isEmpty(pf)) return '';
|
|
156
158
|
|
|
159
|
+
dir = dir || process.cwd();
|
|
160
|
+
const src = path.join(dir, './src');
|
|
161
|
+
|
|
157
162
|
const p = [];
|
|
158
163
|
Object.keys(pf).forEach(k => {
|
|
159
164
|
const f = pf[k].replace(/.js$/, '');
|
|
160
165
|
p.push(`import ${k} from '${f}';`);
|
|
161
166
|
});
|
|
162
167
|
|
|
163
|
-
const
|
|
168
|
+
const ns = [];
|
|
164
169
|
Object.keys(pf).forEach(k => {
|
|
165
|
-
const
|
|
166
|
-
|
|
170
|
+
const n = k[0].toLowerCase() + k.slice(1);
|
|
171
|
+
ns.push(` const ${n} = new ${k}();`);
|
|
167
172
|
});
|
|
168
173
|
|
|
169
174
|
p.push(`
|
|
170
|
-
export default class
|
|
175
|
+
export default class ${name[0].toUpperCase() + name.slice(1)} {
|
|
171
176
|
init() {
|
|
172
|
-
${
|
|
177
|
+
${ns.join('\n')}
|
|
173
178
|
}
|
|
174
179
|
}
|
|
175
180
|
`);
|
|
@@ -177,7 +182,7 @@ ${n.join('\n')}
|
|
|
177
182
|
// 将内容写入page.js 文件
|
|
178
183
|
const ps = p.join('\n');
|
|
179
184
|
if (!_.isEmpty(ps)) {
|
|
180
|
-
const f = path.join(
|
|
185
|
+
const f = path.join(src, `./${name}.js`);
|
|
181
186
|
// 获取当前页面共用模块
|
|
182
187
|
let lastH = '';
|
|
183
188
|
if (fs.existsSync(f)) {
|
|
@@ -185,13 +190,15 @@ ${n.join('\n')}
|
|
|
185
190
|
lastH = hash(tx);
|
|
186
191
|
}
|
|
187
192
|
// 有变化,则更新pages文件
|
|
188
|
-
if (hash(ps) !== lastH)
|
|
193
|
+
if (hash(ps) !== lastH) {
|
|
194
|
+
// console.log({f, ps});
|
|
189
195
|
fs.writeFileSync(
|
|
190
196
|
f,
|
|
191
197
|
ps,
|
|
192
198
|
e => e && console.log(`save ${f} exp:${e.message}`)
|
|
193
199
|
);
|
|
194
200
|
}
|
|
201
|
+
}
|
|
195
202
|
|
|
196
203
|
return ps;
|
|
197
204
|
}
|
|
@@ -203,7 +210,7 @@ ${n.join('\n')}
|
|
|
203
210
|
* @param {*} dir 文件路径
|
|
204
211
|
* @param {*} rs 上次更新的hash文件对象
|
|
205
212
|
*/
|
|
206
|
-
async function getFile(dir, rs) {
|
|
213
|
+
async function getFile(dir, rs, src) {
|
|
207
214
|
const tree = {};
|
|
208
215
|
try {
|
|
209
216
|
// 获得当前文件夹下的所有的文件夹和文件,赋值给目录和文件数组变量
|
|
@@ -213,7 +220,7 @@ async function getFile(dir, rs) {
|
|
|
213
220
|
|
|
214
221
|
// 对子文件夹进行递归,使用了Promise.all,并发执行
|
|
215
222
|
const pms = [];
|
|
216
|
-
dirs.forEach(v => pms.push(getFile(path.join(dir, v), rs)));
|
|
223
|
+
dirs.forEach(v => pms.push(getFile(path.join(dir, v), rs, src)));
|
|
217
224
|
await Promise.all(pms);
|
|
218
225
|
|
|
219
226
|
// 当前目录下所有文件名进行同步hash计算
|
|
@@ -222,7 +229,7 @@ async function getFile(dir, rs) {
|
|
|
222
229
|
if (f.includes('.js') && rs) {
|
|
223
230
|
let file = path.join(dir, f);
|
|
224
231
|
// 去掉项目根路径
|
|
225
|
-
file = file.replace(
|
|
232
|
+
file = file.replace(src, '');
|
|
226
233
|
if (file.startsWith(path.sep)) file = file.substr(1);
|
|
227
234
|
|
|
228
235
|
if (path.sep !== '/') file = file.replace(/\\/gim, '/'); // 统一路径为/,方便处理
|
|
@@ -240,13 +247,13 @@ async function getFile(dir, rs) {
|
|
|
240
247
|
function clear(dir) {
|
|
241
248
|
try {
|
|
242
249
|
dir = dir || process.cwd();
|
|
243
|
-
|
|
250
|
+
const src = path.join(dir, './src');
|
|
244
251
|
const ps = `
|
|
245
252
|
export default class Pages {
|
|
246
253
|
}
|
|
247
254
|
`;
|
|
248
255
|
let lastH = '';
|
|
249
|
-
const f = path.join(
|
|
256
|
+
const f = path.join(src, './pages.js');
|
|
250
257
|
if (fs.existsSync(f)) {
|
|
251
258
|
const tx = fs.readFileSync(f, 'utf8');
|
|
252
259
|
lastH = hash(tx);
|
|
@@ -268,4 +275,4 @@ export default class Pages {
|
|
|
268
275
|
|
|
269
276
|
// pages(); // 单独调试用
|
|
270
277
|
|
|
271
|
-
module.exports = {pages, pack, clear};
|
|
278
|
+
module.exports = {pages, pack, clear, makeFile};
|