UNPKG

phaser4-rex-plugins

Version:
7 lines (6 loc) 12.9 kB
var e,t;e=void 0,t=function(){class e{constructor(){}initializeApp(e){return firebase.initializeApp(e),this}static register(t,r){e.prototype[t]=r}}var t=function(e){return new Promise((function(t,r){!function(e,t){for(var r=document.getElementsByTagName("script"),s=0,i=r.length;s<i;s++)if(-1!=r[s].src.indexOf(e))return void(t&&t());var n=document.createElement("script");n.setAttribute("src",e),t&&(n.onload=t),document.head.appendChild(n)}(e,t)}))},r=function(e,t,r){if(!e||"number"==typeof e)return r;if("string"==typeof t){if(e.hasOwnProperty(t))return e[t];if(-1===t.indexOf("."))return r;t=t.split(".")}for(var s=t,i=e,n=r,a=0;a<s.length;a++){if(t=s[a],!i.hasOwnProperty(t)){n=r;break}i=n=i[t]}return n},s=function(e){return void 0===e.startIndex&&(e.startIndex=0),void 0===e.totalLines&&(e.totalLines=1/0),void 0===e.linesPerPage&&(e.linesPerPage=1e3),e.remainderLines=e.totalLines,i(e)},i=function(e){var t=e.query,r=Math.min(e.remainderLines,e.linesPerPage);return e.remainderLines-=r,t.skip(e.startIndex).limit(r).find().then((function(t){var s,n=0===e.remainderLines||t.length<r;return e.forEachPageCallback&&(n|=!!e.forEachPageCallback(t)),n?(e.resolveCallback&&(s=e.resolveCallback()),Promise.resolve(s)):(e.startIndex+=t.length,i(e))}))},n=function(e,t,r){var i=[];return s({query:e,startIndex:t,totalLines:r,forEachPageCallback:function(e){i.push(...e)},resolveCallback:function(){return i}})},a={loadItems(e,t){void 0===e&&(e=0),void 0===t&&(t=1/0),this.items.length=0;var r=this;return n(this.query,e,t).then((function(s){return r.items=s,r.startIndex=e,r.pageIndex=Math.floor(e/r.itemCount),r.isFullPage=t===1/0||t===s.length,Promise.resolve(s)})).catch((function(e){return r.isFullPage=!1,Promise.reject(e)}))},loadPage(e){var t=e*this.itemCount;return this.loadItems(t,this.itemCount)},loadFirstPage(){return this.loadItems(0,this.itemCount)},loadCurrentPage(){return this.loadItems(this.startIndex,this.itemCount)},loadNextPage(){var e=this.startIndex+this.itemCount;return this.loadItems(e,this.itemCount)},loadPreviousPage(){var e=this.startIndex-this.itemCount;return this.loadItems(e,this.itemCount)}};class o{constructor(e){this.items=[],this.startIndex=0,this.pageIndex=0,this.isFullPage=!1,this.setItemCount(r(e,"itemCount",100)),this.setQuery(r(e,"query",void 0))}setItemCount(e){return this.itemCount=e,this.pageIndex=Math.floor(this.startIndex/e),this}setQuery(e){return this.query=e,this}getItem(e){return this.items[e-this.startIndex]}findFirst(e,t){for(var r,s=this.items.length;r<s;r++)if(this.items[r].get(e)===t)return r+this.startIndex;return-1}}Object.assign(o.prototype,a);var u=function(e){return null==e||""===e||0===e.length},h=function(e,t,r,s){if(void 0===s&&(s="."),"object"==typeof e){if(u(t)){if(null==r)return;"object"==typeof r&&(e=r)}else{"string"==typeof t&&(t=t.split(s));var i=t.pop(),n=function(e,t,r){var s=e;if(u(t));else{var i;"string"==typeof t&&(t=t.split("."));for(var n=0,a=t.length;n<a;n++){var o;null!=s[i=t[n]]&&"object"==typeof s[i]||(o=n===a-1?void 0===r?{}:r:{},s[i]=o),s=s[i]}}return s}(e,t);n[i]=r}return e}};e.register("pageLoader",(function(e){return new o(e)})),h(window,"RexPlugins.Parse.PageLoader",o);var l={loadItem(e,t){if("string"==typeof e){var r=this.baseQuery;return t&&(r=r.select(t)),r.get(e)}return r=this.getQuery(e).limit(1),t&&(r=r.select(t)),r.find().then((function(e){return Promise.resolve(e[0])}))},loadPage(e){return this.pageLoader.loadPage(e)},loadCurrentPage(){return this.pageLoader.loadCurrentPage()},loadNextPage(){return this.pageLoader.loadNextPage()},loadPreviousPage(){return this.pageLoader.loadPreviousPage()},loadItems(e,t){return this.pageLoader.loadItems(e,t)},load(e){return void 0===e&&(e=this.baseQuery),n(e)},loadRandomItems:function(e,t){"number"==typeof e&&(t=e,e=void 0),void 0===e&&(e=this.baseQuery),void 0===t&&(t=1),e.select("id");var r=this;return n(e).then((function(s){!function(e){for(var t=e.length-1;t>0;t--){var r=Math.floor(Math.random()*(t+1)),s=e[t];e[t]=e[r],e[r]=s}}(s),t=Math.min(t,s.length);for(var i=[],a=0;a<t;a++)i.push(s[a].id);return e=r.baseQuery.containedIn("objectId",i),n(e)}))}},d=function(e){return e.select("id"),n(e).then((function(e){return 0===e.length?Promise.resolve():Parse.Object.destroyAll(e)}))},g={deleteItem(e){return this.createItem().set("id",e).destroy()},delete(e){return void 0===e&&(e=this.baseQuery),d(e)}},c=function(e,t,r){return r||(r=new t),r.set(e),r},m=function(e,t,r){if(!t&&!r)return e;var s=Parse.User.current();if(!s)return e;var i=new Parse.ACL(s);return r||i.setPublicWriteAccess(!0),t||i.setPublicReadAccess(!0),e.setACL(i),e}; /** * @author Richard Davey <rich@photonstorm.com> * @copyright 2018 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */class f{constructor(e){this.pageLoader=new o,this.setClassName(r(e,"className","Item")),this.setItemCount(r(e,"itemCount",100)),this.setQuery(),this.primaryKeys=[];var t=r(e,"primaryKeys",void 0);t&&this.setPrimaryKey(t),this.setOwnerReadMode(r(e,"ownerRead",void 0)),this.setOwnerWriteMode(r(e,"ownerWrite",void 0))}setClassName(e){return this.customClass=Parse.Object.extend(e),this}setPrimaryKey(e){return e?"string"==typeof e?(this.primaryKeys.length=1,this.primaryKeys[0]=e):function(e,t,r,s){void 0===r&&(r=0),void 0===s&&(s=t.length),e.length=s-r;for(var i=0,n=e.length;i<n;i++)e[i]=t[i+r]}(this.primaryKeys,e):this.primaryKeys.length=0,this}setOwnerReadMode(e){return this.ownerRead=e,this}setOwnerWriteMode(e){return this.ownerWrite=e,this}createItem(){return new this.customClass}setItemCount(e){return this.pageLoader.setItemCount(e),this}setQuery(e){return void 0===e&&(e=this.baseQuery),this.pageLoader.setQuery(e),this}get baseQuery(){return new Parse.Query(this.customClass)}get startIndex(){return this.pageLoader.startIndex}get pageIndex(){return this.pageLoader.pageIndex}get isLastPage(){return this.pageLoader.isLastPage}}var v={getQuery:function(e){for(var t,r,s=this.baseQuery,i=e instanceof this.customClass,n=0,a=this.primaryKeys.length;n<a;n++)t=this.primaryKeys[n],r=i?e.get(t):e[t],s.equalTo(t,r);return s},save:function(e){if(t=e,"[object Array]"===Object.prototype.toString.call(t))return this.saveItems(e);var t,r=this;return new Promise((function(t,s){if(!(r.primaryKeys.length>0))return t();r.loadItem(e,"id").then(t,s)})).then((function(t){return t=c(e,r.customClass,t),m(t,r.ownerRead,r.ownerWrite),t.save()}))},saveItems:function(e){var t=this;return new Promise((function(r,s){var i=[];if(!(t.primaryKeys.length>0)){for(u=0,h=e.length;u<h;u++){var n=c(e[u],t.customClass);m(n,t.ownerRead,t.ownerWrite),i.push(n)}return r(i)}for(var a,o=[],u=0,h=e.length;u<h;u++){let r=e[u];a=t.loadItem(r,"id").then((function(e){e=c(r,t.customClass,e),m(e,t.ownerRead,t.ownerWrite),i.push(e)})),o.push(a)}Promise.all(o).then((function(){return r(i)})).catch(s)})).then((function(e){return Parse.Object.saveAll(e)}))},getItemCount:function(e){return void 0===e&&(e=this.baseQuery),e.count()}};Object.assign(f.prototype,l,g,v),e.register("itemTable",(function(e){return new f(e)})),h(window,"RexPlugins.Parse.ItemTable",f);var y=function(e){var t=e?new Date(e):new Date,r=t.getFullYear(),s=t.getMonth()+1,i=t.getDate(),n=new Date(t.getFullYear(),0,1);return{d:`${r}-${s}-${i}`,w:`${r}-${Math.ceil(((t-n)/864e5+n.getDay()+1)/7)}`,m:`${r}-${s}`,y:`${r}`}},p={d:"tagD",w:"tagW",m:"tagM",y:"tagY"},P={d:"scoreD",w:"scoreW",m:"scoreM",y:"scoreY"},I={loadFirstPage(){this.resetPageQuery();var e=this;return this.page.loadFirstPage().then((function(t){return Promise.resolve(b.call(e,t))}))},loadNextPage(){this.resetPageQuery();var e=this;return this.page.loadNextPage().then((function(t){return Promise.resolve(b.call(e,t))}))},loadPreviousPage(){this.resetPageQuery();var e=this;return this.page.loadPreviousPage().then((function(t){return Promise.resolve(b.call(e,t))}))},loadCurrentPage(){this.resetPageQuery();var e=this;return this.page.loadCurrentPage().then((function(t){return Promise.resolve(b.call(e,t))}))},load(e,t){this.resetPageQuery();var r=this;return this.page.load(e,t).then((function(e){return Promise.resolve(b.call(r,e))}))},resetPageQuery(){return this.resetQueryFlag?(this.resetQueryFlag=!1,this.page.setQuery(this.getPageQuery()),this):this}},b=function(e){for(var t,r=[],s=P[this.timeFilterType[0]],i=0,n=e.length;i<n;i++){if(t=e[i].toJSON(),!1!==this.timeFilters)for(var a in t.score=t[s],this.timeFilters)delete t[p[a]],delete t[P[a]];r.push(t)}return r},C={deleteUser(e){void 0===e&&(e=this.userID);var t=this.getRecordQuery(void 0,void 0,e,void 0);return d(t)},deleteBoard(e,t){void 0===e&&(e=this.boardID),void 0===t&&(t=this.tag);var r=this.getRecordQuery(e,t,void 0,void 0);return d(r)}},w={getRecordQuery(e,t,r,s){var i=this.baseQuery;return i=void 0!==e?i.equalTo("boardID",e):i,i=void 0!==t?i.equalTo("tag",t):i,i=void 0!==r?i.equalTo("userID",r):i,void 0!==s&&(i=i.equalTo(s[0],s[1])),i},getMyRecordQuery(e){return void 0===e&&(e=this.userID),this.getRecordQuery(this.boardID,this.tag,e,void 0).limit(1)},getPageQuery(){var e,t;if(!1!==this.timeFilters){var r=this.timeFilterType[0];e=[p[r],y()[r]],t=P[r]}else e=void 0,t="score";var s=this.getRecordQuery(this.boardID,this.tag,void 0,e);return s=s.descending(t)}};class Q{constructor(e){this.setClassName(r(e,"className","Item")),this.userInfo={userID:void 0,userName:void 0},this.setUser(r(e,"userID",""),r(e,"userName",void 0)),this.setBoardID(r(e,"boardID",void 0)),this.setTag(r(e,"tag",void 0)),this.setTimeFilters(r(e,"timeFilters",!1)),this.setTimeFilterType(r(e,"timeFilterType","year")),this.page=new o({itemCount:r(e,"pageItemCount",100)}),this.resetQueryFlag=!0}shutdown(){}destroy(){this.shutdown()}get userID(){return this.userInfo.userID}set userID(e){this.userInfo.userID=e}get userName(){return this.userInfo.userName}set userName(e){this.userInfo.userName=e}setClassName(e){return this.resetQueryFlag=!0,this.customClass=Parse.Object.extend(e),this}setUser(e,t){return function(e){if("object"!=typeof e||e.nodeType||e===e.window)return!1;try{if(e.constructor&&!{}.hasOwnProperty.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(e){return!1}return!0}(e)?this.userInfo=e:(this.userID=e,this.userName=t),this}setBoardID(e){return this.resetQueryFlag|=this.boardID!==e,this.boardID=e,this}setTag(e){return this.resetQueryFlag|=this.tag!==e,this.tag=e,this}setTimeFilters(e){return this.timeFilters=!1!==e&&{d:r(e,"day",!0),w:r(e,"week",!0),m:r(e,"month",!0),y:r(e,"year",!0)},this}setTimeFilterType(e){return this.resetQueryFlag|=this.timeFilterType!==e,this.timeFilterType=e,this}setPageItemCount(e){return this.page.setItemCount(e),this}get baseQuery(){return new Parse.Query(this.customClass)}get pageIndex(){return this.page.pageIndex}get isFirstPage(){return 0===this.page.pageIndex}get isLastPage(){return!1===this.page.isFullPage}}var x={post:function(e,t,r){var s={userID:this.userID};void 0!==this.boardID&&(s.boardID=this.boardID),this.userName&&(s.userName=this.userName);var i=y(r);if(!1!==this.timeFilters)for(var n in this.timeFilters)this.timeFilters[n]&&(s[p[n]]=i[n],s[P[n]]=e);else s.score=e;this.tag&&(s.tag=this.tag),t&&Object.assign(s,t),i=y();var a=this;return this.getMyRecordQuery().find().then((function(e){var t=e[0];if(t)if(!1!==a.timeFilters){for(var r in a.timeFilters)if(a.timeFilters[r]){var i=p[r];if(t.get(i)===s[i]){var n=P[r];s[n]=Math.max(t.get(n),s[n])}}}else s.score=Math.max(t.get("score"),s.score);return c(s,a.customClass,t).save()}))},getScore:function(e){return this.getMyRecordQuery(e).find().then((function(e){var t=e[0];return t&&(t=t.toJSON()),Promise.resolve(t)}))},getRank:function(e){return void 0===e&&(e=this.userID),function(e,t){var r={item:void 0,index:void 0},i=0;return s({query:e,forEachPageCallback:function(e){for(var s,n=0,a=e.length;n<a;n++)if(s=e[n],t(s))return r.item=s,r.index=i+n,!0;i+=e.length},resolveCallback:function(){return r}})}(this.getPageQuery(),(function(t){return t.get("userID")===e})).then((function(t){return Promise.resolve({userID:e,rank:t.index})}))}};Object.assign(Q.prototype,x,w,I,C),e.register("leaderBoard",(function(e){return new Q(e)})),h(window,"RexPlugins.Parse.Leaderboard",Q);var F=function(e,t){var r=new Parse.User;return r.set("username",e).set("password",t),r.signUp().then((function(){return Parse.User.logIn(e,t)}))};class D{constructor(){this.add=new e}preload(e){return function(e){return void 0===e&&(e="https://npmcdn.com/parse@2.11.0/dist/parse.min.js"),t(e)}(e)}}var L={quickLogin:function(e,t){return Parse.User.logOut().then((function(){return Parse.User.logIn(e,t)})).catch((function(){return F(e,t)}))}};return Object.assign(D.prototype,L),D},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).rexparse=t();