Flat file database editor and browser with web interface
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
rocket-inv/templates/static/taggle.min.js

2 lines
13 KiB

!function(e,s){"use strict";var i="Taggle";"function"==typeof define&&define.amd?define([],function(){var t=s();return e[i]=t}):"object"==typeof module&&module.exports?module.exports=e[i]=s():e[i]=s()}(this,function(){"use strict";function t(){}var s={additionalTagClasses:"",allowDuplicates:!1,saveOnBlur:!1,clearOnBlur:!0,duplicateTagClass:"",containerFocusClass:"active",focusInputOnContainerClick:!0,hiddenInputName:"taggles[]",tags:[],delimeter:",",delimiter:"",attachTagId:!1,allowedTags:[],disallowedTags:[],trimTags:!0,maxTags:null,tabIndex:1,placeholder:"Enter tags...",submitKeys:[188,9,13],preserveCase:!1,inputFormatter:t,tagFormatter:t,onBeforeTagAdd:t,onTagAdd:t,onBeforeTagRemove:function(){return!0},onTagRemove:t};function i(t){for(var e=t,s=1,i=arguments.length;s<i;s++){var n=arguments[s];for(var a in n)n.hasOwnProperty(a)&&(e[a]=n[a])}return e}function h(t,e,s){t.addEventListener?t.addEventListener(e,s,!1):t.attachEvent?t.attachEvent("on"+e,s):t["on"+e]=s}function o(t,e,s){t.removeEventListener?t.removeEventListener(e,s,!1):t.detachEvent?t.detachEvent("on"+e,s):t["on"+e]=null}function n(t){return t.replace(/^\s+|\s+$/g,"")}function l(t,e){window.attachEvent&&!window.addEventListener?t.innerText=e:t.textContent=e}function e(t,e){this.settings=i({},s,e),this.measurements={container:{rect:null,style:null,padding:null}},this.container=t,this.tag={values:[],elements:[]},this.list=document.createElement("ul"),this.inputLi=document.createElement("li"),this.input=document.createElement("input"),this.sizer=document.createElement("div"),this.pasting=!1,this.placeholder=null,this.data=null,this.settings.placeholder&&(this.placeholder=document.createElement("span")),"string"==typeof t&&(this.container=document.getElementById(t)),this._id=0,this._closeEvents=[],this._closeButtons=[],this._setMeasurements(),this._setupTextarea(),this._attachEvents()}return e.prototype._setMeasurements=function(){this.measurements.container.rect=this.container.getBoundingClientRect(),this.measurements.container.style=window.getComputedStyle(this.container);var t=this.measurements.container.style,e=parseInt(t["padding-left"]||t.paddingLeft,10),s=parseInt(t["padding-right"]||t.paddingRight,10),i=parseInt(t["border-left-width"]||t.borderLeftWidth,10),n=parseInt(t["border-right-width"]||t.borderRightWidth,10);this.measurements.container.padding=e+s+i+n},e.prototype._setupTextarea=function(){var t;if(this.list.className="taggle_list",this.input.type="text",this.input.style.paddingLeft=0,this.input.style.paddingRight=0,this.input.className="taggle_input",this.input.tabIndex=this.settings.tabIndex,this.sizer.className="taggle_sizer",this.settings.tags.length)for(var e=0,s=this.settings.tags.length;e<s;e++){var i=this._createTag(this.settings.tags[e],this.tag.values.length);this.list.appendChild(i)}this.placeholder&&(this.placeholder.style.opacity=0,this.placeholder.classList.add("taggle_placeholder"),this.container.appendChild(this.placeholder),l(this.placeholder,this.settings.placeholder),this.settings.tags.length||this._showPlaceholder());var n=this.settings.inputFormatter(this.input);n&&(this.input=n),this.inputLi.appendChild(this.input),this.list.appendChild(this.inputLi),this.container.appendChild(this.list),this.container.appendChild(this.sizer),t=window.getComputedStyle(this.input).fontSize,this.sizer.style.fontSize=t},e.prototype._attachEvents=function(){var t=this;if(this._eventsAttached)return!1;return this._eventsAttached=!0,this.settings.focusInputOnContainerClick&&(this._handleContainerClick=function(){t.input.focus()}.bind(this),h(this.container,"click",this._handleContainerClick)),this._handleFocus=this._focusInput.bind(this),this._handleBlur=this._blurEvent.bind(this),this._handleKeydown=this._keydownEvents.bind(this),this._handleKeyup=this._keyupEvents.bind(this),h(this.input,"focus",this._handleFocus),h(this.input,"blur",this._handleBlur),h(this.input,"keydown",this._handleKeydown),h(this.input,"keyup",this._handleKeyup),!0},e.prototype._detachEvents=function(){if(!this._eventsAttached)return!1;var s=this;return this._eventsAttache