UNPKG

phaser3-rex-plugins

Version:
7 lines (6 loc) 13.2 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,i){var n=e&&("object"==typeof e||"function"==typeof e),a=i&&("object"==typeof i||"function"==typeof i);if(!n&&!a)return r;var o=String(t);if(n&&o in e)return e[o];if(a&&o in i)return i[o];if(-1===o.indexOf("."))return r;var u=o.split(".");if(n){var h=s(e,u,r);if(h.found)return h.value}if(a){var l=s(i,u,r);if(l.found)return l.value}return r},s=function(e,t,r){for(var s=e,n=r,a=0,o=t.length;a<o;a++){var u=t[a];if(!s||"object"!=typeof s&&"function"!=typeof s||!(u in s))return i.found=!1,i;s=n=s[u]}return i.found=!0,i.value=n,i},i={},n=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,a(e)},a=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,i=0===e.remainderLines||t.length<r;return e.forEachPageCallback&&(i|=!!e.forEachPageCallback(t)),i?(e.resolveCallback&&(s=e.resolveCallback()),Promise.resolve(s)):(e.startIndex+=t.length,a(e))}))},o=function(e,t,r){var s=[];return n({query:e,startIndex:t,totalLines:r,forEachPageCallback:function(e){s.push(...e)},resolveCallback:function(){return s}})},u={loadItems(e,t){void 0===e&&(e=0),void 0===t&&(t=1/0),this.items.length=0;var r=this;return o(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 h{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(h.prototype,u);var l=function(e){return null!==e&&"object"==typeof e},d=function(e,t,r,s="."){if(!l(e))return e;if(function(e){return null==e}(t)||""===t||Array.isArray(t)&&0===t.length)return e;if("string"==typeof t&&-1===t.indexOf(s)||"number"==typeof t)return e[t]=r,e;var i=function(e,t){return Array.isArray(e)||(e="string"!=typeof e||""===e.trim()?[]:e.split(t).filter(Boolean)),e}(t,s);if(0===i.length)return e;for(var n=e,a=i.length,o=0;o<a-1;o++){var u=i[o],h=n[u];l(h)||(n[u]={}),n=n[u]}return n[i[a-1]]=r,e};e.register("pageLoader",(function(e){return new h(e)})),d(window,"RexPlugins.Parse.PageLoader",h);var g={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),o(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 o(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=[],n=0;n<t;n++)i.push(s[n].id);return e=r.baseQuery.containedIn("objectId",i),o(e)}))}},c=function(e){return e.select("id"),o(e).then((function(e){return 0===e.length?Promise.resolve():Parse.Object.destroyAll(e)}))},f={deleteItem(e){return this.createItem().set("id",e).destroy()},delete(e){return void 0===e&&(e=this.baseQuery),c(e)}},m=function(e,t,r){return r||(r=new t),r.set(e),r},v=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 y{constructor(e){this.pageLoader=new h,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 p={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=m(e,r.customClass,t),v(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=m(e[u],t.customClass);v(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=m(r,t.customClass,e),v(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(y.prototype,g,f,p),e.register("itemTable",(function(e){return new y(e)})),d(window,"RexPlugins.Parse.ItemTable",y);var P=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}`}},I={d:"tagD",w:"tagW",m:"tagM",y:"tagY"},b={d:"scoreD",w:"scoreW",m:"scoreM",y:"scoreY"},C={loadFirstPage(){this.resetPageQuery();var e=this;return this.page.loadFirstPage().then((function(t){return Promise.resolve(w.call(e,t))}))},loadNextPage(){this.resetPageQuery();var e=this;return this.page.loadNextPage().then((function(t){return Promise.resolve(w.call(e,t))}))},loadPreviousPage(){this.resetPageQuery();var e=this;return this.page.loadPreviousPage().then((function(t){return Promise.resolve(w.call(e,t))}))},loadCurrentPage(){this.resetPageQuery();var e=this;return this.page.loadCurrentPage().then((function(t){return Promise.resolve(w.call(e,t))}))},load(e,t){this.resetPageQuery();var r=this;return this.page.load(e,t).then((function(e){return Promise.resolve(w.call(r,e))}))},resetPageQuery(){return this.resetQueryFlag?(this.resetQueryFlag=!1,this.page.setQuery(this.getPageQuery()),this):this}},w=function(e){for(var t,r=[],s=b[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[I[a]],delete t[b[a]];r.push(t)}return r},Q={deleteUser(e){void 0===e&&(e=this.userID);var t=this.getRecordQuery(void 0,void 0,e,void 0);return c(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 c(r)}},x={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=[I[r],P()[r]],t=b[r]}else e=void 0,t="score";var s=this.getRecordQuery(this.boardID,this.tag,void 0,e);return s=s.descending(t)}};class F{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 h({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 D={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=P(r);if(!1!==this.timeFilters)for(var n in this.timeFilters)this.timeFilters[n]&&(s[I[n]]=i[n],s[b[n]]=e);else s.score=e;this.tag&&(s.tag=this.tag),t&&Object.assign(s,t),i=P();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=I[r];if(t.get(i)===s[i]){var n=b[r];s[n]=Math.max(t.get(n),s[n])}}}else s.score=Math.max(t.get("score"),s.score);return m(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},s=0;return n({query:e,forEachPageCallback:function(e){for(var i,n=0,a=e.length;n<a;n++)if(i=e[n],t(i))return r.item=i,r.index=s+n,!0;s+=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(F.prototype,D,x,C,Q),e.register("leaderBoard",(function(e){return new F(e)})),d(window,"RexPlugins.Parse.Leaderboard",F);var L=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 N{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 T={quickLogin:function(e,t){return Parse.User.logOut().then((function(){return Parse.User.logIn(e,t)})).catch((function(){return L(e,t)}))}};return Object.assign(N.prototype,T),N},"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();