From 70bfa37b82a5be42b1c1e028345f0031ec794737 Mon Sep 17 00:00:00 2001 From: Yair Even Or Date: Tue, 27 Aug 2019 22:22:31 +0300 Subject: [PATCH] bugfix: when clicking anywhere on the screen there was an error in the console --- README.md | 2 +- dist/jQuery.tagify.min.js | 4 ++-- dist/tagify.js | 8 ++++---- dist/tagify.min.js | 4 ++-- src/tagify.js | 7 ++++--- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index a102359a..d162fff3 100644 --- a/README.md +++ b/README.md @@ -252,7 +252,7 @@ the same values that appear between `[[` & `]]`. A Tagify React component is exported as `` from [`react.tagify.js`](https://github.com/yairEO/tagify/blob/master/dist/react.tagify.js): -Check the [**codepen demo**](https://codepen.io/vsync/project/editor/ARaJye) for a live React integration example +Check the [**live demo**](https://codesandbox.io/s/tagify-react-wrapper-6vd3i) for a live React integration example ## Angular diff --git a/dist/jQuery.tagify.min.js b/dist/jQuery.tagify.min.js index 4520efdc..e049b7c8 100644 --- a/dist/jQuery.tagify.min.js +++ b/dist/jQuery.tagify.min.js @@ -1,7 +1,7 @@ /** - * Tagify (v 2.25.1)- tags input component + * Tagify (v 2.25.3)- tags input component * By Yair Even-Or * Don't sell this code. (c) * https://github.com/yairEO/tagify */ -"use strict";function _toConsumableArray(t){return _arrayWithoutHoles(t)||_iterableToArray(t)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function _iterableToArray(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}function _arrayWithoutHoles(t){if(Array.isArray(t)){for(var e=0,i=new Array(t.length);e')},tag:function(t,e){return"\n \n
\n ").concat(t,"\n
\n
")},dropdownItem:function(t){var e=(t.value||t).replace(/`|'/g,"'");return"")}},customEventsList:["click","add","remove","invalid","input","edit"],applySettings:function(t,e){var i=t.getAttribute("data-whitelist"),n=t.getAttribute("data-blacklist");if(this.DEFAULTS.templates=this.templates,this.DEFAULTS.dropdown.itemTemplate=this.templates.dropdownItem,this.settings=this.extend({},this.DEFAULTS,e),this.settings.readonly=t.hasAttribute("readonly"),this.isIE&&(this.settings.autoComplete=!1),n&&(n=n.split(this.settings.delimiters))instanceof Array&&(this.settings.blacklist=n),i&&(i=i.split(this.settings.delimiters))instanceof Array&&(this.settings.whitelist=i),t.pattern)try{this.settings.pattern=new RegExp(t.pattern)}catch(t){}if(this.settings&&this.settings.delimiters)try{this.settings.delimiters=new RegExp(this.settings.delimiters,"g")}catch(t){}},parseHTML:function(t){return(new DOMParser).parseFromString(t.trim(),"text/html").body.firstElementChild},escapeHTML:function(t){var e=document.createTextNode(t),i=document.createElement("p");return i.appendChild(e),i.innerHTML},build:function(t){var e=this.DOM,i=this.settings.templates.wrapper(t,this.settings);e.originalInput=t,e.scope=this.parseHTML(i),e.input=e.scope.querySelector("[contenteditable]"),t.parentNode.insertBefore(e.scope,t),0<=this.settings.dropdown.enabled&&this.dropdown.init.call(this)},destroy:function(){this.DOM.scope.parentNode.removeChild(this.DOM.scope),this.dropdown.hide.call(this,!0)},loadOriginalValues:function(t){var e=0=this.settings.dropdown.enabled,n={value:e,inputElm:this.DOM.input};if("mix"==this.settings.mode)return this.events.callbacks.onMixTagsInput.call(this,t);e?this.input.value!=e&&(n.isValid=this.validateTag.call(this,e),this.input.set.call(this,e,!1),this.trigger("input",n),-1!=e.search(this.settings.delimiters)?this.addTags(e).length&&this.input.set.call(this):0<=this.settings.dropdown.enabled&&this.dropdown[i?"show":"hide"].call(this,e)):this.input.set.call(this,"")},onMixTagsInput:function(t){var e,i,n,s,a;if(this.maxTagsReached())return!0;window.getSelection&&0<(e=window.getSelection()).rangeCount&&((i=e.getRangeAt(0).cloneRange()).collapse(!0),i.setStart(window.getSelection().focusNode,0),(s=(n=i.toString().split(this.settings.mixTagsAllowedAfter))[n.length-1].match(this.settings.pattern))&&(this.state.tag={prefix:s[0],value:s.input.split(s[0])[1]},s=this.state.tag,a=this.state.tag.value.length>=this.settings.dropdown.enabled)),this.update(),this.trigger("input",this.extend({},this.state.tag,{textContent:this.DOM.input.textContent})),this.state.tag&&this.dropdown[a?"show":"hide"].call(this,this.state.tag.value)},onInputIE:function(t){var e=this;setTimeout(function(){e.events.callbacks.onInput.call(e,t)})},onPaste:function(t){},onClickScope:function(t){var e,i=t.target.closest("tag");"TAGS"==t.target.tagName?this.DOM.input.focus():"X"==t.target.tagName?this.removeTag(t.target.parentNode):i&&(e=this.getNodeIndex(i),this.trigger("click",{tag:i,index:e,data:this.value[e]}))},onEditTagInput:function(t){var e=t.closest("tag"),i=this.getNodeIndex(e),n=this.input.normalize(t),s=n.toLowerCase()==t.originalValue.toLowerCase()||this.validateTag(n);e.classList.toggle("tagify--invalid",!0!==s),e.isValid=s,this.trigger("input",{tag:e,index:i,data:this.extend({},this.value[i],{newValue:n})})},onEditTagBlur:function(t){var e,i=t.closest("tag"),n=this.getNodeIndex(i),s=this.input.normalize(t)||t.originalValue,a=this.input.normalize(t)!=t.originalValue,o=i.isValid,r=_objectSpread({},this.value[n],{value:s});a&&(this.settings.transformTag.call(this,r),o=this.validateTag(r.value)),void 0!==o&&!0!==o||(t.textContent=r.value,this.value[n].value=r.value,this.update(),(e=t.cloneNode(!0)).removeAttribute("contenteditable"),i.title=r.value,i.classList.remove("tagify--editable"),t.parentNode.replaceChild(e,t),this.trigger("edit",{tag:i,index:n,data:this.value[n]}))},onEditTagkeydown:function(t){switch(t.key){case"Esc":case"Escape":t.target.textContent=t.target.originalValue;case"Enter":case"Tab":t.preventDefault(),t.target.blur()}},onDoubleClickScope:function(t){var e=t.target.closest("tag"),i=this.settings,n=e.classList.contains("tagify--editable"),s=e.hasAttribute("readonly");"mix"==i.mode||i.readonly||i.enforceWhitelist||!e||n||s||this.editTag(e)}}},editTag:function(t){var e=this,i=0=this.settings.maxTags&&this.TEXTS.exceed},normalizeTags:function(t){function i(t){return t.split(a).filter(function(t){return t}).map(function(t){return{value:t.trim()}})}var e,n=this.settings,s=n.whitelist,a=n.delimiters,o=n.mode,r=!!s&&s[0]instanceof Object,l=t instanceof Array&&t[0]instanceof Object&&"value"in t[0],d=[];if(l)return t=(e=[]).concat.apply(e,_toConsumableArray(t.map(function(e){return i(e.value).map(function(t){return _objectSpread({},e,{},t)})})));if("number"==typeof t&&(t=t.toString()),"string"==typeof t){if(!t.trim())return[];t=i(t)}else if(!l&&t instanceof Array){var c;t=(c=[]).concat.apply(c,_toConsumableArray(t.map(function(t){return i(t)})))}return r&&(t.forEach(function(e){var t=s.filter(function(t){return t.value.toLowerCase()==e.value.toLowerCase()});t[0]?d.push(t[0]):"mix"!=o&&d.push(e)}),t=d),t},parseMixTags:function(t){var n,s=this,e=this.settings,a=e.mixTagsInterpolator,o=e.duplicates;return t=t.split(a[0]).map(function(t){var e,i=t.split(a[1]);return 1[\r\n ]+<","g"),"><")},createTagElem:function(t){var e=this.escapeHTML(t.value),i=this.settings.templates.tag.call(this,e,t);return this.settings.readonly&&(t.readonly=!0),i=this.minify(i),this.parseHTML(i)},removeTag:function(t,e,i){var n=this,s=0=this.settings.maxTags)},update:function(){this.preUpdate(),this.DOM.originalInput.value="mix"==this.settings.mode?this.getMixedTagsAsString():this.value.length?JSON.stringify(this.value):""},getMixedTagsAsString:function(){var i="";return this.DOM.input.childNodes.forEach(function(t,e){1==t.nodeType?t.classList.contains("tagify__tag")&&(i+="[["+t.getAttribute("value")+"]]"):i+=t.textContent}),i},dropdown:{init:function(){this.DOM.dropdown=this.dropdown.build.call(this)},build:function(){var t=this.settings.dropdown,e=t.position,i=t.classname,n="".concat("manual"==e?"":"tagify__dropdown"," ").concat(i).trim(),s='');return this.parseHTML(s)},show:function(t){var e,i="manual"==this.settings.dropdown.position;if(this.settings.whitelist.length){if(this.suggestedListItems=this.dropdown.filterListItems.call(this,t),!this.suggestedListItems.length)return this.input.autocomplete.suggest.call(this),void this.dropdown.hide.call(this);e=this.dropdown.createListHTML.call(this,this.suggestedListItems),this.DOM.dropdown.innerHTML=this.minify(e),this.settings.enforceWhitelist&&!i&&this.dropdown.highlightOption.call(this,this.DOM.dropdown.querySelector(".tagify__dropdown__item")),this.DOM.scope.setAttribute("aria-expanded",!0),this.trigger("dropdown:show",this.DOM.dropdown),document.body.contains(this.DOM.dropdown)||(i||(this.dropdown.position.call(this),document.body.appendChild(this.DOM.dropdown),this.events.binding.call(this,!1)),this.dropdown.events.binding.call(this))}},hide:function(t){var e=this.DOM,i=e.scope,n=e.dropdown,s="manual"==this.settings.dropdown.position&&!t;n&&document.body.contains(n)&&!s&&(window.removeEventListener("resize",this.dropdown.position),this.dropdown.events.binding.call(this,!1),this.events.binding.call(this),i.setAttribute("aria-expanded",!1),n.parentNode.removeChild(n),this.trigger("dropdown:hide",n))},render:function(){this.suggestedListItems=this.dropdown.filterListItems.call(this,"");var t=this.dropdown.createListHTML.call(this,this.suggestedListItems);this.DOM.dropdown.innerHTML=this.minify(t)},position:function(){var t=this.DOM.scope.getBoundingClientRect();this.DOM.dropdown.style.cssText="left: "+(t.left+window.pageXOffset)+"px; top: "+(t.top+t.height-1+window.pageYOffset)+"px; width: "+t.width+"px"},events:{binding:function(t){var e=!(0