primereact
Version:
PrimeReact is an open source UI library for React featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with Prime
2 lines (1 loc) • 6.76 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),n=require("primereact/componentbase"),r=require("primereact/hooks"),a=require("primereact/inputtext"),l=require("primereact/utils");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=o(e);function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u.apply(this,arguments)}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function s(e){if(Array.isArray(e))return c(e)}function p(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function f(e,t){if(e){if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}function d(){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 v(e){return s(e)||p(e)||f(e)||d()}function y(e){if(Array.isArray(e))return e}function b(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,l,o,i=[],u=!0,c=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=l.call(n)).done)&&(i.push(r.value),i.length!==t);u=!0);}catch(e){c=!0,a=e}finally{try{if(!u&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return i}}function m(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function g(e){return g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},g(e)}function O(e,t){if("object"!==g(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==g(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function h(e){var t=O(e,"string");return"symbol"===g(t)?t:String(t)}var w=n.ComponentBase.extend({defaultProps:{__TYPE:"InputOtp",__parentMetadata:null,className:null,modelValue:!1,invalid:!1,disabled:!1,readOnly:!1,variant:null,tabIndex:null,length:4,mask:!1,integerOnly:!1},css:{classes:{root:"p-inputotp p-component",input:"p-inputotp-input"}}});function j(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function S(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?j(Object(n),!0).forEach((function(t){var r,a,l;r=e,l=n[t],(a=h(a=t))in r?Object.defineProperty(r,a,{value:l,enumerable:!0,configurable:!0,writable:!0}):r[a]=l})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):j(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var P=i.default.memo(i.default.forwardRef((function(o,c){var s,p,d=e.useRef(c),g=r.useMergeProps(),O=e.useContext(t.PrimeReactContext),h=w.getProps(o,O),j=w.setMetaData(S(S({props:h},h.__parentMetadata),{},{context:{disabled:h.disabled}})),P=j.ptm,x=j.cx;n.useHandleStyle(w.css.styles,j.isUnstyled,{name:"inputotp"});var E,A,D=h.value?null===(s=h.value)||void 0===s||null===(s=s.toString())||void 0===s||null===(p=s.split)||void 0===p?void 0:p.call(s,""):new Array(h.length),I=e.useState(D),T=(A=2,y(E=I)||b(E,A)||f(E,A)||m()),k=T[0],N=T[1],_=function e(t){var n=t.nextElementSibling;if(n)return"INPUT"===n.nodeName?n:e(n)},C=function e(t){var n=t.previousElementSibling;if(n)return"INPUT"===n.nodeName?n:e(n)},M=function(e){var t=_(e.target);t&&(t.focus(),t.select())},U=function(e){var t=C(e.target);t&&(t.focus(),t.select())},q=function(e,t){var n;null==h||null===(n=h.onChange)||void 0===n||n.call(h,{originalEvent:e,value:t.join("")})},B=function(e,t){var n=e.target.value,r=v(k);r[t]=n,r=(r=r.join(""))?r.split(""):new Array(h.length),N(r),q(e,r)},K=function(e,t){h.disabled||h.readOnly||"insertFromPaste"!==e.nativeEvent.inputType&&(B(e,t),"deleteContentBackward"===e.nativeEvent.inputType?U(e):"insertText"!==e.nativeEvent.inputType&&"deleteContentForward"!==e.nativeEvent.inputType||M(e))},R=function(e){if(!h.disabled&&!h.readOnly){var t=e.clipboardData.getData("text");if(t.length){var n=t.substring(0,h.length+1);if(!h.integerOnly||!isNaN(n)){var r=n.split("");N(r),q(e,r)}}}},F=function(e){var t;e.target.select(),null==h||null===(t=h.focus)||void 0===t||t.call(h,e)},L=function(e){var t;null==h||null===(t=h.blur)||void 0===t||t.call(h,e)},H=function(e){if(!h.disabled&&!h.readOnly&&!(e.altKey||e.ctrlKey||e.metaKey))switch(e.code){case"ArrowLeft":U(e),e.preventDefault();break;case"ArrowRight":M(e),e.preventDefault();break;case"Backspace":var t;0===(null===(t=e.target)||void 0===t||null===(t=t.value)||void 0===t?void 0:t.length)&&(U(e),e.preventDefault());break;case"ArrowUp":case"ArrowDown":e.preventDefault();break;case"Tab":case"Enter":break;default:(null!=h&&h.integerOnly&&!(Number(e.key)>=0&&Number(e.key)<=9)||k.join("").length>=h.length&&"Delete"!==e.code)&&e.preventDefault()}};r.useUpdateEffect((function(){var e,t,n=h.value?null===(e=h.value)||void 0===e||null===(e=e.toString())||void 0===e||null===(t=e.split)||void 0===t?void 0:t.call(e,""):new Array(h.length);N(n)}),[h.value]);var J=g({className:x("root"),ref:d,style:null==h?void 0:h.style},P("root"));return i.default.createElement("div",J,function e(n){if(n<=0)return[];var r=h.length-n,o={onInput:function(e){return K(e,r)},onKeyDown:H,onFocus:F,onBlur:L,onPaste:R},c=g({id:r,key:r,value:k[r]||"",inputMode:null!=h&&h.integerOnly?"numeric":"text",type:null!=h&&h.mask?"password":"text",variant:null==h?void 0:h.variant,readOnly:null==h?void 0:h.readOnly,disabled:null==h?void 0:h.disabled,invalid:null==h?void 0:h.invalid,tabIndex:null==h?void 0:h.tabIndex,unstyled:null==h?void 0:h.unstyled,"aria-label":t.ariaLabel("otpLabel",{0:r+1}),className:x("input")},P("input"));return[null!=h&&h.inputTemplate?l.ObjectUtils.getJSXElement(null==h?void 0:h.inputTemplate,{events:o,props:c}):i.default.createElement(a.InputText,u({},c,o))].concat(v(e(n-1)))}(h.length))})));P.displayName="InputOtp",exports.InputOtp=P;
;