Repository URL to install this package:
|
Version:
3.7.1 ▾
|
var CTCommonDirectives=angular.module("CTCommonDirectives",[]);CTCommonDirectives.factory("ctScopeService",function(){var n={};return{store:function(e,t){n[e]=t},get:function(e){return n[e]}}}),CTCommonDirectives.factory("ctOxyCache",function(){var n={};return{store:function(e,t){n[e]=t},get:function(e){return n[e]}}}),CTCommonDirectives.directive("ctiriscolorpicker",function(){return{restrict:"A",require:"ngModel",scope:{ctiriscallback:"=",gradientindex:"="},link:function(r,c,t,p){var n=!1;setTimeout(function(){c.alphaColorPicker({color:r.$parent.iframeScope.getGlobalColorValue(p.$modelValue),change:function(e){c.val().length!=e.color.toString().length&&0!==c.val().length||n||(n=setTimeout(function(){void 0!==r.$parent.globalColorToEdit.id?(r.$parent.updateGlobalColorValue(c.ctColorPicker("color")),r.$parent.globalColorChange()):p.$setViewValue(r.$parent.iframeScope.getGlobalColorValue(c.ctColorPicker("color"))),clearTimeout(n),n=!1},100)),r.ctiriscallback&&r.ctiriscallback()}});var e=t.ngModel;void 0!==r.gradientindex&&(e=e.replace("$index",r.gradientindex)),r.$parent.$watch(e,function(e){var t=r.$parent.iframeScope.getGlobalColorNiceName(e),n=c.closest(".oxygen-color-picker");if(jQuery(".oxy-global-color-label",n).remove(),t){var a;n.removeClass("oxy-not-global-color-value").children("input").prop("disabled",!0).after("<span class='oxy-global-color-label' title='"+t+"'>"+t+"<span class='oxy-global-color-label-remove'>x</span></span>");var o=r.$parent.iframeScope.getGlobalColorValue(e).replace(/ /g,"");a=o.match(/rgba\(\d+\,\d+\,\d+\,([^\)]+)\)/)?(a=100*parseFloat(o.match(/rgba\(\d+\,\d+\,\d+\,([^\)]+)\)/)[1]).toFixed(2),parseInt(a)):100;var i=c.closest(".wp-picker-container").find(".alpha-slider");i.slider("value",a),i.find(".ui-slider-handle").text(a.toString())}else n.addClass("oxy-not-global-color-value").children("input").prop("disabled",!1),r.$parent.$parent.activeGlobalColor={};if(n.addClass("oxy-not-empty-color-value"),!(e&&""!==e||p.$modelValue))return n.removeClass("oxy-not-empty-color-value"),void c.closest(".wp-picker-container").find(".wp-color-result").css("background-color","");c.ctColorPicker("color",r.$parent.iframeScope.getGlobalColorValue(e))}),r.$apply()},0)}}}),CTCommonDirectives.directive("ctdynamicdata",["$compile","ctScopeService",function($compile,ctScopeService){return{restrict:"A",replace:!0,scope:{data:"=",callback:"=",noshadow:"=",backbutton:"=",optionname:"="},link:function(scope,element,attrs){angular.element("body").on("click",".oxy-dynamicdata-popup-background, .oxygen-data-close-dialog",function(){angular.element("#ctdynamicdata-popup").remove(),angular.element(".oxy-dynamicdata-popup-background").remove()}),scope.dynamicDataModel={},scope.showOptionsPanel={item:!1},scope.processCallback=function(e,t,n){if(n&&(scope.showOptionsPanel.item=e.name+e.data+t.data,"button"==e.type&&(void 0===scope.dynamicDataModel.settings_path?scope.dynamicDataModel.settings_path=e.data:scope.dynamicDataModel.settings_path=scope.dynamicDataModel.settings_path+"/"+e.data)),scope.callback&&(!e.properties||0==e.properties.length)){var a='[oxygen data="'+t.data+'"',o={},i=function(e){scope.dynamicDataModel.hasOwnProperty(e.data)&&void 0!==scope.dynamicDataModel[e.data].trim&&""!==scope.dynamicDataModel[e.data].trim()&&!e.helper&&scope.dynamicDataModel[e.data]!==e.nullVal&&scope.fieldIsVisible(e)&&(o[e.data]=scope.dynamicDataModel[e.data]),_.each(e.properties,function(e){i(e)})};_.each(t.properties,function(e){i(e)}),_.each(o,function(e,t){e=e.replace(/'/g,"__SINGLE_QUOTE__"),a+=" "+t+'="'+e+'"'}),t.append&&(a+=" "+t.append),void 0!==scope.dynamicDataModel.settings_path&&(a+=' settings_path="'+scope.dynamicDataModel.settings_path+'"'),a+="]",null!=scope.optionname?scope.callback(a,scope.optionname):scope.callback(a),angular.element("#ctdynamicdata-popup").remove(),angular.element(".oxy-dynamicdata-popup-background").remove()}},scope.applyChange=function(property){property.change&&eval(property.change)},scope.back=function(e){scope.dynamicDataModel={},scope.showOptionsPanel.item=!1},scope.fieldIsVisible=function(e){return void 0===e.show_condition||scope.$eval(e.show_condition)},scope.isChildPanelVisible=function(e,t){if(!scope.showOptionsPanel.item)return!1;if(e.properties){for(var n=!1,a=e.properties.length-1;0<=a;a--){if(scope.showOptionsPanel.item===e.properties[a].name+e.properties[a].data+t.data)return!0;if(e.properties[a].properties&&(n=scope.isChildPanelVisible(e.properties[a],t)))return!0}return n}return!1},scope.isNavigationOnlyPanel=function(e){for(var t=!0,n=e.properties.length-1;0<=n;n--)if("button"!=e.properties[n].type&&"heading"!=e.properties[n].type&&"label"!=e.properties[n].type){t=!1;break}return t},element.on("click",function(){for(var e=scope.$parent.$parent.iframeScope.component.active.id,t=scope.$parent.$parent.iframeScope.getComponentById(e).parent().closest(".oxy-dynamic-list"),n=!1;t&&0<t.length;)n=parseInt(t.attr("ng-attr-component-id")),t=!scope.$parent.$parent.iframeScope.component.options[n].original.use_acf_repeater&&(n=!1,t.parent().closest(".oxy-dynamic-list"));scope.$parent.$parent.acfRepeaterDynamicDialogProcess(n),scope.showOptionsPanel.item=!1,scope.dynamicDataModel={},angular.element("body #ctdynamicdata-popup").remove(),angular.element("body .oxy-dynamicdata-popup-background").remove();var a='<div class="oxy-dynamicdata-popup-background"></div><div id="ctdynamicdata-popup" class="oxygen-data-dialog'+(scope.noshadow?" ct-global-conditions-add-modal":"")+'"><h1>Insert Dynamic Data</h1><div>';CtBuilderAjax.freeVersion&&(a+='<div style="border: 4px solid #7046db;-webkit-font-smoothing: antialiased;background-color: white;width: 100%;margin-bottom: 16px;padding: 24px;display: flex;line-height: 1.4;flex-direction: column;align-items: center;"><h2 style="color: black;font-weight: 400;text-align: center;line-height: 1.2;font-size: 21px;">Dynamic Data requires Oxygen Pro.</h2><a target="_blank" href="https://oxygenbuilder.com/upgrade-to-pro/?utm_source=free-version&utm_medium=in-plugin&utm_content=dynamic-data" style="padding-top: 11px;padding-bottom: 11px;padding-right: 24px;padding-left: 24px;color: white;background-color: #7046db;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;border-radius: 3px;font-weight: 500;text-decoration: none;box-shadow: 0px 1px 0px 0px #4016ab;margin-top: 16px;">Get Oxygen Pro</a></div>'),scope.backbutton&&(a+='<div class="oxygen-data-back-button oxygen-data-close-dialog">< BACK</div>');var o=$compile(a+='<div class="oxygen-data-dialog-data-picker"ng-repeat="item in data"><h2>{{item.name}}</h2><ul><li ng-repeat="dataitem in item.children" ng-mouseup="processCallback(dataitem, dataitem, true); $event.stopPropagation();"><span>{{dataitem.name}}</span><div ng-if="dataitem.properties" ng-show="showOptionsPanel.item === dataitem.name+dataitem.data+dataitem.data || isChildPanelVisible( dataitem, dataitem )" class="oxygen-data-dialog-options" ng-mouseup="$event.stopPropagation();"><h1>{{dataitem.name}} Options</h1><div><div class="oxygen-data-back-button" ng-mouseup="back()">< BACK</div><div ng-repeat="property in dataitem.properties" ng-class="{inline: property.type==\'button\'}"><div ng-include="\'dynamicDataRecursiveDialog\'" ng-class="{inline: property.type==\'button\'}"></div></div></div><div class="oxygen-apply-button" ng-mouseup="processCallback(item, dataitem)" ng-show="!isNavigationOnlyPanel(dataitem)">INSERT</div></div></li></ul></div></div></div>')(scope);scope.$parent.$parent.oxygenUIElement.append(o),scope.$apply()})}}}]),CTCommonDirectives.directive("ctdynamiclist",["$compile","ctScopeService",function(e,t){return{restrict:"A",replace:!0,scope:{dynamicListOptions:"=",dynamicActions:"="},link:function(g,f,e){var i=parseInt(f.attr("ng-attr-component-id")),r={};function y(n,a,e){g.$parent.$parent.dynamicListTrees.forcleanup[i]&&0<g.$parent.$parent.dynamicListTrees.forcleanup[i].length&&g.$parent.$parent.dynamicListTrees.forcleanup[i].forEach(function(e){delete g.$parent.$parent.cache.idStyles[e],g.$parent.$parent.recycleIDs.push(e)}),g.$parent.$parent.dynamicListTrees.forcleanup[i]=[],g.$parent.$parent.dynamicListTrees.trees[i]=[],n.forEach(function(e){var t=JSON.parse(JSON.stringify(a));!function t(n,e,a){void 0===n.source_id&&(n.source_id=n.id),void 0!==r[n.source_id]?n.id=r[n.source_id]:n.id=0<g.$parent.$parent.recycleIDs.length?g.$parent.$parent.recycleIDs.shift():g.$parent.$parent.component.id++,n.options.ct_id=n.id,g.$parent.$parent.component.options[n.id]={id:{},model:{},original:{}},void 0!==e&&(n.options.ct_parent=e);var o=a.find(function(e){return e.ct_id===n.source_id});o&&o.ct_content&&(n.options.ct_content=o.ct_content,n.options.ct_content=n.options.ct_content.replace(/\<span id\=\"ct-placeholder-([^\"]*)\"\>\<\/span\>/gi,function(e,t){var n=0<g.$parent.$parent.recycleIDs.length?g.$parent.$parent.recycleIDs.shift():g.$parent.$parent.component.id++;return'<span id="ct-placeholder-'+(r[t]=n)+'"></span>'})),o&&o.renderedHTML&&(n.options.renderedHTML=o.renderedHTML),o&&o.original&&(n.options.original=o.original),"oxy_dynamic_list"==n.name&&(g.$parent.dynamicListActions.actions[n.id]={}),g.$parent.$parent.dynamicListTrees.forcleanup[i].push(n.id),n.children&&0<n.children.length&&n.children.forEach(function(e){t(e,n.id,a)})}(t,null,e),g.$parent.$parent.dynamicListTrees.trees[i].push(t)}),f.attr("data-for-id",i);var t=f.children(".oxy_repeater_original");t.length<1&&(t=f.children().first()).addClass("oxy_repeater_original"),t.siblings().remove(),g.$parent.buildComponentsFromTree(g.$parent.$parent.dynamicListTrees.trees[i],null,!1,f),t.insertBefore(f.children().first()),g.$parent.$parent.dynamicListTrees.trees[i].forEach(function(e,t){!function n(e,a,o){e.children&&e.children.forEach(function(t){if("oxy_dynamic_list"==t.name){var e=a[o].find(function(e){return e.ct_id===t.source_id});g.$parent.$parent.dynamicListAction(t.id,1,!0,t,e.children)}else n(t,a,o)})}(e,n,t)}),g.$parent.$parent.adjustResizeBox(),g.$parent.$parent.$emit("oxy-dynamic-list-"+i),a&&a.children&&function(e){e.forEach(function(e){g.$parent.componentsTemplates[e.name]&&g.$parent.componentsTemplates[e.name].has_js?g.$parent.rebuildDOM(e.id):e.children&&e.children});g.$parent.componentsTemplates[""]}(a.children),e&&f.append(angular.element('<div class="oxy-repeater-pages-wrap" style="opacity:1">').append(angular.element('<div class="oxy-repeater-pages">').append(e)))}f.on("click",function(e){var t=angular.element(e.target).closest(".oxy_repeater_original");t.closest("#"+f.attr("id")).length<1&&(t=!1),(!t||t.length<1)&&g.$parent.$parent.parentScope.scrollToComponent(f.children().attr("id"),100)}),angular.extend(g.dynamicActions.actions[i],{action:function(e,t,n,a,o){e=parseInt(e),void 0!==n&&function(e,t,n,a){var o=parseInt(f.attr("ng-attr-component-id"));if(g.$parent.$parent.component.options[o].model.listrendertype){var i=f.children().first();return i.addClass("oxy_repeater_original")}if(e!==o)return;var r=null;r=n||g.$parent.findComponentItem(g.$parent.componentsTree.children,o,g.$parent.getComponentItem);if(!r||!r.children||r.children.length<1)return;var c=r.children[0];if(n)y(a,c);else{for(var p=function a(e){var o=[];e.forEach(function(e){var t=angular.element.extend(!0,{},e.options);"oxy_dynamic_list"===e.name&&(t.children=a(e.children)),t.name=e.name;var n=g.$parent.$parent.componentsTemplates[t.name];n&&n.phpCallback&&(t.renderedHTML=!0,t.component=e),o.push(t),"oxy_dynamic_list"!==e.name&&e.children&&(o=o.concat(a(e.children)))});return o}(r.children),l=!1,s=f,d=[],m=0;s&&0<s.length;){var u=parseInt(s.attr("ng-attr-component-id"));g.$parent.$parent.component.options[u].original.use_acf_repeater?(s=s.parent().closest(".oxy-dynamic-list"),0<m&&d.push(g.$parent.$parent.component.options[u].original.acf_repeater)):(l=parseInt(s.attr("ng-attr-component-id")),s=!1),m++}g.$parent.getDynamicDataFromQuery(o,p,y,c,l,d)}}(e,0,a,o)}}),g.$parent.$parent.dynamicListTrees.runMainOnLoad.push(i)}}}]),CTCommonDirectives.directive("dyncontenteditable",["$compile","$timeout","$interval","ctScopeService",function(e,t,n,a){return{restrict:"A",link:function(r,c,e){c.bind("dblclick",function(e){e.stopPropagation();var t=c.attr("ng-attr-component-id"),n=r.findComponentItem(r.componentsTree.children,t,r.getComponentItem);if(n){var a;if("ct_span"==n.name)angular.element("[ng-attr-component-id="+t+"]").attr("disabled","disabled"),c.removeAttr("disabled"),r.buildComponentsFromTree([n],null,!1,c),a=c.children(),c.replaceWith(a);else{angular.element("[ng-attr-component-id="+t+"]").attr("disabled","disabled"),c.removeAttr("disabled");var o=c.parent(),i=(c.index(),angular.element("<div>").css("display","none"));o.append(i),r.buildComponentsFromTree([n],null,!1,i),(a=i.children()).insertBefore(c),c.css("display","none"),c.attr("disabled","disabled"),i.remove()}setTimeout(function(){a.trigger("dblclick")},100)}})}}}]),CTCommonDirectives.directive("ctrendernestableshortcode",["$http",function(e){return{restrict:"A",link:function(a,e,t){var o=parseInt(e.attr("ng-attr-component-id")),i=function(e,t){a.$parent.component.options[o].model.wrapping_end=void 0!==t?(t=t.split("_#wrapped_content_replacer#_"),a.$parent.component.options[o].model.wrapping_start=t[0],t[1]):a.$parent.component.options[o].model.wrapping_start="",a.$parent.setOption(o,"ct_nestable_shortcode","wrapping_start"),a.$parent.setOption(o,"ct_nestable_shortcode","wrapping_end"),a.$parent.rebuildDOM(o)},n=!1;a.$watch(e.attr("ct-nestable-shortcode-model"),function(e,t){!1===n&&t!==e&&(n=setTimeout(function(){setTimeout(function(){if(a.$parent){var e=a.$parent.component.options[o].id.wrapping_shortcode;if(e){var n=[];e.replace(/\[([^\s\]]{1,})[^\]]*\]/gi,function(e,t){return n.push(e),n.push(t),""});var t={original:{full_shortcode:n[0]+"_#wrapped_content_replacer#_[/"+n[1]+"]"}};a.renderShortcode(o,"ct_shortcode",i,t)}}},0),n=!1},500))})}}}]),CTCommonDirectives.directive("ctevalconditions",function(){return{restrict:"A",link:function(t,n,e){setTimeout(function(){var e=parseInt(n.attr("ng-attr-component-id"));t.parentScope.evalGlobalConditions(e)},0)}}}),CTCommonDirectives.directive("ctrenderoxyshortcode",["$http","ctOxyCache",function(e,t){return{restrict:"A",require:"ngModel",link:function(a,o,e,t){var i=function(e,t){o.html(t)};setTimeout(function(){var e=parseInt(o.attr("ng-attr-component-id")),t=a.$parent.getOption("ct_content",e),n={original:{full_shortcode:t}};0<t.indexOf("data='content'")&&(a.$parent.currentClass="oxy-stock-content-styles",a.addClassToComponent(e,"oxy-stock-content-styles",!1),a.$parent.currentClass=!1),a.renderShortcode(e,"ct_shortcode",i,n)},0)}}}]),CTCommonDirectives.directive("contenteditable",["$timeout","$interval","ctScopeService",function(p,l,s){return{restrict:"A",require:"ngModel",link:function(o,i,r,a){function c(){a.$setViewValue(i.html())}i.unbind("paste input"),a.$render=function(){i.html(a.$viewValue||"")},i.bind("input",function(e,t){o.$apply(c),t&&void 0!==r.plaintext&&"true"===r.plaintext&&(jQuery("<span>").html(i.html()).text().trim()!==i.html().trim().replace(" ","")&&i.html(i.text()),a.$setViewValue(i.text())),""===i.html().trim()&&void 0!==r.defaulttext&&""!==r.defaulttext.trim()&&i.text(r.defaulttext);var n=p(function(){var e=o,t=r.optionname||"ct_content";o.iframeScope&&(e=o.iframeScope),e.setOption(e.component.active.id,e.component.active.name,t),l.cancel(n)},20,!1)}),i.bind("paste",function(){setTimeout(function(){i.trigger("input","paste")},0)}),void 0===r.plaintext||"true"!==r.plaintext?(i.bind("click",function(e){e.preventDefault()}),i.bind("dblclick",function(e){e.stopPropagation();var t=s.get("scope").parentScope,n=r.optionname||"ct_content",a=o.getOption(n);o.contentEditableData.original=a,o.dynamicSpanCycleIDs=[],a=a.replace(/\<span id\=\"ct-placeholder-([^\"]*)\"\>\<\/span\>/gi,function(e,t){var n=o.component.options[parseInt(t)].model.ct_content;return n.match(/\[oxygen[^\]]*\]/gi)?(o.$parent.dynamicSpanCycleIDs.push(parseInt(t)),o.removeComponentById(parseInt(t),"span",o.component.active.id),n):e}),o.setOptionModel(n,a,o.component.active.id,o.component.active.name),o.contentEditableData.beingEdited=a,t.enableContentEdit(i),o.$apply()}),i[0].attributes["ng-attr-paragraph"]?i.bind("keypress",function(e){13==e.keyCode&&document.execCommand("formatBlock",!1,"p")}):i.bind("keypress",function(e){if(13==e.keyCode)return document.execCommand("insertHTML",!1,"<br><br>"),!1})):i.bind("keypress",function(e){if(13==e.keyCode)return i.blur(),!1}),void 0===r.ngBlur&&""===r.ngBlur||i.bind("blur",function(){var e=p(function(){o.$apply(r.ngBlur),l.cancel(e)},0,!1)})}}}]),CTCommonDirectives.directive("focusMe",["$timeout",function(a){return{scope:{trigger:"=focusMe"},link:function(t,n){t.$watch("trigger",function(e){!0===e&&a(function(){n[0].focus(),t.trigger=!1})})}}}]);