"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e}; /*! * Copyright (C) Oh!Fuchs, if not stated otherwise * Written by Patrick Paul, Oh!Fuchs, Apparelcuts 2015-2019 */wp.hooks.addAction("sfw.register.plugins","sfw.plugin.sync",function(n,o){function s(e){var t=e/1e3,s=Math.floor(t%31536e3%86400/3600),r=Math.floor(t%31536e3%86400%3600/60),a=Math.floor(t%31536e3%86400%3600%60);return t<60?"less than a minute":1.inside")},wp.hooks.addAction("sfw.ready","sfw.sync.stats.init",function(){return i.init()}),c.group=function(e){e=e||n.__("Other","apparelcuts-spreadshirt");var t=i.$box.find('[data-stats-group="'+e+'"]');return t.length||(t=o('
').append("

"+e+"

")).appendTo(i.$box),t},c.stat=i.update=function(e){var t=1
'+e+'
')).appendTo(this.group(s)),a.find(".--value").html(t)},c.registered_tasks={},c.registerTask=function(e,t){t=o.extend({},{handle:e,label:e,callback:null,dependencies:[],data:!1},t),this.registered_tasks[e]=t},c.queued_tasks=[],c.enqueueTask=function(e,t){this.queued_tasks.push(e),t&&c.registerTask(e,t)},c.getTask=function(e){return this.registered_tasks[e]||!1},c.addDependency=function(e,t){var s=this.getTask(e);s&&s.dependencies.push(t)},c.resolve_dependencies=function(e){var a=this.queue;e.forEach(function(e,t,s){if(!(0<=a.indexOf(e))){var r=c.getTask(e);r&&r.dependencies.length&&c.resolve_dependencies(r.dependencies),a.push(e)}})},c.create_queue=function(){return this.queue=[],this.resolve_dependencies(this.queued_tasks),this.queuesize=this.queue.length,this.queue},c.run=function(){return this.tasks_done=[],this.tasks_failed=[],this.runtime_errors=0,this.start=(new Date).getTime(),this.force_update=o("input#force_update").attr("disabled",!0).is(":checked"),d.get("primary").reset(),this.create_queue(),this.task_count=this.queue.length,this.forceStop=!1,this.synchronization_process=o.Deferred(),o("body").addClass("sfw-sync-running"),this.synchronization_process.always(function(){console.log(c.tasks_done.length+" Tasks completed."),console.log(c.tasks_failed.length+" Tasks failed."),c.tasks_failed.length&&c.stat(n.__("Failed Tasks","apparelcuts-spreadshirt"),n.sprintf("%1$s of %2$s",c.tasks_failed.length,c.task_count),n.__("Errors","apparelcuts-spreadshirt")),o("body").removeClass("sfw-sync-running")}).done(function(){var e="Synchronization finished after "+s((new Date).getTime()-c.start)+".";d.get("primary").set(100,e),console.log("%c"+e,"color:white;background:green;"),o("body").addClass("sfw-sync-success"),r.show('')}).fail(function(e){var t="Synchronization failed after "+s((new Date).getTime()-c.start)+". "+e.msg;d.get("primary").set(100,e.msg||""),console.error(t),o("body").addClass("sfw-sync-failed"),r.show('')}),this.runTask(),this.synchronization_process.promise()},c.stop=function(){var e=this;if(this.forceStop)return this.synchronization_process.reject({error:"stopped-manually",msg:n.__("Synchronization stopped manually","apparelcuts-spreadshirt")}),!0;n.api({route:"did-sync"}).always(function(){return e.synchronization_process.resolve()})},c.stopped=function(){return!!this.forceStop&&(c.stop(),!0)},c.runTask=function(){if(0!==this.queue.length){if(!this.stopped()){var r=this.queue.shift(),e=this.getTask(r),a=d.get("primary"),i=d.get("secondary"),t=o.Deferred(function(t){if(!e)return t.reject({error:"task-not-found",msg:'Skipping Task "'+r+'". Task not found.'});if("function"!=typeof e.callback)return t.reject({error:"task-not-callable",msg:'Skipping Task "'+r+'". Callback is not a function.'});var s=!1;return e.dependencies.forEach(function(e){-1===c.tasks_done.indexOf(e)&&(s=e)}),s?t.reject({error:"missing-task-dependency",msg:'Skipping Task "'+r+'". Missing dependency "'+s+'"'}):(a.setLabel(e.label),i.reset(),console.log('%cStarting Task "'+r+'"…',"color:#bbb;"),e.callback.call(null,i,c).then(function(e){return t.resolve(e)},function(e){return t.reject(e)}))});t.done(function(e){c.tasks_done.push(r),(e=e||[]).length?(c.stat(r,e.length,n.__("Errors","apparelcuts-spreadshirt")),console.error('Finished Task "'+r+'" with errors…',e)):console.log('%cFinished Task "'+r+'" without errors…',"color:#bbb;")}),t.fail(function(e){c.tasks_failed.push(r),console.error("Task failed: "+r,e)}),t.always(function(){i.set(100,""),a.set(c.tasks_failed.length+c.tasks_done.length/c.queuesize*100),c.screen.stage.reset(),c.runTask()})}}else c.stop()},c.dataStorage={},c.get=function(e,t){return void 0===t&&(t=!1),this.dataStorage[e]||t},c.set=function(e,t){this.dataStorage[e]=t}}),wp.hooks.addAction("sfw.sync.init","sfw.sync.tasks.proto",function(p,u){p.sync,p.InventoryTask=function(e,s,r){var a=this;return this.deferred=u.Deferred(),this.args=u.extend({offset:0,limit:500,url:!1,dataStorage:!1,root:!1,label_log:p.__("%1$s Items found","apparelcuts-spreadshirt"),stat_group:!1},e),this.data=[],this.errors=[],this.args.url?(this.request=function(){if(!s.stopped()){var e={method:"get",url:a.args.url,data:{fullData:"true",offset:a.args.offset,limit:a.args.limit,noCache:!0}};p.spreadshirt(e).done(function(e){var t=a.args.root?e[a.args.root]:e;a.data=a.data.concat(t),a.args.stat_group&&s.stat("Spreadshirt",a.data.length,a.args.stat_group),a.args.offset+=a.args.limit,a.args.offset<=e.count?(r.set(a.args.offset/e.count*100),setTimeout(a.request,p.get("remote_timeout",500))):(a.args.dataStorage&&s.set(a.args.dataStorage,a.data),console.log(p.sprintf(a.args.label_log,a.data.length)),a.deferred.resolve(a.errors,a.data))}).fail(function(e){a.deferred.reject({error:"request",msg:p.extractErrorMsg(e),data:e})})}},this.request(),this.deferred.promise()):this.deferred.reject({error:"missing-url",msg:"No proper url given."})},p.SyncingTask=function(e,a,i){var s=this,n=this;return this.deferred=u.Deferred(),this.args=u.extend({data:[],entity:null},e),this.queue=[],u.each(this.args.data,function(e,t){"object"===(void 0===t?"undefined":_typeof(t))&&t.id?s.queue.push(t):s.queue.push({id:t})}),this.total=this.queue.length,this.errors=[],this.queue.length?(this.request=function(){if(!a.stopped()){var e=n.queue.shift(),t=e.id;i.setLabel(p.__("Syncing...","apparelcuts-spreadshirt")+" "+t);try{if(e.resources)for(var s in e.resources)"preview"==e.resources[s].type&&a.screen.stage.show(u("").attr("src",e.resources[s].href+",width=50,height=50"))}catch(e){}var r={entity:n.args.entity,spreadshirt_id:t,force_update:a.force_update};p.api({route:"sync-item",data:r}).fail(function(e){n.errors.push(e),console.log(p.extractErrorMsg(e))}).always(function(){n.queue.length?(i.set((n.total-n.queue.length)/n.total*100),setTimeout(n.request,p.get("local_timeout",500))):n.deferred.resolve(n.errors)})}},this.request(),this.deferred.promise()):this.deferred.resolve(n.errors)},p.EntityInventoryTask=function(e,s,r){var a=this;return this.deferred=u.Deferred(),this.args=u.extend({entity:null,offset:0,limit:500,dataStorage:!1,label_log:p.__("%1$s Items found","apparelcuts-spreadshirt"),stat_group:!1},e),this.data=[],this.errors=[],this.request=function(){if(!s.stopped()){var e={route:"entity-list",data:{offset:a.args.offset,limit:a.args.limit,entity:a.args.entity}};p.api(e).done(function(e){var t=e.items;a.data=a.data.concat(t),a.args.stat_group&&s.stat("Wordpress",a.data.length,a.args.stat_group),a.args.offset+=a.args.limit,0==e.results||e.results