2 lines
9.0 KiB
JavaScript
2 lines
9.0 KiB
JavaScript
import t,{createRef as e,Component as n}from"react";import{ObjectUtils as r,classNames as o}from"primereact/utils";import{tip as i}from"primereact/tooltip";function p(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function s(t){if(Array.isArray(t))return p(t)}function l(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function u(t,e){if(t){if("string"==typeof t)return p(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(t,e):void 0}}function a(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function c(t){return s(t)||l(t)||u(t)||a()}function h(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function f(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function d(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function v(t,e){return v=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},v(t,e)}function m(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&v(t,e)}function y(t){return y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},y(t)}function b(t,e){if(e&&("object"===y(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return d(t)}function g(t){return g=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},g(t)}function O(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function w(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function k(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?w(Object(n),!0).forEach((function(e){O(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):w(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function R(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}var P=function(p){m(O,n);var s,l,u,a,v,y=(s=O,l=R(),function(){var t,e=g(s);if(l){var n=g(this).constructor;t=Reflect.construct(e,arguments,n)}else t=e.apply(this,arguments);return b(this,t)});function O(t){var n;return h(this,O),(n=y.call(this,t)).state={focused:!1},n.onWrapperClick=n.onWrapperClick.bind(d(n)),n.onKeyDown=n.onKeyDown.bind(d(n)),n.onPaste=n.onPaste.bind(d(n)),n.onFocus=n.onFocus.bind(d(n)),n.onBlur=n.onBlur.bind(d(n)),n.inputRef=e(n.props.inputRef),n}return u=O,(a=[{key:"removeItem",value:function(t,e){if(!this.props.disabled||!this.props.readOnly){var n=c(this.props.value),r=n.splice(e,1);this.isRemovable(r,e)&&(this.props.onRemove&&this.props.onRemove({originalEvent:t,value:r}),this.props.onChange&&this.props.onChange({originalEvent:t,value:n,stopPropagation:function(){},preventDefault:function(){},target:{name:this.props.name,id:this.props.id,value:n}}))}}},{key:"addItem",value:function(t,e,n){if(e&&e.trim().length){var r=this.props.value?c(this.props.value):[];(this.props.allowDuplicate||-1===r.indexOf(e))&&(r.push(e),this.props.onAdd&&this.props.onAdd({originalEvent:t,value:e})),this.updateInput(t,r,n)}}},{key:"onWrapperClick",value:function(){this.inputRef.current.focus()}},{key:"onKeyDown",value:function(t){var e=t.target.value,n=this.props.value||[];switch(t.which){case 8:0===this.inputRef.current.value.length&&n.length>0&&this.removeItem(t,n.length-1);break;case 13:e&&e.trim().length&&(!this.props.max||this.props.max>n.length)&&this.addItem(t,e,!0);break;default:this.isMaxedOut()?t.preventDefault():this.props.separator&&","===this.props.separator&&188===t.which&&this.addItem(t,e,!0)}}},{key:"updateInput",value:function(t,e,n){this.props.onChange&&this.props.onChange({originalEvent:t,value:e,stopPropagation:function(){},preventDefault:function(){},target:{name:this.props.name,id:this.props.id,value:e}}),this.inputRef.current.value="",n&&t.preventDefault()}},{key:"onPaste",value:function(t){var e=this;if(this.props.separator){var n=(t.clipboardData||window.clipboardData).getData("Text");if(n){var r=this.props.value||[],o=n.split(this.props.separator);o=o.filter((function(t){return(e.props.allowDuplicate||-1===r.indexOf(t))&&t.trim().length})),r=[].concat(c(r),c(o)),this.updateInput(t,r,!0)}}}},{key:"onFocus",value:function(t){var e=this;t.persist(),this.setState({focused:!0},(function(){e.props.onFocus&&e.props.onFocus(t)}))}},{key:"onBlur",value:function(t){var e=this;t.persist(),this.setState({focused:!1},(function(){e.props.onBlur&&e.props.onBlur(t)}))}},{key:"isMaxedOut",value:function(){return this.props.max&&this.props.value&&this.props.max===this.props.value.length}},{key:"isFilled",value:function(){return this.props.value&&this.props.value.length||this.inputRef&&this.inputRef.current&&this.inputRef.current.value&&this.inputRef.current.value.length}},{key:"isRemovable",value:function(t,e){return r.getPropValue(this.props.removable,{value:t,index:e,props:this.props})}},{key:"updateInputRef",value:function(){var t=this.props.inputRef;t&&("function"==typeof t?t(this.inputRef.current):t.current=this.inputRef.current)}},{key:"componentDidMount",value:function(){this.updateInputRef(),this.props.tooltip&&this.renderTooltip()}},{key:"componentDidUpdate",value:function(t){var e=this.props.value&&t.value&&t.value.length===this.props.value.length;this.props.tooltip&&(t.tooltip!==this.props.tooltip||t.tooltipOptions!==this.props.tooltipOptions?this.tooltip?this.tooltip.update(k({content:this.props.tooltip},this.props.tooltipOptions||{})):this.renderTooltip():!e&&this.tooltip&&(this.tooltip.deactivate(),this.tooltip.activate()))}},{key:"componentWillUnmount",value:function(){this.tooltip&&(this.tooltip.destroy(),this.tooltip=null)}},{key:"renderTooltip",value:function(){this.tooltip=i({target:this.inputRef.current,targetContainer:this.listElement,content:this.props.tooltip,options:this.props.tooltipOptions})}},{key:"renderRemoveIcon",value:function(e,n){var r=this;return this.props.disabled||this.props.readOnly||!this.isRemovable(e,n)?null:t.createElement("span",{className:"p-chips-token-icon pi pi-times-circle",onClick:function(t){return r.removeItem(t,n)}})}},{key:"renderItem",value:function(e,n){var r=this.props.itemTemplate?this.props.itemTemplate(e):e,o=this.renderRemoveIcon(e,n);return t.createElement("li",{key:n,className:"p-chips-token p-highlight"},t.createElement("span",{className:"p-chips-token-label"},r),o)}},{key:"renderInputElement",value:function(){return t.createElement("li",{className:"p-chips-input-token"},t.createElement("input",{ref:this.inputRef,placeholder:this.props.placeholder,type:"text",name:this.props.name,disabled:this.props.disabled||this.isMaxedOut(),onKeyDown:this.onKeyDown,onPaste:this.onPaste,onFocus:this.onFocus,onBlur:this.onBlur,"aria-labelledby":this.props.ariaLabelledBy,readOnly:this.props.readOnly}))}},{key:"renderItems",value:function(){var t=this;return this.props.value?this.props.value.map((function(e,n){return t.renderItem(e,n)})):null}},{key:"renderList",value:function(){var e=this,n=o("p-inputtext p-chips-multiple-container",{"p-disabled":this.props.disabled,"p-focus":this.state.focused}),r=this.renderItems(),i=this.renderInputElement();return t.createElement("ul",{ref:function(t){return e.listElement=t},className:n,onClick:this.onWrapperClick},r,i)}},{key:"render",value:function(){var e=this,n=o("p-chips p-component p-inputwrapper",this.props.className,{"p-inputwrapper-filled":this.isFilled(),"p-inputwrapper-focus":this.state.focused}),r=this.renderList();return t.createElement("div",{ref:function(t){return e.element=t},id:this.props.id,className:n,style:this.props.style},r)}}])&&f(u.prototype,a),v&&f(u,v),Object.defineProperty(u,"prototype",{writable:!1}),O}();O(P,"defaultProps",{id:null,inputRef:null,name:null,placeholder:null,value:null,max:null,disabled:null,readOnly:!1,removable:!0,style:null,className:null,tooltip:null,tooltipOptions:null,ariaLabelledBy:null,separator:null,allowDuplicate:!0,itemTemplate:null,onAdd:null,onRemove:null,onChange:null,onFocus:null,onBlur:null});export{P as Chips};
|