| 18 |
eval("(function ($) {\n \"use strict\";\n\n function debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n }\n var iconLibrary = {\n \"dashicons\": {\n \"\": {\n \"prefix\": \"dashicons dashicons-\",\n \"icon-style\": \"dashicons-dashboard\",\n \"list-icon\": \"\",\n \"icons\": [\"dashicons dashicons-menu\", \"dashicons dashicons-admin-site\", \"dashicons dashicons-dashboard\", \"dashicons dashicons-admin-post\", \"dashicons dashicons-admin-media\", \"dashicons dashicons-admin-links\", \"dashicons dashicons-admin-page\", \"dashicons dashicons-admin-comments\", \"dashicons dashicons-admin-appearance\", \"dashicons dashicons-admin-plugins\", \"dashicons dashicons-admin-users\", \"dashicons dashicons-admin-tools\", \"dashicons dashicons-admin-settings\", \"dashicons dashicons-admin-network\", \"dashicons dashicons-admin-home\", \"dashicons dashicons-admin-generic\", \"dashicons dashicons-admin-collapse\", \"dashicons dashicons-filter\", \"dashicons dashicons-admin-customizer\", \"dashicons dashicons-admin-multisite\", \"dashicons dashicons-welcome-write-blog\", \"dashicons dashicons-welcome-add-page\", \"dashicons dashicons-welcome-view-site\", \"dashicons dashicons-welcome-widgets-menus\", \"dashicons dashicons-welcome-comments\", \"dashicons dashicons-welcome-learn-more\", \"dashicons dashicons-format-aside\", \"dashicons dashicons-format-image\", \"dashicons dashicons-format-gallery\", \"dashicons dashicons-format-video\", \"dashicons dashicons-format-status\", \"dashicons dashicons-format-quote\", \"dashicons dashicons-format-chat\", \"dashicons dashicons-format-audio\", \"dashicons dashicons-camera\", \"dashicons dashicons-images-alt\", \"dashicons dashicons-images-alt2\", \"dashicons dashicons-video-alt\", \"dashicons dashicons-video-alt2\", \"dashicons dashicons-video-alt3\", \"dashicons dashicons-media-archive\", \"dashicons dashicons-media-audio\", \"dashicons dashicons-media-code\", \"dashicons dashicons-media-default\", \"dashicons dashicons-media-document\", \"dashicons dashicons-media-interactive\", \"dashicons dashicons-media-spreadsheet\", \"dashicons dashicons-media-text\", \"dashicons dashicons-media-video\", \"dashicons dashicons-playlist-audio\", \"dashicons dashicons-playlist-video\", \"dashicons dashicons-controls-play\", \"dashicons dashicons-controls-pause\", \"dashicons dashicons-controls-forward\", \"dashicons dashicons-controls-skipforward\", \"dashicons dashicons-controls-back\", \"dashicons dashicons-controls-skipback\", \"dashicons dashicons-controls-repeat\", \"dashicons dashicons-controls-volumeon\", \"dashicons dashicons-controls-volumeoff\", \"dashicons dashicons-image-crop\", \"dashicons dashicons-image-rotate\", \"dashicons dashicons-image-rotate-left\", \"dashicons dashicons-image-rotate-right\", \"dashicons dashicons-image-flip-vertical\", \"dashicons dashicons-image-flip-horizontal\", \"dashicons dashicons-image-filter\", \"dashicons dashicons-undo\", \"dashicons dashicons-redo\", \"dashicons dashicons-editor-bold\", \"dashicons dashicons-editor-italic\", \"dashicons dashicons-editor-ul\", \"dashicons dashicons-editor-ol\", \"dashicons dashicons-editor-quote\", \"dashicons dashicons-editor-alignleft\", \"dashicons dashicons-editor-aligncenter\", \"dashicons dashicons-editor-alignright\", \"dashicons dashicons-editor-insertmore\", \"dashicons dashicons-editor-spellcheck\", \"dashicons dashicons-editor-expand\", \"dashicons dashicons-editor-contract\", \"dashicons dashicons-editor-kitchensink\", \"dashicons dashicons-editor-underline\", \"dashicons dashicons-editor-justify\", \"dashicons dashicons-editor-textcolor\", \"dashicons dashicons-editor-paste-word\", \"dashicons dashicons-editor-paste-text\", \"dashicons dashicons-editor-removeformatting\", \"dashicons dashicons-editor-video\", \"dashicons dashicons-editor-customchar\", \"dashicons dashicons-editor-outdent\", \"dashicons dashicons-editor-indent\", \"dashicons dashicons-editor-help\", \"dashicons dashicons-editor-strikethrough\", \"dashicons dashicons-editor-unlink\", \"dashicons dashicons-editor-rtl\", \"dashicons dashicons-editor-break\", \"dashicons dashicons-editor-code\", \"dashicons dashicons-editor-paragraph\", \"dashicons dashicons-editor-table\", \"dashicons dashicons-align-left\", \"dashicons dashicons-align-right\", \"dashicons dashicons-align-center\", \"dashicons dashicons-align-none\", \"dashicons dashicons-lock\", \"dashicons dashicons-unlock\", \"dashicons dashicons-calendar\", \"dashicons dashicons-calendar-alt\", \"dashicons dashicons-visibility\", \"dashicons dashicons-hidden\", \"dashicons dashicons-post-status\", \"dashicons dashicons-edit\", \"dashicons dashicons-trash\", \"dashicons dashicons-sticky\", \"dashicons dashicons-external\", \"dashicons dashicons-arrow-up\", \"dashicons dashicons-arrow-down\", \"dashicons dashicons-arrow-right\", \"dashicons dashicons-arrow-left\", \"dashicons dashicons-arrow-up-alt\", \"dashicons dashicons-arrow-down-alt\", \"dashicons dashicons-arrow-right-alt\", \"dashicons dashicons-arrow-left-alt\", \"dashicons dashicons-arrow-up-alt2\", \"dashicons dashicons-arrow-down-alt2\", \"dashicons dashicons-arrow-right-alt2\", \"dashicons dashicons-arrow-left-alt2\", \"dashicons dashicons-sort\", \"dashicons dashicons-leftright\", \"dashicons dashicons-randomize\", \"dashicons dashicons-list-view\", \"dashicons dashicons-exerpt-view\", \"dashicons dashicons-grid-view\", \"dashicons dashicons-move\", \"dashicons dashicons-share\", \"dashicons dashicons-share-alt\", \"dashicons dashicons-share-alt2\", \"dashicons dashicons-twitter\", \"dashicons dashicons-rss\", \"dashicons dashicons-email\", \"dashicons dashicons-email-alt\", \"dashicons dashicons-facebook\", \"dashicons dashicons-facebook-alt\", \"dashicons dashicons-googleplus\", \"dashicons dashicons-networking\", \"dashicons dashicons-hammer\", \"dashicons dashicons-art\", \"dashicons dashicons-migrate\", \"dashicons dashicons-performance\", \"dashicons dashicons-universal-access\", \"dashicons dashicons-universal-access-alt\", \"dashicons dashicons-tickets\", \"dashicons dashicons-nametag\", \"dashicons dashicons-clipboard\", \"dashicons dashicons-heart\", \"dashicons dashicons-megaphone\", \"dashicons dashicons-schedule\", \"dashicons dashicons-wordpress\", \"dashicons dashicons-wordpress-alt\", \"dashicons dashicons-pressthis\", \"dashicons dashicons-update\", \"dashicons dashicons-screenoptions\", \"dashicons dashicons-info\", \"dashicons dashicons-cart\", \"dashicons dashicons-feedback\", \"dashicons dashicons-cloud\", \"dashicons dashicons-translation\", \"dashicons dashicons-tag\", \"dashicons dashicons-category\", \"dashicons dashicons-archive\", \"dashicons dashicons-tagcloud\", \"dashicons dashicons-text\", \"dashicons dashicons-yes\", \"dashicons dashicons-no\", \"dashicons dashicons-no-alt\", \"dashicons dashicons-plus\", \"dashicons dashicons-plus-alt\", \"dashicons dashicons-minus\", \"dashicons dashicons-dismiss\", \"dashicons dashicons-marker\", \"dashicons dashicons-star-filled\", \"dashicons dashicons-star-half\", \"dashicons dashicons-star-empty\", \"dashicons dashicons-flag\", \"dashicons dashicons-warning\", \"dashicons dashicons-location\", \"dashicons dashicons-location-alt\", \"dashicons dashicons-vault\", \"dashicons dashicons-shield\", \"dashicons dashicons-shield-alt\", \"dashicons dashicons-sos\", \"dashicons dashicons-search\", \"dashicons dashicons-slides\", \"dashicons dashicons-analytics\", \"dashicons dashicons-chart-pie\", \"dashicons dashicons-chart-bar\", \"dashicons dashicons-chart-line\", \"dashicons dashicons-chart-area\", \"dashicons dashicons-groups\", \"dashicons dashicons-businessman\", \"dashicons dashicons-id\", \"dashicons dashicons-id-alt\", \"dashicons dashicons-products\", \"dashicons dashicons-awards\", \"dashicons dashicons-forms\", \"dashicons dashicons-testimonial\", \"dashicons dashicons-portfolio\", \"dashicons dashicons-book\", \"dashicons dashicons-book-alt\", \"dashicons dashicons-download\", \"dashicons dashicons-upload\", \"dashicons dashicons-backup\", \"dashicons dashicons-clock\", \"dashicons dashicons-lightbulb\", \"dashicons dashicons-microphone\", \"dashicons dashicons-desktop\", \"dashicons dashicons-laptop\", \"dashicons dashicons-tablet\", \"dashicons dashicons-smartphone\", \"dashicons dashicons-phone\", \"dashicons dashicons-index-card\", \"dashicons dashicons-carrot\", \"dashicons dashicons-building\", \"dashicons dashicons-store\", \"dashicons dashicons-album\", \"dashicons dashicons-palmtree\", \"dashicons dashicons-tickets-alt\", \"dashicons dashicons-money\", \"dashicons dashicons-smiley\", \"dashicons dashicons-thumbs-up\", \"dashicons dashicons-thumbs-down\", \"dashicons dashicons-layout\", \"dashicons dashicons-paperclip\"]\n }\n }\n };\n var defaults = {\n iconLibrary: {},\n valueSelector: 'input[name=\"icon\"]',\n iconSelector: '.select-icon i'\n };\n var AI_Icon_Picker = function AI_Icon_Picker($picker, options) {\n this.$picker = $picker;\n this.config = $.extend({}, defaults, options);\n if (!this.config.valueSelector) return;\n if (!this.$picker.find(this.config.valueSelector).length) return;\n this.iconLibrary = $.extend({}, iconLibrary, this.config.iconLibrary);\n this.addPickerToDom();\n this.addPickerEvent();\n };\n AI_Icon_Picker.prototype.addPickerToDom = function () {\n if (this.isPickerInDom()) return;\n $('body').append('<div class=\"aim-modal aim-close\" id=\"aim-modal\"><div class=\"aim-modal--content\"><div class=\"aim-modal--header\"><div class=\"aim-modal--header-logo-area\"><span class=\"aim-modal--header-logo-title\"><img src=\"' + PXLBSADMINIFY_MENU_EDITOR.icon_picker_logo + '\"> WP Adminify Icon Picker</span></div><div class=\"aim-modal--header-close-btn\"><i class=\"dashicons dashicons-no-alt\" title=\"Close\"></i></div></div><div class=\"aim-modal--body\"><div id=\"aim-modal--sidebar\" class=\"aim-modal--sidebar\"><div class=\"aim-modal--sidebar-tabs\"></div></div><div id=\"aim-modal--icon-preview-wrap\" class=\"aim-modal--icon-preview-wrap\"><div class=\"aim-modal--icon-search\"><input name=\"\" value=\"\" placeholder=\"Filter by name...\"><i class=\"fas fa-search\"></i></div><div class=\"aim-modal--icon-preview-inner\"><div id=\"aim-modal--icon-preview\"></div></div></div></div><div class=\"aim-modal--footer\"><button class=\"aim-insert-icon-button\">Insert</button></div></div></div>');\n this.$pickerDom = $('body').children('#aim-modal');\n this.$previewDomWrap = this.$pickerDom.find('.aim-modal--icon-preview-wrap');\n this.$sidebarTabs = this.$pickerDom.find('.aim-modal--sidebar-tabs');\n this.$previewWrap = this.$pickerDom.find('#aim-modal--icon-preview');\n this.$searchInput = this.$pickerDom.find('.aim-modal--icon-search input');\n this.sideBarList = [{\n \"title\": \" all icons\",\n \"list-icon\": \"icomoon-stack\",\n \"library-id\": \"all\"\n }];\n this.iconMarkup = '';\n this.setIconAndSidebarList();\n this.$previewWrap.html(this.iconMarkup);\n this.$sidebarTabs.html(this.sideBarListMarkup());\n this.customIconSidebarMenu();\n this.customIconUploader();\n this.selected_icon = '';\n };\n AI_Icon_Picker.prototype.addPickerEvent = function () {\n var _this = this;\n this.$searchInput.on('keyup', debounce(function () {\n _this.searchFilterFunc();\n }, 100));\n this.$sidebarTabs.children().on('click', function () {\n $(this).addClass('aesthetic-active').siblings().removeClass('aesthetic-active');\n _this.searchFilterFunc();\n _this.customIconSidebarMenuSettings($(this));\n });\n this.$previewWrap.children().on('click', function () {\n $(this).addClass('aesthetic-selected').siblings().removeClass('aesthetic-selected');\n _this.selected_icon = $(this).find('i').attr('class');\n });\n this.$pickerDom.find('.aim-insert-icon-button').on('click', function (e) {\n if (_this.selected_icon) {\n _this.$currentPicker.find(_this.config.valueSelector).val(_this.selected_icon);\n if (Array.isArray(_this.selected_icon)) {\n _this.$currentPicker.find(_this.config.iconSelector).parent('.select-icon').addClass('custom-icon');\n _this.$currentPicker.find(_this.config.iconSelector).empty().removeAttr('class').html('<img src=\"' + _this.selected_icon[1] + '\" />');\n } else {\n _this.$currentPicker.find(_this.config.iconSelector).parent('.select-icon').removeClass('custom-icon');\n _this.$currentPicker.find(_this.config.iconSelector).empty().removeAttr('class').addClass(_this.selected_icon);\n }\n }\n _this.hidePicker();\n });\n this.$pickerDom.find('.aim-modal--header-close-btn').on('click', function (e) {\n _this.hidePicker();\n });\n\n // this.$picker.on('click', function() {\n $('body').on('click', '.select-icon', function () {\n _this.$currentPicker = $(this).parents('.wp-adminify-menu-icon-picker');\n _this.openPicker();\n _this.customIconsListLoad();\n });\n\n // this.$picker.find('.icon-none').on('click', function(e) {\n $('body').on('click', '.icon-none', function (e) {\n e.stopPropagation();\n _this.selected_icon = '';\n $(this).parent().find(_this.config.valueSelector).val('');\n $(this).parent().find(_this.config.iconSelector).parent('.select-icon').removeClass('custom-icon');\n $(this).parent().find(_this.config.iconSelector).removeAttr('class').text('Select Icon');\n });\n };\n AI_Icon_Picker.prototype.openPicker = function () {\n this.$pickerDom.removeClass('aim-close').addClass('aim-open');\n };\n AI_Icon_Picker.prototype.hidePicker = function () {\n this.$pickerDom.addClass('aim-close').removeClass('aim-open');\n };\n AI_Icon_Picker.prototype.isPickerInDom = function () {\n return $('body').children('#aim-modal').length;\n };\n AI_Icon_Picker.prototype.searchFilterFunc = function (searchText) {\n var searchText = this.$searchInput.val().toLowerCase();\n var libraryID = this.$sidebarTabs.find('.aesthetic-active').data('library-id');\n this.$previewWrap.find('.aim-icon-item').hide().filter(function () {\n return ('all' === libraryID || libraryID === $(this).data('library-id')) && -1 !== $(this).data('filter').indexOf(searchText);\n }).show();\n };\n AI_Icon_Picker.prototype.sideBarListMarkup = function () {\n var markup = '';\n var elementorActive = PXLBSADMINIFY_ICON_PICKER.is_elementor_active;\n this.sideBarList.filter(function (item) {\n if (!elementorActive && 'Elementor Icons' == item.title) {\n return;\n } else {\n return item;\n }\n }).forEach(function (item, index) {\n if ('all' !== item['library-id']) {\n markup += '<div class=\"aim-modal--sidebar-tab-item\" data-library-id=\"' + item['library-id'] + '\">' + item['title'] + '</div>';\n } else {\n markup += '<div class=\"aim-modal--sidebar-tab-item aesthetic-active\" data-library-id=\"' + item['library-id'] + '\">' + item['title'] + '</div>';\n }\n });\n return markup;\n };\n AI_Icon_Picker.prototype.iconItemMarkup = function (libraryItem) {\n var markup = '',\n library = libraryItem['icon-style'],\n prefix = libraryItem['prefix'];\n libraryItem['icons'].forEach(function (item, index) {\n markup += '<div class=\"aim-icon-item\" data-library-id=\"' + library + '\" data-filter=\"' + item.replace(prefix, \"\") + '\"><div class=\"aim-icon-item-inner\"><i class=\"' + item + '\"></i><div class=\"aim-icon-item-name\" title=\"' + item.replace(prefix, \"\") + '\">' + item.replace(prefix, \"\").replace(\"-\", \" \") + '</div></div></div>';\n });\n return markup;\n };\n AI_Icon_Picker.prototype.getLibraryName = function (string) {\n return string.replace(\"-\", \" \");\n };\n AI_Icon_Picker.prototype.setSideBarList = function (library, object) {\n object.forEach(function (item, index) {\n var icon_title = item[0] !== '' ? library + ' - ' + item[0] : library,\n listItem = {\n \"title\": icon_title,\n \"list-icon\": item[1]['list-icon'].length ? item[1]['list-icon'] : \"\",\n \"library-id\": item[1]['icon-style'].length ? item[1]['icon-style'] : \"all\"\n };\n this.sideBarList.push(listItem);\n }.bind(this));\n };\n AI_Icon_Picker.prototype.setIconAndSidebarList = function () {\n Object.entries(this.iconLibrary).forEach(function (item, index) {\n var libraryName = this.getLibraryName(item[0]);\n this.setSideBarList(libraryName, Object.entries(item[1]));\n Object.entries(item[1]).forEach(function (item, index) {\n this.iconMarkup += this.iconItemMarkup(item[1]);\n }.bind(this));\n }.bind(this));\n };\n AI_Icon_Picker.prototype.customIconSidebarMenu = function () {\n var markup = '<div class=\"aim-modal--sidebar-tab-item\" data-library-id=\"custom-icon\">Custom Icons</div>';\n this.$sidebarTabs.append(markup);\n };\n AI_Icon_Picker.prototype.customIconSidebarMenuSettings = function (_this) {\n this.$searchForm = this.$pickerDom.find('.aim-modal--icon-search');\n this.$iconList = this.$pickerDom.find('.aim-modal--icon-preview-inner');\n this.$iconCustom = this.$pickerDom.find('.custom-icon-uploader-wrap');\n if (_this.data('library-id') == 'custom-icon') {\n this.$previewDomWrap.addClass('y-scroll');\n this.$searchForm.addClass('hide');\n this.$iconList.addClass('hide');\n this.$iconCustom.removeClass('hide');\n } else {\n this.$previewDomWrap.removeClass('y-scroll');\n this.$searchForm.removeClass('hide');\n this.$iconList.removeClass('hide');\n this.$iconCustom.addClass('hide');\n }\n };\n AI_Icon_Picker.prototype.customIconsListLoad = function () {\n var _this = this;\n var value = _this.$currentPicker.find(_this.config.valueSelector).val().split(',');\n var id = value[0];\n var displayIconsWrapper = $('#display-custom-icons ul');\n $.ajax({\n url: PXLBSADMINIFY_MENU_EDITOR.ajax_url,\n type: 'POST',\n data: {\n action: 'pxlbsadminify_load_custom_icons',\n security: PXLBSADMINIFY_MENU_EDITOR.security\n },\n success: function success(response) {\n var data = JSON.parse(response);\n if (data.images != null) {\n var images = data.images;\n var item = '';\n for (var key in images) {\n if (images.hasOwnProperty(key)) {\n var image_url = images[key];\n item += \"<li data-id=\\\"\".concat(key, \"\\\" \").concat(id == key && 'class=\"selected\"', \"><img src=\\\"\").concat(image_url, \"\\\"/></li>\");\n }\n }\n displayIconsWrapper.html(item);\n }\n }\n });\n this.customIconSeleced();\n };\n AI_Icon_Picker.prototype.customIconSeleced = function () {\n var _this = this;\n $('#display-custom-icons ul').on(\"click\", 'li', function () {\n $(this).addClass('selected').siblings().removeClass('selected');\n var id = $(this).data('id');\n var url = $(this).find('img').attr('src');\n _this.selected_icon = [id, url];\n });\n };\n AI_Icon_Picker.prototype.customIconUploader = function () {\n var markup = \"<div class=\\\"custom-icon-uploader-wrap hide\\\">\\n\\t\\t\\t\\t<div id=\\\"icon-upload-bar\\\"></div>\\n\\t\\t\\t\\t<div id=\\\"adminify-drag-drop-area\\\">\\n\\t\\t\\t\\t\\t<div class=\\\"drag-drop-inside\\\">\\n\\t\\t\\t\\t\\t<p class=\\\"drag-drop-info\\\">Drop files to upload</p>\\n\\t\\t\\t\\t\\t<p>or</p>\\n\\t\\t\\t\\t\\t<p class=\\\"drag-drop-buttons\\\">\\n\\t\\t\\t\\t\\t\\t<input type=\\\"file\\\" id=\\\"file\\\" name=\\\"my_file_upload[]\\\" multiple=\\\"multiple\\\" style=\\\"display:none\\\">\\n\\t\\t\\t\\t\\t\\t<button id=\\\"adminify-browse-button\\\" type=\\\"button\\\" class=\\\"browser button button-hero\\\">Select Files</button>\\n\\t\\t\\t\\t\\t</p>\\n\\t\\t\\t\\t\\t<p>Maximum upload file size: \".concat(PXLBSADMINIFY_MENU_EDITOR.max_upload_size, \"</p>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t</div>\\n\\t\\t\\t<div id=\\\"display-custom-icons\\\"><ul></ul></div>\\n\\t\\t</div>\");\n this.$previewDomWrap.append(markup);\n };\n $.fn.ai_icon_picker = function (options) {\n new AI_Icon_Picker($(this), options);\n return $(this);\n };\n})(jQuery);\n\n//# sourceURL=webpack://adminify/./dev/vendors/adminify-icon-picker/js/adminify-icon-picker.js?"); |