| 1 |
var BBP_Utils={clone:function(obj){try{return JSON.parse(JSON.stringify(obj))}catch(e){return obj}},render:function(canvas){if(!canvas){return} |
| 2 |
if(typeof canvas.requestRenderAll==='function'){canvas.requestRenderAll()}else if(typeof canvas.renderAll==='function'){canvas.renderAll()}}};var BBP_Command_Manager=function(args){args=args||{};this.max_steps=(args.max_steps)?parseInt(args.max_steps,10):150;this.undo_stack=[];this.redo_stack=[];this.is_restoring=!1;this.is_executing_command=!1;this._undo_redo_lock=!1;this._undo_redo_lock_action=null;this._undo_redo_lock_timer=null;this._focus_sync_timer=null;this._focus_sync_running=!1};BBP_Command_Manager.prototype.can_undo=function(){return(this.undo_stack.length>0)};BBP_Command_Manager.prototype.can_redo=function(){return(this.redo_stack.length>0)};BBP_Command_Manager.prototype.clear_stacks=function(){this.undo_stack=[];this.redo_stack=[]};BBP_Command_Manager.prototype._acquire_undo_redo_lock=function(action){var lock_action=action||'';if(this._undo_redo_lock&&this._undo_redo_lock_action===lock_action){return!1} |
| 3 |
this._undo_redo_lock=!0;this._undo_redo_lock_action=lock_action;if(this._undo_redo_lock_timer){clearTimeout(this._undo_redo_lock_timer)} |
| 4 |
var self=this;this._undo_redo_lock_timer=setTimeout(function(){self._undo_redo_lock=!1;self._undo_redo_lock_action=null;self._undo_redo_lock_timer=null},120);return!0};BBP_Command_Manager.prototype.begin_restore=function(){this.is_restoring=!0};BBP_Command_Manager.prototype.end_restore=function(){this.is_restoring=!1};BBP_Command_Manager.prototype.with_restore=function(callback){if(typeof callback!=='function'){return} |
| 5 |
this.begin_restore();try{callback()}finally{this.end_restore()}};BBP_Command_Manager.prototype._schedule_focus_sync=function(){var self=this;if(this._focus_sync_timer){clearTimeout(this._focus_sync_timer)} |
| 6 |
this._focus_sync_timer=setTimeout(function(){self._focus_sync_timer=null;if(self._focus_sync_running){self._schedule_focus_sync();return} |
| 7 |
self._focus_sync_running=!0;try{var canvas=null;if(typeof window.gamipress_badge_builder_canvas!=='undefined'&&window.gamipress_badge_builder_canvas){canvas=window.gamipress_badge_builder_canvas}else if(typeof window.GamiPress_Badge_Builder!=='undefined'&&window.GamiPress_Badge_Builder&&window.GamiPress_Badge_Builder.canvas){canvas=window.GamiPress_Badge_Builder.canvas} |
| 8 |
if(!canvas||typeof canvas.getActiveObject!=='function'){return} |
| 9 |
var active=null;try{active=canvas.getActiveObject()}catch(e1){active=null} |
| 10 |
var core_active=active;if(active&&active.type&&String(active.type).toLowerCase()==='activeselection'&&typeof active.getObjects==='function'){var sel_objects=active.getObjects()||[];core_active=sel_objects.length?sel_objects[sel_objects.length-1]:null} |
| 11 |
if(typeof window.gamipress_badge_builder_active_obj!=='undefined'){window.gamipress_badge_builder_active_obj=core_active||undefined} |
| 12 |
if(typeof window.gamipress_badge_builder_active_obj_index!=='undefined'){var idx=-1;if(core_active&&typeof canvas.getObjects==='function'){idx=canvas.getObjects().indexOf(core_active)} |
| 13 |
window.gamipress_badge_builder_active_obj_index=idx} |
| 14 |
if(typeof window.bbp_sync_selection_ui==='function'){try{window.bbp_sync_selection_ui(canvas,active,core_active)}catch(e_ui){}} |
| 15 |
if(typeof window.gamipress_badge_builder_update_selection_form==='function'){var had_sync_flag=(typeof window.bbp_selection_form_syncing!=='undefined');var prev_sync_flag=window.bbp_selection_form_syncing;window.bbp_selection_form_syncing=!0;try{window.gamipress_badge_builder_update_selection_form()}catch(e2){}finally{if(had_sync_flag){window.bbp_selection_form_syncing=prev_sync_flag}else{try{delete window.bbp_selection_form_syncing}catch(e3){window.bbp_selection_form_syncing=!1}}}}}finally{self._focus_sync_running=!1}},0)};BBP_Command_Manager.prototype.execute=function(command){if(!command){return} |
| 16 |
this.is_executing_command=!0;try{if(typeof command.execute==='function'){command.execute()}}finally{this.is_executing_command=!1} |
| 17 |
this.undo_stack.push(command);this.redo_stack=[];if(this.max_steps>0&&this.undo_stack.length>this.max_steps){this.undo_stack.shift()} |
| 18 |
if(window.BBP_DEBUG&&window.console&&typeof window.console.log==='function'){window.console.log('[BBP] Command executed',command)} |
| 19 |
this._schedule_focus_sync()};BBP_Command_Manager.prototype.undo=function(){if(!this._acquire_undo_redo_lock('undo')){return} |
| 20 |
if(this.undo_stack.length===0){if(window.BBP_DEBUG&&window.console&&typeof window.console.log==='function'){window.console.log('[BBP] Undo ignored (empty stack)')} |
| 21 |
return} |
| 22 |
var self=this;this.is_executing_command=!0;try{this.with_restore(function(){var command=self.undo_stack.pop();var did_undo=!1;if(command&&typeof command.undo==='function'){try{command.undo();did_undo=!0}catch(err){if(window.BBP_DEBUG&&window.console&&typeof window.console.error==='function'){window.console.error('[BBP] Undo command failed',err,command)}}} |
| 23 |
if(did_undo){self.redo_stack.push(command)} |
| 24 |
if(window.BBP_DEBUG&&window.console&&typeof window.console.log==='function'){window.console.log('[BBP] Undo',command)}})}finally{this.is_executing_command=!1} |
| 25 |
this._schedule_focus_sync()};BBP_Command_Manager.prototype.redo=function(){if(!this._acquire_undo_redo_lock('redo')){return} |
| 26 |
if(this.redo_stack.length===0){if(window.BBP_DEBUG&&window.console&&typeof window.console.log==='function'){window.console.log('[BBP] Redo ignored (empty stack)')} |
| 27 |
return} |
| 28 |
var self=this;this.is_executing_command=!0;try{this.with_restore(function(){var command=self.redo_stack.pop();var did_redo=!1;if(command&&typeof command.redo==='function'){try{command.redo();did_redo=!0}catch(err){if(window.BBP_DEBUG&&window.console&&typeof window.console.error==='function'){window.console.error('[BBP] Redo command failed',err,command)}}}else if(command&&typeof command.execute==='function'){try{command.execute();did_redo=!0}catch(err2){if(window.BBP_DEBUG&&window.console&&typeof window.console.error==='function'){window.console.error('[BBP] Redo execute failed',err2,command)}}} |
| 29 |
if(did_redo){self.undo_stack.push(command)} |
| 30 |
if(window.BBP_DEBUG&&window.console&&typeof window.console.log==='function'){window.console.log('[BBP] Redo',command)}})}finally{this.is_executing_command=!1} |
| 31 |
this._schedule_focus_sync()};var BBP_Command=function(args){this.type='command';this.label='';this.configure(args)};BBP_Command.prototype.configure=function(args){if(!args){return} |
| 32 |
if(typeof args.type!=='undefined'){this.type=String(args.type)} |
| 33 |
if(typeof args.label!=='undefined'){this.label=String(args.label)}};BBP_Command.prototype.apply=function(){};BBP_Command.prototype.revert=function(){};var BBP_Props_Command=function(objects,before,after,args){BBP_Command.call(this,args);this.type='props';this.objects=(Array.isArray(objects)?objects:(objects?[objects]:[]));this.before=(Array.isArray(before)?before:[]);this.after=(Array.isArray(after)?after:[])};BBP_Props_Command.prototype=Object.create(BBP_Command.prototype);BBP_Props_Command.prototype.constructor=BBP_Props_Command;BBP_Props_Command.prototype.execute=function(){this.apply()};BBP_Props_Command.prototype.undo=function(){this.revert()};BBP_Props_Command.prototype.redo=function(){this.apply()};BBP_Props_Command.prototype.apply=function(){this._apply_states(this.after)};BBP_Props_Command.prototype.revert=function(){this._apply_states(this.before)};BBP_Props_Command.prototype._apply_states=function(states){if(this.objects.length===0){return} |
| 34 |
if(!Array.isArray(states)){return} |
| 35 |
var canvas=null;for(var i=0;i<this.objects.length;i++){var object=this.objects[i];var state=(states[i]?states[i]:null);if(!object||!state){continue} |
| 36 |
if(!canvas&&object.canvas){canvas=object.canvas} |
| 37 |
var next_state=state;if(next_state&&typeof next_state==='object'){next_state=BBP_Utils.clone(next_state);if(next_state.fill&&typeof next_state.fill==='object'&&next_state.fill.__bbp_gradient&&next_state.fill.value){if(typeof fabric!=='undefined'&&typeof fabric.Gradient!=='undefined'){try{next_state.fill=new fabric.Gradient(next_state.fill.value)}catch(e){next_state.fill=next_state.fill.value}}else{next_state.fill=next_state.fill.value}} |
| 38 |
if(next_state.stroke&&typeof next_state.stroke==='object'&&next_state.stroke.__bbp_gradient&&next_state.stroke.value){if(typeof fabric!=='undefined'&&typeof fabric.Gradient!=='undefined'){try{next_state.stroke=new fabric.Gradient(next_state.stroke.value)}catch(e2){next_state.stroke=next_state.stroke.value}}else{next_state.stroke=next_state.stroke.value}}} |
| 39 |
object.set(next_state);if(typeof object.setCoords==='function'){object.setCoords()}} |
| 40 |
if(canvas){if(typeof canvas.requestRenderAll==='function'){canvas.requestRenderAll()}else if(typeof canvas.renderAll==='function'){canvas.renderAll()}}};var BBP_Arrange_Command=function(args){args=args||{};BBP_Command.call(this,args);this.type='arrange';this.canvas=(args.canvas)?args.canvas:null;this.before_order=(Array.isArray(args.before_order))?args.before_order.slice(0):null;this.after_order=(Array.isArray(args.after_order))?args.after_order.slice(0):null;this.label=(args.label)?args.label:'arrange'};BBP_Arrange_Command.prototype=Object.create(BBP_Command.prototype);BBP_Arrange_Command.prototype.constructor=BBP_Arrange_Command;BBP_Arrange_Command.prototype.execute=function(){};BBP_Arrange_Command.prototype.undo=function(){this.apply_order(this.before_order)};BBP_Arrange_Command.prototype.redo=function(){this.apply_order(this.after_order)};BBP_Arrange_Command.prototype._key=function(obj){if(!obj){return null} |
| 41 |
if(obj.bbp_id){return obj.bbp_id} |
| 42 |
if(obj.bbp_uid){return obj.bbp_uid} |
| 43 |
return null};BBP_Arrange_Command.prototype.apply_order=function(order){if(!this.canvas||!order||!Array.isArray(order)){return} |
| 44 |
if(typeof this.canvas.getObjects!=='function'){return} |
| 45 |
if(window.bbp_command_manager&&typeof window.bbp_command_manager.begin_restore==='function'){window.bbp_command_manager.begin_restore()} |
| 46 |
try{var objects=this.canvas.getObjects();var uid_seed=Date.now();var by_key={};for(var i=0;i<objects.length;i++){var obj=objects[i];if(!obj){continue} |
| 47 |
if(!obj.bbp_id&&!obj.bbp_uid){obj.bbp_uid='bbp_uid_'+uid_seed+'_'+i} |
| 48 |
var key=this._key(obj);if(key){by_key[key]=obj}} |
| 49 |
if(typeof this.canvas.moveObjectTo==='function'||typeof this.canvas.moveTo==='function'){for(var j=0;j<order.length;j++){var k=order[j];if(!k||!by_key[k]){continue} |
| 50 |
if(typeof this.canvas.moveObjectTo==='function'){this.canvas.moveObjectTo(by_key[k],j)}else{this.canvas.moveTo(by_key[k],j)}}}else if(this.canvas._objects&&Array.isArray(this.canvas._objects)){var cleaned=[];for(var x=0;x<order.length;x++){var kk=order[x];if(kk&&by_key[kk]){cleaned.push(by_key[kk])}} |
| 51 |
if(cleaned.length){this.canvas._objects=cleaned}} |
| 52 |
if(typeof this.canvas.discardActiveObject==='function'){this.canvas.discardActiveObject()} |
| 53 |
if(typeof this.canvas.requestRenderAll==='function'){this.canvas.requestRenderAll()}else if(typeof this.canvas.renderAll==='function'){this.canvas.renderAll()}}finally{if(window.bbp_command_manager&&typeof window.bbp_command_manager.end_restore==='function'){window.bbp_command_manager.end_restore()}}};var BBP_Transform_Command=function(args){args=args||{};this.canvas=(args.canvas)?args.canvas:null;this.object_id=(args.object_id)?args.object_id:null;this.before=(args.before)?args.before:null;this.after=(args.after)?args.after:null};BBP_Transform_Command.prototype.execute=function(){this.apply(this.after)};BBP_Transform_Command.prototype.undo=function(){this.apply(this.before)};BBP_Transform_Command.prototype.redo=function(){this.apply(this.after)};BBP_Transform_Command.prototype._find_in_group=function(group,bbp_id){if(!group||!bbp_id||typeof group.getObjects!=='function'){return null} |
| 54 |
var items=group.getObjects()||[];for(var i=0;i<items.length;i++){var item=items[i];if(item&&item.bbp_id&&item.bbp_id===bbp_id){return item} |
| 55 |
if(item&&item.type&&String(item.type).toLowerCase()==='group'){var nested=this._find_in_group(item,bbp_id);if(nested){return nested}}} |
| 56 |
return null};BBP_Transform_Command.prototype.find_object=function(bbp_id){if(!this.canvas||!bbp_id||typeof this.canvas.getObjects!=='function'){return null} |
| 57 |
var list=this.canvas.getObjects()||[];for(var i=0;i<list.length;i++){var obj=list[i];if(obj&&obj.bbp_id&&obj.bbp_id===bbp_id){return obj} |
| 58 |
if(obj&&obj.type&&String(obj.type).toLowerCase()==='group'){var nested=this._find_in_group(obj,bbp_id);if(nested){return nested}}} |
| 59 |
return null};BBP_Transform_Command.prototype.is_finite_number=function(value){return(typeof value==='number'&&isFinite(value))};BBP_Transform_Command.prototype.clamp=function(value,min,max){if(!this.is_finite_number(value)){return value} |
| 60 |
if(value<min){return min} |
| 61 |
if(value>max){return max} |
| 62 |
return value};BBP_Transform_Command.prototype._explode_active_selection_for_target=function(target){if(!this.canvas||!target||typeof this.canvas.getActiveObject!=='function'){return!1} |
| 63 |
var active=null;try{active=this.canvas.getActiveObject()}catch(e0){active=null} |
| 64 |
if(!active||!active.type||String(active.type).toLowerCase()!=='activeselection'||typeof active.getObjects!=='function'){return!1} |
| 65 |
var list=active.getObjects()||[];if(list.indexOf(target)===-1){return!1} |
| 66 |
try{if(typeof active.removeAll==='function'){active.removeAll()}else if(typeof active._exitGroup==='function'){list.slice().forEach(function(obj){if(obj){active._exitGroup(obj,!1)}})}}catch(e1){} |
| 67 |
try{if(typeof this.canvas.discardActiveObject==='function'){this.canvas.discardActiveObject()}}catch(e2){} |
| 68 |
list.forEach(function(obj){if(!obj){return} |
| 69 |
var parent=obj.group||null;var guard=0;while(parent&&guard<4){if(typeof parent._exitGroup==='function'){try{parent._exitGroup(obj,!1)}catch(e3){break}}else if(typeof parent.remove==='function'){try{parent.remove(obj)}catch(e4){break}}else{break} |
| 70 |
guard++;parent=obj.group||null} |
| 71 |
if(typeof this.canvas.getObjects==='function'&&this.canvas.getObjects().indexOf(obj)===-1){try{this.canvas.add(obj)}catch(e5){}} |
| 72 |
if(typeof obj.setCoords==='function'){obj.setCoords()}},this);return!0};BBP_Transform_Command.prototype._detach_stale_parent=function(target){if(!this.canvas||!target||!target.group||typeof this.canvas.getObjects!=='function'){return} |
| 73 |
var list=this.canvas.getObjects()||[];var parent=target.group;var active=(typeof this.canvas.getActiveObject==='function')?this.canvas.getActiveObject():null;var active_sel=(active&&active.type&&String(active.type).toLowerCase()==='activeselection')?active:null;var parent_in_canvas=!1;var parent_cursor=parent;var parent_guard=0;while(parent_cursor&&parent_guard<8){if(list.indexOf(parent_cursor)!==-1){parent_in_canvas=!0;break} |
| 74 |
parent_cursor=parent_cursor.group||parent_cursor.parent||null;parent_guard++} |
| 75 |
var parent_is_active=!!(active&&parent===active);var parent_is_active_sel=!!(active_sel&&parent===active_sel);if(parent_in_canvas||parent_is_active||parent_is_active_sel){return} |
| 76 |
if(typeof parent._exitGroup==='function'){try{parent._exitGroup(target,!1)}catch(e1){}}else if(typeof parent.remove==='function'){try{parent.remove(target)}catch(e2){}} |
| 77 |
if(typeof target.setCoords==='function'){target.setCoords()}};BBP_Transform_Command.prototype.apply=function(state){if(!this.canvas||!state||!state.bbp_id){return} |
| 78 |
var target=this.find_object(state.bbp_id);if(!target){return} |
| 79 |
this._explode_active_selection_for_target(target);target=this.find_object(state.bbp_id)||target;this._detach_stale_parent(target);var scale_x=state.scaleX;var scale_y=state.scaleY;if(!this.is_finite_number(scale_x)||!this.is_finite_number(scale_y)){return} |
| 80 |
scale_x=this.clamp(scale_x,0.01,50);scale_y=this.clamp(scale_y,0.01,50);if(typeof state.originX!=='undefined'){target.set('originX',state.originX)} |
| 81 |
if(typeof state.originY!=='undefined'){target.set('originY',state.originY)} |
| 82 |
target.set({scaleX:scale_x,scaleY:scale_y,angle:(this.is_finite_number(state.angle)?state.angle:0),flipX:!!state.flipX,flipY:!!state.flipY,skewX:(this.is_finite_number(state.skewX)?state.skewX:0),skewY:(this.is_finite_number(state.skewY)?state.skewY:0)});var origin_x=(typeof state.originX!=='undefined'?state.originX:(target.originX||'left'));var origin_y=(typeof state.originY!=='undefined'?state.originY:(target.originY||'top'));var target_in_group=!!target.group;var can_use_center=(!target_in_group&&state.center&&this.is_finite_number(state.center.x)&&this.is_finite_number(state.center.y)&&(origin_x==='center'||origin_x==='middle')&&(origin_y==='center'||origin_y==='middle'));if(can_use_center&&typeof target.setPositionByOrigin==='function'){target.setPositionByOrigin({x:state.center.x,y:state.center.y},origin_x,origin_y)}else{if(this.is_finite_number(state.left)){target.set('left',state.left)} |
| 83 |
if(this.is_finite_number(state.top)){target.set('top',state.top)}} |
| 84 |
if(typeof target.setCoords==='function'){target.setCoords()} |
| 85 |
if(typeof BBP_Utils!=='undefined'&&BBP_Utils&&typeof BBP_Utils.render==='function'){BBP_Utils.render(this.canvas)}else if(typeof this.canvas.requestRenderAll==='function'){this.canvas.requestRenderAll()}else if(typeof this.canvas.renderAll==='function'){this.canvas.renderAll()}};var BBP_Multi_Transform_Command=function(args){args=args||{};this.canvas=(args.canvas)?args.canvas:null;this.object_ids=(args.object_ids&&args.object_ids.length)?args.object_ids:[];this.before=(args.before&&args.before.length)?args.before:[];this.after=(args.after&&args.after.length)?args.after:[]};BBP_Multi_Transform_Command.prototype.is_finite_number=function(value){return(typeof value==='number'&&isFinite(value))};BBP_Multi_Transform_Command.prototype.clamp=function(value,min,max){if(!this.is_finite_number(value)){return value} |
| 86 |
if(value<min){return min} |
| 87 |
if(value>max){return max} |
| 88 |
return value};BBP_Multi_Transform_Command.prototype._key=function(obj){if(!obj){return null} |
| 89 |
if(obj.bbp_id){return obj.bbp_id} |
| 90 |
if(obj.bbp_uid){return obj.bbp_uid} |
| 91 |
return null};BBP_Multi_Transform_Command.prototype.find_object=function(id){if(!this.canvas||!id||typeof this.canvas.getObjects!=='function'){return null} |
| 92 |
var objects=this.canvas.getObjects();for(var i=0;i<objects.length;i++){if(objects[i]&&this._key(objects[i])===id){return objects[i]}} |
| 93 |
return null};BBP_Multi_Transform_Command.prototype._explode_active_selection=function(){if(!this.canvas||typeof this.canvas.getActiveObject!=='function'){return null} |
| 94 |
var active=null;try{active=this.canvas.getActiveObject()}catch(e){active=null} |
| 95 |
if(!active||!active.type||String(active.type).toLowerCase()!=='activeselection'){return null} |
| 96 |
if(typeof active.getObjects!=='function'){return null} |
| 97 |
var list=active.getObjects()||[];if(!list.length){return null} |
| 98 |
var has_match=!1;for(var i=0;i<list.length;i++){if(this._key(list[i])&&this.object_ids.indexOf(this._key(list[i]))!==-1){has_match=!0;break}} |
| 99 |
if(!has_match){return null} |
| 100 |
try{if(typeof active.removeAll==='function'){active.removeAll()}else if(typeof active._exitGroup==='function'){list.slice().forEach(function(obj){if(obj){active._exitGroup(obj,!1)}})}}catch(e2){} |
| 101 |
try{if(typeof this.canvas.discardActiveObject==='function'){this.canvas.discardActiveObject()}}catch(e3){} |
| 102 |
list.forEach(function(obj){if(!obj){return} |
| 103 |
var parent=obj.group||null;var guard=0;while(parent&&guard<4){if(typeof parent._exitGroup==='function'){try{parent._exitGroup(obj,!1)}catch(e4){break}}else if(typeof parent.remove==='function'){try{parent.remove(obj)}catch(e5){break}}else{break} |
| 104 |
guard++;parent=obj.group||null} |
| 105 |
if(typeof this.canvas.getObjects==='function'&&this.canvas.getObjects().indexOf(obj)===-1){try{this.canvas.add(obj)}catch(e6){}} |
| 106 |
if(typeof obj.setCoords==='function'){obj.setCoords()}},this);return list};BBP_Multi_Transform_Command.prototype._reselect_objects=function(list){if(!list||!list.length||!this.canvas||!window.fabric||!window.fabric.ActiveSelection){return} |
| 107 |
var objects=[];var canvas_objects=(typeof this.canvas.getObjects==='function')?this.canvas.getObjects():null;for(var i=0;i<list.length;i++){var obj=list[i];if(!obj){continue} |
| 108 |
if(canvas_objects&&canvas_objects.indexOf(obj)===-1){continue} |
| 109 |
objects.push(obj)} |
| 110 |
if(!objects.length){return} |
| 111 |
try{var sel=new window.fabric.ActiveSelection(objects,{canvas:this.canvas});if(typeof this.canvas.setActiveObject==='function'){this.canvas.setActiveObject(sel)}}catch(e){}};BBP_Multi_Transform_Command.prototype.apply_state=function(obj,state){if(!obj||!state){return} |
| 112 |
var scale_x=state.scaleX;var scale_y=state.scaleY;if(!this.is_finite_number(scale_x)||!this.is_finite_number(scale_y)){return} |
| 113 |
scale_x=this.clamp(scale_x,0.01,50);scale_y=this.clamp(scale_y,0.01,50);if(typeof state.originX!=='undefined'&&typeof obj.set==='function'){obj.set('originX',state.originX)} |
| 114 |
if(typeof state.originY!=='undefined'&&typeof obj.set==='function'){obj.set('originY',state.originY)} |
| 115 |
if(typeof obj.set==='function'){obj.set({scaleX:scale_x,scaleY:scale_y,angle:(this.is_finite_number(state.angle)?state.angle:0),flipX:!!state.flipX,flipY:!!state.flipY,skewX:(this.is_finite_number(state.skewX)?state.skewX:0),skewY:(this.is_finite_number(state.skewY)?state.skewY:0)})}else{obj.originX=state.originX;obj.originY=state.originY;obj.scaleX=scale_x;obj.scaleY=scale_y;obj.angle=(this.is_finite_number(state.angle)?state.angle:0);obj.flipX=!!state.flipX;obj.flipY=!!state.flipY;obj.skewX=(this.is_finite_number(state.skewX)?state.skewX:0);obj.skewY=(this.is_finite_number(state.skewY)?state.skewY:0)} |
| 116 |
var origin_x=(typeof state.originX!=='undefined'?state.originX:(obj.originX||'left'));var origin_y=(typeof state.originY!=='undefined'?state.originY:(obj.originY||'top'));var can_use_center=(state.center&&this.is_finite_number(state.center.x)&&this.is_finite_number(state.center.y)&&(origin_x==='center'||origin_x==='middle')&&(origin_y==='center'||origin_y==='middle'));if(can_use_center&&typeof obj.setPositionByOrigin==='function'){obj.setPositionByOrigin({x:state.center.x,y:state.center.y},origin_x,origin_y)}else{if(this.is_finite_number(state.left)){obj.left=state.left} |
| 117 |
if(this.is_finite_number(state.top)){obj.top=state.top}} |
| 118 |
if(typeof obj.setCoords==='function'){obj.setCoords()}};BBP_Multi_Transform_Command.prototype.execute=function(){};BBP_Multi_Transform_Command.prototype.undo=function(){if(!this.canvas){return} |
| 119 |
var selection=this._explode_active_selection();for(var i=0;i<this.object_ids.length;i++){var obj=this.find_object(this.object_ids[i]);if(obj){this.apply_state(obj,this.before[i])}} |
| 120 |
if(selection){this._reselect_objects(selection)} |
| 121 |
if(typeof this.canvas.requestRenderAll==='function'){this.canvas.requestRenderAll()}else if(typeof this.canvas.renderAll==='function'){this.canvas.renderAll()}};BBP_Multi_Transform_Command.prototype.redo=function(){if(!this.canvas){return} |
| 122 |
var selection=this._explode_active_selection();for(var i=0;i<this.object_ids.length;i++){var obj=this.find_object(this.object_ids[i]);if(obj){this.apply_state(obj,this.after[i])}} |
| 123 |
if(selection){this._reselect_objects(selection)} |
| 124 |
if(typeof this.canvas.requestRenderAll==='function'){this.canvas.requestRenderAll()}else if(typeof this.canvas.renderAll==='function'){this.canvas.renderAll()}};var BBP_Fabric_Transform_Adapter=function(args){args=args||{};this.canvas=(args.canvas)?args.canvas:null;this.manager=(args.manager)?args.manager:null;this.is_tracking=!1;this.before=null;this.object_id=null};BBP_Fabric_Transform_Adapter.prototype.init=function(){if(!this.canvas||!this.manager){return} |
| 125 |
var self=this;if(typeof this.canvas.getObjects==='function'){this.canvas.getObjects().forEach(function(obj){if(obj&&!obj.bbp_id){obj.bbp_id=self.generate_id()}})} |
| 126 |
this.canvas.on('mouse:down',function(opt){if(window.bbp_ms_suppress_transform_adapter){self.reset();return} |
| 127 |
if(self.is_restoring()){self.reset();return} |
| 128 |
var target=(opt&&opt.target)?opt.target:null;if(!target){self.reset();return} |
| 129 |
if(target&&target.type&&String(target.type).toLowerCase()==='activeselection'){self.reset();return} |
| 130 |
if(!target.bbp_id){target.bbp_id=self.generate_id()} |
| 131 |
self.before=self.capture(target);self.object_id=target.bbp_id;self.is_tracking=!0});this.canvas.on('object:modified',function(opt){if(window.bbp_ms_suppress_transform_adapter){self.reset();return} |
| 132 |
if(self.is_restoring()){self.reset();return} |
| 133 |
var target=(opt&&opt.target)?opt.target:null;if(!self.is_tracking||!self.before||!target){self.reset();return} |
| 134 |
if(target&&target.type&&String(target.type).toLowerCase()==='activeselection'){self.reset();return} |
| 135 |
if(!target.bbp_id){target.bbp_id=self.generate_id()} |
| 136 |
if(self.object_id&&target.bbp_id!==self.object_id){self.reset();return} |
| 137 |
var after=self.capture(target);if(!after){self.reset();return} |
| 138 |
if(self.is_same_transform(self.before,after)){self.reset();return} |
| 139 |
if(!self.is_valid_scale(after.scaleX)||!self.is_valid_scale(after.scaleY)){self.reset();return} |
| 140 |
self.manager.execute(new BBP_Transform_Command({canvas:self.canvas,object_id:target.bbp_id,before:self.before,after:after}));self.reset()});if(window.BBP_DEBUG&&window.console&&typeof window.console.log==='function'){window.console.log('[BBP] Fabric transform adapter initialized')}};BBP_Fabric_Transform_Adapter.prototype.is_restoring=function(){if(!this.manager){return!1} |
| 141 |
return!!this.manager.is_restoring};BBP_Fabric_Transform_Adapter.prototype.generate_id=function(){return 'bbp_'+Date.now()+'_'+Math.floor(Math.random()*100000)};BBP_Fabric_Transform_Adapter.prototype.is_finite_number=function(value){return(typeof value==='number'&&isFinite(value))};BBP_Fabric_Transform_Adapter.prototype.is_valid_scale=function(value){if(!this.is_finite_number(value)){return!1} |
| 142 |
if(value<0.01){return!1} |
| 143 |
if(value>50){return!1} |
| 144 |
return!0};BBP_Fabric_Transform_Adapter.prototype.capture=function(obj){if(!obj){return null} |
| 145 |
if(!obj.bbp_id){obj.bbp_id=this.generate_id()} |
| 146 |
var center=null;var in_group=!!obj.group;if(typeof obj.getCenterPoint==='function'){center=obj.getCenterPoint()} |
| 147 |
return{bbp_id:obj.bbp_id||null,originX:(obj.originX||'left'),originY:(obj.originY||'top'),center:(!in_group&¢er&&this.is_finite_number(center.x)&&this.is_finite_number(center.y))?{x:center.x,y:center.y}:null,left:(this.is_finite_number(obj.left)?obj.left:0),top:(this.is_finite_number(obj.top)?obj.top:0),scaleX:(this.is_finite_number(obj.scaleX)?obj.scaleX:1),scaleY:(this.is_finite_number(obj.scaleY)?obj.scaleY:1),angle:(this.is_finite_number(obj.angle)?obj.angle:0),flipX:!!obj.flipX,flipY:!!obj.flipY,skewX:(this.is_finite_number(obj.skewX)?obj.skewX:0),skewY:(this.is_finite_number(obj.skewY)?obj.skewY:0)}};BBP_Fabric_Transform_Adapter.prototype.is_same_transform=function(a,b){if(!a||!b){return!1} |
| 148 |
return(a.originX===b.originX&&a.originY===b.originY&&((!a.center&&!b.center)||(a.center&&b.center&&a.center.x===b.center.x&&a.center.y===b.center.y))&&a.scaleX===b.scaleX&&a.scaleY===b.scaleY&&a.angle===b.angle&&a.flipX===b.flipX&&a.flipY===b.flipY&&a.skewX===b.skewX&&a.skewY===b.skewY)};BBP_Fabric_Transform_Adapter.prototype.reset=function(){this.is_tracking=!1;this.before=null;this.object_id=null};var BBP_UI_Props_Adapter=function(args){this.canvas=null;this.manager=null;this.is_enabled=!0;this.is_tracking=!1;this.tracking_objects=[];this.tracking_before=[];this.configure(args)};BBP_UI_Props_Adapter.prototype.configure=function(args){if(!args){return} |
| 149 |
if(typeof args.canvas!=='undefined'){this.canvas=args.canvas} |
| 150 |
if(typeof args.manager!=='undefined'){this.manager=args.manager} |
| 151 |
if(typeof args.is_enabled!=='undefined'){this.is_enabled=!!args.is_enabled}};BBP_UI_Props_Adapter.prototype.init=function(){if(!this.canvas){return} |
| 152 |
if(!this.manager){return}};BBP_UI_Props_Adapter.prototype.begin_tracking=function(){if(!this.is_enabled){return} |
| 153 |
if(this.manager.is_applying){return} |
| 154 |
if(this.manager.is_suspended){return} |
| 155 |
var objects=this._get_selected_objects();if(objects.length===0){this.is_tracking=!1;this.tracking_objects=[];this.tracking_before=[];return} |
| 156 |
this.is_tracking=!0;this.tracking_objects=objects;this.tracking_before=this._capture_props(objects)};BBP_UI_Props_Adapter.prototype.apply_live=function(props){if(!this.is_enabled){return} |
| 157 |
if(!this.is_tracking){return} |
| 158 |
if(!props){return} |
| 159 |
for(var i=0;i<this.tracking_objects.length;i++){var object=this.tracking_objects[i];if(!object){continue} |
| 160 |
object.set(props);if(typeof object.setCoords==='function'){object.setCoords()}} |
| 161 |
if(this.canvas){if(typeof this.canvas.requestRenderAll==='function'){this.canvas.requestRenderAll()}else if(typeof this.canvas.renderAll==='function'){this.canvas.renderAll()}}};BBP_UI_Props_Adapter.prototype.end_tracking=function(label){if(!this.is_enabled){return} |
| 162 |
if(!this.is_tracking){return} |
| 163 |
var objects=this.tracking_objects;var before=this.tracking_before;var after=this._capture_props(objects);this.is_tracking=!1;this.tracking_objects=[];this.tracking_before=[];if(objects.length===0){return} |
| 164 |
if(this._same_props(before,after)){return} |
| 165 |
var command=new BBP_Props_Command(objects,before,after,{label:(label?String(label):'Properties')});this.manager.execute(command)};BBP_UI_Props_Adapter.prototype._get_selected_objects=function(){if(!this.canvas){return[]} |
| 166 |
var active=(typeof this.canvas.getActiveObject==='function'?this.canvas.getActiveObject():null);if(active&&active.type==='activeSelection'&&typeof active.getObjects==='function'){return active.getObjects()} |
| 167 |
if(active){return[active]} |
| 168 |
return[]};BBP_UI_Props_Adapter.prototype._capture_props=function(objects){var states=[];for(var i=0;i<objects.length;i++){var object=objects[i];if(!object){states.push({});continue} |
| 169 |
var fill_state=object.fill;var stroke_state=object.stroke;if(fill_state&&typeof fill_state==='object'&&typeof fill_state.toObject==='function'){fill_state={__bbp_gradient:!0,value:BBP_Utils.clone(fill_state.toObject())}}else if(fill_state&&typeof fill_state==='object'){fill_state=BBP_Utils.clone(fill_state)} |
| 170 |
if(stroke_state&&typeof stroke_state==='object'&&typeof stroke_state.toObject==='function'){stroke_state={__bbp_gradient:!0,value:BBP_Utils.clone(stroke_state.toObject())}}else if(stroke_state&&typeof stroke_state==='object'){stroke_state=BBP_Utils.clone(stroke_state)} |
| 171 |
states.push({fill:fill_state,stroke:stroke_state,strokeWidth:object.strokeWidth,strokeLineJoin:object.strokeLineJoin,strokeType:object.strokeType,gradientAngle:object.gradientAngle,gradientRadius:object.gradientRadius,strokeGradientAngle:object.strokeGradientAngle,strokeGradientRadius:object.strokeGradientRadius,fontFamily:object.fontFamily,fontSize:object.fontSize,fontStyle:object.fontStyle,fontWeight:object.fontWeight,textAlign:object.textAlign,lineHeight:object.lineHeight,charSpacing:object.charSpacing,underline:object.underline,linethrough:object.linethrough,opacity:object.opacity})} |
| 172 |
return states};BBP_UI_Props_Adapter.prototype._same_props=function(before,after){if(!Array.isArray(before)||!Array.isArray(after)){return!1} |
| 173 |
if(before.length!==after.length){return!1} |
| 174 |
for(var i=0;i<before.length;i++){var a=before[i]||{};var b=after[i]||{};var fill_a=a.fill;var fill_b=b.fill;var stroke_a=a.stroke;var stroke_b=b.stroke;if(fill_a&&typeof fill_a==='object'){fill_a=JSON.stringify(fill_a)} |
| 175 |
if(fill_b&&typeof fill_b==='object'){fill_b=JSON.stringify(fill_b)} |
| 176 |
if(stroke_a&&typeof stroke_a==='object'){stroke_a=JSON.stringify(stroke_a)} |
| 177 |
if(stroke_b&&typeof stroke_b==='object'){stroke_b=JSON.stringify(stroke_b)} |
| 178 |
if(fill_a!==fill_b||stroke_a!==stroke_b||a.strokeWidth!==b.strokeWidth||a.strokeLineJoin!==b.strokeLineJoin||a.strokeType!==b.strokeType||a.gradientAngle!==b.gradientAngle||a.gradientRadius!==b.gradientRadius||a.strokeGradientAngle!==b.strokeGradientAngle||a.strokeGradientRadius!==b.strokeGradientRadius||a.fontFamily!==b.fontFamily||a.fontSize!==b.fontSize||a.fontStyle!==b.fontStyle||a.fontWeight!==b.fontWeight||a.textAlign!==b.textAlign||a.lineHeight!==b.lineHeight||a.charSpacing!==b.charSpacing||a.underline!==b.underline||a.linethrough!==b.linethrough||a.opacity!==b.opacity){return!1}} |
| 179 |
return!0};(function(){function bbp_lite_keyboard_contract_create(deps){deps=deps||{};var bbp_lite_trigger_event=(typeof deps.trigger_event==='function')?deps.trigger_event:function(name,ctx){return ctx};var bbp_lite_get_manager=(typeof deps.get_manager==='function')?deps.get_manager:function(){return null};var bbp_lite_get_active_raw=(typeof deps.get_active_raw==='function')?deps.get_active_raw:function(){return null};function bbp_lite_keyboard_target_blocked(e){var tag=(e&&e.target&&e.target.tagName)?String(e.target.tagName).toUpperCase():'';if(e&&e.target&&e.target.isContentEditable){return!0} |
| 180 |
return['INPUT','SELECT','TEXTAREA'].indexOf(tag)!==-1} |
| 181 |
function bbp_lite_snapshot_keyboard_event(e){if(!e){return null} |
| 182 |
return{key:(typeof e.key!=='undefined')?e.key:'',code:(typeof e.code!=='undefined')?e.code:'',ctrlKey:!!e.ctrlKey,shiftKey:!!e.shiftKey,altKey:!!e.altKey,metaKey:!!e.metaKey,keyCode:(typeof e.keyCode!=='undefined')?e.keyCode:null,which:(typeof e.which!=='undefined')?e.which:null,timeStamp:Date.now()}} |
| 183 |
function bbp_lite_keyboard_tool_actions_from_event(e){if(!e||bbp_lite_keyboard_target_blocked(e)){return null} |
| 184 |
var key=(typeof e.key==='string')?e.key:'';var has_active_obj=!!window.gamipress_badge_builder_active_obj;var has_cmd_mod=!!(e.ctrlKey||e.metaKey);if(e.shiftKey&&has_cmd_mod){if(key==='Z'||key==='z'){return['redo']}}else if(has_cmd_mod){if(key==='Z'||key==='z'){return['undo']}} |
| 185 |
if(!has_active_obj){return null} |
| 186 |
if(key==='Delete'){return['delete']} |
| 187 |
if(key==='+'){return['scale-up']} |
| 188 |
if(key==='-'){return['scale-down']} |
| 189 |
if(!e.shiftKey&&!e.altKey&&!has_cmd_mod){return null} |
| 190 |
if(e.shiftKey){switch(key){case 'ArrowUp':return['align-vertical-top'];case 'ArrowDown':return['align-vertical-bottom'];case 'ArrowLeft':return['align-horizontal-left'];case 'ArrowRight':return['align-horizontal-right'];case 'C':case 'c':return['align-horizontal-center','align-vertical-center'];case 'D':case 'd':return['duplicate'];case 'F':case 'f':return['fit']} |
| 191 |
return null} |
| 192 |
if(e.altKey){switch(key){case 'ArrowLeft':case 'ArrowRight':return['flip-horizontal'];case 'ArrowUp':case 'ArrowDown':return['flip-vertical']} |
| 193 |
return null} |
| 194 |
if(has_cmd_mod){switch(key){case 'ArrowLeft':return['rotate-left'];case 'ArrowRight':return['rotate-right'];case 'ArrowUp':return['send-front'];case 'ArrowDown':return['send-back']}} |
| 195 |
return null} |
| 196 |
function bbp_lite_keyboard_raw_move_from_event(e){var key;var has_cmd_mod;var move_step=2;var target_obj=window.gamipress_badge_builder_active_obj||null;if(!e||bbp_lite_keyboard_target_blocked(e)||!target_obj){return null} |
| 197 |
has_cmd_mod=!!(e.ctrlKey||e.metaKey);if(e.shiftKey||e.altKey||has_cmd_mod){return null} |
| 198 |
key=(typeof e.key==='string')?e.key:'';switch(key){case 'ArrowUp':return{action:'move-up',move:{dx:0,dy:-move_step,step:move_step,accelerated:!1,source:'keyboard-arrow'},target:target_obj};case 'ArrowDown':return{action:'move-down',move:{dx:0,dy:move_step,step:move_step,accelerated:!1,source:'keyboard-arrow'},target:target_obj};case 'ArrowLeft':return{action:'move-left',move:{dx:-move_step,dy:0,step:move_step,accelerated:!1,source:'keyboard-arrow'},target:target_obj};case 'ArrowRight':return{action:'move-right',move:{dx:move_step,dy:0,step:move_step,accelerated:!1,source:'keyboard-arrow'},target:target_obj}} |
| 199 |
return null} |
| 200 |
function bbp_lite_clear_keyboard_shortcut_pending(){window.__bbp_lite_keyboard_shortcut_pending=null} |
| 201 |
function bbp_lite_consume_keyboard_shortcut_pending(tool_name){var pending=window.__bbp_lite_keyboard_shortcut_pending||null;if(!pending||!Array.isArray(pending.actions)||!pending.actions.length){return null} |
| 202 |
if((Date.now()-parseInt(pending.ts||0,10))>1500){bbp_lite_clear_keyboard_shortcut_pending();return null} |
| 203 |
if(pending.actions[0]!==tool_name){return null} |
| 204 |
pending.actions.shift();if(!pending.actions.length){bbp_lite_clear_keyboard_shortcut_pending()} |
| 205 |
return{action:tool_name,event:pending.event||null}} |
| 206 |
function bbp_lite_clear_keyboard_raw_move_pending(){window.__bbp_lite_keyboard_raw_move_pending=null} |
| 207 |
function bbp_lite_consume_keyboard_raw_move_pending_for_call(obj,dx,dy){var pending=window.__bbp_lite_keyboard_raw_move_pending||null;if(!pending){return null} |
| 208 |
if((Date.now()-parseInt(pending.ts||0,10))>1500){bbp_lite_clear_keyboard_raw_move_pending();return null} |
| 209 |
if(pending.target&&obj&&pending.target!==obj){return null} |
| 210 |
if(typeof pending.dx==='number'&&typeof pending.dy==='number'&&(pending.dx!==dx||pending.dy!==dy)){return null} |
| 211 |
bbp_lite_clear_keyboard_raw_move_pending();return{action:pending.action||'',move:pending.move||null,event:pending.event||null}} |
| 212 |
function bbp_lite_emit_after_keyboard_shortcut(meta,action,result){if(!meta){return} |
| 213 |
bbp_lite_trigger_event('gamipress_badge_builder_after_keyboard_shortcut',{event:meta.event||null,action:action,result:result})} |
| 214 |
function bbp_lite_bind_keyboard_shortcut_contract(canvas){if(window.__bbp_lite_keyboard_shortcut_contract_bound){return} |
| 215 |
window.__bbp_lite_keyboard_shortcut_contract_bound=!0;document.addEventListener('keydown',function(e){var actions=bbp_lite_keyboard_tool_actions_from_event(e);var manager=bbp_lite_get_manager();var active=bbp_lite_get_active_raw(canvas);var raw_move=null;var action_payload;var before_ctx;if(!actions||!actions.length){raw_move=bbp_lite_keyboard_raw_move_from_event(e);if(!raw_move){return} |
| 216 |
before_ctx={event:e,action:raw_move.action,move:raw_move.move?{dx:raw_move.move.dx,dy:raw_move.move.dy,step:raw_move.move.step,accelerated:!!raw_move.move.accelerated,source:raw_move.move.source||'keyboard-arrow'}:null,canvas:canvas||null,active:active||null,manager:manager||null,handled:!1,cancel:!1,result:undefined};bbp_lite_trigger_event('gamipress_badge_builder_before_keyboard_shortcut',before_ctx);if(before_ctx.cancel){bbp_lite_clear_keyboard_raw_move_pending();e.preventDefault();e.stopPropagation();if(typeof e.stopImmediatePropagation==='function'){e.stopImmediatePropagation()} |
| 217 |
return!1} |
| 218 |
if(before_ctx.handled){bbp_lite_clear_keyboard_raw_move_pending();e.preventDefault();e.stopPropagation();if(typeof e.stopImmediatePropagation==='function'){e.stopImmediatePropagation()} |
| 219 |
bbp_lite_trigger_event('gamipress_badge_builder_after_keyboard_shortcut',{event:bbp_lite_snapshot_keyboard_event(e),action:raw_move.action,result:before_ctx.result});return!1} |
| 220 |
window.__bbp_lite_keyboard_raw_move_pending={action:raw_move.action,dx:raw_move.move?raw_move.move.dx:0,dy:raw_move.move?raw_move.move.dy:0,move:raw_move.move?{dx:raw_move.move.dx,dy:raw_move.move.dy,step:raw_move.move.step,accelerated:!!raw_move.move.accelerated,source:raw_move.move.source||'keyboard-arrow'}:null,target:raw_move.target||null,ts:Date.now(),event:bbp_lite_snapshot_keyboard_event(e)};return!0} |
| 221 |
action_payload=(actions.length===1)?actions[0]:actions.slice(0);before_ctx={event:e,action:action_payload,canvas:canvas||null,active:active||null,manager:manager||null,handled:!1,cancel:!1};bbp_lite_trigger_event('gamipress_badge_builder_before_keyboard_shortcut',before_ctx);if(before_ctx.cancel){bbp_lite_clear_keyboard_shortcut_pending();e.preventDefault();e.stopPropagation();if(typeof e.stopImmediatePropagation==='function'){e.stopImmediatePropagation()} |
| 222 |
return!1} |
| 223 |
if(before_ctx.handled){bbp_lite_clear_keyboard_shortcut_pending();e.preventDefault();e.stopPropagation();if(typeof e.stopImmediatePropagation==='function'){e.stopImmediatePropagation()} |
| 224 |
bbp_lite_trigger_event('gamipress_badge_builder_after_keyboard_shortcut',{event:bbp_lite_snapshot_keyboard_event(e),action:action_payload,result:before_ctx.result});return!1} |
| 225 |
window.__bbp_lite_keyboard_shortcut_pending={actions:actions.slice(0),ts:Date.now(),event:bbp_lite_snapshot_keyboard_event(e)};return!0},!0)} |
| 226 |
return{keyboard_target_blocked:bbp_lite_keyboard_target_blocked,snapshot_keyboard_event:bbp_lite_snapshot_keyboard_event,keyboard_tool_actions_from_event:bbp_lite_keyboard_tool_actions_from_event,clear_keyboard_shortcut_pending:bbp_lite_clear_keyboard_shortcut_pending,consume_keyboard_shortcut_pending:bbp_lite_consume_keyboard_shortcut_pending,clear_keyboard_raw_move_pending:bbp_lite_clear_keyboard_raw_move_pending,consume_keyboard_raw_move_pending_for_call:bbp_lite_consume_keyboard_raw_move_pending_for_call,emit_after_keyboard_shortcut:bbp_lite_emit_after_keyboard_shortcut,bind_keyboard_shortcut_contract:bbp_lite_bind_keyboard_shortcut_contract}} |
| 227 |
window.BBP_Lite_Keyboard_Contract=window.BBP_Lite_Keyboard_Contract||{create:bbp_lite_keyboard_contract_create}})();(function(){function bbp_lite_group_edit_create(deps){deps=deps||{};var bbp_lite_is_group=(typeof deps.is_group==='function')?deps.is_group:function(){return!1};var bbp_lite_is_active_selection=(typeof deps.is_active_selection==='function')?deps.is_active_selection:function(){return!1};var bbp_lite_generate_id=(typeof deps.generate_id==='function')?deps.generate_id:function(){return String(Date.now())};function bbp_lite_prepare_group_for_subtargets(group,allow_child_interaction){if(!bbp_lite_is_group(group)){return} |
| 228 |
var child_interaction=!!allow_child_interaction;if(typeof group.set==='function'){try{group.set({subTargetCheck:!0,interactive:child_interaction})}catch(e0){group.subTargetCheck=!0;group.interactive=child_interaction}}else{group.subTargetCheck=!0;group.interactive=child_interaction}} |
| 229 |
function bbp_lite_prepare_group_tree(node,allow_child_interaction){if(!node){return} |
| 230 |
if(bbp_lite_is_group(node)){bbp_lite_prepare_group_for_subtargets(node,allow_child_interaction);if(typeof node.getObjects==='function'){var children=node.getObjects()||[];children.forEach(function(child){bbp_lite_prepare_group_tree(child,allow_child_interaction)})}}} |
| 231 |
function bbp_lite_group_edit_get_group(canvas,group_id){if(!canvas||!group_id||typeof canvas.getObjects!=='function'){return null} |
| 232 |
var list=canvas.getObjects()||[];for(var i=0;i<list.length;i++){var obj=list[i];if(bbp_lite_is_group(obj)&&obj.bbp_id===group_id){return obj}} |
| 233 |
return null} |
| 234 |
function bbp_lite_group_edit_find_child(group,child_id){if(!bbp_lite_is_group(group)||!child_id||typeof group.getObjects!=='function'){return null} |
| 235 |
var stack=(group.getObjects()||[]).slice();var guard=0;while(stack.length&&guard<512){var child=stack.shift();if(child&&child.bbp_id===child_id){return child} |
| 236 |
if(bbp_lite_is_group(child)&&typeof child.getObjects==='function'){var nested=child.getObjects()||[];nested.forEach(function(obj){if(obj){stack.push(obj)}})} |
| 237 |
guard++} |
| 238 |
return null} |
| 239 |
function bbp_lite_group_edit_is_descendant(node,group){if(!node||!group){return!1} |
| 240 |
var cursor=node;var guard=0;while(cursor&&guard<32){if(cursor===group){return!0} |
| 241 |
cursor=cursor.group||null;guard++} |
| 242 |
return!1} |
| 243 |
function bbp_lite_group_edit_pick_child(group,preferred){if(!bbp_lite_is_group(group)||typeof group.getObjects!=='function'){return null} |
| 244 |
var children=(group.getObjects()||[]).filter(function(obj){return!!obj});if(!children.length){return null} |
| 245 |
if(preferred&&children.indexOf(preferred)!==-1){return preferred} |
| 246 |
if(preferred&&preferred.bbp_id){var by_id=bbp_lite_group_edit_find_child(group,preferred.bbp_id);if(by_id){return by_id}} |
| 247 |
return children[0]} |
| 248 |
function bbp_lite_group_edit_exit(canvas,options){if(!canvas){return!1} |
| 249 |
var state=canvas.__bbp_lite_group_edit_mode||null;if(!state){return!1} |
| 250 |
options=options||{};var group=bbp_lite_group_edit_get_group(canvas,state.group_id);canvas.__bbp_lite_group_edit_mode=null;if(group){delete group.__bbp_group_editing;bbp_lite_prepare_group_for_subtargets(group,!1)} |
| 251 |
if(options.keep_active){if(window.bbp_command_manager&&typeof window.bbp_command_manager._schedule_focus_sync==='function'){window.bbp_command_manager._schedule_focus_sync()} |
| 252 |
return!0} |
| 253 |
setTimeout(function(){if(canvas.__bbp_lite_group_edit_mode){return} |
| 254 |
if(group&&typeof canvas.setActiveObject==='function'){try{canvas.setActiveObject(group)}catch(e0){} |
| 255 |
if(typeof group.setCoords==='function'){group.setCoords()}} |
| 256 |
if(typeof canvas.requestRenderAll==='function'){canvas.requestRenderAll()}else if(typeof canvas.renderAll==='function'){canvas.renderAll()} |
| 257 |
if(window.bbp_command_manager&&typeof window.bbp_command_manager._schedule_focus_sync==='function'){window.bbp_command_manager._schedule_focus_sync()}},0);return!0} |
| 258 |
function bbp_lite_group_edit_enter(canvas,group,child){if(!canvas||!bbp_lite_is_group(group)){return!1} |
| 259 |
bbp_lite_prepare_group_for_subtargets(group,!0);if(!group.bbp_id){group.bbp_id=bbp_lite_generate_id()} |
| 260 |
var target_child=bbp_lite_group_edit_pick_child(group,child);if(!target_child){return!1} |
| 261 |
if(!target_child.bbp_id){target_child.bbp_id=bbp_lite_generate_id()} |
| 262 |
var now=Date.now();var previous=canvas.__bbp_lite_group_edit_mode||null;if(previous&&previous.group_id&&previous.group_id!==group.bbp_id){var previous_group=bbp_lite_group_edit_get_group(canvas,previous.group_id);if(previous_group){delete previous_group.__bbp_group_editing;bbp_lite_prepare_group_for_subtargets(previous_group,!1)}} |
| 263 |
canvas.__bbp_lite_group_edit_mode={group_id:group.bbp_id,child_id:target_child.bbp_id,ts:now};group.__bbp_group_editing=!0;setTimeout(function(){var state=canvas.__bbp_lite_group_edit_mode||null;if(!state||state.group_id!==group.bbp_id){return} |
| 264 |
var resolved_group=bbp_lite_group_edit_get_group(canvas,state.group_id)||group;var resolved_child=bbp_lite_group_edit_find_child(resolved_group,state.child_id)||target_child;if(!resolved_child||typeof canvas.setActiveObject!=='function'){return} |
| 265 |
try{canvas.setActiveObject(resolved_child)}catch(e0){} |
| 266 |
if(typeof resolved_child.setCoords==='function'){resolved_child.setCoords()} |
| 267 |
if(typeof canvas.requestRenderAll==='function'){canvas.requestRenderAll()}else if(typeof canvas.renderAll==='function'){canvas.renderAll()} |
| 268 |
if(window.bbp_command_manager&&typeof window.bbp_command_manager._schedule_focus_sync==='function'){window.bbp_command_manager._schedule_focus_sync()}},0);return!0} |
| 269 |
function bbp_lite_group_edit_sync(canvas){if(!canvas){return} |
| 270 |
var state=canvas.__bbp_lite_group_edit_mode||null;if(!state||!state.group_id){return} |
| 271 |
var group=bbp_lite_group_edit_get_group(canvas,state.group_id);if(!group){canvas.__bbp_lite_group_edit_mode=null;if(window.bbp_command_manager&&typeof window.bbp_command_manager._schedule_focus_sync==='function'){window.bbp_command_manager._schedule_focus_sync()} |
| 272 |
return} |
| 273 |
var active=null;try{active=(typeof canvas.getActiveObject==='function')?canvas.getActiveObject():null}catch(e0){active=null} |
| 274 |
var now=Date.now();var in_entry_window=!!(state.ts&&(now-state.ts)<80);if(!active){if(in_entry_window){return} |
| 275 |
bbp_lite_group_edit_exit(canvas,{keep_active:!0});return} |
| 276 |
if(active===group){if(in_entry_window){return} |
| 277 |
canvas.__bbp_lite_group_edit_mode=null;delete group.__bbp_group_editing;bbp_lite_prepare_group_for_subtargets(group,!1);if(window.bbp_command_manager&&typeof window.bbp_command_manager._schedule_focus_sync==='function'){window.bbp_command_manager._schedule_focus_sync()} |
| 278 |
return} |
| 279 |
if(bbp_lite_group_edit_is_descendant(active,group)){if(!active.bbp_id){active.bbp_id=bbp_lite_generate_id()} |
| 280 |
state.child_id=active.bbp_id||state.child_id;return} |
| 281 |
if(bbp_lite_is_active_selection(active)&&typeof active.getObjects==='function'){var grouped_list=active.getObjects().filter(function(obj){return!!(obj&&bbp_lite_group_edit_is_descendant(obj,group))});if(grouped_list.length){var last=grouped_list[grouped_list.length-1];if(!last.bbp_id){last.bbp_id=bbp_lite_generate_id()} |
| 282 |
state.child_id=last.bbp_id||state.child_id;return}} |
| 283 |
if(in_entry_window){return} |
| 284 |
bbp_lite_group_edit_exit(canvas,{keep_active:!0})} |
| 285 |
function bbp_lite_bind_group_edit_escape(canvas){if(!canvas||canvas.__bbp_lite_group_edit_escape_bound){return} |
| 286 |
canvas.__bbp_lite_group_edit_escape_bound=!0;var key_handler=function(e){var state=canvas.__bbp_lite_group_edit_mode||null;if(!state){return} |
| 287 |
var key=(e&&e.key)?String(e.key):'';var is_escape=(key==='Escape'||key==='Esc'||(e&&(e.keyCode===27||e.which===27)));if(!is_escape){return} |
| 288 |
var tag=(e&&e.target&&e.target.tagName)?String(e.target.tagName).toLowerCase():'';if(e&&e.target&&e.target.isContentEditable){return} |
| 289 |
if(tag==='input'||tag==='textarea'||tag==='select'){return} |
| 290 |
e.preventDefault();e.stopPropagation();if(typeof e.stopImmediatePropagation==='function'){e.stopImmediatePropagation()} |
| 291 |
setTimeout(function(){bbp_lite_group_edit_exit(canvas)},0)};canvas.__bbp_lite_group_edit_escape_handler=key_handler;document.addEventListener('keydown',key_handler,!0)} |
| 292 |
function bbp_lite_bind_group_edit_hooks(canvas){if(!canvas||typeof canvas.on!=='function'||canvas.__bbp_lite_group_edit_hooks_bound){return} |
| 293 |
canvas.__bbp_lite_group_edit_hooks_bound=!0;var schedule_sync=function(){setTimeout(function(){bbp_lite_group_edit_sync(canvas)},0)};canvas.on('selection:cleared',schedule_sync);canvas.on('selection:created',schedule_sync);canvas.on('selection:updated',schedule_sync);canvas.on('object:removed',schedule_sync);bbp_lite_bind_group_edit_escape(canvas)} |
| 294 |
function bbp_lite_bind_group_dblclick_edit(canvas){if(!canvas||typeof canvas.on!=='function'||canvas.__bbp_lite_group_dblclick_bound){return} |
| 295 |
canvas.__bbp_lite_group_dblclick_bound=!0;canvas.on('mouse:dblclick',function(event){var target=(event&&event.target)?event.target:null;if(!target){return} |
| 296 |
var target_type=(target.type)?String(target.type).toLowerCase():'';var group=null;if(target_type==='group'){group=target}else if(target.group&&bbp_lite_is_group(target.group)){group=target.group} |
| 297 |
if(!group){return} |
| 298 |
bbp_lite_prepare_group_for_subtargets(group,!1);var clicked_sub=null;if(event&&Array.isArray(event.subTargets)&&event.subTargets.length){clicked_sub=event.subTargets[event.subTargets.length-1]}else if(event&&event.subTarget){clicked_sub=event.subTarget}else if(target!==group&&target.group===group){clicked_sub=target} |
| 299 |
if(bbp_lite_is_group(clicked_sub)){clicked_sub=null} |
| 300 |
setTimeout(function(){var resolved_group=group;if(group.bbp_id){resolved_group=bbp_lite_group_edit_get_group(canvas,group.bbp_id)||group} |
| 301 |
var preferred_child=clicked_sub;if(!preferred_child){var state=canvas.__bbp_lite_group_edit_mode||null;if(state&&state.group_id&&resolved_group&&resolved_group.bbp_id===state.group_id){preferred_child=bbp_lite_group_edit_find_child(resolved_group,state.child_id)}} |
| 302 |
bbp_lite_group_edit_enter(canvas,resolved_group,preferred_child)},0)})} |
| 303 |
return{prepare_group_for_subtargets:bbp_lite_prepare_group_for_subtargets,prepare_group_tree:bbp_lite_prepare_group_tree,group_edit_get_group:bbp_lite_group_edit_get_group,group_edit_find_child:bbp_lite_group_edit_find_child,group_edit_is_descendant:bbp_lite_group_edit_is_descendant,group_edit_pick_child:bbp_lite_group_edit_pick_child,group_edit_exit:bbp_lite_group_edit_exit,group_edit_enter:bbp_lite_group_edit_enter,group_edit_sync:bbp_lite_group_edit_sync,bind_group_edit_escape:bbp_lite_bind_group_edit_escape,bind_group_edit_hooks:bbp_lite_bind_group_edit_hooks,bind_group_dblclick_edit:bbp_lite_bind_group_dblclick_edit}} |
| 304 |
window.BBP_Lite_Group_Edit=window.BBP_Lite_Group_Edit||{create:bbp_lite_group_edit_create}})();(function(){function bbp_lite_safe_group_ops_create(deps){deps=deps||{};var bbp_lite_get_active_raw=(typeof deps.get_active_raw==='function')?deps.get_active_raw:function(){return null};var bbp_lite_is_group=(typeof deps.is_group==='function')?deps.is_group:function(){return!1};var bbp_lite_is_active_selection=(typeof deps.is_active_selection==='function')?deps.is_active_selection:function(){return!1};var bbp_lite_is_artboard=(typeof deps.is_artboard==='function')?deps.is_artboard:function(){return!1};var bbp_lite_generate_id=(typeof deps.generate_id==='function')?deps.generate_id:function(){return String(Date.now())};var bbp_lite_prepare_group_for_subtargets=(typeof deps.prepare_group_for_subtargets==='function')?deps.prepare_group_for_subtargets:function(){};var bbp_lite_history_checkpoint=(typeof deps.history_checkpoint==='function')?deps.history_checkpoint:function(){};function bbp_lite_safe_ungroup(canvas){if(!canvas){return!1} |
| 305 |
var group=bbp_lite_get_active_raw(canvas);if(!bbp_lite_is_group(group)){return!1} |
| 306 |
if(!group||typeof group.getObjects!=='function'){return!1} |
| 307 |
var objects=(group.getObjects()||[]).filter(function(obj){return!!(obj&&!bbp_lite_is_artboard(obj))});if(!objects.length){return!1} |
| 308 |
var active_selection=null;if(typeof canvas.discardActiveObject==='function'){try{canvas.discardActiveObject()}catch(e1){}} |
| 309 |
if(typeof group._restoreObjectsState==='function'){try{group._restoreObjectsState()}catch(e2){}} |
| 310 |
try{canvas.remove(group)}catch(e3){} |
| 311 |
objects.forEach(function(obj){if(!obj){return} |
| 312 |
try{if(typeof obj.set==='function'){obj.set('parent',null)}}catch(e3b){} |
| 313 |
try{obj.parent=null}catch(e3c){} |
| 314 |
if(typeof canvas.getObjects==='function'&&canvas.getObjects().indexOf(obj)===-1){try{canvas.add(obj)}catch(e4){}} |
| 315 |
if(typeof obj.setCoords==='function'){obj.setCoords()}});if(window.fabric&&window.fabric.ActiveSelection&&objects.length>1&&typeof canvas.setActiveObject==='function'){try{active_selection=new window.fabric.ActiveSelection(objects,{canvas:canvas});canvas.setActiveObject(active_selection)}catch(e5){}}else if(objects.length===1&&typeof canvas.setActiveObject==='function'){try{canvas.setActiveObject(objects[0])}catch(e6){}} |
| 316 |
if(typeof canvas.requestRenderAll==='function'){canvas.requestRenderAll()}else if(typeof canvas.renderAll==='function'){canvas.renderAll()} |
| 317 |
bbp_lite_history_checkpoint({immediate:!0});return!0} |
| 318 |
function bbp_lite_safe_group(canvas){if(!canvas){return!1} |
| 319 |
var active=bbp_lite_get_active_raw(canvas);if(!bbp_lite_is_active_selection(active)||typeof active.getObjects!=='function'){return!1} |
| 320 |
var objects=(active.getObjects()||[]).filter(function(obj){return!!(obj&&!bbp_lite_is_artboard(obj))});if(objects.length<2){return!1} |
| 321 |
var group=null;if(typeof active.toGroup==='function'){try{group=active.toGroup()}catch(e0){group=null}} |
| 322 |
if(!group&&window.fabric&&window.fabric.Group){if(typeof canvas.discardActiveObject==='function'){try{canvas.discardActiveObject()}catch(e1){}} |
| 323 |
objects.forEach(function(obj){try{canvas.remove(obj)}catch(e2){}});try{group=new window.fabric.Group(objects,{originX:'center',originY:'center'});canvas.add(group)}catch(e3){group=null}} |
| 324 |
if(!group){return!1} |
| 325 |
if(!group.bbp_id){group.bbp_id=bbp_lite_generate_id()} |
| 326 |
bbp_lite_prepare_group_for_subtargets(group,!1);if(typeof canvas.setActiveObject==='function'){try{canvas.setActiveObject(group)}catch(e4){}} |
| 327 |
if(typeof group.setCoords==='function'){group.setCoords()} |
| 328 |
if(typeof canvas.requestRenderAll==='function'){canvas.requestRenderAll()}else if(typeof canvas.renderAll==='function'){canvas.renderAll()} |
| 329 |
bbp_lite_history_checkpoint({immediate:!0});return!0} |
| 330 |
function bbp_lite_explode_active_selection(canvas,active){if(!canvas||!bbp_lite_is_active_selection(active)||typeof active.getObjects!=='function'){return[]} |
| 331 |
var list=(active.getObjects()||[]).filter(function(obj){return!!(obj&&!bbp_lite_is_artboard(obj))});try{if(typeof active.removeAll==='function'){active.removeAll()}else if(typeof active._exitGroup==='function'){list.slice().forEach(function(obj){if(obj){active._exitGroup(obj,!1)}})}}catch(e0){} |
| 332 |
try{if(typeof canvas.discardActiveObject==='function'){canvas.discardActiveObject()}}catch(e1){} |
| 333 |
list.forEach(function(obj){if(!obj){return} |
| 334 |
var parent=obj.group||obj.parent||null;var guard=0;while(parent&&guard<4){if(typeof parent._exitGroup==='function'){try{parent._exitGroup(obj,!1)}catch(e2){break}}else if(typeof parent.remove==='function'){try{parent.remove(obj)}catch(e3){break}}else{break} |
| 335 |
guard++;parent=obj.group||obj.parent||null} |
| 336 |
try{if(typeof obj.set==='function'){obj.set('parent',null)}}catch(e4){} |
| 337 |
try{obj.parent=null}catch(e5){} |
| 338 |
if(typeof canvas.getObjects==='function'&&canvas.getObjects().indexOf(obj)===-1){try{canvas.add(obj)}catch(e6){}} |
| 339 |
if(typeof obj.setCoords==='function'){obj.setCoords()}});if(typeof canvas.requestRenderAll==='function'){canvas.requestRenderAll()}else if(typeof canvas.renderAll==='function'){canvas.renderAll()} |
| 340 |
return list} |
| 341 |
return{safe_ungroup:bbp_lite_safe_ungroup,safe_group:bbp_lite_safe_group,explode_active_selection:bbp_lite_explode_active_selection}} |
| 342 |
window.BBP_Lite_Safe_Group_Ops=window.BBP_Lite_Safe_Group_Ops||{create:bbp_lite_safe_group_ops_create}})();(function($){function bbp_lite_get_canvas(){if(typeof window.gamipress_badge_builder_canvas!=='undefined'&&window.gamipress_badge_builder_canvas){return window.gamipress_badge_builder_canvas} |
| 343 |
if(typeof window.GamiPress_Badge_Builder!=='undefined'&&window.GamiPress_Badge_Builder&&window.GamiPress_Badge_Builder.canvas){return window.GamiPress_Badge_Builder.canvas} |
| 344 |
return null} |
| 345 |
function bbp_lite_has_pro_bridge(){if(window.BBP_FORCE_CORE_BRIDGE===!0){return!1} |
| 346 |
if(typeof window.bbp_editor_bootstrapped!=='undefined'){return!0} |
| 347 |
if(typeof window.gamipress_badge_builder_pro_runtime!=='undefined'){return!0} |
| 348 |
return!1} |
| 349 |
function bbp_lite_is_active_selection(obj){return!!(obj&&obj.type&&String(obj.type).toLowerCase()==='activeselection')} |
| 350 |
function bbp_lite_is_group(obj){return!!(obj&&obj.type&&String(obj.type).toLowerCase()==='group')} |
| 351 |
function bbp_lite_is_artboard(obj){if(!obj){return!1} |
| 352 |
return(obj.data==='artboard'||(obj.data&&obj.data.role==='artboard'))} |
| 353 |
function bbp_lite_get_manager(){if(typeof window.bbp_command_manager!=='undefined'&&window.bbp_command_manager){return window.bbp_command_manager} |
| 354 |
if(typeof window.gamipress_badge_builder_bbp_command_manager!=='undefined'&&window.gamipress_badge_builder_bbp_command_manager&&typeof window.gamipress_badge_builder_bbp_command_manager.execute==='function'){window.bbp_command_manager=window.gamipress_badge_builder_bbp_command_manager;return window.bbp_command_manager} |
| 355 |
if(typeof window.BBP_Command_Manager!=='undefined'&&window.BBP_Command_Manager&&typeof window.BBP_Command_Manager.execute==='function'){window.bbp_command_manager=window.BBP_Command_Manager;return window.bbp_command_manager} |
| 356 |
return null} |
| 357 |
function bbp_lite_ensure_manager(){var manager=bbp_lite_get_manager();if(manager){return manager} |
| 358 |
if(typeof BBP_Command_Manager==='undefined'){return null} |
| 359 |
if(typeof BBP_Command_Manager!=='function'){return null} |
| 360 |
window.bbp_command_manager=new BBP_Command_Manager({max_steps:150});window.gamipress_badge_builder_bbp_command_manager=window.bbp_command_manager;return window.bbp_command_manager} |
| 361 |
function bbp_lite_ensure_adapters(canvas,manager){if(!canvas||!manager){return} |
| 362 |
if(typeof BBP_Fabric_Transform_Adapter!=='undefined'){if(!window.bbp_fabric_transform_adapter){window.bbp_fabric_transform_adapter=new BBP_Fabric_Transform_Adapter({canvas:canvas,manager:manager})} |
| 363 |
if(window.bbp_fabric_transform_adapter&&!window.bbp_fabric_transform_adapter.__bbp_inited&&typeof window.bbp_fabric_transform_adapter.init==='function'){window.bbp_fabric_transform_adapter.init();window.bbp_fabric_transform_adapter.__bbp_inited=!0}} |
| 364 |
if(typeof BBP_UI_Props_Adapter!=='undefined'){if(!window.bbp_ui_props_adapter){window.bbp_ui_props_adapter=new BBP_UI_Props_Adapter({canvas:canvas,manager:manager})} |
| 365 |
if(window.bbp_ui_props_adapter&&!window.bbp_ui_props_adapter.__bbp_inited&&typeof window.bbp_ui_props_adapter.init==='function'){window.bbp_ui_props_adapter.init();window.bbp_ui_props_adapter.__bbp_inited=!0}}} |
| 366 |
function bbp_lite_get_event_bus(){if(typeof window.gamipress_badge_builder!=='undefined'&&window.gamipress_badge_builder&&typeof window.gamipress_badge_builder.trigger==='function'){return window.gamipress_badge_builder} |
| 367 |
return $(document)} |
| 368 |
function bbp_lite_trigger_event(name,ctx){var bus=bbp_lite_get_event_bus();try{bus.trigger(name,[ctx])}catch(e){} |
| 369 |
return ctx} |
| 370 |
function bbp_lite_get_gradient_color_provider(){if(typeof window.gamipress_badge_builder_get_gradient_color==='function'&&window.gamipress_badge_builder_get_gradient_color!==bbp_lite_get_gradient_color_provider){return window.gamipress_badge_builder_get_gradient_color} |
| 371 |
if(typeof window.gamipress_badge_builder_pro_get_gradient_color==='function'){return window.gamipress_badge_builder_pro_get_gradient_color} |
| 372 |
return null} |
| 373 |
function bbp_lite_register_gradient_color_provider(){if(typeof window.gamipress_badge_builder_get_gradient_color_provider!=='function'){window.gamipress_badge_builder_get_gradient_color_provider=bbp_lite_get_gradient_color_provider}} |
| 374 |
function bbp_lite_get_bridge_version(){return 'core-bridge-contract-1'} |
| 375 |
function bbp_lite_get_capabilities(canvas,manager){return{hybrid_history:!0,command_manager:!!(manager&&typeof manager.execute==='function'),multiselect_bridge:!!(window.bbp_ms_inited===!0||window.bbp_ms_process_tool_wrapped===!0||window.bbp_ms_selection_change_wrapped===!0),group_edit_dblclick:!0,contract_events:!0,keyboard_shortcut_hooks:!0,keyboard_raw_move_shortcuts:!0,release_bundle_loader:!0,active_selection:!!(window.fabric&&window.fabric.ActiveSelection)}} |
| 376 |
function bbp_lite_emit_editor_ready(canvas,manager,force){var capabilities=bbp_lite_get_capabilities(canvas,manager);var signature=JSON.stringify(capabilities);if(!force&&window.__bbp_lite_editor_ready_signature===signature){return} |
| 377 |
window.__bbp_lite_editor_ready_signature=signature;bbp_lite_trigger_event('gamipress_badge_builder_editor_ready',{canvas:canvas||null,fabric:window.fabric||null,manager:manager||bbp_lite_get_manager(),bridge_version:bbp_lite_get_bridge_version(),capabilities:capabilities})} |
| 378 |
function bbp_lite_get_tool_name(tool){if(typeof tool==='string'){return tool} |
| 379 |
if(tool&&tool.name){return tool.name} |
| 380 |
if(tool&&tool.tool){return tool.tool} |
| 381 |
return ''} |
| 382 |
var bbp_lite_keyboard_contract_api=null;function bbp_lite_get_keyboard_contract_api(){if(bbp_lite_keyboard_contract_api){return bbp_lite_keyboard_contract_api} |
| 383 |
if(typeof window.BBP_Lite_Keyboard_Contract!=='undefined'&&window.BBP_Lite_Keyboard_Contract&&typeof window.BBP_Lite_Keyboard_Contract.create==='function'){bbp_lite_keyboard_contract_api=window.BBP_Lite_Keyboard_Contract.create({trigger_event:bbp_lite_trigger_event,get_manager:bbp_lite_get_manager,get_active_raw:bbp_lite_get_active_raw})} |
| 384 |
return bbp_lite_keyboard_contract_api} |
| 385 |
function bbp_lite_keyboard_target_blocked(e){var api=bbp_lite_get_keyboard_contract_api();return!!(api&&typeof api.keyboard_target_blocked==='function'&&api.keyboard_target_blocked(e))} |
| 386 |
function bbp_lite_snapshot_keyboard_event(e){var api=bbp_lite_get_keyboard_contract_api();return(api&&typeof api.snapshot_keyboard_event==='function')?api.snapshot_keyboard_event(e):null} |
| 387 |
function bbp_lite_keyboard_tool_actions_from_event(e){var api=bbp_lite_get_keyboard_contract_api();return(api&&typeof api.keyboard_tool_actions_from_event==='function')?api.keyboard_tool_actions_from_event(e):null} |
| 388 |
function bbp_lite_clear_keyboard_shortcut_pending(){var api=bbp_lite_get_keyboard_contract_api();if(api&&typeof api.clear_keyboard_shortcut_pending==='function'){api.clear_keyboard_shortcut_pending()}else{window.__bbp_lite_keyboard_shortcut_pending=null}} |
| 389 |
function bbp_lite_consume_keyboard_shortcut_pending(tool_name){var api=bbp_lite_get_keyboard_contract_api();return(api&&typeof api.consume_keyboard_shortcut_pending==='function')?api.consume_keyboard_shortcut_pending(tool_name):null} |
| 390 |
function bbp_lite_clear_keyboard_raw_move_pending(){var api=bbp_lite_get_keyboard_contract_api();if(api&&typeof api.clear_keyboard_raw_move_pending==='function'){api.clear_keyboard_raw_move_pending()}else{window.__bbp_lite_keyboard_raw_move_pending=null}} |
| 391 |
function bbp_lite_consume_keyboard_raw_move_pending_for_call(obj,dx,dy){var api=bbp_lite_get_keyboard_contract_api();if(api&&typeof api.consume_keyboard_raw_move_pending_for_call==='function'){return api.consume_keyboard_raw_move_pending_for_call(obj,dx,dy)} |
| 392 |
return null} |
| 393 |
function bbp_lite_emit_after_keyboard_shortcut(meta,action,result){var api=bbp_lite_get_keyboard_contract_api();if(api&&typeof api.emit_after_keyboard_shortcut==='function'){api.emit_after_keyboard_shortcut(meta,action,result)}} |
| 394 |
function bbp_lite_bind_keyboard_shortcut_contract(canvas){var api=bbp_lite_get_keyboard_contract_api();if(api&&typeof api.bind_keyboard_shortcut_contract==='function'){api.bind_keyboard_shortcut_contract(canvas)}} |
| 395 |
function bbp_lite_wrap_contract_dispatchers(canvas){canvas=canvas||bbp_lite_get_canvas();if(typeof window.gamipress_badge_builder_process_tool==='function'&&!window.gamipress_badge_builder_process_tool.__bbp_lite_contract_wrapper){(function(original_process_tool){window.gamipress_badge_builder_process_tool=function(tool){var manager=bbp_lite_get_manager();var tool_name=bbp_lite_get_tool_name(tool);var active_before=bbp_lite_get_active_raw(canvas);var keyboard_meta=bbp_lite_consume_keyboard_shortcut_pending(tool_name);var source=keyboard_meta?'keyboard':'ui';var before_ctx={tool:tool,canvas:canvas||null,active:active_before||null,manager:manager||null,handled:!1,cancel:!1,result:undefined,source:source};var ret;var after_ctx;bbp_lite_trigger_event('gamipress_badge_builder_before_process_tool',before_ctx);if(before_ctx.cancel){ret=(typeof before_ctx.result!=='undefined')?before_ctx.result:!1;if(keyboard_meta){bbp_lite_emit_after_keyboard_shortcut(keyboard_meta,tool_name,ret)} |
| 396 |
return ret} |
| 397 |
if(before_ctx.handled){ret=before_ctx.result;after_ctx={tool:before_ctx.tool,canvas:canvas||null,active_before:active_before||null,active_after:bbp_lite_get_active_raw(canvas),source:source,result:ret};bbp_lite_trigger_event('gamipress_badge_builder_after_process_tool',after_ctx);if(keyboard_meta){bbp_lite_emit_after_keyboard_shortcut(keyboard_meta,tool_name,ret)} |
| 398 |
return ret} |
| 399 |
if(before_ctx.tool!==tool){var new_args=Array.prototype.slice.call(arguments);new_args[0]=before_ctx.tool;ret=original_process_tool.apply(this,new_args)}else{ret=original_process_tool.apply(this,arguments)} |
| 400 |
after_ctx={tool:before_ctx.tool,canvas:canvas||null,active_before:active_before||null,active_after:bbp_lite_get_active_raw(canvas),source:source,result:ret};bbp_lite_trigger_event('gamipress_badge_builder_after_process_tool',after_ctx);if(keyboard_meta){bbp_lite_emit_after_keyboard_shortcut(keyboard_meta,tool_name,ret)} |
| 401 |
return ret};window.gamipress_badge_builder_process_tool.__bbp_lite_contract_wrapper=!0;window.gamipress_badge_builder_process_tool.__bbp_lite_contract_inner=original_process_tool})(window.gamipress_badge_builder_process_tool)} |
| 402 |
if(typeof window.gamipress_badge_builder_move_object==='function'&&!window.gamipress_badge_builder_move_object.__bbp_lite_keyboard_contract_wrapper){(function(original_move_object){window.gamipress_badge_builder_move_object=function(obj,dx,dy){var keyboard_move_meta=bbp_lite_consume_keyboard_raw_move_pending_for_call(obj,dx,dy);var ret=original_move_object.apply(this,arguments);if(keyboard_move_meta){bbp_lite_emit_after_keyboard_shortcut(keyboard_move_meta,keyboard_move_meta.action,ret)} |
| 403 |
return ret};window.gamipress_badge_builder_move_object.__bbp_lite_keyboard_contract_wrapper=!0;window.gamipress_badge_builder_move_object.__bbp_lite_keyboard_contract_inner=original_move_object})(window.gamipress_badge_builder_move_object)} |
| 404 |
if(typeof window.gamipress_badge_builder_selection_form_change==='function'&&!window.gamipress_badge_builder_selection_form_change.__bbp_lite_contract_wrapper){(function(original_selection_change){window.gamipress_badge_builder_selection_form_change=function(field){var manager=bbp_lite_get_manager();var $field=$(field);var field_id=$field.length?($field.attr('id')||''):'';var value=$field.length?$field.val():undefined;var active_before=bbp_lite_get_active_raw(canvas);var before_ctx={field:field,field_id:field_id,value:value,canvas:canvas||null,active:active_before||null,manager:manager||null,handled:!1,cancel:!1,result:undefined};var ret;bbp_lite_trigger_event('gamipress_badge_builder_before_selection_form_change',before_ctx);if(before_ctx.cancel){return(typeof before_ctx.result!=='undefined')?before_ctx.result:!1} |
| 405 |
if(before_ctx.handled){ret=before_ctx.result}else if(before_ctx.field!==field){ret=original_selection_change.call(this,before_ctx.field)}else{ret=original_selection_change.apply(this,arguments)} |
| 406 |
bbp_lite_trigger_event('gamipress_badge_builder_after_selection_form_change',{field:before_ctx.field,field_id:before_ctx.field_id,value:before_ctx.value,canvas:canvas||null,active_before:active_before||null,active_after:bbp_lite_get_active_raw(canvas),result:ret});return ret};window.gamipress_badge_builder_selection_form_change.__bbp_lite_contract_wrapper=!0;window.gamipress_badge_builder_selection_form_change.__bbp_lite_contract_inner=original_selection_change})(window.gamipress_badge_builder_selection_form_change)} |
| 407 |
return!0} |
| 408 |
function bbp_lite_get_active_object(canvas){if(!canvas||typeof canvas.getActiveObject!=='function'){return null} |
| 409 |
var active=null;try{active=canvas.getActiveObject()}catch(e){active=null} |
| 410 |
if(active&&bbp_lite_is_active_selection(active)&&typeof active.getObjects==='function'){var list=active.getObjects()||[];return(list.length?list[list.length-1]:null)} |
| 411 |
return active} |
| 412 |
function bbp_lite_get_active_raw(canvas){if(!canvas||typeof canvas.getActiveObject!=='function'){return null} |
| 413 |
try{return canvas.getActiveObject()}catch(e){return null}} |
| 414 |
function bbp_lite_pointer_from_event(canvas,event){var dom_event=(event&&event.e)?event.e:null;var pointer=null;var x=null;var y=null;var rect=null;if(!canvas||!dom_event){return null} |
| 415 |
if(typeof canvas.getPointer==='function'){try{pointer=canvas.getPointer(dom_event);if(pointer&&Number.isFinite(Number(pointer.x))&&Number.isFinite(Number(pointer.y))){return{x:Number(pointer.x),y:Number(pointer.y)}}}catch(e0){}} |
| 416 |
x=Number(dom_event.offsetX);y=Number(dom_event.offsetY);if(Number.isFinite(x)&&Number.isFinite(y)){return{x:x,y:y}} |
| 417 |
x=Number(dom_event.layerX);y=Number(dom_event.layerY);if(Number.isFinite(x)&&Number.isFinite(y)){return{x:x,y:y}} |
| 418 |
if(canvas.upperCanvasEl&&typeof canvas.upperCanvasEl.getBoundingClientRect==='function'){rect=canvas.upperCanvasEl.getBoundingClientRect();x=Number(dom_event.clientX)-Number(rect.left||0);y=Number(dom_event.clientY)-Number(rect.top||0);if(Number.isFinite(x)&&Number.isFinite(y)){return{x:x,y:y}}} |
| 419 |
return null} |
| 420 |
function bbp_lite_pick_active_selection_member(active,pointer){if(!active||!pointer||typeof active.getObjects!=='function'){return null} |
| 421 |
var members=active.getObjects()||[];for(var i=members.length-1;i>=0;i--){var obj=members[i];var bb=null;if(!obj||bbp_lite_is_artboard(obj)){continue} |
| 422 |
try{bb=obj.getBoundingRect(!0,!0)}catch(e0){try{bb=obj.getBoundingRect()}catch(e1){bb=null}} |
| 423 |
if(bb&&pointer.x>=Number(bb.left||0)&&pointer.x<=(Number(bb.left||0)+Number(bb.width||0))&&pointer.y>=Number(bb.top||0)&&pointer.y<=(Number(bb.top||0)+Number(bb.height||0))){return obj}} |
| 424 |
return null} |
| 425 |
function bbp_lite_bind_active_selection_single_click_isolation(canvas){if(!canvas||canvas.__bbp_lite_single_click_isolation_bound||typeof canvas.on!=='function'){return} |
| 426 |
canvas.__bbp_lite_single_click_isolation_bound=!0;canvas.on('mouse:up',function(event){var dom_event=(event&&event.e)?event.e:null;var active=null;var pointer=null;var target=null;if(!dom_event){return} |
| 427 |
if(dom_event.ctrlKey||dom_event.metaKey||dom_event.shiftKey||dom_event.altKey){return} |
| 428 |
if(event&&event.transform&&event.transform.actionPerformed){return} |
| 429 |
try{active=(typeof canvas.getActiveObject==='function')?canvas.getActiveObject():null}catch(e0){active=null} |
| 430 |
if(!active||!bbp_lite_is_active_selection(active)||typeof active.getObjects!=='function'){return} |
| 431 |
pointer=bbp_lite_pointer_from_event(canvas,event);if(!pointer){return} |
| 432 |
target=bbp_lite_pick_active_selection_member(active,pointer);if(!target){return} |
| 433 |
setTimeout(function(){var current=null;var members=[];try{current=(typeof canvas.getActiveObject==='function')?canvas.getActiveObject():null}catch(e1){current=null} |
| 434 |
if(!current||!bbp_lite_is_active_selection(current)||typeof current.getObjects!=='function'){return} |
| 435 |
members=current.getObjects()||[];if(members.indexOf(target)===-1){return} |
| 436 |
if(typeof canvas.discardActiveObject==='function'){try{canvas.discardActiveObject()}catch(e2){}} |
| 437 |
if(typeof canvas.setActiveObject==='function'){try{canvas.setActiveObject(target)}catch(e3){return}} |
| 438 |
if(typeof target.setCoords==='function'){target.setCoords()} |
| 439 |
if(typeof canvas.requestRenderAll==='function'){canvas.requestRenderAll()}else if(typeof canvas.renderAll==='function'){canvas.renderAll()}},0)})} |
| 440 |
function bbp_lite_key(obj){if(!obj){return null} |
| 441 |
if(obj.bbp_id){return obj.bbp_id} |
| 442 |
if(obj.bbp_uid){return obj.bbp_uid} |
| 443 |
return null} |
| 444 |
function bbp_lite_generate_id(){return 'bbp_'+Date.now()+'_'+Math.floor(Math.random()*100000)} |
| 445 |
function bbp_lite_ensure_uid(canvas){if(!canvas||typeof canvas.getObjects!=='function'){return} |
| 446 |
if(typeof window.bbp_uid_counter==='undefined'){window.bbp_uid_counter=1} |
| 447 |
canvas.getObjects().forEach(function(obj){if(!obj){return} |
| 448 |
if(!obj.bbp_id){obj.bbp_id=bbp_lite_generate_id();if(obj.data&&typeof obj.data==='object'&&typeof obj.data.bbp_id==='undefined'){try{obj.data.bbp_id=obj.bbp_id}catch(e0){}} |
| 449 |
return} |
| 450 |
if(!obj.bbp_uid){obj.bbp_uid='bbp_uid_'+(window.bbp_uid_counter++)}})} |
| 451 |
function bbp_lite_order_snapshot(canvas){if(!canvas||typeof canvas.getObjects!=='function'){return[]} |
| 452 |
bbp_lite_ensure_uid(canvas);return canvas.getObjects().map(function(obj){return bbp_lite_key(obj)}).filter(function(key){return!!key})} |
| 453 |
function bbp_lite_capture_transform(obj){if(!obj){return null} |
| 454 |
if(!obj.bbp_id){obj.bbp_id=bbp_lite_generate_id()} |
| 455 |
if(window.bbp_fabric_transform_adapter&&typeof window.bbp_fabric_transform_adapter.capture==='function'){return window.bbp_fabric_transform_adapter.capture(obj)} |
| 456 |
return null} |
| 457 |
function bbp_lite_is_same_transform(before,after){if(!before||!after){return!1} |
| 458 |
if(window.bbp_fabric_transform_adapter&&typeof window.bbp_fabric_transform_adapter.is_same_transform==='function'){return window.bbp_fabric_transform_adapter.is_same_transform(before,after)} |
| 459 |
return!1} |
| 460 |
function bbp_lite_is_transform_tool(tool_name){if(!tool_name){return!1} |
| 461 |
return(tool_name.indexOf('align-')===0||tool_name.indexOf('rotate')===0||tool_name.indexOf('scale')===0||tool_name.indexOf('flip')===0||tool_name==='fit'||tool_name==='fit-canvas'||tool_name==='fit-to-canvas')} |
| 462 |
function bbp_lite_is_arrange_tool(tool_name){return(tool_name==='send-front'||tool_name==='send-back'||tool_name==='send-to-front'||tool_name==='send-to-back')} |
| 463 |
function bbp_lite_is_text_tool(obj){return!!(obj&&obj.textAlign!==undefined)} |
| 464 |
function bbp_lite_is_text_style_tool(tool_name){if(!tool_name){return!1} |
| 465 |
return(['bold','italic','underline','strikethrough','text-align-left','text-align-center','text-align-right','text-align-justify'].indexOf(tool_name)!==-1)} |
| 466 |
function bbp_lite_capture_text_tool_objects(active_raw){if(!active_raw){return[]} |
| 467 |
if(bbp_lite_is_active_selection(active_raw)&&typeof active_raw.getObjects==='function'){return(active_raw.getObjects()||[]).filter(function(obj){return obj&&!bbp_lite_is_artboard(obj)&&bbp_lite_is_text_tool(obj)})} |
| 468 |
if(bbp_lite_is_artboard(active_raw)||!bbp_lite_is_text_tool(active_raw)){return[]} |
| 469 |
return[active_raw]} |
| 470 |
function bbp_lite_is_gradient_field(field_id){if(!field_id){return!1} |
| 471 |
return(['fill','fill_2','fill_color_type','gradient_type','angle','radius','stroke','stroke_2','stroke_color_type','stroke_gradient_type','stroke_angle','stroke_radius','stroke_width','stroke_type','stroke_linejoin'].indexOf(field_id)!==-1)} |
| 472 |
function bbp_lite_clone_state(value){if(typeof BBP_Utils!=='undefined'&&BBP_Utils&&typeof BBP_Utils.clone==='function'){return BBP_Utils.clone(value)} |
| 473 |
try{return JSON.parse(JSON.stringify(value))}catch(e0){return value}} |
| 474 |
function bbp_lite_same_objects(a,b){if(!Array.isArray(a)||!Array.isArray(b)){return!1} |
| 475 |
if(a.length!==b.length){return!1} |
| 476 |
for(var i=0;i<a.length;i++){if(a[i]!==b[i]){return!1}} |
| 477 |
return!0} |
| 478 |
function bbp_lite_try_merge_props_command(manager,objects,after,label,field_id){if(!manager||!bbp_lite_is_gradient_field(field_id)){return!1} |
| 479 |
if(!Array.isArray(manager.undo_stack)||!Array.isArray(manager.redo_stack)){return!1} |
| 480 |
if(manager.redo_stack.length>0||manager.undo_stack.length===0){return!1} |
| 481 |
var last=manager.undo_stack[manager.undo_stack.length-1];if(!last||last.type!=='props'||!bbp_lite_same_objects(last.objects,objects)){return!1} |
| 482 |
var now=Date.now();var last_ts=parseInt(last.__bbp_props_batch_ts||0,10);if(!last_ts||(now-last_ts)>500){return!1} |
| 483 |
last.after=bbp_lite_clone_state(after);last.label=label||last.label;last.__bbp_props_batch_ts=now;last.__bbp_props_batch_field=field_id||'';if(typeof manager._schedule_focus_sync==='function'){manager._schedule_focus_sync()} |
| 484 |
return!0} |
| 485 |
var bbp_lite_group_edit_api=null;function bbp_lite_get_group_edit_api(){if(bbp_lite_group_edit_api){return bbp_lite_group_edit_api} |
| 486 |
if(typeof window.BBP_Lite_Group_Edit!=='undefined'&&window.BBP_Lite_Group_Edit&&typeof window.BBP_Lite_Group_Edit.create==='function'){bbp_lite_group_edit_api=window.BBP_Lite_Group_Edit.create({is_group:bbp_lite_is_group,is_active_selection:bbp_lite_is_active_selection,generate_id:bbp_lite_generate_id})} |
| 487 |
return bbp_lite_group_edit_api} |
| 488 |
function bbp_lite_prepare_group_for_subtargets(group,allow_child_interaction){var api=bbp_lite_get_group_edit_api();if(api&&typeof api.prepare_group_for_subtargets==='function'){return api.prepare_group_for_subtargets(group,allow_child_interaction)}} |
| 489 |
function bbp_lite_prepare_group_tree(node,allow_child_interaction){var api=bbp_lite_get_group_edit_api();if(api&&typeof api.prepare_group_tree==='function'){return api.prepare_group_tree(node,allow_child_interaction)}} |
| 490 |
function bbp_lite_group_edit_get_group(canvas,group_id){var api=bbp_lite_get_group_edit_api();return(api&&typeof api.group_edit_get_group==='function')?api.group_edit_get_group(canvas,group_id):null} |
| 491 |
function bbp_lite_group_edit_find_child(group,child_id){var api=bbp_lite_get_group_edit_api();return(api&&typeof api.group_edit_find_child==='function')?api.group_edit_find_child(group,child_id):null} |
| 492 |
function bbp_lite_group_edit_is_descendant(node,group){var api=bbp_lite_get_group_edit_api();return!!(api&&typeof api.group_edit_is_descendant==='function'&&api.group_edit_is_descendant(node,group))} |
| 493 |
function bbp_lite_group_edit_pick_child(group,preferred){var api=bbp_lite_get_group_edit_api();return(api&&typeof api.group_edit_pick_child==='function')?api.group_edit_pick_child(group,preferred):null} |
| 494 |
function bbp_lite_group_edit_exit(canvas,options){var api=bbp_lite_get_group_edit_api();return!!(api&&typeof api.group_edit_exit==='function'&&api.group_edit_exit(canvas,options))} |
| 495 |
function bbp_lite_group_edit_enter(canvas,group,child){var api=bbp_lite_get_group_edit_api();return!!(api&&typeof api.group_edit_enter==='function'&&api.group_edit_enter(canvas,group,child))} |
| 496 |
function bbp_lite_group_edit_sync(canvas){var api=bbp_lite_get_group_edit_api();if(api&&typeof api.group_edit_sync==='function'){api.group_edit_sync(canvas)}} |
| 497 |
function bbp_lite_bind_group_edit_escape(canvas){var api=bbp_lite_get_group_edit_api();if(api&&typeof api.bind_group_edit_escape==='function'){api.bind_group_edit_escape(canvas)}} |
| 498 |
function bbp_lite_bind_group_edit_hooks(canvas){var api=bbp_lite_get_group_edit_api();if(api&&typeof api.bind_group_edit_hooks==='function'){api.bind_group_edit_hooks(canvas)}} |
| 499 |
function bbp_lite_bind_group_dblclick_edit(canvas){var api=bbp_lite_get_group_edit_api();if(api&&typeof api.bind_group_dblclick_edit==='function'){api.bind_group_dblclick_edit(canvas)}} |
| 500 |
function bbp_lite_history_checkpoint(options){options=options||{};if(typeof window.gamipress_badge_builder_history_applying!=='undefined'&&window.gamipress_badge_builder_history_applying){return} |
| 501 |
var immediate=!!options.immediate;if(immediate){window.__bbp_lite_history_suppress_until=Date.now()+900;if(typeof window.gamipress_badge_builder_history_timer!=='undefined'&&window.gamipress_badge_builder_history_timer){clearTimeout(window.gamipress_badge_builder_history_timer);window.gamipress_badge_builder_history_timer=null} |
| 502 |
if(typeof window.gamipress_badge_builder_history_save==='function'){window.gamipress_badge_builder_history_save();return}} |
| 503 |
if(typeof window.gamipress_badge_builder_history_schedule==='function'){window.gamipress_badge_builder_history_schedule()}} |
| 504 |
function bbp_lite_history_json_same(a,b){try{return JSON.stringify(a)===JSON.stringify(b)}catch(e0){return!1}} |
| 505 |
function bbp_lite_history_snapshot_objects_count(snapshot){if(!snapshot||!Array.isArray(snapshot.objects)){return 0} |
| 506 |
var count=0;snapshot.objects.forEach(function(obj){if(!obj){return} |
| 507 |
if(obj.data==='artboard'){return} |
| 508 |
if(obj.data&&typeof obj.data==='object'&&obj.data.role==='artboard'){return} |
| 509 |
count++});return count} |
| 510 |
function bbp_lite_history_normalize_floor(){if(window.__bbp_lite_history_floor_normalized){return} |
| 511 |
if(!Array.isArray(window.gamipress_badge_builder_history)){return} |
| 512 |
var history=window.gamipress_badge_builder_history;if(history.length<2){return} |
| 513 |
var first=history[0];var second=history[1];var first_count=bbp_lite_history_snapshot_objects_count(first);var second_count=bbp_lite_history_snapshot_objects_count(second);if(first_count===0&&second_count>=2){history[0]=bbp_lite_clone_state(second);window.__bbp_lite_history_floor_normalized=!0}} |
| 514 |
function bbp_lite_history_is_applying(){return!!(typeof window.gamipress_badge_builder_history_applying!=='undefined'&&window.gamipress_badge_builder_history_applying)} |
| 515 |
function bbp_lite_mark_json_boundary(){var history=window.gamipress_badge_builder_history;var len=Array.isArray(history)?history.length:0;window.__bbp_lite_json_boundary_history_len=len} |
| 516 |
function bbp_lite_clear_json_boundary(){window.__bbp_lite_json_boundary_history_len=0} |
| 517 |
function bbp_lite_can_cross_manager_json_boundary(){var history=window.gamipress_badge_builder_history;if(!Array.isArray(history)||history.length<=1){return!1} |
| 518 |
var boundary_len=parseInt(window.__bbp_lite_json_boundary_history_len||0,10);if(isNaN(boundary_len)||boundary_len<=1){return!1} |
| 519 |
return(history.length>=boundary_len)} |
| 520 |
function bbp_lite_get_history_action_queue(){if(!Array.isArray(window.__bbp_lite_history_action_queue)){window.__bbp_lite_history_action_queue=[]} |
| 521 |
return window.__bbp_lite_history_action_queue} |
| 522 |
function bbp_lite_get_history_action_epoch(){var epoch=parseInt(window.__bbp_lite_history_action_epoch||0,10);if(isNaN(epoch)||epoch<0){epoch=0} |
| 523 |
return epoch} |
| 524 |
function bbp_lite_touch_history_action_epoch(){window.__bbp_lite_history_action_epoch=bbp_lite_get_history_action_epoch()+1;return window.__bbp_lite_history_action_epoch} |
| 525 |
function bbp_lite_clear_history_action_queue(){window.__bbp_lite_history_action_queue=[];window.__bbp_lite_history_action_queue_running=!1;if(window.__bbp_lite_history_action_queue_timer){clearTimeout(window.__bbp_lite_history_action_queue_timer);window.__bbp_lite_history_action_queue_timer=null}} |
| 526 |
function bbp_lite_drain_history_action_queue(){if(window.__bbp_lite_history_action_queue_running){return} |
| 527 |
window.__bbp_lite_history_action_queue_running=!0;var run=function(){if(bbp_lite_history_is_applying()){window.__bbp_lite_history_action_queue_timer=setTimeout(run,25);return} |
| 528 |
var queue=bbp_lite_get_history_action_queue();if(!queue.length){window.__bbp_lite_history_action_queue_running=!1;window.__bbp_lite_history_action_queue_timer=null;return} |
| 529 |
var next=queue.shift();var action='';var epoch=bbp_lite_get_history_action_epoch();if(next&&typeof next==='object'){action=next.action||'';epoch=parseInt(next.epoch,10)}else{action=next||''} |
| 530 |
if(isNaN(epoch)){epoch=bbp_lite_get_history_action_epoch()} |
| 531 |
if(epoch!==bbp_lite_get_history_action_epoch()){window.__bbp_lite_history_action_queue_timer=setTimeout(run,0);return} |
| 532 |
if(action==='undo'){bbp_lite_hybrid_undo({allow_queue:!1})}else if(action==='redo'){bbp_lite_hybrid_redo({allow_queue:!1})} |
| 533 |
window.__bbp_lite_history_action_queue_timer=setTimeout(run,25)};run()} |
| 534 |
function bbp_lite_queue_history_action(action){if(action!=='undo'&&action!=='redo'){return} |
| 535 |
var queue=bbp_lite_get_history_action_queue();queue.push({action:action,epoch:bbp_lite_get_history_action_epoch()});if(window.__bbp_lite_history_action_queue_running){return} |
| 536 |
if(window.__bbp_lite_history_action_queue_timer){clearTimeout(window.__bbp_lite_history_action_queue_timer)} |
| 537 |
window.__bbp_lite_history_action_queue_timer=setTimeout(function(){window.__bbp_lite_history_action_queue_timer=null;bbp_lite_drain_history_action_queue()},25)} |
| 538 |
function bbp_lite_release_restore_when_history_idle(manager){if(!manager||typeof manager.end_restore!=='function'){return} |
| 539 |
var attempts=0;var release=function(){attempts++;if(bbp_lite_history_is_applying()&&attempts<50){setTimeout(release,25);return} |
| 540 |
manager.end_restore()};setTimeout(release,0)} |
| 541 |
var bbp_lite_safe_group_ops_api=null;function bbp_lite_get_safe_group_ops_api(){if(bbp_lite_safe_group_ops_api){return bbp_lite_safe_group_ops_api} |
| 542 |
if(typeof window.BBP_Lite_Safe_Group_Ops!=='undefined'&&window.BBP_Lite_Safe_Group_Ops&&typeof window.BBP_Lite_Safe_Group_Ops.create==='function'){bbp_lite_safe_group_ops_api=window.BBP_Lite_Safe_Group_Ops.create({get_active_raw:bbp_lite_get_active_raw,is_group:bbp_lite_is_group,is_active_selection:bbp_lite_is_active_selection,is_artboard:bbp_lite_is_artboard,generate_id:bbp_lite_generate_id,prepare_group_for_subtargets:bbp_lite_prepare_group_for_subtargets,history_checkpoint:bbp_lite_history_checkpoint})} |
| 543 |
return bbp_lite_safe_group_ops_api} |
| 544 |
function bbp_lite_safe_ungroup(canvas){var api=bbp_lite_get_safe_group_ops_api();return!!(api&&typeof api.safe_ungroup==='function'&&api.safe_ungroup(canvas))} |
| 545 |
function bbp_lite_safe_group(canvas){var api=bbp_lite_get_safe_group_ops_api();return!!(api&&typeof api.safe_group==='function'&&api.safe_group(canvas))} |
| 546 |
function bbp_lite_explode_active_selection(canvas,active){var api=bbp_lite_get_safe_group_ops_api();return(api&&typeof api.explode_active_selection==='function')?api.explode_active_selection(canvas,active):[]} |
| 547 |
function bbp_lite_hybrid_undo(options){options=options||{};if(bbp_lite_history_is_applying()){if(options.allow_queue!==!1){bbp_lite_queue_history_action('undo')} |
| 548 |
return} |
| 549 |
var manager=bbp_lite_get_manager();var core_history=window.gamipress_badge_builder_history;if(manager&&typeof manager.can_undo==='function'&&manager.can_undo()&&typeof manager.undo==='function'){manager.undo();return} |
| 550 |
if(manager&&typeof manager.can_undo==='function'&&typeof manager.can_redo==='function'){if(!manager.can_undo()&&manager.can_redo()){if(!bbp_lite_can_cross_manager_json_boundary()){return} |
| 551 |
if(typeof manager.clear_stacks==='function'){manager.clear_stacks()} |
| 552 |
bbp_lite_clear_json_boundary()}} |
| 553 |
if(Array.isArray(core_history)&&core_history.length<=1){return} |
| 554 |
if(typeof window.__bbp_lite_core_undo==='function'){if(manager&&typeof manager.begin_restore==='function'){manager.begin_restore()} |
| 555 |
try{window.__bbp_lite_core_undo();if(window.__bbp_lite_restore_group_focus===!0){bbp_lite_schedule_group_focus_restore()}}finally{if(manager&&typeof manager.end_restore==='function'){bbp_lite_release_restore_when_history_idle(manager)}}}} |
| 556 |
function bbp_lite_hybrid_redo(options){options=options||{};if(bbp_lite_history_is_applying()){if(options.allow_queue!==!1){bbp_lite_queue_history_action('redo')} |
| 557 |
return} |
| 558 |
var manager=bbp_lite_get_manager();var core_history_redo=window.gamipress_badge_builder_history_redo;if(manager&&typeof manager.can_redo==='function'&&manager.can_redo()&&typeof manager.redo==='function'){manager.redo();return} |
| 559 |
if(manager&&typeof manager.can_undo==='function'&&typeof manager.can_redo==='function'){if(!manager.can_redo()&&manager.can_undo()){if(!bbp_lite_can_cross_manager_json_boundary()){return} |
| 560 |
if(typeof manager.clear_stacks==='function'){manager.clear_stacks()} |
| 561 |
bbp_lite_clear_json_boundary()}} |
| 562 |
if(Array.isArray(core_history_redo)&&core_history_redo.length===0){return} |
| 563 |
if(typeof window.__bbp_lite_core_redo==='function'){if(manager&&typeof manager.begin_restore==='function'){manager.begin_restore()} |
| 564 |
try{window.__bbp_lite_core_redo();if(window.__bbp_lite_restore_group_focus===!0){bbp_lite_schedule_group_focus_restore()}}finally{if(manager&&typeof manager.end_restore==='function'){bbp_lite_release_restore_when_history_idle(manager)}}}} |
| 565 |
function bbp_lite_schedule_group_focus_restore(){var delays=[120,320,650];var run_attempt=function(attempt){if(attempt>=delays.length){return} |
| 566 |
setTimeout(function(){var canvas=bbp_lite_get_canvas();if(!canvas||typeof canvas.getActiveObject!=='function'){if(attempt+1<delays.length){run_attempt(attempt+1)} |
| 567 |
return} |
| 568 |
var active=null;try{active=canvas.getActiveObject()}catch(e0){active=null} |
| 569 |
if(active){return} |
| 570 |
if(typeof canvas.getObjects!=='function'){if(attempt+1<delays.length){run_attempt(attempt+1)} |
| 571 |
return} |
| 572 |
var objects=canvas.getObjects().filter(function(obj){return!!(obj&&!bbp_lite_is_artboard(obj))});if(!objects.length){if(attempt+1<delays.length){run_attempt(attempt+1)} |
| 573 |
return} |
| 574 |
var groups=objects.filter(function(obj){return bbp_lite_is_group(obj)});if(groups.length===1&&objects.length===1){try{canvas.setActiveObject(groups[0])}catch(e1){}}else if(objects.length>1&&window.fabric&&window.fabric.ActiveSelection){try{canvas.setActiveObject(new window.fabric.ActiveSelection(objects,{canvas:canvas}))}catch(e2){}}else if(objects.length===1){try{canvas.setActiveObject(objects[0])}catch(e3){}} |
| 575 |
if(typeof canvas.requestRenderAll==='function'){canvas.requestRenderAll()}else if(typeof canvas.renderAll==='function'){canvas.renderAll()} |
| 576 |
active=null;try{active=canvas.getActiveObject()}catch(e4){active=null} |
| 577 |
if(!active&&attempt+1<delays.length){run_attempt(attempt+1)}},delays[attempt])};run_attempt(0)} |
| 578 |
function bbp_lite_wrap_core(canvas){if(window.__bbp_lite_wrapped){return!0} |
| 579 |
if(typeof window.gamipress_badge_builder_undo!=='function'||typeof window.gamipress_badge_builder_redo!=='function'||typeof window.gamipress_badge_builder_process_tool!=='function'||typeof window.gamipress_badge_builder_selection_form_change!=='function'){return!1} |
| 580 |
var original_undo=window.gamipress_badge_builder_undo;var original_redo=window.gamipress_badge_builder_redo;var original_process_tool=window.gamipress_badge_builder_process_tool;var original_selection_change=window.gamipress_badge_builder_selection_form_change;var original_process_action=(typeof window.gamipress_badge_builder_process_action==='function')?window.gamipress_badge_builder_process_action:null;var original_history_reset=(typeof window.gamipress_badge_builder_history_reset==='function')?window.gamipress_badge_builder_history_reset:null;window.__bbp_lite_core_undo=original_undo;window.__bbp_lite_core_redo=original_redo;window.__bbp_lite_core_process_tool=original_process_tool;window.__bbp_lite_core_selection_form_change=original_selection_change;window.__bbp_lite_core_process_action=original_process_action;window.__bbp_lite_core_history_reset=original_history_reset;if(typeof window.bbp_core_selection_form_change==='undefined'){window.bbp_core_selection_form_change=original_selection_change} |
| 581 |
if(!window.__bbp_lite_history_schedule_wrapped&&typeof window.gamipress_badge_builder_history_schedule==='function'){window.__bbp_lite_core_history_schedule=window.gamipress_badge_builder_history_schedule;window.__bbp_lite_history_schedule_wrapped=!0;window.gamipress_badge_builder_history_schedule=function(){var suppress_until=parseInt(window.__bbp_lite_history_suppress_until||0,10);if(suppress_until&&Date.now()<suppress_until){return} |
| 582 |
return window.__bbp_lite_core_history_schedule.apply(this,arguments)}} |
| 583 |
if(!window.__bbp_lite_history_save_wrapped&&typeof window.gamipress_badge_builder_history_save==='function'){window.__bbp_lite_core_history_save=window.gamipress_badge_builder_history_save;window.__bbp_lite_history_save_wrapped=!0;window.gamipress_badge_builder_history_save=function(){if(typeof window.gamipress_badge_builder_history_applying!=='undefined'&&window.gamipress_badge_builder_history_applying){return} |
| 584 |
if(!window.gamipress_badge_builder_canvas||!Array.isArray(window.gamipress_badge_builder_history)){return window.__bbp_lite_core_history_save.apply(this,arguments)} |
| 585 |
var snapshot=window.gamipress_badge_builder_canvas.toJSON(['data']);var history=window.gamipress_badge_builder_history;var last=history.length?history[history.length-1]:null;if(last&&bbp_lite_history_json_same(last,snapshot)){window.gamipress_badge_builder_history_redo=[];bbp_lite_history_normalize_floor();return} |
| 586 |
history.push(snapshot);window.gamipress_badge_builder_history_redo=[];bbp_lite_history_normalize_floor()}} |
| 587 |
window.gamipress_badge_builder_undo=function(){bbp_lite_hybrid_undo()};window.gamipress_badge_builder_redo=function(){bbp_lite_hybrid_redo()};if(original_history_reset){window.gamipress_badge_builder_history_reset=function(){bbp_lite_touch_history_action_epoch();bbp_lite_clear_history_action_queue();bbp_lite_clear_json_boundary();return original_history_reset.apply(this,arguments)}} |
| 588 |
if(original_process_action){window.gamipress_badge_builder_process_action=function(){bbp_lite_touch_history_action_epoch();bbp_lite_clear_history_action_queue();var ret=original_process_action.apply(this,arguments);setTimeout(function(){bbp_lite_mark_json_boundary()},360);return ret}} |
| 589 |
window.gamipress_badge_builder_process_tool=function(tool){var manager=bbp_lite_get_manager();var tool_name='';if(typeof tool==='string'){tool_name=tool}else if(tool&&tool.name){tool_name=tool.name}else if(tool&&tool.tool){tool_name=tool.tool} |
| 590 |
bbp_lite_group_edit_sync(canvas);if(tool_name==='undo'){bbp_lite_hybrid_undo();return} |
| 591 |
if(tool_name==='redo'){bbp_lite_hybrid_redo();return} |
| 592 |
bbp_lite_touch_history_action_epoch();bbp_lite_clear_history_action_queue();if(!manager||manager.is_restoring){return original_process_tool.apply(this,arguments)} |
| 593 |
var group_edit_state=canvas.__bbp_lite_group_edit_mode||null;var group_edit_group=null;if(group_edit_state&&group_edit_state.group_id){group_edit_group=bbp_lite_group_edit_get_group(canvas,group_edit_state.group_id);if(!group_edit_group){canvas.__bbp_lite_group_edit_mode=null;group_edit_state=null}} |
| 594 |
if(group_edit_state){if(tool_name==='ungroup'){bbp_lite_group_edit_exit(canvas,{keep_active:!0});if(group_edit_group&&typeof canvas.setActiveObject==='function'){try{canvas.setActiveObject(group_edit_group)}catch(e_group_edit_ungroup){} |
| 595 |
if(typeof group_edit_group.setCoords==='function'){group_edit_group.setCoords()}}}else if(tool_name==='group'||tool_name==='duplicate'||tool_name==='delete'){return!1}} |
| 596 |
if(tool_name==='group'||tool_name==='ungroup'||tool_name==='duplicate'||tool_name==='delete'){if(typeof manager.begin_restore==='function'){manager.begin_restore()} |
| 597 |
try{if(tool_name==='group'||tool_name==='ungroup'){var has_pending_history=!!(typeof window.gamipress_badge_builder_history_timer!=='undefined'&&window.gamipress_badge_builder_history_timer);var has_pending_commands=!!(manager&&Array.isArray(manager.undo_stack)&&manager.undo_stack.length>0);if(has_pending_history||has_pending_commands){bbp_lite_history_checkpoint({immediate:!0})}} |
| 598 |
if(typeof manager.clear_stacks==='function'){manager.clear_stacks()} |
| 599 |
if(tool_name==='group'){window.__bbp_lite_restore_group_focus=!0;bbp_lite_safe_group(canvas);bbp_lite_mark_json_boundary();return} |
| 600 |
if(tool_name==='ungroup'){window.__bbp_lite_restore_group_focus=!0;bbp_lite_safe_ungroup(canvas);bbp_lite_mark_json_boundary();return} |
| 601 |
if(tool_name==='duplicate'){var active_for_duplicate=bbp_lite_get_active_raw(canvas);var duplicate_target=null;if(bbp_lite_is_active_selection(active_for_duplicate)){var duplicate_list=bbp_lite_explode_active_selection(canvas,active_for_duplicate);duplicate_target=duplicate_list.length?duplicate_list[duplicate_list.length-1]:null;if(!duplicate_target){duplicate_target=bbp_lite_get_active_object(canvas)}}else{duplicate_target=bbp_lite_get_active_object(canvas)} |
| 602 |
if(duplicate_target&&typeof original_process_tool==='function'){var prev_active_obj=window.gamipress_badge_builder_active_obj;var prev_active_index=window.gamipress_badge_builder_active_obj_index;var duplicate_index=-1;if(typeof canvas.getObjects==='function'){duplicate_index=canvas.getObjects().indexOf(duplicate_target)} |
| 603 |
window.gamipress_badge_builder_active_obj=duplicate_target;window.gamipress_badge_builder_active_obj_index=duplicate_index;if(typeof canvas.setActiveObject==='function'){try{canvas.setActiveObject(duplicate_target)}catch(e_dup_set_active){}} |
| 604 |
try{var duplicate_ret=original_process_tool.call(this,tool_name);setTimeout(function(){bbp_lite_mark_json_boundary()},360);return duplicate_ret}finally{window.gamipress_badge_builder_active_obj=prev_active_obj;window.gamipress_badge_builder_active_obj_index=prev_active_index}}} |
| 605 |
if(tool_name==='delete'){var delete_ret=original_process_tool.apply(this,arguments);setTimeout(function(){bbp_lite_mark_json_boundary()},360);return delete_ret} |
| 606 |
window.__bbp_lite_restore_group_focus=!1;return original_process_tool.apply(this,arguments)}finally{if(typeof manager.end_restore==='function'){manager.end_restore()} |
| 607 |
if(typeof manager.clear_stacks==='function'){manager.clear_stacks()}}} |
| 608 |
bbp_lite_ensure_uid(canvas);var active_raw_before=bbp_lite_get_active_raw(canvas);var active_is_multi=bbp_lite_is_active_selection(active_raw_before);var active_before=active_is_multi?null:bbp_lite_get_active_object(canvas);if(bbp_lite_is_arrange_tool(tool_name)&&!active_is_multi&&typeof BBP_Arrange_Command!=='undefined'){var before_order=bbp_lite_order_snapshot(canvas);var ret_arrange=original_process_tool.apply(this,arguments);var after_order=bbp_lite_order_snapshot(canvas);if(before_order.join('|')!==after_order.join('|')){manager.execute(new BBP_Arrange_Command({canvas:canvas,label:tool_name,before_order:before_order,after_order:after_order}))} |
| 609 |
return ret_arrange} |
| 610 |
if(bbp_lite_is_text_style_tool(tool_name)&&typeof BBP_Props_Command!=='undefined'&&window.bbp_ui_props_adapter&&typeof window.bbp_ui_props_adapter._capture_props==='function'){var text_objects=bbp_lite_capture_text_tool_objects(active_raw_before);if(text_objects.length){var before_text_props=window.bbp_ui_props_adapter._capture_props(text_objects);var ret_text_tool=original_process_tool.apply(this,arguments);var after_text_props=window.bbp_ui_props_adapter._capture_props(text_objects);if(!window.bbp_ui_props_adapter._same_props||!window.bbp_ui_props_adapter._same_props(before_text_props,after_text_props)){if(!bbp_lite_try_merge_props_command(manager,text_objects,after_text_props,tool_name,tool_name)){var text_props_command=new BBP_Props_Command(text_objects,before_text_props,after_text_props,{label:tool_name});text_props_command.__bbp_props_batch_ts=Date.now();text_props_command.__bbp_props_batch_field=tool_name;manager.execute(text_props_command)}} |
| 611 |
return ret_text_tool}} |
| 612 |
if(bbp_lite_is_transform_tool(tool_name)&&!active_is_multi&&typeof BBP_Transform_Command!=='undefined'){var before_transform=bbp_lite_capture_transform(active_before);var ret_transform=original_process_tool.apply(this,arguments);var active_after=bbp_lite_get_active_object(canvas);if(active_before&&active_before.bbp_id&&active_after&&!active_after.bbp_id){active_after.bbp_id=active_before.bbp_id} |
| 613 |
var after_transform=bbp_lite_capture_transform(active_after);if(before_transform&&after_transform&&!bbp_lite_is_same_transform(before_transform,after_transform)){manager.execute(new BBP_Transform_Command({canvas:canvas,object_id:after_transform.bbp_id,before:before_transform,after:after_transform}))} |
| 614 |
return ret_transform} |
| 615 |
return original_process_tool.apply(this,arguments)};window.gamipress_badge_builder_selection_form_change=function(field){var manager=bbp_lite_get_manager();if(!manager||manager.is_restoring||manager._undo_redo_lock){return original_selection_change.apply(this,arguments)} |
| 616 |
if(window.bbp_selection_form_syncing===!0||window.bbp_ms_updating_form===!0){return original_selection_change.apply(this,arguments)} |
| 617 |
var $field=$(field);if(!$field.length){return original_selection_change.apply(this,arguments)} |
| 618 |
bbp_lite_touch_history_action_epoch();bbp_lite_clear_history_action_queue();var id=$field.attr('id')||'';var name=$field.attr('name')||'';var group_edit_state=canvas.__bbp_lite_group_edit_mode||null;if(group_edit_state&&id==='icon'){return!1} |
| 619 |
if(id==='icon'){bbp_lite_history_checkpoint({immediate:!0});if(manager&&typeof manager.clear_stacks==='function'){manager.clear_stacks()} |
| 620 |
var ret_icon_change=original_selection_change.apply(this,arguments);setTimeout(function(){bbp_lite_mark_json_boundary();bbp_lite_history_checkpoint({immediate:!0});if(manager&&typeof manager.clear_stacks==='function'){manager.clear_stacks()}},420);return ret_icon_change} |
| 621 |
if(['fill','fill_2','fill_color_type','gradient_type','angle','radius','stroke','stroke_2','stroke_color_type','stroke_gradient_type','stroke_angle','stroke_radius','stroke_width','stroke_type','stroke_linejoin','font_family','font_size','line_height','letter_spacing'].indexOf(id)===-1){return original_selection_change.apply(this,arguments)} |
| 622 |
var active=(canvas&&typeof canvas.getActiveObject==='function')?canvas.getActiveObject():null;if(!active||bbp_lite_is_active_selection(active)){return original_selection_change.apply(this,arguments)} |
| 623 |
var objects=[active];var before=(window.bbp_ui_props_adapter&&typeof window.bbp_ui_props_adapter._capture_props==='function')?window.bbp_ui_props_adapter._capture_props(objects):null;var ret=original_selection_change.apply(this,arguments);if(!before||!window.bbp_ui_props_adapter||typeof window.bbp_ui_props_adapter._capture_props!=='function'){return ret} |
| 624 |
var after=window.bbp_ui_props_adapter._capture_props(objects);if(typeof window.bbp_ui_props_adapter._same_props==='function'&&window.bbp_ui_props_adapter._same_props(before,after)){return ret} |
| 625 |
if(typeof BBP_Props_Command!=='undefined'){var props_label=(id||name||'props');if(!bbp_lite_try_merge_props_command(manager,objects,after,props_label,id)){var props_command=new BBP_Props_Command(objects,before,after,{label:props_label});props_command.__bbp_props_batch_ts=Date.now();props_command.__bbp_props_batch_field=id||'';manager.execute(props_command)}} |
| 626 |
return ret};window.__bbp_lite_wrapped=!0;return!0} |
| 627 |
function bbp_lite_bootstrap(){bbp_lite_register_gradient_color_provider();if(bbp_lite_has_pro_bridge()){window.__bbp_lite_disabled_due_pro=!0;return!0} |
| 628 |
var canvas=bbp_lite_get_canvas();if(!canvas){return!1} |
| 629 |
var manager=bbp_lite_ensure_manager();if(!manager){return!1} |
| 630 |
bbp_lite_ensure_adapters(canvas,manager);if(typeof canvas.getObjects==='function'){canvas.getObjects().forEach(function(obj){bbp_lite_prepare_group_tree(obj,!1)})} |
| 631 |
if(typeof canvas.on==='function'&&!canvas.__bbp_lite_group_object_added_bound){canvas.__bbp_lite_group_object_added_bound=!0;canvas.on('object:added',function(event){var added=(event&&event.target)?event.target:null;bbp_lite_prepare_group_tree(added,!1)})} |
| 632 |
bbp_lite_bind_group_edit_hooks(canvas);bbp_lite_bind_group_dblclick_edit(canvas);bbp_lite_bind_keyboard_shortcut_contract(canvas);bbp_lite_bind_active_selection_single_click_isolation(canvas);var wrapped=bbp_lite_wrap_core(canvas);if(wrapped){bbp_lite_wrap_contract_dispatchers(canvas);bbp_lite_emit_editor_ready(canvas,manager)} |
| 633 |
return wrapped} |
| 634 |
window.bbp_lite_wrap_contract_dispatchers=bbp_lite_wrap_contract_dispatchers;window.bbp_lite_emit_editor_ready=bbp_lite_emit_editor_ready;window.bbp_lite_get_bridge_capabilities=bbp_lite_get_capabilities;$(document).ready(function(){var tries=0;var timer=setInterval(function(){tries++;var ok=bbp_lite_bootstrap();if(ok||tries>100){clearInterval(timer)}},50);setTimeout(bbp_lite_bootstrap,0);setTimeout(bbp_lite_bootstrap,100);setTimeout(bbp_lite_bootstrap,300)})})(jQuery);(function($){function bbp_ms_has_pro_bridge(){if(window.BBP_FORCE_CORE_BRIDGE===!0){return!1} |
| 635 |
if(typeof window.bbp_editor_bootstrapped!=='undefined'){return!0} |
| 636 |
if(typeof window.gamipress_badge_builder_pro_runtime!=='undefined'){return!0} |
| 637 |
return!1} |
| 638 |
function bbp_ms_get_canvas(){if(typeof window.gamipress_badge_builder_canvas!=='undefined'&&window.gamipress_badge_builder_canvas){return window.gamipress_badge_builder_canvas} |
| 639 |
if(typeof window.GamiPress_Badge_Builder!=='undefined'&&window.GamiPress_Badge_Builder&&window.GamiPress_Badge_Builder.canvas){return window.GamiPress_Badge_Builder.canvas} |
| 640 |
return null} |
| 641 |
function bbp_ms_get_gradient_color_provider(){var provider=null;if(typeof window.gamipress_badge_builder_get_gradient_color_provider==='function'){try{provider=window.gamipress_badge_builder_get_gradient_color_provider()}catch(e_provider){provider=null} |
| 642 |
if(typeof provider==='function'){return provider}} |
| 643 |
if(typeof window.gamipress_badge_builder_get_gradient_color==='function'){return window.gamipress_badge_builder_get_gradient_color} |
| 644 |
if(typeof window.gamipress_badge_builder_pro_get_gradient_color==='function'){return window.gamipress_badge_builder_pro_get_gradient_color} |
| 645 |
return null} |
| 646 |
function bbp_ms_enforce_selection_keys(canvas){if(!canvas){return} |
| 647 |
canvas.selection=!0;canvas.selectionKey=['ctrlKey','metaKey'];canvas.altSelectionKey='shiftKey'} |
| 648 |
function bbp_ms_is_artboard(obj){if(!obj){return!1} |
| 649 |
return(obj.data==='artboard'||(obj.data&&obj.data.role==='artboard'))} |
| 650 |
function bbp_ms_is_text(obj){return!!(obj&&obj.textAlign!==undefined)} |
| 651 |
function bbp_ms_is_active_selection(obj){return(obj&&obj.type&&String(obj.type).toLowerCase()==='activeselection')} |
| 652 |
function bbp_ms_clear_single_click_candidate(canvas){if(canvas){canvas.__bbp_ms_single_click_candidate=null}} |
| 653 |
function bbp_ms_has_selection_modifier(dom_event){if(!dom_event){return!1} |
| 654 |
return!!(dom_event.ctrlKey||dom_event.metaKey||dom_event.shiftKey||dom_event.altKey)} |
| 655 |
function bbp_ms_pointer_from_event(canvas,event){var dom_event=(event&&event.e)?event.e:null;var x=null;var y=null;var rect=null;var pointer=null;if(!canvas||!dom_event){return null} |
| 656 |
if(typeof canvas.getPointer==='function'){try{pointer=canvas.getPointer(dom_event);if(pointer&&Number.isFinite(Number(pointer.x))&&Number.isFinite(Number(pointer.y))){return{x:Number(pointer.x),y:Number(pointer.y)}}}catch(e0){}} |
| 657 |
x=Number(dom_event.offsetX);y=Number(dom_event.offsetY);if(Number.isFinite(x)&&Number.isFinite(y)){return{x:x,y:y}} |
| 658 |
x=Number(dom_event.layerX);y=Number(dom_event.layerY);if(Number.isFinite(x)&&Number.isFinite(y)){return{x:x,y:y}} |
| 659 |
if(canvas.upperCanvasEl&&typeof canvas.upperCanvasEl.getBoundingClientRect==='function'){rect=canvas.upperCanvasEl.getBoundingClientRect();x=Number(dom_event.clientX)-Number(rect.left||0);y=Number(dom_event.clientY)-Number(rect.top||0);if(Number.isFinite(x)&&Number.isFinite(y)){return{x:x,y:y}}} |
| 660 |
return null} |
| 661 |
function bbp_ms_pick_active_member_from_pointer(active,event_target,sub_targets,pointer){if(!active||typeof active.getObjects!=='function'){return null} |
| 662 |
var members=active.getObjects()||[];var i;var candidate=null;var candidates=[];if(event_target&&event_target!==active){candidates.push(event_target)} |
| 663 |
if(Array.isArray(sub_targets)){sub_targets.forEach(function(obj){if(obj&&candidates.indexOf(obj)===-1){candidates.push(obj)}})} |
| 664 |
for(i=0;i<candidates.length;i++){candidate=candidates[i];if(members.indexOf(candidate)!==-1){return candidate}} |
| 665 |
if(!pointer){return null} |
| 666 |
var point=pointer;if(window.fabric&&typeof window.fabric.Point==='function'){point=new window.fabric.Point(pointer.x,pointer.y)} |
| 667 |
for(i=members.length-1;i>=0;i--){var obj=members[i];var bb=null;if(!obj||bbp_ms_is_artboard(obj)){continue} |
| 668 |
try{if(typeof obj.containsPoint==='function'&&obj.containsPoint(point)){return obj}}catch(e0){} |
| 669 |
try{bb=obj.getBoundingRect(!0,!0)}catch(e1){try{bb=obj.getBoundingRect()}catch(e2){bb=null}} |
| 670 |
if(!bb){continue} |
| 671 |
if(pointer.x>=Number(bb.left||0)&&pointer.x<=(Number(bb.left||0)+Number(bb.width||0))&&pointer.y>=Number(bb.top||0)&&pointer.y<=(Number(bb.top||0)+Number(bb.height||0))){return obj}} |
| 672 |
return null} |
| 673 |
function bbp_ms_mark_single_click_candidate(canvas,event){if(!canvas){return} |
| 674 |
var active=null;var dom_event=(event&&event.e)?event.e:null;var pointer=null;var target=null;try{active=(typeof canvas.getActiveObject==='function')?canvas.getActiveObject():null}catch(e0){active=null} |
| 675 |
if(!active||!bbp_ms_is_active_selection(active)){bbp_ms_clear_single_click_candidate(canvas);return} |
| 676 |
if(bbp_ms_has_selection_modifier(dom_event)){bbp_ms_clear_single_click_candidate(canvas);return} |
| 677 |
pointer=bbp_ms_pointer_from_event(canvas,event);target=bbp_ms_pick_active_member_from_pointer(active,event?event.target:null,event?event.subTargets:null,pointer);if(!target){bbp_ms_clear_single_click_candidate(canvas);return} |
| 678 |
canvas.__bbp_ms_single_click_candidate={target:target,pointer:pointer,ts:Date.now()}} |
| 679 |
function bbp_ms_track_single_click_motion(canvas,event){if(!canvas||!canvas.__bbp_ms_single_click_candidate){return} |
| 680 |
var pointer=bbp_ms_pointer_from_event(canvas,event);var candidate=canvas.__bbp_ms_single_click_candidate;if(!pointer||!candidate.pointer){return} |
| 681 |
var dx=pointer.x-candidate.pointer.x;var dy=pointer.y-candidate.pointer.y;if((dx*dx)+(dy*dy)>25){bbp_ms_clear_single_click_candidate(canvas)}} |
| 682 |
function bbp_ms_isolate_single_click_candidate(canvas,event){if(!canvas){return} |
| 683 |
var candidate=canvas.__bbp_ms_single_click_candidate||null;var dom_event=(event&&event.e)?event.e:null;var pointer=bbp_ms_pointer_from_event(canvas,event);var active_for_fallback=null;var fallback_target=null;if(bbp_ms_has_selection_modifier(dom_event)){bbp_ms_clear_single_click_candidate(canvas);return} |
| 684 |
if((!candidate||!candidate.target)&&event&&event.transform&&event.transform.actionPerformed){bbp_ms_clear_single_click_candidate(canvas);return} |
| 685 |
if(!candidate||!candidate.target){try{active_for_fallback=(typeof canvas.getActiveObject==='function')?canvas.getActiveObject():null}catch(e0){active_for_fallback=null} |
| 686 |
if(active_for_fallback&&bbp_ms_is_active_selection(active_for_fallback)){fallback_target=bbp_ms_pick_active_member_from_pointer(active_for_fallback,event?event.target:null,event?event.subTargets:null,pointer)} |
| 687 |
if(!fallback_target){bbp_ms_clear_single_click_candidate(canvas);return} |
| 688 |
candidate={target:fallback_target,pointer:pointer,ts:Date.now()}} |
| 689 |
bbp_ms_clear_single_click_candidate(canvas);if(!candidate||!candidate.target){return} |
| 690 |
if(pointer&&candidate.pointer){var dx=pointer.x-candidate.pointer.x;var dy=pointer.y-candidate.pointer.y;if((dx*dx)+(dy*dy)>25){return}} |
| 691 |
setTimeout(function(){var active_now=null;var members=[];try{active_now=(typeof canvas.getActiveObject==='function')?canvas.getActiveObject():null}catch(e0){active_now=null} |
| 692 |
if(active_now&&!bbp_ms_is_active_selection(active_now)){if(active_now===candidate.target){return} |
| 693 |
return} |
| 694 |
if(!active_now||!bbp_ms_is_active_selection(active_now)||typeof active_now.getObjects!=='function'){return} |
| 695 |
members=active_now.getObjects()||[];if(members.indexOf(candidate.target)===-1){return} |
| 696 |
if(typeof canvas.discardActiveObject==='function'){try{canvas.discardActiveObject()}catch(e1){}} |
| 697 |
if(typeof canvas.setActiveObject==='function'){try{canvas.setActiveObject(candidate.target)}catch(e2){return}} |
| 698 |
if(typeof candidate.target.setCoords==='function'){candidate.target.setCoords()} |
| 699 |
if(typeof canvas.requestRenderAll==='function'){canvas.requestRenderAll()}else if(typeof canvas.renderAll==='function'){canvas.renderAll()}},0)} |
| 700 |
function bbp_ms_explode_active_selection(canvas,active){if(!canvas||!active||!bbp_ms_is_active_selection(active)){return} |
| 701 |
var list=[];if(typeof active.getObjects==='function'){list=active.getObjects()||[]} |
| 702 |
try{if(typeof active.removeAll==='function'){active.removeAll()}else if(typeof active._exitGroup==='function'&&list&&list.length){list.slice().forEach(function(obj){if(obj){active._exitGroup(obj,!1)}})}}catch(e1){} |
| 703 |
try{if(typeof canvas.discardActiveObject==='function'){canvas.discardActiveObject()}}catch(e2){} |
| 704 |
if(list&&list.length){list.forEach(function(obj){if(!obj){return} |
| 705 |
var parent=obj.group||null;var guard=0;while(parent&&guard<4){if(typeof parent._exitGroup==='function'){try{parent._exitGroup(obj,!1)}catch(e3){break}}else if(typeof parent.remove==='function'){try{parent.remove(obj)}catch(e4){break}}else{break} |
| 706 |
guard++;parent=obj.group||null} |
| 707 |
if(typeof canvas.getObjects==='function'&&canvas.getObjects().indexOf(obj)===-1){try{canvas.add(obj)}catch(e5){}} |
| 708 |
if(obj&&typeof obj.setCoords==='function'){obj.setCoords()}})}} |
| 709 |
function bbp_ms_reselect_objects(canvas,objects){if(!canvas||!objects||!objects.length||!window.fabric||!window.fabric.ActiveSelection){return} |
| 710 |
try{var sel=new window.fabric.ActiveSelection(objects,{canvas:canvas});if(typeof canvas.setActiveObject==='function'){canvas.setActiveObject(sel)}}catch(e){}} |
| 711 |
function bbp_ms_selection_objects(active){if(!active||!active.type){return[]} |
| 712 |
if(bbp_ms_is_active_selection(active)&&typeof active.getObjects==='function'){return active.getObjects().filter(function(o){return o&&!bbp_ms_is_artboard(o)})} |
| 713 |
if(!bbp_ms_is_artboard(active)){return[active]} |
| 714 |
return[]} |
| 715 |
function bbp_ms_key(obj){if(!obj){return null} |
| 716 |
return(obj.bbp_id)?obj.bbp_id:(obj.bbp_uid?obj.bbp_uid:null)} |
| 717 |
function bbp_ms_ensure_uid(canvas){if(!canvas||typeof canvas.getObjects!=='function'){return} |
| 718 |
if(typeof window.bbp_uid_counter==='undefined'){window.bbp_uid_counter=1} |
| 719 |
canvas.getObjects().forEach(function(obj){if(!obj){return} |
| 720 |
if(obj.bbp_id||obj.bbp_uid){return} |
| 721 |
obj.bbp_uid='bbp_uid_'+(window.bbp_uid_counter++)})} |
| 722 |
function bbp_ms_order_snapshot(canvas){if(!canvas||typeof canvas.getObjects!=='function'){return[]} |
| 723 |
bbp_ms_ensure_uid(canvas);return canvas.getObjects().map(function(o){return bbp_ms_key(o)}).filter(function(key){return!!key})} |
| 724 |
function bbp_ms_is_gradient_field(field_id){if(!field_id){return!1} |
| 725 |
return(['fill','fill_2','fill_color_type','gradient_type','angle','radius','stroke','stroke_2','stroke_color_type','stroke_gradient_type','stroke_angle','stroke_radius','stroke_width','stroke_type','stroke_linejoin'].indexOf(field_id)!==-1)} |
| 726 |
function bbp_ms_is_sync_change_field(field_id){if(!field_id){return!1} |
| 727 |
return(['icon','fill','fill_2','fill_color_type','gradient_type','angle','radius','stroke','stroke_2','stroke_width','stroke_type','stroke_linejoin','stroke_color_type','stroke_gradient_type','stroke_angle','stroke_radius','font_family','font_size','line_height','letter_spacing'].indexOf(field_id)!==-1)} |
| 728 |
function bbp_ms_start_programmatic_change_guard(ms){var duration=parseInt(ms,10);if(isNaN(duration)||duration<0){duration=0} |
| 729 |
window.__bbp_ms_programmatic_change_until=Date.now()+duration} |
| 730 |
function bbp_ms_is_programmatic_change_guard_active(){var until=parseInt(window.__bbp_ms_programmatic_change_until||0,10);if(isNaN(until)){return!1} |
| 731 |
return(until>Date.now())} |
| 732 |
function bbp_ms_clone_state(value){if(typeof BBP_Utils!=='undefined'&&BBP_Utils&&typeof BBP_Utils.clone==='function'){return BBP_Utils.clone(value)} |
| 733 |
try{return JSON.parse(JSON.stringify(value))}catch(e){return value}} |
| 734 |
function bbp_ms_same_objects(a,b){if(!Array.isArray(a)||!Array.isArray(b)){return!1} |
| 735 |
if(a.length!==b.length){return!1} |
| 736 |
for(var i=0;i<a.length;i++){if(a[i]!==b[i]){return!1}} |
| 737 |
return!0} |
| 738 |
function bbp_ms_try_merge_props_command(manager,objects,after,label,field_id){if(!manager||!bbp_ms_is_gradient_field(field_id)){return!1} |
| 739 |
if(!Array.isArray(manager.undo_stack)||!Array.isArray(manager.redo_stack)){return!1} |
| 740 |
if(manager.redo_stack.length>0||manager.undo_stack.length===0){return!1} |
| 741 |
var last=manager.undo_stack[manager.undo_stack.length-1];if(!last||last.type!=='props'||!bbp_ms_same_objects(last.objects,objects)){return!1} |
| 742 |
var now=Date.now();var last_ts=parseInt(last.__bbp_props_batch_ts||0,10);if(!last_ts||(now-last_ts)>500){return!1} |
| 743 |
last.after=bbp_ms_clone_state(after);last.label=label||last.label;last.__bbp_props_batch_ts=now;last.__bbp_props_batch_field=field_id||'';if(typeof manager._schedule_focus_sync==='function'){manager._schedule_focus_sync()} |
| 744 |
return!0} |
| 745 |
function bbp_ms_reorder_block(canvas,objects,dir){if(!canvas||!Array.isArray(objects)||objects.length===0){return} |
| 746 |
if(!canvas._objects||!Array.isArray(canvas._objects)){return} |
| 747 |
bbp_ms_ensure_uid(canvas);var selected={};objects.forEach(function(o){var key=bbp_ms_key(o);if(key){selected[key]=!0}});var current=canvas._objects.slice();var picked=[];var rest=[];current.forEach(function(o){var key=bbp_ms_key(o);if(key&&selected[key]){picked.push(o)}else{rest.push(o)}});canvas._objects=(dir==='front')?rest.concat(picked):picked.concat(rest);if(typeof canvas.requestRenderAll==='function'){canvas.requestRenderAll()}else if(typeof canvas.renderAll==='function'){canvas.renderAll()}} |
| 748 |
function bbp_ms_bbox(objects){var minX=null,minY=null,maxX=null,maxY=null;objects.forEach(function(o){if(!o||typeof o.getBoundingRect!=='function'){return} |
| 749 |
var r=o.getBoundingRect(!0,!0);if(!r){return} |
| 750 |
minX=(minX===null?r.left:Math.min(minX,r.left));minY=(minY===null?r.top:Math.min(minY,r.top));maxX=(maxX===null?(r.left+r.width):Math.max(maxX,r.left+r.width));maxY=(maxY===null?(r.top+r.height):Math.max(maxY,r.top+r.height))});if(minX===null){return null} |
| 751 |
return{left:minX,top:minY,width:(maxX-minX),height:(maxY-minY),cx:(minX+(maxX-minX)/2),cy:(minY+(maxY-minY)/2)}} |
| 752 |
function bbp_ms_transform_capture(obj){if(window.bbp_fabric_transform_adapter&&typeof window.bbp_fabric_transform_adapter.capture==='function'){return window.bbp_fabric_transform_adapter.capture(obj)} |
| 753 |
return null} |
| 754 |
function bbp_ms_apply_rotate(obj,delta){if(typeof window.gamipress_badge_builder_rotate==='function'){window.gamipress_badge_builder_rotate(obj,delta);return} |
| 755 |
obj.set('angle',((obj.angle||0)+delta))} |
| 756 |
function bbp_ms_apply_scale(obj,factor){if(!obj||typeof obj.set!=='function'){return} |
| 757 |
var sx=(obj.scaleX||1)*factor;var sy=(obj.scaleY||1)*factor;if(sx<0.01){sx=0.01} |
| 758 |
if(sy<0.01){sy=0.01} |
| 759 |
obj.set({scaleX:sx,scaleY:sy})} |
| 760 |
function bbp_ms_apply_scale_block(canvas,objects,factor){var box=bbp_ms_bbox(objects);if(!box){return} |
| 761 |
var cx=box.cx;var cy=box.cy;objects.forEach(function(o){if(!o){return} |
| 762 |
var oc=(typeof o.getCenterPoint==='function'?o.getCenterPoint():{x:(o.left||0),y:(o.top||0)});var relX=oc.x-cx;var relY=oc.y-cy;bbp_ms_apply_scale(o,factor);if(typeof o.setPositionByOrigin==='function'){o.setPositionByOrigin({x:(cx+relX*factor),y:(cy+relY*factor)},'center','center')}else{o.left=(cx+relX*factor);o.top=(cy+relY*factor)} |
| 763 |
if(typeof o.setCoords==='function'){o.setCoords()}})} |
| 764 |
function bbp_ms_apply_align_block(canvas,objects,tool){if(!canvas||!Array.isArray(objects)||objects.length===0){return} |
| 765 |
objects.forEach(function(o){if(!o){return} |
| 766 |
var dx=0;var dy=0;var bb=(typeof o.getBoundingRect==='function')?o.getBoundingRect(!0,!0):null;var has_bb=!!(bb&&typeof bb.left==='number'&&isFinite(bb.left)&&typeof bb.top==='number'&&isFinite(bb.top)&&typeof bb.width==='number'&&isFinite(bb.width)&&typeof bb.height==='number'&&isFinite(bb.height));if(has_bb){switch(tool){case 'align-horizontal-left':dx=-bb.left;break;case 'align-horizontal-center':dx=(canvas.width/2)-(bb.left+bb.width/2);break;case 'align-horizontal-right':dx=canvas.width-(bb.left+bb.width);break;case 'align-vertical-top':dy=-bb.top;break;case 'align-vertical-center':dy=(canvas.height/2)-(bb.top+bb.height/2);break;case 'align-vertical-bottom':dy=canvas.height-(bb.top+bb.height);break}}else{switch(tool){case 'align-horizontal-center':dx=(canvas.width/2)-(o.left||0);break;case 'align-vertical-center':dy=(canvas.height/2)-(o.top||0);break}} |
| 767 |
o.left=(o.left||0)+dx;o.top=(o.top||0)+dy;if(typeof o.setCoords==='function'){o.setCoords()}})} |
| 768 |
function bbp_ms_apply_fit(canvas,objects){var box=bbp_ms_bbox(objects);if(!box){return} |
| 769 |
var m=0;var usableW=Math.max(1,canvas.width-m);var usableH=Math.max(1,canvas.height-m);var factor=Math.min(usableW/Math.max(1,box.width),usableH/Math.max(1,box.height));if(!isFinite(factor)||factor<=0){return} |
| 770 |
var cx=box.cx;var cy=box.cy;objects.forEach(function(o){if(!o){return} |
| 771 |
var oc=(typeof o.getCenterPoint==='function'?o.getCenterPoint():{x:(o.left||0),y:(o.top||0)});var relX=oc.x-cx;var relY=oc.y-cy;o.set({scaleX:(o.scaleX||1)*factor,scaleY:(o.scaleY||1)*factor});if(typeof o.setPositionByOrigin==='function'){o.setPositionByOrigin({x:(canvas.width/2+relX*factor),y:(canvas.height/2+relY*factor)},o.originX||'center',o.originY||'center')}else{o.left=(canvas.width/2+relX*factor);o.top=(canvas.height/2+relY*factor)} |
| 772 |
if(typeof o.setCoords==='function'){o.setCoords()}})} |
| 773 |
function bbp_ms_apply_align(canvas,objects,tool){objects.forEach(function(o){if(!o){return} |
| 774 |
switch(tool){case 'align-horizontal-left':o.left=o.getScaledWidth()/2;break;case 'align-horizontal-center':o.left=canvas.width/2;break;case 'align-horizontal-right':o.left=canvas.width-o.getScaledWidth()/2;break;case 'align-vertical-top':o.top=o.getScaledHeight()/2;break;case 'align-vertical-center':o.top=canvas.height/2;break;case 'align-vertical-bottom':o.top=canvas.height-o.getScaledHeight()/2;break} |
| 775 |
if(typeof o.setCoords==='function'){o.setCoords()}})} |
| 776 |
function bbp_ms_apply_transform_tool(canvas,objects,tool_name){var scale_step=0.1;switch(tool_name){case 'scale-up':bbp_ms_apply_scale_block(canvas,objects,1.0+scale_step);break;case 'scale-down':bbp_ms_apply_scale_block(canvas,objects,1.0-scale_step);break;case 'rotate-left':objects.forEach(function(o){bbp_ms_apply_rotate(o,-5)});break;case 'rotate-right':objects.forEach(function(o){bbp_ms_apply_rotate(o,5)});break;case 'flip-horizontal':objects.forEach(function(o){o.toggle&&o.toggle('flipX')});break;case 'flip-vertical':objects.forEach(function(o){o.toggle&&o.toggle('flipY')});break;case 'fit':bbp_ms_apply_fit(canvas,objects);break;case 'align-horizontal-left':case 'align-horizontal-center':case 'align-horizontal-right':case 'align-vertical-top':case 'align-vertical-center':case 'align-vertical-bottom':bbp_ms_apply_align_block(canvas,objects,tool_name);break} |
| 777 |
objects.forEach(function(o){if(o&&typeof o.setCoords==='function'){o.setCoords()}})} |
| 778 |
function bbp_ms_apply_icon_change(canvas,active,objects,icon_id){if(!canvas||!icon_id){return} |
| 779 |
if(!window.fabric||typeof window.fabric.loadSVGFromString!=='function'){return} |
| 780 |
if(typeof window.gamipress_badge_builder_get_icon_svg!=='function'){return} |
| 781 |
var targets=(Array.isArray(objects)?objects:[]).filter(function(o){return o&&!bbp_ms_is_text(o)});if(targets.length===0){return} |
| 782 |
var ordered=targets.map(function(o){var idx=-1;if(typeof canvas.getObjects==='function'){idx=canvas.getObjects().indexOf(o)} |
| 783 |
return{obj:o,index:idx}}).filter(function(entry){return entry.index>=0});if(ordered.length===0){return} |
| 784 |
ordered.sort(function(a,b){return b.index-a.index});if(active&&bbp_ms_is_active_selection(active)){bbp_ms_explode_active_selection(canvas,active)} |
| 785 |
var svg=window.gamipress_badge_builder_get_icon_svg(icon_id);if(!svg){return} |
| 786 |
try{window.fabric.loadSVGFromString(svg).then(function(result){var svg_objects=result&&result.objects?result.objects:null;if(!svg_objects||!svg_objects.length){return} |
| 787 |
var base=window.fabric.util.groupSVGElements(svg_objects);if(!base){return} |
| 788 |
var clone_promises=ordered.map(function(entry){return base.clone().then(function(clone){var src=entry.obj;if(!src||!clone){return null} |
| 789 |
clone.set({id:icon_id,left:src.left,top:src.top,fill:src.fill,strokeWidth:src.strokeWidth,strokeUniform:!0,strokeLineJoin:src.strokeLineJoin,stroke:src.stroke});if(typeof window.gamipress_badge_builder_duplicate_object_properties==='function'){window.gamipress_badge_builder_duplicate_object_properties(clone,src)} |
| 790 |
if(base.height>base.width){clone.scaleToHeight(src.getScaledHeight()-src.strokeWidth)}else{clone.scaleToWidth(src.getScaledWidth()-src.strokeWidth)} |
| 791 |
if(typeof canvas.add==='function'){canvas.add(clone);if(typeof canvas.moveTo==='function'){canvas.moveTo(clone,entry.index)}} |
| 792 |
if(typeof canvas.fire==='function'){canvas.fire('object:modified',{target:clone})} |
| 793 |
if(typeof canvas.remove==='function'){canvas.remove(src);if(typeof canvas.fire==='function'){canvas.fire('object:removed',{target:src})}} |
| 794 |
if(typeof clone.setCoords==='function'){clone.setCoords()} |
| 795 |
return clone})});Promise.all(clone_promises).then(function(clones){var new_objects=(clones||[]).filter(function(c){return!!c});if(new_objects.length){bbp_ms_reselect_objects(canvas,new_objects)} |
| 796 |
if(typeof canvas.requestRenderAll==='function'){canvas.requestRenderAll()}else if(typeof canvas.renderAll==='function'){canvas.renderAll()}})})}catch(e){}} |
| 797 |
function bbp_ms_apply_color_change(canvas,active,objects,form,field_id){if(!canvas||!objects||objects.length===0){return} |
| 798 |
if(!form||!form.length){form=$('.gamipress-badge-builder-selection-options')} |
| 799 |
if(!form||!form.length){return} |
| 800 |
if(typeof window.gamipress_badge_builder_parse_color!=='function'){return} |
| 801 |
var is_fill=(field_id==='fill'||field_id==='fill_2'||field_id==='fill_color_type'||field_id==='gradient_type'||field_id==='angle'||field_id==='radius');var is_stroke=(field_id==='stroke'||field_id==='stroke_2'||field_id==='stroke_color_type'||field_id==='stroke_gradient_type'||field_id==='stroke_angle'||field_id==='stroke_radius'||field_id==='stroke_width'||field_id==='stroke_type'||field_id==='stroke_linejoin');if(!is_fill&&!is_stroke){return} |
| 802 |
var before=window.bbp_ui_props_adapter?window.bbp_ui_props_adapter._capture_props(objects):null;var reselect=!1;if(active&&bbp_ms_is_active_selection(active)){bbp_ms_explode_active_selection(canvas,active);reselect=!0} |
| 803 |
objects.forEach(function(obj){if(!obj){return} |
| 804 |
var gradient_provider=bbp_ms_get_gradient_color_provider();if(is_fill){var fill_type=form.find('#fill_color_type').val();var fill_1=form.find('#fill').val();if(fill_type==='single'){obj.set('fill',window.gamipress_badge_builder_parse_color(fill_1))}else if(gradient_provider){var fill_2=form.find('#fill_2').val();var gradient_type=form.find('#gradient_type').val();var angle=form.find('#angle').val();var radius=form.find('#radius').val();var gradient=gradient_provider(obj,fill_1,fill_2,gradient_type,angle,radius);obj.set('fill',gradient.fill);obj.set('gradientAngle',gradient.angle);obj.set('gradientRadius',gradient.radius)}} |
| 805 |
if(is_stroke){if(field_id==='stroke_width'){var stroke_width=parseInt(form.find('#stroke_width').val(),10);if(isNaN(stroke_width)){stroke_width=0} |
| 806 |
obj.set('strokeWidth',stroke_width)}else if(field_id==='stroke_type'||field_id==='stroke_linejoin'){var stroke_join=form.find('#stroke_type').val();if(typeof stroke_join==='undefined'||stroke_join===null){stroke_join=form.find('#stroke_linejoin').val()} |
| 807 |
obj.set('strokeLineJoin',stroke_join)} |
| 808 |
var stroke_type=form.find('#stroke_color_type').val();var stroke_1=form.find('#stroke').val();if(stroke_type==='single'){obj.set('stroke',window.gamipress_badge_builder_parse_color(stroke_1))}else if(gradient_provider){var stroke_2=form.find('#stroke_2').val();var stroke_gradient_type=form.find('#stroke_gradient_type').val();var stroke_angle=form.find('#stroke_angle').val();var stroke_radius=parseInt(form.find('#stroke_radius').val(),10);if(isNaN(stroke_radius)){stroke_radius=0} |
| 809 |
stroke_radius*=15;var stroke_gradient=gradient_provider(obj,stroke_1,stroke_2,stroke_gradient_type,stroke_angle,stroke_radius);obj.set('stroke',stroke_gradient.fill);obj.set('strokeGradientAngle',stroke_gradient.angle);obj.set('strokeGradientRadius',stroke_gradient.radius)}} |
| 810 |
if(typeof obj.setCoords==='function'){obj.setCoords()} |
| 811 |
if(typeof canvas.fire==='function'){canvas.fire('object:modified',{target:obj})}});if(reselect){bbp_ms_reselect_objects(canvas,objects)} |
| 812 |
if(typeof canvas.requestRenderAll==='function'){canvas.requestRenderAll()}else if(typeof canvas.renderAll==='function'){canvas.renderAll()} |
| 813 |
if(!window.bbp_ui_props_adapter||!before){return} |
| 814 |
var after=window.bbp_ui_props_adapter._capture_props(objects);if(window.bbp_ui_props_adapter._same_props&&window.bbp_ui_props_adapter._same_props(before,after)){return} |
| 815 |
var color_label=field_id||'props';if(!bbp_ms_try_merge_props_command(window.bbp_command_manager,objects,after,color_label,field_id)){var color_command=new BBP_Props_Command(objects,before,after,{label:color_label});color_command.__bbp_props_batch_ts=Date.now();color_command.__bbp_props_batch_field=field_id||'';window.bbp_command_manager.execute(color_command)}} |
| 816 |
function bbp_ms_bind(){var canvas=bbp_ms_get_canvas();if(!canvas){return!1} |
| 817 |
var is_pro_mode=(bbp_ms_has_pro_bridge()||window.__bbp_lite_disabled_due_pro===!0);bbp_ms_enforce_selection_keys(canvas);if(typeof canvas.on==='function'){canvas.on('selection:created',function(){bbp_ms_enforce_selection_keys(canvas)});canvas.on('selection:updated',function(){bbp_ms_enforce_selection_keys(canvas)});canvas.on('selection:cleared',function(){bbp_ms_enforce_selection_keys(canvas)});canvas.on('mouse:down',function(event){bbp_ms_enforce_selection_keys(canvas);bbp_ms_mark_single_click_candidate(canvas,event)});canvas.on('mouse:move',function(event){bbp_ms_track_single_click_motion(canvas,event)});canvas.on('mouse:up',function(event){bbp_ms_isolate_single_click_candidate(canvas,event)})} |
| 818 |
if(canvas&&typeof canvas.gamipress_badge_builder_update_selection==='function'&&!canvas.__bbp_ms_update_selection_wrapped){canvas.__bbp_ms_update_selection_wrapped=!0;var __bbp_ms_orig_update_sel=canvas.gamipress_badge_builder_update_selection;canvas.gamipress_badge_builder_update_selection=function(){var prev_active_obj=window.gamipress_badge_builder_active_obj;var active=null;try{active=canvas.getActiveObject&&canvas.getActiveObject()}catch(e){active=null} |
| 819 |
if(active&&bbp_ms_is_active_selection(active)&&typeof active.getObjects==='function'){var list=active.getObjects();if(list&&list.length){var guide=list[list.length-1];var prev_fill=guide.fill;var prev_stroke=guide.stroke;if(guide.fill===null){guide.fill=''} |
| 820 |
if(guide.stroke===null){guide.stroke=''} |
| 821 |
window.gamipress_badge_builder_active_obj=guide;try{return __bbp_ms_orig_update_sel.apply(this,arguments)}catch(e2){return}finally{window.gamipress_badge_builder_active_obj=prev_active_obj;guide.fill=prev_fill;guide.stroke=prev_stroke}}} |
| 822 |
try{return __bbp_ms_orig_update_sel.apply(this,arguments)}catch(e3){return}}} |
| 823 |
if(typeof window.gamipress_badge_builder_update_selection_form==='function'&&!window.bbp_ms_update_form_wrapped){window.bbp_ms_update_form_wrapped=!0;var original_update_form=window.gamipress_badge_builder_update_selection_form;window.gamipress_badge_builder_update_selection_form=function(){var args=arguments;var active=null;var prev_flag=window.bbp_ms_updating_form;var prev_sync_flag=window.bbp_selection_form_syncing;window.bbp_ms_updating_form=!0;window.bbp_selection_form_syncing=!0;bbp_ms_start_programmatic_change_guard(0);try{try{active=canvas.getActiveObject&&canvas.getActiveObject()}catch(e){active=null} |
| 824 |
try{if(args&&args.length&&args[0]&&bbp_ms_is_active_selection(args[0])&&typeof args[0].getObjects==='function'){active=args[0]} |
| 825 |
if(active&&bbp_ms_is_active_selection(active)&&typeof active.getObjects==='function'){var list=active.getObjects();if(list&&list.length){var guide=list[list.length-1];var prev_active_obj=window.gamipress_badge_builder_active_obj;var prev_fill=guide.fill;var prev_stroke=guide.stroke;if(guide.fill===null){guide.fill=''} |
| 826 |
if(guide.stroke===null){guide.stroke=''} |
| 827 |
window.gamipress_badge_builder_active_obj=guide;if(args&&args.length){args=Array.prototype.slice.call(args);args[0]=guide} |
| 828 |
try{return original_update_form.apply(this,args)}finally{window.gamipress_badge_builder_active_obj=prev_active_obj;guide.fill=prev_fill;guide.stroke=prev_stroke}}}}catch(e2){} |
| 829 |
try{return original_update_form.apply(this,args)}catch(e3){return}}finally{window.bbp_ms_updating_form=prev_flag;window.bbp_selection_form_syncing=prev_sync_flag;bbp_ms_start_programmatic_change_guard(120)}}} |
| 830 |
if(is_pro_mode){window.__bbp_ms_disabled_due_pro=!0} |
| 831 |
if(!window.bbp_command_manager||!window.bbp_ui_props_adapter){return is_pro_mode?!0:!1} |
| 832 |
if(typeof window.gamipress_badge_builder_selection_form_change==='function'&&!window.bbp_ms_selection_change_wrapped){window.bbp_ms_selection_change_wrapped=!0;var selection_change=window.gamipress_badge_builder_selection_form_change;window.gamipress_badge_builder_selection_form_change=function(field){var active=canvas.getActiveObject&&canvas.getActiveObject();var is_active_selection=(active&&active.type&&bbp_ms_is_active_selection(active));var is_group=(active&&active.type&&String(active.type).toLowerCase()==='group');if(!active||!active.type||(!is_active_selection&&!is_group)){return selection_change.apply(this,arguments)} |
| 833 |
if(window.bbp_ms_updating_form||window.bbp_selection_form_syncing===!0){return} |
| 834 |
if(window.bbp_command_manager.is_restoring){return selection_change.apply(this,arguments)} |
| 835 |
if(window.bbp_command_manager._undo_redo_lock){return selection_change.apply(this,arguments)} |
| 836 |
var objects=is_group?(active.getObjects?active.getObjects():[]):bbp_ms_selection_objects(active);if(objects.length<2){return selection_change.apply(this,arguments)} |
| 837 |
var $field=$(field);if(!$field.length){return selection_change.apply(this,arguments)} |
| 838 |
var id=$field.attr('id')||'';var name=$field.attr('name')||'';var is_icon=(id==='icon');if(bbp_ms_is_programmatic_change_guard_active()&&bbp_ms_is_sync_change_field(id)){return} |
| 839 |
var track=!1;var is_color=!1;if(id==='fill'||id==='fill_2'||id==='fill_color_type'||id==='gradient_type'||id==='angle'||id==='radius'||id==='stroke'||id==='stroke_2'||id==='stroke_width'||id==='stroke_type'||id==='stroke_linejoin'||id==='stroke_color_type'||id==='stroke_gradient_type'||id==='stroke_angle'||id==='stroke_radius'){track=!0;is_color=!0}else if(id==='font_family'||id==='font_size'||id==='line_height'||id==='letter_spacing'){track=!0} |
| 840 |
if(!track&&!is_icon){return selection_change.apply(this,arguments)} |
| 841 |
if(is_icon){bbp_ms_apply_icon_change(canvas,active,objects,$field.val());return} |
| 842 |
if(is_color){var form=$field.closest('.gamipress-badge-builder-selection-options');if(!form.length){form=$('.gamipress-badge-builder-selection-options')} |
| 843 |
bbp_ms_apply_color_change(canvas,active,objects,form,id);return} |
| 844 |
if(typeof window.bbp_core_selection_form_change!=='function'){return selection_change.apply(this,arguments)} |
| 845 |
var before=window.bbp_ui_props_adapter?window.bbp_ui_props_adapter._capture_props(objects):null;var prev_active=window.gamipress_badge_builder_active_obj;var prev_index=window.gamipress_badge_builder_active_obj_index;var self=this;try{objects.forEach(function(obj){if(!obj){return} |
| 846 |
window.gamipress_badge_builder_active_obj=obj;if(canvas&&typeof canvas.getObjects==='function'){window.gamipress_badge_builder_active_obj_index=canvas.getObjects().indexOf(obj)} |
| 847 |
window.bbp_core_selection_form_change.call(self,field)})}finally{window.gamipress_badge_builder_active_obj=prev_active;window.gamipress_badge_builder_active_obj_index=prev_index} |
| 848 |
if(!window.bbp_ui_props_adapter||!before){return} |
| 849 |
var after=window.bbp_ui_props_adapter._capture_props(objects);if(window.bbp_ui_props_adapter._same_props&&window.bbp_ui_props_adapter._same_props(before,after)){return} |
| 850 |
var label=id||name||'props';window.bbp_command_manager.execute(new BBP_Props_Command(objects,before,after,{label:label}));if(typeof canvas.requestRenderAll==='function'){canvas.requestRenderAll()}else if(typeof canvas.renderAll==='function'){canvas.renderAll()}}} |
| 851 |
if(typeof window.gamipress_badge_builder_process_tool==='function'&&!window.bbp_ms_process_tool_wrapped){window.bbp_ms_process_tool_wrapped=!0;var process_tool=window.gamipress_badge_builder_process_tool;window.gamipress_badge_builder_process_tool=function(tool){var tool_name='';if(typeof tool==='string'){tool_name=tool}else if(tool&&tool.name){tool_name=tool.name}else if(tool&&tool.tool){tool_name=tool.tool} |
| 852 |
var active=canvas.getActiveObject&&canvas.getActiveObject();if(!active||!active.type||!bbp_ms_is_active_selection(active)){return process_tool.apply(this,arguments)} |
| 853 |
if(window.bbp_command_manager.is_restoring){return process_tool.apply(this,arguments)} |
| 854 |
var objects=bbp_ms_selection_objects(active);if(objects.length<2){return process_tool.apply(this,arguments)} |
| 855 |
if(tool_name==='send-front'||tool_name==='send-back'||tool_name==='send-to-front'||tool_name==='send-to-back'){var reselect_arrange=!1;if(active&&bbp_ms_is_active_selection(active)){bbp_ms_explode_active_selection(canvas,active);reselect_arrange=!0} |
| 856 |
var before_order=bbp_ms_order_snapshot(canvas);bbp_ms_reorder_block(canvas,objects,(tool_name==='send-front'||tool_name==='send-to-front')?'front':'back');var after_order=bbp_ms_order_snapshot(canvas);if(before_order.join('|')!==after_order.join('|')){window.bbp_command_manager.execute(new BBP_Arrange_Command({canvas:canvas,label:tool_name,before_order:before_order,after_order:after_order}));if(typeof canvas.requestRenderAll==='function'){canvas.requestRenderAll()}} |
| 857 |
if(reselect_arrange){bbp_ms_reselect_objects(canvas,objects);if(typeof canvas.requestRenderAll==='function'){canvas.requestRenderAll()}} |
| 858 |
return} |
| 859 |
var is_transform=!1;if(tool_name==='scale-up'||tool_name==='scale-down'||tool_name==='fit'||tool_name==='rotate-left'||tool_name==='rotate-right'||tool_name==='flip-horizontal'||tool_name==='flip-vertical'||tool_name.indexOf('align-')===0){is_transform=!0} |
| 860 |
if(is_transform){var reselect=!1;var needs_block=(tool_name==='scale-up'||tool_name==='scale-down'||tool_name==='fit'||tool_name.indexOf('align-')===0);var suppress_prev=window.bbp_ms_suppress_transform_adapter;if(needs_block){window.bbp_ms_suppress_transform_adapter=!0} |
| 861 |
try{if(needs_block){bbp_ms_explode_active_selection(canvas,active);reselect=!0} |
| 862 |
var before_states=[];objects.forEach(function(o){before_states.push(bbp_ms_transform_capture(o))});var object_ids=before_states.map(function(state,idx){if(state&&state.bbp_id){return state.bbp_id} |
| 863 |
return bbp_ms_key(objects[idx])});bbp_ms_apply_transform_tool(canvas,objects,tool_name);var after_states=[];objects.forEach(function(o2){after_states.push(bbp_ms_transform_capture(o2))});window.bbp_command_manager.execute(new BBP_Multi_Transform_Command({canvas:canvas,object_ids:object_ids,before:before_states,after:after_states,label:tool_name}));if(needs_block&&typeof canvas.fire==='function'){objects.forEach(function(obj){if(obj){canvas.fire('object:modified',{target:obj})}})} |
| 864 |
if(reselect){bbp_ms_reselect_objects(canvas,objects)} |
| 865 |
if(typeof canvas.requestRenderAll==='function'){canvas.requestRenderAll()}}finally{if(needs_block){window.bbp_ms_suppress_transform_adapter=suppress_prev}} |
| 866 |
return} |
| 867 |
return process_tool.apply(this,arguments)}} |
| 868 |
if(typeof window.bbp_lite_wrap_contract_dispatchers==='function'){window.bbp_lite_wrap_contract_dispatchers(canvas)} |
| 869 |
if(typeof window.bbp_lite_emit_editor_ready==='function'){window.bbp_lite_emit_editor_ready(canvas,window.bbp_command_manager||null)} |
| 870 |
return!0} |
| 871 |
function bbp_ms_init(){if(window.bbp_ms_inited){return} |
| 872 |
var ok=bbp_ms_bind();if(!ok){return} |
| 873 |
window.bbp_ms_inited=!0} |
| 874 |
$(document).ready(function(){var tries=0;var timer=setInterval(function(){tries++;bbp_ms_init();if(window.bbp_ms_inited||tries>100){clearInterval(timer)}},50)})})(jQuery) |