HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: /var/www/html/insiders/wp-load/wp-content/plugins/internal-links/admin/js/ilj_keywords.min.js.map
{"version":3,"file":"ilj_keywords.min.js","mappings":"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","sources":["webpack://wp-internal-linkjuicer/./src/admin/js/ilj_keywords.js"],"sourcesContent":["/*!**************************************!*\\\n  !*** ./src/admin/js/ilj_keywords.js ***!\n  \\**************************************/\n(function ($) {\n  $.fn.ilj_keywords = function (options) {\n    var elem = this;\n\n    // Default options\n    var settings = $.extend({\n      inputField: '',\n      errorMessage: '',\n      duplicate_notice: '',\n      requiresPro: false,\n      sortable: true\n    }, options);\n    var tipsoConfig = {\n      width: '',\n      maxWidth: '200',\n      useTitle: true,\n      delay: 100,\n      speed: 500,\n      background: '#32373c',\n      color: '#eeeeee',\n      size: 'small'\n    };\n    var keyword = {\n      keywords: [],\n      /**\n       * Init function for the object\n       */\n      init: function () {\n        var that = this;\n        if (settings.sortable) {\n          elem.find('ul.keyword-view').sortable({\n            opacity: 0.5,\n            helper: \"clone\",\n            forceHelperSize: true,\n            forcePlaceholderSize: true,\n            cursor: \"move\",\n            placeholder: \"placeholder\",\n            update: function (event, ui) {\n              that.reorderKeywords();\n            }\n          });\n        }\n        elem.find('ul.keyword-view').disableSelection();\n        elem.find('.tip').iljtipso(tipsoConfig);\n        elem.on('keypress', 'input.keywordInput', function (e) {\n          if (e.keyCode === 13) {\n            elem.find('a.add-keyword').click();\n          }\n          return e.keyCode != 13;\n        });\n\n        /**\n         * All interactions of the input GUI\n         */\n        elem.on('click', 'a.add-keyword', function (e) {\n          e.preventDefault();\n          var keyword_input = $(this).siblings('input.keywordInput');\n          var id = null;\n          var type = null;\n          var sub_type = null;\n          var url_params = new URLSearchParams(window.location.search);\n          var is_for_blacklisted_keyword = false;\n          if ($(this).attr('blacklist-keyword') === 'true') {\n            is_for_blacklisted_keyword = true;\n          }\n          if ($('#post_ID').length) {\n            id = $('#post_ID').val();\n            sub_type = $('#post_type').val();\n            if ('ilj_customlinks' !== sub_type) {\n              type = 'post';\n            } else {\n              type = sub_type;\n            }\n          } else if (url_params.get('tag_ID')) {\n            id = url_params.get('tag_ID');\n            sub_type = url_params.get('taxonomy');\n            type = 'term';\n          }\n          if (keyword_input.val().indexOf(',') !== -1) {\n            var keywords = keyword_input.val().split(',');\n            keywords.forEach(function (keyword, index) {\n              keyword_value = that.sanitizeKeyword(keyword);\n              valid = that.validateKeyword(keyword_value);\n              if (!valid.is_valid) {\n                return;\n              }\n              that.addKeyword(keyword_value);\n            });\n          } else {\n            keyword_value = that.sanitizeKeyword(keyword_input.val());\n            valid = that.validateKeyword(keyword_value);\n            if (!valid.is_valid) {\n              that.setError(valid.message);\n              return;\n            }\n            that.addKeyword(keyword_value);\n          }\n          /**\n           * Initializing\n           */\n          keyword_input.val('');\n          that.clearError();\n          that.syncGui();\n          that.syncField();\n        });\n        this.initKeywords();\n        this.syncGui();\n\n        /**\n         * All interactions of the keyword view GUI\n         */\n        elem.on('click', '.keyword a.remove', function (e) {\n          e.preventDefault();\n          var index = $(this).parent('.keyword').data('id');\n          that.keywords.splice(index, 1);\n          that.syncGui();\n          that.syncField();\n        });\n        return this.keywords;\n      },\n      /**\n       * Initializing the keyword list\n       */\n      initKeywords: function () {\n        that = this;\n        var input_data = $('<textarea/>').text(settings.inputField.val()).html();\n        if (input_data != '' && input_data != null) {\n          var input_keywords = input_data.split(',');\n          input_keywords.forEach(function (keyword, index) {\n            that.addKeyword(keyword);\n          });\n        }\n      },\n      /**\n      * Add a Keyword to the keyword list\n      */\n      addKeyword: function (keyword) {\n        that = this;\n        this.keywords.push(keyword);\n      },\n      /**\n       * Cleans a given keyword\n       */\n      sanitizeKeyword: function (keyword) {\n        var keyword_sanitized = keyword.replace(/\\s*\\{\\s*/gu, \" {\").replace(/\\s*\\}\\s*/gu, \"} \").replace(/\\s{2,}/gu, \" \").replace(/^\\s+|\\s+$/gu, \"\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n        return keyword_sanitized;\n      },\n      /**\n       * Checks if a keyword is valid\n       */\n      validateKeyword: function (keyword) {\n        var status = {\n          is_valid: false,\n          message: \"Unknown error\"\n        };\n        var min_length = 2;\n        var keyword_valid_check = keyword.replace(/\\{.*?\\}/gu, \"\").replace(/\\s/gu, \"\");\n        for (var i = 0; i < this.keywords.length; i++) {\n          if (keyword.toLowerCase() == this.keywords[i].toLowerCase()) {\n            status.message = ilj_editor_translation.message_keyword_exists;\n            return status;\n          }\n        }\n        if (keyword_valid_check === \"\") {\n          status.message = ilj_editor_translation.message_no_keyword;\n          return status;\n        }\n        if (keyword_valid_check.length < min_length) {\n          status.message = ilj_editor_translation.message_length_not_valid;\n          return status;\n        }\n        if (/(\\s?\\{[+-]*\\d+\\}\\s?){2,}/.test(keyword)) {\n          status.message = ilj_editor_translation.message_multiple_placeholder;\n          return status;\n        }\n        var keywords_count = this.keywords.length;\n        if (settings.requiresPro == true && ilj_editor_basic_restriction.is_active == true) {\n          if (keywords_count >= ilj_editor_basic_restriction.blacklist_limit) {\n            status.message = '<p>' + ilj_editor_translation.message_limited_blacklist_keyword + '</p>';\n            status.message += '<p>' + ilj_editor_translation.message_limited_blacklist_keyword_upgrade + '.</p>';\n            return status;\n          }\n        }\n        status.is_valid = true;\n        status.message = \"\";\n        return status;\n      },\n      /**\n       * Synchronizes the keyword view gui with the keyword list\n       */\n      syncGui: function () {\n        var that = this;\n        elem.find('ul.keyword-view li').remove();\n        if (this.keywords.length > 0) {\n          this.keywords.forEach(function (keyword, index) {\n            elem.find('ul.keyword-view').append($(that.renderKeyword(keyword, index)));\n          });\n          elem.find('.tip').iljtipso(tipsoConfig);\n        } else {\n          elem.find('ul.keyword-view').append($('<li>' + ilj_editor_translation.no_keywords + '</li>'));\n        }\n      },\n      /**\n       * Synchronizes the hidden input, that gets sent to the backend\n       */\n      syncField: function () {\n        settings.inputField.val(this.keywords.join(','));\n      },\n      /**\n       * Renders a single keyword to the keyword view GUI\n       */\n      renderKeyword: function (keyword, index) {\n        keyword_print = keyword.replace(/\\{(\\d+)\\}/g, '<span class=\"exact tip\" title=\"' + ilj_editor_translation.gap_hover_exact + ' $1\">$1</span>').replace(/\\{\\-(\\d+)\\}/g, '<span class=\"max tip\" title=\"' + ilj_editor_translation.gap_hover_max + ' $1\">$1</span>').replace(/\\{\\+(\\d+)\\}/g, '<span class=\"min tip\" title=\"' + ilj_editor_translation.gap_hover_min + ' $1\">$1</span>');\n        return '<li class=\"keyword\" data-id=\"' + index + '\"><a class=\"dashicons dashicons-dismiss remove\"></a>' + keyword_print + '</li>';\n      },\n      /**\n       * Re-orders the keywords-list depending on the order\n       * of the <li> -elements in the GUI\n       */\n      reorderKeywords: function () {\n        order = [];\n        var that = this;\n        elem.find('li').each(function () {\n          var id = $(this).data('id');\n          if (id === undefined) {\n            return;\n          }\n          order.push(id);\n        });\n        new_keywords = [];\n        $.each(order, function (key, position) {\n          new_keywords.push(that.keywords[position]);\n        });\n        that.keywords = new_keywords;\n        that.syncGui();\n        that.syncField();\n        return true;\n      },\n      /**\n       * Displays an error message\n       */\n      setError: function (message) {\n        settings.errorMessage.html(message);\n        settings.errorMessage.show();\n      },\n      /**\n       * Clears the error message\n       */\n      clearError: function () {\n        settings.errorMessage.html('');\n        settings.errorMessage.hide();\n      }\n    };\n\n    //Initializing the ILJ keyword object\n    keyword.init();\n  };\n})(jQuery);\n"],"names":["$","fn","ilj_keywords","options","elem","this","settings","extend","inputField","errorMessage","duplicate_notice","requiresPro","sortable","tipsoConfig","width","maxWidth","useTitle","delay","speed","background","color","size","keywords","init","that","find","opacity","helper","forceHelperSize","forcePlaceholderSize","cursor","placeholder","update","event","ui","reorderKeywords","disableSelection","iljtipso","on","e","keyCode","click","preventDefault","keyword_input","siblings","sub_type","url_params","URLSearchParams","window","location","search","attr","length","val","get","indexOf","split","forEach","keyword","index","keyword_value","sanitizeKeyword","valid","validateKeyword","is_valid","addKeyword","setError","message","clearError","syncGui","syncField","initKeywords","parent","data","splice","input_data","text","html","push","replace","status","keyword_valid_check","i","toLowerCase","ilj_editor_translation","message_keyword_exists","message_no_keyword","message_length_not_valid","test","message_multiple_placeholder","keywords_count","ilj_editor_basic_restriction","is_active","blacklist_limit","message_limited_blacklist_keyword","message_limited_blacklist_keyword_upgrade","remove","append","renderKeyword","no_keywords","join","keyword_print","gap_hover_exact","gap_hover_max","gap_hover_min","order","each","id","undefined","new_keywords","key","position","show","hide","jQuery"],"sourceRoot":""}