{"version":3,"sources":["../../source/react/Input.js"],"names":["Input","ref","value","parse","format","InputComponent","inputComponent","onChange","onCut","onPaste","onKeyDown","rest","ownRef","_onChange","event","current","_onPaste","_onCut","_onKeyDown","isEmptyValue","text","React","forwardRef","propTypes","PropTypes","func","isRequired","elementType","type","string","defaultProps","undefined"],"mappings":";;;;;;;;;AAEA;;AACA;;AAEA;;;;;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,KAAT,OAUGC,GAVH,EAUQ;AAAA,MATPC,KASO,QATPA,KASO;AAAA,MARPC,KAQO,QARPA,KAQO;AAAA,MAPPC,MAOO,QAPPA,MAOO;AAAA,MANSC,cAMT,QANPC,cAMO;AAAA,MALPC,QAKO,QALPA,QAKO;AAAA,MAJPC,KAIO,QAJPA,KAIO;AAAA,MAHPC,OAGO,QAHPA,OAGO;AAAA,MAFPC,SAEO,QAFPA,SAEO;AAAA,MADJC,IACI;;AACP,MAAMC,MAAM,GAAG,oBAAf;AACAX,EAAAA,GAAG,GAAGA,GAAG,IAAIW,MAAb;;AACA,MAAMC,SAAS,GAAG,wBAAY,UAACC,KAAD,EAAW;AACxC,WAAO,4BACNA,KADM,EAENb,GAAG,CAACc,OAFE,EAGNZ,KAHM,EAINC,MAJM,EAKNG,QALM,CAAP;AAOA,GARiB,EAQf,CAACN,GAAD,EAAME,KAAN,EAAaC,MAAb,EAAqBG,QAArB,CARe,CAAlB;;AAUA,MAAMS,QAAQ,GAAG,wBAAY,UAACF,KAAD,EAAW;AACvC,QAAIL,OAAJ,EAAa;AACZA,MAAAA,OAAO,CAACK,KAAD,CAAP;AACA;;AACD,WAAO,2BACNA,KADM,EAENb,GAAG,CAACc,OAFE,EAGNZ,KAHM,EAINC,MAJM,EAKNG,QALM,CAAP;AAOA,GAXgB,EAWd,CAACN,GAAD,EAAME,KAAN,EAAaC,MAAb,EAAqBG,QAArB,EAA+BE,OAA/B,CAXc,CAAjB;;AAaA,MAAMQ,MAAM,GAAG,wBAAY,UAACH,KAAD,EAAW;AACrC,QAAIN,KAAJ,EAAW;AACVA,MAAAA,KAAK,CAACM,KAAD,CAAL;AACA;;AACD,WAAO,yBACNA,KADM,EAENb,GAAG,CAACc,OAFE,EAGNZ,KAHM,EAINC,MAJM,EAKNG,QALM,CAAP;AAOA,GAXc,EAWZ,CAACN,GAAD,EAAME,KAAN,EAAaC,MAAb,EAAqBG,QAArB,EAA+BC,KAA/B,CAXY,CAAf;;AAaA,MAAMU,UAAU,GAAG,wBAAY,UAACJ,KAAD,EAAW;AACzC,QAAIJ,SAAJ,EAAe;AACdA,MAAAA,SAAS,CAACI,KAAD,CAAT;AACA;;AACD,WAAO,6BACNA,KADM,EAENb,GAAG,CAACc,OAFE,EAGNZ,KAHM,EAINC,MAJM,EAKNG,QALM,CAAP;AAOA,GAXkB,EAWhB,CAACN,GAAD,EAAME,KAAN,EAAaC,MAAb,EAAqBG,QAArB,EAA+BG,SAA/B,CAXgB,CAAnB;;AAaA,SACC,gCAAC,cAAD,eACKC,IADL;AAEC,IAAA,GAAG,EAAEV,GAFN;AAGC,IAAA,KAAK,EAAEG,MAAM,CAACe,YAAY,CAACjB,KAAD,CAAZ,GAAsB,EAAtB,GAA2BA,KAA5B,CAAN,CAAyCkB,IAHjD;AAIC,IAAA,SAAS,EAAEF,UAJZ;AAKC,IAAA,QAAQ,EAAEL,SALX;AAMC,IAAA,OAAO,EAAEG,QANV;AAOC,IAAA,KAAK,EAAEC;AAPR,KADD;AAUA;;AAEDjB,KAAK,GAAGqB,kBAAMC,UAAN,CAAiBtB,KAAjB,CAAR;AAEAA,KAAK,CAACuB,SAAN,GAAkB;AACjB;AACApB,EAAAA,KAAK,EAAEqB,sBAAUC,IAAV,CAAeC,UAFL;AAIjB;AACAtB,EAAAA,MAAM,EAAEoB,sBAAUC,IAAV,CAAeC,UALN;AAOjB;AACApB,EAAAA,cAAc,EAAEkB,sBAAUG,WAAV,CAAsBD,UARrB;AAUjB;AACAE,EAAAA,IAAI,EAAEJ,sBAAUK,MAAV,CAAiBH,UAXN;AAajB;AACAxB,EAAAA,KAAK,EAAEsB,sBAAUK,MAdA;AAgBjB;AACAtB,EAAAA,QAAQ,EAAEiB,sBAAUC,IAAV,CAAeC,UAjBR;AAmBjB;AACAhB,EAAAA,SAAS,EAAEc,sBAAUC,IApBJ;AAqBjBjB,EAAAA,KAAK,EAAEgB,sBAAUC,IArBA;AAsBjBhB,EAAAA,OAAO,EAAEe,sBAAUC;AAtBF,CAAlB;AAyBAzB,KAAK,CAAC8B,YAAN,GAAqB;AACpB;AACAxB,EAAAA,cAAc,EAAE,OAFI;AAIpB;AACAsB,EAAAA,IAAI,EAAE;AALc,CAArB;eAQe5B,K;;;AAEf,SAASmB,YAAT,CAAsBjB,KAAtB,EAA6B;AAC5B,SAAOA,KAAK,KAAK6B,SAAV,IAAuB7B,KAAK,KAAK,IAAxC;AACA","sourcesContent":["// This is just `./ReactInput.js` rewritten in Hooks.\r\n\r\nimport React, { useCallback, useRef } from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nimport {\r\n\tonChange as onInputChange,\r\n\tonCut as onInputCut,\r\n\tonPaste as onInputPaste,\r\n\tonKeyDown as onInputKeyDown\r\n} from '../input control'\r\n\r\n// Usage:\r\n//\r\n// this.setState({ phone })}\r\n// \tparse={character => character}\r\n// \tformat={value => ({ text: value, template: 'xxxxxxxx' })}/>\r\n//\r\nfunction Input({\r\n\tvalue,\r\n\tparse,\r\n\tformat,\r\n\tinputComponent: InputComponent,\r\n\tonChange,\r\n\tonCut,\r\n\tonPaste,\r\n\tonKeyDown,\r\n\t...rest\r\n}, ref) {\r\n\tconst ownRef = useRef()\r\n\tref = ref || ownRef\r\n\tconst _onChange = useCallback((event) => {\r\n\t\treturn onInputChange(\r\n\t\t\tevent,\r\n\t\t\tref.current,\r\n\t\t\tparse,\r\n\t\t\tformat,\r\n\t\t\tonChange\r\n\t\t)\r\n\t}, [ref, parse, format, onChange])\r\n\r\n\tconst _onPaste = useCallback((event) => {\r\n\t\tif (onPaste) {\r\n\t\t\tonPaste(event)\r\n\t\t}\r\n\t\treturn onInputPaste(\r\n\t\t\tevent,\r\n\t\t\tref.current,\r\n\t\t\tparse,\r\n\t\t\tformat,\r\n\t\t\tonChange\r\n\t\t)\r\n\t}, [ref, parse, format, onChange, onPaste])\r\n\r\n\tconst _onCut = useCallback((event) => {\r\n\t\tif (onCut) {\r\n\t\t\tonCut(event)\r\n\t\t}\r\n\t\treturn onInputCut(\r\n\t\t\tevent,\r\n\t\t\tref.current,\r\n\t\t\tparse,\r\n\t\t\tformat,\r\n\t\t\tonChange\r\n\t\t)\r\n\t}, [ref, parse, format, onChange, onCut])\r\n\r\n\tconst _onKeyDown = useCallback((event) => {\r\n\t\tif (onKeyDown) {\r\n\t\t\tonKeyDown(event)\r\n\t\t}\r\n\t\treturn onInputKeyDown(\r\n\t\t\tevent,\r\n\t\t\tref.current,\r\n\t\t\tparse,\r\n\t\t\tformat,\r\n\t\t\tonChange\r\n\t\t)\r\n\t}, [ref, parse, format, onChange, onKeyDown])\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nInput = React.forwardRef(Input)\r\n\r\nInput.propTypes = {\r\n\t// Parses a single characher of `` text.\r\n\tparse: PropTypes.func.isRequired,\r\n\r\n\t// Formats `value` into `` text.\r\n\tformat: PropTypes.func.isRequired,\r\n\r\n\t// Renders `` by default.\r\n\tinputComponent: PropTypes.elementType.isRequired,\r\n\r\n\t// `` `type` attribute.\r\n\ttype: PropTypes.string.isRequired,\r\n\r\n\t// Is parsed from text.\r\n\tvalue: PropTypes.string,\r\n\r\n\t// This handler is called each time `` text is changed.\r\n\tonChange: PropTypes.func.isRequired,\r\n\r\n\t// Passthrough\r\n\tonKeyDown: PropTypes.func,\r\n\tonCut: PropTypes.func,\r\n\tonPaste: PropTypes.func\r\n}\r\n\r\nInput.defaultProps = {\r\n\t// Renders `` by default.\r\n\tinputComponent: 'input',\r\n\r\n\t// `` `type` attribute.\r\n\ttype: 'text'\r\n}\r\n\r\nexport default Input\r\n\r\nfunction isEmptyValue(value) {\r\n\treturn value === undefined || value === null\r\n}"],"file":"Input.js"}