dvadf
File manager - Edit - /home/centroca/public_html/wp/wp-content/plugins/shortcodes-ultimate/includes/js/generator/index.js.map
Back
{"version":3,"sources":["includes/js/generator/node_modules/browser-pack/_prelude.js","includes/js/generator/includes/js/generator/src/index.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","$","$generator","$search","$searchClear","$filter","$choices","$choice","$settings","$prefix","$result","$selected","self","abortLastUsedRequest","showAllChoices","toggleSearchClear","clearSearch","removePresetElement","showChoicesMode","showSettingsMode","fallbackCopyText","setCopyButtonState","parseSearchableValue","normalizeSearchableOptions","initSearchableSelects","isTransparentColor","initColorPickers","clampBorderNewPercent","normalizeBorderNewHex","borderNewHexToRgb","borderNewRgbToHex","formatBorderNewAlpha","formatBorderNewColor","parseBorderNewColor","getBorderNewSelectValue","setBorderNewPickerOpen","initBorderNewPickers","window","SUG","App","jQuery","state","lastUsedRequest","abort","css","display","opacity","removeClass","toggle","val","$preset","$list","parents","remove","find","show","html","hide","defaultSettings","isProFeaturesMode","toggleClass","addClass","text","textarea","document","createElement","copied","value","setAttribute","style","position","top","left","body","appendChild","select","execCommand","error","removeChild","$button","label","data","isArray","map","item","String","trim","filter","split","options","option","Boolean","$scope","removeText","SUGL10n","remove_selected","each","index","$value","$control","$tokens","$input","$dropdown","$empty","multiple","placeholder","emptyText","loadingText","tooShortText","ajaxAction","ajaxMinLength","ajaxDelay","ajaxRequest","ajaxTimer","normalizeSelected","getOptionLabel","renderTokens","renderOptions","render","syncValue","resetAjaxSearch","open","close","selectOption","mergeOptions","setOptions","loadAjaxOptions","loadSelectedLabels","requestAjaxOptions","$picker","this","parseInt","namespace","Date","now","isNaN","loading","push","selected","unique","forEach","indexOf","slice","empty","$token","class","data-value","appendTo","type","title","aria-label","append","attr","query","toLowerCase","visible","$option","matched","triggerChange","join","trigger","clearInput","clearTimeout","splice","setTimeout","focus","blur","current","currentIndex","keepKnownOptions","data-label","role","insertBefore","labelsOnly","request","extend","action","ajax","url","ajaxurl","dataType","beforeSend","success","response","results","complete","unknown","ids","search","clear","setLoading","setEmptyText","on","input","keydown","$first","keyCode","preventDefault","pop","closest","stopPropagation","is","target","has","loadTerms","$terms","taxonomyField","$taxonomy","clearSelection","tax","api","noselect","$wheel","$transparent","allowTransparent","updateTransparentState","hasClass","isTransparent","prop","farbtastic","lastColor","color","defaultColor","currentColor","fallback","number","Math","max","min","match","hex","charAt","replace","red","substr","green","blue","toHex","toString","percent","Number","toFixed","alpha","rgb","rgba","parseFloat","round","$select","$width","$style","$swatch","$label","$hex","$alphaRange","$alphaValue","syncing","updateColorPreview","syncAlphaControls","updateValue","syncFromValue","$source","parsed","width","border","key","mceSelection","wpActiveEditor","context","insertArgs","preview","timer","init","gp_hover_timer","click","regex","RegExp","magnificPopup","keyup","best","id","shortcode","matches","name","desc","group","$selectedChoice","isProChoice","$content","getSettings","$val","step","simpleSlider","snap","range","update","images","terms","source","$sources","$images","categories","$cats","$taxes","frame","$addMedia","parent","fadeOut","wp","media","frames","su_media_frame_1","isp_media_title","library","button","isp_media_insert","files","get","toJSON","sortable","revert","containment","tolerance","stop","ajaxTermSelect","$cont","size","file","su_media_frame_2","upload_title","upload_insert","attachment","first","$field","$icons","children","$switch","baseOrder","getItem","orderedValuesFromInput","ordered","fn","handle","items","forcePlaceholderSize","$inputs","getInputByValue","$checked","su_generator_get_terms","$fields","$hoff","$voff","$blur","$color","cnt","wheel","$cnt","_default","updateShortcodePreview","updatePreview","$tabButtons","$panels","activateTab","$tabs","tab","isActive","$panel","removeAttr","next","eq","nonce","setSettings","insertShortcode","copyShortcode","resetSettings","getTime","prompt","presets_prompt_msg","presets_prompt_value","addPreset","$insert","removePreset","settings","parseSettings","settingsSelector","prefix","content","result","$this","hasOwnProperty","setShortcodePreview","$shortcodePreview","$code","showCopied","last_used","navigator","clipboard","writeText","when","done","fail","forced","$preview","previous","cache","insert","args","preSelectedShortcode","mfpOptions","alignTop","closeOnBgClick","mainClass","src","callbacks","concat","tinyMCE","activeEditor","selection","getContent","format","props","originalText","HTMLEditor","getElementById","editorID","insertAtCaret","editor","attributes","setAttributes","callback","field","start","selectionStart","substring","ready"],"mappings":"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","file":"index.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()","/* eslint-disable */\n\n/* global jQuery, wp, ajaxurl, SUGL10n */\n\nwindow.SUG = {}\n\nwindow.SUG.App = (($) => {\n var $generator = $('#su-generator')\n var $search = $('#su-generator-search')\n var $searchClear = $('#su-generator-search-clear')\n var $filter = $('#su-generator-filter')\n var $choices = $('#su-generator-choices')\n var $choice = $('.su-generator-choice')\n var $settings = $('#su-generator-settings')\n var $prefix = $('#su-compatibility-mode-prefix')\n var $result = $('#su-generator-result')\n var $selected = $('#su-generator-selected')\n\n var self = {}\n\n self.state = {\n mceSelection: '',\n target: '',\n wpActiveEditor: null,\n context: '',\n insertArgs: '',\n defaultSettings: null,\n lastUsedRequest: null,\n preview: {\n timer: null,\n request: null\n }\n }\n\n var abortLastUsedRequest = () => {\n if (self.state.lastUsedRequest) {\n self.state.lastUsedRequest.abort()\n self.state.lastUsedRequest = null\n }\n }\n\n var showAllChoices = () => {\n $choice.css(\n {\n display: 'flex',\n opacity: 1\n }\n ).removeClass('su-generator-choice-first')\n }\n\n var toggleSearchClear = () => {\n $searchClear.toggle($search.val() !== '')\n }\n\n var clearSearch = () => {\n $search.val('')\n showAllChoices()\n toggleSearchClear()\n }\n\n var removePresetElement = ($preset) => {\n if (!$preset.length) {\n return\n }\n\n var $list = $preset.parents('.su-gp-list')\n\n $preset.remove()\n\n if ($list.find('span').length < 1) {\n $list.find('b').show()\n }\n }\n\n var showChoicesMode = () => {\n $settings.html('').hide()\n self.state.defaultSettings = null\n abortLastUsedRequest()\n $generator.removeClass('su-generator-settings-mode su-generator-pro-features-mode')\n $filter.show()\n $choices.show()\n showAllChoices()\n }\n\n var showSettingsMode = (isProFeaturesMode) => {\n $generator\n .toggleClass('su-generator-pro-features-mode', !!isProFeaturesMode)\n .addClass('su-generator-settings-mode')\n $choices.hide()\n $filter.hide()\n }\n\n var initGeneratorTabs = ($scope) => {\n $scope.find('.su-generator-tabs').each(\n function () {\n var $tabs = $(this)\n\n if ($tabs.data('suGeneratorTabs')) {\n return\n }\n\n var $fields = $tabs.closest('.su-generator-settings-fields')\n var $tabButtons = $tabs.find('.su-generator-tab')\n var $panels = $fields.find('.su-generator-tab-panel')\n\n var activateTab = (tab, focus) => {\n $tabButtons.each(\n function () {\n var $button = $(this)\n var isActive = String($button.data('tab')) === tab\n\n $button\n .toggleClass('su-generator-tab-active', isActive)\n .attr('aria-selected', isActive ? 'true' : 'false')\n\n if (isActive && focus) {\n $button.trigger('focus')\n }\n }\n )\n\n $panels.each(\n function () {\n var $panel = $(this)\n var isActive = String($panel.data('tab')) === tab\n\n $panel\n .toggleClass('su-generator-tab-panel-active', isActive)\n .attr('aria-hidden', isActive ? 'false' : 'true')\n\n if (isActive) {\n $panel.removeAttr('inert')\n } else {\n $panel.attr('inert', '')\n }\n }\n )\n }\n\n $tabs.on(\n 'click',\n '.su-generator-tab',\n function (e) {\n activateTab(String($(this).data('tab')), false)\n e.preventDefault()\n }\n )\n\n $tabs.on(\n 'keydown',\n '.su-generator-tab',\n function (e) {\n if (e.key !== 'ArrowLeft' && e.key !== 'ArrowRight' && e.key !== 'Home' && e.key !== 'End') {\n return\n }\n\n var current = $tabButtons.index(this)\n var next = current\n\n if (e.key === 'ArrowLeft') {\n next = current <= 0 ? $tabButtons.length - 1 : current - 1\n } else if (e.key === 'ArrowRight') {\n next = current >= $tabButtons.length - 1 ? 0 : current + 1\n } else if (e.key === 'Home') {\n next = 0\n } else if (e.key === 'End') {\n next = $tabButtons.length - 1\n }\n\n activateTab(String($tabButtons.eq(next).data('tab')), true)\n e.preventDefault()\n }\n )\n\n activateTab(String($tabButtons.filter('.su-generator-tab-active').first().data('tab') || $tabButtons.first().data('tab')), false)\n $fields.addClass('su-generator-tabs-ready')\n $tabs.data('suGeneratorTabs', true)\n }\n )\n }\n\n var fallbackCopyText = (text) => {\n var textarea = document.createElement('textarea')\n\n textarea.value = text\n textarea.setAttribute('readonly', 'readonly')\n textarea.style.position = 'fixed'\n textarea.style.top = '-9999px'\n textarea.style.left = '-9999px'\n\n document.body.appendChild(textarea)\n textarea.select()\n\n var copied = false\n\n try {\n copied = document.execCommand('copy')\n } catch (error) {\n copied = false\n }\n\n document.body.removeChild(textarea)\n\n return copied\n }\n\n var setCopyButtonState = ($button, copied) => {\n var label = copied\n ? $button.data('copied-label')\n : $button.data('label')\n\n $button\n .toggleClass('su-generator-copy-copied', copied)\n .find('.su-generator-copy-label')\n .text(label)\n\n $button\n .find('i')\n .toggleClass('sui-copy', !copied)\n .toggleClass('sui-check', copied)\n }\n\n var parseSearchableValue = (value) => {\n if ($.isArray(value)) {\n return value.map((item) => String(item).trim()).filter((item) => item !== '')\n }\n\n return String(value || '')\n .split(',')\n .map((item) => item.trim())\n .filter((item) => item !== '')\n }\n\n var readSearchableOptions = ($picker) => {\n var options = []\n\n $picker.find('.su-generator-searchable-select-option').each(\n function () {\n options.push(\n {\n value: String($(this).data('value')),\n label: String($(this).data('label'))\n }\n )\n }\n )\n\n return options\n }\n\n var parseSearchableOptionsHTML = (html) => {\n var options = []\n\n $('<select>' + html + '</select>').find('option').each(\n function () {\n var value = $(this).attr('value')\n\n if (typeof value !== 'undefined') {\n options.push(\n {\n value: String(value),\n label: $(this).text()\n }\n )\n }\n }\n )\n\n return options\n }\n\n var normalizeSearchableOptions = (options) => {\n if (!$.isArray(options)) {\n return []\n }\n\n return options\n .map(\n function (option) {\n if (!option || typeof option.value === 'undefined') {\n return false\n }\n\n var value = String(option.value)\n\n return {\n value: value,\n label: typeof option.label === 'undefined' ? value : String(option.label)\n }\n }\n )\n .filter(Boolean)\n }\n\n var parseSearchableAjaxOptions = (response) => {\n var data = response && response.success ? response.data : response\n var results = data && data.results ? data.results : data\n\n return normalizeSearchableOptions(results)\n }\n\n var initSearchableSelects = ($scope) => {\n var removeText = typeof SUGL10n === 'object' && SUGL10n.remove_selected\n ? SUGL10n.remove_selected\n : 'Remove selected item'\n\n $scope.find('.su-generator-searchable-select').each(\n function (index) {\n var $picker = $(this)\n\n if ($picker.data('suGeneratorSearchableSelect')) {\n return\n }\n\n var $value = $picker.find('.su-generator-searchable-select-value')\n var $control = $picker.find('.su-generator-searchable-select-control')\n var $tokens = $picker.find('.su-generator-searchable-select-tokens')\n var $input = $picker.find('.su-generator-searchable-select-input')\n var $dropdown = $picker.find('.su-generator-searchable-select-dropdown')\n var $empty = $picker.find('.su-generator-searchable-select-empty')\n var multiple = $picker.data('multiple') === true || $picker.data('multiple') === 'true'\n var placeholder = $picker.data('placeholder') || ''\n var emptyText = $picker.data('empty') || ''\n var loadingText = $picker.data('loading') || emptyText\n var tooShortText = $picker.data('too-short') || emptyText\n var ajaxAction = $picker.data('ajax-action') || ''\n var ajaxMinLength = parseInt($picker.data('ajax-min-length'), 10)\n var ajaxDelay = parseInt($picker.data('ajax-delay'), 10)\n var namespace = '.suGeneratorSearchableSelect' + index + '-' + Date.now()\n\n if (isNaN(ajaxMinLength)) {\n ajaxMinLength = ajaxAction ? 2 : 0\n }\n\n if (isNaN(ajaxDelay)) {\n ajaxDelay = 250\n }\n\n var state = {\n loading: false,\n emptyText: ajaxAction ? tooShortText : emptyText,\n options: normalizeSearchableOptions(readSearchableOptions($picker)),\n selected: parseSearchableValue($value.val())\n }\n var ajaxRequest = null\n var ajaxTimer = null\n\n var normalizeSelected = () => {\n var unique = []\n\n state.selected.forEach(\n function (value) {\n if (unique.indexOf(value) === -1) {\n unique.push(value)\n }\n }\n )\n\n state.selected = multiple ? unique : unique.slice(0, 1)\n }\n\n var getOptionLabel = (value) => {\n var label = value\n\n state.options.forEach(\n function (option) {\n if (option.value === value) {\n label = option.label\n }\n }\n )\n\n return label\n }\n\n var renderTokens = () => {\n $tokens.empty()\n\n state.selected.forEach(\n function (value) {\n var $token = $('<span/>', {\n class: 'su-generator-searchable-select-token',\n 'data-value': value\n })\n\n $('<span/>', {\n class: 'su-generator-searchable-select-token-label'\n }).text(getOptionLabel(value)).appendTo($token)\n\n $('<button/>', {\n type: 'button',\n class: 'su-generator-searchable-select-token-remove',\n title: removeText,\n 'aria-label': removeText\n }).html('×').appendTo($token)\n\n $tokens.append($token)\n }\n )\n\n $input.attr('placeholder', state.selected.length ? '' : placeholder)\n }\n\n var renderOptions = () => {\n var query = String($input.val() || '').toLowerCase()\n var visible = 0\n\n $dropdown.find('.su-generator-searchable-select-option').each(\n function () {\n var $option = $(this)\n var value = String($option.data('value'))\n var label = String($option.data('label'))\n var selected = state.selected.indexOf(value) !== -1\n var matched = !query ||\n label.toLowerCase().indexOf(query) !== -1 ||\n value.toLowerCase().indexOf(query) !== -1\n\n $option\n .toggle(matched && !state.loading)\n .toggleClass('su-generator-searchable-select-option-selected', selected)\n .attr('aria-selected', selected ? 'true' : 'false')\n\n if (matched && !state.loading) {\n visible++\n }\n }\n )\n\n $empty\n .text(state.loading ? loadingText : state.emptyText)\n .toggle(state.loading || visible < 1)\n }\n\n var render = () => {\n normalizeSelected()\n renderTokens()\n renderOptions()\n }\n\n var syncValue = (triggerChange) => {\n $value.val(state.selected.join(','))\n\n if (triggerChange) {\n $value.trigger('change')\n }\n }\n\n var resetAjaxSearch = (clearInput) => {\n if (!ajaxAction) {\n return\n }\n\n if (ajaxTimer) {\n window.clearTimeout(ajaxTimer)\n ajaxTimer = null\n }\n\n if (ajaxRequest) {\n ajaxRequest.abort()\n ajaxRequest = null\n }\n\n if (clearInput) {\n $input.val('')\n }\n\n state.loading = false\n state.emptyText = tooShortText\n setOptions([], true)\n }\n\n var open = () => {\n $picker.addClass('su-generator-searchable-select-open')\n\n if (ajaxAction) {\n requestAjaxOptions()\n } else {\n renderOptions()\n }\n }\n\n var close = () => {\n $picker.removeClass('su-generator-searchable-select-open')\n\n if (ajaxAction) {\n resetAjaxSearch(true)\n } else {\n $input.val('')\n renderOptions()\n }\n }\n\n var selectOption = (value) => {\n var index = state.selected.indexOf(value)\n\n if (multiple) {\n if (index === -1) {\n state.selected.push(value)\n } else {\n state.selected.splice(index, 1)\n }\n } else {\n state.selected = [value]\n close()\n }\n\n $input.val('')\n syncValue(true)\n\n if (ajaxAction) {\n resetAjaxSearch(false)\n } else {\n render()\n }\n\n if (multiple) {\n $picker.addClass('su-generator-searchable-select-open')\n window.setTimeout(\n function () {\n $input.focus()\n },\n 0\n )\n } else {\n $input.blur()\n }\n }\n\n var mergeOptions = (options) => {\n normalizeSearchableOptions(options).forEach(\n function (option) {\n var index = -1\n\n state.options.forEach(\n function (current, currentIndex) {\n if (current.value === option.value) {\n index = currentIndex\n }\n }\n )\n\n if (index === -1) {\n state.options.push(option)\n } else {\n state.options[index] = option\n }\n }\n )\n }\n\n var setOptions = (options, keepKnownOptions) => {\n options = normalizeSearchableOptions(options)\n $dropdown.find('.su-generator-searchable-select-option').remove()\n\n if (keepKnownOptions) {\n mergeOptions(options)\n } else {\n state.options = options\n }\n\n options.forEach(\n function (option) {\n $('<button/>', {\n type: 'button',\n class: 'su-generator-searchable-select-option',\n 'data-value': option.value,\n 'data-label': option.label,\n role: 'option'\n }).text(option.label).insertBefore($empty)\n }\n )\n\n render()\n }\n\n var loadAjaxOptions = (data, labelsOnly) => {\n if (!ajaxAction) {\n return\n }\n\n data = $.extend({ action: ajaxAction }, data)\n\n if (!labelsOnly && ajaxRequest) {\n ajaxRequest.abort()\n }\n\n var request = $.ajax(\n {\n type: 'POST',\n url: ajaxurl,\n data: data,\n dataType: 'json',\n beforeSend: function () {\n if (!labelsOnly) {\n state.loading = true\n renderOptions()\n }\n },\n success: function (response) {\n var options = parseSearchableAjaxOptions(response)\n\n if (labelsOnly) {\n mergeOptions(options)\n render()\n } else {\n setOptions(options, true)\n }\n },\n complete: function () {\n if (!labelsOnly && ajaxRequest === request) {\n ajaxRequest = null\n state.loading = false\n renderOptions()\n }\n }\n }\n )\n\n if (!labelsOnly) {\n ajaxRequest = request\n }\n }\n\n var loadSelectedLabels = () => {\n if (!ajaxAction || !state.selected.length) {\n return\n }\n\n var unknown = state.selected.filter(\n function (value) {\n return getOptionLabel(value) === value\n }\n )\n\n if (unknown.length) {\n loadAjaxOptions({ ids: unknown.join(',') }, true)\n }\n }\n\n var requestAjaxOptions = () => {\n if (!ajaxAction) {\n renderOptions()\n return\n }\n\n var query = String($input.val() || '').trim()\n\n if (ajaxTimer) {\n window.clearTimeout(ajaxTimer)\n ajaxTimer = null\n }\n\n if (ajaxRequest) {\n ajaxRequest.abort()\n ajaxRequest = null\n state.loading = false\n }\n\n if (query.length < ajaxMinLength) {\n resetAjaxSearch(false)\n return\n }\n\n state.emptyText = emptyText\n renderOptions()\n\n ajaxTimer = window.setTimeout(\n function () {\n ajaxTimer = null\n loadAjaxOptions({ search: query }, false)\n },\n ajaxDelay\n )\n }\n\n var api = {\n clear: function () {\n state.selected = []\n syncValue(true)\n render()\n },\n setLoading: function (loading) {\n state.loading = loading\n renderOptions()\n },\n setEmptyText: function (text) {\n state.emptyText = text || emptyText\n renderOptions()\n },\n setOptions: setOptions\n }\n\n $picker.data('suGeneratorSearchableSelect', api)\n\n $control.on(\n 'click',\n function () {\n $input.focus()\n open()\n }\n )\n\n $input.on(\n {\n focus: open,\n input: function () {\n $picker.addClass('su-generator-searchable-select-open')\n\n if (ajaxAction) {\n requestAjaxOptions()\n } else {\n renderOptions()\n }\n },\n keydown: function (e) {\n if (e.keyCode === 13) {\n var $first = $dropdown.find('.su-generator-searchable-select-option:visible:first')\n\n if ($first.length) {\n e.preventDefault()\n selectOption(String($first.data('value')))\n }\n }\n\n if (e.keyCode === 27) {\n close()\n }\n\n if (e.keyCode === 8 && $input.val() === '' && state.selected.length) {\n state.selected.pop()\n syncValue(true)\n\n if (ajaxAction) {\n resetAjaxSearch(false)\n } else {\n render()\n }\n }\n }\n }\n )\n\n $dropdown.on(\n 'mousedown',\n '.su-generator-searchable-select-option',\n function (e) {\n e.preventDefault()\n selectOption(String($(this).data('value')))\n }\n )\n\n $tokens.on(\n 'click',\n '.su-generator-searchable-select-token-remove',\n function (e) {\n var value = String($(this).closest('.su-generator-searchable-select-token').data('value'))\n var index = state.selected.indexOf(value)\n\n if (index !== -1) {\n state.selected.splice(index, 1)\n syncValue(true)\n render()\n }\n\n e.preventDefault()\n e.stopPropagation()\n $input.focus()\n }\n )\n\n $value.on(\n 'change keyup blur',\n function () {\n state.selected = parseSearchableValue($value.val())\n render()\n loadSelectedLabels()\n }\n )\n\n $(document).on(\n 'mousedown' + namespace,\n function (e) {\n if (!$picker.is(e.target) && $picker.has(e.target).length === 0) {\n close()\n }\n }\n )\n\n render()\n loadSelectedLabels()\n }\n )\n\n $scope.find('.su-generator-searchable-select[data-taxonomy-field]').each(\n function () {\n var $terms = $(this)\n var taxonomyField = $terms.data('taxonomy-field')\n var $taxonomy = $scope.find('#su-generator-attr-' + taxonomyField)\n\n if (!$taxonomy.length) {\n return\n }\n\n var loadTerms = function (clearSelection) {\n var tax = $taxonomy.val()\n var api = $terms.data('suGeneratorSearchableSelect')\n var request = $terms.data('suGeneratorTermsRequest')\n\n if (!api) {\n return\n }\n\n if (request) {\n request.abort()\n }\n\n if (clearSelection) {\n api.clear()\n }\n\n if (!tax || tax === 'any') {\n api.setOptions([])\n api.setLoading(false)\n return\n }\n\n api.setOptions([])\n\n request = $.ajax(\n {\n type: 'POST',\n url: ajaxurl,\n data: {\n action: 'su_generator_get_terms',\n tax: tax,\n noselect: true\n },\n dataType: 'html',\n beforeSend: function () {\n api.setLoading(true)\n },\n success: function (data) {\n api.setOptions(parseSearchableOptionsHTML(data))\n },\n complete: function () {\n api.setLoading(false)\n }\n }\n )\n\n $terms.data('suGeneratorTermsRequest', request)\n }\n\n $taxonomy.on(\n 'change',\n function () {\n loadTerms(true)\n }\n )\n\n if ($taxonomy.val()) {\n loadTerms(false)\n }\n }\n )\n }\n\n var initSortableCheckboxes = ($scope) => {\n $scope.find('.su-generator-sortable-checkboxes').each(\n function () {\n var $picker = $(this)\n\n if ($picker.data('suGeneratorSortableCheckboxes')) {\n return\n }\n\n var $value = $picker.find('.su-generator-sortable-checkboxes-value')\n var $list = $picker.find('.su-generator-sortable-checkboxes-list')\n var baseOrder = []\n var syncing = false\n\n $list.find('.su-generator-sortable-checkboxes-item').each(\n function () {\n baseOrder.push(String($(this).data('value')))\n }\n )\n\n var getItem = (value) => $list.find('.su-generator-sortable-checkboxes-item').filter(\n function () {\n return String($(this).data('value')) === value\n }\n ).first()\n\n var orderedValuesFromInput = () => {\n var selected = parseSearchableValue($value.val())\n var ordered = []\n\n selected.forEach(\n function (value) {\n if (baseOrder.indexOf(value) !== -1 && ordered.indexOf(value) === -1) {\n ordered.push(value)\n }\n }\n )\n\n baseOrder.forEach(\n function (value) {\n if (ordered.indexOf(value) === -1) {\n ordered.push(value)\n }\n }\n )\n\n return ordered\n }\n\n var syncFromValue = () => {\n if (syncing) {\n return\n }\n\n var selected = parseSearchableValue($value.val())\n\n orderedValuesFromInput().forEach(\n function (value) {\n $list.append(getItem(value))\n }\n )\n\n $list.find('.su-generator-sortable-checkboxes-item').each(\n function () {\n var value = String($(this).data('value'))\n $(this).find('.su-generator-sortable-checkboxes-input').prop(\n 'checked',\n selected.indexOf(value) !== -1\n )\n }\n )\n }\n\n var updateValue = () => {\n var selected = []\n\n $list.find('.su-generator-sortable-checkboxes-item').each(\n function () {\n if ($(this).find('.su-generator-sortable-checkboxes-input').prop('checked')) {\n selected.push(String($(this).data('value')))\n }\n }\n )\n\n syncing = true\n $value.val(selected.join(', ')).trigger('change')\n syncing = false\n }\n\n if ($.fn.sortable) {\n $list.sortable(\n {\n handle: '.su-generator-sortable-checkboxes-handle',\n items: '.su-generator-sortable-checkboxes-item',\n placeholder: 'su-generator-sortable-checkboxes-placeholder',\n forcePlaceholderSize: true,\n tolerance: 'pointer',\n stop: function () {\n updateValue()\n }\n }\n )\n }\n\n $list.on('change', '.su-generator-sortable-checkboxes-input', updateValue)\n $value.on('change keyup blur', syncFromValue)\n $picker.data('suGeneratorSortableCheckboxes', true)\n syncFromValue()\n }\n )\n }\n\n var initImageRadios = ($scope) => {\n $scope.find('.su-generator-image-radio').each(\n function () {\n var $picker = $(this)\n\n if ($picker.data('suGeneratorImageRadio')) {\n return\n }\n\n var $value = $picker.find('.su-generator-image-radio-value')\n var $inputs = $picker.find('.su-generator-image-radio-input')\n var syncing = false\n\n var getInputByValue = (value) => $inputs.filter(\n function () {\n return String($(this).val()) === value\n }\n ).first()\n\n var syncFromValue = () => {\n if (syncing) {\n return\n }\n\n var value = String($value.val())\n var $input = getInputByValue(value)\n\n if (!$input.length) {\n $input = $inputs.first()\n }\n\n $inputs.prop('checked', false)\n $input.prop('checked', true)\n\n if (String($value.val()) !== String($input.val())) {\n syncing = true\n $value.val($input.val()).trigger('change')\n syncing = false\n }\n }\n\n var updateValue = () => {\n var $checked = $inputs.filter(':checked')\n\n if (!$checked.length) {\n return\n }\n\n syncing = true\n $value.val($checked.val()).trigger('change')\n syncing = false\n }\n\n $inputs.on('change', updateValue)\n $value.on('change keyup blur', syncFromValue)\n $picker.data('suGeneratorImageRadio', true)\n syncFromValue()\n }\n )\n }\n\n var initRadios = ($scope) => {\n $scope.find('.su-generator-radio').each(\n function () {\n var $picker = $(this)\n\n if ($picker.data('suGeneratorRadio')) {\n return\n }\n\n var $value = $picker.find('.su-generator-radio-value')\n var $inputs = $picker.find('.su-generator-radio-input')\n var syncing = false\n\n var getInputByValue = (value) => $inputs.filter(\n function () {\n return String($(this).val()) === value\n }\n ).first()\n\n var syncFromValue = () => {\n if (syncing) {\n return\n }\n\n var value = String($value.val())\n var $input = getInputByValue(value)\n\n if (!$input.length) {\n $input = $inputs.first()\n }\n\n $inputs.prop('checked', false)\n $input.prop('checked', true)\n\n if (String($value.val()) !== String($input.val())) {\n syncing = true\n $value.val($input.val()).trigger('change')\n syncing = false\n }\n }\n\n var updateValue = () => {\n var $checked = $inputs.filter(':checked')\n\n if (!$checked.length) {\n return\n }\n\n syncing = true\n $value.val($checked.val()).trigger('change')\n syncing = false\n }\n\n $inputs.on('change', updateValue)\n $value.on('change keyup blur', syncFromValue)\n $picker.data('suGeneratorRadio', true)\n syncFromValue()\n }\n )\n }\n\n var isTransparentColor = (value) => String(value || '').trim().toLowerCase() === 'transparent'\n\n var getFallbackColor = ($picker, $value) => {\n var lastColor = $picker.data('suGeneratorLastColor')\n var defaultColor = $picker.closest('.su-generator-attr-container').data('default')\n var currentColor = $value.val()\n\n if (lastColor && !isTransparentColor(lastColor)) {\n return lastColor\n }\n\n if (defaultColor && !isTransparentColor(defaultColor)) {\n return defaultColor\n }\n\n if (currentColor && !isTransparentColor(currentColor)) {\n return currentColor\n }\n\n return '#000000'\n }\n\n var initColorPickers = ($scope) => {\n $scope.find('.su-generator-select-color').each(\n function () {\n var $picker = $(this)\n\n if ($picker.data('suGeneratorSelectColor')) {\n return\n }\n\n var $wheel = $picker.find('.su-generator-select-color-wheel').filter(':first')\n var $value = $picker.find('.su-generator-select-color-value').filter(':first')\n var $transparent = $picker.find('.su-generator-select-color-transparent-input').filter(':first')\n var allowTransparent = $picker.hasClass('su-generator-select-color-allow-transparent') && $transparent.length > 0\n\n var updateTransparentState = () => {\n if (!allowTransparent) {\n return\n }\n\n var value = String($value.val() || '').trim()\n var isTransparent = isTransparentColor(value)\n\n if (value !== '' && !isTransparent) {\n $picker.data('suGeneratorLastColor', value)\n }\n\n $picker.toggleClass('su-generator-select-color-transparent-active', isTransparent)\n $transparent.prop('checked', isTransparent)\n\n if (isTransparent) {\n $wheel.hide()\n }\n }\n\n $wheel.farbtastic($value)\n\n $value.focus(\n function () {\n if (!allowTransparent || !isTransparentColor($value.val())) {\n $wheel.show()\n }\n }\n )\n\n $value.blur(\n function () {\n $wheel.hide()\n }\n )\n\n if (allowTransparent) {\n $transparent.on(\n 'change',\n function () {\n if ($transparent.prop('checked')) {\n var color = String($value.val() || '').trim()\n\n if (color !== '') {\n $picker.data('suGeneratorLastColor', color)\n }\n\n $value.val('transparent')\n } else {\n $value.val(getFallbackColor($picker, $value))\n }\n\n updateTransparentState()\n $value.trigger('change')\n }\n )\n\n $value.on('change keyup blur', updateTransparentState)\n updateTransparentState()\n }\n\n $picker.data('suGeneratorSelectColor', true)\n }\n )\n }\n\n var clampBorderNewPercent = (value, fallback) => {\n var number = parseInt(value, 10)\n\n if (isNaN(number)) {\n number = fallback\n }\n\n return Math.max(0, Math.min(100, number))\n }\n\n var normalizeBorderNewHex = (value, fallback) => {\n var match = String(value || '').trim().match(/^#?([a-f0-9]{3}|[a-f0-9]{6})$/i)\n\n if (!match) {\n return fallback || '#000000'\n }\n\n var hex = match[1].toLowerCase()\n\n if (hex.length === 3) {\n hex = hex.charAt(0) + hex.charAt(0) + hex.charAt(1) + hex.charAt(1) + hex.charAt(2) + hex.charAt(2)\n }\n\n return '#' + hex\n }\n\n var borderNewHexToRgb = (hex) => {\n hex = normalizeBorderNewHex(hex).replace('#', '')\n\n return {\n red: parseInt(hex.substr(0, 2), 16),\n green: parseInt(hex.substr(2, 2), 16),\n blue: parseInt(hex.substr(4, 2), 16)\n }\n }\n\n var borderNewRgbToHex = (red, green, blue) => {\n var toHex = (value) => {\n value = Math.max(0, Math.min(255, parseInt(value, 10) || 0)).toString(16)\n return value.length === 1 ? '0' + value : value\n }\n\n return '#' + toHex(red) + toHex(green) + toHex(blue)\n }\n\n var formatBorderNewAlpha = (percent) => Number((clampBorderNewPercent(percent, 100) / 100).toFixed(2)).toString()\n\n var formatBorderNewColor = (hex, alpha) => {\n alpha = clampBorderNewPercent(alpha, 100)\n hex = normalizeBorderNewHex(hex)\n\n if (alpha >= 100) {\n return hex\n }\n\n var rgb = borderNewHexToRgb(hex)\n\n return 'rgba(' + rgb.red + ',' + rgb.green + ',' + rgb.blue + ',' + formatBorderNewAlpha(alpha) + ')'\n }\n\n var parseBorderNewColor = (value) => {\n value = String(value || '').trim()\n\n if (isTransparentColor(value)) {\n return {\n hex: '#000000',\n alpha: 0\n }\n }\n\n var hex = normalizeBorderNewHex(value, '')\n\n if (hex) {\n return {\n hex: hex,\n alpha: 100\n }\n }\n\n var rgba = value.match(/^rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})(?:\\s*,\\s*([0-9.]+)\\s*)?\\)$/i)\n\n if (rgba) {\n var alpha = typeof rgba[4] === 'undefined'\n ? 1\n : Math.max(0, Math.min(1, parseFloat(rgba[4]) || 0))\n\n return {\n hex: borderNewRgbToHex(rgba[1], rgba[2], rgba[3]),\n alpha: Math.round(alpha * 100)\n }\n }\n\n return {\n hex: '#000000',\n alpha: 100\n }\n }\n\n var getBorderNewSelectValue = ($select, value, fallback) => {\n value = String(value || '')\n\n var hasValue = $select.find('option').filter(\n function () {\n return String($(this).val()) === value\n }\n ).length > 0\n\n if (hasValue) {\n return value\n }\n\n return fallback || String($select.find('option:first').val() || '')\n }\n\n var parseBorderNewValue = (value, $width, $style) => {\n var parsed = {\n width: getBorderNewSelectValue($width, '1px', '1px'),\n style: getBorderNewSelectValue($style, 'solid', 'solid'),\n hex: '#000000',\n alpha: 100\n }\n\n value = String(value || '').trim()\n\n if (value.toLowerCase() === 'none') {\n parsed.width = getBorderNewSelectValue($width, '0px', parsed.width)\n parsed.alpha = 0\n return parsed\n }\n\n var border = value.match(/^(\\d+(?:\\.\\d+)?)px\\s+([a-z-]+)\\s+(.+)$/i)\n\n if (!border) {\n return parsed\n }\n\n parsed.width = getBorderNewSelectValue($width, parseInt(border[1], 10) + 'px', parsed.width)\n parsed.style = getBorderNewSelectValue($style, border[2].toLowerCase(), parsed.style)\n\n var color = parseBorderNewColor(border[3])\n\n parsed.hex = color.hex\n parsed.alpha = color.alpha\n\n return parsed\n }\n\n var setBorderNewPickerOpen = ($picker, open) => {\n $picker.toggleClass('su-generator-border-new-open', open)\n $picker.find('.su-generator-border-new-popover').filter(':first').prop('hidden', !open)\n $picker.find('.su-generator-border-new-color-button').filter(':first').attr('aria-expanded', open ? 'true' : 'false')\n }\n\n var bindBorderNewDocumentEvents = () => {\n if ($(document).data('suGeneratorBorderNewDocument')) {\n return\n }\n\n $(document).on(\n 'mousedown.suGeneratorBorderNew',\n function (e) {\n $('.su-generator-border-new-open').each(\n function () {\n var $picker = $(this)\n\n if ($picker.is(e.target) || $picker.has(e.target).length) {\n return\n }\n\n setBorderNewPickerOpen($picker, false)\n }\n )\n }\n )\n\n $(document).data('suGeneratorBorderNewDocument', true)\n }\n\n var initBorderNewPickers = ($scope) => {\n bindBorderNewDocumentEvents()\n\n $scope.find('.su-generator-border-new').each(\n function () {\n var $picker = $(this)\n\n if ($picker.data('suGeneratorBorderNew')) {\n return\n }\n\n var $width = $picker.find('.su-generator-border-new-width').filter(':first')\n var $style = $picker.find('.su-generator-border-new-style').filter(':first')\n var $button = $picker.find('.su-generator-border-new-color-button').filter(':first')\n var $swatch = $picker.find('.su-generator-border-new-color-swatch-color').filter(':first')\n var $label = $picker.find('.su-generator-border-new-color-label').filter(':first')\n var $wheel = $picker.find('.su-generator-border-new-color-wheel').filter(':first')\n var $hex = $picker.find('.su-generator-border-new-color-value').filter(':first')\n var $alphaRange = $picker.find('.su-generator-border-new-alpha-range').filter(':first')\n var $alphaValue = $picker.find('.su-generator-border-new-alpha-value').filter(':first')\n var $value = $picker.find('.su-generator-border-new-value').filter(':first')\n var syncing = false\n\n var updateColorPreview = () => {\n var color = formatBorderNewColor($hex.val(), $alphaRange.val())\n\n $swatch.css('background-color', color)\n $label.text(color)\n }\n\n var syncAlphaControls = ($source) => {\n var alpha = clampBorderNewPercent($source.val(), 100)\n\n $alphaRange.val(alpha)\n $alphaValue.val(alpha)\n\n return alpha\n }\n\n var updateValue = () => {\n if (syncing) {\n return\n }\n\n var color = formatBorderNewColor($hex.val(), syncAlphaControls($alphaRange))\n\n syncing = true\n $value.val($width.val() + ' ' + $style.val() + ' ' + color).trigger('change')\n syncing = false\n\n updateColorPreview()\n }\n\n var syncFromValue = () => {\n if (syncing) {\n return\n }\n\n var parsed = parseBorderNewValue($value.val(), $width, $style)\n\n syncing = true\n $width.val(parsed.width)\n $style.val(parsed.style)\n $hex.val(parsed.hex).trigger('change')\n $alphaRange.val(parsed.alpha)\n $alphaValue.val(parsed.alpha)\n syncing = false\n\n updateColorPreview()\n }\n\n $wheel.farbtastic($hex)\n\n $width.on('change', updateValue)\n $style.on('change', updateValue)\n $hex.on('change keyup blur', updateValue)\n\n $alphaRange.on(\n 'input change',\n function () {\n syncAlphaControls($alphaRange)\n updateValue()\n }\n )\n\n $alphaValue.on(\n 'change keyup blur',\n function () {\n syncAlphaControls($alphaValue)\n updateValue()\n }\n )\n\n $value.on('change keyup blur', syncFromValue)\n\n $button.on(\n 'click',\n function (e) {\n setBorderNewPickerOpen($picker, !$picker.hasClass('su-generator-border-new-open'))\n e.preventDefault()\n }\n )\n\n $picker.on(\n 'keydown',\n function (e) {\n if (e.key === 'Escape') {\n setBorderNewPickerOpen($picker, false)\n }\n }\n )\n\n $picker.data('suGeneratorBorderNew', true)\n syncFromValue()\n }\n )\n }\n\n self.init = () => {\n $('#su-generator-filter a').click(\n function (e) {\n // Prepare data\n var filter = $(this).data('filter')\n // If filter All, show all choices\n if (filter === 'all') {\n $choice.css(\n {\n display: 'flex'\n }\n ).removeClass('su-generator-choice-first')\n } else { // Else run search\n var regex = new RegExp(filter, 'gi')\n // Hide all choices\n $choice.css({ display: 'none' })\n // Find searched choices and show\n $choice.each(\n function () {\n // Get shortcode name\n var group = $(this).data('group')\n // Show choice if matched\n if (group.match(regex) !== null) {\n $(this)\n .css({ display: 'flex' })\n .removeClass('su-generator-choice-first')\n }\n }\n )\n }\n e.preventDefault()\n }\n )\n // Go to home link\n $('#su-generator').on(\n 'click',\n '.su-generator-home',\n function (e) {\n // Clear search field\n clearSearch()\n // Show choices panel\n showChoicesMode()\n // Clear selection\n self.state.mceSelection = ''\n // Focus search field\n $search.focus()\n e.preventDefault()\n }\n )\n // Generator close button\n $('#su-generator').on(\n 'click',\n '.su-generator-close',\n function (e) {\n // Close popup\n $.magnificPopup.close()\n // Prevent default action\n e.preventDefault()\n }\n )\n // Search field\n $search.on(\n {\n focus: function () {\n // Clear field\n clearSearch()\n // Show choices panel\n showChoicesMode()\n },\n keyup: function (e) {\n // Prepare vars\n var $first = $('.su-generator-choice-first:first')\n var val = $(this).val()\n var regex = new RegExp(val, 'gi')\n var best = 0\n // Hotkey action\n if (e.keyCode === 13 && $first.length > 0) {\n e.preventDefault()\n $(this).val('').blur()\n $first.trigger('click')\n }\n // Hide all choices\n $choice.css(\n {\n display: 'none'\n }\n ).removeClass('su-generator-choice-first')\n // Loop and highlight choices\n $choice.each(\n function () {\n // Get choice data\n var data = $(this).data()\n var id = data.shortcode\n var name = data.name\n var desc = data.desc\n var group = data.group\n var matches = ([id, name, desc, group].join(' ')).match(regex)\n // Highlight choice if matched\n if (matches !== null) {\n // Highlight current choice\n $(this).css(\n {\n display: 'flex'\n }\n )\n // Check for exact match\n if (val === id) {\n // Remove primary class from all choices\n $choice.removeClass('su-generator-choice-first')\n // Add primary class to the current choice\n $(this).addClass('su-generator-choice-first')\n // Prevent selecting by matches number\n best = 999\n } else if (matches.length > best) { // Check matches length\n // Remove primary class from all choices\n $choice.removeClass('su-generator-choice-first')\n // Add primary class to the current choice\n $(this).addClass('su-generator-choice-first')\n // Save the score\n best = matches.length\n }\n }\n }\n )\n // Remove primary class if search field is empty\n if (val === '') {\n $choice.removeClass('su-generator-choice-first')\n }\n\n toggleSearchClear()\n }\n }\n )\n // Clear search button\n $searchClear.on(\n 'click',\n function (e) {\n clearSearch()\n showChoicesMode()\n $search.focus()\n e.preventDefault()\n }\n )\n // Click on shortcode choice\n $choice.on(\n 'click',\n function (e) {\n var $selectedChoice = $(this)\n // Prepare data\n var shortcode = $selectedChoice.data('shortcode')\n var isProChoice = $selectedChoice.hasClass('su-generator-choice-is-pro')\n // Load shortcode options\n $.ajax(\n {\n type: 'POST',\n url: ajaxurl,\n data: {\n action: 'su_generator_settings',\n shortcode: shortcode\n },\n beforeSend: function () {\n if (isProChoice) {\n $settings.removeClass('su-generator-loading').hide()\n return\n }\n\n // Switch to settings panel\n showSettingsMode(false)\n // Show loading animation\n $settings.addClass('su-generator-loading').show()\n },\n success: function (data) {\n // Hide loading animation\n $settings.removeClass('su-generator-loading')\n // Insert new HTML\n $settings.html(data)\n var isProFeaturesMode = $settings.find('.su-generator-pro-features-banner').length > 0\n $generator.toggleClass(\n 'su-generator-pro-features-mode',\n isProFeaturesMode\n )\n if (isProChoice) {\n showSettingsMode(isProFeaturesMode)\n $settings.show()\n }\n // Store server-rendered defaults before applying editor selection or saved settings.\n self.state.defaultSettings = $.extend({}, self.getSettings())\n // Apply selected text to the content field\n var $content = $('#su-generator-content')\n if (typeof self.state.mceSelection !== 'undefined' && self.state.mceSelection !== '' && $content.attr('type') !== 'hidden') {\n $content.val(self.state.mceSelection)\n }\n // Init range pickers\n $('.su-generator-range-picker').each(\n function (index) {\n var $picker = $(this)\n var $val = $picker.find('input')\n var min = $val.attr('min')\n var max = $val.attr('max')\n var step = $val.attr('step')\n // Apply noUIslider\n $val.simpleSlider(\n {\n snap: true,\n step: step,\n range: [min, max]\n }\n )\n $val.show()\n $val.on(\n 'keyup blur',\n function (e) {\n $val.simpleSlider('setValue', $val.val())\n }\n )\n }\n )\n // Init color pickers\n initColorPickers($settings)\n // Init new border pickers\n initBorderNewPickers($settings)\n // Init image sourse pickers\n $('.su-generator-isp').each(\n function () {\n var $picker = $(this)\n var $sources = $picker.find('.su-generator-isp-sources')\n var $source = $picker.find('.su-generator-isp-source')\n var $addMedia = $picker.find('.su-generator-isp-add-media')\n var $images = $picker.find('.su-generator-isp-images')\n var $cats = $picker.find('.su-generator-isp-categories')\n var $taxes = $picker.find('.su-generator-isp-taxonomies')\n var $terms = $('.su-generator-isp-terms')\n var $val = $picker.find('.su-generator-attr')\n var frame\n // Update hidden value\n var update = function () {\n var val = 'none'\n var ids = ''\n var source = $sources.val()\n // Media library\n if (source === 'media') {\n var images = []\n $images.find('span').each(\n function (i) {\n images[i] = $(this).data('id')\n }\n )\n if (images.length > 0) {\n ids = images.join(',')\n }\n }\n // Category\n else if (source === 'category') {\n var categories = $cats.val() || []\n if (categories.length > 0) {\n ids = categories.join(',')\n }\n }\n // Taxonomy\n else if (source === 'taxonomy') {\n var tax = $taxes.val() || ''\n var terms = $terms.val() || []\n if (tax !== '0' && terms.length > 0) {\n val = 'taxonomy: ' + tax + '/' + terms.join(',')\n }\n }\n // Deselect\n else if (source === '0') {\n val = 'none'\n }\n // Other options\n else {\n val = source\n }\n if (ids !== '') {\n val = source + ': ' + ids\n }\n $val.val(val).trigger('change')\n }\n // Switch source\n $sources.on(\n 'change',\n function (e) {\n var source = $(this).val()\n e.preventDefault()\n $source.removeClass('su-generator-isp-source-open')\n if (source.indexOf(':') === -1) {\n $picker.find('.su-generator-isp-source-' + source).addClass('su-generator-isp-source-open')\n }\n update()\n }\n )\n // Remove image\n $images.on(\n 'click',\n 'span i',\n function () {\n $(this).parent('span').css('border-color', '#f03').fadeOut(\n 300,\n function () {\n $(this).remove()\n update()\n }\n )\n }\n )\n // Add image\n $addMedia.click(\n function (e) {\n e.preventDefault()\n if (typeof (frame) !== 'undefined') {\n frame.close()\n }\n frame = wp.media.frames.su_media_frame_1 = wp.media(\n {\n title: SUGL10n.isp_media_title,\n library: {\n type: 'image'\n },\n button: {\n text: SUGL10n.isp_media_insert\n },\n multiple: true\n }\n )\n frame.on('open', function () {\n $('.mfp-wrap').addClass('hidden')\n })\n frame.on('close', function () {\n $('.mfp-wrap').removeClass('hidden')\n })\n frame.on(\n 'select',\n function () {\n var files = frame.state().get('selection').toJSON()\n $images.find('em').remove()\n $.each(\n files,\n function (i) {\n $images.append('<span data-id=\"' + this.id + '\"><img src=\"' + this.url + '\" alt=\"\" /><i class=\"sui sui-times\"></i></span>')\n }\n )\n update()\n }\n ).open()\n }\n )\n // Sort images\n $images.sortable(\n {\n revert: 200,\n containment: $picker,\n tolerance: 'pointer',\n stop: function () {\n update()\n }\n }\n )\n // Select categories and terms\n $cats.on('change', update)\n $terms.on('change', update)\n // Select taxonomy\n $taxes.on(\n 'change',\n function () {\n var $cont = $(this).parents('.su-generator-isp-source')\n var tax = $(this).val()\n // Remove terms\n $terms.hide().find('option').remove()\n update()\n // Taxonomy is not selected\n if (tax === '0') {\n\n } else { // Taxonomy selected\n var ajaxTermSelect = $.ajax(\n {\n url: ajaxurl,\n type: 'post',\n dataType: 'html',\n data: {\n action: 'su_generator_get_terms',\n tax: tax,\n class: 'su-generator-isp-terms',\n multiple: true,\n size: 10\n },\n beforeSend: function () {\n if (typeof ajaxTermSelect === 'object') {\n ajaxTermSelect.abort()\n }\n $terms.html('').attr('disabled', true).hide()\n $cont.addClass('su-generator-loading')\n },\n success: function (data) {\n $terms.html(data).attr('disabled', false).show()\n $cont.removeClass('su-generator-loading')\n }\n }\n )\n }\n }\n )\n }\n )\n // Init media buttons\n $('.su-generator-upload-button').each(\n function () {\n var $button = $(this)\n var $val = $(this).parents('.su-generator-attr-container').find('input:text')\n var file\n $button.on(\n 'click',\n function (e) {\n e.preventDefault()\n e.stopPropagation()\n // If the frame already exists, reopen it\n if (typeof (file) !== 'undefined') {\n file.close()\n }\n // Create WP media frame.\n file = wp.media.frames.su_media_frame_2 = wp.media(\n {\n // Title of media manager frame\n title: SUGL10n.upload_title,\n button: {\n // Button text\n text: SUGL10n.upload_insert\n },\n // Do not allow multiple files, if you want multiple, set true\n multiple: false\n }\n )\n // callback for selected image\n file.on(\n 'select',\n function () {\n var attachment = file.state().get('selection').first().toJSON()\n $val.val(attachment.url).trigger('change')\n }\n )\n file.on('open', function () {\n $('.mfp-wrap').addClass('hidden')\n })\n file.on('close', function () {\n $('.mfp-wrap').removeClass('hidden')\n })\n // Open modal\n file.open()\n }\n )\n }\n )\n // Init icon pickers\n $('.su-generator-icon-picker-button').each(\n function () {\n var $button = $(this)\n var $field = $(this).parents('.su-generator-attr-container')\n var $val = $field.find('.su-generator-attr')\n var $picker = $field.find('.su-generator-icon-picker')\n var $filter = $picker.find('input:text')\n $button.click(\n function (e) {\n $picker.toggleClass('su-generator-icon-picker-visible')\n $filter.val('').trigger('keyup')\n if ($picker.hasClass('su-generator-icon-picker-loaded')) {\n return\n }\n // Load icons\n $.ajax(\n {\n type: 'post',\n url: ajaxurl,\n data: {\n action: 'su_generator_get_icons'\n },\n dataType: 'html',\n beforeSend: function () {\n // Show loading animation\n $picker.addClass('su-generator-loading')\n // Add loaded class\n $picker.addClass('su-generator-icon-picker-loaded')\n },\n success: function (data) {\n $picker.append(data)\n var $icons = $picker.children('i')\n $icons.click(\n function (e) {\n $val.val('icon: ' + $(this).attr('title'))\n $picker.removeClass('su-generator-icon-picker-visible')\n $val.trigger('change')\n e.preventDefault()\n }\n )\n $filter.on(\n {\n keyup: function () {\n var val = $(this).val()\n var regex = new RegExp(val, 'gi')\n // Hide all choices\n $icons.hide()\n // Find searched choices and show\n $icons.each(\n function () {\n // Get shortcode name\n var name = $(this).attr('title')\n // Show choice if matched\n if (name.match(regex) !== null) {\n $(this).show()\n }\n }\n )\n },\n focus: function () {\n $(this).val('')\n $icons.show()\n }\n }\n )\n $picker.removeClass('su-generator-loading')\n }\n }\n )\n e.preventDefault()\n }\n )\n }\n )\n // Init switches\n $('.su-generator-switch').click(\n function (e) {\n // Prepare data\n var $switch = $(this)\n var $value = $switch.parent().children('input')\n var isOn = $value.val() === 'yes'\n // Disable\n if (isOn) {\n // Change value\n $value.val('no').trigger('change')\n } else { // Enable\n // Change value\n $value.val('yes').trigger('change')\n }\n e.preventDefault()\n }\n )\n $('.su-generator-switch-value').on(\n 'change',\n function () {\n // Prepare data\n var $value = $(this)\n var $switch = $value.parent().children('.su-generator-switch')\n var value = $value.val()\n // Disable\n if (value === 'yes') {\n $switch\n .removeClass('su-generator-switch-no')\n .addClass('su-generator-switch-yes')\n .attr('aria-checked', 'true')\n } else if (value === 'no') { // Enable\n $switch\n .removeClass('su-generator-switch-yes')\n .addClass('su-generator-switch-no')\n .attr('aria-checked', 'false')\n }\n }\n )\n // Init searchable selects\n initSearchableSelects($settings)\n // Init sortable checkbox fields\n initSortableCheckboxes($settings)\n // Init image radio fields\n initImageRadios($settings)\n // Init radio fields\n initRadios($settings)\n // Init tax_term selects\n $('select#su-generator-attr-taxonomy').on(\n 'change',\n function () {\n var $taxonomy = $(this)\n var tax = $taxonomy.val()\n var $terms = $('select#su-generator-attr-tax_term')\n // Load new options\n window.su_generator_get_terms = $.ajax(\n {\n type: 'POST',\n url: ajaxurl,\n data: {\n action: 'su_generator_get_terms',\n tax: tax,\n noselect: true\n },\n dataType: 'html',\n beforeSend: function () {\n // Check previous requests\n if (typeof window.su_generator_get_terms === 'object') {\n window.su_generator_get_terms.abort()\n }\n // Show loading animation\n $terms.parent().addClass('su-generator-loading')\n },\n success: function (data) {\n // Remove previous options\n $terms.find('option').remove()\n // Append new options\n $terms.append(data)\n // Hide loading animation\n $terms.parent().removeClass('su-generator-loading')\n }\n }\n )\n }\n )\n // Init shadow pickers\n $('.su-generator-shadow-picker').each(\n function (index) {\n var $picker = $(this)\n var $fields = $picker.find('.su-generator-shadow-picker-field input')\n var $hoff = $picker.find('.su-generator-sp-hoff')\n var $voff = $picker.find('.su-generator-sp-voff')\n var $blur = $picker.find('.su-generator-sp-blur')\n var $color = {\n cnt: $picker.find('.su-generator-shadow-picker-color'),\n value: $picker.find('.su-generator-shadow-picker-color-value'),\n wheel: $picker.find('.su-generator-shadow-picker-color-wheel')\n }\n var $val = $picker.find('.su-generator-attr')\n // Init color picker\n $color.wheel.farbtastic($color.value)\n $color.value.focus(\n function () {\n $color.wheel.show()\n }\n )\n $color.value.blur(\n function () {\n $color.wheel.hide()\n }\n )\n // Handle text fields\n $fields.on(\n 'change blur keyup',\n function () {\n $val.val($hoff.val() + 'px ' + $voff.val() + 'px ' + $blur.val() + 'px ' + $color.value.val()).trigger('change')\n }\n )\n $val.on(\n 'keyup',\n function () {\n var value = $(this).val().split(' ')\n // Value is correct\n if (value.length === 4) {\n $hoff.val(value[0].replace('px', ''))\n $voff.val(value[1].replace('px', ''))\n $blur.val(value[2].replace('px', ''))\n $color.value.val(value[3])\n $fields.trigger('keyup')\n }\n }\n )\n }\n )\n // Init border pickers\n $('.su-generator-border-picker').each(\n function (index) {\n var $picker = $(this)\n var $fields = $picker.find('.su-generator-border-picker-field input, .su-generator-border-picker-field select')\n var $width = $picker.find('.su-generator-bp-width')\n var $style = $picker.find('.su-generator-bp-style')\n var $color = {\n cnt: $picker.find('.su-generator-border-picker-color'),\n value: $picker.find('.su-generator-border-picker-color-value'),\n wheel: $picker.find('.su-generator-border-picker-color-wheel')\n }\n var $val = $picker.find('.su-generator-attr')\n // Init color picker\n $color.wheel.farbtastic($color.value)\n $color.value.focus(\n function () {\n $color.wheel.show()\n }\n )\n $color.value.blur(\n function () {\n $color.wheel.hide()\n }\n )\n // Handle text fields\n $fields.on(\n 'change blur keyup',\n function () {\n $val.val($width.val() + 'px ' + $style.val() + ' ' + $color.value.val()).trigger('change')\n }\n )\n $val.on(\n 'keyup',\n function () {\n var value = $(this).val().split(' ')\n // Value is correct\n if (value.length === 3) {\n $width.val(value[0].replace('px', ''))\n $style.val(value[1])\n $color.value.val(value[2])\n $fields.trigger('keyup')\n }\n }\n )\n }\n )\n // Remove skip class when setting is changed\n $settings.find('.su-generator-attr').on(\n 'change keyup blur',\n function () {\n var $cnt = $(this).parents('.su-generator-attr-container')\n var _default = $cnt.data('default')\n var val = $(this).val()\n // Value is changed\n if (val != _default) {\n $cnt.removeClass('su-generator-skip')\n } else {\n $cnt.addClass('su-generator-skip')\n }\n }\n )\n // Bind updating shortcode preview on settings changes\n $settings.find('input, textarea, select').on(\n 'change keyup blur',\n function () {\n self.updateShortcodePreview()\n self.updatePreview()\n }\n )\n // Init value setters\n $('.su-generator-set-value').click(\n function (e) {\n $(this).parents('.su-generator-attr-container').find('input').val($(this).text()).trigger('change')\n }\n )\n // Init settings tabs after controls are ready.\n initGeneratorTabs($settings)\n // Save selected value\n $selected.val(shortcode)\n self.updateShortcodePreview()\n self.updatePreview(true)\n // Load last used preset\n abortLastUsedRequest()\n var lastUsedRequest = $.ajax(\n {\n type: 'GET',\n url: ajaxurl,\n data: {\n action: 'su_generator_get_preset',\n id: 'last_used',\n shortcode: shortcode,\n nonce: $('#su_generator_presets_nonce').val()\n },\n beforeSend: function () {\n // Show loading animation\n // $settings.addClass('su-generator-loading');\n },\n success: function (data) {\n // Remove loading animation\n // $settings.removeClass('su-generator-loading');\n // Set new settings\n self.setSettings(data)\n // Apply selected text to the content field\n var $content = $('#su-generator-content')\n if (typeof self.state.mceSelection !== 'undefined' && self.state.mceSelection !== '' && $content.attr('type') !== 'hidden') {\n $content.val(self.state.mceSelection)\n self.updateShortcodePreview()\n self.updatePreview(true)\n }\n },\n complete: function () {\n if (self.state.lastUsedRequest === lastUsedRequest) {\n self.state.lastUsedRequest = null\n }\n },\n dataType: 'json'\n }\n )\n self.state.lastUsedRequest = lastUsedRequest\n },\n dataType: 'html'\n }\n )\n }\n )\n // Insert shortcode\n $('#su-generator').on('click', '.su-generator-insert', self.insertShortcode)\n // Copy shortcode\n $('#su-generator').on('click', '.su-generator-copy', self.copyShortcode)\n // Reset shortcode settings\n $('#su-generator').on('click', '.su-generator-reset', self.resetSettings)\n var gp_hover_timer\n // Presets manager - mouseenter\n $('#su-generator').on(\n 'mouseenter click',\n '.su-generator-presets',\n function () {\n clearTimeout(gp_hover_timer)\n $('.su-gp-popup').show()\n }\n )\n // Presets manager - mouseleave\n $('#su-generator').on(\n 'mouseleave',\n '.su-generator-presets',\n function () {\n gp_hover_timer = window.setTimeout(\n function () {\n $('.su-gp-popup').fadeOut(200)\n },\n 600\n )\n }\n )\n // Presets manager - add new preset\n $('#su-generator').on(\n 'click',\n '.su-gp-new',\n function (e) {\n // Prepare data\n var $container = $(this).parents('.su-generator-presets')\n var $list = $('.su-gp-list')\n var id = new Date().getTime()\n // Ask for preset name\n var name = prompt(SUGL10n.presets_prompt_msg, SUGL10n.presets_prompt_value)\n // Name is entered\n if (name !== '' && name !== null) {\n // Hide default text\n $list.find('b').hide()\n // Add new option\n $list.append('<span data-id=\"' + id + '\"><em>' + name + '</em><i class=\"sui sui-times\"></i></span>')\n // Perform AJAX request\n self.addPreset(id, name)\n }\n }\n )\n // Presets manager - load preset\n $('#su-generator').on(\n 'click',\n '.su-gp-list span',\n function (e) {\n // Prepare data\n var shortcode = $('.su-generator-presets').data('shortcode')\n var id = $(this).data('id')\n var $insert = $('.su-generator-insert')\n // Hide popup\n $('.su-gp-popup').hide()\n // Disable hover timer\n clearTimeout(gp_hover_timer)\n // Get the preset\n $.ajax(\n {\n type: 'GET',\n url: ajaxurl,\n data: {\n action: 'su_generator_get_preset',\n id: id,\n shortcode: shortcode,\n nonce: $('#su_generator_presets_nonce').val()\n },\n beforeSend: function () {\n // Disable insert button\n $insert.addClass('button-primary-disabled').attr('disabled', true)\n },\n success: function (data) {\n // Enable insert button\n $insert.removeClass('button-primary-disabled').attr('disabled', false)\n // Set new settings\n self.setSettings(data)\n },\n dataType: 'json'\n }\n )\n // Prevent default action\n e.preventDefault()\n e.stopPropagation()\n }\n )\n // Presets manager - remove preset\n $('#su-generator').on(\n 'click',\n '.su-gp-list i',\n function (e) {\n // Prepare data\n var $preset = $(this).parent('span')\n var id = $preset.data('id')\n // Remove DOM element\n removePresetElement($preset)\n // Perform ajax request\n self.removePreset(id)\n // Prevent <span> action\n e.stopPropagation()\n // Prevent default action\n e.preventDefault()\n }\n )\n }\n\n self.addPreset = function (id, name) {\n // Prepare shortcode name and current settings\n var shortcode = $('.su-generator-presets').data('shortcode')\n var settings = self.getSettings()\n // Perform AJAX request\n $.ajax(\n {\n type: 'POST',\n url: ajaxurl,\n data: {\n action: 'su_generator_add_preset',\n id: id,\n name: name,\n shortcode: shortcode,\n settings: settings,\n nonce: $('#su_generator_presets_nonce').val()\n }\n }\n )\n }\n\n self.removePreset = function (id) {\n // Get current shortcode name\n var shortcode = $('.su-generator-presets').data('shortcode')\n // Perform AJAX request\n $.ajax(\n {\n type: 'POST',\n url: ajaxurl,\n data: {\n action: 'su_generator_remove_preset',\n id: id,\n shortcode: shortcode,\n nonce: $('#su_generator_presets_nonce').val()\n }\n }\n )\n }\n\n self.parseSettings = function () {\n var settingsSelector = $('#su-generator-option-skip').val() === 'on'\n ? '#su-generator-settings .su-generator-attr-container:not(.su-generator-skip) .su-generator-attr'\n : '#su-generator-settings .su-generator-attr-container .su-generator-attr'\n // Prepare data\n var query = $selected.val()\n var prefix = $prefix.val()\n var $settings = $(settingsSelector)\n var $content = $('textarea#su-generator-content')\n var content = $content.length ? $content.val() : 'false'\n var result = new String('')\n // Open shortcode\n result += '[' + prefix + query\n // Add shortcode attributes\n $settings.each(\n function () {\n // Prepare field and value\n var $this = $(this)\n var value = ''\n // Selects\n if ($this.is('select')) {\n value = $this.find('option:selected').val()\n }\n // Other fields\n else {\n value = $this.val()\n }\n // Check that value is not empty\n if (value == null) {\n value = ''\n } else if (typeof value === 'array') {\n value = value.join(',')\n }\n // Add attribute\n if (value !== '') {\n result += ' ' + $(this).attr('name') + '=\"' + $(this).val().toString().replace(/\"/gi, \"'\") + '\"'\n }\n }\n )\n // End of opening tag\n result += ']'\n // Wrap shortcode if content presented\n if (content != 'false') {\n result += content + '[/' + prefix + query + ']'\n }\n // Return result\n return result\n }\n\n self.getSettings = function () {\n // Prepare data\n var query = $selected.val()\n var $settings = $('#su-generator-settings .su-generator-attr')\n var $content = $('textarea#su-generator-content')\n var content = $content.length ? $content.val() : 'false'\n var data = {}\n // Add shortcode attributes\n $settings.each(\n function (i) {\n // Prepare field and value\n var $this = $(this)\n var value = ''\n var name = $this.attr('name')\n // Selects\n if ($this.is('select')) {\n value = $this.find('option:selected').val()\n }\n // Other fields\n else {\n value = $this.val()\n }\n // Check that value is not empty\n if (value == null) {\n value = ''\n }\n // Save value\n data[name] = value\n }\n )\n // Add content\n data.content = content.toString()\n // Return data\n return data\n }\n\n self.setSettings = function (data) {\n // Prepare data\n var $settings = $('#su-generator-settings .su-generator-attr')\n var $content = $('#su-generator-content')\n // Loop through settings\n $settings.each(\n function () {\n var $this = $(this)\n var name = $this.attr('name')\n // Data contains value for this field\n if (data.hasOwnProperty(name)) {\n // Set new value\n $this.val(data[name])\n $this.trigger('keyup').trigger('change').trigger('blur')\n }\n }\n )\n // Set content\n if (data.hasOwnProperty('content')) {\n $content.val(data.content).trigger('keyup').trigger('change').trigger('blur')\n }\n // Update preview\n self.updateShortcodePreview()\n self.updatePreview(true)\n }\n\n self.setShortcodePreview = function (shortcode) {\n var $shortcodePreview = $('#su-generator-shortcode-preview')\n var $code = $shortcodePreview.find('code')\n\n if ($code.length) {\n $code.text(shortcode)\n } else {\n $shortcodePreview.text(shortcode)\n }\n }\n\n self.updateShortcodePreview = function () {\n self.setShortcodePreview(self.parseSettings())\n }\n\n self.resetSettings = function (e) {\n if (!self.state.defaultSettings) {\n return\n }\n\n abortLastUsedRequest()\n self.setSettings($.extend({}, self.state.defaultSettings))\n removePresetElement($('.su-gp-list span').filter(function () {\n return String($(this).data('id')) === 'last_used'\n }))\n self.removePreset('last_used')\n\n if (e) {\n e.preventDefault()\n }\n }\n\n self.copyShortcode = function (e) {\n var $button = $(this)\n var shortcode = self.parseSettings()\n var showCopied = function () {\n setCopyButtonState($button, true)\n\n window.setTimeout(\n function () {\n setCopyButtonState($button, false)\n },\n 1600\n )\n }\n\n self.setShortcodePreview(shortcode)\n self.addPreset('last_used', SUGL10n.last_used)\n\n if (navigator.clipboard && navigator.clipboard.writeText) {\n $.when(navigator.clipboard.writeText(shortcode))\n .done(showCopied)\n .fail(\n function () {\n if (fallbackCopyText(shortcode)) {\n showCopied()\n }\n }\n )\n\n e.preventDefault()\n return\n }\n\n if (fallbackCopyText(shortcode)) {\n showCopied()\n }\n\n e.preventDefault()\n }\n\n self.updatePreview = function (forced) {\n // Prepare data\n var $preview = $('#su-generator-preview')\n var shortcode = self.parseSettings()\n var previous = $result.text()\n // Check forced mode\n forced = forced || false\n // Break if preview box is hidden (preview isn't enabled)\n if (!$preview.is(':visible')) {\n return\n }\n // Check shortcode is changed is this is not a forced mode\n if (shortcode === previous && !forced) {\n return\n }\n // Run timer to filter often calls\n window.clearTimeout(self.state.preview.timer)\n self.state.preview.timer = window.setTimeout(\n function () {\n self.state.preview.request = $.ajax(\n {\n type: 'POST',\n url: ajaxurl,\n cache: false,\n data: {\n action: 'su_generator_preview',\n shortcode: shortcode,\n nonce: $('#su_generator_preview_nonce').val()\n },\n beforeSend: function () {\n // Abort previous requests\n if (self.state.preview.request) {\n self.state.preview.request.abort()\n }\n // Show loading animation\n $preview.addClass('su-generator-loading').html('')\n },\n success: function (data) {\n // Hide loading animation and set new HTML\n $preview.html(data).removeClass('su-generator-loading')\n },\n dataType: 'html'\n }\n )\n },\n 300\n )\n // Save shortcode to div\n $result.text(shortcode)\n }\n\n self.insert = function (context, args) {\n if (typeof context !== 'string' || typeof args !== 'object') {\n return\n }\n\n self.state.context = context\n self.state.insertArgs = args\n\n var preSelectedShortcode = args.shortcode || ''\n\n var mfpOptions = {\n type: 'inline',\n alignTop: true,\n closeOnBgClick: false,\n mainClass: 'su-generator-mfp',\n items: {\n src: '#su-generator'\n },\n callbacks: {}\n }\n\n mfpOptions.callbacks.open = () => {\n if (preSelectedShortcode) {\n $choice.filter(`[data-shortcode=\"${preSelectedShortcode}\"]`).trigger('click')\n } else {\n window.setTimeout(() => $search.focus(), 200)\n }\n\n if (\n typeof tinyMCE !== 'undefined' &&\n\t\t\t\ttinyMCE.activeEditor != null &&\n\t\t\t\ttinyMCE.activeEditor.hasOwnProperty('selection')\n ) {\n self.state.mceSelection = tinyMCE.activeEditor.selection.getContent({ format: 'text' })\n }\n }\n\n mfpOptions.callbacks.close = () => {\n clearSearch()\n showChoicesMode()\n\n self.state.mceSelection = ''\n }\n\n $.magnificPopup.open(mfpOptions)\n }\n\n self.insertShortcode = function () {\n var shortcode = self.parseSettings()\n\n self.addPreset('last_used', SUGL10n.last_used)\n\n $.magnificPopup.close()\n\n $result.text(shortcode)\n\n if (self.state.context === 'html') {\n var HTMLEditor = document.getElementById(self.state.insertArgs.editorID)\n self.insertAtCaret(HTMLEditor, shortcode)\n }\n\n if (self.state.context === 'classic') {\n window.wp.media.editor.insert(shortcode)\n }\n\n if (self.state.context === 'block') {\n var props = self.state.insertArgs.props\n\n if (props.attributes.hasOwnProperty('content')) {\n props.setAttributes({ content: props.attributes.content + shortcode })\n } else if (props.name === 'core/shortcode') {\n var originalText = props.attributes.hasOwnProperty('text')\n ? props.attributes.text\n : ''\n\n props.setAttributes({ text: originalText + shortcode })\n }\n }\n\n if (self.state.context === 'callback') {\n if (typeof self.state.insertArgs.callback === 'function') {\n self.state.insertArgs.callback(shortcode)\n }\n }\n }\n\n self.insertAtCaret = (field, text) => {\n var start = field.selectionStart\n field.value = field.value.substring(0, start) + text + field.value.substring(start)\n field.focus()\n field.selectionStart = start + text.length\n }\n\n return {\n init: self.init,\n insert: self.insert\n }\n})(jQuery)\n\njQuery(document).ready(window.SUG.App.init)\n"]}
dvadf
dvadf
| ver. 1.4 |
Github
|
.
| PHP 7.3.33 | Generation time: 0.07 |
proxy
|
phpinfo
|
Settings